目錄

簡介

必要條件

需求

採用元件

慣例

設定

網路圖表

組態

呼叫流示例

驗證

疑難排解

Debug指令

調試輸出

相關資訊

簡介

語音可擴展標籤語言(VXML)是由全球資訊網聯盟(W3C)定義的標準。VXML旨在建立音訊對話，提供合成語音、口語識別、DTMF數字識別和口語錄音。VXML伺服器和客戶端使用公認的HTTP協定交換VXML文檔和頁面。

Cisco Voice Portal(CVP)提供可通過電話訪問的智慧互動式語音響應(IVR)應用。CVP部署分為三種型別：

- 獨立服務

- CVP通話控制

- 呼叫隊列和轉接

合成語音、口語識別或DTMF數字功能由文本到語音轉換(TTS)和自動語音識別(ASR)伺服器提供。Cisco IOS® VXML網關使用媒體資源控制協定(MRCP)與TTS和ASR伺服器通訊。 MRCP(RFC 4463)有兩個版本，即MRCPv1(MRCP over RTSP)和MRCPv2(MRCP over SIP)。

本文檔介紹使用MRCPv1 TTS或ASR伺服器的獨立服務部署中Cisco IOS語音XML網關到CVP呼叫的呼叫流程。在CVP VXML伺服器上部署了一個示例藥房應用程式。

必要條件

需求

本文件沒有特定需求。

採用元件

本文中的資訊係根據以下軟體和硬體版本：

- IOS VXML網關：Cisco AS5400XM，IOS 12.4(11)T2

- VXML伺服器：CVP 4.0

- ASR/TTS伺服器：Nuance ASR v8.5和TTS v4.0.6

本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除（預設）的組態來啟動。如果您的網路正在作用，請確保您已瞭解任何指令可能造成的影響。

慣例

如需文件慣例的詳細資訊，請參閱思科技術提示慣例。

設定

本節提供用於設定本文件中所述功能的資訊。

註：使用Command Lookup Tool(僅限註冊客戶)查詢有關本文檔中使用的命令的更多資訊。

網路圖表

本檔案會使用以下網路設定：

組態

本檔案會使用以下設定：

VXML網關配置

!--- Define Hostname to IP address mapping for ASR and TTS servers.

ip host asr-en-us 10.86.177.39

ip host tts-en-us 10.86.177.39

!--- Define the amount of maximum memory to use for downloaded prompts.

ivr prompt memory 15000

!--- Define the RTSP URI of ASR and TTS Server.

ivr asr-server rtsp://10.86.177.39/recognizer

ivr tts-server rtsp://10.86.177.39/synthesizer

!--- Configure an application service for CVP VXML CVPSelfServiceBootstrap.vxml.

application

service CVPSelfService flash:CVPSelfServiceBootstrap.vxml

paramspace english language en

paramspace english index 0

paramspace english location flash:

paramspace english prefix en

!--- Configure an application service for CVP VXML CVPSelfService.tcl Script. !--- CVPSelfService-app parameter specifies the name of the VXML Application. !--- CVPPrimary parameter specifies the IP address of the VXML server.

service Pharmacy flash:CVPSelfService.tcl

paramspace english index 0

paramspace english language en

paramspace english location flash:

param CVPSelfService-port 7000

param CVPSelfService-app GoodPrescriptionRefillApp7

paramspace english prefix en

param CVPPrimaryVXMLServer 172.18.110.75

!--- Specifies the Gateway’s RTP stream to the ASR or TTS to go around the !--- Content Service Switch instead of through the CSS.

mrcp client rtpsetup enable

!--- Specify the maximum memory size for the HTTP Client Cache.

http client cache memory pool 15000

!--- Specify the maximum number of file that can be stored in the HTTP Client Cache.

http client cache memory file 500

!--- Disable Persistent HTTP Connections.

no http client connection persistent

!--- Configure the T1 PRI.

controller T1 3/0

framing esf

linecode b8zs

pri-group timeslots 1-24

!--- Configure the ISDN switch type and incoming-voice under the D-channel interface.

interface Serial3/0:23

no ip address

encapsulation hdlc

isdn switch-type primary-net5

isdn incoming-voice modem

no cdp enable

!--- Configure a POTS dial-peer that will be used as the inbound dial-peer for calls coming !--- in across the T1 PRI line. The “pharmacy” service is applied under this dial-peer.

dial-peer voice 1 pots

service pharmacy

destination-pattern 5555

direct-inward-dial

port 3/0:D

forward-digits all

呼叫流示例

本節介紹此配置示例產生的呼叫流。

1. ISDN呼叫通過T1 PRI 3/0到達PSTN/VXML網關。

2. IOS網關將POTS撥號對等體1匹配為此呼叫的入站撥號對等體。

3. IOS網關將呼叫控制交給與撥號對等體1關聯的藥房服務。

4. 與藥房服務關聯的CVP VXML/TCL指令碼向VXML伺服器傳送HTTP GET請求。

5. VXML伺服器返回200 OK響應。此響應包含VXML文檔或頁面。

6. IOS網關執行VXML文檔。

7. 如果VXML文檔指定了音訊提示的URL，IOS網關將下載音訊檔案並播放提示。

8. 如果VXML文檔指定了音訊提示的文本，則IOS網關會與rtsp://10.86.177.39/synthesizer（TTS伺服器）建立RTSP會話。 建立RTSP會話後，網關和TTS伺服器使用RTSP ANNOUNCE請求交換MRCP消息，例如SPEAK、SPEAK-COMPLETE。

TTS伺服器將G.711ulaw RTP音訊流傳送到網關在RTSP SETUP請求的「傳輸」標頭中提供的IP地址和UDP埠號。

9. 如果VXML文檔指定網關識別DTMF數字和口語，則IOS網關會與rtsp://10.86.177.39/recognizer（ASR伺服器）建立RTSP會話。 在RTSP會話建立後，網關和ASR伺服器使用RTSP ANNOUNCE請求交換MRCP消息，例如DEFINE GRAMMAR、COMPLETE、RECOGNIZE、RECOGNITION-COMPLETE。

IOS VXML網關將G.711ulaw RTP音訊流傳送到RTSP 200 OK響應的SDP中由ASR提供的IP地址和UDP埠號。IOS VXML網關將PSTN使用者輸入的數字作為RTP-NTE事件傳送到ASR伺服器。

10. 執行VXML文檔後，網關將傳送HTTP POST請求（包含一組引數），如VXML文檔或頁面的<submit>標籤中所指定。

11. 對於伺服器傳送的每個VXML文檔，都會執行步驟6 - 10。

12. 當VXML應用程式完成向呼叫方提供的服務時，它會傳送一個VXML文檔，該文檔在<form>元素中僅包含<exit/>標籤。

13. IOS網關斷開與TTS和ASR伺服器建立的MRCPv1會話的連線。

14. IOS網關會斷開ISDN端的呼叫。

驗證

使用本節內容，確認您的組態是否正常運作。

輸出直譯器工具(僅供已註冊客戶使用)(OIT)支援某些show命令。使用OIT檢視show命令輸出的分析。

- show call active voice brief

11E7 : 63 4728960ms.1 +0 pid:1 Answer 5555 active

dur 00:00:31 tx:920/179920 rx:880/211200

Tele 3/0:D (63) [3/0.1] tx:4600/4600/0ms None noise:-80 acom:51  i/0:-79/-27 dBm

Telephony call-legs: 1

SIP call-legs: 0

H323 call-legs: 0

Call agent controlled call-legs: 0

SCCP call-legs: 0

Multicast call-legs: 0

Total call-legs: 1

- show mrcp client session active detail

No Of Active MRCP Sessions: 1

Call-ID: 0x3F same: 1

Resource Type: Synthesizer            URL: rtsp://10.86.177.39/synthesizer

Method In Progress: SPEAK                State: SPEAKING

Resource Type: Recognizer             URL: rtsp://10.86.177.39/recognizer

Method In Progress: RECOGNIZE            State: RECOGNIZING

############################################################

- show voip rtp connections

VoIP RTP active connections :

No. CallId     dstCallId  LocalRTP RmtRTP LocalIP         RemoteIP

1   66         63         17704    1224   172.18.110.77   10.86.177.39

- show http client cache

HTTP Client cached information

==============================

Maximum memory pool allowed for HTTP Client caching = 15000 K-bytes

Maximum file size allowed for caching = 500 K-bytes

Total memory used up for Cache = 410 Bytes

Message response timeout = 10 secs

Total cached entries     = 1

Total non-cached entries = 0

Cached entries

==============

entry 114,  1 entries

Ref   FreshTime   Age          Size        context

---   ---------   ---          ----        -------

1     119524      31           1271        0

url: http://172.18.110.75/Welcome-1.wav

疑難排解

使用本節內容，對組態進行疑難排解。

Debug指令

配置IOS網關以在其日誌緩衝區中記錄調試並禁用日誌控制檯。

附註：使用 debug 指令之前，請先參閱有關 Debug 指令的重要資訊。

以下命令用於配置網關，以便將調試儲存在網關的日誌緩衝區中：

1. service timestamps debug datetime msec

2. 服務序列

3. 無日誌控制檯

4. logging buffered 5000000 debug

5. 清除日誌

- debug isdn q931

- debug voip ccapi inout

- debug voip application vxml default

- debug voip application vxml dump

- debug rtsp all

- debug mrcp all

- debug http client all

- debug voip rtp session nte named-event

調試輸出

本節提供此呼叫流程示例的調試輸出：

1. 網關接收來自PSTN的來電

2. 網關匹配入站撥號對等體1

3. 呼叫被轉到藥房服務

4. 呼叫在ISDN端連線

5. 網關開始執行CVPSelfServiceBootstrap.vxml VoiceXML指令碼

6. 網關向VXML伺服器傳送HTTP GET請求

7. 網關收到來自VXML伺服器的200 OK消息

8. 網關向媒體伺服器傳送HTTP GET請求以下載Welcome-1.wav檔案

9. 網關從媒體伺服器收到200 OK並接收HTTP消息正文中Welcome-1.wav的內容

10. 網關按照VXML文檔的「提交」選項中的定義向伺服器傳送HTTP POST請求(1)

11. 網關收到其HTTP POST請求的200 OK

12. 網關按照VXML文檔的「提交」選項中的定義傳送HTTP POST請求(2)

13. 網關收到200 OK響應HTTP POST請求

14. 網關建立用於DTMF/語音識別的語法

15. 網關向ASR伺服器傳送RTSP SETUP請求

16. 網關收到來自ASR伺服器的200 OK響應

17. 網關將MRCP「DEFINE-GRAMMAR」請求傳送到嵌入在RTSP ANNOUNCE請求中的ASR伺服器（此處只顯示一個請求）

18. 網關收到其DEFINE-GRAMMAR請求的200 COMPLETE響應

19. 網關向ASR伺服器傳送MRCP「識別」請求

20. ASR伺服器向識別請求傳送正在進行的響應

21. Gateway完成Welcome-1.wav媒體檔案的下載，向呼叫者播放提示並將其儲存在快取中

22. 網關向TTS伺服器傳送RTSP SETUP請求

23. 網關收到來自TTS伺服器的200 OK響應，以響應RTSP設定請求

24. 網關向TTS伺服器傳送MRCP「SPEAK」請求，播放「早安，感謝您致電Audium藥店」提示

25. TTS伺服器傳送SPEAK請求的「正在進行」響應

26. 播放提示後，TTS伺服器向網關傳送MRCP「SPEAK-COMPLETE」響應

27. ASR伺服器檢測語音啟動，並使用MRCP「START-OF-SPEECH」響應通知網關

28. 網關向MRCP通告請求傳送200 OK響應

29. ASR伺服器識別單詞「Refills」，並向網關傳送MRCP「RECOGNITION-COMPLETE」消息

30. 在從ASR伺服器接收到成功的識別通知後，VXML網關傳送在VXML文檔的SUBMIT標籤中指定的一個HTTP POST請求(2)

31. VXML伺服器傳送VXML頁面，用於收集處方編號、取件時間並通知呼叫者處方已準備好取件。網關通過與TTS和ASR伺服器互動來執行這些頁面（未顯示調試輸出）。

32. VXML伺服器傳送的最終VXML文檔僅包含表單中的退出標籤

33. 網關終止VXML應用程式

34. 網關在ISDN端斷開呼叫

35. 網關斷開與ASR伺服器建立的RTSP會話的連線

36. 網關斷開與TTS伺服器建立的RTSP會話的連線

來自PSTN的來電

*Feb  4 03:24:54.111: ISDN Se3/0:23 Q931: RX <- SETUP pd = 8  callref = 0x0099

Bearer Capability i = 0x8090A2

Standard = CCITT

Transfer Capability = Speech

Transfer Mode = Circuit

Transfer Rate = 64 kbit/s

Channel ID i = 0xA98381

Exclusive, Channel 1

Called Party Number i = 0x81, '5555'

Plan:ISDN, Type:Unknown

*Feb  4 03:24:54.115: //-1/972590A48011/CCAPI/cc_api_display_ie_subfields:

cc_api_call_setup_ind_common:

cisco-username=

----- ccCallInfo IE subfields -----

cisco-ani=

cisco-anitype=0

cisco-aniplan=0

cisco-anipi=0

cisco-anisi=0

dest=5555

cisco-desttype=0

cisco-destplan=1

cisco-rdie=FFFFFFFF

cisco-rdn=

cisco-rdntype=-1

cisco-rdnplan=-1

cisco-rdnpi=-1

cisco-rdnsi=-1

cisco-redirectreason=-1   fwd_final_type =0

final_redirectNumber =

hunt_group_timeout =0

入站撥號對等體1已匹配

*Feb  4 03:24:54.115: //-1/972590A48011/CCAPI/cc_api_call_setup_ind_common:

Interface=0x66C30F98, Call Info(

Calling Number=,(Calling Name=)(TON=Unknown, NPI=Unknown, Screening=Not Screened,

Presentation=Allowed),

Called Number=5555(TON=Unknown, NPI=ISDN),

Calling Translated=FALSE, Subscriber Type Str=RegularLine, FinalDestinationFlag=TRUE,

Incoming Dial-peer=1, Progress Indication=NULL(0), Calling IE Present=FALSE,

Source Trkgrp Route Label=, Target Trkgrp Route Label=, CLID Transparent=FALSE),

Call Id=-1

呼叫被轉到藥房服務

*Feb  4 03:24:54.115: //63/972590A48011/CCAPI/cc_process_call_setup_ind:

>>>>CCAPI handed cid 63 with tag 1 to app "_ManagedAppProcess_Pharmacy"

*Feb  4 03:24:54.115: //63/972590A48011/CCAPI/ccCallSetupAck:

Call Id=63

呼叫在ISDN端連線

*Feb  4 03:24:54.119: ISDN Se3/0:23 Q931: TX -> CONNECT pd = 8  callref = 0x8099

*Feb  4 03:24:54.119: //63/972590A48011/CCAPI/ccCallHandoff:

Silent=FALSE, Application=0x67569410, Conference Id=0xFFFFFFFF

*Feb  4 03:24:54.119: //63//VXML:/Open_CallHandoff:

網關開始執行CVPSelfServiceBootstrap.vxml VoiceXML指令碼

*Feb  4 03:24:54.131: //63/972590A48011/VXML:/vxml_vxml_proc:

<vxml>

URI(abs):flash:CVPSelfServiceBootstrap.vxml

scheme=flash

path=CVPSelfServiceBootstrap.vxml

base=

URI(abs):flash:CVPSelfServiceBootstrap.vxml

scheme=flash

path=CVPSelfServiceBootstrap.vxml lang=none version=2.0

<script>:

*Feb  4 03:24:54.175: //63/972590A48011/VXML:/vxml_expr_eval:

<var>: namep=handoffstring expr=session.handoff_string

*Feb  4 03:24:54.243: //63/972590A48011/VXML:/vxml_expr_eval:

expr=(var handoffstring=session.handoff_string)

<var>: namep=application expr=getValue('APP')

*Feb  4 03:24:54.243: //63/972590A48011/VXML:/vxml_expr_eval:

expr=(var application=getValue('APP'))

<var>: namep=port expr=getValue('PORT')

*Feb  4 03:24:54.243: //63/972590A48011/VXML:/vxml_expr_eval:

expr=(var port=getValue('PORT'))

<var>: namep=callid expr=getValue('CALLID')

*Feb  4 03:24:54.243: //63/972590A48011/VXML:/vxml_expr_eval:

expr=(var callid=getValue('CALLID'))

<var>: namep=servername expr=getValue('PRIMARY')

*Feb  4 03:24:54.243: //63/972590A48011/VXML:/vxml_expr_eval:

expr=(var servername=getValue('PRIMARY'))

<var>: namep=var1 expr=getValue('var1')

*Feb  4 03:24:54.243: //63/972590A48011/VXML:/vxml_expr_eval:

expr=(var var1=getValue('var1'))

<var>: namep=var2 expr=getValue('var2')

*Feb  4 03:24:54.243: //63/972590A48011/VXML:/vxml_expr_eval:

expr=(var var2=getValue('var2'))

<var>: namep=var3 expr=getValue('var3')

*Feb  4 03:24:54.243: //63/972590A48011/VXML:/vxml_expr_eval:

expr=(var var3=getValue('var3'))

<var>: namep=var4 expr=getValue('var4')

*Feb  4 03:24:54.247: //63/972590A48011/VXML:/vxml_expr_eval:

expr=(var var4=getValue('var4'))

<var>: namep=var5 expr=getValue('var5')

*Feb  4 03:24:54.247: //63/972590A48011/VXML:/vxml_expr_eval:

expr=(var var5=getValue('var5'))

<var>: namep=status expr=getValue('status')

*Feb  4 03:24:54.247: //63/972590A48011/VXML:/vxml_expr_eval:

expr=(var status=getValue('status'))

<var>: namep=prevapp expr=getValue('prevapp')

*Feb  4 03:24:54.247: //63/972590A48011/VXML:/vxml_expr_eval:

expr=(var prevapp=getValue('prevapp'))

<var>: namep=survive expr=getValue('survive')

*Feb  4 03:24:54.247: //63/972590A48011/VXML:/vxml_expr_eval:

expr=(var survive=getValue('survive'))

<var>: namep=handoffExit

*Feb  4 03:24:54.247: //63/972590A48011/VXML:/vxml_expr_eval:

expr=(var handoffExit)

網關向VXML伺服器傳送HTTP GET請求

*Feb  4 03:24:54.255: //63//HTTPC:/httpc_write_stream: Client write buffer fd(0):

GET /CVP/Server?application=GoodPrescriptionRefillApp7&callid=972590A4-185511D6-80110013-

803E8C8E&session.connection.remote.uri=5555

&session.connection.local.uri=5555 HTTP/1.1

Host: 172.18.110.75:7000

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

Connection: close

Accept: text/vxml, text/x-vxml, application/vxml, application/x-vxml, application/voicexml,

application/x-voicexml, text/plain, text/html, audio/basic, audio/wav, multipart/form-data,

application/octet-stream

User-Agent: Cisco-IOS-C5400/12.4

網關收到來自VXML伺服器的200 OK消息

此響應的消息正文包含VXML文檔(1)。 VXML文檔告知網關播放位於媒體伺服器中的名為Welcome-1.wav的媒體檔案

*Feb  4 03:24:54.263: processing server rsp msg: msg(63AC8784)

URL:http://172.18.110.75:7000/CVP/Server?application=GoodPrescriptionRefillApp7&

callid=972590A4-185511D6-80110013-803E8C8E&session.connection.remote.uri=

5555&session.connection.local.uri=5555, fd(0):

*Feb  4 03:24:54.263: Request msg: GET /CVP/Server?application=GoodPrescriptionRefillApp7&

callid=972590A4-185511D6-80110013-803E8C8E

&session.connection.remote.uri=5555&session.connection.local.uri=5555 HTTP/1.1

*Feb  4 03:24:54.263: Message Response Code: 200

*Feb  4 03:24:54.263: Message Rsp Decoded Headers:

*Feb  4 03:24:54.263: Date:Thu, 17 May 2007 15:48:31 GMT

*Feb  4 03:24:54.263: Content-Type:text/xml;charset=ISO-8859-1

*Feb  4 03:24:54.263: Connection:close

*Feb  4 03:24:54.263: Set-Cookie:JSESSIONID=6FE82FC3B0E02909CA5A9307D57F00E1; Path=/CVP

*Feb  4 03:24:54.263: headers:

*Feb  4 03:24:54.263: HTTP/1.1 200 OK

Server: Apache-Coyote/1.1

Set-Cookie: JSESSIONID=6FE82FC3B0E02909CA5A9307D57F00E1; Path=/CVP

Content-Type: text/xml;charset=ISO-8859-1

Date: Thu, 17 May 2007 15:48:31 GMT

Connection: close

*Feb  4 03:24:54.263: body:

*Feb  4 03:24:54.263: <?xml version="1.0" encoding="UTF-8"?>

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

calling_into=GoodPrescriptionRefillApp7" xml:lang="en-us">

<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="http://172.18.110.75/Welcome-1.wav" />

</prompt>

<assign name="audium_vxmlLog" expr="audium_vxmlLog + '|||audio_group$$$' +

'initial_audio_group' + '^^^' + application.getElap

sedTime(audium_element_start_time_millisecs)" />

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

</block>

</form>

</vxml>

網關向媒體伺服器傳送HTTP GET請求以下載Welcome-1.wav檔案

*Feb  4 03:24:54.371: //63//HTTPC:/httpc_write_stream: Client write buffer fd(0):

GET /Welcome-1.wav HTTP/1.1

Host: 172.18.110.75

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

Connection: close

Accept: text/vxml, text/x-vxml, application/vxml, application/x-vxml, application/voicexml,

application/x-voicexml, text/plain, text/html, audio/basic, audio/wav, multipart/form-data,

application/octet-stream

User-Agent: Cisco-IOS-C5400/12.4

網關從媒體伺服器收到200 OK並接收HTTP消息正文中Welcome-1.wav的內容

*Feb  4 03:24:54.391: read data from the socket 0 : first 400 bytes of data:

HTTP/1.1 200 OK

Content-Length: 76152

Content-Type: audio/wav

Last-Modified: Thu, 03 May 2007 19:47:43 GMT

Accept-Ranges: bytes

ETag: "b27d69eabb8dc71:2eb"

Server: Microsoft-IIS/6.0

Date: Thu, 17 May 2007 15:48:31 GMT

Connection: close

RIFFo)(Unprintable char...)1057415645666D7420120007010401F00401F00108000666163744

000529106461746152910FFFFFFFFFFFFFFFF7AFFFFFFFD7E7E

網關將POST HTTP請求傳送到VXML文檔的「提交」選項中定義的伺服器(1)

*Feb  4 03:24:54.371: //63//HTTPC:/httpc_write_stream: Client write buffer fd(1):

POST /CVP/Server HTTP/1.1

Host: 172.18.110.75:7000

Content-Length: 67

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

Cookie: $Version=0; JSESSIONID=6FE82FC3B0E02909CA5A9307D57F00E1; $Path=/CVP

Connection: close

Accept: text/vxml, text/x-vxml, application/vxml, application/x-vxml, application/voicexml,

application/x-voicexml, text/plain, text/html, audio/basic, audio/wav, multipart/form-data,

application/octet-stream

User-Agent: Cisco-IOS-C5400/12.4

網關收到其POST HTTP請求的200 OK

郵件正文包含VXML文檔(2)。 VXML文檔告訴網關播放「早安，感謝您致電海迪安藥店。

注意：此提示需要由文本到語音伺服器合成。

*Feb  4 03:24:54.379: processing server rsp msg: msg(63AC8D3C)

URL:http://172.18.110.75:7000/CVP/Server, fd(1):

*Feb  4 03:24:54.379: Request msg: POST /CVP/Server HTTP/1.1

*Feb  4 03:24:54.379: Message Response Code: 200

*Feb  4 03:24:54.379: Message Rsp Decoded Headers:

*Feb  4 03:24:54.379: Date:Thu, 17 May 2007 15:48:31 GMT

*Feb  4 03:24:54.379: Content-Type:text/xml;charset=ISO-8859-1

*Feb  4 03:24:54.379: Connection:close

*Feb  4 03:24:54.379: headers:

*Feb  4 03:24:54.379: HTTP/1.1 200 OK

Server: Apache-Coyote/1.1

Content-Type: text/xml;charset=ISO-8859-1

Date: Thu, 17 May 2007 15:48:31 GMT

Connection: close

*Feb  4 03:24:54.379: body:

*Feb  4 03:24:54.379: <?xml version="1.0" encoding="UTF-8"?>

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

calling_into=GoodPrescriptionRefillApp7" xml:lang="en-us">

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

Good morning and thank you for calling Audium pharmacy.

<assign name="audium_vxmlLog" expr="audium_vxmlLog + '|||audio_group$$$' +

'initial_audio_group' + '^^^' + application.getElap

sedTime(audium_element_start_time_millisecs)" />

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

</block>

</form>

</vxml>

網關按照VXML文檔的「提交」選項中的定義傳送HTTP POST請求(2)

*Feb  4 03:24:54.399: //63//HTTPC:/httpc_write_stream: Client write buffer fd(1):

POST /CVP/Server HTTP/1.1

Host: 172.18.110.75:7000

Content-Length: 67

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

Cookie: $Version=0; JSESSIONID=6FE82FC3B0E02909CA5A9307D57F00E1; $Path=/CVP

Connection: close

Accept: text/vxml, text/x-vxml, application/vxml, application/x-vxml, application/voicexml,

application/x-voicexml, text/plain, text/html, audio/basic, audio/wav, multipart/form-data,

application/octet-stream

User-Agent: Cisco-IOS-C5400/12.4

網關收到200 OK響應HTTP POST請求

郵件正文包含VXML文檔(3)。 此VXML文檔定義了一個選單提示，告訴呼叫者輸入1或者說重新填寫，輸入2或者說藥劑師。提示由TTS伺服器合成。使用ASR識別輸入（語音/dtmf）。

*Feb  4 03:24:54.415: processing server rsp msg: msg(63AC8F24)

URL:http://172.18.110.75:7000/CVP/Server, fd(1):

*Feb  4 03:24:54.415: Request msg: POST /CVP/Server HTTP/1.1

*Feb  4 03:24:54.415: Message Response Code: 200

*Feb  4 03:24:54.415: Message Rsp Decoded Headers:

*Feb  4 03:24:54.415: Date:Thu, 17 May 2007 15:48:31 GMT

*Feb  4 03:24:54.415: Content-Type:text/xml;charset=ISO-8859-1

*Feb  4 03:24:54.415: Connection:close

*Feb  4 03:24:54.415: headers:

*Feb  4 03:24:54.415: HTTP/1.1 200 OK

Server: Apache-Coyote/1.1

Content-Type: text/xml;charset=ISO-8859-1

Date: Thu, 17 May 2007 15:48:31 GMT

Connection: close

*Feb  4 03:24:54.415: body:

*Feb  4 03:24:54.415: ... Buffer too large - truncated to (4096) len.

*Feb  4 03:24:54.415: <?xml version="1.0" encoding="UTF-8"?>

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

calling_into=GoodPrescriptionRefillApp7" xml:lang="en-us">

<property name="timeout" value="60s" />

<property name="confidencelevel" value="0.40" />

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

<assign name="audium_vxmlLog" expr="audium_vxmlLog + '|||audio_group$$$' +

'initial_audio_group' + '^^^' + application.getElap

sedTime(audium_element_start_time_millisecs)" />

<goto nextitem="choice_fld" />

</block>

<field name="choice_fld" modal="false">

<property name="inputmodes" value="dtmf voice" />

Say refills or press 1.

Or.

Say pharmacist or press 2.

Sorry.

I did not understand that.

Say refills or press 1.

Say pharmacist or press 2.

<assign name="audium_vxmlLog" expr="audium_vxmlLog + '|||nomatch$$$' + '1' + '^^^' +

application.getElapsedTime(audium_element_start_time_millisecs)" />

<assign name="audium_vxmlLog" expr="audium_vxmlLog + '|||audio_group$$$' +

'nomatch_audio_group' + '^^^' + application.getElapsedTime(audium_element_start_time_millisecs)" />

</catch>

<catch event="nomatch" count="2">

<prompt bargein="true">Sorry, I still did not get that.

If you are using a speaker phone.

Please use the phone keypad to make your selection.

Press 1 for refills.

Press 2 to speak to a pharmacist.</prompt>

<assign name="audium_vxmlLog" expr="audium_vxmlLog + '|||nomatch$$$' + '2' + '^^^' +

application.getElapsedTime(audium_element_start_time_millisecs)" />

<assign name="audium_vxmlLog" expr="audium_vxmlLog + '|||audio_group$$$' +

'nomatch_audio_group' + '^^^' + application.getElapsedTime(audium_element_start_time_millisecs)" />

</catch>

<catch event="nomatch" count="3">

<prompt bargein="true">Gee.

Looks like we are having some trouble.</prompt>

<assign name="audium_vxmlLog" expr="audium_vxmlLog + '|||nomatch$$$' + '3' + '^^^' +

application.getElapsedTime(audium_element_start_time_millisecs)" />

<assign name="audium_vxmlLog" expr="audium_vxmlLog + '|||audio_group$$$' +

'nomatch_audio_group' + '^^^' + application.getElapsedTime(audium_element_start_time_millisecs)" />

<var name="maxNoMatch" expr="'yes'" />

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

</catch>

<catch event="noinput">

<prompt bargein="true">Sorry.

I did not hear that.

Say refills or press 1.

Say pharmacist or press 2.</prompt>

<assign name="audium_vxmlLog" expr="audium_vxmlLog + '|||noinput$$$' + '1' + '^^^' +

application.getElapsedTime(audium_element_start_time_millisecs)" />

<assign name="audium_vxmlLog" expr="audium_vxmlLog + '|||audio_group$$$' +

'noinput_audio_group' + '^^^' + application.getElapsedTime(audium_element_start_time_millisecs)" />

</catch>

<catch event="noinput" count="2">

<prompt bargein="true">I am sorry.

I still did not hear that.

If you are using a speaker phone.

Please use the phone keypad to make your selection.

Press 1 for refills.

Press 2 to speak to a pharmacist.</prompt>

<assign name="audium_vxmlLog" expr="audium_vxmlLog + '|||noinput$$$' + '2' + '^^^' +

application.getElapsedTime(audium_element_start_time_millisecs)" />

<assign name="audium_vxmlLog" expr="audium_vxmlLog + '|||audio_group$$$' +

'noinput_audio_group' + '^^^' + application.getElapsedTime(audium_element_start_time_millisecs)" />

</catch>

<catch event="noinput" count="3">

<prompt bargein="true">Gee.

Looks like we are having some trouble.</prompt>

<assign name="audium_vxmlLog" expr="

*Feb  4 03:24:54.435:

*Feb  4 03:24:54.435: //63//AFW_:/vapp_bgpost_done: status=http OK

*Feb  4 03:24:54.435: //63//HTTPC:/httpc_socket_cleanup: fd=-1, bytes_sent=531

*Feb  4 03:24:54.435: //63//AFW_:/vapp_driver: evtID: 194 vapp record state: 0

*Feb  4 03:24:54.435: //63//AFW_:/vapp_bgpost_done_event:

*Feb  4 03:24:54.435: //63/972590A48011/VXML:/vxml_bgload_post_done:

vxmlhandle=6767ECFC status=0 async_status=400000000

*Feb  4 03:24:54.435: //63/972590A48011/VXML:/vxml_bgload_post_done:

Loading file with url (http://172.18.110.75:7000/CVP/Server)

*Feb  4 03:24:54.435: //63/972590A48011/VXML:/vxml_bgload_post_done: Script Content

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

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

calling_into=GoodPrescriptionRefillApp7" xml:lang="en-us">

<property name="timeout" value="60s" />

<property name="confidencelevel" value="0.40" />

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

<assign name="audium_vxmlLog" expr="audium_vxmlLog + '|||audio_group$$$' +

'initial_audio_group' + '^^^' + application.getElap

sedTime(audium_element_start_time_millisecs)" />

<goto nextitem="choice_fld" />

</block>

<field name="choice_fld" modal="false">

<property name="inputmodes" value="dtmf voice" />

Say refills or press 1.

Or.

Say pharmacist or press 2.

Sorry.

I did not understand that.

Say refills or press 1.

Say pharmacist or press 2.</prompt>

<assign name="audium_vxmlLog" expr="audium_vxmlLog + '|||nomatch$$$' + '1' + '^^^' +

application.getElapsedTime(audium_element_start_time_millisecs)" />

<assign name="audium_vxmlLog" expr="audium_vxmlLog + '|||audio_group$$$' +

'nomatch_audio_group' + '^^^' + application.getElapsedTime(audium_element_start_time_millisecs)" />

</catch>

<catch event="nomatch" count="2">

<prompt bargein="true">Sorry, I still did not get that.

If you are using a speaker phone.

Please use the phone keypad to make your selection.

Press 1 for refills.

Press 2 to speak to a pharmacist.</prompt>

<assign name="audium_vxmlLog" expr="audium_vxmlLog + '|||nomatch$$$' + '2' + '^^^' +

application.getElapsedTime(audium_element_start_time_millisecs)" />

<assign name="audium_vxmlLog" expr="audium_vxmlLog + '|||audio_group$$$' +

'nomatch_audio_group' + '^^^' + application.getElapsedTime(audium_element_start_time_millisecs)" />

</catch>

<catch event="nomatch" count="3">

<prompt bargein="true">Gee.

Looks like we are having some trouble.</prompt>

<assign name="audium_vxmlLog" expr="audium_vxmlLog + '|||nomatch$$$' + '3' + '^^^' +

application.getElapsedTime(audium_element_start_time_millisecs)" />

<assign name="audium_vxmlLog" expr="audium_vxmlLog + '|||audio_group$$$' +

'nomatch_audio_group' + '^^^' + application.getElapsedTime(audium_element_start_time_millisecs)" />

<var name="maxNoMatch" expr="'yes'" />

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

</catch>

<catch event="noinput">

<prompt bargein="true">Sorry.

I did not hear that.

Say refills or press 1.

Say pharmacist or press 2.</prompt>

<assign name="audium_vxmlLog" expr="audium_vxmlLog + '|||noinput$$$' + '1' + '^^^' +

application.getElapsedTime(audium_element_start_time_millisecs)" />

<assign name="audium_vxmlLog" expr="audium_vxmlLog + '|||audio_group$$$' +

'noinput_audio_group' + '^^^' + application.getElapsedTime(audium_element_start_time_millisecs)" />

</catch>

<catch event="noinput" count="2">

<prompt bargein="true">I am sorry.

I still did not hear that.

If you are using a speaker phone.

Please use the phone keypad to make your selection.

Press 1 for refills.

Press 2 to speak to a pharmacist.</prompt>

<assign name="audium_vxmlLog" expr="audium_vxmlLog + '|||noinput$$$' + '2' + '^^^' +

application.getElapsedTime(audium_element_start_time_millisecs)" />

<assign name="audium_vxmlLog" expr="audium_vxmlLog + '|||audio_group$$$' +

'noinput_audio_group' + '^^^' + application.getElapsedTime(audium_element_start_time_millisecs)" />

</catch>

<catch event="noinput" count="3">

<prompt bargein="true">Gee.

Looks like we are having some trouble.</prompt>

<assign name="audium_vxmlLog" expr="audium_vxmlLog + '|||noinput$$$' + '3' + '^^^' +

application.getElapsedTime(audium_element_start_time_millisecs)" />

<assign name="audium_vxmlLog" expr="audium_vxmlLog + '|||audio_group$$$' +

'noinput_audio_group' + '^^^' + application.getElapsedTime(audium_element_start_time_millisecs)" />

<var name="maxNoInput" expr="'yes'" />

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

</catch>

prescription

refills

prescription refills

refill my prescription

I want to refill my prescription

refills please

Pharmacist

I want to speak to a pharmacist

pharmacist please

<filled>

<assign name="audium_vxmlLog" expr="audium_vxmlLog + '|||utterance$$$' +

choice_fld$.utterance + '^^^' + application.getElap

sedTime(audium_element_start_time_millisecs)" />

<assign name="audium_vxmlLog" expr="audium_vxmlLog + '|||inputmode$$$' +

choice_fld$.inputmode + '^^^' + application.getElap

sedTime(audium_element_start_time_millisecs)" />

<assign name="audium_vxmlLog" expr="audium_vxmlLog + '|||interpretation$$$' +

choice_fld + '^^^' + application.getElapsedTime(audium_element_start_time_millisecs)" />

<assign name="audium_vxmlLog" expr="audium_vxmlLog + '|||confidence$$$' +

choice_fld$.confidence + '^^^' + application.getElapsedTime(audium_element_start_time_millisecs)" />

<var name="confidence" expr="choice_fld$.confidence" />

</filled>

</field>

</form>

</vxml>

網關建立用於DTMF/語音識別的語法

一旦網關與ASR伺服器建立RTSP會話，這些語法就會傳送到ASR伺服器。

*Feb  4 03:24:54.447: //63//AFW_:/vapp_asr_change_server:

asr_server=rtsp://10.86.177.39/recognizer

*Feb  4 03:24:54.447: //-1//MRCP:/mrcp_change_url: sess-id: 17,

url=rtsp://10.86.177.39/recognizer

*Feb  4 03:24:54.447: //-1//RTSP:/rtsplib_pmh_parse_url:

*Feb  4 03:24:54.447: //-1//RTSP:/rtsplib_pmh_parse_url: Input-Url:

rtsp://10.86.177.39/recognizer

*Feb  4 03:24:54.447: //-1//RTSP:/rtsplib_pmh_parse_url: Hostname:

10.86.177.39Port    : 554Path    : recognizer

*Feb  4 03:24:54.447: //-1//RTSP:/rtsplib_pmh_parse_url:

*Feb  4 03:24:54.447: //-1//RTSP:/rtsplib_pmh_parse_url: Input-Url:

rtsp://10.86.177.39/recognizer

*Feb  4 03:24:54.447: //-1//RTSP:/rtsplib_pmh_parse_url: Hostname:

10.86.177.39Port    : 554Path    : recognizer

*Feb  4 03:24:54.447: //63//MRCP:/mrcp_change_url: fsm (674DA1E4) already defined

*Feb  4 03:24:54.447: //63//AFW_:/vapp_asr_define_grammar:

*Feb  4 03:24:54.447: //63//AFW_:/vapp_asr_define_grammar:

grammar_id=session:option322@field.grammar

*Feb  4 03:24:54.447: //63//AFW_:/vapp_asr_define_grammar:  xml_lang=en-us

*Feb  4 03:24:54.447: //63//AFW_:/vapp_asr_define_grammar:  encoding_name=UTF-8

*Feb  4 03:24:54.447: //63//AFW_:/vapp_asr_define_grammar:  remoteupdate=0

*Feb  4 03:24:54.447: //63//AFW_:/vapp_asr_define_grammar: grammar=<?xml version="1.0"

encoding="UTF-8"?><grammar version="1.0" xmln

s="http://www.w3.org/2001/06/grammar" xml:lang="en-us" root="root"><rule id="root"

scope="public"> prescription</rule></grammar>

*Feb  4 03:24:54.447: //-1//MRCP:/mrcp_add_param: param: Speech-Language:

*Feb  4 03:24:54.447: //-1//MRCP:/mrcp_add_param: param: Content-Base:

*Feb  4 03:24:54.447: //-1//MRCP:/mrcp_recognizer_define_grammar: sess-id: 17

*Feb  4 03:24:54.447: //63//AFW_:/vapp_asr_define_grammar:

*Feb  4 03:24:54.447: //63//AFW_:/vapp_asr_define_grammar:

grammar_id=session:option323@field.grammar

*Feb  4 03:24:54.447: //63//AFW_:/vapp_asr_define_grammar:  encoding_name=UTF-8

*Feb  4 03:24:54.447: //63//AFW_:/vapp_asr_define_grammar:  remoteupdate=0

*Feb  4 03:24:54.447: //63//AFW_:/vapp_asr_define_grammar: grammar=<?xml version="1.0"

encoding="UTF-8"?><grammar version="1.0" xmln

s="http://www.w3.org/2001/06/grammar" mode="dtmf" root="root"><rule id="root"

scope="public">1</rule></grammar>

*Feb  4 03:24:54.447: //-1//MRCP:/mrcp_add_param: param: Content-Base:

*Feb  4 03:24:54.447: //-1//MRCP:/mrcp_recognizer_define_grammar: sess-id: 17

*Feb  4 03:24:54.447: //63//AFW_:/vapp_asr_define_grammar:

*Feb  4 03:24:54.447: //63//AFW_:/vapp_asr_define_grammar:

grammar_id=session:option324@field.grammar

*Feb  4 03:24:54.447: //63//AFW_:/vapp_asr_define_grammar:  xml_lang=en-us

*Feb  4 03:24:54.447: //63//AFW_:/vapp_asr_define_grammar:  encoding_name=UTF-8

*Feb  4 03:24:54.447: //63//AFW_:/vapp_asr_define_grammar:  remoteupdate=0

*Feb  4 03:24:54.447: //63//AFW_:/vapp_asr_define_grammar: grammar=<?xml version="1.0"

encoding="UTF-8"?><grammar version="1.0" xmln

s="http://www.w3.org/2001/06/grammar" xml:lang="en-us" root="root"><rule id="root"

scope="public"> refills</rule></grammar>

*Feb  4 03:24:54.447: //-1//MRCP:/mrcp_add_param: param: Speech-Language:

*Feb  4 03:24:54.447: //-1//MRCP:/mrcp_add_param: param: Content-Base:

*Feb  4 03:24:54.447: //-1//MRCP:/mrcp_recognizer_define_grammar: sess-id: 17

*Feb  4 03:24:54.447: //63//AFW_:/vapp_asr_define_grammar:

*Feb  4 03:24:54.447: //63//AFW_:/vapp_asr_define_grammar:

grammar_id=session:option325@field.grammar

*Feb  4 03:24:54.447: //63//AFW_:/vapp_asr_define_grammar:  xml_lang=en-us

*Feb  4 03:24:54.447: //63//AFW_:/vapp_asr_define_grammar:  encoding_name=UTF-8

*Feb  4 03:24:54.447: //63//AFW_:/vapp_asr_define_grammar:  remoteupdate=0

*Feb  4 03:24:54.447: //63//AFW_:/vapp_asr_define_grammar: grammar=<?xml version="1.0"

encoding="UTF-8"?><grammar version="1.0" xmln

s="http://www.w3.org/2001/06/grammar" xml:lang="en-us" root="root"><rule id="root"

scope="public"> prescription refills</rule></gram

mar>

*Feb  4 03:24:54.447: //-1//MRCP:/mrcp_add_param: param: Speech-Language:

*Feb  4 03:24:54.447: //-1//MRCP:/mrcp_add_param: param: Content-Base:

*Feb  4 03:24:54.447: //-1//MRCP:/mrcp_recognizer_define_grammar: sess-id: 17

*Feb  4 03:24:54.447: //63//AFW_:/vapp_asr_define_grammar:

*Feb  4 03:24:54.447: //63//AFW_:/vapp_asr_define_grammar:

grammar_id=session:option326@field.grammar

*Feb  4 03:24:54.447: //63//AFW_:/vapp_asr_define_grammar:  xml_lang=en-us

*Feb  4 03:24:54.447: //63//AFW_:/vapp_asr_define_grammar:  encoding_name=UTF-8

*Feb  4 03:24:54.447: //63//AFW_:/vapp_asr_define_grammar:  remoteupdate=0

*Feb  4 03:24:54.447: //63//AFW_:/vapp_asr_define_grammar: grammar=<?xml version="1.0"

encoding="UTF-8"?><grammar version="1.0" xmln

s="http://www.w3.org/2001/06/grammar" xml:lang="en-us" root="root"><rule id="root"

scope="public"> refill my prescription</rule></gr

ammar>

*Feb  4 03:24:54.447: //-1//MRCP:/mrcp_add_param: param: Speech-Language:

*Feb  4 03:24:54.447: //-1//MRCP:/mrcp_add_param: param: Content-Base:

*Feb  4 03:24:54.447: //-1//MRCP:/mrcp_recognizer_define_grammar: sess-id: 17

*Feb  4 03:24:54.447: //63//AFW_:/vapp_asr_define_grammar:

*Feb  4 03:24:54.447: //63//AFW_:/vapp_asr_define_grammar:

grammar_id=session:option327@field.grammar

*Feb  4 03:24:54.447: //63//AFW_:/vapp_asr_define_grammar:  xml_lang=en-us

*Feb  4 03:24:54.447: //63//AFW_:/vapp_asr_define_grammar:  encoding_name=UTF-8

*Feb  4 03:24:54.447: //63//AFW_:/vapp_asr_define_grammar:  remoteupdate=0

*Feb  4 03:24:54.447: //63//AFW_:/vapp_asr_define_grammar: grammar=<?xml version="1.0"

encoding="UTF-8"?><grammar version="1.0" xmln

s="http://www.w3.org/2001/06/grammar" xml:lang="en-us" root="root"><rule id="root"

scope="public"> I want to refill my prescription</rule></grammar>

*Feb  4 03:24:54.447: //-1//MRCP:/mrcp_add_param: param: Speech-Language:

*Feb  4 03:24:54.447: //-1//MRCP:/mrcp_add_param: param: Content-Base:

*Feb  4 03:24:54.447: //-1//MRCP:/mrcp_recognizer_define_grammar: sess-id: 17

*Feb  4 03:24:54.447: //63//AFW_:/vapp_asr_define_grammar:

*Feb  4 03:24:54.447: //63//AFW_:/vapp_asr_define_grammar:

grammar_id=session:option328@field.grammar

*Feb  4 03:24:54.447: //63//AFW_:/vapp_asr_define_grammar:  xml_lang=en-us

*Feb  4 03:24:54.447: //63//AFW_:/vapp_asr_define_grammar:  encoding_name=UTF-8

*Feb  4 03:24:54.447: //63//AFW_:/vapp_asr_define_grammar:  remoteupdate=0

*Feb  4 03:24:54.447: //63//AFW_:/vapp_asr_define_grammar: grammar=<?xml version="1.0"

encoding="UTF-8"?><grammar version="1.0" xmln

s="http://www.w3.org/2001/06/grammar" xml:lang="en-us" root="root"><rule id="root"

scope="public"> refills please</rule></grammar>

*Feb  4 03:24:54.447: //-1//MRCP:/mrcp_add_param: param: Speech-Language:

*Feb  4 03:24:54.447: //-1//MRCP:/mrcp_add_param: param: Content-Base:

*Feb  4 03:24:54.447: //-1//MRCP:/mrcp_recognizer_define_grammar: sess-id: 17

*Feb  4 03:24:54.447: //63//AFW_:/vapp_asr_define_grammar:

*Feb  4 03:24:54.447: //63//AFW_:/vapp_asr_define_grammar:

grammar_id=session:option329@field.grammar

*Feb  4 03:24:54.447: //63//AFW_:/vapp_asr_define_grammar:  xml_lang=en-us

*Feb  4 03:24:54.447: //63//AFW_:/vapp_asr_define_grammar:  encoding_name=UTF-8

*Feb  4 03:24:54.447: //63//AFW_:/vapp_asr_define_grammar:  remoteupdate=0

*Feb  4 03:24:54.447: //63//AFW_:/vapp_asr_define_grammar: grammar=<?xml version="1.0"

encoding="UTF-8"?><grammar version="1.0" xmln

s="http://www.w3.org/2001/06/grammar" xml:lang="en-us" root="root"><rule id="root"

scope="public"> Pharmacist</rule></grammar>

*Feb  4 03:24:54.447: //-1//MRCP:/mrcp_add_param: param: Speech-Language:

*Feb  4 03:24:54.447: //-1//MRCP:/mrcp_add_param: param: Content-Base:

*Feb  4 03:24:54.447: //-1//MRCP:/mrcp_recognizer_define_grammar: sess-id: 17

*Feb  4 03:24:54.451: //63//AFW_:/vapp_asr_define_grammar:

*Feb  4 03:24:54.451: //63//AFW_:/vapp_asr_define_grammar:

grammar_id=session:option330@field.grammar

*Feb  4 03:24:54.451: //63//AFW_:/vapp_asr_define_grammar:  encoding_name=UTF-8

*Feb  4 03:24:54.451: //63//AFW_:/vapp_asr_define_grammar:  remoteupdate=0

*Feb  4 03:24:54.451: //63//AFW_:/vapp_asr_define_grammar: grammar=<?xml version="1.0"

encoding="UTF-8"?><grammar version="1.0" xmln

s="http://www.w3.org/2001/06/grammar" mode="dtmf" root="root"><rule id="root"

scope="public">2</rule></grammar>

*Feb  4 03:24:54.451: //-1//MRCP:/mrcp_add_param: param: Content-Base:

*Feb  4 03:24:54.451: //-1//MRCP:/mrcp_recognizer_define_grammar: sess-id: 17

*Feb  4 03:24:54.451: //63//AFW_:/vapp_asr_define_grammar:

*Feb  4 03:24:54.451: //63//AFW_:/vapp_asr_define_grammar:

grammar_id=session:option331@field.grammar

*Feb  4 03:24:54.451: //63//AFW_:/vapp_asr_define_grammar:  xml_lang=en-us

*Feb  4 03:24:54.451: //63//AFW_:/vapp_asr_define_grammar:  encoding_name=UTF-8

*Feb  4 03:24:54.451: //63//AFW_:/vapp_asr_define_grammar:  remoteupdate=0

*Feb  4 03:24:54.451: //63//AFW_:/vapp_asr_define_grammar: grammar=<?xml version="1.0"

encoding="UTF-8"?><grammar version="1.0" xmln

s="http://www.w3.org/2001/06/grammar" xml:lang="en-us" root="root"><rule id="root"

scope="public"> I want to speak to a pharmacist</rule></grammar>

*Feb  4 03:24:54.451: //-1//MRCP:/mrcp_add_param: param: Speech-Language:

*Feb  4 03:24:54.451: //-1//MRCP:/mrcp_add_param: param: Content-Base:

*Feb  4 03:24:54.451: //-1//MRCP:/mrcp_recognizer_define_grammar: sess-id: 17

*Feb  4 03:24:54.451: //63//AFW_:/vapp_asr_define_grammar:

*Feb  4 03:24:54.451: //63//AFW_:/vapp_asr_define_grammar:

grammar_id=session:option332@field.grammar

*Feb  4 03:24:54.451: //63//AFW_:/vapp_asr_define_grammar:  xml_lang=en-us

*Feb  4 03:24:54.451: //63//AFW_:/vapp_asr_define_grammar:  encoding_name=UTF-8

*Feb  4 03:24:54.451: //63//AFW_:/vapp_asr_define_grammar:  remoteupdate=0

*Feb  4 03:24:54.451: //63//AFW_:/vapp_asr_define_grammar: grammar=<?xml version="1.0"

encoding="UTF-8"?><grammar version="1.0" xmln

s="http://www.w3.org/2001/06/grammar" xml:lang="en-us" root="root"><rule id="root"

scope="public"> pharmacist please</rule></grammar>

*Feb  4 03:24:54.451: //-1//MRCP:/mrcp_add_param: param: Speech-Language:

*Feb  4 03:24:54.451: //-1//MRCP:/mrcp_add_param: param: Content-Base:

*Feb  4 03:24:54.451: //-1//MRCP:/mrcp_recognizer_define_grammar: sess-id: 17

*Feb  4 03:24:54.451: //63//AFW_:/vapp_asr_define_grammar:

*Feb  4 03:24:54.451: //63//AFW_:/vapp_asr_define_grammar:

grammar_id=session:link333@document.grammar

*Feb  4 03:24:54.451: //63//AFW_:/vapp_asr_define_grammar:  xml_lang=en-us

*Feb  4 03:24:54.451: //63//AFW_:/vapp_asr_define_grammar:  encoding_name=UTF-8

*Feb  4 03:24:54.451: //63//AFW_:/vapp_asr_define_grammar:  remoteupdate=0

*Feb  4 03:24:54.451: //63//AFW_:/vapp_asr_define_grammar: grammar=<?xml version="1.0"

encoding="UTF-8"?><grammar xmlns="http://www.w3.org/2001/06/grammar" mode="voice" version="1.0"

root="Hotlink_02_VOICE" xml:lang="en-us">

<rule id="Hotlink_02_VOICE" scope="public">

<one-of>

<item>operator>

<item>agent> <item>pharmacist> </one-of> </rule> </grammar> *Feb 4 03:24:54.451: //-1//MRCP:/mrcp_add_param: param: Speech-Language: *Feb 4 03:24:54.451: //-1//MRCP:/mrcp_add_param: param: Content-Base: *Feb 4 03:24:54.451: //-1//MRCP:/mrcp_recognizer_define_grammar: sess-id: 17 *Feb 4 03:24:54.451: //63//AFW_:/vapp_asr_define_grammar: *Feb 4 03:24:54.451: //63//AFW_:/vapp_asr_define_grammar: grammar_id=session:link334@document.grammar *Feb 4 03:24:54.451: //63//AFW_:/vapp_asr_define_grammar: xml_lang=en-us *Feb 4 03:24:54.451: //63//AFW_:/vapp_asr_define_grammar: encoding_name=UTF-8 *Feb 4 03:24:54.451: //63//AFW_:/vapp_asr_define_grammar: remoteupdate=0 *Feb 4 03:24:54.451: //63//AFW_:/vapp_asr_define_grammar: grammar=<?xml version="1.0" encoding="UTF-8"?><grammar xmlns="http://www.w3.org/2001/06/grammar" mode="voice" version="1.0" root="Hotlink_01_VOICE" xml:lang="en-us"> <rule id="Hotlink_01_VOICE" scope="public"> <one-of> <item>operator> <item>agent> <item>pharmacist> </one-of> </rule> </grammar> *Feb 4 03:24:54.451: //-1//MRCP:/mrcp_add_param: param: Speech-Language: *Feb 4 03:24:54.451: //-1//MRCP:/mrcp_add_param: param: Content-Base: *Feb 4 03:24:54.451: //-1//MRCP:/mrcp_recognizer_define_grammar: sess-id: 17 *Feb 4 03:24:54.451: //63//AFW_:/vapp_asr_define_grammar: *Feb 4 03:24:54.451: //63//AFW_:/vapp_asr_define_grammar: grammar_id=session:help@grammar *Feb 4 03:24:54.451: //63//AFW_:/vapp_asr_define_grammar: xml_lang=en-us *Feb 4 03:24:54.451: //63//AFW_:/vapp_asr_define_grammar: encoding_name=UTF-8 *Feb 4 03:24:54.451: //63//AFW_:/vapp_asr_define_grammar: remoteupdate=1 *Feb 4 03:24:54.451: //63//AFW_:/vapp_asr_define_grammar: grammar=<?xml version="1.0" encoding="UTF-8"?><grammar version="1.0" xmln s="http://www.w3.org/2001/06/grammar" xml:lang="en-us" root="root"><rule id="root" scope="public">help</rule></grammar> *Feb 4 03:24:54.451: //-1//MRCP:/mrcp_add_param: param: Speech-Language: *Feb 4 03:24:54.451: //-1//MRCP:/mrcp_add_param: param: Content-Base: *Feb 4 03:24:54.451: //-1//MRCP:/mrcp_recognizer_define_grammar: sess-id: 17 *Feb 4 03:24:54.451: //63//AFW_:/vapp_asr: grammar_id=session:option322@field.grammar grammar_id=session:option323@field.grammar grammar_id=session:option324@field.grammar grammar_id=session:option325@field.grammar grammar_id=session:option326@field.grammar grammar_id=session:option327@field.grammar grammar_id=session:option328@field.grammar grammar_id=session:option329@field.grammar grammar_id=session:option330@field.grammar grammar_id=session:option331@field.grammar grammar_id=session:option332@field.grammar grammar_id=session:link333@document.grammar grammar_id=session:link334@document.grammar grammar_id=session:help@grammar

網關向ASR伺服器傳送RTSP SETUP請求

*Feb  4 03:24:54.475: ########################################

*Feb  4 03:24:54.475: Request

*Feb  4 03:24:54.475: SETUP rtsp://10.86.177.39/recognizer RTSP/1.0

CSeq:  0

Transport: rtp/avp;unicast;client_port=17704;mode=record

網關收到來自ASR伺服器的200 OK響應

200 OK響應的SDP包含網關需要向其傳送RTP資料包的ASR伺服器的IP地址和UDP埠號。

*Feb  4 03:24:54.531: //-1//RTSP:/rtsp_process_single_svr_resp:

*Feb  4 03:24:54.531: rtsp_process_single_svr_resp: 400 bytes of data:

RTSP/1.0 200 OK

CSeq: 0

Session: 27b1560a_00000748_464c95e8_000b_0000

Transport: RTP/AVP;unicast;client_port=17704;server_port=1224-1225;mode=record

Content-Length: 233

Content-Type: application/sdp

v=0

o=- 3388413032 3388413032 IN IP4 10.86.177.39

s=Nuance Media Server/1.0.0 SP10 (Windows 2000)

c=IN IP4 10.86.177.39

t=0 0

m=audio 1224 RTP/AVP 0 101

a=rtpmap:0 pcmu/8000

a=rtpmap:101 telephone-event/8000

a=fmtp:101 0-15

網關將MRCP「DEFINE-GRAMMAR」請求傳送到嵌入在RTSP ANNOUNCE請求中的ASR伺服器

此處只顯示一個請求：

*Feb  4 03:24:54.535: //-1//RTSP:/rtsp_partial_socket_send:

*Feb  4 03:24:54.535: rtsp_partial_socket_send: (fd:0 len:163) 400 bytes of data:

ANNOUNCE rtsp://10.86.177.39/recognizer RTSP/1.0

CSeq:  1

Session: 27b1560a_00000748_464c95e8_000b_0000

Content-Type: application/mrcp

Content-Length:  390

*Feb  4 03:24:54.535: //-1//RTSP:/rtsp_partial_socket_send:

*Feb  4 03:24:54.535: (socket:0) (bytes-sent:163)

*Feb  4 03:24:54.535: //-1//RTSP:/rtsp_partial_socket_send:

*Feb  4 03:24:54.535: rtsp_partial_socket_send: (fd:0 len:28) 400 bytes of data:

DEFINE-GRAMMAR  3 MRCP/1.0

*Feb  4 03:24:54.535: //-1//RTSP:/rtsp_partial_socket_send:

*Feb  4 03:24:54.535: (socket:0) (bytes-sent:28)

*Feb  4 03:24:54.535: //-1//RTSP:/rtsp_partial_socket_send:

*Feb  4 03:24:54.535: rtsp_partial_socket_send: (fd:0 len:70) 400 bytes of data:

Speech-Language: en-us

Content-Base: http://172.18.110.75:7000/CVP/

*Feb  4 03:24:54.535: //-1//RTSP:/rtsp_partial_socket_send:

*Feb  4 03:24:54.535: (socket:0) (bytes-sent:70)

*Feb  4 03:24:54.535: //-1//RTSP:/rtsp_partial_socket_send:

*Feb  4 03:24:54.535: rtsp_partial_socket_send: (fd:0 len:99) 400 bytes of data:

Content-Type: application/grammar+xml

Content-Id: option322@field.grammar

Content-Length: 193

*Feb  4 03:24:54.535: //-1//RTSP:/rtsp_partial_socket_send:

*Feb  4 03:24:54.535: (socket:0) (bytes-sent:99)

*Feb  4 03:24:54.535: //-1//RTSP:/rtsp_partial_socket_send:

*Feb  4 03:24:54.535: rtsp_partial_socket_send: (fd:0 len:193) 400 bytes of data:

xmlns="http://www.w3.org/2001/06/grammar" xml:lang="en-us" root="root">

prescription

網關收到其DEFINE-GRAMMAR請求的200 COMPLETE響應

*Feb  4 03:24:54.555: rtsp_process_single_svr_resp: 400 bytes of data:

RTSP/1.0 200 OK

CSeq: 1

Session: 27b1560a_00000748_464c95e8_000b_0000

Content-Length: 27

Content-Type: application/mrcp

MRCP/1.0 3 200 COMPLETE

網關向ASR伺服器傳送MRCP「識別」請求

*Feb  4 03:24:54.619: rtsp_partial_socket_send: (fd:0 len:24) 400 bytes of data:

RECOGNIZE  17 MRCP/1.0

*Feb  4 03:24:54.619: //-1//RTSP:/rtsp_partial_socket_send:

*Feb  4 03:24:54.619: (socket:0) (bytes-sent:24)

*Feb  4 03:24:54.619: //-1//RTSP:/rtsp_partial_socket_send:

*Feb  4 03:24:54.619: rtsp_partial_socket_send: (fd:0 len:347) 400 bytes of data:

Speech-Language: en-us

Confidence-Threshold: 40

Sensitivity-Level: 50

Speed-Vs-Accuracy: 50

Dtmf-Interdigit-Timeout: 10000

Dtmf-Term-Timeout: 0

Dtmf-Term-Char: #

No-Input-Timeout: 60000

N-Best-List-Length: 1

Logging-Tag: 63:63

Accept-Charset: charset: utf-8

Content-Base: http://172.18.110.75:7000/CVP/

Recognizer-Start-Timers: false

*Feb  4 03:24:54.619: //-1//RTSP:/rtsp_partial_socket_send:

*Feb  4 03:24:54.619: (socket:0) (bytes-sent:347)

*Feb  4 03:24:54.619: //-1//RTSP:/rtsp_partial_socket_send:

*Feb  4 03:24:54.619: rtsp_partial_socket_send: (fd:0 len:52) 400 bytes of data:

Content-Type: text/uri-list

Content-Length: 453

*Feb  4 03:24:54.619: //-1//RTSP:/rtsp_partial_socket_send:

*Feb  4 03:24:54.619: (socket:0) (bytes-sent:52)

*Feb  4 03:24:54.619: //-1//RTSP:/rtsp_partial_socket_send:

*Feb  4 03:24:54.619: rtsp_partial_socket_send: (fd:0 len:256) 400 bytes of data:

session:option322@field.grammar

session:option323@field.grammar

session:option324@field.grammar

session:option325@field.grammar

session:option326@field.grammar

session:option327@field.grammar

session:option328@field.grammar

session:option329@field.grammar

*Feb  4 03:24:54.623: //-1//RTSP:/rtsp_partial_socket_send:

*Feb  4 03:24:54.623: (socket:0) (bytes-sent:256)

*Feb  4 03:24:54.623: //-1//RTSP:/rtsp_partial_socket_send:

*Feb  4 03:24:54.623: rtsp_partial_socket_send: (fd:0 len:197) 400 bytes of data:

session:option330@field.grammar

session:option331@field.grammar

session:option332@field.grammar

session:link333@document.grammar

session:link334@document.grammar

session:help@grammar

ASR伺服器向識別請求傳送正在進行的響應

*Feb  4 03:24:54.875: rtsp_process_single_svr_resp: 400 bytes of data:

RTSP/1.0 200 OK

CSeq: 15

Session: 27b1560a_00000748_464c95e8_000b_0000

Content-Length: 31

Content-Type: application/mrcp

MRCP/1.0 17 200 IN-PROGRESS

Gateway完成Welcome-1.wav媒體檔案的下載，向呼叫者播放提示並將其儲存在快取中

*Feb  4 03:25:07.811: //63//HTTPC:/httpc_is_cached: HTTPC_FILE_IS_CACHED

*Feb  4 03:25:07.811: //-1//HTTPC:/httpc_set_cache_revoke_cb:

Registering revoke_callback(0x61D9672C)+pcontext(0x6767A9FC) for cache p(0x672DA9C8)

*Feb  4 03:25:07.811: //63//AFW_:/vapp_driver: evtID: 145 vapp record state: 0

*Feb  4 03:25:07.811: //63//AFW_:/vapp_play_done: evID=145 reason=13, protocol=2,

status_code=0, dur=9504, rate=0

*Feb  4 03:25:07.811: //63/972590A48011/VXML:/vxml_media_done:

網關向TTS伺服器傳送RTSP SETUP請求

*Feb  4 03:25:07.811: //-1//RTSP:/rtsplib_send_setup:

*Feb  4 03:25:07.811: ########################################

*Feb  4 03:25:07.811: Request

*Feb  4 03:25:07.811: SETUP rtsp://10.86.177.39/synthesizer RTSP/1.0

CSeq:  16

Session: 27b1560a_00000748_464c95e8_000b_0000

Transport: rtp/avp;unicast;source=172.18.110.77;destination=172.18.110.77;

client_port=17704-17705

網關收到來自TTS伺服器的200 OK響應，以響應RTSP SETUP請求

*Feb  4 03:25:07.831: rtsp_process_single_svr_resp: 400 bytes of data:

RTSP/1.0 200 OK

CSeq: 16

Session: 27b1560a_00000748_464c95e8_000b_0000

Transport: RTP/AVP;unicast;client_port=17704;server_port=1224-1225

網關向TTS伺服器傳送MRCP「SPEAK」請求，播放「早安，感謝您致電Audium藥店」提示

*Feb  4 03:25:07.835: //-1//RTSP:/rtsp_partial_socket_send:

*Feb  4 03:25:07.835: rtsp_partial_socket_send: (fd:0 len:165) 400 bytes of data:

ANNOUNCE rtsp://10.86.177.39/synthesizer RTSP/1.0

CSeq:  17

Session: 27b1560a_00000748_464c95e8_000b_0000

Content-Type: application/mrcp

Content-Length:  307

*Feb  4 03:25:07.835: //-1//RTSP:/rtsp_partial_socket_send:

*Feb  4 03:25:07.835: (socket:0) (bytes-sent:165)

*Feb  4 03:25:07.835: //-1//RTSP:/rtsp_partial_socket_send:

*Feb  4 03:25:07.835: rtsp_partial_socket_send: (fd:0 len:19) 400 bytes of data:

SPEAK  2 MRCP/1.0

*Feb  4 03:25:07.835: //-1//RTSP:/rtsp_partial_socket_send:

*Feb  4 03:25:07.835: (socket:0) (bytes-sent:19)

*Feb  4 03:25:07.835: //-1//RTSP:/rtsp_partial_socket_send:

*Feb  4 03:25:07.835: rtsp_partial_socket_send: (fd:0 len:114) 400 bytes of data:

Kill-On-Barge-In: true

Speech-Language: en-us

Logging-Tag: 63:63

Content-Base: http://172.18.110.75:7000/CVP/

*Feb  4 03:25:07.835: //-1//RTSP:/rtsp_partial_socket_send:

*Feb  4 03:25:07.835: (socket:0) (bytes-sent:114)

*Feb  4 03:25:07.835: //-1//RTSP:/rtsp_partial_socket_send:

*Feb  4 03:25:07.835: rtsp_partial_socket_send: (fd:0 len:65) 400 bytes of data:

Content-Type: application/synthesis+ssml

Content-Length: 109

*Feb  4 03:25:07.835: //-1//RTSP:/rtsp_partial_socket_send:

*Feb  4 03:25:07.835: (socket:0) (bytes-sent:65)

*Feb  4 03:25:07.835: //-1//RTSP:/rtsp_partial_socket_send:

*Feb  4 03:25:07.835: rtsp_partial_socket_send: (fd:0 len:109) 400 bytes of data:

Good morning and thank you for calling Audium

pharmacy.

TTS伺服器傳送SPEAK請求的「正在進行」響應

*Feb  4 03:25:08.031: rtsp_process_single_svr_resp: 400 bytes of data:

RTSP/1.0 200 OK

CSeq: 17

Session: 27b1560a_00000748_464c95e8_000b_0000

Content-Length: 30

Content-Type: application/mrcp

MRCP/1.0 2 200 IN-PROGRESS

播放提示後，TTS伺服器向網關傳送MRCP「SPEAK-COMPLETE」響應

*Feb  4 03:25:11.911: rtsp_process_single_svr_resp: 400 bytes of data:

ANNOUNCE rtsp://10.86.177.39/synthesizer RTSP/1.0

CSeq: 1

Session: 27b1560a_00000748_464c95e8_000b_0000

Content-Length: 68

Content-Type: application/mrcp

SPEAK-COMPLETE 2 COMPLETE MRCP/1.0

Completion-Cause: 000 normal

ASR伺服器檢測語音啟動，並使用START-OF-SPEECH響應通知網關

*Feb  4 03:25:19.711: //-1//RTSP:/rtsp_process_single_svr_resp:

*Feb  4 03:25:19.711: rtsp_process_single_svr_resp: 400 bytes of data:

ANNOUNCE rtsp://10.86.177.39/recognizer RTSP/1.0

CSeq: 3

Session: 27b1560a_00000748_464c95e8_000b_0000

Content-Length: 61

Content-Type: application/mrcp

START-OF-SPEECH 17 IN-PROGRESS MRCP/1.0

Proxy-Sync-Id: 1

網關向MRCP通告請求傳送200 OK響應

*Feb  4 03:25:19.711: //-1//RTSP:/rtsp_partial_socket_send:

*Feb  4 03:25:19.711: rtsp_partial_socket_send: (fd:0 len:76) 400 bytes of data:

RTSP/1.0 200 OK

CSeq:  3

Session: 27b1560a_00000748_464c95e8_000b_0000

ASR伺服器識別單詞「Refills」，並向網關傳送MRCP「RECOGNITION-COMPLETE」消息

*Feb  6 00:58:17.960: rtsp_process_single_svr_resp: 400 bytes of data:

ANNOUNCE rtsp://10.86.177.39/recognizer RTSP/1.0

CSeq: 4

Session: 27b1560a_00000748_464f166e_000f_0000

Content-Length: 848

Content-Type: application/mrcp

RECOGNITION-COMPLETE 17 COMPLETE MRCP/1.0

Completion-Cause: 000 success

Content-Type: application/x-nlsml

Content-Length: 716

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

<result grammar="session:option420@field.grammar">

<interpreta

*Feb  4 03:25:20.867: //-1//RTSP:/rtsp_pmh_parse_svr_response:

*Feb  4 03:25:20.867: //-1//RTSP:/rtsp_pmh_parse_svr_response:

just one response(may be partial): 849

在從ASR伺服器接收到成功的識別通知後，VXML網關傳送在VXML文檔的SUBMIT標籤中指定的一個HTTP POST請求(2)

此POST請求通知VXML伺服器使用者已選擇「重新填寫」選項。

*Feb  4 03:25:20.963: //63/972590A48011/VXML:/vxml_vapp_bgpost:

url http://172.18.110.75:7000/CVP/Server cachable 1 timeout 0 body audium_vxmlLog=%7C%7C%

7Caudio_group$$$initial_audio_group%5E%5

E%5E4%7C%7C%7Cutterance$$$refills%5E%5E%5E26516%7C%7C%7Cinputmode$$$voice%5E%5E%5E26516%

7C%7C%7Cinterpretation$$$refills%5E%5E%5E265

16%7C%7C%7Cconfidence$$$0.55%5E%5E%5E26516&confidence=0.55&choice_fld=refills

len 271maxage -1 maxstale -1

*Feb  4 03:25:20.963: //63//AFW_:/vapp_bgpost: url=http://172.18.110.75:7000/CVP/Server;

mime_type=application/x-www-form-urlencoded; len=271; iov_base=audium_vxmlLog=%7C%7C%

7Caudio_group$$$initial_audio_group%5E%5E%5E4%7C%7C%7Cutterance$$$refills%5E%5E%5E26516%7C

%7C%7Cinputmode$$$voice%5E%5E%5E26516%7C%7C%7Cinterpretation$$$refills%5E%5E%5E26516%7C%7C%

7Cconfidence$$$0.55%5E%5E%5E26516&confide

nce=0.55&choice_fld=refills

*Feb  4 03:25:21.039: //63//HTTPC:/httpc_socket_send:

*Feb  4 03:25:21.039: about to send data to the socket 0 : first 400 bytes of data:

POST /CVP/Server HTTP/1.1

Host: 172.18.110.75:7000

Content-Length: 271

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

Cookie: $Version=0; JSESSIONID=6FE82FC3B0E02909CA5A9307D57F00E1; $Path=/CVP

Connection: close

Accept: text/vxml, text/x-vxml, application/vxml, application/x-vxml, application/voicexml,

application/x-voicexml, text/plain, text/html, audio/basic, audio/wav, multipart/form-dat

VXML伺服器傳送的最後一個VXML文檔僅包含表單中的退出標籤

這將通知網關終止VXML會話。

*Feb  4 03:26:20.623: processing server rsp msg: msg(63ABB204)

URL:http://172.18.110.75:7000/CVP/Server, fd(0):

*Feb  4 03:26:20.623: Request msg: POST /CVP/Server HTTP/1.1

*Feb  4 03:26:20.623: Message Response Code: 200

*Feb  4 03:26:20.623: Message Rsp Decoded Headers:

*Feb  4 03:26:20.623: Date:Thu, 17 May 2007 15:49:57 GMT

*Feb  4 03:26:20.623: Content-Type:text/xml;charset=ISO-8859-1

*Feb  4 03:26:20.623: Connection:close

*Feb  4 03:26:20.623: Set-Cookie:JSESSIONID=NULL; Expires=Thu, 01-Jan-1970 00:00:10 GMT;

Path=/CVP

*Feb  4 03:26:20.623: headers:

*Feb  4 03:26:20.623: HTTP/1.1 200 OK

Server: Apache-Coyote/1.1

Set-Cookie: JSESSIONID=NULL; Expires=Thu, 01-Jan-1970 00:00:10 GMT; Path=/CVP

Content-Type: text/xml;charset=ISO-8859-1

Date: Thu, 17 May 2007 15:49:57 GMT

Connection: close

*Feb  4 03:26:20.627: body:

*Feb  4 03:26:20.627: <?xml version="1.0" encoding="UTF-8"?>

<vxml version="2.0" xml:lang="en-us">

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

<exit />

</catch>

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

<exit />

</catch>

<catch event="telephone.disconnect">

<exit />

</catch>

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

<exit />

</catch>

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

<exit />

</catch>

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

<exit />

</catch>

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

<exit />

</catch>

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

<exit />

</catch>

<catch event="error.unsupported">

<exit />

</catch>

<catch event="error.semantic">

<exit />

</catch>

<catch event="error.noresource">

<exit />

</catch>

<catch event="error.noauthorization">

<exit />

</catch>

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

<exit />

</catch>

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

<exit />

</catch>

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

<exit />

</catch>

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

<exit />

</catch>

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

<exit />

</catch>

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

<exit />

</catch>

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

<exit />

</catch>

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

<exit />

</catch>

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

<exit />

</catch>

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

<exit />

</catch>

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

<exit />

</catch>

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

<exit />

</catch>

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

<exit />

</catch>

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

<exit />

</catch>

<catch event="error.badfetch">

<exit />

</catch>

<catch event="error">

<exit />

</catch>

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

<exit />

</catch>

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

<exit />

</catch>

<catch event="connection.disconnect">

<exit />

</catch>

<form>

<block>

<exit />

</block>

</form>

</vxml>

網關終止VXML應用程式

*Feb  4 03:26:28.803: //63/972590A48011/VXML:/vxml_vapp_terminate:

vapp_status=0 ref_count 0

*Feb  4 03:26:28.803: //63//AFW_:/vapp_terminate:

*Feb  4 03:26:28.803: //63//AFW_:/vapp_session_exit_event_name: Exit Event vxml.session.complete

*Feb  4 03:26:28.803: //63//AFW_:/AFW_M_VxmlModule_Terminate:

*Feb  4 03:26:28.803: //63//AFW_:/vapp_checksessionstate:

*Feb  4 03:26:28.803: //63//AFW_:/vapp_checkifdone: Object: 1, Leg: 1

*Feb  4 03:26:28.803: //63/972590A48011/VXML:/pop_exec_stack:

*Feb  4 03:26:28.803: pop_exec_stack: sidp->vxmlp->urip=http://172.18.110.75:7000/CVP/Server

*Feb  4 03:26:28.803: //63/972590A48011/VXML:/vxml_leave_scope:

scope=application

*Feb  4 03:26:28.803: vxml_tree_delete:mem_mgr_mempool_free: mem_refcnt(6848EE98)=

0 - mempool cleanup

*Feb  4 03:26:28.803: vxml_tree_delete:mem_mgr_mempool_free: mem_refcnt(6848CD00)=

0 - mempool cleanupnls_mem_free

*Feb  4 03:26:28.803: nls_mem_free:mem_mgr_mempool_free: mem_refcnt(67651498)=

0 - mempool cleanup

*Feb  4 03:26:28.803: //63/972590A48011/VXML:/vxml_session_delete:

*Feb  4 03:26:28.803: vxml_session_delete:mem_mgr_mempool_free: mem_refcnt(6848CD54)=

0 - mempool cleanup

*Feb  4 03:26:28.803: //63//AFW_:/vapp_checksessionstate:

*Feb  4 03:26:28.803: //63//AFW_:/vapp_checkifdone: Object: 0, Leg: 0

*Feb  4 03:26:28.807: //63/972590A48011/CCAPI/ccCallDisconnect:

Cause Value=16, Tag=0x0, Call Entry(Previous Disconnect Cause=0, Disconnect Cause=0)

*Feb  4 03:26:28.807: //63/972590A48011/CCAPI/ccCallDisconnect:

Cause Value=16, Call Entry(Responsed=TRUE, Cause Value=16)

網關在ISDN端斷開呼叫

*Feb  4 03:26:28.807: ISDN Se3/0:23 Q931: TX -> DISCONNECT pd = 8  callref = 0x8099

Cause i = 0x8090 - Normal call clearing

*Feb  4 03:26:28.819: ISDN Se3/0:23 Q931: RX <- RELEASE pd = 8  callref = 0x0099

*Feb  4 03:26:28.819: ISDN Se3/0:23 Q931: TX -> RELEASE_COMP pd = 8  callref = 0x8099

網關斷開RTSP會話與ASR伺服器的連線

*Feb  4 03:26:28.823: //-1//RTSP:/rtsplib_send_teardown:

*Feb  4 03:26:28.823: ########################################

*Feb  4 03:26:28.823: Request

*Feb  4 03:26:28.823: TEARDOWN rtsp://10.86.177.39/recognizer RTSP/1.0

CSeq:  62

Session: 27b1560a_00000748_464c95e8_000b_0000

*Feb  4 03:26:28.975: //-1//RTSP:/rtsp_process_single_svr_resp:

*Feb  4 03:26:28.975: rtsp_process_single_svr_resp: 400 bytes of data:

RTSP/1.0 200 OK

CSeq: 62

Session: 27b1560a_00000748_464c95e8_000b_0000

網關斷開RTSP會話與TTS伺服器的連線

*Feb  4 03:26:28.823: //-1//RTSP:/rtsp_partial_socket_send:

*Feb  4 03:26:28.823: rtsp_partial_socket_send: (fd:0 len:111) 400 bytes of data:

TEARDOWN rtsp://10.86.177.39/synthesizer RTSP/1.0

CSeq:  63

Session: 27b1560a_00000748_464c95e8_000b_0000

*Feb  4 03:26:28.979: rtsp_process_single_svr_resp: 400 bytes of data:

RTSP/1.0 200 OK

CSeq: 63

Session: 27b1560a_00000748_464c95e8_000b_0000

相關資訊

- 語音技術支援

- 語音和整合通訊產品支援

- Cisco IP電話故障排除

- 技術支援與文件 - Cisco Systems