Showing results for 
Search instead for 
Did you mean: 

Server-based Client----Cisco Finesse Notification service


We are in need to monitor an inbound skill and to read agent availability, etc....

Q1: Is Server-based client integrate with Cisco Finesse Notification service is best option OR to read agent availability from DB (table views) is a better option?

Q2: Was going through the "Cisco Finesse Web Services Developer Guide" pdf, is this the file or is there any other doc to use for reference with regards to queue, etc...

Q3: Is there any sample available for "Server-based client" to try and understand it working.?

Q4:How to get AHT fro queue with finesse API?


Cisco Employee


A1: This isn't a straight forward answer. It depends on the scope of your server-based client. So, Finesse isn't meant to be an overall all agent monitoring application. It is meant to be a per agent desktop/monitor. What I mean is that you cannot make 1 connection to the Finesse notification service and get the events for ALL the agents at once. Your client will need to make a connection to the Finesse notification service per agent and only get that agent's events. I hope that makes sense.

Then, I would also like to add that skills/queue information is only available in Finesse for a UCCE deployment. I am not sure if the information that Finesse provides for queues is adequate for your needs.

Now, if you want the monitoring of all agents, it is best if you used the CTI Protocol for your deployment.



A2: Yes. The Cisco Finesse Web Services Developer Guide is indeed the guide to all of the Finesse APIs. You can see the non pdf version (same thing, just different format) here:

A3: The only non gadget samples we have is a simple browser based one: finesse-sample-code/NonGadgetSample at master · CiscoDevNet/finesse-sample-code · GitHub and a python sample: finesse-sample-code/NonGadgetPythonSample at master · CiscoDevNet/finesse-sample-code · GitHub

A4: Is AHT Agent Hold time? I don't believe Finesse has that data. This is what Finesse provides:



Hello Denise,

Thank you for the reply,

A4.1: AHT refers Agent's Avg call handling time.

Q5: Conclusion: Cisco Finesse Notification Service should be used for per agent event notifications. And Cisco Finesse Notification Service should

not be used or not recommended for monitoring skill and to get the stats.Is my understanding correct?

Q6:The recommended way to monitor a skill and get stats about calls in queue, various agent states, etc.. is develop a socket server app using CTI  protocol (GED188)? Is my understanding correct?

Q7:Instead of writing the sokcet server app using CTI protocol, can we read the stats from DB directly. DB-table-views will be used for the read operation. Can we follow this way in production environments or will this have any production impact?

Q8: Heard, only limited socket connections allowed to communicate with CTI Server for notifications & already Cisco Native components does communicate with CTI Server. Does CTI Server allows multiple connections in production system to connect via socket or will it have any performance issues?

Q9: Can we use the same socket server app for ucce/x? or do we need write separate app one for each.



A4 2: Looking at the Finesse documentation, I don't see the queue stats having the agent's average call handling time.

A5: Yes. For the use case of your server based client, the Finesse notification service doesn't seem to be a good fit. It doesn't have the data you are looking for.

A6: Correct. Finesse actually communicates with UCCE/X via the CTI protocol. Note that although it is called the same for both UCCE and UCCX, they are slightly different. The CTI protocol is meant to be an all agent monitoring API.

A7. I can't answer this with confidence because I don't have the expertise into the performance impact of reading directly from the DB, but I wouldn't recommend it. Reading from the DB would require polling the DB ever x seconds/minute/etc. With the CTI Protocol, it listens for events and therefore it is less stress from a performance perspective.

A8. The CTI server allows multiple connections, so you shouldn't have any performance impact. it was meant for third party applications to connect to it. Like I said, Finesse communicates to UCCE/X via the CTI protocol.

A9. So Finesse uses the CTI protocol and is a single application that works on both CCE and CCX. As I mentioned earlier, there are slight differences between the two protocol. For those differences, your application will have to handle it depending on the deployment type. Also, sometimes the events or the order of events that you receive back can be different. So, you do not need a separate app for each, you just need to design your application in the way where it can handle the differences.

I hope this helps!




Thank you, Mary Christmas and Happy New Year!!

We plan to write socket client app to communicate with CTI-Server for Ucce/x.

Facing some challenges in our client app.

Q10.The Queue event is not notified from the CTI-Server. Though we set "Unsolicited Call Event Message Masks" -"CALL_QUEUED_MASK" in OPEN_REQ TCP message. When the call get queued in skill, there is no notification about call queue event from cti server. Any reason?

Q11.As an alternate way, the Client App uses "QUERY_SKILL_GROUP_STATISTICS_REQ" -Request for current skill group call handling statistics. This returns values - PeripheralID, SkillGroupNumber, SkillGroupID, RouterCallsQNow, LongestRouterCallQNow.

Can we use the value from "RouterCallsQNow" as number of calls in queue?

Q12.Also what is the difference between "RouterCallsQNow" & "CallsQNow"?

We use the ucce_b_cti-server-message-reference-guide.pdf for CTI Server protocol understanding. and looking into "Table 94: QUERY_SKILL_GROUP_STATISTICS_CONF Message Format" for the return values.

Q13.How to get Average call handling time, number of agent available, etc??

Q14. Assume we would like to query N skills by using "QUERY_SKILL_GROUP_STATISTICS_REQ" - can we use them in a loop to iterate N times and each query-skill-group-stats-req for unique skillid? will there be any performance issue? Can we query all N skills on 5 or 10 secs intervals?



Would like to clarify few more points,

Q15.Is there any Cisco CTI license consumed or required for the socket client app to run?

Q16.If we integrate the socket client app with production ucce/x -Will there be any performance issue?

Q17.By default, does the CTI socket comm ports enabled in production ucce/x or to enable the CTI ports.

Q18.Assume we are going with the socket client app approach, will there be any challenge we may foresee in the production system.Just want to rec-confirm before we spending efforts?



Unfortunately I don't have the answers for you for questions 10 and on. I ask that you post your question to the CTI Protocol forum(s):

UCCX: Express CTI




Recognize Your Peers
Content for Community-Ad