The documentation set for this product strives to use bias-free language. For the purposes of this documentation set, bias-free is defined as language that does not imply discrimination based on age, disability, gender, racial identity, ethnic identity, sexual orientation, socioeconomic status, and intersectionality. Exceptions may be present in the documentation due to language that is hardcoded in the user interfaces of the product software, language used based on RFP documentation, or language that is used by a referenced third-party product. Learn more about how Cisco is using Inclusive Language.
This document describes how to configure the OnException Goto step in a Unified Contact Center Express (UCCX) script.
The problems seen in many call flows are caused by an incorrect use of this step. This best practice aims at preventing issues in the call flow and Engine level while using this feature.
The OnException for a ContactInactiveException is used for scenarios where you already disconnect the call (no longer active), i.e terminated at the far end.
These images show a common way to configure this step and have the Goto step point to the end of the script.
However, refer to this image in the incorrect scenarios, the Terminate step is used after the End label, for an already disconnected call.
What happens is, when you disconnect the call while the script is being executed, the OnException step gets executed 1000 times and generates an alert ("Maximum number of steps reached : 1000") . Although this error does not impact the Engine or production, it is a problem on the Engine, and it generates an alert.
The reason is that Terminating a call that is already Inactive (droped by the remote party) causes another ContactInactiveException to generate.
In essence, Contact Inactive Exceptions is continously looped and generated, which causes more Exceptions to generate. It is an Exception loop.
These logs show the issue:
// application getting triggered//
Line 1999: Trigger: ContactApplicationTrigger[time=1526359880518,locale=en_US,cfg=JTAPITriggerConfig[schema=ApplicationTriggerConfig,time=2018-05-13 04:51:23.0,recordId=928,desc=Cisco JTAPI Trigger,name=3014804565,type=Cisco JTAPI Trigger,appName=Clinical_Center_Admin,enabled=true,sessions=2,idleTimeout=5000,locale=en_US,parms={},taskGroups=[],controlClass=class com.cisco.call.CallControlChannel,controlGroupId=7,contactGroups=[GroupInfo[class=com.cisco.dialog.DialogChannel,id=0]],dn=3014804565,redirectCSS=default,cmDeviceName=ClinicalCAdmin,cmDeviceInvalid=false,cmDescription=Clinical Center Admin,cmDevicePoolUUID={ED1A849A-1601-36F6-3254-25D867408A73},cmDevicePoolName=CIT_UCCX_DP,cmCallingSearchSpaceUUID=,cmCallingSearchSpaceName=None,cmLocationUUID={29C5C1C4-8871-4D1E-8394-0B9181E8C54D},cmLocationName=Hub_None,cmPartitionUUID={11C5CF59-66A5-02E4-9A1B-A5B2853B9127},cmPartitionName=All-Phones_pt,cmVoiceMailProfileUUID=,cmVoiceMailProfileName=None,cmCallPickUpGroupUUID=,cmCallPickUpGroupName=,cmDisplay=...
Line 2001: ID: 29000007909
Line 2099: 1934897: May 15 00:51:20.521 EDT %MIVR-ENG-7-UNK:[MIVR_ENG_TASKS-31-3-TASK:0x6c08900e5_ClinicalCenter/ClinicalCenter_ADMIN.aef] WFTracingLogImpl: Execute step of Task 29000007909 : Start
Line 2101: 1934899: May 15 00:51:20.521 EDT %MIVR-ENG-7-UNK:[MIVR_ENG_TASKS-31-3-TASK:0x6c08900e5_ClinicalCenter/ClinicalCenter_ADMIN.aef] WFTracingLogImpl: Execute step of Task 29000007909 : On Exception(ContactInactiveException) Goto End
Line 2139: 1934937: May 15 00:51:20.524 EDT %MIVR-ENG-7-UNK:[MIVR_ENG_TASKS-31-3-TASK:0x6c08900e5_ClinicalCenter/ClinicalCenter_ADMIN.aef] WFTracingLogImpl: Execute step of Task 29000007909 : Delay 1 sec
Line 2142: 1934940: May 15 00:51:21.525 EDT %MIVR-ENG-7-UNK:[MIVR_ENG_TASKS-31-3-TASK:0x6c08900e5_ClinicalCenter/ClinicalCenter_ADMIN.aef] WFTracingLogImpl: Execute step of Task 29000007909 : Accept (--Triggering Contact--)
// Customer disconnecting the call//
Line 2257: 1935055: May 15 00:51:36.481 EDT %MIVR-SS_TEL-7-UNK:[MIVR_SS_TEL_PORT_QEXE_2951-77-2-TERM_CONN_EV:2951] RequestImpl: CallID:3586 MediaId:11102124/2 Task:29000007909 gets TermConnDroppedEv, meta code:132, cause code:100
Line 2258: 1935056: May 15 00:51:36.481 EDT %MIVR-SS_TEL-7-UNK:[MIVR_SS_TEL_PORT_QEXE_2951-77-2-TERM_CONN_EV:2951] RequestImpl: CallID:3586 MediaId:11102124/2 Task:29000007909, TerminalConnection to Terminal: ClinC_2951 is DROPPED, 11102124/2
// call is ended and call loops and END step is executed for 1000 times and RTMT alert is generated for the dissconnected call//
Line 2260: 1935058: May 15 00:51:36.488 EDT %MIVR-ENG-7-UNK:[MIVR_ENG_TASKS-31-3-TASK:0x6c08900e5_ClinicalCenter/ClinicalCenter_ADMIN.aef] WFTracingLogImpl: Execute step of Task 29000007909 : End:
Line 3260: 1936058: May 15 00:51:36.569 EDT %MIVR-ENG-7-UNK:[MIVR_ENG_TASKS-31-3-TASK:0x6c08900e5_ClinicalCenter/ClinicalCenter_ADMIN.aef] WFTracingLogImpl: Execute step of Task 29000007909 : Terminate (--Triggering Contact--)
Line 3261: 1936059: May 15 00:51:36.573 EDT %MIVR-APP_MGR-3-TASK_ABORTED:[MIVR_ENG_TASKS-31-3-TASK:0x6c08900e5_ClinicalCenter/ClinicalCenter_ADMIN.aef] WFWorkflowAppDebugTaskWrapper: Application task aborted: Application=App[name=Clinical_Center_Admin,type=Cisco Script Application,id=400,desc=Clinical_Center_Admin,enabled=true,max=2,valid=true,cfg=[ApplicationConfig[schema=ApplicationConfig,time=2015-01-13 23:42:42.0,recordId=131,desc=Clinical_Center_Admin,name=Clinical_Center_Admin,type=Cisco Script Application,id=400,enabled=true,sessions=2,script=SCRIPT[ClinicalCenter/ClinicalCenter_ADMIN.aef],defaultScript=,vars=[],defaultVars=null]]],Application Trigger=ContactApplicationTrigger[time=1526359880518,locale=en_US,cfg=JTAPITriggerConfig[schema=ApplicationTriggerConfig,time=2018-05-13 04:51:23.0,recordId=928,desc=Cisco JTAPI Trigger,name=3014804565,type=Cisco JTAPI Trigger,appName=Clinical_Center_Admin,enabled=true,sessions=2,idleTimeout=5000,locale=en_US,parms={},taskGroups=[],controlClass=class com.c...
Line 3261: 1936059: May 15 00:51:36.573 EDT %MIVR-APP_MGR-3-TASK_ABORTED:[MIVR_ENG_TASKS-31-3-TASK:0x6c08900e5_ClinicalCenter/ClinicalCenter_ADMIN.aef] WFWorkflowAppDebugTaskWrapper: Application task aborted: Application=App[name=Clinical_Center_Admin,type=Cisco Script Application,id=400,desc=Clinical_Center_Admin,enabled=true,max=2,valid=true,cfg=[ApplicationConfig[schema=ApplicationConfig,time=2015-01-13 23:42:42.0,recordId=131,desc=Clinical_Center_Admin,name=Clinical_Center_Admin,type=Cisco Script Application,id=400,enabled=true,sessions=2,script=SCRIPT[ClinicalCenter/ClinicalCenter_ADMIN.aef],defaultScript=,vars=[],defaultVars=null]]],Application Trigger=ContactApplicationTrigger[time=1526359880518,locale=en_US,cfg=JTAPITriggerConfig[schema=ApplicationTriggerConfig,time=2018-05-13 04:51:23.0,recordId=928,desc=Cisco JTAPI Trigger,name=3014804565,type=Cisco JTAPI Trigger,appName=Clinical_Center_Admin,enabled=true,sessions=2,idleTimeout=5000,locale=en_US,parms={},taskGroups=[],controlClass=class com.c... Line 2261: 1935059: May 15 00:51:36.488 EDT %MIVR-ENG-7-UNK:[MIVR_ENG_TASKS-31-3-TASK:0x6c08900e5_ClinicalCenter/ClinicalCenter_ADMIN.aef] WFTracingLogImpl: Execute step of Task 29000007909 : Terminate (--Triggering Contact--)
//RTMT ALERT//
Message: : 235: citvoip-ccxsvr-b.net.nih.gov: May 15 2018 12:40:22 AM.980 UTC : %UC_APP_MGR-3-TASK_ABORTED: %[app.trigger=ContactApplicationTrigger[time=1526344761313,locale=en_US,cfg=JTAPITriggerConfig[schema=ApplicationTriggerConfig,time=2018-05-13 ][exception=com.cisco.wfframework.obj.WFMaxExecutedStepsExceededException: No. of executed steps: 1000][UNKNOWN_PARAMTYPE:Task id=29000007864][app=App[name=NLM_Inbound,type=Cisco Script Application,id=202,desc=NLM_Inbound,enabled=true,max=50,valid=true,cfg=[ApplicationConfig[][task.class=class com.cisco.app.impl.WFWorkflowAppDebugTaskWrapper][ClusterID=][NodeID=citvoip-ccxsvr-b]: Application task aborted
To fix this issue, you need to skip the Terminate step after the Goto Label, i.e refer figure 2 configure the Goto step's END label step after the Terminate step, or remove the OnException step altogether and corresponding END Label.
The summary is not to Terminate an already InActive call and try to Catch the ContactInactive Exception. This is logically flawed.
This is the image of the correct script.
Working Logs
// working call// Line 5048: 1951439: May 15 01:39:50.491 EDT %MIVR-ENG-7-UNK:[MIVR_ENG_TASKS-31-7-TASK:0x6c08900eb_ClinicalCenter/ClinicalCenter_ADMIN.aef] WFTracingLogImpl: Execute step of Task 29000007915 : Start Line 5049: 1951440: May 15 01:39:50.491 EDT %MIVR-ENG-7-UNK:[MIVR_ENG_TASKS-31-7-TASK:0x6c08900eb_ClinicalCenter/ClinicalCenter_ADMIN.aef] WFTracingLogImpl: Execute step of Task 29000007915 : Delay 2 sec Line 5112: 1951503: May 15 01:39:52.492 EDT %MIVR-ENG-7-UNK:[MIVR_ENG_TASKS-31-7-TASK:0x6c08900eb_ClinicalCenter/ClinicalCenter_ADMIN.aef] WFTracingLogImpl: Execute step of Task 29000007915 : Accept (--Triggering Contact--) Line 5116: 1951507: May 15 01:39:52.500 EDT %MIVR-SS_TEL-7-UNK:[MIVR_SS_TEL_PORT_QEXE_2903-82-2-TERM_CONN_EV:2903] RequestImpl: CallID:3591 MediaId:11104504/2 Task:29000007915, TerminalConnection to Terminal: ClinC_2903 is ACTIVE Line 5120: 1951511: May 15 01:39:52.501 EDT %MIVR-SS_TEL-7-UNK:[(P1-10.129.7.10) EventThread] InCallObserverImpl: CallID:3591 MediaId:11104504/2 Task:29000007915 com.cisco.jtapi.CiscoMediaOpenLogicalChannelEvImpl received //customer disconnects the call// Line 5232: 1951623: May 15 01:40:10.953 EDT %MIVR-SS_TEL-7-UNK:[MIVR_SS_TEL_PORT_QEXE_2903-82-2-TERM_CONN_EV:2903] RequestImpl: CallID:3591 MediaId:11104504/2 Task:29000007915 gets TermConnDroppedEv, meta code:132, cause code:100 Line 5233: 1951624: May 15 01:40:10.953 EDT %MIVR-SS_TEL-7-UNK:[MIVR_SS_TEL_PORT_QEXE_2903-82-2-TERM_CONN_EV:2903] RequestImpl: CallID:3591 MediaId:11104504/2 Task:29000007915, TerminalConnection to Terminal: ClinC_2903 is DROPPED, 11104504/2 Line 5236: 1951627: May 15 01:40:10.955 EDT %MIVR-SS_TEL-7-UNK:[MIVR_SS_TEL_PORT_QEXE_2903-82-2-TERM_CONN_EV:2903] CallImpl: Call.abandoned() JTAPICallContact[id=3591,type=Cisco JTAPI Call,implId=11104504/2,active=false,state=CALL_DISCONNECTED,inbound=true,handled=false,locale=en_US,aborting=false,app=App[name=Clinical_Center_Admin,type=Cisco Script Application,id=400,desc=Clinical_Center_Admin,enabled=true,max=2,valid=true,cfg=[ApplicationConfig[schema=ApplicationConfig,time=2018-05-15 01:38:54.0,recordId=1168,desc=Clinical_Center_Admin,name=Clinical_Center_Admin,type=Cisco Script Application,id=400,enabled=true,sessions=2,script=SCRIPT[ClinicalCenter/ClinicalCenter_ADMIN.aef],defaultScript=,vars=[],defaultVars=null]]],task=29000007915,session=Session[id=001-0x131794c237,parent=null,active=true,state=SESSION_IDLE,time=1526362790448],seqNum=0,time=1526362790447,cn=3014804565,dn=3014804565,cgn=2673343616,ani=null,dnis=null,clid=null,atype=DIRECT,lrd=null,ocn=3014804565,odn=null,uui=null,aniii=null,ced=n... Line 5237: 1951628: May 15 01:40:10.956 EDT %MIVR-SS_TEL-7-UNK:[MIVR_SS_TEL_PORT_QEXE_2903-82-2-TERM_CONN_EV:2903] InCallObserverImpl: CallID:3591 MediaId:11104504/2 Task:29000007915, released TP[type=Cisco CTI Port,id=25,implId=2903,active=false,state=IDLE] from 3014804565, and releasing udpPort 28084 Line 5238: 1951629: May 15 01:40:10.956 EDT %MIVR-SS_TEL-7-UNK:[MIVR_SS_TEL_PORT_QEXE_2903-82-2-TERM_CONN_EV:2903] InCallObserverImpl: CallID:3591 MediaId:11104504/2 Task:29000007915 com.cisco.jtapi.TermObservationEndedEvImpl received // call is disconnected with no exception// Line 5286: 1951640: May 15 01:40:11.832 EDT %MIVR-SS_CM-7-UNK:[MIVR_SS_RMCM_RmCmCleanupThread-370-0-RmCmCleanupThread] ContactMgr: Cleanup detected final state of afw ct: JTAPICallContact[id=3591,type=Cisco JTAPI Call,implId=11104504/2,active=false,state=CALL_DISCONNECTED,inbound=true,handled=false,locale=en_US,aborting=false,app=App[name=Clinical_Center_Admin,type=Cisco Script Application,id=400,desc=Clinical_Center_Admin,enabled=true,max=2,valid=true,cfg=[ApplicationConfig[schema=ApplicationConfig,time=2018-05-15 01:38:54.0,recordId=1168,desc=Clinical_Center_Admin,name=Clinical_Center_Admin,type=Cisco Script Application,id=400,enabled=true,sessions=2,script=SCRIPT[ClinicalCenter/ClinicalCenter_ADMIN.aef],defaultScript=,vars=[],defaultVars=null]]],task=29000007915,session=Session[id=001-0x131794c237,parent=null,active=false,state=SESSION_DISPOSED,time=1526362790448],seqNum=0,time=1526362790447,cn=3014804565,dn=3014804565,cgn=2673343616,ani=null,dnis=null,clid=null,atype=DIRECT,lrd=null,ocn=3014804565,...