Genesys CTI User Forum
Genesys CTI User Forum => Genesys CTI Technical Discussion => Topic started by: Gef Buneri on May 22, 2014, 02:17:19 PM
-
Hello all again,
I'm facing again a scenario I already worked in the past, without a solution; I would like to play a message wit the agent number information, after the SelectDN function in a strategy.
I've got this IVR IRD (7.5) application (URS 7.5) in wich I use a function like:
SelectDN[VQ_NAME,GetPriority[],'',StatSelectAny,AGENT_GROUP,'','','','','','','','','']
That generates a string like:
15:51:01.747_M_I_009c024525e47957 [10:1b] blocking: agent 8825, place 042SX029, switch Switch001 dn 45129 is blocked for 10 sec by 753755, will expire 1400766671
result of SelectDN: STRING: return:ok|n:514953|vq:VQ_130_DISATTIVAZIONE_IN|dn:45129|rdn:45129|switch:Switch001|agent:8825|place:042SX029|target_location:StatServer75URS|target_name:Tiscali_Indagine_Q|target_type:GA|stat_value:0
Ok, at this point I would like to play the agent information, but the only method I've got in my architecture, is to invoke a PlayGVP application (201: Play&Exit) that plays a .vox file placed on IPCS and exits from GVP, allowing the distribution of the call.
Till here all fine... it worsks, but... I lose the target validity; If I try to force that target the SelectDN wrote, the router says "target not valid or not current". Game over, I have to do a new SelectDN and nothing guarantees that agent will be available.
Tips ? Offenses accepted too ;)
Regards,
Gef.
-
I've never tried what you are doing, but have you looked to see if you are exceeding the time you have configured for agent reservation while playing the agent info?
-
As fas as I know despite this message about not current target call is still routed to the target.
Also in case of using second SelectDN (better apply it just to previously selected agent not to entire agent gtoup) agent can become not available then routing to him will fail anyway so unlikely second SelectDN can make any harm.
And (I may be wrong but) blocking just for 10 seconds might be too small - if treatment will be played longer then selected agent could very easily really becomes unavailable (the same router will send to this agent some other call if playing message will take longer then 10 sec).
-
Thanks guys; the idea is to reserve the agent for a longer time, to try to force a new selectdn on the specific agent.
If possible, where do I should set this reservation ? On the SelectDN block itself ?
-
Usually it is either transition_time option or BlockDN function (as input i t uses result of SelectDN)
-
Thanks Terry, so I should create a variable containing the whole SelectDN function result string, and use it as SuspendDN function input value ?
-
If you need to explicitely block/unblock some target (agent or place) - then yes.
(I mean that it is easiest way as you anyway have result of SelectDN in some variable).
-
To you, Terry, the BlockDN could work in the scenario I described ? And after the BlockDN function, the new SelectDN function on that specific agent will see him as a free resource ?
-
Supposed to work. Meaning that BlockDN function blocks agent for all calls except the one executing BlockDN function.
-
Hi all, I'm finally trying to concrtize this scenario, but something isn't going right.
Resuming, I have to play the agent DN with .vox audio files, but the only way I can use is to invoke the ipcs throug a studio app of various kind (play&continue, play&exit, etc.). So the flow is:
1. In strategy, I use a SelectDN function with a VQ and an AG to choose the target (SatSelectAny stat)
2. On agent selection, I would like to use a play&exit (or continue) application to play the agent ID.
3. On audio message end, I will route the call on that specific agent.
A tried some solutions, but with no useable result.
Here some logs:
http://web.tiscali.it/modifiche/case_002.7z
-
in logs while playing agent id (or just after) URS get EventAbandoned for this call and agent is reselected
after that.
Target (re)selection for calls that URS believes are abandoned not possible (selecting function will just return with error message).
If EventAbandoned is normal part of treatment ending then (as URS doesn't know that) probably it will be needed on agent selection in first place atach selection data to the call and later after ababndonong when call appear agin on some DN just route call to stored in attavhed data agent.
-
Yes, the play&exit app generates an event abandoned; the treatment strategy defined in "OnCallAbandoned function starts and I try to route the call with a selection block, using as a target the syntax agentid@statserver.A, but at that point the selection fails and it starts an endless loop of "agent id play -> selection fail". Tried with blockdn,xx agentid.A and just before the selection block blockdn,0 agent.A, but nothing changes.
***EDIT***
An extract from logs:
12:09:42.004_M_I_ [10:1d] PULSE (calls: 71(72)=68+5-2, targets=6, time=1406282982, mem=0,464731,5395,926,305,72)
_M_I_0000000000000000 [10:20] try to route to agent "8507" (place "032DX094", 1 ready DNs reported)
12:09:42.005_M_I_ [10:0a] object 032DX094|Resources| is unblocked
_M_I_ [10:0b] agent 8507, place 032DX094, switch dn isn't blocked absolutely(0)
_M_I_009c024525f9e86b [10:21] try to route to agent "8507" (place "032DX094", 1 ready DNs reported)
_T_I_009c024525f9e86b [0E:19] check call routing states: state=7 delivery=5 treatment=3 held=0 reserving=0 ivr=0 - false
_M_I_009c024525f9e86b [10:21] state of call isn't good for routing
_M_I_0000000000000000 [10:20] try to route to agent "8634" (place "032DX084", 1 ready DNs reported)
_M_I_ [10:0b] agent 8634, place 032DX084, switch dn isn't blocked absolutely(2747602)
-
Abandoned is abandoned, nothing to re-route. Check TServer what Event is triggering this on URS.
-
Abandoned event is generated by the play&exit application (a studio application invoked by app id using a play block on ird).
-
You are saying that you can't route to an agent after applying a treatment. If you get an EventAbandon you can't control the call as there is no call anymore, you use that usually to write some UData to a DB or similar only. No Call Handle functions.
Your issue is WHY is that EventAbandon happening, check TServer and get some more details. URS will not tell everything
-
Thank you a lot Cavagnaro, I'll go deep in logs to understand that abandoned event and how (or if) I can do something about it.
-
While indagating logs, let's change pov...
In the actual context, the only way I have to play an audio file, is to invoke gvp with the:
DeliverCall['return:ok|dn:601|rdn:601|switch:GVP|target_location:StatServer75URS|target_name:601_GVP|target_type:RP',DELIVERTOAGENT] function, in order to use the studio application (play&exit/continue/collect) that plays a .vox file loaded on IPCMs prompt directory. I can't use the play&continue app 'cause after this the interaction doesn't leaves the gvp and I can't route it... though I can't use the play&exit app too, 'cause it generates that eventabandoned leavimg me without nothing to route.
So my question is: "What I need to play a message with. i.e., a play announcement block ?"
In other words, how can I check if I've got all I need to play a message out of the gvp box ?
-
On GVP it should be a Prompt...
Maybe you receive as UData the AgentID, on GVP script you get it [AgentID] and add a ".WAV", which would be the WAV file on the prompts? Or TTS maybe?
-
Sadly no TTS in my system. The message should be a agentid.vox/.wave message, using the agent id extracted from the select dn. At the moment I pass the 4 numbers agent id to the play application using a variable; the play application plays the four numbers as number1.vox,number2.vox,... and so on. I do not know if any other method is possible.
-
Ok it is fine and should work, what is not clear to me is your state:
[quote]
in order to use the studio application (play&exit/continue/collect)
[/quote]
-
According to what I've understood, I must use the delivercall to gvp to assign audio resources; if I didn't do so, the play application doesn't works. If I use the delivercall for gvp resource recall, the only way I know to efficiently exit from gvp is using the play&exit application (a studio app called through a play app ird block). This flow generates the eventabandoned.
-
can you post a screenshot of your IRD and GVP apps?
-
No problem for ird app, but I haven't studio apps sources. Can I reverse compile it from somewhere ? (think they're deployed in IPCMs, somewhere).
Keep in mind that in the "out" app there's a "oncallabandoned" declaration, to use the eventabandoned in order to recall the "abb_out" app.
http://web.tiscali.it/modifiche/out.png
http://web.tiscali.it/modifiche/out_abb.png
-
lol, will send you a PM mate