Author Message
MichaelDailous_deprecated
Joined: Nov 11, 2013
Messages: 171
Offline

I'm having trouble figuring out how to detect an individual disconnects from a CTI generated conference.


I have an OD 7 VXML application that does the following:



1) Puts the original caller on hold (cti variable 'cticallinfo')

2) Dials an extension (cti variable 'bridgecallinfo')

3) Once the dialed extension is 'established', a conference is created using the cti variables for the dialed extension and the caller on hold.



Everything works fine up to this point. At this point, I need to "listen" until someone disconnects from the conference. I have placed a "Form" that contains a grammar and the noinput, nomatch, and ondisconnect events. Once the "Form" times out, I re-query the CTI values for both the original caller and the dialed extension. One problem I've found is the original caller always shows "conferenced" and the dialed extension always shows "established".



When the dialed extension disconnects, I need to then transfer the original caller to another known extension. Now, for the actual problem. The onDisconnect event is never thrown when the dialed extension hangs up. As far as the CTI connector is concerned, both calls are still conferenced. The onDisconnect event is only ever thrown when the original caller hangs up. When this event is thrown, I re-query the CTI values for both the original caller and the dialed extension. The original caller still shows as "conferenced" and the dialed extension still shows as "established" when the original caller disconnects. This is true even when the dialed extension disconnects, the original caller sits there for a few minutes, then hangs up.



My questions are as follows:

1) Why doesn't the dialed extension cti values ever show "conferenced"?

2) Why doesn't the cti connector ever identify that a given call id is no longer connected?



Some additional notes, this application MUST use CTI, and since CTI is not available to CCXML, the application MUST be a VXML application. The need for this is because CCXML does NOT transmit the UUI if the protocol is H.323. CTI DOES transmit the UUI correctly. Attempting to use CCXML as the "front-end" to the CTI enabled VXML doesn't work either, as CCXML ONLY receives the "connection.disconnected" transition event when the original caller hangs up, not when the dialed extension hangs up.



How does one monitor a CTI conference and detect when a caller has hung up? In the CTI logs, I can see the disconnect event happening on the call id. The state value that is passed back to the VXML application doesn't change, though.

NeilGoldsmith
Joined: Nov 6, 2013
Messages: 902
Offline
Yes, CCXML would be perfect for this scenario, but the UUI issue is a gotcha. The CTI Conference is used more to create the conference rather than a full fledged conference manager which is why it doesn't actively monitor all the existing parties and keep that information dynamic. Your best bet is to write your own JTAPI conferencing code. I would suggest either getting Devconnect assistance or talking to JTAPI support and getting some sample code on that. You can create a Java node in your app and add it there. It shouldn't be too complex as you just need to create the conference and then sit and monitor the parties.
MichaelDailous_deprecated
Joined: Nov 11, 2013
Messages: 171
Offline
Thanks Neil,

Do you know if the JTAPI interface will require any additional licensing? Do I need DMCC or TSAPI licensing?
NeilGoldsmith
Joined: Nov 6, 2013
Messages: 902
Offline
You should be fine license-wise.
Go to:   
Mobile view