Calls not droping from Queue after caller hangs up

Unanswered Question
Mar 6th, 2008

CRS - 4.0 (Package: IP IVR)

ICM - 7.1.5

CCM - 4.1

Here is the problem:

When a call is placed in que i send it to external script(VRU) and play some promo messages.

The normal flow is when an agent becomes available the script interupts and sends the call to the agent.

But when the caller hangs up, the call stays in que untill the timeout set in the ICM pases. I have tryed different things to drop the call but it stays as long as the timeout is set. And meanwhile if an agent becomes available - he receives a reservation without a call.

Anyone knows some way to drop it or what is the reason for the missing abortion of the call.

I have tryed some things in CRS - to catch esceptions etc. but call can not be terminated or rejected.

  • 1
  • 2
  • 3
  • 4
  • 5
Overall Rating: 3 (1 ratings)
Loading.
Riccardo Bua Fri, 03/07/2008 - 01:45

Hi Chavdar,

from ICM Configuration Manager you need to mark your VRU script as interruptible, that should do.

Regards,

Riccardo

PS. Please remember to rate useful posts accordingly

Chavdar_Baramov Fri, 03/07/2008 - 01:49

It is marked interruptible. As you can read in my previous post - when agent becomes available it receives the call.

Riccardo Bua Fri, 03/07/2008 - 02:22

Hi Chavdar,

as soon as the media is disconnected the IPIVR should be notified via JTAPI, by the CallManager, only reason to keep playing the prompt was if it is marked uninterruptible on the IPIVR or ICM, since you confirm this not to be the case, you need to check on the MIVR/JTAPI traces if it is saying why the call disconnect event is not received or dealed with properly.

Do you see any exception there?

Regards,

Riccardo

Chavdar_Baramov Fri, 03/07/2008 - 03:53

I have debugged the IPIVR script and placed inside "On Exception go to" step with "ContactInactiveException" - the script catchs this exception (when the call is hanged up) so this means that the disconnect event presents, but the call contact continues to stay in the script without the Telephony part. When the timeout kicks, in the scripts exits from the failure branch (if no agent becomes avail).

I checked the MIVR logs and disconnect event is where it has to be.

Riccardo Bua Fri, 03/07/2008 - 05:24

Hi again,

Whenever the contact hangs up, there are 2 asynchronous events - ContactInactiveException

and ContactInactiveInterruption that get triggered which are to be handled by the workflow

task executor. If these happen to get generated one after the other instantly, one

consumes the other. But since they are asynchronous, if the ContactInactiveInterruption

comes in later, it throws a ContactInactiveException again - if this is not handled, the

call aborts.

You mentioned seeing a ContactInactiveInterruption in the debug.

Do you have a OnException Goto(ContactInactive Exception) step?

And how do you handle it? The Media of the Prompt will eventually played if the exception

occurs after the call was connected, but as soon as the exception is captured the

exception should prevail and the call get disconnected or to be trated like you

programmed in your script.

Regards,

Riccardo

Chavdar_Baramov Fri, 03/07/2008 - 05:49

Yes i have onException goto (com.cisco.contact.ContactInactiveException)

It goes to e different branch of the script where i tryed some methods to drop the call.

When there was no such thing like exception capturing the call stayed at the script for the period set as timeout.

The situation is same with the exception capturing.

When i try to terminate it - the debugger says "Contact is inactive when getting chanel"

I didnt found this "ContactInactiveInterruption".

The real problem is that the script dont terminates in normal ways when caller hangs up, so i tryed to make other branch where i want to put the contact on Delay (forbidden interuption).

The idea was to prevent agents receiving bogus calls. This didnt worked either (the script was set as overridable).

Now i have absolutly normal Que script:

*Accept step

*Set contact info (language)

*Get Enterprise call info (call.peripheralvariables)

*Create Generated Prompt (que lenght)

*Create Generated Prompt (time in que)

*Play Prompt (some media)

*End

Actions

This Discussion