cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
4646
Views
0
Helpful
0
Comments
Yufang Zhou
Cisco Employee
Cisco Employee

Background:


CVP integrated with  ICM as VRU for queueing, customer may deploy and design their queueing  script by the way of looping the script.


In such scenario,  customer will typically have a queueing script that is using a few Run  External Script nodes to invoke Network VRU Script to play a few wav  files. This script will be continuously looping until agent is available  or the number of nodes executed in the loops has exceeded the  <MaxNodesExecuted> registry setting in Router. To illustrate, we  have 10 nodes in the queueing script, and we have three Run External  Script node to play 3 wav files, and normally these 3 wav files length  is total 60 seconds (1 min), So when the script is looped once, the  caller will be queued for about 60 seconds, and the registry key <MaxNodesExecuted> is set to 1000, which means the script can loop  maximum 100 times, meaning the caller can stay in the queue for maximum  100 minutes (1 hr and 40 minutes).


However, when issue happens, it is found that some of the queueing calls are disconnected with error in Router log as:

09:14:28:353 ra-rtr Script Default\\Queueing_Script executed for more that 1000 nodes.

And the disconnected call actually stayed in the queue for  only 15 seconds instead of 100 minutes.

Logs

When  the issue happens, apart from above error is shown in router log, in  CVP logs, we also observe the duration of playing each media file in  vxml gateway for queueing is only a few ms (from RUN_SCRIPT_REQ to play  the wav file to CALL_RESULT, ERROR_CODE=NONE in vxml gateway's HTTP  request):

Mar 25 2011  07:11:25.667 +1000: %CVP_8_0_ICM-7-CALL:   {Thrd=pool-1-thread-124-ICM-184814} CALLGUID =  A398BE889B9311C0947EE05FB9CF1E07, DLGID = 17462 [IVR_LEG] - Publishing  ,, [MsgBus:RUN_SCRIPT_REQ],   ssId=SYS_IVR2,   requestId=7,    scriptId=PM,-2,   scriptConfig=,   ced=3,   rckey=756,   rcday=240921,    rcseq=1,   switch_leg_ani=00312345678,   switch_leg_dnis=402101,    CallContext:,     CallVariable2: Root/test.wav,     CallVariable5:   user.microapp.error_code: 0,      user.microapp.input_type: D,     user.microapp.app_media_lib: user,      user.microapp.media_server: http://CVP2/Media,     user.media.id: 

A398BE889B9311C0947EE05FB9CF1E07

,     user.microapp.metadata:  D|100|01|00|00|001140|M,-2,     user.microapp.locale: en-us,, LEGID = ,  DNIS = 12345678, ANI = sip:00312345678@10.1.1.1:5060 

Mar 25 2011 07:11:25.683 +1000: %CVP_8_0_IVR-7-CALL:   {Thrd=http-8000-3} VBServlet:service: HTTP Request from 10.1.1.12: {  CALL_ID=A398BE889B9311C0947EE05FB9CF1E07, MSG_TYPE=CALL_RESULT,  CALL_SEQ_NUM=7, ERROR_CODE=NONE(0) } 

Because the play  media only last for 16ms, so eventually one loop will only take about 100ms,  and in 10 seconds, 1000 nodes will be exhausted.


Root Cause:


CVP  mandate that Run External Script node is set to interruptible so that  ICM can interrupt the script to transfer the call to agent when  available. By default, barged-in is enabled in Network VRU script for  allowing user input and interaction during playing media, The Cisco  VoiceXML implementation includes a type-ahead buffer in vxml gateway  that holds DTMF digits collected from the caller. When the VoiceXML form  interpretation algorithm collects user DTMF input, it uses the digits  from this buffer before waiting for further input. From CVP 8.x there is  a parameter controls whether the type-ahead buffer is flushed after the  prompt plays out. A false value (default) means that the type-ahead  buffer is notflushed after the prompt plays out. If the prompt allows  barge-in, the digit that barges in is not flushed.

As a result,  when the queueing script is executing and looping, and if the caller  enters one digit from key pad, the digit will be buffered and all the  play media steps will be interrupted, and as result, the loop will be  executed much quicker and reach the node limit in very short time.

Resolution:

1. Disable barge-in in Network VRU script configuration parameter, or

2. Disable type-ahead buffer in Network VRU script configuration parameter.

CVP 8.x configuration and administrator guide, section for Network VRU script configuration.

Jeffrey

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: