本產品的文件集力求使用無偏見用語。針對本文件集的目的,無偏見係定義為未根據年齡、身心障礙、性別、種族身分、民族身分、性別傾向、社會經濟地位及交織性表示歧視的用語。由於本產品軟體使用者介面中硬式編碼的語言、根據 RFP 文件使用的語言,或引用第三方產品的語言,因此本文件中可能會出現例外狀況。深入瞭解思科如何使用包容性用語。
思科已使用電腦和人工技術翻譯本文件,讓全世界的使用者能夠以自己的語言理解支援內容。請注意,即使是最佳機器翻譯,也不如專業譯者翻譯的內容準確。Cisco Systems, Inc. 對這些翻譯的準確度概不負責,並建議一律查看原始英文文件(提供連結)。
本檔案介紹思科虛擬化語音瀏覽器(VVB)上的訊息流程以及全面之通話流程。
本文件沒有特定需求。
本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除(預設)的組態來啟動。如果您的網路運作中,請確保您瞭解任何指令可能造成的影響
呼叫流:
入口網關> CVP >智慧聯絡人管理(ICM)>返回VRU標籤> CVP > VVB
如圖所示,它是綜合呼叫流。
如圖所示,本檔案將更著重說明訊息的VVB部分。
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
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
然後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 FOR 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>
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&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>
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正常
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 >= 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 >= 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 >= 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 >= 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 >= 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 >= 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 >= 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 >= 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 >= 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 >= 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 >= 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 >= 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 >= 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 >= 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 >= 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 >= 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 >= 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 >= 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 >= 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 >= 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 >= 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 >= 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 >= 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 >= 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 >= 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 >= 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 >= 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 >= 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
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正常
資料包捕獲: [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&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>
If-None-Match:W/"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
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
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&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>
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.