Inhalt

Einführung

Voraussetzungen

Anforderungen

Verwendete Komponenten

Konventionen

Konfigurieren

Netzwerkdiagramm

Konfigurationen

Beispiel für einen Anrufablauf

Überprüfen

Fehlerbehebung

Debugbefehle

Debugausgabe

Zugehörige Informationen

Einführung

Voice Extensible Markup Language (VXML) ist ein vom World Wide Web Consortium (W3C) definierter Standard. VXML wurde entwickelt, um Audio-Dialoge zu erstellen, die synthetisierte Sprache, die Erkennung gesprochener Wörter, die Erkennung von DTMF-Ziffern und Aufzeichnungen von gesprochenem Audio ermöglichen. Der VXML-Server und die Clients verwenden das bekannte HTTP-Protokoll, um VXML-Dokumente und -Seiten auszutauschen.

Cisco Voice Portal (CVP) bietet intelligente und interaktive Sprachdialogsysteme (IVR), auf die telefonisch zugegriffen werden kann. Es gibt drei Arten von CVP-Bereitstellungen:

- Standalone-Service

- CVP-Anrufsteuerung

- Anrufwarteschlange und -weiterleitung

Synthetisierte Sprache, Erkennung gesprochener Wörter oder DTMF-Ziffernfunktionen werden von TTS- (Text-to-Speech) und ASR-Servern (Automatic Speech Recognition) bereitgestellt. Das Cisco IOS® VXML-Gateway kommuniziert mit den TTS- und ASR-Servern über das Media Resource Control Protocol (MRCP). Es gibt zwei Versionen von MRCP (RFC 4463), nämlich MRCPv1 (MRCP über RTSP) und MRCPv2 (MRCP über SIP).

Dieses Dokument beschreibt den Anrufablauf eines Cisco IOS Voice XML Gateway zu CVP-Anrufen in einer Standalone-Service-Bereitstellung, die MRCPv1-TTS- oder ASR-Server verwendet. Eine Beispiel-Apothekenanwendung wurde auf dem CVP VXML-Server bereitgestellt.

Voraussetzungen

Anforderungen

Für dieses Dokument bestehen keine speziellen Anforderungen.

Verwendete Komponenten

Die Informationen in diesem Dokument basieren auf den folgenden Software- und Hardwareversionen:

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

- VXML-Server: CVP 4.0

- ASR/TTS-Server: Nuance ASR v8.5 und TTS v4.0.6

Die Informationen in diesem Dokument wurden von den Geräten in einer bestimmten Laborumgebung erstellt. Alle in diesem Dokument verwendeten Geräte haben mit einer leeren (Standard-)Konfiguration begonnen. Wenn Ihr Netzwerk in Betrieb ist, stellen Sie sicher, dass Sie die potenziellen Auswirkungen eines Befehls verstehen.

Konventionen

Weitere Informationen zu Dokumentkonventionen finden Sie unter Cisco Technical Tips Conventions (Technische Tipps zu Konventionen von Cisco).

Konfigurieren

In diesem Abschnitt erhalten Sie Informationen zum Konfigurieren der in diesem Dokument beschriebenen Funktionen.

Hinweis: Verwenden Sie das Command Lookup Tool (nur registrierte Kunden), um weitere Informationen zu den in diesem Dokument verwendeten Befehlen zu erhalten.

Netzwerkdiagramm

In diesem Dokument wird die folgende Netzwerkeinrichtung verwendet:

Konfigurationen

In diesem Dokument wird diese Konfiguration verwendet:

VXML-Gateway-Konfiguration

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

Beispiel für einen Anrufablauf

In diesem Abschnitt wird der Anruffluss beschrieben, der aus diesem Konfigurationsbeispiel resultiert.

1. Ein ISDN-Anruf geht über T1 PRI 3/0 am PSTN/VXML-Gateway ein.

2. Das IOS-Gateway ordnet POTS-DFÜ-Peer 1 als eingehenden DFÜ-Peer für diesen Anruf zu.

3. Das IOS-Gateway übergibt die Anrufsteuerung an den Apothekendienst, der dem Dial-Peer 1 zugeordnet ist.

4. Das dem Pharmacy-Dienst zugeordnete CVP VXML-/TCL-Skript sendet eine HTTP GET-Anforderung an den VXML-Server.

5. Der VXML-Server gibt eine Antwort von 200 OK zurück. Diese Antwort enthält ein VXML-Dokument oder eine VXML-Seite.

6. Das VXML-Dokument wird vom IOS Gateway ausgeführt.

7. Wenn das VXML-Dokument eine URL für eine Audioaufforderung angibt, lädt das IOS-Gateway die Audiodatei herunter und gibt die Eingabeaufforderung wieder.

8. Wenn das VXML-Dokument einen Text für eine Audioaufforderung angibt, richtet das IOS-Gateway eine RTSP-Sitzung mit rtsp://10.86.177.39/synthesizer (TTS Server) ein. Nach Einrichtung der RTSP-Sitzung tauschen das Gateway und der TTS-Server MRCP-Nachrichten wie SPEAK, SPEAK-COMPLETE mithilfe der RTSP ANNOUNCE-Anfrage aus.

Der TTS-Server sendet den G.711ulaw RTP-Audio-Stream an die IP-Adresse und die UDP-Portnummer, die vom Gateway im "Transport"-Header der RTSP-SETUP-Anforderung bereitgestellt werden.

9. Wenn das VXML-Dokument das Gateway zur Erkennung von DTMF-Ziffern und gesprochenen Wörtern vorgibt, richtet das IOS-Gateway eine RTSP-Sitzung mit rtsp://10.86.177.39/recognizer (ASR-Server) ein. Nach Einrichtung der RTSP-Sitzung tauschen der Gateway- und der ASR-Server mithilfe der RTSP ANNOUNCE-Anfrage MRCP-Nachrichten wie DEFINE GRAMMAR, COMPLETE, RECOGNIZE, RECOGNITION-COMPLETE aus.

Das IOS VXML-Gateway sendet den G.711ulaw RTP-Audio-Stream an die IP-Adresse und die UDP-Portnummer, die vom ASR im SDP der RTSP 200 OK-Antwort bereitgestellt werden. Das IOS VXML Gateway sendet die vom PSTN-Benutzer als RTP-NTE-Ereignisse eingegebenen Ziffern an den ASR-Server.

10. Nach der Ausführung des VXML-Dokuments sendet das Gateway eine HTTP POST-Anfrage (mit einem Satz von Parametern), wie im <Submit>-Tag des VXML-Dokuments oder der VXML-Seite angegeben.

11. Schritte 6 bis 10 werden für jedes vom Server gesendete VXML-Dokument ausgeführt.

12. Wenn die VXML-Anwendung den Service für den Aufrufer beendet, sendet sie ein VXML-Dokument mit einem <exit/>-Tag im <form>-Element.

13. Das IOS-Gateway trennt die mit den TTS- und ASR-Servern eingerichteten MRCPv1-Sitzungen.

14. Das IOS-Gateway trennt den Anruf auf ISDN-Seite.

Überprüfen

In diesem Abschnitt überprüfen Sie, ob Ihre Konfiguration ordnungsgemäß funktioniert.

Das Output Interpreter Tool (nur registrierte Kunden) (OIT) unterstützt bestimmte show-Befehle. Verwenden Sie das OIT, um eine Analyse der Ausgabe des Befehls show anzuzeigen.

- Anzeige der aktiven Sprachnachrichten

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

- HTTP-Clientcache anzeigen

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

Fehlerbehebung

In diesem Abschnitt finden Sie eine Fehlerbehebung für Ihre Konfiguration.

Debugbefehle

Konfigurieren Sie das IOS-Gateway so, dass die Debugger im Protokollierungspuffer protokolliert werden, und deaktivieren Sie die Protokollierungskonsole.

Hinweis: Beachten Sie vor der Verwendung von Debug-Befehlen die Informationen zu Debug-Befehlen.

Dies sind die Befehle, die verwendet werden, um das Gateway so zu konfigurieren, dass die Debugging im Protokollierungspuffer des Kabelmodems gespeichert wird:

1. Dienstzeitstempel Debugdatetime msec

2. Dienstfolge

3. Keine Protokollierungskonsole

4. Protokollierung gepuffert 500000 Debugging

5. Klarsichtprotokoll

- debug isdn q931

- debuggen voip ccapi inout

- debuggen voip application vxml default

- debuggen voip application vxml dump

- debuggen rtsp all

- debuggen mrcp all

- HTTP-Debugclient alle

- debug voip rtp session nte benanntes event

Debugausgabe

Dieser Abschnitt enthält Debug-Ausgaben für diesen Beispielaufruffluss:

1. Gateway empfängt eingehenden Anruf vom PSTN

2. Gateway-Übereinstimmungen für eingehende DFÜ-Peers 1

3. Anruf wird an Apothekendienst weitergeleitet

4. Anruf wird auf ISDN-Seite verbunden

5. Gateway startet die Ausführung des CVPSelfServiceBootstrap.vxml VoiceXML-Skripts

6. Gateway sendet eine HTTP GET-Anforderung an den VXML-Server

7. Gateway empfängt eine 200-OK-Nachricht vom VXML-Server

8. Gateway sendet eine HTTP GET-Anforderung an den Medienserver, um die Datei Welcome-1.wav herunterzuladen.

9. Das Gateway empfängt einen 200 OK vom Medienserver und empfängt den Inhalt des Welcome-1.wav im Text der HTTP-Nachricht.

10. Gateway sendet eine HTTP-POST-Anforderung an den Server, wie in der Option "Senden" des VXML-Dokuments definiert (1)

11. Gateway erhält 200 OK für HTTP POST-Anfrage

12. Gateway sendet eine HTTP POST-Anforderung, wie in der Submit-Option des VXML-Dokuments definiert (2)

13. Gateway empfängt 200 OK-Antworten für HTTP POST-Anforderung

14. Gateway erstellt die Grammare für die DTMF-/Spracherkennung

15. Gateway sendet eine RTSP-SETUP-Anforderung an den ASR-Server

16. Gateway empfängt eine 200-OK-Antwort vom ASR-Server

17. Gateway sendet MRCP-"DEFINE-GRAMMAR"-Anfrage an ASR-Server, der in die RTSP ANNOUNCE-Anfrage integriert ist (hier wird nur eine Anfrage angezeigt)

18. Gateway erhält 200 VOLLSTÄNDIGE Antwort für seine DEFINE-GRAMMAR-Anfrage

19. Gateway sendet MRCP-"ERKENNEN"-Anfrage an ASR-Server

20. ASR-Server sendet IN-PROGRESS-Antwort an die RECOGNIZE-Anfrage

21. Das Gateway schließt den Download der Mediendatei Welcome-1.wav ab, gibt die Aufforderung an den Anrufer aus und speichert sie im Cache

22. Gateway sendet eine RTSP-SETUP-Anfrage an den TTS-Server

23. Das Gateway erhält eine 200-OK-Antwort vom TTS-Server für die RTSP-Setup-Anforderung.

24. Gateway sendet MRCP-"SPEAK"-Anfrage an den TTS-Server, um die Aufforderung "Guten Morgen" und "Vielen Dank für Ihren Anruf bei der Audium Pharmacacy" zu spielen.

25. TTS-Server sendet "IN PROGRESS"-Antwort für die SPEAK-Anforderung.

26. Nach der Wiedergabe der Eingabeaufforderung sendet der TTS-Server die MRCP-Antwort "SPEAK-COMPLETE" an das Gateway

27. ASR Server erkennt den Beginn der Sprachübertragung und benachrichtigt das Gateway mithilfe der MRCP-Antwort "START-OF-SPEECH".

28. Gateway sendet 200 OK-Antwort an MRCP-Announce-Anfrage

29. ASR Server erkennt das Wort "Refils" und sendet die MRCP-Meldung "ERKENNUNG-KOMPLETT" an das Gateway.

30. Nach Erhalt einer erfolgreichen Erkennungsbenachrichtigung vom ASR-Server sendet das VXML-Gateway eine HTTP POST-Anfrage, wie im SUBMIT-Tag des VXML-Dokuments (2) angegeben.

31. Der VXML-Server sendet VXML-Seiten, auf denen die Verschreibungsnummer, die Anrufübernahme und die Anrufer darüber informiert werden, dass das Rezept zur Abholung bereit ist. Gateway führt diese Seiten durch Interaktion mit TTS- und ASR-Servern aus (Debug-Ausgaben werden nicht angezeigt).

32. Das endgültige VXML-Dokument, das vom VXML-Server gesendet wird, enthält nur das Exit-Tag im Formular.

33. Gateway beendet die VXML-Anwendung

34. Gateway trennt die Verbindung zum Anruf auf ISDN-Seite

35. Gateway trennt die mit dem ASR-Server eingerichtete RTSP-Sitzung

36. Gateway trennt die mit dem TTS-Server eingerichtete RTSP-Sitzung

Eingehender Anruf vom 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

Eingehender DFÜ-Peer 1 ist zugeordnet

*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

Anruf wird an Apothekendienst weitergeleitet

*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

Anruf wird auf ISDN-Seite verbunden

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

Gateway startet die Ausführung des CVPSelfServiceBootstrap.vxml VoiceXML-Skripts

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

Gateway sendet eine HTTP GET-Anforderung an den VXML-Server

*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

Gateway empfängt eine 200-OK-Nachricht vom VXML-Server

Der Nachrichtentext dieser Antwort enthält ein VXML-Dokument (1). Das VXML-Dokument weist das Gateway an, die Mediendatei Welcome-1.wav auf einem Medienserver abzuspielen.

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

Gateway sendet eine HTTP GET-Anforderung an den Medienserver, um die Datei Welcome-1.wav herunterzuladen.

*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

Das Gateway empfängt einen 200 OK vom Medienserver und empfängt den Inhalt des Welcome-1.wav im Text der HTTP-Nachricht.

*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

Gateway sendet eine POST-HTTP-Anforderung an den Server, wie in der Option "Senden" des VXML-Dokuments definiert(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

Gateway erhält 200 OK für seine HTTP-POST-Anfrage

Der Nachrichtentext enthält ein VXML-Dokument (2). Das VXML-Dokument weist das Gateway an, "Guten Morgen" zu spielen und vielen Dank für Ihren Anruf bei der Apotheke von Audium.

Hinweis: Diese Eingabeaufforderung muss von einem Text-to-Speech-Server synthetisiert werden.

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

Gateway sendet eine HTTP POST-Anforderung, wie in der Submit-Option des VXML-Dokuments definiert (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

Gateway empfängt 200 OK-Antworten für HTTP POST-Anforderung

Der Nachrichtentext enthält das VXML-Dokument (3). Dieses VXML-Dokument definiert eine Menüaufforderung, die den Anrufer anweist, 1 einzugeben oder "Refils" zu sagen, "2" einzugeben oder "Apotheker" zu sagen. Die Aufforderungen werden von einem TTS-Server synthetisiert. Die Eingaben (Sprache / dtmf) werden mithilfe eines ASR erkannt.

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

Gateway erstellt die Grammare für die DTMF-/Spracherkennung

Diese Grammatiken werden dann an den ASR-Server gesendet, sobald das Gateway eine RTSP-Sitzung mit dem ASR-Server eingerichtet hat.

*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

Gateway sendet eine RTSP-SETUP-Anforderung an den ASR-Server

*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

Gateway empfängt eine 200-OK-Antwort vom ASR-Server

Das SDP der 200 OK-Antwort enthält die IP-Adresse und die UDP-Portnummer des ASR-Servers, an die das Gateway RTP-Pakete senden muss.

*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

Gateway sendet MRCP-"DEFINE-GRAMMAR"-Anfrage an den in die RTSP-ANNOUNCE-Anfrage eingebetteten ASR-Server

Es wird nur eine Anfrage angezeigt:

*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

Gateway erhält 200 VOLLSTÄNDIGE Antwort für seine DEFINE-GRAMMAR-Anfrage

*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

Gateway sendet MRCP-"ERKENNEN"-Anfrage an ASR-Server

*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-Server sendet IN-PROGRESS-Antwort an die RECOGNIZE-Anfrage

*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

Das Gateway schließt den Download der Mediendatei Welcome-1.wav ab, gibt die Aufforderung an den Anrufer aus und speichert sie im 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:

Gateway sendet eine RTSP-SETUP-Anfrage an den TTS-Server

*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

Das Gateway erhält eine 200-OK-Antwort vom TTS-Server für die RTSP-SETUP-Anfrage.

*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

Gateway sendet MRCP-"SPEAK"-Anfrage an den TTS-Server, um die Aufforderung "Guten Morgen" und "Vielen Dank für Ihren Anruf bei der Audium Pharmacacy" zu spielen.

*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-Server sendet "IN PROGRESS"-Antwort für SPEAK-Anfrage

*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

Nach der Wiedergabe der Eingabeaufforderung sendet der TTS-Server die MRCP-Antwort "SPEAK-COMPLETE" an das Gateway

*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 Server erkennt den Sprachstart und benachrichtigt das Gateway mithilfe der START-OF-SPEECH-Antwort.

*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

Gateway sendet 200 OK-Antwort an MRCP-Announce-Anfrage

*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 Server erkennt das Wort "Refils" und sendet eine MRCP-Meldung "RECOGNITION-COMPLETE" an das Gateway.

*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

Nach Erhalt einer erfolgreichen Erkennungsbenachrichtigung vom ASR-Server sendet das VXML-Gateway eine HTTP POST-Anfrage, wie im SUBMIT-Tag des VXML-Dokuments (2) angegeben.

Diese POST-Anfrage informiert den VXML-Server, dass der Benutzer die Option "Refils" (Nachbearbeitung) ausgewählt hat.

*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

Das letzte vom VXML-Server gesendete VXML-Dokument enthält nur das Exit-Tag im Formular.

Dadurch wird das Gateway angewiesen, die VXML-Sitzung zu beenden.

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

Gateway beendet die VXML-Anwendung

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

Gateway trennt die Verbindung zum Anruf auf ISDN-Seite

*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

Gateway trennt RTSP-Sitzung mit ASR-Server

*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

Gateway trennt RTSP-Sitzung mit TTS-Server

*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

Zugehörige Informationen

- Unterstützung von Sprachtechnologie

- Produkt-Support für Sprach- und Unified Communications

- Fehlerbehebung bei Cisco IP-Telefonie

- Technischer Support und Dokumentation - Cisco Systems