목차

소개

사전 요구 사항

요구 사항

사용되는 구성 요소

기능 개요

에이전트 로그인 흐름

상담원 가용성 흐름

채팅 진입점에 필요한 가용성

로그 수집

소개

이 문서에서는 클라이언트가 채팅 세션을 시작할 때 Enterprise Chat and Email(ECE)에서 상담원 가용성 상태를 식별하는 방법에 대해 설명합니다.

사전 요구 사항

요구 사항

다음 주제에 대한 지식을 보유하고 있으면 유용합니다.

- 엔터프라이즈 채팅 및 이메일

- 웹 브라우저 개발자 도구

- Unified Intelligent Contact Management Enterprise

사용되는 구성 요소

이 문서의 정보는 소프트웨어 버전 ECE 11.6을 기반으로 합니다.

이 문서의 정보는 특정 랩 환경의 디바이스에서 생성되었습니다.이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다.

기능 개요

Cisco Unified ICM(Intelligent Contact Management Enterprise)이 에이전트 활동을 관리하고 작업을 제대로 라우팅하려면 ICM에 로그인한 모든 에이전트를 모니터링해야 합니다.ECE와 같은 애플리케이션 인스턴스는 확장 ICM CTI/ARM(상담원 보고서 및 관리) 인터페이스를 통해 상담원 활동 및 상담원 상태를 보고합니다.

ARM 서비스는 현재 CTI 서버 기능을 기반으로 하며 클라이언트 애플리케이션에서 애플리케이션 에이전트 및 작업 활동을 모니터링할 수 있도록 합니다.ARM 인터페이스를 사용하면 클라이언트 애플리케이션에서 지정된 에이전트 집합(워크스테이션 모드) 또는 애플리케이션과 관련된 모든 에이전트(브리지 모드)를 모니터링할 수 있습니다.

이 그림에서는 ARM 인터페이스에 대한 자세한 정보를 보여 줍니다.  응용 프로그램 인스턴스는 ARM 인터페이스를 사용하여 하나 이상의 에이전트 PG에서 에이전트를 관리하고(미디어 로그인과 발신 등) 해당 작업 활동(작업 시작, 작업 종료 등)을 보고합니다.

에이전트 로그인 흐름

에이전트 가용성은 CTI 서버 측에서 식별됩니다.에이전트가 에이전트 콘솔에 로그인하면 ECE Listener 프로세스는 요청을 CTI 서버로 전송합니다.요청이 상담원이 로그인되어 있고 자신이 사용 가능한 것으로 표시되었음을 나타냅니다.

다음은 ECE 애플리케이션에서 CTI 서버로 전송되는 표시기입니다.

에이전트가 로그인될 때마다 리스너는 MEDIA_LOGIN_REQ를 전송합니다.MEDIA_LOGIN_REQ는 지정된 에이전트를 MRD(Media Route Domain)에 로깅합니다(에이전트는 해당 MRD 및 에이전트에 대해 구성된 모든 기술에 로그인). 상담원이 자신을 사용 가능으로 표시하면 리스너는 상담원이 라우팅 가능 또는 라우팅 불가능 및 준비 안 됨 또는 통화 불가능 상태임을 나타내는 두 개의 추가 요청을 전송하며 클라이언트 정의 상담원 정보를 제공합니다.CTI 클라이언트가 Open Request(요청 열기) 메시지에서 관련 MRD 주변 장치 쌍에 대한 애플리케이션 경로를 지정했거나 로그인이 거부되어야 합니다.로그인하려면 지정된 MRD에 속한 하나 이상의 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 요청이 표시됩니다.

상담원 라우팅 가능 표시를 설정하면 지정된 상담원이 지정된 MRD에 대해 라우팅 가능 모드로 설정되었음을 ICM에 알립니다.

참고:상담원 라우팅 가능 표시 만들기 메시지는 상담원이 라우팅 불가능 응답을 기다리고 보류 중인 상담원 라우팅 불가능 요청을 취소하는 동안 전송할 수 있습니다.

리스너에서 애플리케이션 서버로부터 에이전트 준비 표시 요청을 받으면 리스너는 요청을 CTI 서버로 전달하며, 그 순간 에이전트는 ECE에서 사용 가능한 것으로 간주됩니다.이 경우 채팅이 동시에 시작되면 시스템은 해당 채팅에 대한 채팅 활동을 시작하고 생성할 수 있습니다.

INFO 추적이 활성화된 경우 Listener 로그는 이러한 요청을 표시합니다.

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)

해당 없음 - 비활성

0:2 - AciteTasks:ConcurrentTaskLimit

RA - R은 라우팅 가능(설정된 경우), 라우터가 이 도메인의 새 작업에 에이전트를 사용할 수 있다고 간주한다고 표시함

주의:ICM 11.5, 11.6 및 12.0에서는 결함 CSCvq11852 Chat에 도달할 수 있으며 상담원에게 이메일을 할당할 수 있는 경우에도 해당 이메일이 할당되지 않습니다.이러한 시나리오에서는 rttest 출력 [na-0:2,RD]에서 볼 수 있습니다. 여기서 D는 도메인을 사용할 수 없음을 의미합니다(앱 경로에서 보고한 대로).

그 외에도 OPCtest 및 에이전트 PG 프로세서 유틸리티에서 에이전트 상태를 확인할 수 있습니다.

예:

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은 상담원 주변 장치 번호입니다.

채팅 진입점에 필요한 가용성

채팅 초기화를 통해 고객은 "Thank you for your inquiry.저희 근무 시간은 오전 9시부터 오후 5시까지입니다. 이러한 메시지는 상담원이 채팅을 준비됨 상태인 경우에도 나타날 수 있습니다.에이전트 가용성을 식별하기 위해 클라이언트가 진입점 URL을 실행할 때 시스템에서 API 호출을 보냅니다.API 요청은 ECE 웹 서버를 통해 ECE 애플리케이션 서버로 이동합니다.이 가용성은 애플리케이션 서버에서 생성된 세션에 의해 결정됩니다.

ECE 11.6에서는 Availability Require(가용성 요구)에서 MRD 가용성을 확인하고 MRD에 사용 가능한 상담원이 있으면 Chat(채팅)를 사용할 수 있습니다.여기서 문제가 발생합니다. 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}

시스템에서 에이전트를 사용할 수 있음을 정의하는 방법에는 두 가지 옵션이 있습니다.상담원이 채팅에 사용할 수 있거나 큐 깊이가 있으므로 이 작업을 수행할 수 있습니다.대기열 길이 컨피그레이션을 사용하면 모든 상담원이 통화 중일 때 대기할 수 있는 고객 수를 사용할 수 있습니다.

API 응답에서 checkEligibility에 유의하십시오.responseType 값입니다.해당 시점에 상담원 가용성을 나타냅니다.

- 0으로 제공된 경우 상담원이 채팅을 수행할 수 있거나 대기열 깊이에 도달하지 않았음을 의미합니다.

- 1이면 사용 가능한 상담원이 없음을 나타냅니다.

- 2는 최대 대기열 깊이에 도달했음을 의미합니다.

참고:특정 시간에 사용할 수 있는 상담원 수를 확인할 수 있는 옵션은 없습니다.

에이전트를 사용할 수 있는 경우 웹 브라우저에서 다른 .js 파일을 받습니다.따라서 클라이언트는 엔트리 포인트에 대한 로그인 이름과 제목 매개 변수가 있는 초기 페이지를 볼 수 있습니다.

로그 수집

API 응답은 클라이언트 측(웹 브라우저 네트워크 추적에서) 또는 디버그 또는 추적 레벨이 있는 ECE 애플리케이션 서버에서 사용할 수 있습니다. 이는 IO가 높기 때문에 오랫동안 유지하지 않는 것이 좋습니다.