Inhalt

Einführung

Voraussetzungen

Anforderungen

Verwendete Komponenten

Funktionsübersicht

Agent-Login-Fluss

Agent-Verfügbarkeitsfluss

Verfügbarkeit am Chat-Einstiegspunkt erforderlich

Protokollerfassung

Einführung

Dieses Dokument beschreibt, wie Enterprise Chat und E-Mail (ECE) den Verfügbarkeitsstatus von Agenten erkennen, wenn Clients Chat-Sitzungen initiieren.

Voraussetzungen

Anforderungen

Cisco empfiehlt, über Kenntnisse in folgenden Bereichen zu verfügen:

- Enterprise Chat und E-Mail

- Entwicklertools für Webbrowser

- Unified Intelligent Contact Management Enterprise

Verwendete Komponenten

Die Informationen in diesem Dokument basieren auf der Softwareversion ECE 11.6.

Die Informationen in diesem Dokument wurden von den Geräten in einer bestimmten Laborumgebung erstellt. Alle in diesem Dokument verwendeten Geräte haben mit einer leeren (Standard-)Konfiguration begonnen.

Funktionsübersicht

Damit Cisco Unified Intelligent Contact Management Enterprise (ICM) die Agentenaktivitäten verwalten und Aufgaben ordnungsgemäß routen kann, muss ICM alle Agenten überwachen, die bei ICM angemeldet sind. Die Anwendungsinstanzen wie die ECE melden die Agentenaktivitäten und den Agentenstatus über die erweiterte ICM CTI/ARM-Schnittstelle (Agent Report and Management).

Der ARM-Dienst basiert auf der aktuellen CTI-Serverfunktion und ermöglicht einer Client-Anwendung die Überwachung von Anwendungs-Agents und Aufgabenaktivität. Mit der ARM-Schnittstelle kann eine Client-Anwendung eine bestimmte Gruppe von Agenten (Workstation-Modus) oder alle Agenten (Bridge-Modus) überwachen, die einer Anwendung zugeordnet sind.

Das Bild zeigt weitere Details der ARM-Schnittstellen.  Eine Anwendungsinstanz verwendet die ARM-Schnittstelle, um Agenten auf einem oder mehreren Agenten-PGs zu verwalten (Medieneingabe und -abmeldung usw.) und über ihre Aufgabenaktivität (Task starten, Task beenden usw.) zu berichten.

Agent-Login-Fluss

Die Verfügbarkeit von Agenten wird auf CTI-Server-Seite identifiziert. Wenn sich ein Agent bei der Agentenkonsole anmeldet, sendet der ECE Listener-Prozess die Anforderung an den CTI-Server. Die Anforderung gibt an, dass der Agent angemeldet ist und als verfügbar gekennzeichnet ist.

Dies sind die Indikatoren, die von der ECE-Anwendung an den CTI-Server gesendet werden:

Wenn ein Agent angemeldet ist, sendet ein Listener einen MEDIA_LOGIN_REQ. Der MEDIA_LOGIN_REQ protokolliert den angegebenen Agenten in einer Media Route Domain (MRD) (meldet den Agenten über alle für diesen MRD und Agenten konfigurierten Fähigkeiten an). Wenn ein Agent sich selbst als verfügbar kennzeichnet, sendet der Listener zwei weitere Anfragen, die darauf hinweisen, dass der Agent ROUTABLE, NOT ROUTABLE, READY oder NOT READY ist, und stellt clientdefinierte Agentinformationen bereit. Der CTI-Client muss den Anwendungspfad für das entsprechende MRD-Peripheriepaar in der Meldung "Open Request" (Anfrage öffnen) angegeben haben, oder die Anmeldung wird abgelehnt. Damit die Anmeldung erfolgreich ist, muss der Agent auch so konfiguriert werden, dass er mindestens einer Skill Group(SG) angehört, die der angegebenen MRD angehört.

Das Bild zeigt das Nachrichtenflussdiagramm für die Anmeldeanforderung:

Listener-Protokoll mit der INFO-Ablaufverfolgungsebene:

2019-07-20 18:27:31.749 GMT+0000 <@> INFO <@> [14285:listener-event-pool-priority-arm-request-executor::-0] <@> ProcessId:4584

<@> PID:1 <@> UID:1005 <@> HttpSessionId:IrltMMd3T0prrkbhAwK8wkL5 <@> com.ipcc.listener.arm.ARMLogger <@>

<@> Sending MEDIA_LOGIN_REQ  -> 0 0 0 27 0 0 0 -105 0 2 8 1 0 0 19 -120 0 0 19 -87 0 0 0 0 0 0 0 1 107 5 49 48 48 53 0   <@>

2019-07-20 18:27:32.037 GMT+0000 <@> INFO <@> [71:Thread-9] <@> ProcessId:4584 <@> PID:1 <@> UID:12 <@> HttpSessionId:

<@> com.ipcc.listener.arm.ARMLogger <@>  <@> Received MEDIA_LOGIN_RESP  ->  0 0 0 8 0 0 0 -104 0 2 8 1 0 0 0 0   <@>

CTIsvr-Protokoll mit der Standard-Ablaufverfolgungsebene:

20:27:32:466 cg1A-ctisvr Trace: ProcessMediaLoginReq - sessionID 4

20:27:32:466 cg1A-ctisvr Trace: SendARMMsg -- InvokeID = 591309094, MRDID = 5000, ICMAgentID = 5033, AgentMode = 0

IsAvailable = 0, MaxTaskLimit = 1, AgentInfo = 1005, ApplicationPathID = 5001, PeripheralID = 0, AgentID =

20:27:32:607 cg1A-ctisvr Trace: ProcessARMMediaLoginRespMsg -- InvokeID = 591309094, Status = 0, AgentSkillTargetID = 5033

Status 0 bedeutet, dass auf der Seite des CTI-Servers keine Fehler aufgetreten sind.

Agent-Verfügbarkeitsfluss

Wenn der Agent dem Chat-SG zugeordnet ist und dieser SG der ECE-Warteschlange im Chat-Einstiegspunkt zugeordnet ist, sehen Sie bei der Markierung des Agenten als verfügbar 2 Anfragen, MAKE_AGENT_ROUTABLE_IND und MAKE_AGENT_READY_IND.

Make Agent Routable Indication weist ICM an, dass der angegebene Agent für das angegebene MRD auf einen ROUTABLE-Modus festgelegt wurde.

Hinweis: Die Nachricht "Make Agent Routable Indication" (Agenten Routbar-Anzeige machen) kann gesendet werden, während sie auf eine "Make Agent Not Rouable"-Antwort wartet und die ausstehende Anfrage "Make Agent Not Rouable Request" (Agent nicht routbar) storniert.

Sobald der Listener eine Agent Ready Indication-Anfrage vom Anwendungsserver erhält, leitet der Listener die Anfrage an den CTI-Server weiter und zu diesem Zeitpunkt wird der Agent als für ECE verfügbar angesehen. Wenn in diesem Fall der Chat gleichzeitig initiiert wird, kann das System die Chat-Aktivität für diesen Chat starten und erstellen.

Das Listener-Protokoll zeigt diese Anforderungen an, wenn die INFO-Ablaufverfolgung aktiviert ist:

2019-08-19 13:34:09.773 GMT+0000 <@> INFO <@> [8938:listener-event-pool-priority-arm-request-executor::-441] <@> ProcessId:5436 <@> PID:1 <@> UID:12 <@> HttpSessionId: <@> com.ipcc.listener.AgentAvailabilityStatusHandler <@> <@> AgentAvailabilityStatusHandler:agentIsAvailable() MAKE_AGENT_ROUTABLE_IND to ARM armLoginDataArraySize= ARMAgentData ==================================================================

2019-08-19 13:34:09.773 GMT+0000 <@> INFO <@> [8938:listener-event-pool-priority-arm-request-executor::-441] <@> ProcessId:5436 <@> PID:1 <@> UID:12 <@> HttpSessionId: <@> com.ipcc.listener.arm.ARMLogger <@> <@> Sending MAKE_AGENT_ROUTABLE_IND -> 0 0 0 16 0 0 0 -102 0 1 57 43 0 0 19 -120 0 0 25 20 0 0 0 2 <@>

2019-08-19 13:34:09.774 GMT+0000 <@> INFO <@> [8938:listener-event-pool-priority-arm-request-executor::-441] <@> ProcessId:5436 <@> PID:1 <@> UID:12 <@> HttpSessionId: <@> com.ipcc.listener.arm.ARMLogger <@> <@> Sending MAKE_AGENT_READY_IND -> 0 0 0 14 0 0 0 -99 0 1 57 44 0 0 19 -120 0 0 25 20 0 1 <@>

2019-08-19 13:34:09.774 GMT+0000 <@> INFO <@> [8938:listener-event-pool-priority-arm-request-executor::-441] <@> ProcessId:5436 <@> PID:1 <@> UID:12 <@> HttpSessionId: <@> com.ipcc.listener.AgentAvailabilityStatusHandler <@> <@> PRINT_STATE after sending MAKE_AGENT_READY_IND to ARM:

Die Ausgabe von CTI-Server und OPC verarbeitet Protokolle:

### CTI Server

15:34:09:841 cg1A-ctisvr Trace: ProcessMakeAgentRoutableInd - sessionID 6

15:34:09:841 cg1A-ctisvr Trace: SendARMMsg -- InvokeID = 80171, MRDID = 5000, ICMAgentID = 6420, MaxTasks = 2, SessionID = 6

15:34:09:841 cg1A-ctisvr Trace: ProcessMakeAgentReadyInd - sessionID 6

15:34:09:841 cg1A-ctisvr Trace: SendARMMsg -- InvokeID = 80172, MRDID = 5000, ICMAgentID = 6420, MakeRoutable = 1, SessionID = 6

### OPC

15:34:09:841 PG1A-opc Trace: MakeAgentRoutableInd - InvokeID = 80171, MRDID = 5000, ICMAgentID = 6420, MaxTasks = 2, SessionID = 6

15:34:09:841 PG1A-opc Trace: MakeAgentReadyInd - InvokeID = 80172, MRDID = 5000, ICMAgentID = 6420, MakeRoutable = 1, SessionID = 6

Der OPC-Prozess entfernt den Status "AS_NOT_READY" und wechselt in den Status "AS_NOT_ACTIVE". NewState=AS_NOT_ACTIVE ist der Status "Ready" für Chat/E-Mail.

15:34:09:841 PG1A-opc Trace: SetAgentState: ASTID=6420 Periph#=15003 MRDomainID=5000 SGSTID=6928 SG#=70518(0x11376) OldState=AS_NOT_READY NewState=AS_NOT_ACTIVE Duration=0 CurLine=-1 ReasonCode=0 AgentObj=0x44535b8

Im Moment ist der Agent routingfähig und aus Routersicht verfügbar. Die beste Möglichkeit, dies zu überprüfen, ist das neueste Dienstprogramm:

rttest: agent_status /agent 6420

### 6520 is ICMAgtID

Agent CUCM.Agent_test (6420, periph# 15003)

domain: Cisco_Voice (1), state = [nr-0:1,R], 411 secs

CL nr   TEST_SG (6274, periph# 70520)

L nr   CUCM_PIM1.Cisco_Voice.defa.88025 (5000, periph# 31858)

domain: ECE_Chat (5000), state = [na-0:2,RA], 383 secs

CL na   TEST_Chat (6928, periph# 70518)

L na   CUCM.ECE_Chat.default.11006 (6909, periph# 54839)

n - Nicht aktiv

0:2 - AciteTasks:ConcurentTaskLimit

RA - R ist routingfähig (sofern festgelegt), A weist darauf hin, dass der Router den Agenten für die neue Arbeit in dieser Domäne als verfügbar ansieht.

Vorsicht: In ICM 11.5, 11.6 und 12.0 können Sie auf den Fehler CSCvq11852 tippen und E-Mails werden nicht Agenten zugewiesen, auch wenn diese verfügbar sind. In solchen Szenarien sehen Sie in der Testausgabe [na-0:2,RD], wobei "D" für "Domäne nicht verfügbar" steht (wie durch Anwendungspfad gemeldet).

Darüber hinaus können Sie den Agentenstatus von OPCtest- und Agent PG-Promptomaten überprüfen.

Beispiele:

opctest /cust <inst> /node PG1A

opctest: dump_agent 5000 15003

C:\icm\pcc12\ra\logfiles>procmon <inst> PG1A pim1

11:38:40 Trace: EMT Creating Mutex Global\IMTConnect_DisconnectLock

>>>>dagent 15003

wobei 5000 für die Peripheral-ID steht, in der der Agent erstellt wird, und 15003 für die Peripheral-Nummer des Agenten.

Verfügbarkeit am Chat-Einstiegspunkt erforderlich

Bei Chat-Initialisierungen erhalten Ihre Kunden die Meldung "Vielen Dank für Ihre Anfrage. Unsere Servicestunden sind Montag bis Freitag von 9:00 bis 17:00 Uhr (PST)." Eine solche Meldung kann auch dann angezeigt werden, wenn sich ein Mitarbeiter im Ready-Status für einen Chat befindet. Um die Verfügbarkeit der Agenten zu ermitteln, sendet das System beim Ausführen der URL für den Einstiegspunkt den API-Aufruf. Die API-Anforderung durchläuft den ECE-Webserver zum ECE-Anwendungsserver. Diese Verfügbarkeit wird durch die auf dem Anwendungsserver erstellten Sitzungen bestimmt.

In ECE 11.6 prüft die Verfügbarkeitsanforderung die MRD-Verfügbarkeit. Wenn in MRD ein Mitarbeiter verfügbar ist, ist Chat verfügbar. Das Problem besteht darin, dass bei der MRD-Anwendung für CHAT mit 2 SG ein Mitarbeiter des Sicherheitsbeauftragten verfügbar ist, Ihr MRD aktiv wird und CHAT angeboten wird. Dieses Problem wurde in ECE 12.0 und höheren Versionen behoben. Die Erweiterung erfolgte durch Verwendung des SG in der Konfiguration. In diesem Fall zählt das System auch die Qualifikationsgruppen für Agenten, die sich selbst für die spezifische MRD anmelden.

API-Anforderung:

http://<ECE_WEB_Server_IP>/system/egain/chat/entrypoint/initialize/1001

wobei 1001 die Eingangspunkt-ID ist.

API-Antwort:

{"checkEligibility":{"responseType":0},"maskingPatterns":{"maskingPattern":[]},"isVideoChatLicensed":false,"isVideoChatEnabled":false,"videoChatMaxEscalation":5,"isDirectAudioChatEnabled":true,"isChatAttachmentEnabled":false,"maxChatAttachmentSize":3,"isBlackListType":false,"isOffRecordEnabled":false,"htmlTagMatcherRegEx":"((?:[\\r\\n|\\n]*(?:<[^>]*>)*[\\r\\n|\\n]*)*)","htmlTagMatcherIncr":1,"isOneTagOff":true}

Es gibt zwei Optionen, wie das System definiert, dass der Agent verfügbar ist. Entweder ist der Agent für einen Chat verfügbar, oder es gibt eine Warteschlangentiefe, die dies ermöglicht. Die Konfiguration der Warteschlangentiefe ermöglicht die Anzahl der Kunden, die in die Warteschlange gestellt werden können, wenn alle Agenten beschäftigt sind.

Achten Sie bei der API-Antwort auf die CheckEligibility: responseType-Wert. Es zeigt an, welche Agenten zu diesem Zeitpunkt verfügbar sind.

- Wenn es sich um 0 handelt, bedeutet dies, dass entweder der Mitarbeiter für den Chat verfügbar ist oder die Warteschlangentiefe nicht erreicht wird.

- Wenn es 1 ist, wird angezeigt, dass keine Agenten verfügbar sind.

- 2 bedeutet, dass die maximale Warteschlangentiefe erreicht wurde.

Hinweis: Es gibt hier keine Optionen, um zu sehen, wie viele Agenten zu einem bestimmten Zeitpunkt verfügbar sind.

Wenn ein Agent verfügbar ist, werden die anderen JS-Dateien vom Webbrowser empfangen. Daher wird die erste Seite mit dem Anmeldenamen und den Betreffparametern für den Einstiegspunkt von einem Client angezeigt.

Protokollerfassung

Die API-Antworten sind entweder vom Client (vom Web-Browser-Netzwerk-Trace) oder vom ECE-Anwendungsserver mit Debug- oder Trace-Ebene verfügbar, die aufgrund der verwendeten High-IO-Funktion nicht für lange Zeit beibehalten werden sollte.