概要
このドキュメントでは、Enterprise Chat and Email(ECE)が、クライアントがチャットセッションを開始するときにエージェントのアベイラビリティステータスを識別する方法について説明します。
前提条件
要件
次の項目に関する知識があることが推奨されます。
- Enterprise Chat and Email
- Webブラウザ開発者ツール
- Unified Intelligent Contact Management Enterprise
使用するコンポーネント
このドキュメントの情報は、ソフトウェアバージョンECE 11.6に基づくものです。
このドキュメントの情報は、特定のラボ環境のデバイスから作成されたものです。このドキュメントで使用するすべてのデバイスは、初期(デフォルト)設定の状態から起動しています。
機能概要
Cisco Unified Intelligent Contact Management(ICM)Enterprise(ICM)でエージェントアクティビティを管理し、タスクを適切にルーティングするには、ICMがICMにログインしているすべてのエージェントを監視する必要があります。ECEなどのアプリケーションインスタンスは、拡張ICM CTI/ARM(エージェントレポートおよび管理)インターフェイスを介して、エージェントアクティビティとエージェントステータスをレポートします。
ARMサービスは現在のCTIサーバ機能に基づいて構築され、クライアントアプリケーションはアプリケーションエージェントとタスクアクティビティを監視できます。ARMインターフェイスを使用すると、クライアントアプリケーションは、指定されたエージェントセット(ワークステーションモード)またはアプリケーションに関連付けられたすべてのエージェント(ブリッジモード)をモニタできます。
図は、ARMインターフェイスの詳細を示しています。 アプリケーションインスタンスは、ARMインターフェイスを使用して、1つ以上のエージェントPG上のエージェントを管理(メディアにログインしたり、メディアからログアウトしたりする)し、そのタスクアクティビティをレポートします(タスクの開始、タスクの終了など)。
エージェントログインフロー
エージェントのアベイラビリティは、CTIサーバ側から確認されます。エージェントがエージェントコンソールにログインすると、ECE Listenerプロセスは要求をCTIサーバに送信します。この要求は、エージェントがログインしており、使用可能として自分自身にマークされていることを示します。
ECEアプリケーションからCTIサーバに送信されるインジケータは次のとおりです。
エージェントがログインするたびに、リスナーはMEDIA_LOGIN_REQを送信します。MEDIA_LOGIN_REQは、指定されたエージェントをメディアルートドメイン(MRD)にログします(エージェントをそのMRDおよびエージェントに設定されたすべてのスキルにログします)。 エージェントが自分自身を使用可能としてマークすると、リスナーは、エージェントがROUTABLEまたはNOT ROUTABLEでREADYまたはNOT READYであることを示す2つの要求を送信し、クライアント定義のエージェント情報を提供します。CTIクライアントは、関連するMRDペリフェラルペアのアプリケーションパスをOpen Requestメッセージで指定している必要があります。指定しないと、ログインが拒否されます。ログインを成功させるには、指定されたMRDに属する少なくとも1つのスキルグループ(SG)に属するようにエージェントを設定する必要があります。
次の図は、ログイン要求のメッセージフロー図を示しています。
INFOトレースレベルのリスナーログ:
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ログ:
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
ステータス0は、CTIサーバ側でエラーが発生しなかったことを示します。
エージェントの可用性フロー
エージェントがチャットSGに関連付けられ、このSGがチャットエントリポイントのECEキューに関連付けられている場合、エージェントが自分自身を使用可能とマークすると、MAKE_AGENT_ROUTABLE_INDとMAKE_AGENT_READY_INDが2回
Make Agent Routable Indicationは、指定されたエージェントが指定されたMRDのROUTABLEモードに設定されていることをICMに通知します。
注:Make Agent Routable Indicationメッセージは、Make Agent Not Routable Responseを待つ間に送信でき、保留中のMake Agent Not Routable Requestをキャンセルできます。
アプリケーションサーバからリスナーがMake Agent Ready Indication(MRA)要求を受信すると、リスナーは要求をCTIサーバに転送し、その時点でエージェントはECEで使用可能と見なします。その場合、チャットが同時に開始されると、システムは、そのチャットのチャットアクティビティを開始および作成できます。
INFOトレースが有効になっている場合、リスナーログには、これらの要求が表示されます。
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:
CTIサーバおよびOPCプロセスからの出力ログ:
### 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
その結果、OPCプロセスはエージェントをAS_NOT_READY状態から削除し、AS_NOT_ACTIVE状態にします。NewState=AS_NOT_ACTIVEは、実際にはチャット/電子メールの受信可能状態です。
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
この時点で、エージェントはルータの観点からルーティング可能で使用可能です。これを確認する最善の方法は、rttestユーティリティを使用することです。
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)
na -非アクティブ
0:2 - AciteTasks:ConcurrentTaskLimit
RA - Rはルーティング可能(設定されている場合)であり、Aは、ルータがこのドメインの新しい作業に使用できるエージェントを考慮することを示しています
注意:ICM 11.5、11.6、および12.0では、「CSCvq11852 Chat and email are not get assigned to agents」不具合が表示されます。このようなシナリオでは、rttestの出力[na-0:2,RD]に表示されます。ここで、Dはドメインが使用できないことを意味します(アプリケーションパスによって報告されます)。
さらに、OPCtestおよびAgent PG procmonユーティリティからエージェントの状態を確認できます。
例:
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
ここで、5000はエージェントが作成されるペリフェラルID、15003はエージェントのペリフェラル番号です。
チャットエントリポイントで必要な可用性
チャットイニシアチブでは、クライアントに「お問い合わせありがとうございます」というメッセージが表示されます。私たちのサービス時間は、月曜日から金曜日の午前9時から午後5時です。」 このようなメッセージは、エージェントがチャットの受信可状態であっても表示されることがあります。エージェントのアベイラビリティを識別するために、クライアントがエントリポイントURLを実行するときにシステムがAPIコールを送信します。API要求は、ECE WebサーバからECEアプリケーションサーバに送信されます。この可用性は、アプリケーションサーバで作成されたセッションによって決まります。
ECE 11.6では、[Availability Require]はMRDの可用性を調べ、MRDで使用可能なエージェントがあれば、チャットを使用できます。ここで問題となるのは、CHAT MRDに2つのSGがある場合、いずれかのSGで使用可能なエージェントがある場合、MRDがアクティブになり、CHATが提供されるという点です。この問題は、ECE 12.0以降のバージョンで解決されています。この拡張は、設定でSGを使用して行われました。この場合、特定のMRDに対して自分自身を使用可能としてマークしたエージェントのスキルグループもカウントされます。
API要求:
http://<ECE_WEB_Server_IP>/system/egain/chat/entrypoint/initialize/1001
ここで、1001はエントリポイントIDです。
API応答:
{"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}
システムがエージェントを使用可能と定義する方法には、2つのオプションがあります。エージェントがチャットに使用できるか、またはこれを可能にするキュー項目数があります。キュー項目数の設定により、すべてのエージェントがビジー状態のときにキューに入れることができる顧客の数が許可されます。
API応答では、checkEligibilityに注意してください。responseType値。その時点でのエージェントの可用性を示します。
- 0の場合は、エージェントがチャットを受け取れるか、キューの深さに達していないかのどちらかになります。
- 1の場合は、使用可能なエージェントがないことを示します。
- 2は、最大キュー項目数に達したことを意味します。
注:特定の時間に使用可能なエージェントの数を表示するオプションはありません。
エージェントが利用可能な場合、他の.jsファイルがWebブラウザで受信されます。その結果、クライアントには、ログイン名とエントリポイントの件名パラメータを含む初期ページが表示されます。
ログ収集
API応答は、クライアント側(Webブラウザのネットワークトレースから)またはECEアプリケーションサーバからデバッグまたはトレースレベルで利用できます。これは、消費されるHigh IOのために長時間にわたって保持することが推奨されません。