简介
本文档介绍如何在Unified Contact Center Express(UCCX)脚本中配置OnException Goto步骤。
许多呼叫流中出现的问题是由不正确使用此步骤造成的。此最佳实践旨在使用此功能时防止呼叫流程和引擎级别出现问题。
问题
ContactInactiveException的OnException用于您已断开呼叫(不再活动),即在远端终止的情形。
这些图像显示了配置此步骤的常用方法,并使Goto步骤指向脚本的末尾。
但是,在不正确的场景中参考此映像,对于已断开连接的呼叫,在End标签之后使用Terminate步骤。

发生的情况是,当在执行脚本时断开呼叫时,OnException步骤将执行1000次并生成警报(“已到达的最大步骤数:1000”)。 虽然此错误不会影响引擎或生产,但它是引擎上的问题,并会生成警报。
原因是,终止已处于非活动状态(被远程方放弃)的呼叫会导致生成另一个ContactInactiveException。
实际上,联系非活动例外会持续循环并生成,这会生成更多例外。这是一个异常循环。
这些日志显示问题:
// 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
解决方案
要解决此问题,您需要在Goto Label之后跳过Terminate步骤,即参阅图2在Terminate步骤后配置Goto步骤的END label步骤,或者完全删除OnException步骤和相应的END标签。
摘要不会终止已处于活动状态的呼叫,并尝试捕获ContactInactive异常。这在逻辑上是有缺陷的。
这是正确脚本的图像。

工作日志
// 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,...