cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
1080
Views
25
Helpful
10
Replies

Dequeue Step throws an Error

Matthew Martin
Level 5
Level 5

Hello All,

I was requested to have a caller not be marked as abandoned if the caller was in the queue for 15 seconds or less. The thought being that the Agents weren't even given the chane to answer the call before they hung up, or maybe they reached that queue by accident, etc...

So, at the start of the script I get the Current Date/Time and then set a int as the Epoch of that date variable. Then, just before the disconnect step at the end of the script, I get the date again and set another int as the Epoch. Below that is an if statement that compares the 2 epochs, and if it's <= 15, then I was Dequeuing the call. And then finally, after the if statement is the Terminate step.

After doing some testing, the correct true/false branches of the if statement are being selected based off the time I hang up.

Dequeue.png

However, when the Dequeue step is ran, I receive the error:

Failed to get the ICD Channel from the Contact.

Is this not the correct usage of Dequeue?

Thanks in Advance,

Matt

1 Accepted Solution

Accepted Solutions

Calling via subflow has no bearing on this. The fact that the value is handled by script (4), shows that your script is working. The only thing left to do now, is come to terms with the fact that the CSD metric will still show these as abandoned, simply because they are technically not handled (2).

View solution in original post

10 Replies 10

Jonathan Schulenberg
Hall of Fame
Hall of Fame
No, you cannot dequeue a call that is no longer active. You can use the Set Contact Info step to mark the triggering contact handled. CCX has no built-in concept of short call disconnects.

Thanks Jon. Ok cool, I'll give the Set Contact Info step a try. Much appreciated.

-Matt

So I just swapped the Dequeue step for the Set Contact Info step.

In the Set Contact Info step, the only thing I clicked "Set" for was under the "Handled" attribute. However, the call is still getting marked as Abandoned. Am I missing something?

Set Contact Info Step:

Set_Contact_Info.png

 

Supervisor:

Supervisor.png

 

Thanks,

Matt

You _really_ need to get off of CAD/CSD. It's ancient and unsupported at this point.

Does CUIC show the call to be abandoned?

Also, I should have clarified one thing earlier: you do need to use the Dequeue step before leaving the Queued subbranch of the Select Resource step. I presume that the partial screenshot you provided is at the end of the script outside/after the Select Resource step.

Jon, I think they might even be catching the ContactInactiveException and performing this after the Contact is already terminated. If not, then that's the first problem.

However, something important to note is, there is only a small window of opportunity you get to affect the disposition after the Contact terminates, and before the records are written to the ContactCallDetail and ContactQueueDetail tables. The exact timing, I'm not too sure of, but my testing shows that it's less than 2 seconds.

One last thing to note, depending on where you look at the data, you will find a different result. For example, if you have a caller abandon in the queue and you attempt to flag it as handled by the Set Contact Info step, that record will be written as a disposition of 2 in the ContactCallDetail table, but not as a 2 in the ContactQueueDetail table; rather it will be a 4 = Handled by Script.

Now, if you look at the documentation for...and don't shoot me, I'm not promoting it, but CSD, it says:
"Calls Abandoned = Number of calls that were routed to the CSQ but were not answered by an agent because the caller hung up or was disconnected."

This means that the metric is only looking at ContactQueueDetail where disposition <> 2. That could be a 1 (Straight Abandoned), a 4 (Handled by Script) or a 5 (Handled by another CSQ). It's likely not looking at a 3 (Dequeued), because there's a whole new column in CSD for that category.

If you want to see how the reporting categorizes it, you can run the following command on the CLI of the UCCX:

run uccx sql db_cra select disposition from contactqueuedetail where sessionid = 72000339307


Replacing the sessionid with your own sessionid for the call you made.

To get your sessionid, there's a number of ways to do it, but if you're already on the CLI then you can run this command to get your most recent call:

run uccx sql db_cra select limit 1 startdatetime, sessionid, originatordn, applicationname from contactcalldetail where originatordn like '%6125551212' order by startdatetime desc


Replacing the originatordn with your own calling number.

Anthony, thanks for the reply.

I just called in twice and hung up after just a few seconds of being queued. Then, went to CUIC and ran the Contact Service Queue Activity by CSQ report. In that report, both of those calls are being shown as Dequeued.

Also, that's correct, the ContactInactiveException is being hit and that is what sends me to where I'm checking how long the caller was in the queue, and then marking as handled if it's under 15 seconds.

Below shows the script. I left out the bulk of the switch statement that's part of the Queued branch since it's just playing different prompts with each loop. Right after where I show it's "cut", that follows immediately after the Queued branch of the Select Resource step.

Script.png

The resulting output from your SQL command was a 4.

Also, in case it's relevant, this script is being called from another Main Menu type script using Call subflow. We used call subflow so we could keep a running tally of total calls into the system, regardless of what Menu choice the caller selects.

 

Thanks Again,

Matt

Calling via subflow has no bearing on this. The fact that the value is handled by script (4), shows that your script is working. The only thing left to do now, is come to terms with the fact that the CSD metric will still show these as abandoned, simply because they are technically not handled (2).

Got it, thanks Anthony.!

I guess because I was looking at the Wallboard, which was displaying the call as Abandoned. I just assumed the Wallboard creator was showing only "abandoned calls". I guess it's actually just showing those calls as abandoned for any call that isn't technically "Handled" by an Agent.

Is this correct below:
1 = Abandoned
2 = Handled
3 = Dequeued
4 = Handled by Script

Thanks Again,
Matt

In one table, yes. You're also missing (5 - handled by another CSQ). You can see the data definitions in the schema document here:
https://www.cisco.com/c/dam/en/us/td/docs/voice_ip_comm/cust_contact/contact_center/crs/express_10_6/reference/guide/dbschema.pdf

Thanks Jon.

Yea, I'm aware. I've been trying to talk the people above me into moving to Finesse a while back, and they know we have to once we upgrade UCCX to any version higher then what we're currently on. But, unfortunately I don't have the authority to make the switch...

Correct, that screenshot was at the very end of the script. I'll check CUIC and verify if the call is being marked abandoned.

Thanks,
Matt
Getting Started

Find answers to your questions by entering keywords or phrases in the Search bar above. New here? Use these resources to familiarize yourself with the community: