Sommario

Introduzione

Prerequisiti

Requisiti

Componenti usati

Problema

Risoluzione dei problemi

Conclusioni

Risoluzione

Introduzione

Questo documento fornisce informazioni su come risolvere i problemi relativi ai ritardi di stato dell'agente rilevati sul desktop di Finesse Agent.

Contributo di Rohit Harsh, Cisco TAC Engineer.

Prerequisiti

Requisiti

Cisco raccomanda la conoscenza dei seguenti argomenti:

- Cisco Unified Contact Center Enterprise (UCCE)

- Cisco Finesse

Componenti usati

Le informazioni di questo documento si basano sulle seguenti versioni software:

- Finesse 11.5

- UCCE 11.5

Le informazioni discusse in questo documento fanno riferimento a dispositivi usati in uno specifico ambiente di emulazione. Su tutti i dispositivi menzionati nel documento la configurazione è stata ripristinata ai valori predefiniti. Se la rete è operativa, valutare attentamente eventuali conseguenze derivanti dall'uso dei comandi.

Problema

Quando l'agente riceve una chiamata (in entrata/in uscita), la modifica dello stato da Pronto —> Riservato —> Parlare è ritardata.

Risoluzione dei problemi

Per risolvere questo tipo di problema, è possibile estrarre questi registri dal server e dal client Finesse:

- Log di Servizi Web Finesse Desktop

- Log sul lato client Finesse

Log di Finesse Client

Messaggio CTI ricevuto per la modifica dello stato dell'agente:

0051203603: 10.106.81.82: Apr 14 2017 14:01:17.196 -0700: %CCBU_CTIMessageEventExecutor-0-6-DECODED_MESSAGE_FROM_CTI_SERVER: %[cti_message=CTIAgentStateEvent [skillGroupState=7 (BUSY_OTHER), stateDuration=0, skillGroupNumber=29808, skillGroupPriority=0, agentState=8 (RESERVED), eventReasonCode=0, numFltSkillGroups=0, CTIClientSignature=Finesse, agentID=1234, agentExtension=1234, agentInstrument=1234, agentID_Long=null, duration=null, nextAgentState=null, fltSkillGroupNumberList=[], fltSkillGroupIDList=[], fltSkillGroupPriorityList=[], fltSkillGroupStateList=[], MRDId=1, agentMode=1]CTIMessageBean [invokeID=null, cti_sequence_id=865941, msgID=30, timeTracker={"id":"AgentStateEvent","CTI_MSG_RECEIVED":1492203677196,"CTI_MSG_DISPATCH":1492203677196}, msgName=AgentStateEvent, deploymentType=CCE]][cti_response_time=0][dispatch_phase=DnD-CHECKPOINT-3B]: Decoded Message to Finesse from backend cti server

Tuttavia, solo dopo 14 secondi, Finesse mette l'agente in stato riservato:

001345281: 10.106.81.82: Apr 14 2017 14:01:31.936 -0700: %CCBU_CoreImpl-worker187-6-XMPP_PUBLISH_ASYNCHRONOUS: %[NodeId=/finesse/api/User/1234][Payload=<Update>

<data>

<user>

<dialogs>/finesse/api/User/1234/Dialogs</dialogs>

<extension>1234</extension>

<firstName>Test</firstName>

<lastName>Test</lastName>

<loginId>1234</loginId>

<loginName>Test</loginName>

<mediaType>1</mediaType>

<pendingState></pendingState>

<roles>

<role>Agent</role>

</roles>

<settings>

<wrapUpOnIncoming>OPTIONAL</wrapUpOnIncoming>

</settings>

<state>RESERVED</state>

<stateChangeTime>2017-04-14T21:01:31.935Z</stateChangeTime>

<teamId>5056</teamId>

<teamName>Test</teamName>

<uri>/finesse/api/User/1234</uri>

</user>

</data>

<event>PUT</event>

<requestId>ad6996dc-db0b-4f45-8e3a-0e975519f4db</requestId>

<source>/finesse/api/User/1234</source>

</Update>]: Publishing XMPP Message Asynchronously

Ora se si vede cosa stava facendo l'agente in quel momento, si vede che l'agente ha tentato di cambiare lo stato in Non pronto appena 1 minuto 14 secondi prima dell'arrivo della chiamata sul Desktop ed è stato ritardato da Finesse.

2017-04-14T14:00:22.128 -07:00: 3ADF8F: finesse.cisco.com: Apr 14 2017 14:00:22.137 -0700: Header : _changeStateCallback(): User changed state to NOT_READY with a reason code of: Break

2017-04-14T14:00:22.129 -07:00: 3ADF8F: finesse.cisco.com: Apr 14 2017 14:00:22.138 -0700: Header : Agent selected or went NOT_READY -- Linda flag cleared.

2017-04-14T14:00:22.130 -07:00: 3ADF8F: finesse.cisco.com: Apr 14 2017 14:00:22.139 -0700: Header : [ClientServices] User: requestId='ad6996dc-db0b-4f45-8e3a-0e975519f4db', Making REST request: method=PUT, url='https://finesse.cisco.com:/finesse/api/User/1234'

2017-04-14T14:00:22.159 -07:00: 3ADF8F: finesse.cisco.com: Apr 14 2017 14:00:22.168 -0700: Header : [ClientServices] User: requestId='ad6996dc-db0b-4f45-8e3a-0e975519f4db', Returned with status=202, content='null'

2017-04-14T14:00:27.129 -07:00: 3ADF8F: finesse.cisco.com: Apr 14 2017 14:00:27.138 -0700: Header : _showOperationError(): Failed to lookup error message in resource bundle(errorBundle=null, error=TypeError: response is undefined).

2017-04-14T14:00:27.130 -07:00: 3ADF8F: finesse.cisco.com: Apr 14 2017 14:00:27.139 -0700: Header : _showOperationError(): Failed to get error message from response(error=TypeError: response is undefined).

2017-04-14T14:00:27.130 -07:00: 3ADF8F: finesse.cisco.com: Apr 14 2017 14:00:27.139 -0700: Header : _showOperationError(): Displayed generic error message.

L'agente ha tentato di nuovo.

2017-04-14T14:00:39.093 -07:00: 3ADF8F: finesse.cisco.com: Apr 14 2017 14:00:39.102 -0700: Header : _changeStateCallback(): User changed state to NOT_READY with a reason code of: Training

2017-04-14T14:00:39.093 -07:00: 3ADF8F: finesse.cisco.com: Apr 14 2017 14:00:39.102 -0700: Header : Agent selected or went NOT_READY -- Linda flag cleared.

2017-04-14T14:00:39.095 -07:00: 3ADF8F: finesse.cisco.com: Apr 14 2017 14:00:39.104 -0700: Header : [ClientServices] User: requestId='eb6659c6-06f2-4f02-a244-95839c450b48', Making REST request: method=PUT, url='https://finesse.cisco.com:/finesse/api/User/1234'

2017-04-14T14:00:39.109 -07:00: 3ADF8F: finesse.cisco.com: Apr 14 2017 14:00:39.118 -0700: Header : [ClientServices] User: requestId='eb6659c6-06f2-4f02-a244-95839c450b48', Returned with status=202, content='null'

2017-04-14T14:00:39.120 -07:00: 3ADF8F: finesse.cisco.com: Apr 14 2017 14:00:39.128 -0700: Header : Client: 2017-04-14T21:00:39.115Z, Server: 2017-04-14T21:00:39.123Z, Drift: 8ms, Network Latency (round trip): 8ms

2017-04-14T14:00:44.093 -07:00: 3ADF8F: finesse.cisco.com: Apr 14 2017 14:00:44.101 -0700: Header : _showOperationError(): Failed to lookup error message in resource bundle(errorBundle=null, error=TypeError: response is undefined).

2017-04-14T14:00:44.094 -07:00: 3ADF8F: finesse.cisco.com: Apr 14 2017 14:00:44.102 -0700: Header : _showOperationError(): Failed to get error message from response(error=TypeError: response is undefined).

2017-04-14T14:00:44.094 -07:00: 3ADF8F: finesse.cisco.com: Apr 14 2017 14:00:44.102 -0700: Header : _showOperationError(): Displayed generic error message.

Ora nei log di Servizi Web Desktop:

Finesse ha ricevuto la richiesta Not Ready dall'agente.

0051191445: 10.106.81.82: Apr 14 2017 14:00:22.148 -0700: %CCBU_http-apr-8445-exec-13-6-REQUEST_START: %[method_name=PUT][parameter_name={  }][resource_name=/User/1234][usr=1234]: Request start

0051191446: 10.106.81.82: Apr 14 2017 14:00:22.149 -0700: %CCBU_http-apr-8445-exec-13-6-API_REQUEST: %[REQUEST_URL=User/1234][agent_id=1234][requestId=ad6996dc-db0b-4f45-8e3a-0e975519f4db][request_method=user.PUT][request_parameters= state:NOT_READY]: Request from client to webservice api

0051191447: 10.106.81.82: Apr 14 2017 14:00:22.149 -0700: %CCBU_http-apr-8445-exec-13-7-API.REQUEST:  {Thrd=http-apr-8445-exec-13} Received handleRequest for [requestedObjectId=1234], [requestId=ad6996dc-db0b-4f45-8e3a-0e975519f4db]

0051191449: 10.106.81.82: Apr 14 2017 14:00:22.150 -0700: %CCBU_http-apr-8445-exec-13-7-DISPATCHER:  {Thrd=http-apr-8445-exec-13} queueing command SetAgentState for sequencer: [1234]

0051191450: 10.106.81.82: Apr 14 2017 14:00:22.150 -0700: %CCBU_http-apr-8445-exec-13-7-FinesseApiResponseFilter:  {Thrd=http-apr-8445-exec-13} FinesseApiResponseFilter : Added header Access-Control-Allow-Origin: null to the response of the REST API request=https://finesse.cisco.com/finesse/api/User/1234

Anche in questo caso si tratta dello stesso set di eventi per la seconda richiesta Not Ready:

0051195056: 10.106.81.82: Apr 14 2017 14:00:39.110 -0700: %CCBU_http-apr-8445-exec-19-6-REQUEST_START: %[method_name=PUT][parameter_name={  }][resource_name=/User/1234][usr=1234]: Request start

0051195060: 10.106.81.82: Apr 14 2017 14:00:39.113 -0700: %CCBU_http-apr-8445-exec-19-7-DISPATCHER:  {Thrd=http-apr-8445-exec-19} queueing command SetAgentState for sequencer: [1234]

0051195061: 10.106.81.82: Apr 14 2017 14:00:39.113 -0700: %CCBU_http-apr-8445-exec-19-7-FinesseApiResponseFilter:  {Thrd=http-apr-8445-exec-19} FinesseApiResponseFilter : Added header Access-Control-Allow-Origin: null to the response of the REST API request=https://finesse.cisco.com/finesse/api/User/1234

0051195060: 10.106.81.82: Apr 14 2017 14:00:39.113 -0700: %CCBU_http-apr-8445-exec-19-7-DISPATCHER:  {Thrd=http-apr-8445-exec-19} queueing command SetAgentState for sequencer: [1234]

0051195061: 10.106.81.82: Apr 14 2017 14:00:39.113 -0700: %CCBU_http-apr-8445-exec-19-7-FinesseApiResponseFilter:  {Thrd=http-apr-8445-exec-19} FinesseApiResponseFilter : Added header Access-Control-Allow-Origin: null to the response of the REST API request=https://finesse.cisco.com/finesse/api/User/1234

Solo dopo 1 minuto e 2 secondi, Finesse ha iniziato l'elaborazione della richiesta:

0051220500: 10.106.81.82: Apr 14 2017 14:01:24.585 -0700: %CCBU_CoreImpl-worker118-6-MESSAGE_TO_CTI_SERVER: %[cti_message=Invoke id :26553 , agentstate : 2, workmode : 0, reason code: 4, forceflag :1, agentcapacity: 0, agentext: 1234, agentid: 1234, supervisorid: null, ssoFlag=false][cti_message_name=SetAgentStateReq]: Message going to the backend cti server

0051223431: 10.128.224.141: Apr 14 2017 14:01:24.766 -0700: %CCBU_CoreImpl-worker118-7-DISPATCHER:  {Thrd=CoreImpl-worker118} completed command SetAgentState for sequencer: [1234]

0051227244: 10.106.81.82: Apr 14 2017 14:01:27.078 -0700: %CCBU_CoreImpl-worker130-6-MESSAGE_TO_CTI_SERVER: %[cti_message=Invoke id :26563 , agentstate : 2, workmode : 0, reason code: 4, forceflag :1, agentcapacity: 0, agentext: 1234, agentid: 1234, supervisorid: null, ssoFlag=false][cti_message_name=SetAgentStateReq]: Message going to the backend cti server

0051229958: 10.128.224.141: Apr 14 2017 14:01:27.274 -0700: %CCBU_CoreImpl-worker130-7-DISPATCHER:  {Thrd=CoreImpl-worker130} completed command SetAgentState for sequencer: [1234]

Se si approfondisce l'analisi dei log di Servizi Web Desktop, è possibile notare che gli eventi di sistema vengono spesso ricevuti con systemEventId=10 che indica (SYS_INSTRUMENTS_ OUT_OF_SERVICE - Una destinazione di dispositivo Enterprise Agent è stata rimossa dal servizio. SystemEventArg1 contiene l'ID periferica e SystemEventText contiene l'AgentInstrument rimosso dal servizio. )

0051220500: 10.106.81.82: Apr 14 2017 14:01:24.585 -0700: %CCBU_CoreImpl-worker118-6-MESSAGE_TO_CTI_SERVER: %[cti_message=Invoke id :26553 , agentstate : 2, workmode : 0, reason code: 4, forceflag :1, agentcapacity: 0, agentext: 1234, agentid: 1234, supervisorid: null, ssoFlag=false][cti_message_name=SetAgentStateReq]: Message going to the backend cti server

0051223431: 10.128.224.141: Apr 14 2017 14:01:24.766 -0700: %CCBU_CoreImpl-worker118-7-DISPATCHER:  {Thrd=CoreImpl-worker118} completed command SetAgentState for sequencer: [1234]

0051227244: 10.106.81.82: Apr 14 2017 14:01:27.078 -0700: %CCBU_CoreImpl-worker130-6-MESSAGE_TO_CTI_SERVER: %[cti_message=Invoke id :26563 , agentstate : 2, workmode : 0, reason code: 4, forceflag :1, agentcapacity: 0, agentext: 1234, agentid: 1234, supervisorid: null, ssoFlag=false][cti_message_name=SetAgentStateReq]: Message going to the backend cti server

0051229958: 10.128.224.141: Apr 14 2017 14:01:27.274 -0700: %CCBU_CoreImpl-worker130-7-DISPATCHER:  {Thrd=CoreImpl-worker130} completed command SetAgentState for sequencer: [1234]

In Finesse System gli eventi sono eventi critici e vengono elaborati se nella coda di esecuzione non sono presenti altri eventi.  A causa di questa condizione, verrà eseguito il backup di tutti gli altri eventi in sospeso e l'elaborazione degli eventi risulterà generalmente lenta.

Anche Finesse vede casualmente un ritardo nel comando CLEAR_CONNECTION di circa un minuto, che sono in timeout (CF_REQUEST_TIMEOUT_REJECTION). Questa è per l'estensione Same per cui Finesse ottiene un SystemEvent.

Di seguito è riportato l'esempio specifico di quanto accaduto in Finesse per uno dei casi:

Il servizio Web Finesse ha ricevuto la richiesta e l'ha inviata al server CTI ICM

0051049979: 10.106.81.82: Apr 14 2017 13:56:20.806 -0700: %CCBU_CoreImpl-worker146-6-MESSAGE_TO_CTI_SERVER: %[cti_message=Invoke id :26488 , callId: 54473438, extension: 8888, peripheralId: 5000, connectionDeviceIdType : 0, connectionDeviceId: 8888][cti_message_name=ClearConnectionReq]: Message going to the backend cti server

0051061608: 10.106.81.82: Apr 14 2017 13:57:21.758 -0700: %CCBU_CTIMessageEventExecutor-0-6-DECODED_MESSAGE_FROM_CTI_SERVER: %[cti_message=CTIControlFailureConf [failureCode=78, peripheralErrorCode=0, text=null]CTIMessageBean [invokeID=26488, cti_sequence_id=863946, msgID=35, timeTracker={"id":"ControlFailureConf","CTI_MSG_NOTIFIED":1492203441758,"CTI_MSG_RECEIVED":1492203441758}, msgName=ControlFailureConf, deploymentType=CCE]][cti_response_time=0][dispatch_phase=DnD-CHECKPOINT-3A]: Decoded Message to Finesse from backend cti server

Il server PG CTI ha ricevuto la richiesta

13:56:20:784 cg1A-ctisvr Trace: *** ClearConnectionRequest DefaultCallInstrument - callID:54473438.+9999(d) ... inst:"8888"

13:56:20:784 cg1A-ctisvr Trace: CSTAClearConnection:  InvokeID=0x2114a2fb Call(CID=54473438,Dev=8888,Type=Static)

13:56:20:784 cg1A-ctisvr Trace: PRIVATE_DATA: CompoundRequestType=Unknown CSTA Event Type SubjectDevice=8888

Tuttavia, a causa di un'eccezione JTAPI, la chiamata non è stata disconnessa normalmente.

13:56:20:846 PG1A-jgw1 Trace: MsgClearConnection: CID: 54473438 ConnDevID: 8888/0 CompReqType: -1 InvID: 8285054.

13:56:35:862 PG1A-jgw1 Trace: Call to connection[54473438,8888].disconnect() encountered exception.  com.cisco.jtapi.PlatformExceptionImpl: Could not meet post conditions of disconnect().

Alla fine la chiamata viene cancellata dal lato ICM.

14:08:05:647 PG1A-opc Trace: CSTA_CONNECTION_CLEARED (PID=5000):  DroppedConn=(CID=54473438,Dev=8888,Type=Static) ReleasingDev=(DEV)8888 localConnInfo(-1)=CS_NONE cause=-1

14:08:05:647 PG1A-opc Trace: CSTAConnectionClearedEvent_PD:: CorrData=102785 UniqueID=00000000003F32DE0309F16000000000

14:08:05:647 PG1A-opc Trace: Call:SetCallState (PID=5000) - CallID=54473438 CallObj=(0x6c33110) NewState=NONE OldState=CONNECTED.

14:08:05:647 PG1A-opc Trace: Cleared(PID=5000): CallObj=(0x6c33110)  SrcConn(CID=54473438,Dev=+13003001858,DevType=Dynamic) DestConn(CID=54473438,Dev=8888,DevType=Static)

14:08:05:647 PG1A-opc Trace: AgentStateUpdate (OPC Time=04/14 21:08:05) - Updating 2 Agent Records on Peripheral 5000

14:08:05:647 PG1A-opc Trace:  - PID=5000 AGSTID=7295 Periph#=8888 Ext=8888 SG#=29808 Dur=0 State=AS_NOT_READY CurrentLine=0 Reason=8 NetworkTID=0 NumLines=0 AgentObj=0x52f50f8

14:08:05:647 PG1A-opc Trace: SetAgentState: ASTID=7295 Periph#=8888 MRDomainID=1 SGSTID=5000 SG#=29808(0x7470) OldState=AS_BUSY_OTHER NewState=AS_NOT_READY Duration=0 CurLine=0 ReasonCode=8 AgentObj=0x52f50f8

14:08:05:647 PG1A-opc Trace:  - PID=5000 AGSTID=7295 Periph#=8888 Ext=8888 SG#=3957053 Dur=0 State=AS_NOT_READY CurrentLine=0 Reason=8 NetworkTID=0 NumLines=0 AgentObj=0x52f50f8

Conclusioni

Il motivo per cui tutti gli eventi relativi allo stato dell'agente vengono ritardati è che quando Finesse invia 'ClearConnectionReq' al server CTI, il server CTI invia la richiesta al servizio Periheral Gateway (PG) Open Peripheral Controller (OPC), che invia la richiesta a CUCM tramite PG Peripheral Interface Manager (PIM) / PG JTAPI Gateway (JGW). Il server CTI attende la risposta da CUCM (che alla fine ha avuto esito negativo), Finesse inizia a ottenere gli eventi di sistema che hanno la priorità e quindi il ritardo nella risposta alla richiesta relativa allo stato dell'agente.

Risoluzione

La risoluzione di questo problema è tracciata da questi difetti che sono risolti in Finesse 11.5(1) ES4

CSCve12017 Per ICM (pg.cucm)

CSCve11977 Per Finesse