目录

简介

先决条件

使用的组件

背景信息

VVB消息

步骤1. VVB从CVP接收SIP邀请并完成交换SIP消息。

步骤2. VVB在本地获取bootstrap.vxml。

步骤3. VVB将CALL_NEW发送到CVP。

步骤4.新的TCP将VVB连接到CVP VXML服务器，并调用到CVP应用。

步骤5. VVB调用到应用程序并获取VXML文档。

步骤6. VVB发送POST Query for Audio File。

步骤7. VVB获取音频文件并检查音频文件是否已修改。

步骤8. VVB播放音频文件。

步骤9. VVB在成功获取音频文件并关闭此TCP会话后发送POST查询。

步骤10. VVB从CVP接收BYE并完成此呼叫。

简介

本文档介绍具有复杂呼叫流程的思科虚拟化语音浏览器(VVB)上的消息流。

先决条件

本文档没有任何特定的要求。

使用的组件

- VVB版本11.6

- 思科统一客户语音门户(CVP)版本11.6

本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始（默认）配置。如果您的网络处于活动状态，请确保您了解任何命令的潜在影响

背景信息

呼叫流：

入口网关> CVP >智能联系管理(ICM)>返回VRU标签> CVP > VVB

如图所示，它是全面的呼叫流。

如图所示，本文档将更多地关注消息的VVB部分。

VVB消息

步骤1. VVB从CVP接收SIP邀请并完成交换SIP消息。

256317: Oct 23 10:10:36.668 AEST %MIVR-JASMIN-7-UNK:[CALLID=B42C468000010000000000650851430A-150871535521622] NEW_CALL, GUCID=B42C468000010000000000650851430A; GUID=3022800512-0000065536-0000000101-0139543306; CallId=B42C468000010000000000650851430A-150871535521622@10.66.75.49; URI=sip:888811111139@10.66.75.62;transport=tls

256334: Oct 23 10:10:36.719 AEST %MIVR-JASMIN-7-UNK:[CALLID=B42C468000010000000000650851430A-150871535521622] SIP-ltp92-88881111*, State=ALERTED: Sending 200 OK response.

256335: Oct 23 10:10:36.785 AEST %MIVR-JASMIN-7-UNK:[CALLID=B42C468000010000000000650851430A-150871535521622] SIP-ltp92-88881111*, State=ALERTED: Processing ACK

步骤2. VVB在本地获取bootstrap.vxml。

256398: Oct 23 10:10:36.794 AEST %MIVR-SS_VB-7-UNK:[CALLID=B42C468000010000000000650851430A-150871535521622] Fetch:    file:/opt/cisco/uccx/Documents/System/bootstrap.vxml

256401: Oct 23 10:10:36.795 AEST %MIVR-SS_VB-7-UNK:[CALLID=B42C468000010000000000650851430A-150871535521622] Successfully fetched bytes: 0, duration(s): 0.001, URI: file:/opt/cisco/uccx/Documents/System/bootstrap.vxml

步骤3. VVB将CALL_NEW发送到CVP。

然后，CVP发送到ICM:REQUEST_INSTRUCTION,ICM然后将应用信息传递给CVP。

256469: Oct 23 10:10:36.809 AEST %MIVR-SS_VB-7-UNK:[CALLID=B42C468000010000000000650851430A-150871535521622] Browser.makeRequest(): got encoded uri=http://10.66.75.49:7000/CVP/Server?MSG_TYPE=CALL_NEW&CALL_DNIS=888811111139&CALL_ANI=sip%3A60006099%4010.66.75.49%3A5061%3Btransport%3Dtls&ERROR_CODE=0&RECOVERY_VXML=crtp%3A%2FSDocuments%2FRecovery.vxml&CLIENT_TYPE=IOS&CALL_ID=B42C468000010000000000650851430A&CALL_LEGID=B42C468000010000000000650851430A-150871535521622%4010.66.75.49&CALL_UUI=&VERSION=Voice_Browser_11_6&PRIMARY=10.66.75.49

数据包捕获：  [PSH,ACK] VVB到CVP（7000端口）

GET /CVP/Server?MSG_TYPE=CALL_NEW&CALL_DNIS=888811111139&CALL_ANI=sip%3A60006099%4010.66.75.49%3A5061%3Btransport%3Dtls&ERROR_CODE=0&RECOVERY_VXML=crtp%3A%2FSDocuments%2FRecovery.vxml&CLIENT_TYPE=IOS&CALL_ID=B42C468000010000000000650851430A&CALL_LEGID=B42C468000010000000000650851430A-150871535521622%4010.66.75.49&CALL_UUI=&VERSION=Voice_Browser_11_6&PRIMARY=10.66.75.49 HTTP/1.1

User-Agent: Cisco Voice Browser/1.0 (Cache activated)

Accept: text/vxml, application/vxml, application/vxml+xml, *; q=.2, */*; q=.2

Host: 10.66.75.49:7000

Connection: keep-alive

VVB收到200 OK的FETCH:  [PSH,ACK] CVP（7000端口）到VVB

256475: Oct 23 10:10:36.853 AEST %MIVR-SS_VB-7-UNK:[CALLID=B42C468000010000000000650851430A-150871535521622] Fetch: HTTP 200 OK

数据包捕获：

HTTP/1.1 200 OK

Server: Apache-Coyote/1.1

Transfer-Encoding: chunked

Date: Sun, 22 Oct 2017 23:35:55 GMT

VVB成功获取，并获取CVP应用信息

src="http://10.66.75.48:7000/CVP/en-us/../Server" namelist="application callid _dnis _ani "

<var name="application" expr="'HelloWorld'"

256479: Oct 23 10:10:36.853 AEST %MIVR-SS_VB-7-UNK:[CALLID=B42C468000010000000000650851430A-150871535521622] Successfully fetched bytes: 0, duration(s): 0.044, URI: http://10.66.75.49:7000/CVP/Server?MSG_TYPE=CALL_NEW&CALL_DNIS=888811111139&CALL_ANI=sip%3A60006099%4010.66.75.49%3A5061%3Btransport%3Dtls&ERROR_CODE=0&RECOVERY_VXML=crtp%3A%2FSDocuments%2FRecovery.vxml&CLIENT_TYPE=IOS&CALL_ID=B42C468000010000000000650851430A&CALL_LEGID=B42C468000010000000000650851430A-150871535521622%4010.66.75.49&CALL_UUI=&VERSION=Voice_Browser_11_6&PRIMARY=10.66.75.49

CVP发送VXML文档：  [ACK]CVP（7000端口）到VVB

256480: Oct 23 10:10:36.856 AEST %MIVR-SS_VB-7-UNK:Content of VXML Document:

<?xml version="1.0" encoding="iso-8859-1"?>

<vxml version="2.0">

<var name="MSG_TYPE" expr="'CALL_RESULT'" />

<var name="CALL_ID" expr="'B42C468000010000000000650851430A'" />

<var name="CALL_SEQ_NUM" expr="1" />

<var name="ERROR_CODE" expr="0" />

<var name="CALLCED" />

<var name="FROM_EXTVXML0" />

<var name="FROM_EXTVXML1" />

<var name="FROM_EXTVXML2" />

<var name="FROM_EXTVXML3" />

<var name="PODID" />

<var name="DEBUG" expr="1" />

<property name="com.cisco.media-logging-id" value="'B42C468000010000000000650851430A'" />

<property name="fetchaudiodelay" value="2s" />

<property name="fetchaudiominimum" value="5s" />

<form id="GS" scope="dialog">

<property name="com.cisco.tts-server" value="rtsp://tts-en-us/synthesizer"/>

<property name="com.cisco.asr-server" value="rtsp://asr-en-us/recognizer"/>

<var name="application" expr="'HelloWorld'"/>

<var name="callid" expr="'B42C46800001000000000065085143'"/>

<var name="_dnis" expr="'7001'"/>

<var name="_ani" expr="'60006099'"/>

<subdialog name="Server"  src="http://10.66.75.48:7000/CVP/en-us/../Server" namelist="application callid _dnis _ani ">

<filled>

<assign name="document.FROM_EXTVXML0" expr="Server.FromExtVXML0"/>

<assign name="document.FROM_EXTVXML1" expr="Server.FromExtVXML1"/>

<assign name="document.FROM_EXTVXML2" expr="Server.FromExtVXML2"/>

<assign name="document.FROM_EXTVXML3" expr="Server.FromExtVXML3"/>

<assign name="document.PODID" expr="Server.PodId"/>

<assign name="document.CALLCED" expr="Server.caller_input"/>

<if cond="Server.caller_input == 'system_unavailable'">

<assign name="ERROR_CODE" expr="40"/>

<elseif cond="Server.caller_input == 'app_error'"/>

<assign name="ERROR_CODE" expr="41"/>

<elseif cond="Server.caller_input == 'app_hangup'"/>

<assign name="ERROR_CODE" expr="42"/>

<elseif cond="Server.caller_input == 'suspended'"/>

<assign name="ERROR_CODE" expr="43"/>

<elseif cond="Server.caller_input == 'no_session_error'"/>

<assign name="ERROR_CODE" expr="44"/>

</if>

<goto next="#TrySubmit"/>

</filled>

</subdialog>

<!-- Event Handling -->

<catch event="telephone.disconnect.hangup">

<assign name="ERROR_CODE" expr="1"/>

<goto next="#TrySubmit"/>

</catch>

<catch event="connection.disconnect.hangup">

<assign name="ERROR_CODE" expr="1"/>

<goto next="#TrySubmit"/>

</catch>

<catch event="telephone.disconnect">

<assign name="ERROR_CODE" expr="1"/>

<goto next="#TrySubmit"/>

</catch>

<catch event="connection.disconnect">

<assign name="ERROR_CODE" expr="1"/>

<goto next="#TrySubmit"/>

</catch>

<catch event="error.badfetch">

<assign name="ERROR_CODE" expr="9"/>

<if cond="DEBUG == '1'">

<log> Media Fetch Error: CallID: <value expr="CALL_ID"/>

: CallSeqNum: <value expr="CALL_SEQ_NUM"/>

</log>

</if>

<goto next="#TrySubmit"/>

</catch>

<catch event="com.audium.error.badfetch">

<assign name="ERROR_CODE" expr="45"/>

<if cond="DEBUG == '1'">

<log> Media Fetch Error: CallID: <value expr="CALL_ID"/>

: CallSeqNum: <value expr="CALL_SEQ_NUM"/>

</log>

</if>

<goto next="#TrySubmit"/>

</catch>

<catch event="error.semantic">

<assign name="ERROR_CODE" expr="10"/>

<if cond="DEBUG == '1'">

<log> Semantic Error: CallID: <value expr="CALL_ID"/>

: CallSeqNum: <value expr="CALL_SEQ_NUM"/>

</log>

</if>

<goto next="#TrySubmit"/>

</catch>

<catch event = "error.unsupported.format">

<assign name="ERROR_CODE" expr="11"/>

<if cond="DEBUG == '1'">

<log> Unsupported Format Error: CallID: <value expr="CALL_ID"/>

: CallSeqNum: <value expr="CALL_SEQ_NUM"/>

</log>

</if>

<goto next="#TrySubmit"/>

</catch>

<catch event = "error.unsupported.element">

<assign name="ERROR_CODE" expr="12"/>

<if cond="DEBUG == '1'">

<log> Unsupported Element Error: CallID: <value expr="CALL_ID"/>

: CallSeqNum: <value expr="CALL_SEQ_NUM"/>

</log>

</if>

<goto next="#TrySubmit"/>

</catch>

<catch event="nomatch">

<assign name="ERROR_CODE" expr="16" />

<goto next="#TrySubmit"/>

</catch>

<noinput>

<assign name="ERROR_CODE" expr="17" />

<goto next="#TrySubmit"/>

</noinput>

<catch event="com.cisco.isn.session.disconnect.abnormal">

<assign name="ERROR_CODE" expr="27"/>

<goto next="#TrySubmit"/>

</catch>

<catch event="telephone.disconnect.hangup.forced">

<assign name="ERROR_CODE" expr="27"/>

<goto next="#TrySubmit"/>

</catch>

<catch event = "com.cisco.isn.session.disconnect.error">

<assign name="ERROR_CODE" expr="28"/>

<goto next="#TrySubmit"/>

</catch>

<catch event="error.unsupported.language">

<assign name="ERROR_CODE" expr="30"/>

<if cond="DEBUG == '1'">

<log> Unsupported Language Error: CallID: <value expr="CALL_ID"/>

: CallSeqNum: <value expr="CALL_SEQ_NUM"/>

</log>

</if>

<goto next="#TrySubmit"/>

</catch>

<catch event = "error.com.cisco.media.resource.unavailable.asr">

<assign name="ERROR_CODE" expr="31"/>

<if cond="DEBUG == '1'">

<log> ASR Media Resource Unavailable Error: CallID: <value expr="CALL_ID"/>

: CallSeqNum: <value expr="CALL_SEQ_NUM"/>

</log>

</if>

<goto next="#TrySubmit"/>

</catch>

<catch event = "error.com.cisco.media.resource.unavailable.tts">

<assign name="ERROR_CODE" expr="32"/>

<if cond="DEBUG == '1'">

<log> TTS Media Resource Unavailable Error: CallID: <value expr="CALL_ID"/>

: CallSeqNum: <value expr="CALL_SEQ_NUM"/>

</log>

</if>

<goto next="#TrySubmit"/>

</catch>

<catch event = "error.com.cisco.media.resource.failure.asr">

<assign name="ERROR_CODE" expr="31"/>

<if cond="DEBUG == '1'">

<log> ASR Media Resource Failure Error: CallID: <value expr="CALL_ID"/>

: CallSeqNum: <value expr="CALL_SEQ_NUM"/>

</log>

</if>

<goto next="#TrySubmit"/>

</catch>

<catch event = "error.com.cisco.media.resource.failure.tts">

<assign name="ERROR_CODE" expr="32"/>

<if cond="DEBUG == '1'">

<log> TTS Media Resource Failure Error: CallID: <value expr="CALL_ID"/>

: CallSeqNum: <value expr="CALL_SEQ_NUM"/>

</log>

</if>

<goto next="#TrySubmit"/>

</catch>

<catch event = "error.com.cisco.media.resource">

<assign name="ERROR_CODE" expr="33"/>

<if cond="DEBUG == '1'">

<log> General Media Resource Error: CallID: <value expr="CALL_ID"/>

: CallSeqNum: <value expr="CALL_SEQ_NUM"/>

</log>

</if>

<goto next="#TrySubmit"/>

</catch>

<catch event = "error">

<assign name="ERROR_CODE" expr="34"/>

<if cond="DEBUG == '1'">

<log> General Error: CallID: <value expr="CALL_ID"/>

: CallSeqNum: <value expr="CALL_SEQ_NUM"/>

</log>

</if>

<goto next="#TrySubmit"/>

</catch>

</form>

<form id="TrySubmit">

<var name="TryNum" expr="1" />

<var name="MaxTries" expr="1" />

<!--Event Handling -->

<catch event="error.badfetch">

<if cond="TryNum == MaxTries">

<if cond="DEBUG == '1'">

<log> Error: Exceeded Retries to Application Server.  Going to Recovery VXML: CallID: <value expr="CALL_ID"/>

: CallSeqNum: <value expr="CALL_SEQ_NUM"/>

</log>

</if>

<goto next="crtp:/SDocuments/Recovery.vxml"/>

</if>

<assign name="TryNum" expr="TryNum + 1"/>

<if cond="DEBUG == '1'">

<log> Retrying Application Server: CallID: <value expr="CALL_ID"/>

: CallSeqNum: <value expr="CALL_SEQ_NUM"/>

</log>

</if>

<submit next= "/CVP/Server"

namelist="MSG_TYPE CALL_ID CALL_SEQ_NUM ERROR_CODE CALLCED FROM_EXTVXML0 FROM_EXTVXML1 FROM_EXTVXML2 FROM_EXTVXML3 PODID" fetchtimeout="7s"/>

</catch>

<catch event = "error">

<if cond="DEBUG == '1'">

<log> General Error encountered when trying to contact Application Server.  Going to Recovery VXML: CallID: <value expr="CALL_ID"/>

: CallSeqNum: <value expr="CALL_SEQ_NUM"/>

</log>

</if>

<goto next="crtp:/SDocuments/Recovery.vxml"/>

</catch>

<catch event="telephone.disconnect.hangup">

<assign name="ERROR_CODE" expr="1"/>

<submit next= "/CVP/Server"

namelist="MSG_TYPE CALL_ID CALL_SEQ_NUM ERROR_CODE CALLCED FROM_EXTVXML0 FROM_EXTVXML1 FROM_EXTVXML2 FROM_EXTVXML3 PODID" fetchtimeout="7s"/>

</catch>

<catch event="connection.disconnect.hangup">

<assign name="ERROR_CODE" expr="1"/>

<submit next= "/CVP/Server"

namelist="MSG_TYPE CALL_ID CALL_SEQ_NUM ERROR_CODE CALLCED FROM_EXTVXML0 FROM_EXTVXML1 FROM_EXTVXML2 FROM_EXTVXML3 PODID" fetchtimeout="7s"/>

</catch>

<!--submit next block -->

<block>

<submit next= "/CVP/Server"

namelist="MSG_TYPE CALL_ID CALL_SEQ_NUM ERROR_CODE CALLCED FROM_EXTVXML0 FROM_EXTVXML1 FROM_EXTVXML2 FROM_EXTVXML3 PODID" fetchtimeout="7s"/>

</block>

</form>

</vxml>

步骤4.新的TCP将VVB连接到CVP VXML服务器，并调用到CVP应用。

256573: Oct 23 10:10:36.871 AEST %MIVR-SS_VB-7-UNK:[CALLID=B42C468000010000000000650851430A-150871535521622] Fetch:    http://10.66.75.48:7000/CVP/en-us/../Server?application=HelloWorld&callid=B42C46800001000000000065085143&_dnis=7001&_ani=60006099

数据包捕获：   [PSH,ACK] VVB到CVP [7000端口]:

GET /CVP/en-us/../Server?application=HelloWorld&callid=B42C46800001000000000065085143&_dnis=7001&_ani=60006099 HTTP/1.1

User-Agent: Cisco Voice Browser/1.0 (Cache activated)

Accept: text/vxml, application/vxml, application/vxml+xml, *; q=.2, */*; q=.2

Host: 10.66.75.48:7000

Connection: keep-alive

CVP向VVB发送200 OK:  [PSH,ACK] CVP（7000端口）到VVB

256576: Oct 23 10:10:36.881 AEST %MIVR-SS_VB-7-UNK:[CALLID=B42C468000010000000000650851430A-150871535521622] Fetch: HTTP 200 OK

数据包捕获：

HTTP/1.1 200 OK

Server: Apache-Coyote/1.1

Set-Cookie: JSESSIONID=32868A579F1F48F50A6CC362EBF3F256; Path=/CVP/; HttpOnly

Content-Type: text/xml;charset=UTF-8

Transfer-Encoding: chunked

Date: Sun, 22 Oct 2017 23:35:55 GMT

CVP发送VXML文档：calling_into=HelloWorld

256581: Oct 23 10:10:36.881 AEST %MIVR-SS_VB-7-UNK:[CALLID=B42C468000010000000000650851430A-150871535521622] Successfully fetched bytes: 0, duration(s): 0.01, URI: http://10.66.75.48:7000/CVP/en-us/../Server?application=HelloWorld&callid=B42C46800001000000000065085143&_dnis=7001&_ani=60006099

http://10.66.75.48:7000/CVP/en-us/../Server?application=HelloWorld&callid=B42C46800001000000000065085143&_dnis=7001&_ani=60006099

256582: Oct 23 10:10:36.881 AEST %MIVR-SS_VB-7-UNK:Content of VXML Document:

<?xml version="1.0" encoding="UTF-8"?>

<vxml version="2.0" application="/CVP/Server?audium_root=true&amp;calling_into=HelloWorld">

<catch event="error">

<var name="audium_action" expr="'custom_disconnect'" />

<var name="audium_type" expr="_event" />

<var name="audium_message" expr="_message" />

<submit next="/CVP/Server" method="post" namelist="audium_type audium_message audium_action" />

</catch>

<form>

<block>

<assign name="audium_vxmlLog" expr="''" />

<submit next="/CVP/Server" method="post" namelist="audium_vxmlLog" />

</block>

</form>

</vxml>

步骤5. VVB调用到应用程序并获取VXML文档。

256606: Oct 23 10:10:36.884 AEST %MIVR-SS_VB-7-UNK:[CALLID=B42C468000010000000000650851430A-150871535521622] Browser.makeRequest(): got encoded uri=http://10.66.75.48:7000/CVP/Server?audium_root=true&calling_into=HelloWorld

数据包捕获：  [PSH,ACK] VVB到CVP（7000端口）

GET /CVP/Server?audium_root=true&calling_into=HelloWorld HTTP/1.1

Cookie: JSESSIONID=32868A579F1F48F50A6CC362EBF3F256; HttpOnly=

User-Agent: Cisco Voice Browser/1.0 (Cache activated)

Accept: text/vxml, application/vxml, application/vxml+xml, *; q=.2, */*; q=.2

Host: 10.66.75.48:7000

Connection: keep-alive

CVP发送200 OK

256613: Oct 23 10:10:36.896 AEST %MIVR-SS_VB-7-UNK:[CALLID=B42C468000010000000000650851430A-150871535521622] Fetch: HTTP 200 OK

数据包捕获：  [PSH,ACK] CVP到VVB

HTTP/1.1 200 OK

Server: Apache-Coyote/1.1

Content-Type: text/xml;charset=UTF-8

Transfer-Encoding: chunked

Date: Sun, 22 Oct 2017 23:35:55 GMT

CVP发送VXML文档：    [ACK] CVP（7000端口）到VVB

256617: Oct 23 10:10:36.896 AEST %MIVR-SS_VB-7-UNK:[CALLID=B42C468000010000000000650851430A-150871535521622] Successfully fetched bytes: 0, duration(s): 0.012, URI: http://10.66.75.48:7000/CVP/Server?audium_root=true&calling_into=HelloWorld

256618: Oct 23 10:10:36.901 AEST %MIVR-SS_VB-7-UNK:Content of VXML Document:

<?xml version="1.0" encoding="UTF-8"?>

<vxml version="2.0">

<script><![CDATA[function getElapsedTime(startTime)

{

var numMilliseconds = new Date().getTime();

return numMilliseconds - startTime;

}]]></script>

<property name="universals" value="help" />

<var name="audium_vxmlLog" expr="''" />

<var name="audium_element_start_time_millisecs" expr="0" />

<var name="cisco_vxml_error_count" expr="0" />

<var name="audium_type" />

<catch event="vxml.session.error">

<if cond=" ( cisco_vxml_error_count &gt;= 3 ) ">

<var name="caller_input" expr="'system_unavailable'" />

<return namelist="caller_input" />

</if>

<var name="audium_action" expr="'error'" />

<assign name="audium_type" expr="_event" />

<var name="audium_message" expr="_message" />

<assign name="cisco_vxml_error_count" expr="cisco_vxml_error_count + 1" />

<submit next="/CVP/Server" method="post" namelist="audium_type audium_message audium_action audium_vxmlLog" />

</catch>

<catch event="telephone.disconnect.transfer">

<var name="audium_action" expr="'call_transfer'" />

<assign name="audium_type" expr="'telephone.disconnect.transfer'" />

<submit next="/CVP/Server" method="post" namelist="audium_type audium_action audium_vxmlLog" />

</catch>

<catch event="telephone.disconnect.hangup">

<var name="audium_action" expr="'hangup'" />

<assign name="audium_type" expr="'telephone.disconnect'" />

<submit next="/CVP/Server" method="post" namelist="audium_type audium_action audium_vxmlLog" />

</catch>

<catch event="telephone.disconnect">

<var name="audium_action" expr="'hangup'" />

<assign name="audium_type" expr="'telephone.disconnect'" />

<submit next="/CVP/Server" method="post" namelist="audium_type audium_action audium_vxmlLog" />

</catch>

<catch event="help">

<throw event="nomatch" />

</catch>

<catch event="error.unsupported.object">

<if cond=" ( cisco_vxml_error_count &gt;= 3 ) ">

<var name="caller_input" expr="'system_unavailable'" />

<return namelist="caller_input" />

</if>

<var name="audium_action" expr="'error'" />

<assign name="audium_type" expr="_event" />

<var name="audium_message" expr="_message" />

<assign name="cisco_vxml_error_count" expr="cisco_vxml_error_count + 1" />

<submit next="/CVP/Server" method="post" namelist="audium_type audium_message audium_action audium_vxmlLog" />

</catch>

<catch event="error.unsupported.language">

<if cond=" ( cisco_vxml_error_count &gt;= 3 ) ">

<var name="caller_input" expr="'system_unavailable'" />

<return namelist="caller_input" />

</if>

<var name="audium_action" expr="'error'" />

<assign name="audium_type" expr="_event" />

<var name="audium_message" expr="_message" />

<assign name="cisco_vxml_error_count" expr="cisco_vxml_error_count + 1" />

<submit next="/CVP/Server" method="post" namelist="audium_type audium_message audium_action audium_vxmlLog" />

</catch>

<catch event="error.unsupported.format">

<if cond=" ( cisco_vxml_error_count &gt;= 3 ) ">

<var name="caller_input" expr="'system_unavailable'" />

<return namelist="caller_input" />

</if>

<var name="audium_action" expr="'error'" />

<assign name="audium_type" expr="_event" />

<var name="audium_message" expr="_message" />

<assign name="cisco_vxml_error_count" expr="cisco_vxml_error_count + 1" />

<submit next="/CVP/Server" method="post" namelist="audium_type audium_message audium_action audium_vxmlLog" />

</catch>

<catch event="error.unsupported.element">

<if cond=" ( cisco_vxml_error_count &gt;= 3 ) ">

<var name="caller_input" expr="'system_unavailable'" />

<return namelist="caller_input" />

</if>

<var name="audium_action" expr="'error'" />

<assign name="audium_type" expr="_event" />

<var name="audium_message" expr="_message" />

<assign name="cisco_vxml_error_count" expr="cisco_vxml_error_count + 1" />

<submit next="/CVP/Server" method="post" namelist="audium_type audium_message audium_action audium_vxmlLog" />

</catch>

<catch event="error.unsupported.builtin">

<if cond=" ( cisco_vxml_error_count &gt;= 3 ) ">

<var name="caller_input" expr="'system_unavailable'" />

<return namelist="caller_input" />

</if>

<var name="audium_action" expr="'error'" />

<assign name="audium_type" expr="_event" />

<var name="audium_message" expr="_message" />

<assign name="cisco_vxml_error_count" expr="cisco_vxml_error_count + 1" />

<submit next="/CVP/Server" method="post" namelist="audium_type audium_message audium_action audium_vxmlLog" />

</catch>

<catch event="error.unsupported">

<if cond=" ( cisco_vxml_error_count &gt;= 3 ) ">

<var name="caller_input" expr="'system_unavailable'" />

<return namelist="caller_input" />

</if>

<var name="audium_action" expr="'error'" />

<assign name="audium_type" expr="_event" />

<var name="audium_message" expr="_message" />

<assign name="cisco_vxml_error_count" expr="cisco_vxml_error_count + 1" />

<submit next="/CVP/Server" method="post" namelist="audium_type audium_message audium_action audium_vxmlLog" />

</catch>

<catch event="error.semantic">

<if cond=" ( cisco_vxml_error_count &gt;= 3 ) ">

<var name="caller_input" expr="'system_unavailable'" />

<return namelist="caller_input" />

</if>

<var name="audium_action" expr="'error'" />

<assign name="audium_type" expr="_event" />

<var name="audium_message" expr="_message" />

<assign name="cisco_vxml_error_count" expr="cisco_vxml_error_count + 1" />

<submit next="/CVP/Server" method="post" namelist="audium_type audium_message audium_action audium_vxmlLog" />

</catch>

<catch event="error.noauthorization">

<if cond=" ( cisco_vxml_error_count &gt;= 3 ) ">

<var name="caller_input" expr="'system_unavailable'" />

<return namelist="caller_input" />

</if>

<var name="audium_action" expr="'error'" />

<assign name="audium_type" expr="_event" />

<var name="audium_message" expr="_message" />

<assign name="cisco_vxml_error_count" expr="cisco_vxml_error_count + 1" />

<submit next="/CVP/Server" method="post" namelist="audium_type audium_message audium_action audium_vxmlLog" />

</catch>

<catch event="error.eventhandler.notfound">

<if cond=" ( cisco_vxml_error_count &gt;= 3 ) ">

<var name="caller_input" expr="'system_unavailable'" />

<return namelist="caller_input" />

</if>

<var name="audium_action" expr="'error'" />

<assign name="audium_type" expr="_event" />

<var name="audium_message" expr="_message" />

<assign name="cisco_vxml_error_count" expr="cisco_vxml_error_count + 1" />

<submit next="/CVP/Server" method="post" namelist="audium_type audium_message audium_action audium_vxmlLog" />

</catch>

<catch event="error.connection.noroute">

<if cond=" ( cisco_vxml_error_count &gt;= 3 ) ">

<var name="caller_input" expr="'system_unavailable'" />

<return namelist="caller_input" />

</if>

<var name="audium_action" expr="'error'" />

<assign name="audium_type" expr="_event" />

<var name="audium_message" expr="_message" />

<assign name="cisco_vxml_error_count" expr="cisco_vxml_error_count + 1" />

<submit next="/CVP/Server" method="post" namelist="audium_type audium_message audium_action audium_vxmlLog" />

</catch>

<catch event="error.connection.noresource">

<if cond=" ( cisco_vxml_error_count &gt;= 3 ) ">

<var name="caller_input" expr="'system_unavailable'" />

<return namelist="caller_input" />

</if>

<var name="audium_action" expr="'error'" />

<assign name="audium_type" expr="_event" />

<var name="audium_message" expr="_message" />

<assign name="cisco_vxml_error_count" expr="cisco_vxml_error_count + 1" />

<submit next="/CVP/Server" method="post" namelist="audium_type audium_message audium_action audium_vxmlLog" />

</catch>

<catch event="error.connection.nolicense">

<if cond=" ( cisco_vxml_error_count &gt;= 3 ) ">

<var name="caller_input" expr="'system_unavailable'" />

<return namelist="caller_input" />

</if>

<var name="audium_action" expr="'error'" />

<assign name="audium_type" expr="_event" />

<var name="audium_message" expr="_message" />

<assign name="cisco_vxml_error_count" expr="cisco_vxml_error_count + 1" />

<submit next="/CVP/Server" method="post" namelist="audium_type audium_message audium_action audium_vxmlLog" />

</catch>

<catch event="error.connection.noauthorization">

<if cond=" ( cisco_vxml_error_count &gt;= 3 ) ">

<var name="caller_input" expr="'system_unavailable'" />

<return namelist="caller_input" />

</if>

<var name="audium_action" expr="'error'" />

<assign name="audium_type" expr="_event" />

<var name="audium_message" expr="_message" />

<assign name="cisco_vxml_error_count" expr="cisco_vxml_error_count + 1" />

<submit next="/CVP/Server" method="post" namelist="audium_type audium_message audium_action audium_vxmlLog" />

</catch>

<catch event="error.connection.baddestination">

<if cond=" ( cisco_vxml_error_count &gt;= 3 ) ">

<var name="caller_input" expr="'system_unavailable'" />

<return namelist="caller_input" />

</if>

<var name="audium_action" expr="'error'" />

<assign name="audium_type" expr="_event" />

<var name="audium_message" expr="_message" />

<assign name="cisco_vxml_error_count" expr="cisco_vxml_error_count + 1" />

<submit next="/CVP/Server" method="post" namelist="audium_type audium_message audium_action audium_vxmlLog" />

</catch>

<catch event="error.condition.baddestination">

<if cond=" ( cisco_vxml_error_count &gt;= 3 ) ">

<var name="caller_input" expr="'system_unavailable'" />

<return namelist="caller_input" />

</if>

<var name="audium_action" expr="'error'" />

<assign name="audium_type" expr="_event" />

<var name="audium_message" expr="_message" />

<assign name="cisco_vxml_error_count" expr="cisco_vxml_error_count + 1" />

<submit next="/CVP/Server" method="post" namelist="audium_type audium_message audium_action audium_vxmlLog" />

</catch>

<catch event="error.com.cisco.resource.failure.tts">

<if cond=" ( cisco_vxml_error_count &gt;= 3 ) ">

<var name="caller_input" expr="'system_unavailable'" />

<return namelist="caller_input" />

</if>

<var name="audium_action" expr="'error'" />

<assign name="audium_type" expr="_event" />

<var name="audium_message" expr="_message" />

<assign name="cisco_vxml_error_count" expr="cisco_vxml_error_count + 1" />

<submit next="/CVP/Server" method="post" namelist="audium_type audium_message audium_action audium_vxmlLog" />

</catch>

<catch event="error.com.cisco.resource.failure.asr">

<if cond=" ( cisco_vxml_error_count &gt;= 3 ) ">

<var name="caller_input" expr="'system_unavailable'" />

<return namelist="caller_input" />

</if>

<var name="audium_action" expr="'error'" />

<assign name="audium_type" expr="_event" />

<var name="audium_message" expr="_message" />

<assign name="cisco_vxml_error_count" expr="cisco_vxml_error_count + 1" />

<submit next="/CVP/Server" method="post" namelist="audium_type audium_message audium_action audium_vxmlLog" />

</catch>

<catch event="error.com.cisco.media.resource.unavailable">

<if cond=" ( cisco_vxml_error_count &gt;= 3 ) ">

<var name="caller_input" expr="'system_unavailable'" />

<return namelist="caller_input" />

</if>

<var name="audium_action" expr="'error'" />

<assign name="audium_type" expr="_event" />

<var name="audium_message" expr="_message" />

<assign name="cisco_vxml_error_count" expr="cisco_vxml_error_count + 1" />

<submit next="/CVP/Server" method="post" namelist="audium_type audium_message audium_action audium_vxmlLog" />

</catch>

<catch event="error.com.cisco.handoff.failure">

<if cond=" ( cisco_vxml_error_count &gt;= 3 ) ">

<var name="caller_input" expr="'system_unavailable'" />

<return namelist="caller_input" />

</if>

<var name="audium_action" expr="'error'" />

<assign name="audium_type" expr="_event" />

<var name="audium_message" expr="_message" />

<assign name="cisco_vxml_error_count" expr="cisco_vxml_error_count + 1" />

<submit next="/CVP/Server" method="post" namelist="audium_type audium_message audium_action audium_vxmlLog" />

</catch>

<catch event="error.com.cisco.callhandoff.failure">

<if cond=" ( cisco_vxml_error_count &gt;= 3 ) ">

<var name="caller_input" expr="'system_unavailable'" />

<return namelist="caller_input" />

</if>

<var name="audium_action" expr="'error'" />

<assign name="audium_type" expr="_event" />

<var name="audium_message" expr="_message" />

<assign name="cisco_vxml_error_count" expr="cisco_vxml_error_count + 1" />

<submit next="/CVP/Server" method="post" namelist="audium_type audium_message audium_action audium_vxmlLog" />

</catch>

<catch event="error.com.cisco.aaa.authorize.failure">

<if cond=" ( cisco_vxml_error_count &gt;= 3 ) ">

<var name="caller_input" expr="'system_unavailable'" />

<return namelist="caller_input" />

</if>

<var name="audium_action" expr="'error'" />

<assign name="audium_type" expr="_event" />

<var name="audium_message" expr="_message" />

<assign name="cisco_vxml_error_count" expr="cisco_vxml_error_count + 1" />

<submit next="/CVP/Server" method="post" namelist="audium_type audium_message audium_action audium_vxmlLog" />

</catch>

<catch event="error.com.cisco.aaa.authenticate.failure">

<if cond=" ( cisco_vxml_error_count &gt;= 3 ) ">

<var name="caller_input" expr="'system_unavailable'" />

<return namelist="caller_input" />

</if>

<var name="audium_action" expr="'error'" />

<assign name="audium_type" expr="_event" />

<var name="audium_message" expr="_message" />

<assign name="cisco_vxml_error_count" expr="cisco_vxml_error_count + 1" />

<submit next="/CVP/Server" method="post" namelist="audium_type audium_message audium_action audium_vxmlLog" />

</catch>

<catch event="error.badfetch.https">

<if cond=" ( cisco_vxml_error_count &gt;= 3 ) ">

<var name="caller_input" expr="'system_unavailable'" />

<return namelist="caller_input" />

</if>

<var name="audium_action" expr="'error'" />

<assign name="audium_type" expr="_event" />

<var name="audium_message" expr="_message" />

<assign name="cisco_vxml_error_count" expr="cisco_vxml_error_count + 1" />

<submit next="/CVP/Server" method="post" namelist="audium_type audium_message audium_action audium_vxmlLog" />

</catch>

<catch event="error.badfetch.http">

<if cond=" ( cisco_vxml_error_count &gt;= 3 ) ">

<var name="caller_input" expr="'system_unavailable'" />

<return namelist="caller_input" />

</if>

<var name="audium_action" expr="'error'" />

<assign name="audium_type" expr="_event" />

<var name="audium_message" expr="_message" />

<assign name="cisco_vxml_error_count" expr="cisco_vxml_error_count + 1" />

<submit next="/CVP/Server" method="post" namelist="audium_type audium_message audium_action audium_vxmlLog" />

</catch>

<catch event="error.badfetch">

<if cond=" ( cisco_vxml_error_count &gt;= 3 ) ">

<var name="caller_input" expr="'system_unavailable'" />

<return namelist="caller_input" />

</if>

<var name="audium_action" expr="'error'" />

<assign name="audium_type" expr="_event" />

<var name="audium_message" expr="_message" />

<assign name="cisco_vxml_error_count" expr="cisco_vxml_error_count + 1" />

<submit next="/CVP/Server" method="post" namelist="audium_type audium_message audium_action audium_vxmlLog" />

</catch>

<catch event="error">

<if cond=" ( cisco_vxml_error_count &gt;= 3 ) ">

<var name="caller_input" expr="'system_unavailable'" />

<return namelist="caller_input" />

</if>

<var name="audium_action" expr="'error'" />

<assign name="audium_type" expr="_event" />

<var name="audium_message" expr="_message" />

<assign name="cisco_vxml_error_count" expr="cisco_vxml_error_count + 1" />

<submit next="/CVP/Server" method="post" namelist="audium_type audium_message audium_action audium_vxmlLog" />

</catch>

<catch event="disconnect.com.cisco.handoff">

<if cond=" ( cisco_vxml_error_count &gt;= 3 ) ">

<var name="caller_input" expr="'system_unavailable'" />

<return namelist="caller_input" />

</if>

<var name="audium_action" expr="'error'" />

<assign name="audium_type" expr="_event" />

<var name="audium_message" expr="_message" />

<assign name="cisco_vxml_error_count" expr="cisco_vxml_error_count + 1" />

<submit next="/CVP/Server" method="post" namelist="audium_type audium_message audium_action audium_vxmlLog" />

</catch>

<catch event="connection.disconnect.transfer">

<var name="audium_action" expr="'call_transfer'" />

<assign name="audium_type" expr="'connection.disconnect.transfer'" />

<submit next="/CVP/Server" method="post" namelist="audium_type audium_action audium_vxmlLog" />

</catch>

<catch event="connection.disconnect.hangup">

<var name="audium_action" expr="'hangup'" />

<assign name="audium_type" expr="'connection.disconnect'" />

<submit next="/CVP/Server" method="post" namelist="audium_type audium_action audium_vxmlLog" />

</catch>

<catch event="connection.disconnect">

<var name="audium_action" expr="'hangup'" />

<assign name="audium_type" expr="'connection.disconnect'" />

<submit next="/CVP/Server" method="post" namelist="audium_type audium_action audium_vxmlLog" />

</catch>

<catch event="com.audium.vxml.event">

<var name="audium_action" expr="'vxml_event'" />

<var name="audium_error" expr="_message" />

<assign name="audium_type" expr="_message" />

<submit next="/CVP/Server" method="post" namelist="audium_type audium_error audium_action" />

</catch>

<catch event="com.audium.error">

<var name="audium_action" expr="'custom_disconnect'" />

<submit next="/CVP/Server" method="post" namelist="audium_type audium_action" />

</catch>

<catch event="com.audium.disconnect">

<var name="audium_action" expr="'custom_disconnect'" />

<assign name="audium_type" expr="'disconnect.audium'" />

<submit next="/CVP/Server" method="post" namelist="audium_type audium_action" />

</catch>

</vxml

步骤6. VVB发送POST Query for Audio File。

256695: Oct 23 10:10:36.914 AEST %MIVR-SS_VB-7-UNK:[CALLID=B42C468000010000000000650851430A-150871535521622] Fetch:    http://10.66.75.48:7000/CVP/Server

256696: Oct 23 10:10:36.914 AEST %MIVR-SS_VB-7-UNK:[CALLID=B42C468000010000000000650851430A-150871535521622] Setting cookie : JSESSIONID=32868A579F1F48F50A6CC362EBF3F256; HttpOnly=

数据包捕获：  [PSH,ACK] VVB到CVP（7000端口）

POST /CVP/Server HTTP/1.1

User-Agent: Cisco Voice Browser/1.0

Accept: text/vxml, application/vxml, application/vxml+xml, *; q=.2, */*; q=.2

Content-Type: application/x-www-form-urlencoded

Cookie: JSESSIONID=32868A579F1F48F50A6CC362EBF3F256; HttpOnly=

Host: 10.66.75.48:7000

Connection: keep-alive

Content-Length: 15

CVP发送VVB 200 OK

数据包捕获：  [PSH,ACK] CVP到VVB

audium_vxmlLog=HTTP/1.1 200 OK

Server: Apache-Coyote/1.1

Content-Type: text/xml;charset=UTF-8

Transfer-Encoding: chunked

Date: Sun, 22 Oct 2017 23:35:55 GM

CVP向VVB内容发送POST查询结果，其中包含音频文件名和源路径。

<audio src="https://www.cisco.com/CVP/audio/helloworld_audio.wav">You have successfully installed the Cisco Unified V X M L server.</audio>

VVB日志：

256714: Oct 23 10:10:36.919 AEST %MIVR-SS_VB-7-UNK:[CALLID=B42C468000010000000000650851430A-150871535521622] Successfully fetched bytes: 0, duration(s): 0.005, URI: http://10.66.75.48:7000/CVP/Server

256716: Oct 23 10:10:36.919 AEST %MIVR-SS_VB-7-UNK:[CALLID=B42C468000010000000000650851430A-150871535521622] Content of POST query:

audium_vxmlLog=

256717: Oct 23 10:10:36.920 AEST %MIVR-SS_VB-7-UNK:Content of VXML Document:

<?xml version="1.0" encoding="UTF-8"?>

<vxml version="2.0" application="/CVP/Server?audium_root=true&amp;calling_into=HelloWorld">

<form id="audium_start_form">

<block>

<assign name="audium_vxmlLog" expr="''" />

<assign name="audium_element_start_time_millisecs" expr="new Date().getTime()" />

<goto next="#start" />

</block>

</form>

<form id="start">

<block>

<prompt bargein="true">

<audio src="https://www.cisco.com/CVP/audio/helloworld_audio.wav">You have successfully installed the Cisco Unified V X M L server.</audio>

</prompt>

<assign name="audium_vxmlLog" expr="audium_vxmlLog + '|||audio_group$$$' + 'initial_audio_group' + '^^^' + application.getElapsedTime(audium_element_start_time_millisecs)" />

<submit next="/CVP/Server" method="post" namelist="audium_vxmlLog" />

</block>

</form>

</vxml>

步骤7. VVB获取音频文件并检查音频文件是否已修改。

If-None-Match:带“68192-1468638242000”（来自数据包捕获）

VVB日志：

256798: Oct 23 10:10:36.923 AEST %MIVR-SS_VB-7-UNK:[CALLID=B42C468000010000000000650851430A-150871535521622] Fetch:    http://10.66.75.48:7000/CVP/audio/helloworld_audio.wav

数据包捕获：  [PSH,ACK] VVB到CVP（7000端口）

GET /CVP/audio/helloworld_audio.wav HTTP/1.1

Cookie: JSESSIONID=32868A579F1F48F50A6CC362EBF3F256; HttpOnly=

User-Agent: Cisco Voice Browser/1.0 (Cache activated)

Accept: *, */*

If-None-Match: W/"68192-1468638242000"

Cache-Control: max-age=0

Host: 10.66.75.48:7000

Connection: keep-alive

If-Modified-Since: Sat, 16 Jul 2016 03:04:02 GMT

数据包：  CVP到VVB确认音频文件未修改

HTTP/1.1 304 Not Modified (from packet capture)

HTTP Response is from Cache (VVB log )

VVB日志：

256800: Oct 23 10:10:36.931 AEST %MIVR-SS_VB-7-UNK:[CALLID=B42C468000010000000000650851430A-150871535521622] Fetch: HTTP 200 OK

256801: Oct 23 10:10:36.931 AEST %MIVR-SS_VB-7-UNK:[CALLID=B42C468000010000000000650851430A-150871535521622] Browser.processHttpResponse() hc is CachedHttpURLConnection

256802: Oct 23 10:10:36.931 AEST %MIVR-SS_VB-7-UNK:[CALLID=B42C468000010000000000650851430A-150871535521622] Fetch: HTTP Response is from Cache

数据包捕获：  [PSH,ACK] CVP到VVB

HTTP/1.1 304 Not Modified

Server: Apache-Coyote/1.1

ETag: W/"68192-1468638242000"

Date: Sun, 22 Oct 2017 23:35:55 GMT

步骤8. VVB播放音频文件。

256805: Oct 23 10:10:36.931 AEST %MIVR-SS_VB-7-UNK:[CALLID=B42C468000010000000000650851430A-150871535521622] Play:     http://10.66.75.48:7000/CVP/audio/helloworld_audio.wav

步骤9. VVB在成功获取音频文件并关闭此TCP会话后发送POST查询。

256828: Oct 23 10:10:36.933 AEST %MIVR-SS_VB-7-UNK:[CALLID=B42C468000010000000000650851430A-150871535521622] Browser.makeRequest(): else branch

256829: Oct 23 10:10:36.934 AEST %MIVR-SS_VB-7-UNK:[CALLID=B42C468000010000000000650851430A-150871535521622] Fetch:    http://10.66.75.48:7000/CVP/Server

数据包捕获：  [PSH,ACK]VVB到CVP（7000端口）

POST /CVP/Server HTTP/1.1

User-Agent: Cisco Voice Browser/1.0

Accept: text/vxml, application/vxml, application/vxml+xml, *; q=.2, */*; q=.2

Content-Type: application/x-www-form-urlencoded

Cookie: JSESSIONID=32868A579F1F48F50A6CC362EBF3F256; HttpOnly=

Host: 10.66.75.48:7000

Connection: keep-alive

Content-Length: 74

audium_vxmlLog=%7C%7C%7Caudio_group%24%24%24initial_audio_group%5E%5E%5E11

CVP发送到VVB 200 OK

数据包捕获：[PSH,ACK] CVP（7000端口）到VVB

200 OK

Server: Apache-Coyote/1.1

Content-Type: text/xml;charset=UTF-8

Transfer-Encoding: chunked

Date: Sun, 22 Oct 2017 23:35:55 GMT

256846: Oct 23 10:10:36.937 AEST %MIVR-SS_VB-7-UNK:[CALLID=B42C468000010000000000650851430A-150871535521622] Fetch: HTTP 200 OK

256848: Oct 23 10:10:36.937 AEST %MIVR-SS_VB-7-UNK:[CALLID=B42C468000010000000000650851430A-150871535521622] Successfully fetched bytes: 0, duration(s): 0.004, URI: http://10.66.75.48:7000/CVP/Server

256849: Oct 23 10:10:36.938 AEST %MIVR-SS_VB-7-UNK:[CALLID=B42C468000010000000000650851430A-150871535521622] fetchVxmlDoc :: Closing output stream

CVP发送到VVB:  CVP返回POST查询内容：

256850: Oct 23 10:10:36.938 AEST %MIVR-SS_VB-7-UNK:[CALLID=B42C468000010000000000650851430A-150871535521622] Content of POST query:

audium_vxmlLog=%7C%7C%7Caudio_group%24%24%24initial_audio_group%5E%5E%5E11

256851: Oct 23 10:10:36.938 AEST %MIVR-SS_VB-7-UNK:Content of VXML Document:

<?xml version="1.0" encoding="UTF-8"?>

<vxml version="2.0" application="/CVP/Server?audium_root=true&amp;calling_into=HelloWorld">

<catch event="error.com.cisco.callhandoff.failure">

<cisco-typeaheadflush />

<submit next="/CVP/Server" method="post" namelist="audium_vxmlLog" />

</catch>

<form id="audium_start_form">

<block>

<assign name="audium_vxmlLog" expr="''" />

<assign name="audium_element_start_time_millisecs" expr="new Date().getTime()" />

<goto next="#start" />

</block>

</form>

<form id="start">

<object name="dummyobj" classid="builtin://com.cisco.callhandoff">

<param name="return" expr="true" valuetype="data" />

<param name="app-uri" expr="'builtin://dummyobj'" valuetype="data" />

<filled>

<submit next="/CVP/Server" method="post" namelist="audium_vxmlLog" />

</filled>

</object>

</form>

</vxml>

步骤10. VVB从CVP接收BYE并完成此呼叫。

256921: Oct 23 10:10:43.139 AEST %MIVR-JASMIN-7-UNK:[CALLID=B42C468000010000000000650851430A-150871535521622] SIP-ltp92-88881111*, State=CONNECTED: Processing BYE from remote party.