Genesys CTI User Forum
Genesys CTI User Forum => Genesys CTI Technical Discussion => Topic started by: mduran22 on December 30, 2014, 06:28:57 PM
-
Has anyone researched any possible way to query or display current call priority? We don't necessarily need it for each call, but maybe the highest current priority number for each virtual queue?
-
With Psdk you could develop something to monitor calls...but...what for? Why?
-
Call priority is sort of internal for URS thing not exposed by itself outside.
Either you need to explictely expose it to "outside", for example, as some call's attached data and change it every time priority is changed. After that some filter based custom values statistics can be used to get required data. Such type of updating of call user data can even be set to be updated by URS "automatically" in background.
Or alterntivelly URS can be asked directly (through web http interface) about one or another queue, calls waiting in these queues, about every specifc call, etc. There is set of methods (lvq, targetqueueinfo, query etc) accessing all queueing infrastructure that URS maintains internally (queues, calls, mapping between them, etc).
-
Very cool, thanks Terry. I had thought about building a loop off the target to update attach the priority, but that seemed like a lot of overhead.
I faintly remember the http web interface of URS but have never used it, I'll have to see if there is some documentation on it. Thanks for the methods.
Cav, we have queues or queue groups that target multiple groups, either as the primary or the secondary target and we have wallboard. An agent can look and see that Queue A has the longest waiting call over Queue B and expects a call from Queue A. However we have different priorities based on other criteria besides wait time, so they get the call from Queue B and don't understand why (since the other queue had a longer waiting call). If the highest priority was shown for each queue or queue group, then it would be more evident which call from which queue they were going to receive.
-
For attached data based approach some "overheadless" alternative to looping might be function CheckUp[interval in sec, subroutine name] somewhere at the very beginning of call processing can be used. It will result periodical execution of provided subroutine in asynchronous mode in context of current call. Subroutine supposed to have no input or output parameters.
Having very simple subroutine (named for example AttachPriority) with logic like:
if (GetPriority[]!=UData['CallPriority']) Update['CallPriority', GetPriority[]]
then CheckUp[10, 'AttachPriority'] results in URS for this call every 10th sec will refresh attached data with call's priority, transparently for main processing logic.
For some description of URS http interface 8.1.4 documentation to be checked plus web requst 'urs/help' to URS itself aslo can be used (if web api is configured(enabled), check the very beginning of URS logs for something like:
Universal Routing Server: 8.1.300.36
WEB Client: enabled (7001)
HTTP Server: enabled (http://myhost:2082/urs/help)
SOAP Server: disabled (0)
-
Just another idea only...if you do Priority on a call just attach a KVP like "Prioritized" = "Yes", so now on CCPulse you show amount of normal queued vs priority calls...maybe that can help with out many dev