O conjunto de documentação deste produto faz o possível para usar uma linguagem imparcial. Para os fins deste conjunto de documentação, a imparcialidade é definida como uma linguagem que não implica em discriminação baseada em idade, deficiência, gênero, identidade racial, identidade étnica, orientação sexual, status socioeconômico e interseccionalidade. Pode haver exceções na documentação devido à linguagem codificada nas interfaces de usuário do software do produto, linguagem usada com base na documentação de RFP ou linguagem usada por um produto de terceiros referenciado. Saiba mais sobre como a Cisco está usando a linguagem inclusiva.
A Cisco traduziu este documento com a ajuda de tecnologias de tradução automática e humana para oferecer conteúdo de suporte aos seus usuários no seu próprio idioma, independentemente da localização. Observe que mesmo a melhor tradução automática não será tão precisa quanto as realizadas por um tradutor profissional. A Cisco Systems, Inc. não se responsabiliza pela precisão destas traduções e recomenda que o documento original em inglês (link fornecido) seja sempre consultado.
Este documento descreve como o Enterprise Chat e o Email(ECE) identificam o status de disponibilidade do agente quando os clientes iniciam sessões de bate-papo.
A Cisco recomenda que você tenha conhecimento destes tópicos:
As informações neste documento são baseadas na versão de software ECE 11.6.
As informações neste documento foram criadas a partir dos dispositivos em um ambiente de laboratório específico. All of the devices used in this document started with a cleared (default) configuration.
Para que o Cisco Unified Intelligent Contact Management Enterprise(ICM) gerencie as atividades do agente e roteie corretamente as tarefas, o ICM deve monitorar todos os agentes conectados ao ICM. As instâncias do aplicativo, como o ECE, relatam as atividades do agente e o status do agente por meio da interface CTI/ARM (Relatório e Gerenciamento do Agente) estendida do ICM.
O serviço ARM baseia-se na funcionalidade atual do servidor CTI e permite que um aplicativo cliente monitore agentes de aplicativos e atividades de tarefas. A Interface ARM permite que um aplicativo cliente monitore um conjunto especificado de agentes (modo de estação de trabalho) ou todos os agentes (modo bridge) associados a um aplicativo.
A imagem mostra mais detalhes das interfaces ARM. Uma instância de aplicativo usa a interface ARM para gerenciar agentes em um ou mais PGs do agente (conectá-los e sair da mídia, etc.) e para gerar relatórios sobre suas atividades de tarefa (Iniciar Tarefa, Terminar Tarefa, etc.).
A disponibilidade do agente é identificada do lado do servidor CTI. Quando um agente faz logon no console do agente, o processo de Escuta ECE envia a solicitação ao Servidor CTI. A solicitação indica que o agente está conectado e se marcou como disponível.
Estes são os indicadores que são enviados pelo aplicativo ECE ao servidor CTI:
Sempre que um agente estiver conectado, um ouvinte enviará um MEDIA_LOGIN_REQ. O MEDIA_LOGIN_REQ registra o agente especificado em um Domínio de Rota de Mídia (MRD) (registra o agente em todas as habilidades configuradas para esse MRD e agente). Quando um agente se marca como disponível, o ouvinte envia mais duas solicitações que indicam que o agente é ROTEÁVEL ou NÃO ROTEÁVEL e PRONTO ou NÃO PRONTO e fornece informações de agente definidas pelo cliente. O cliente CTI deve ter especificado o caminho do aplicativo para o par de periféricos MRD relacionados na mensagem de solicitação aberta ou o login é rejeitado. Para que o logon seja bem-sucedido, o agente também deve ser configurado para pertencer a pelo menos um Grupo de Habilidades (SG) pertencente ao MRD indicado.
A imagem mostra o diagrama de fluxo de mensagens para solicitação de login:
Log do ouvinte com nível de rastreamento 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 <@>
Log CTIsvr com o nível de rastreamento padrão:
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 significa que nenhum erro ocorreu do lado do servidor CTI.
Se o agente estiver associado ao bate-papo SG e esse SG estiver associado à fila ECE no ponto de Entrada de Bate-papo, quando o agente se marcar disponível, você verá 2 solicitações, MAKE_AGENT_ROUTABLE_IND e MAKE_AGENT_READY_IND.
Fazer com que a indicação roteável do agente diga ao ICM que o agente especificado foi definido para um modo ROUTABLE para o MRD especificado.
Note: A mensagem Make Agent Routable Indication (Fazer indicação de roteamento do agente) pode ser enviada enquanto espera por uma resposta Make Agent Not Routable e cancela a solicitação Make Agent Not Routable pendente.
Depois que a solicitação Make Agent Ready Indication é recebida pelo ouvinte do servidor de aplicativos, o ouvinte encaminha a solicitação ao servidor CTI e, nesse momento, o agente considerou-a disponível para ECE. Nesse caso, se o bate-papo for iniciado ao mesmo tempo, o sistema permitirá iniciar e criará a atividade de bate-papo para esse bate-papo.
O log do ouvinte mostra essas solicitações se o rastreamento INFO estiver ativado:
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:
A saída dos registros de processos do servidor CTI e 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
Como resultado, o processo OPC remove o agente do estado AS_NOT_READY e coloca no estado AS_NOT_ATIVE. NewState=AS_NOT_ATIVE é, na verdade, o estado Pronto para Bate-papo/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
Neste momento, o agente está Roteável e Disponível da perspectiva do Roteador. A melhor maneira de verificar isso é usar o utilitário 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 - Inativo
0:2 - TarefasAtivas:LimiteTarefaSimultâneo
RA - R é roteável (se definido), A indica que o roteador considera o agente disponível para novos trabalhos neste domínio
Caution: No ICM 11.5, 11.6 e 12.0 você pode pressionar o defeito CSCvq11852 Chat e os emails não são atribuídos aos agentes, mesmo que estejam disponíveis. Nesses cenários, você vê na saída rttest [na-0:2,RD], onde D significa domínio indisponível (conforme relatado pelo caminho do aplicativo).
Além disso, você pode verificar o estado do agente em OPCtest e nos utilitários de procmon PG do agente.
Examples:
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
Onde 5000 é a ID do Periférico onde o agente é criado e 15003 é o PeripheralNumber do agente.
Em inicializações de bate-papo, seus clientes podem ver a mensagem "Obrigado por sua pergunta. Nosso horário de atendimento é de 9h às 17h (horário do Pacífico), de segunda a sexta." Essa mensagem pode ser exibida mesmo quando há um agente no estado Pronto para um bate-papo. Para identificar a disponibilidade do agente, o sistema envia a chamada da API quando os clientes executam o URL do ponto de entrada. A solicitação de API passa pelo servidor Web ECE para o servidor de aplicativos ECE. Essa disponibilidade é determinada pelas sessões criadas no servidor de aplicativos.
No ECE 11.6, o requisito de disponibilidade examina a disponibilidade do MRD e, se houver algum agente disponível no MRD, o bate-papo está disponível. O problema aqui é que se você tem 2 SG no CHAT MRD, então se houver um agente disponível em um dos SG, seu MRD se torna ativo e o CHAT é oferecido. Esse problema é resolvido no ECE 12.0 e versões posteriores. A melhoria foi feita pelo uso do SG na configuração. Nesse caso, o sistema também conta os Grupos de Habilidades para agentes que se marcam disponíveis para o MRD específico.
Solicitação de API:
http://<ECE_WEB_Server_IP>/system/egain/chat/entrypoint/initialize/1001
onde 1001 é o ID do ponto de entrada.
Resposta da 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}
Há duas opções de como o sistema define que o agente está disponível. O agente está disponível para um bate-papo ou há uma Profundidade da fila que permite fazer isso. A configuração de profundidade da fila permite o número de clientes que podem ser enfileirados quando todos os agentes estão ocupados.
Na resposta da API, preste atenção na verificaçãoQualificação: valor responseType. Indica a disponibilidade de um agente no momento.
Note: Não há opções aqui para ver quantos agentes estão disponíveis no momento específico.
Se um agente estiver disponível, os outros arquivos .js serão recebidos pelo navegador da Web. Como resultado, um cliente vê a página inicial com o nome de logon e os parâmetros de assunto do ponto de entrada.
As respostas de API estão disponíveis no lado do cliente (no rastreamento de rede do navegador da Web) ou no servidor de aplicativos ECE com nível de depuração ou rastreamento que não é recomendado manter por muito tempo devido ao Alto IO que é consumido.