alexV
alexV

Reputation: 1

JTAPI manage high availability

I am managing a program written by other people that uses the JTAPI library that connects to a Cisco Call Manager version 14, composed of two physical nodes. This java program is completely passive and uses an extension of the javax.telephony.CallObserver class to listen for call activation on some SOS phones.

At startup the program tries to connect to the first node and if it fails it connects to the second node of the Call Manager.

I would need a method to check if the connection to the Call Manager, modeled by the javax.telephony.Provider class, is working. If that's not working, I would like to switch from server1 to server2, registering all instances of CallObserver again, and possibly raise an event to the customer.

I am not a JTAPI expert and on the internet I have not found any examples of fail-safe management of the connection with the Cisco Call Manager.

Thanks for the kind replies

I tried arming a listner with the Provider.addProviderListener() method but the event with the status Provider.OUT_OF_SERVICE was never produced. I have seen that the CiscoProvider has methods that manage a heartbeat, I changed the heartbeat parameters like frequency, enable etc. but I have not found a listner or a state that allows verifying the functioning of the Provider.

Upvotes: 0

Views: 155

Answers (1)

David Staudt
David Staudt

Reputation: 386

The Cisco JTAPI library - in coordination with the CUCM CTI Manager and Call Manager cluster services - actually handles reconnect/failover scenarios automatically, so you mostly shouldn't have to write any code to manually handle this unless you want something special to happen.

  • On startup, the application can specify more than one CTI Manager service host, e.g. a primary and secondary:

    providerString = CTIManager1, CTIManager2;login = XXX, passwd = YYY;appinfo = ZZZ

    JTAPI will try to connect to each in turn until successful, at which point in will send ProvInServiceEv.

  • If connection to the CTI Manager service is lost, JTAPI will send out-of-service events for all relevant objects (addresses/terminals/etc.), then ProvOutOfServiceEv. Upon successfully failing over to a secondary CTI Manager, ProvInServiceEv wil be sent, and all out-of-service objects will go back in-service. Note, by default JTAPI will not pro-actively fail-back to the original CTI-Manager.

  • CTI-Manager abstracts the actual CUCM Call Manager call-control component. It connects to all Call Manager service hosts and manages failover/reconnect transparently. If CTI Manager loses connection to a Call Manager service host, JTAPI will send object out-of-service events to the application for any devices that were registered to that Call Manager, until connection is re-established (when the objects will go back in-service.) Provider out-of-service/in-service events will not be sent in that scenario.

References:

Upvotes: 0

Related Questions