Showing results for 
Search instead for 
Did you mean: 

JTAPI: How to get the queue detail or the button pressed on IVR


I am trying to store CUCM call Events using JTAPI on Cisco Sandbox.

When a user calls the route point(IVR) provided by Finesse, The IVR asks which team he needs to speak to, and then the user presses a key. 

Press 1 for IT_Tier_1

Press 2 for IT_Tier_2

Press 3 for HR

Press 4 for Finance



Now when I press any key, say 4 for example, the call gets into a specific queue if the agents of that team are unavailable.

An Event of class CallCtlTermConnHeldEvImpl is fired when the call gets into the queue and is put on hold. 

I want to get the queue name or queue_id or the button pressed by the user. 

How can I get that? 

There's a method


in class 


But I don't see any relation between CallCtlTermConnHeldEvImpl and CiscoTermButtonPressedEvImpl, So I am not able to call that function form the current event (CallCtlTermConnHeldEvImpl) object.


Please help here.

5 Replies 5

Cisco Employee
Cisco Employee

The JTAPI button events are specific to monitoring buttons pressed on a hardware phone - getting events for the physical buttons pressed on the customer's phone would not be expected, since you are monitoring the CTI Route Point device for the queue, not the customer's phone (which could be anything on the PSTN.)

It may be possible to receive JTAPI MediaTermConnDtmfEv for detected DTMF events by monitoring a CTI RP, however the CTI RP would need to be configured with an MTP.  Beyond the MTP resource consumption/availability impacts, not sure how such a configuration would affect Finesse/Contact Center operation - I suspect they would advise 'don't do that' or would decline to support the config due to possible negative affects, since the CTI RP after all is mainly under control/use by Finesse/CC.

Finesse/contact center represent another application 'layer' on top of JTAPI (which they use underneath the covers to implement their functionality).  I believe the details you are looking for - like queue name, or the identification of options chosen - would need to be retrieved from the Finesse layer APIs.

Hi @dstaudt,

I am not sure what you meant by Finesse layer APIs but I looked for Finesse's API for Queue, there are only 2 APIs, and I don't think either of them will be helpful for my case. 


If I am understanding your question correctly, you want to get the queue name or id of the queue that the call goes into from the IVR. To get this information, you need to use the CCX's CTI Protocol and look at the CALL_QUEUED_EVENT. In that event, there is a CSQID (logs show CSDID) that is required and that will be the id of the queue. Then, you can take that id and get the name.




Hi @dekwan ,

You understood the question correctly. It's just that I need to figure out the queue from JTAPI call events. I couldn't find any relation between  CALL_QUEUED_EVENT and JTAPI. Is there a way I can get this event through JTAPI?


It has been a really really long time since I've worked with JTAPI so don't quote me on this, but I do not believe that this information can be found in JTAPI. Queue information should be in the CCX level (CTI Protocol) and not JTAPI, which is more on the phone level.



Getting Started

Find answers to your questions by entering keywords or phrases in the Search bar above. New here? Use these resources to familiarize yourself with the community:

Recognize Your Peers