Introdução
Este documento descreve como solucionar problemas de quedas de chamadas enquanto o chamador está na fila em uma implantação de retorno de chamada de cortesia do Customer Voice Portal (CVP).
Pré-requisitos
Requisitos
A Cisco recomenda que você tenha conhecimento destes tópicos:
- Servidor de chamadas CVP
- Servidor CVP Voice Extensible Markup Language (VXML)
- Aplicativos do CVP Call Studio
- Gateways VXML
Componentes Utilizados
As informações neste documento são baseadas nestas versões de software:
- CVP 10.5(1)
- CVP Call Studio 10.5(1)
As informações neste documento foram criadas a partir de dispositivos em um ambiente de laboratório específico. Todos os dispositivos utilizados neste documento foram iniciados com uma configuração (padrão) inicial. Se a rede estiver ativa, certifique-se de que você entenda o impacto potencial de qualquer comando.
Problema
Em uma implantação de chamada de retorno de cortesia CVP, depois que o chamador original é chamado de volta e enquanto o chamador espera na fila por um agente, a chamada cai.
Troubleshooting
Etapa 1. Colete ActivityLogs dos aplicativos CallbackWait e CallbackQueue no servidor CVP VXML. Você pode encontrar esses logs nos diretórios:
C:\Cisco\CVP\VXMLServer\applications\CallBackWait\logs\ActivityLog\e C:\Cisco\CVP\VXMLServer\applications\CallBackQueue\logs\ActivityLog\.
Etapa 2. Localize a chamada ruim nos ActivityLogs CallbackQueue. Você pode procurar por erro ou aviso para encontrar a chamada incorreta para o carimbo de data/hora específico.
Logs de atividade de fila de retorno de chamada de trecho:
10.85.137.68.1469202885038.5788.CallbackQueue_custom,07/22/2016 11:59:24.656,Queue1,element,warning,A session has timed out after 3 minutes. This is most likely caused by a start of call class or action element at the top of the callflow not completing before the voice browser's fetch timeout occurred. To resolve it ensure this class executes in a timely manner or run it in the background. Session timeouts may also occur under high load or if there are issues with a load balancer or voice browser.
10.85.137.68.1469202885038.5788.CallbackQueue_custom,07/22/2016 11:59:24.656,Queue1,custom,Callback_Leave_Queue,ELEMENT_ENTRY
10.85.137.68.1469202885038.5788.CallbackQueue_custom,07/22/2016 11:59:24.656,Queue1,custom,Callback_Leave_Queue,ELEMENT_EXIT
10.85.137.68.1469202885038.5788.CallbackQueue_custom,07/22/2016 11:59:24.656,,end,how,app_session_complete
10.85.137.68.1469202885038.5788.CallbackQueue_custom,07/22/2016 11:59:24.656,,end,result,timeout
Etapa 3. Como você pode ver nos ActivityLogs, uma mensagem de aviso é encontrada, indicando que a sessão expirou. Isso é relatado nos logs do Gateway VXML como um erro de badfetch.
Etapa 4. Coletar logs do Tomcat do servidor VXML. Você pode encontrar os logs do Tomcat no diretório C:\Cisco\CVP\VXMLServer\Tomcat\logs
java.lang.NullPointerException
at org.apache.coyote.http11.InternalNioOutputBuffer.flushBuffer(InternalNioOutputBuffer.java:240)
at org.apache.coyote.http11.InternalNioOutputBuffer.endRequest(InternalNioOutputBuffer.java:128)
at org.apache.coyote.http11.AbstractHttp11Processor.endRequest(AbstractHttp11Processor.java:1586)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1022)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:579)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1600)
Como você vê nos logs do servidor Tomcat, há exceções de ponteiro nulo no NIO (Non-blocking Input/Output).
Note: NIO é uma coleção de JAVA Application Programming Interface (API) usada para operações intensivas de Entrada/Saída (E/S).
Etapa 5. Verificar a conectividade de rede entre o servidor CVP VXML e o gateway CVP VXML. Na maioria dos cenários, quando esse erro do Tomcat é relatado, o gateway VXML e o servidor CVP VXML estão em sub-redes diferentes.
Solução
Etapa 1. Certifique-se de que fetchtimeout esteja configurado para um mínimo de 60 segundos. Siga estas etapas se você não tiver configurado fetchtimeout.
- Adicione a propriedade VoiceXML fetchtimeout ao documento raiz.
- No Unified Call Studio, clique com o botão direito do mouse no projeto desejado e escolha Propriedades.
- Selecione On Call Studio - Root Doc Settings.
- Em VoiceXML Property, insira fetchtimeout e, em Value, insira o tempo limite desejado. Por exemplo, para 60 segundos, insira 60s
Etapa 2. Modifique o arquivo server.xml do Tomcat para incluir useSendfile="false". Você pode encontrar esse arquivo no diretório C:\Cisco\CVP\VXMLServer\Tomcat\conf\.
Por exemplo:
<Connector port="7000" useSendfile="false" redirectPort="7443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxHttpHeaderSize="8192" executor="tomcatThreadPool" acceptCount="1500"/>
<!-- A "Connector" using the shared thread pool-->
<!-- <Connector executor="tomcatThreadPool" port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> -->
<!-- Define a SSL HTTP/1.1 Connector on port 8443 This connector uses the JSSE configuration, when using APR, the connector should be using the OpenSSL style configuration described in the APR documentation -->
Note: Esse é um problema do Tomcat e não atribuído a um produto CVP. Consulte CSCus07896 para obter mais detalhes.
Etapa 3. Para lidar com os atrasos de pacotes quando diferentes sub-redes são usadas, há uma recomendação para alterar a chave de registro do Windows, TcpAckFrequency para 1.
Nota:Esta recomendação é para resolver problemas de rede (se houver) para a solução CVP que usa sub-rede diferente. Consulte CSCuq07550 para obter mais detalhes.