Genesys CTI User Forum
Genesys CTI User Forum => Genesys CTI Technical Discussion => Topic started by: mikemcquaid on March 06, 2017, 06:49:34 PM
-
Hello,
Can some please explain the reason I need VQ's. In looking at the stat server guide, it seems like I need a Queue and a VQ for each skill I want to report on, is this correct? So if I have a sales_Q would I need to create a sales_VQ to be able to get stats on it?
If so, I have never had to set up VQs in previous call centers to get reporting. Any clarification on how to set up and the reason I need VQs would be greatly appreciated.
-
What is Virtual Queue?
Virtual Queue is a logical queue where an interaction is queued if the target is not available. Virtual queues can be associated with any target type like agent, agent groups, place and place groups and commonly used for reporting purpose.
Events on virtual queues are similar to those on actual queues and URS simply uses T-Server to distribute queue events (EventQueued, EventDiverted and EventAbandoned) to the Stat Server for reporting purpose.
How it works?
When an interaction is waiting for a target, URS requests T-Server to distribute an ‘EventQueued‘ for the virtual queue. For Stat Server, this means that interaction is queued for target and will start calculating stats.
When target is available and interaction is routed to target, URS requests T-Server to distribute ‘EventDiverted‘ for the virtual queue.
If the customer hangs up while waiting for the target, URS requests T-Server to distribute ‘EventAbandoned‘ for the virtual queue.
To understand it better, I developed sample routing strategy where call is simply routed to agent ‘agent01’. Let’s see all the above scenarios from URS and T-Server log files.
From URS logs, we can see that call with ConnID ‘006c02462a161006’ is now entering strategy ‘VQDemo’ and immediately targeting agents with Skill ‘Skill1’
_I_I_006c02462a161006 [14:33] strategy: *0x65*VQDemo is attached to the call
16:56:45.741 Int 20001 interaction 006c02462a161006 is started
_I_I_006c02462a161006 [01:14] current call classification: media=voice(100), service=default(200), segment=default(300)
16:56:45.741_I_I_006c02462a161006 [09:06] >>>>>>>>>>>>start interpretator
_I_I_006c02462a161006 [09:04] ASSIGN: __Return(SCRIPT) <- STRING:
_I_I_006c02462a161006 [07:46] no error mode for this call
_I_I_006c02462a161006 [09:04] ASSIGN: __Return(SCRIPT) <- STRING:
_I_I_006c02462a161006 [09:04] ASSIGN: __DBReturn(SCRIPT) <- STRING:
_I_I_006c02462a161006 [09:04] ASSIGN: __DBStrReturn(SCRIPT) <- STRING:
_I_I_006c02462a161006 [09:04] ASSIGN: __TargetVar(SCRIPT) <- STRING:
_I_I_006c02462a161006 [07:14] expression translating: Skill1 > 1 -> Skill1 > 1
16:56:45.741_I_I_006c02462a161006 [07:07] HERE IS TARGETS
TARGETS: ?:Skill1 > 1@RoutingStatServer.GA
EventQueued message while waiting for target
URS now requests T-Server to send ‘EventQueued’ message for this virtual queue as seen below
request to 65200(TServer) message RequestDistributeEvent
AttributeCallUUID ‘AM5D3AE9D90757BKTSVJTCIAR4000014’
AttributeTimeout 60
AttributeExtensions [194] 00 07 00 00..
‘SIGNATURE’ ‘router’
‘NAME’ ‘URS76’
‘VERSION’ ‘Version: 7.6.200.11’
‘CLUSTER’ ‘URS76’
‘VQID’ ‘N6NKOJMDT16I93HFG6V041D9L0000001’
‘Location’ ‘AvayaSwitch’
‘CallUUID’ ‘AM5D3AE9D90757BKTSVJTCIAR4000014’
AttributeDNIS ‘0800123456’
AttributeOtherDNRole 1
AttributeOtherDN ‘20005’
AttributeThisDNRole 2
AttributeThisQueue ‘VQ_Sales’
AttributeThisDN ‘VQ_Sales’
AttributeCallType 2
AttributeCallID 16
AttributeConnID 006c02462a161006
AttributeCustomerID ‘Resources’
AttributeReferenceID 4294967295
AttributeUserEvent EventQueued
EventDiverted Request to T-Server – When it will be sent?
When the target is available, URS requests T-Server to route to the target using ‘RequestRouteCall’. After receiving event ‘EventRouteUsed’, URS requests T-Server to send ‘EventDiverted’ event as seen below
16:56:45.834_T_I_006c02462a161006 [14:0c] EventRouteUsed(normal) is received for tserver TServer[AvayaSwitch] (this dn=9001)
_T_I_006c02462a161006 [14:0a] del DN (TServer[AvayaSwitch] 9001) truly(ref.id=12)
_T_I_006c02462a161006 [14:0a] there is no DNs for call, delivering in progress
request to 65200(TServer) message RequestDistributeEvent
AttributeCallUUID ‘AM5D3AE9D90757BKTSVJTCIAR4000014’
AttributeTimeout 60
AttributeExtensions [194] 00 07 00 00..
‘SIGNATURE’ ‘router’
‘NAME’ ‘URS76’
‘VERSION’ ‘Version: 7.6.200.11’
‘CLUSTER’ ‘URS76’
‘VQID’ ‘N6NKOJMDT16I93HFG6V041D9L0000001’
‘Location’ ‘AvayaSwitch’
‘CallUUID’ ‘AM5D3AE9D90757BKTSVJTCIAR4000014’
AttributeReason [14] 00 01 01 00..
‘RTR’ 115
AttributeUserData [598] 00 16 00 00..
‘RTargetAgentGroup’ ‘?:Skill1 > 1’
‘RVQID’ ‘N6NKOJMDT16I93HFG6V041D9L0000001’
‘RTargetTypeSelected’ ‘2’
‘RTargetRuleSelected’ ”
‘RTargetObjectSelected’ ‘?:Skill1 > 1’
‘RTargetObjSelDBID’ ”
‘RTargetAgentSelected’ ‘agent01’
‘RTargetPlaceSelected’ ‘Place_6001’
‘RTenant’ ‘Resources’
‘RStrategyName’ ‘VQDemo’
‘RStrategyDBID’ ‘107’
‘CBR-actual_volume’ ”
‘CBR-Interaction_cost’ ”
‘CBR-contract_DBIDs’ ”
‘CBR-IT-path_DBIDs’ ”
‘RRequestedSkillCombination’ ”
‘RRequestedSkills'(list)
‘RTargetRequested’ ‘?:Skill1 > 1’
‘CustomerSegment’ ‘default’
‘ServiceType’ ‘default’
‘ServiceObjective’ ”
‘PegAG?:Skill1 > 1’ 1
AttributeDNIS ‘0800123456’
AttributeThirdPartyDNRole 2
AttributeThirdPartyDN ‘6001’
AttributeOtherDNRole 1
AttributeOtherDN ‘20005’
AttributeThisDNRole 2
AttributeThisQueue ‘VQ_Sales’
AttributeThisDN ‘VQ_Sales’
AttributeCallType 2
AttributeCallID 16
AttributeConnID 006c02462a161006
AttributeCustomerID ‘Resources’
AttributeReferenceID 4294967295
AttributeUserEvent EventDiverted
-
Since Stat Server registers for virtual queues, it will receive event messages – EventQueued and EventDiverted – for virtual queues just like physical queues and calculates statistics accordingly.
I pasted the above from a blog
-
I did read that blog, and was still confused. So does this mean without VQ I cannot get stats, correct?
But I can still get historical reports without VQs?
-
If there are no available agents, calls will be waiting in virtual queue--- this is where the music/treatments are played
stat server monitors this virtual queues, and displays how many calls are waiting in CCpulse
hope this helps.
i will wait for other folks to chime in
-
Ok, that makes sense. So a few folks here are thinking we can pick and choose when to use or not us a VQ, but from that explanation, we need them for any and all skills that will queue up to an agent, is this accurate?
When I say "few folks here" I mean at my company, not this forum :D
-
I am not expert in routing.
If they target agent group and there are no agents, i am not sure how it works then.
for example from your environment, take an working agent and draw a diagram of agent group/virtual queue/ DN group
you will get an idea with that chart
-
If you need VQ related reporting/statistics (like estimated time the caller will wait) then you need VQs.
If not then not.
-
I have wondered the same thing as the OP for a while now. The environment I'm in currently only makes use of VQ and VAG. They don't use The non virtual equivalents. Now this is a pure SIP environment too so that may be why, but I've never figured out why for sure. Given that there is a DN of type Queue and Virtual Queue, it seems like the OP and I both wonder what the difference is and why a VQ is needed if you have a Q. Can you not get the same statistics off of a Q?
Sent from my iPhone using Tapatalk
-
I see your point and is a valid one. Now guess the following:
You have an strategy which can target to 3 different Agent Groups, each as a different target object. They have 60 seconds of waiting time between them.
Now, before that even you have like a mini IVR asking for options and doing some DB search.
Now, a caller calls your Strategy loaded at your RP (Queue).
So, question, how many calls are in the Queue? A: 1
How many of these are waiting for agents? From Queue POV, impossible to know. They might be still navigating introducing their code and doing the DB part.
There is where you need to use VQ at each Target object to identify each Target S.F. and what are they are doing.
Hope this helps to understand