I need to implement the following logic im my script:
A call comes to the queue.
An advertisement message is played.
Increment some variable.
If the variable > 2 play apropriate message and terminate.
I did the folliwing in my script in the Queued branch of the Select Resource step between loops:
If queue_cycle > 2 Then
Play prompt ("Call later...")
Play prompt ("Advertisement...")
Unfortunatelly It works not as I intended. The point is Ring No Answer calls. When the call comes to the queue queue_cycle increments for the first time. Then the call is dispatched to the first agent. After this agent doesn't take it the call comes back to the queue and queue_cycle increments again. Then the call is dispatched to the second agent. If the second agent doesn't take it (it's really possible in my case) the call comes back to the queue. Queue_cycle variable increments third time and the call goes to the True branch of the If step where it terminates. But there are other agents and they can take the call. I need to terminate the call after two cycles in case of agent absence only. Are there any ways to identify the call after it was Ring No Answered? Does the call have any properties after it returns to the queue?
You can do couple of thigs here:
1. Check to see if there are agents logged in before checking the varaible, to do that use the "Get Reporting Statistics" step
2. You can create the script in a way thayt it will not increment the queue_cycle variable when a call requeues, do this perform the following:
Before select resource step create label SELECT_AGNET
under select resource step in the script, check the CONNECT radio button
Under Selected->Failed add goto --> SELECT_AGENT
so this way the call does not go to queue when a call is requeued. All your queue logic goes under Select Resource--> Queued node