" /> What exactly is a Virtual Queue and why? - Genesys CTI User Forum

Author Topic: What exactly is a Virtual Queue and why?  (Read 5611 times)

Offline mikemcquaid

  • Newbie
  • *
  • Posts: 5
  • Karma: 0
What exactly is a Virtual Queue and why?
« on: March 06, 2017, 06:49:34 PM »
Advertisement
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.

Offline vjicecool

  • Full Member
  • ***
  • Posts: 127
  • Karma: -1
Re: What exactly is a Virtual Queue and why?
« Reply #1 on: March 06, 2017, 06:53:29 PM »
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

Offline vjicecool

  • Full Member
  • ***
  • Posts: 127
  • Karma: -1
Re: What exactly is a Virtual Queue and why?
« Reply #2 on: March 06, 2017, 06:54:57 PM »
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

Offline mikemcquaid

  • Newbie
  • *
  • Posts: 5
  • Karma: 0
Re: What exactly is a Virtual Queue and why?
« Reply #3 on: March 06, 2017, 07:02:58 PM »
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?
« Last Edit: March 06, 2017, 07:10:06 PM by mikemcquaid »

Offline vjicecool

  • Full Member
  • ***
  • Posts: 127
  • Karma: -1
Re: What exactly is a Virtual Queue and why?
« Reply #4 on: March 06, 2017, 07:13:32 PM »
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

Offline mikemcquaid

  • Newbie
  • *
  • Posts: 5
  • Karma: 0
Re: What exactly is a Virtual Queue and why?
« Reply #5 on: March 06, 2017, 07:15:37 PM »
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

Offline vjicecool

  • Full Member
  • ***
  • Posts: 127
  • Karma: -1
Re: What exactly is a Virtual Queue and why?
« Reply #6 on: March 06, 2017, 07:21:20 PM »
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


Offline terry

  • Sr. Member
  • ****
  • Posts: 328
  • Karma: 35
Re: What exactly is a Virtual Queue and why?
« Reply #7 on: March 06, 2017, 11:23:00 PM »
If you need VQ related reporting/statistics (like estimated time the caller will wait) then you need VQs.
If not then not.

Offline zimmerru

  • Newbie
  • *
  • Posts: 17
  • Karma: 0
What exactly is a Virtual Queue and why?
« Reply #8 on: March 07, 2017, 03:28:35 PM »
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
« Last Edit: March 07, 2017, 03:30:30 PM by zimmerru »

Offline cavagnaro

  • Administrator
  • Hero Member
  • *****
  • Posts: 7641
  • Karma: 56330
Re: What exactly is a Virtual Queue and why?
« Reply #9 on: March 07, 2017, 06:27:43 PM »
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