01-07-2010 07:53 AM - edited 03-14-2019 05:04 AM
I have a script on IPCC server that currently forwards calls to a specific number.
I want to modify the script such that if someone calls that number if the person
waits for more than 30 seconds unanswered it transfers to another number where there are
available agents to take it.
IPCC version 3.5.3
01-12-2010 10:12 AM
This is how you do it:
At the start of the waiting area, which I think you are referring to the Queued branch of the Select Resource Step, place this step:
Queued
startDateTime = new java.util.Date()
startTime = startDateTime.getTime()
...
QueueLoop:
nowDateTime = new java.util.Date()
nowTime = nowDateTime.getTime()
timeDiff = (nowTime - startTime) / 1000
if (timeDiff >= 30)
True
Redirect Call
False
/* Do nothing */
...
Goto QueueLoop
There is a trade off with checking very often, and missing the caller when the time is 29 seconds, and not checking again for another 30 seconds.
You certainly could not achieve this with your delay of 60 seconds in there. Because the shortest time interval you could achieve would be 60 seconds. And that's not counting the other steps that are in there either.
01-12-2010 11:51 AM
It looks like you already have a Delay step, why not just queue it to the other queue after that point (you can queue to multiple queues at once).
Anthony,
You're going about it the wrong way. Yes, that'll work. But it is unnecessarily complex when you have the Get Reporting Statistic Step available to you.
Reporting Object = "CSQ IPCC Express"
Field = "Current Wait Duration" (this is how long you've been queued)
Row Identifier = CSQ Name or string variable with CSQ name
Result Statistic = Integer to return variable to.
Use that step to get how long you've been in queue, and test against that.
As I said, you're already using a delay step, if you want to queue it to another CSQ after 30 seconds you don't need additional programming logic.
Keep it simple.
Unfortunately this doesn't apply to the OP. 3.5 Doesn't have a Current Wait Duration field (the reporting object is also named differently as I recall) as an available report, so for you, I recommend you reduce your 60 second delay to 30 and then do your additional logic then, it's pointless to try and determine how long they've been in queue when you explicitly control the queue logic as you do.
01-12-2010 06:15 PM
I think you are 100% correct.
However, I was showing this person a method that will work for any call, regardless of being queued.
01-13-2010 08:13 AM
.
Tanner & everyone
Thank you for your reply.
I went ahead and reduced the Delay time to 30seconds.
Right after DELAY 30 SEC i have CALL UNHOLD (CONTACT: TRIGGRING CONTACT)
What logic should i put on there to queue the call to another number.
My first thought is to put a call rediect. would that fix the problem.
I will attach the file i have edited.
thanks all
01-12-2010 09:38 PM
I'd also throw a set contact info step to mark it as handled as well if you successfully redirect the call depending on how you wanted those calls to be represented in the reporting.
Cheers,
Nathan
Discover and save your favorite ideas. Come back to expert answers, step-by-step guides, recent topics, and more.
New here? Get started with these tips. How to use Community New member guide