목차

소개

사전 요구 사항

요구 사항

사용되는 구성 요소

문제

문제 해결

솔루션

소개

이 문서에서는 발신자가 CVP(Customer Voice Portal) 콜백 서비스 구축에서 대기열에 있는 동안 통화 끊김 문제를 해결하는 방법에 대해 설명합니다.

사전 요구 사항

요구 사항

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

- CVP 통화 서버

- CVP VXML(Voice Extensible Markup Language) 서버

- CVP Call Studio 애플리케이션

- VXML 게이트웨이

사용되는 구성 요소

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

- CVP 10.5(1)

- CVP Call Studio 10.5(1)

이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다. 이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다. 현재 네트워크가 작동 중인 경우 모든 명령의 잠재적인 영향을 미리 숙지하시기 바랍니다.

문제

CVP 콜백 서비스 구축에서는 원래 발신자가 콜백된 후 발신자가 상담원을 대기열에서 기다리는 동안 통화가 끊어집니다.

문제 해결

1단계. CVP VXML 서버의 CallbackWait 및 CallbackQueue 응용 프로그램에서 ActivityLogs를 수집합니다. 다음 디렉토리에서 이러한 로그를 찾을 수 있습니다.

C:\Cisco\CVP\VXMLServer\applications\CallBackWait\logs\ActivityLog\및 C:\Cisco\CVP\VXMLServer\applications\CallBackQueue\logs\ActivityLog\입니다.

2단계. CallbackQueue ActivityLogs에서 잘못된 호출을 찾습니다. 특정 타임스탬프에 대한 잘못된 호출을 찾기 위해 오류 또는 경고를 검색할 수 있습니다.

코드 조각 콜백 대기열 작업 로그:

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

3단계. ActivityLogs에서 볼 수 있듯이 세션에 시간 초과가 있음을 나타내는 경고 메시지가 있습니다. 이는 VXML 게이트웨이 로그에서 badfetch 오류로 보고됩니다.

4단계. VXML 서버에서 Tomcat 로그를 수집합니다. Tomcat 로그는 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)

Tomcat 서버 로그에서 볼 수 있듯이 NIO(Non-blocking Input/Output)에는 null 포인터 예외가 있습니다.

참고: NIO는 I/O(Input/Output) 작업을 집중적으로 수행하는 데 사용되는 JAVA API(Application Programming Interface) 컬렉션입니다.

5단계. CVP VXML 서버와 CVP VXML 게이트웨이 간의 네트워크 연결을 확인합니다. 대부분의 시나리오에서 이 Tomcat 오류가 보고되면 VXML 게이트웨이와 CVP VXML 서버는 서로 다른 서브넷에 있습니다.

솔루션

1단계. fetchtimeout이 최소 60초로 구성되어 있는지 확인합니다. fetchtimeout을 구성하지 않은 경우 다음 단계를 수행합니다.

- VoiceXML 속성 fetchtimeout을 루트 문서에 추가합니다.

- Unified Call Studio에서 원하는 프로젝트를 마우스 오른쪽 단추로 클릭하고 속성을 선택합니다.

- Call Studio - Root Doc Settings에서 선택합니다.

- VoiceXML 속성에서 fetchtimeout을 입력하고 값에서 원하는 시간 제한을 입력합니다. 예를 들어 60초에는 60초를 입력합니다

2단계. useSendfile="false"를 포함하도록 Tomcat server.xml 파일을 수정합니다.  이 파일은 C:\Cisco\CVP\VXMLServer\Tomcat\conf\ 디렉터리에서 찾을 수 있습니다.

예를 들면 다음과 같습니다.

<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 -->

참고: 이는 Tomcat 문제이며 CVP 제품에서 기인하지 않습니다. 자세한 내용은 CSCus07896을 참조하십시오.

3단계. 다른 서브넷을 사용할 때 패킷 지연을 해결하려면 Windows 레지스트리 키인 TcpAckFrequency를 1로 변경하는 것이 좋습니다.

참고:이 권장 사항은 다른 서브넷을 사용하는 CVP 솔루션의 네트워크 문제(있는 경우)를 해결하는 것입니다. 자세한 내용은 CSCuq07550을 참조하십시오.