Contenu

Introduction

Conditions préalables

Conditions requises

Components Used

Conventions

Configuration

Diagramme du réseau

Configurations

Exemple de flux d'appels

Vérification

Dépannage

Commandes de débogage

Sorties de débogage

Informations connexes

Introduction

VXML (Voice Extensible Markup Language) est une norme définie par le World Wide Web Consortium (W3C). VXML est conçu pour créer des dialogues audio qui fournissent la synthèse vocale, la reconnaissance des mots parlés, la reconnaissance des chiffres DTMF et les enregistrements audio vocaux. Le serveur et les clients VXML utilisent le protocole HTTP connu pour échanger des documents et des pages VXML.

Cisco Voice Portal (CVP) fournit des applications de réponse vocale (IVR) intelligentes et interactives accessibles par téléphone. Il y a trois types de déploiements CVP :

- Service autonome

- Contrôle des appels CVP

- File d'attente et transfert d'appels

Les fonctions de synthèse vocale, de reconnaissance de mots vocaux ou de chiffres DTMF sont fournies par les serveurs de reconnaissance vocale automatique (ASR) et de synthèse vocale. La passerelle Cisco IOS® VXML communique avec les serveurs TTS et ASR à l'aide du protocole MRCP (Media Resource Control Protocol). Il existe deux versions de MRCP (RFC 4463), à savoir MRCPv1 (MRCP sur RTSP) et MRCPv2 (MRCP sur SIP).

Ce document décrit le flux d'appels d'une passerelle vocale XML Cisco IOS vers CVP dans un déploiement de service autonome qui utilise des serveurs TTS ou ASR MRCPv1. Un exemple d'application de pharmacie a été déployé sur le serveur VXML CVP.

Conditions préalables

Conditions requises

Aucune spécification déterminée n'est requise pour ce document.

Components Used

Les informations contenues dans ce document sont basées sur les versions de matériel et de logiciel suivantes :

- Passerelle IOS VXML : Cisco AS5400XM, IOS 12.4(11)T2

- Serveur VXML : CVP 4.0

- Serveur ASR/TTS : Nuance ASR v8.5 et TTS v4.0.6

The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. If your network is live, make sure that you understand the potential impact of any command.

Conventions

Pour plus d'informations sur les conventions utilisées dans ce document, reportez-vous à Conventions relatives aux conseils techniques Cisco.

Configuration

Cette section vous fournit des informations pour configurer les fonctionnalités décrites dans ce document.

Remarque : Utilisez l’outil de recherche de commandes (clients inscrits seulement) pour en savoir plus sur les commandes figurant dans le présent document.

Diagramme du réseau

Ce document utilise la configuration réseau suivante :

Configurations

Ce document utilise la configuration suivante :

Configuration de la passerelle 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

Exemple de flux d'appels

Cette section décrit le flux d'appels qui résulte de cet exemple de configuration.

1. Un appel RNIS arrive à la passerelle RTPC/VXML sur T1 PRI 3/0.

2. La passerelle IOS correspond au terminal de numérotation dial-peer 1 POTS en tant qu'homologue de numérotation dial-peer entrant pour cet appel.

3. La passerelle IOS désactive le contrôle d'appel au service de pharmacie associé au terminal de numérotation dial-peer 1.

4. Le script CVP VXML / TCL associé au service Pharmacie envoie une requête HTTP GET au serveur VXML.

5. Le serveur VXML renvoie une réponse de 200 OK. Cette réponse contient un document ou une page VXML.

6. La passerelle IOS exécute le document VXML.

7. Si le document VXML spécifie une URL pour une invite audio, la passerelle IOS télécharge le fichier audio et lit l'invite.

8. Si le document VXML spécifie un texte pour une invite audio, la passerelle IOS établit une session RTSP avec rtsp://10.86.177.39/synthesizer (serveur TTS). Une fois la session RTSP établie, le modem routeur et le serveur TTS échangent des messages MRCP tels que SPEAK, SPEAK-COMPLETE à l'aide de la demande RTSP ANNOUNCE.

Le serveur TTS envoie le flux audio RTP G.711ulaw à l'adresse IP et au numéro de port UDP fournis par le modem routeur dans l'en-tête “ Transport ” de la demande RTSP SETUP.

9. Si le document VXML spécifie le modem routeur pour reconnaître les chiffres DTMF et les mots vocaux, la passerelle IOS établit une session RTSP avec rtsp://10.86.177.39/recognizer (serveur ASR). Une fois la session RTSP établie, le serveur Gateway et ASR échangent des messages MRCP tels que DEFINE GRAMMAR, COMPLETE, RECOGNIZE, RECOGNITION-COMPLETE à l'aide de la demande RTSP ANNOUNCE.

La passerelle IOS VXML envoie le flux audio RTP G.711ulaw à l'adresse IP et au numéro de port UDP fournis par l'ASR dans le SDP de la réponse RTSP 200 OK. La passerelle IOS VXML envoie au serveur ASR les chiffres entrés par l'utilisateur PSTN en tant qu'événements RTP-NTE.

10. Après l'exécution du document VXML, le modem routeur envoie une requête HTTP POST (avec un ensemble de paramètres) comme spécifié dans la balise <send> du document ou de la page VXML.

11. Les étapes 6 à 10 se produisent pour chaque document VXML envoyé par le serveur.

12. Lorsque l'application VXML termine le service fourni à l'appelant, elle envoie un document VXML avec seulement une balise <exit/> dans l'élément <form>.

13. La passerelle IOS déconnecte les sessions MRCPv1 établies avec les serveurs TTS et ASR.

14. La passerelle IOS déconnecte l'appel côté RNIS.

Vérification

Référez-vous à cette section pour vous assurer du bon fonctionnement de votre configuration.

L'Outil Interpréteur de sortie (clients enregistrés uniquement) (OIT) prend en charge certaines commandes show. Utilisez l'OIT pour afficher une analyse de la sortie de la commande 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

Dépannage

Utilisez cette section pour dépanner votre configuration.

Commandes de débogage

Configurez la passerelle IOS pour enregistrer les débogages dans sa mémoire tampon de journalisation et désactiver la console de journalisation.

Remarque : Consulter les renseignements importants sur les commandes de débogage avant d’utiliser les commandes de débogage.

Voici les commandes utilisées pour configurer le modem routeur afin de stocker les débogages dans la mémoire tampon de journalisation du modem routeur :

1. service timestamp debug datetime msec

2. séquence de service

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 nommé-event

Sorties de débogage

Cette section fournit des sorties de débogage pour cet exemple de flux d'appels :

1. La passerelle reçoit un appel entrant du RTPC

2. La passerelle correspond à l'homologue de numérotation 1 entrant

3. L'appel est transmis au service de pharmacie

4. L'appel est connecté côté RNIS

5. La passerelle démarre l'exécution du script VoiceXML CVPSelfServiceBootstrap.vxml

6. La passerelle envoie une requête HTTP GET au serveur VXML

7. La passerelle reçoit un message 200 OK du serveur VXML

8. La passerelle envoie une requête HTTP GET au serveur multimédia pour télécharger le fichier Welcome-1.wav

9. La passerelle reçoit 200 OK du serveur multimédia et reçoit le contenu de Welcome-1.wav dans le corps du message HTTP

10. La passerelle envoie une requête HTTP POST au serveur tel que défini dans l'option « Soumettre » du document VXML (1)

11. La passerelle reçoit 200 OK pour sa requête HTTP POST

12. La passerelle envoie une requête HTTP POST, telle que définie dans l'option Submit du document VXML (2)

13. La passerelle reçoit une réponse 200 OK pour la requête HTTP POST

14. La passerelle crée les grammaires à utiliser pour la reconnaissance DTMF/vocale

15. La passerelle envoie une requête de configuration RTSP au serveur ASR

16. La passerelle reçoit une réponse 200 OK du serveur ASR

17. La passerelle envoie une demande MRCP « DEFINE-GRAMMAR » au serveur ASR intégré à la demande RTSP ANNOUNCE (une seule demande est présentée ici)

18. La passerelle reçoit 200 réponses COMPLÈTES pour sa demande DEFINE-GRAMMAR

19. La passerelle envoie une requête MRCP “ RECOGNIZE ” au serveur ASR

20. Le serveur ASR envoie une réponse IN-PROGRESS à la demande RECOGNIZE

21. La passerelle termine le téléchargement du fichier média Welcome-1.wav, diffuse l'invite à l'appelant et la stocke dans le cache

22. La passerelle envoie une requête de configuration RTSP au serveur TTS

23. La passerelle reçoit une réponse 200 OK du serveur TTS pour la demande de configuration RTSP

24. La passerelle envoie une requête MRCP “ SPEAK ” au serveur TTS pour jouer le “ Bonjour et merci d'avoir appelé l'invite ” pharmacie Audium

25. Le serveur TTS envoie une réponse « EN COURS » pour la demande SPEAK

26. Une fois l'invite lue, le serveur TTS envoie une réponse MRCP “ SPEAK-COMPLETE ” à la passerelle

27. Le serveur ASR détecte le début de la parole et avertit la passerelle à l'aide de la réponse MRCP “ START-OF-SPEECH ”

28. La passerelle envoie une réponse 200 OK à la demande d'annonce MRCP

29. Le serveur ASR reconnaît le mot « Refills » et envoie un message de ” de RECONNAISSANCE COMPLÈTE “ MRCP à la passerelle

30. Après avoir reçu une notification de reconnaissance du serveur ASR, la passerelle VXML envoie une requête HTTP POST comme spécifié dans la balise SUBMIT du document VXML (2)

31. Le serveur VXML envoie des pages VXML pour recueillir le numéro d'ordonnance, le temps d'interception et pour informer l'appelant que l'ordonnance sera prête pour l'interception. Le modem routeur exécute ces pages en interagissant avec TTS et le serveur ASR (les sorties de débogage ne sont pas affichées).

32. Le document VXML final envoyé par le serveur VXML ne contient que la balise exit dans le formulaire

33. La passerelle termine l'application VXML

34. La passerelle déconnecte l'appel côté RNIS

35. La passerelle déconnecte la session RTSP établie avec le serveur ASR

36. La passerelle déconnecte la session RTSP établie avec le serveur TTS

Appel entrant du RTPC

*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

L'homologue de numérotation entrant 1 est mis en correspondance

*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

L'appel est transmis au service de pharmacie

*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

L'appel est connecté côté RNIS

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

La passerelle démarre l'exécution du script VoiceXML CVPSelfServiceBootstrap.vxml

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

La passerelle envoie une requête HTTP GET au serveur VXML

*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

La passerelle reçoit un message 200 OK du serveur VXML

Le corps du message de cette réponse contient un document VXML (1). Le document VXML indique à la passerelle de lire le fichier multimédia Welcome-1.wav situé dans un serveur multimédia

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

La passerelle envoie une requête HTTP GET au serveur multimédia pour télécharger le fichier 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

La passerelle reçoit 200 OK du serveur multimédia et reçoit le contenu de Welcome-1.wav dans le corps du message HTTP

*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

La passerelle envoie une requête HTTP POST au serveur tel que défini dans l'option « Soumettre » du document 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

La passerelle reçoit 200 OK pour sa requête HTTP POST

Le corps du message contient un document VXML (2). Le document VXML indique à la passerelle de jouer « Bonjour et merci d'avoir appelé la pharmacie Audium.

Remarque : cette invite doit être synthétisée par un serveur de synthèse vocale.

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

La passerelle envoie une requête HTTP POST, telle que définie dans l'option Submit du document VXML (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

La passerelle reçoit une réponse 200 OK pour la requête HTTP POST

Le corps du message contient le document VXML (3). Ce document VXML définit une invite Menu qui indique à l'appelant de saisir 1 ou de dire Remplissent, entrez 2 ou dites pharmacien. Les invites sont synthétisées par un serveur TTS. Les entrées (voice / dtmf) sont reconnues à l'aide d'un 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>

La passerelle crée les grammaires à utiliser pour la reconnaissance DTMF/vocale

Ces grammaires sont ensuite envoyés au serveur ASR une fois que le modem routeur établit une session RTSP avec le serveur 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

La passerelle envoie une requête de configuration RTSP au serveur ASR

*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

La passerelle reçoit une réponse 200 OK du serveur ASR

Le SDP de la réponse 200 OK contient l'adresse IP et le numéro de port UDP du serveur ASR auquel le modem routeur doit envoyer des paquets 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

La passerelle envoie la requête MRCP « DEFINE-GRAMMAR » au serveur ASR intégré à la requête ANNOUNCE RTSP.

Une seule demande est affichée ici :

*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

La passerelle reçoit 200 réponses COMPLÈTES pour sa demande 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

La passerelle envoie une requête MRCP “ RECOGNIZE ” au serveur ASR

*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

Le serveur ASR envoie une réponse IN-PROGRESS à la demande RECOGNIZE

*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

La passerelle termine le téléchargement du fichier média Welcome-1.wav, diffuse l'invite à l'appelant et la stocke dans le cache

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

La passerelle envoie une requête de configuration RTSP au serveur TTS

*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

La passerelle reçoit une réponse 200 OK du serveur TTS pour la demande de configuration RTSP

*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

La passerelle envoie une requête MRCP “ SPEAK ” au serveur TTS pour jouer le “ Bonjour et merci d'avoir appelé l'invite ” pharmacie 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.

Le serveur TTS envoie une réponse « EN COURS » pour la demande 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

Une fois l'invite lue, le serveur TTS envoie une réponse MRCP “ SPEAK-COMPLETE ” à la passerelle

*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

Le serveur ASR détecte le début de la parole et avertit la passerelle à l'aide de la réponse 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

La passerelle envoie une réponse 200 OK à la demande d'annonce MRCP

*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

Le serveur ASR reconnaît le mot « Refills » et envoie un message de ” de RECONNAISSANCE COMPLÈTE “ MRCP à la passerelle

*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

Après avoir reçu une notification de reconnaissance du serveur ASR, la passerelle VXML envoie une requête HTTP POST comme spécifié dans la balise SUBMIT du document VXML (2)

Cette requête POST informe le serveur VXML que l'utilisateur a sélectionné l'option « Remplissages ».

*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

Le dernier document VXML envoyé par le serveur VXML ne contient que la balise exit dans le formulaire

Ceci indique au modem routeur de mettre fin à la session 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>

La passerelle termine l'application 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)

La passerelle déconnecte l'appel côté RNIS

*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

La passerelle déconnecte la session RTSP avec le serveur 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

La passerelle déconnecte la session RTSP avec le serveur 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

Informations connexes

- Assistance technique concernant la technologie vocale

- Assistance concernant les produits vocaux et de communications unifiées

- Dépannage des problèmes de téléphonie IP Cisco

- Support et documentation techniques - Cisco Systems