« Back to Cisco JTAPI Questions

Unstable connection between J-TAPI and CUCM 7.0

Combination View Flat View Tree View
Threads [ Previous | Next ]
Hi all,
I have developed a small application that uses J-TAPI to redirect a call, but I am having problem with keeping the connection between J-TAPI and the CUCM 7.0 stable. To communicate with the J-TAPI application a server socket is set up (using port 12345, I have also tried with other ports) and waiting for a connection with information about what call to redirect. To eliminate that the problem is related to the process locking heartbeats when waiting for a socket connection, I release the socket every 100 ms and check the state of the provider using the call:
provider.getState() (This seems to improve the situation slightly, without this release of the socket the connection went down more often I think, but I can not say for sure)
I guess the provider close is related to this log:
2126073: nov 06 09:36:04.685 CET %JTAPI-PROTOCOL-7-UNKemoticonP1-10.215.70.10) received Event: com.cisco.cti.protocol.ProviderClosedEvent {
eventSequence = 125
reason = 1
}

It happens in the "middle of noware", no activity is logged for at least 5 seconds befor the event. Also: It keeps going down/up without any activity from the application except the provider.getState call.

I have also tested with the makecall application included in the J-TAPI package, the problem with the provider going in and out of service occurs there as well.

I'm using 1 second heartbeat interval.
It always recover after 5 seconds which is the recovery timers minimum value. I run the J-TAPI and the application on a Windows 2003 Server VM-ware image.

Any suggestions? Maybe it would be OK to improve the re-connection time by manually calling a reconnect function when a OutOfService event is received, but this is more like giving artificial breathing to an errornous sytem?
At the moment I'm not allowed to attach files I will supply the logfiles as soon as I get access, if the problem is not solved.

BR
Anders

More information:
The user att CUCM I use have all CTI_XXXXX groups except the CTI_seucre group enabled

What's the story with your server socket? I didn't quite get that.

Then again, if makecall has the same problem, it cannot be your code but has to be your installation. Are you certain that your CCM is running stable? I've had some weird sideeffects running CCM on a VM - nothing call related but every now and then I get voice prompts in a really low pitched slow voice.. like the CCM cannot keep up even though the underlying physical machine is enormous and has more than enough resources to handle anything running on it twice over.

Is your CCM really stable? Do phones keep their connection, if you're doing admin work, is the connection stable or do you have interrupts, what if you ssh into the box.. can you type all the time or are there periodic disconnects (you see what I'm suspecting here.. a network problem).

If it were just your app I'd look if you block the app for a certain time which would prevent the exchange of heartbeats and thus lead to the disconnect.. but other than that JTAPI should be rock stable (can't vouch for CCM7 since I haven't done any development on it but it certainly works well for CCM 4 - CCM 6).

Hi Anders,

Connection link state between JTAPI and CTI Manager is maintained by JTAPI.
If the JTAPI application node which connects to CTI manager goes down or if there is a network outage or the socket gets closed, then JTAPI will send ProviderOutOfServiceEvent to applications.

The same Event will also be sent when application explicitely call shutdown() API to close the provider.

From your description of the problem i an not exactly sure what you are trying. It would be good if you could elaborate on what exactly application is doing or share the JTAPI logs for this issue.

Thanks,
Abhishek Malhotra
Cisco JTAPI Development Team

Thanks for you answers:
I found a way to solve it: I added a create/destroy an empty call every second. That helped to keep the link stable. So I guess the problem is related to heartbeat in some way, as this create/destroy call thing can be seen as a manual heartbeet?

I am still not clear about the issue that you are seeing. Which connection hearbeat is inconsistent? JTAPI to CTI heartbeat is maintained by JTAPI and that never goes down unless the provider is shutdown or unless the network itself goes down.

Please elaborate on your issue and please share the JTAPI logs in case you think there is any issue from JTAPI side.

Thanks,
Abhishek
Cisco JTAPI Development Team