目录

简介

先决条件

要求

使用的组件

规则

配置

网络图

配置

呼叫流示例

验证

故障排除

调试命令

调试输出

相关信息

简介

语音可扩展标记语言(VXML)是万维网联盟(W3C)定义的标准。VXML旨在创建音频对话，提供合成语音、口语词的识别、DTMF数字的识别和口语音频的录音。VXML服务器和客户端使用公认的HTTP协议来交换VXML文档和页面。

思科语音门户(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网关：思科AS5400XM、IOS 12.4(11)T2

- VXML服务器：CVP 4.0

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

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

规则

有关文档规则的详细信息，请参阅 Cisco 技术提示规则。

配置

本部分提供有关如何配置本文档所述功能的信息。

注意：使用命令查找工具(仅限注册客户)可查找有关本文档中使用的命令的详细信息。

网络图

本文档使用以下网络设置：

配置

本文档使用以下配置：

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设置请求的“传输”报头中网关提供的IP地址和UDP端口号。

9. 如果VXML文档指定网关识别DTMF数字和口语，IOS网关将与rtsp://10.86.177.39/recognizer（ASR服务器）建立RTSP会话。 建立RTSP会话后，网关和ASR服务器使用RTSP ANNOUNCE请求交换MRCP消息，如DEFINE GRAMMAR、COMPLETE、RECOGNITE、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. 步骤6 - 10针对服务器发送的每个VXML文档。

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

故障排除

使用本部分可排除配置故障。

调试命令

配置IOS网关，使其在日志记录缓冲区中记录调试并禁用日志记录控制台。

注意：在使用debug命令之前，请参阅有关Debug命令的重要信息。

这些命令用于配置网关，来将debug存储在网关的操作日志缓冲区中：

1. service timestamps debug datetime msec

2. 服务顺序

3. no logging console

4. logging buffered 5000000 debug

5. clear log

- 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

调试输出

此部分为此示例呼叫流提供debug输出：

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消息正文中接收欢迎–1.wav的内容

10. 网关向服务器发送HTTP POST请求，如VXML文档(1)的“提交”选项中所定义

11. 网关收到200 OK的HTTP POST请求

12. 网关发送VXML文档(2)的Submit选项中定义的HTTP POST请求

13. 网关收到200 OK响应，以响应HTTP POST请求

14. 网关创建用于DTMF/语音识别的语法

15. 网关向ASR服务器发送RTSP SETUP请求

16. 网关从ASR服务器接收200 OK响应

17. 网关将MRCP“DEFINE-GRAMMAR”请求发送到嵌入在RTSP ANNOUNCE请求中的ASR服务器（此处仅显示一个请求）

18. 网关收到200个COMPLETE响应，请求DEFINE-GRAMMAR

19. 网关向ASR服务器发送MRCP“RECOGNISE”请求

20. ASR服务器向RECOGNITE请求发送IN-PROGRESS响应

21. 网关完成Welcome-1.wav媒体文件的下载，向呼叫方播放提示并将其存储在缓存中

22. 网关向TTS服务器发送RTSP SETUP请求

23. 网关从TTS服务器接收RTSP设置请求的200 OK响应

24. 网关向TTS服务器发送MRCP“SPEAK”请求，以播放“早上好，感谢您呼叫Audium药房”提示

25. TTS服务器发送SPEAK请求的“IN-PROGRESS”响应

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文档(2)的SUBMIT标记中指定的HTTP POST请求

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消息正文中接收欢迎–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

网关收到200 OK的POST HTTP请求

消息正文包含VXML文档(2)。 VXML文档告诉网关播放“早上好，感谢您致电Audium药房。

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

*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文档(2)的Submit选项中定义的HTTP POST请求

*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服务器合成。输入（语音/dtmf）使用ASR进行识别。

*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包含ASR服务器的IP地址和UDP端口号，网关需要将RTP数据包发送到这些端口。

*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通告请求中的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

网关收到200个COMPLETE响应，请求DEFINE-GRAMMAR

*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“RECOGNISE”请求

*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服务器向RECOGNITE请求发送IN-PROGRESS响应

*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

网关完成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服务器接收RTSP SETUP请求的200 OK响应

*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服务器发送“IN-PROGRESS”响应以响应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文档(2)的SUBMIT标记中指定的HTTP POST请求

此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

网关断开与ASR服务器的RTSP会话

*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

网关断开与TTS服务器的RTSP会话

*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