Introduction
Ce document fournit des informations sur la façon dont au troubelshoot les retards d'état d'agent vus sur l'Agent Desktop de finesse.
Contribué par Rohit dur, ingénieur TAC Cisco.
Conditions préalables
Exigences
Cisco vous recommande de prendre connaissance des rubriques suivantes :
- Cisco Unified Contact Center Enterprise (UCCE)
- Cisco Finesse
Les informations contenues dans ce document sont basées sur les versions de logiciel suivantes :
Les informations contenues dans ce document ont été créées à partir des périphériques d'un environnement de laboratoire spécifique. Tous les périphériques utilisés dans ce document ont démarré avec une configuration effacée (par défaut). Si votre réseau est vivant, assurez-vous que vous comprenez l'impact potentiel de n'importe quelle commande.
Problème
Quand l'agent reçoivent un appel (entrant/sortant), la modification de l'état de prêt --> a réservé --> parler est retardé.
Dépanner
Pour dépanner ce type de question, vous pouvez tirer ces logs du serveur et du client de finesse :
- Logs de bureau de WebServices de finesse
- Logs de côté client de finesse
Logs de client de finesse
Message CTI reçu pour la modification de l'état de l'agent :
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
Cependant seulement après 14 secondes, la finesse met l'agent dans l'état réservé :
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
Maintenant si vous voyez ce que cela l'agent faisait à ce moment-là, vous pouvez voir que l'agent essayé pour changer les minutes juste 1 d'état non prêt d'état 14 secondes avant l'arrivée d'appel là-dessus l'appareil de bureau et a été retardé par 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.
Ici agent essayé de nouveau.
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.
Maintenant dans les logs de bureau de WebServices :
La finesse a reçu la demande non prête de l'agent.
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
De nouveau c'est le même ensemble d'événements pour la deuxième demande non prête :
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
Seulement après 1 minute pendant 2 sec, la finesse a commencé traiter la demande :
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]
Maintenant si la fouille plus loin dans le WebServices de bureau se connecte, vous pouvez voir que des événements de système sont fréquemment reçus avec systemEventId=10 qui indique (SYS_INSTRUMENT_ OUT_OF_SERVICE - une cible de périphérique d'agent d'entreprise a été retirée du service. SystemEventArg1 contient le PeripheralID du périphérique, et SystemEventText contient l'AgentInstrument qui a été retiré du service.)
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]
Dans la finesse les événements de système sont des événements essentiels et qui sont traités si aucun autre événement n'est dans la file d'attente d'exécution. Tous autres événements en suspens seront dus sauvegardé à cette condition et elle résultera en général lenteur du traitement d'événement.
Également la finesse voit aléatoirement un retard dans la commande CLEAR_CONNECTION d'environ une minute, qui chronomètrent (CF_REQUEST_TIMEOUT_REJECTION). C'est pour la même extension pour laquelle la finesse obtient un SystemEvent.
Voici l'exemple spécifique ce qui s'est produit dans la finesse pour une de l'exemple :
Le service Web de finesse a reçu la demande et l'a envoyée au serveur CTI missile aux performances améliorées
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
Le serveur CTI de PAGE a reçu la demande
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
Néanmoins en raison d'une exception JTAPI, l'appel n'a pas obtenu déconnecté normalement.
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().
Par la suite l'appel obtient effacé du côté missile aux performances améliorées.
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
La raison pour laquelle tout l'événement d'état de l'agent est retardé est parce que quand la finesse envoie le « ClearConnectionReq » au serveur CTI, le serveur CTI envoie la demande au service périphérique ouvert du contrôleur de passerelle de Periheral (PAGE) (OPC), qui envoie la demande à CUCM par l'intermédiaire du gestionnaire d'interface périphérique de PAGE (PIM)/de passerelle de la PAGE JTAPI (JGW). Le serveur CTI attend la réponse de CUCM (qui a par la suite manqué), finesse commence obtenir le SystemEvents qui prend la priorité et par conséquent le retard pour répondre à la demande d'état de l'agent.
Résolution
La résolution de ce problème est dépistée par ces défauts qui sont réparés dans la finesse 11.5(1) ES4
CSCve12017 pour le missile aux performances améliorées (pg.cucm)
CSCve11977 pour la finesse