はじめに
このドキュメントでは、Unified Contact Center Express(UCCX)スクリプトでOnException Gotoステップを設定する方法について説明します。
多くのコールフローで見られる問題は、このステップの誤った使用によって引き起こされます。このベストプラクティスは、この機能を使用しながら、コールフローとエンジンレベルの問題を防止することを目的としています。
問題
ContactInactiveExceptionのOnExceptionは、コールがすでに切断されている(アクティブでなくなった)場合、つまり遠端で終了している場合に使用します。
次の図は、このステップを設定し、Gotoステップがスクリプトの最後を指すように設定する一般的な方法を示しています。
ただし、誤ったシナリオでこの図を参照すると、すでに接続解除されたコールに対して、TerminateステップがEndラベルの後で使用されます。

スクリプトの実行中にコールを切断すると、OnExceptionステップが1000回実行され、アラート(「Maximum number of steps reached : 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ラベルの後のTerminateステップをスキップする必要があります。つまり、図2で、Terminateステップの後のGotoステップのENDラベルステップを設定するか、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,...