11-09-2023 01:31 AM
Hello there.
Please consider the following scenario:
A call to a CTI route-point has been established. It has been automatically transferred to a Hunt-Pilot extension.
There is no available extension to take the call (i.e. all agents are busy), and so - Hunt-Queue featured is operated, i.e. caller is put on 'hold', hearing music, until any of the Hunt-List extensions becomes available to answer the caller.
(1) How can this scenario be identified (caller on Hunt-Queue)? Is there any Address/Call events indicating it?
Furthermore, how can each of the 2 sub-scenarios can be identified:
(2) After a while, caller did not want to wait further, and hung-up (dropped the call)?
(3) A Hunt-Queue timer has elapsed, and the CUCM has dropped the call?
Thanks much.
Solved! Go to Solution.
11-09-2023 10:35 AM
I don't believe there are any APIs to monitor hunt pilots/lists directly, in real time. TAPI and JTAPI can receive detailed call progress events about hunt calls, but only once the call is offered to a hunt member device (that is being monitored by the appliction) - they can't monitor the hunt pilot/queue directly.
The Serviceability Perfmon API can retrieve various CUCM performance counters related to hunt pilots/lists (very similar to what's available via RTMT), either one-shot or periodically (e.g. every minute - perhaps shorter, please do testing) - take a look at:
Cisco Hunt Lists
<ns1:Name>Cisco Hunt Lists</ns1:Name>
<ns1:MultiInstance>true</ns1:MultiInstance>
<ns1:ArrayOfCounter>
<ns1:item>
<ns1:Name>CallsAbandoned</ns1:Name>
</ns1:item>
<ns1:item>
<ns1:Name>CallsActive</ns1:Name>
</ns1:item>
<ns1:item>
<ns1:Name>CallsBusyAttempts</ns1:Name>
</ns1:item>
<ns1:item>
<ns1:Name>CallsInProgress</ns1:Name>
</ns1:item>
<ns1:item>
<ns1:Name>CallsRingNoAnswer</ns1:Name>
</ns1:item>
<ns1:item>
<ns1:Name>HuntListInService</ns1:Name>
</ns1:item>
<ns1:item>
<ns1:Name>MembersAvailable</ns1:Name>
</ns1:item>
</ns1:ArrayOfCounter>
Cisco Hunt Pilots
<ns1:Name>Cisco Hunt Pilots</ns1:Name>
<ns1:MultiInstance>true</ns1:MultiInstance>
<ns1:ArrayOfCounter>
<ns1:item>
<ns1:Name>CallsQueued</ns1:Name>
</ns1:item>
<ns1:item>
<ns1:Name>LineGroupMembersAvailable</ns1:Name>
</ns1:item>
<ns1:item>
<ns1:Name>LongestCallWaitingInQueue</ns1:Name>
</ns1:item>
<ns1:item>
<ns1:Name>MaxQueueDepthExceeded</ns1:Name>
</ns1:item>
<ns1:item>
<ns1:Name>MaxQueueWaitTimerExceeded</ns1:Name>
</ns1:item>
<ns1:item>
<ns1:Name>QueueCallsAbandoned</ns1:Name>
</ns1:item>
<ns1:item>
<ns1:Name>QueueCallsRingNoAnswer</ns1:Name>
</ns1:item>
</ns1:ArrayOfCounter>
11-09-2023 10:35 AM
I don't believe there are any APIs to monitor hunt pilots/lists directly, in real time. TAPI and JTAPI can receive detailed call progress events about hunt calls, but only once the call is offered to a hunt member device (that is being monitored by the appliction) - they can't monitor the hunt pilot/queue directly.
The Serviceability Perfmon API can retrieve various CUCM performance counters related to hunt pilots/lists (very similar to what's available via RTMT), either one-shot or periodically (e.g. every minute - perhaps shorter, please do testing) - take a look at:
Cisco Hunt Lists
<ns1:Name>Cisco Hunt Lists</ns1:Name>
<ns1:MultiInstance>true</ns1:MultiInstance>
<ns1:ArrayOfCounter>
<ns1:item>
<ns1:Name>CallsAbandoned</ns1:Name>
</ns1:item>
<ns1:item>
<ns1:Name>CallsActive</ns1:Name>
</ns1:item>
<ns1:item>
<ns1:Name>CallsBusyAttempts</ns1:Name>
</ns1:item>
<ns1:item>
<ns1:Name>CallsInProgress</ns1:Name>
</ns1:item>
<ns1:item>
<ns1:Name>CallsRingNoAnswer</ns1:Name>
</ns1:item>
<ns1:item>
<ns1:Name>HuntListInService</ns1:Name>
</ns1:item>
<ns1:item>
<ns1:Name>MembersAvailable</ns1:Name>
</ns1:item>
</ns1:ArrayOfCounter>
Cisco Hunt Pilots
<ns1:Name>Cisco Hunt Pilots</ns1:Name>
<ns1:MultiInstance>true</ns1:MultiInstance>
<ns1:ArrayOfCounter>
<ns1:item>
<ns1:Name>CallsQueued</ns1:Name>
</ns1:item>
<ns1:item>
<ns1:Name>LineGroupMembersAvailable</ns1:Name>
</ns1:item>
<ns1:item>
<ns1:Name>LongestCallWaitingInQueue</ns1:Name>
</ns1:item>
<ns1:item>
<ns1:Name>MaxQueueDepthExceeded</ns1:Name>
</ns1:item>
<ns1:item>
<ns1:Name>MaxQueueWaitTimerExceeded</ns1:Name>
</ns1:item>
<ns1:item>
<ns1:Name>QueueCallsAbandoned</ns1:Name>
</ns1:item>
<ns1:item>
<ns1:Name>QueueCallsRingNoAnswer</ns1:Name>
</ns1:item>
</ns1:ArrayOfCounter>
11-11-2023 10:58 AM
Thank you, @dstaudt, for the useful answer. Appreciated!
I've managed to retrieve basic info through the PerfMon API.
Is there a way to retrieve counters per a specific Hunt-Pilot (or a specific Hunt-List), rather than a complete value-collection for all Hunt-Pilots?
Another question: Could the RIS-Port70 API aid as well?
11-13-2023 11:47 AM - edited 11-13-2023 11:48 AM
You can use <perfmonListInstance> to get a list of e.g. hunt lists:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:soap="http://schemas.cisco.com/ast/soap">
<soapenv:Header/>
<soapenv:Body>
<soap:perfmonListInstance>
<soap:Host>sjds-cucm14</soap:Host>
<soap:Object>Cisco Hunt Lists</soap:Object>
</soap:perfmonListInstance>
</soapenv:Body>
</soapenv:Envelope>
----------------------
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body>
<ns1:perfmonListInstanceResponse xmlns:ns1="http://schemas.cisco.com/ast/soap">
<ns1:perfmonListInstanceReturn>
<ns1:Name>testHuntList</ns1:Name>
</ns1:perfmonListInstanceReturn>
</ns1:perfmonListInstanceResponse>
</soapenv:Body>
</soapenv:Envelope>
Though you will need to use the session-based performance counter mechanism to selelct only counters for specific instances, e.g. your <perfomonAddCounter> might look something like:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:soap="http://schemas.cisco.com/ast/soap">
<soapenv:Header/>
<soapenv:Body>
<soap:perfmonAddCounter>
<soap:SessionHandle>05dfb482-825d-11ee-8000-0050569353ed</soap:SessionHandle>
<soap:ArrayOfCounter>
<soap:Counter>
<soap:Name>\\sjds-cucm14\Cisco Hunt Lists(testHuntList)\MembersAvailable</soap:Name>
</soap:Counter>
</soap:ArrayOfCounter>
</soap:perfmonAddCounter>
</soapenv:Body>
</soapenv:Envelope>
11-13-2023 01:12 PM
Thanks again. Much obliged.
I was wondering whether counter-values of a specific object could be retrieved without session-based communication.
Apparently not.
Could the RisPort70 API be helpful as well, in determining the state of calls moved into Hunt-Pilot's Queue?
11-14-2023 10:17 AM
RisPort70 is focused on the registration status of devices, so I'm not sure it would help much for your use-case.
Discover and save your favorite ideas. Come back to expert answers, step-by-step guides, recent topics, and more.
New here? Get started with these tips. How to use Community New member guide