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. Es wurde entwickelt, um Audio-Dialoge zu erstellen, die synthetisierte Sprache, die Erkennung gesprochener Wörter, die Erkennung von DTMF-Ziffern und aufgezeichnetes Audio ermöglichen. Der VXML-Server und die Clients verwenden das bekannte HTTP-Protokoll, um VXML-Dokumente/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:

1. Standalone-Service

2. CVP-Anrufsteuerung

3. Anrufwarteschlange und -weiterleitung

Synthetisierte Sprache und die Erkennung gesprochener Wörter/DTMF-Ziffern wird durch Text-to-Speech (TTS) und Automatic Speech Recognition Server (ASR) ermöglicht. Das IOS® VXML-Gateway kommuniziert über das Media Resource Control Protocol (MRCP) mit dem TTS/ASR-Server. 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 IOS Voice XML Gateway zu CVP-Anrufen in einer eigenständigen Dienstbereitstellung, die MRCPv2-TTS-/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(15)T1

- VXML-Server: CVP 4.0

- ASR/TTS-Server: Loquendo Speech Suite 7.0

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 Abschnitt verwendeten Befehlen zu erhalten.

Netzwerkdiagramm

In diesem Dokument wird die folgende Netzwerkeinrichtung verwendet:

Konfigurationen

In diesem Dokument werden folgende Konfigurationen verwendet:

VXML-Gateway-Konfiguration

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

ip host asr-en-us 172.18.110.76

ip host tts-en-us 172.18.110.76

!--- Define the Voice class URI to match !---- the SIP URI of ASR Server in the dial-peer

voice class uri  TTS sip

pattern tts@172.18.110.76

!--- Define the Voice class URI to match !---- the SIP URI of TTS server in the dial-peer

voice class uri  ASR sip

pattern asr@172.18.110.76

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

ivr prompt memory 15000

!--- Define the SIP URI of ASR !---- and TTS Server

ivr asr-server sip:asr@172.18.110.76

ivr tts-server sip:tts@172.18.110.76

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

!--- Configure a SIP Voip !---- dial-peer that will be used !---- as an outbound dial-peer when the !---Gateway initiates a MRCP overc SIP !---- session to the ASR server. !---- Codec = G711ulaw, DTMF-Relay !---- = RTP-NTE, No Vad

dial-peer voice 5 voip

session protocol sipv2

destination uri ASR

dtmf-relay rtp-nte

codec g711ulaw

no vad

!--- Configure a SIP Voip !---- dial-peer that will be used !---- as an outbound dial-peer when the !---Gateway initiates a MRCP !---- overc SIP session to the TTS server !--- Codec = G711ulaw, DTMF-Relay = RTP-NTE, !---- No Vad

dial-peer voice 6 voip

session protocol sipv2

destination uri TTS

dtmf-relay rtp-nte

codec g711ulaw

no vad

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 200 OK-Antwort zurück. Diese Antwort enthält ein VXML-Dokument/-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 Audioaufforderung wieder.

8. Wenn das VXML-Dokument einen Text für eine Audioaufforderung angibt, richtet das IOS-Gateway mithilfe von Dial-Peer 5 eine SIP-Sitzung mit tts@172.18.110.76 (TTS-Server) ein. Nach Einrichtung der SIP-Sitzung wird eine TCP-Verbindung zum TTS-Server über die TCP-Portnummer geöffnet, die in der SDP-Antwort von 200 OK der SIP INVITE-Nachricht angegeben ist. Diese TCP-Verbindung wird zum Austausch von MRCP-Nachrichten wie SPEAK, SPEAK-COMPLETE zwischen dem IOS-Gateway und dem TTS-Server verwendet.

Der TTS-Server sendet den G.711ulaw RTP-Audio-Stream an die IP-Adresse und die UDP-Portnummer, die vom Gateway im SDP der SIP-INVITE-Nachricht bereitgestellt werden.

9. Wenn das VXML-Dokument das Gateway zur Erkennung von DTMF-Ziffern und/oder gesprochenen Wörtern angibt, richtet das IOS-Gateway eine SIP-Sitzung mit asr@172.18.110.76 (ASR-Server) mit Dial-Peer 6 ein. Nach Einrichtung der SIP-Sitzung wird eine TCP-Verbindung zum ASR-Server über die TCP-Portnummer geöffnet, die in der SDP-Antwort von 200 OK der SIP INVITE-Nachricht angegeben ist. Diese TCP-Verbindung wird zum Austausch von MRCP-Nachrichten wie DEFINE GRAMMAR, COMPLETE, RECOGNIZE und RECOGNITION-COMPLETE zwischen dem IOS-Gateway und dem ASR-Server verwendet.

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 SIP 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 Ausführung des VXML-Dokuments sendet das Gateway eine HTTP POST-Anfrage (mit einem Satz von Parametern), wie im <Submit>-Tag des VXML-Dokuments bzw. 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 MRCPv2-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 Sprache anzeigen

11F8 : 160 333356110ms.

1 +10 pid:1 Answer 5555 active

dur 00:00:54 tx:1740/300598 rx:364/85472

Tele 3/0:D (160) [3/0.1]

tx:15145/15145/0ms None noise:-52

acom:6  i/0:-32/-64 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

Media call-legs: 0

Total call-legs: 1

- Übersicht über aktive Medien anzeigen

11F8 : 163 333360880ms.1

+60 pid:6 Originate

sip:tts@172.18.110.76:5060 active

dur 00:00:44 tx:0/0 rx:2212/353545

IP 172.18.110.76:10000 SRTP:

off rtt:0ms pl:

4485/0ms lost:0/1/0 delay:65/65/65ms

g711ulaw TextRelay: off

media inactive detected:n

media contrl rcvd:

n/a timestamp:n/a

long duration call detected:n

long duration

call duration:n/a timestamp:n/a11F8 :

164 333360890ms.1 +20 pid:5 Originate

sip:asr@172.18.110.76:5060 active

dur 00:00:44 tx:1687/297152 rx:0/0

IP 172.18.110.76:10002 SRTP:

off rtt:0ms

pl:6550/30ms lost:0/2/0 delay:65/65/65ms

g711ulaw TextRelay: off

media inactive detected:n media contrl

rcvd:n/a timestamp:n/a

long duration call detected:n

long duration

call duration:n/a timestamp:n/a

Telephony call-legs: 0

SIP call-legs: 0

H323 call-legs: 0

Call agent controlled call-legs: 0

SCCP call-legs: 0

Multicast call-legs: 0

Media call-legs: 2

Total call-legs: 2

- Anzeige des aktiven Detaillierungsgrads der mrcp-Client-Sitzung

No Of Active MRCP Sessions: 1

Call-ID: 0xA0 same: 0

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

Resource Type: Synthesizer

URL: sip:tts@172.18.110.76

Method In Progress: SPEAK

State: S_SYNTH_SPEAKING

Associated CallID: 0xA3

MRCP version: 2.0

Control Protocol: TCP Server IP Address:

172.18.110.76  Port: 51000

Data Protocol: RTP Server IP Address:

172.18.110.76  Port: 10000

Signalling URL: sip:tts@172.18.110.76:5060

Packets Transmitted: 0 (0 bytes)

Packets Received: 2265 (361968 bytes)

ReceiveDelay: 65     LostPackets: 0

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

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

Resource Type: Recognizer

URL: sip:asr@172.18.110.76

Method In Progress: RECOGNIZE

State: S_RECOG_RECOGNIZING

Associated CallID: 0xA4

MRCP version: 2.0

Control Protocol: TCP Server IP Address:

172.18.110.76  Port: 51001

Data Protocol: RTP Server IP Address:

172.18.110.76  Port: 10002

Packets Transmitted: 1791 (313792 bytes)

Packets Received: 0 (0 bytes)

ReceiveDelay: 60     LostPackets: 0

- VoIP-RTP-Verbindungen anzeigen

VoIP RTP active connections :

No. CallId     dstCallId  LocalRTP

RmtRTP LocalIP

RemoteIP

1   163        160        18964

10000  14.1.16.25

172.18.110.76

2   164        160        23072

10002  14.1.16.25

172.18.110.76

Found 2 active RTP connections

- 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     86400       48           1505

0

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

Fehlerbehebung

Dieser Abschnitt enthält Informationen zur Fehlerbehebung in Ihrer 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.

Hinweis: Dies sind die Befehle, die zum Konfigurieren des Gateways verwendet werden, um die Debugging im Protokollierungspuffer des Gateways zu speichern:

- Dienstzeitstempel Debugdatetime msec

- Dienstfolge

- Keine Protokollierungskonsole

- Protokollierung gepuffert 500000 Debugging

- Klarsichtprotokoll

Die folgenden Debugbefehle werden zur Fehlerbehebung bei der Konfiguration verwendet:

- debug isdn q931

- debuggen voip ccapi inout

- debuggen voip application vxml default

- debuggen voip application vxml dump

- debuggen ccsip meldung

- debuggen mrcp detail

- HTTP-Debugclient alle

- debug voip rtp session nte benanntes event

Debugausgabe

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

1. Das Gateway empfängt einen eingehenden Anruf vom PSTN.

2. Das Gateway entspricht dem eingehenden Dial-Peer 1.

3. Der Anruf wird an den Apothekendienst weitergeleitet.

4. Der Anruf wird auf ISDN-Seite verbunden.

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

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

7. Das Gateway empfängt eine 200-OK-Nachricht vom VXML-Server. Der Nachrichtentext dieser Antwort enthält das VXML-Dokument (1). Dieses VXML-Dokument teilt dem Gateway die Mediendatei Welcome-1.wav mit, die sich auf einem Medienserver befindet.

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 HTTP-Nachrichtentext.

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

11. Das Gateway erhält 200 OK für seine HTTP-POST-Anfrage. Der Nachrichtentext enthält das VXML-Dokument (2). In diesem VXML-Dokument wird das Gateway aufgefordert, "Vielen Dank für Ihren Anruf bei der Audium Pharmacacy" zu spielen. Beachten Sie, dass diese Eingabeaufforderung von einem Text to Speech Server synthetisiert werden muss.

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

13. Das Gateway erhält eine 200-OK-Antwort für die 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 "Refill", "2" oder "Apotheker" zu sagen. Die Aufforderungen werden von einem Text-to-Speech-Server synthetisiert. Die Eingaben (Sprache / DTMF) werden mit einem automatischen Spracherkenner erkannt.

14. Gateway erstellt die Grammatiken, die für die DTMF-/Spracherkennung verwendet werden. Diese Grammatiken werden dann an den ASR-Server gesendet, sobald das Gateway eine Sitzung mit dem ASR-Server aufbaut.

15. Das Gateway führt eine Dial-Peer-Suche durch, um eine SIP-Sitzung mit dem Text-to-Speech-Server einzurichten. Der ausgehende Dial-Peer 6 wird zugeordnet.

16. Gateway sendet eine SIP INVITE-Nachricht an TTS-Server. Das SDP der INVITE-Nachricht enthält Medieninformationen für den Audio-Stream und die MRCPv2-Anwendung (Speechsynth-Kanal).

17. Das Gateway führt eine DFÜ-Peer-Suche durch, um eine SIP-Sitzung mit dem automatischen Spracherkennungsserver einzurichten. Ausgehender Dial-Peer 5 wird zugeordnet.

18. Gateways senden eine SIP-INVITE-Nachricht an den ASR-Server. Das SDP enthält die Medieninformationen für den Audio-Stream, das DTMF-Relay und die MRCPv2-Anwendung (Speechback-Kanal).

19. Das Gateway erhält eine 200-OK-Antwort (für SIP INVITE) vom ASR-Server. Das SDP der SIP-INVITE-Nachricht gibt Folgendes an:

- Der G711ulaw-Codec, die IP-Adresse und die RTP-Portnummern für den Audio-Stream

- Das Richtungsattribut dieses RTP-Streams: "recvonly"

- RTP-NTE-basierter DTMF-Relay

- Die TCP-Portnummer (51001), die vom Gateway zum Einrichten einer MRCPv2-Sitzung mit dem ASR-Server verwendet wird.

20. Gateway sendet SIP ACK an den ASR-Server, und die SIP-Sitzung für die automatische Spracherkennung wird zwischen dem Gateway und dem ASR-Server eingerichtet.

21. Gateway sendet eine "DEFINE-GRAMMER"-MRCP-Anfrage an den ASR-Server. (Hier wird nur eine Anfrage angezeigt.)

22. Das Gateway erhält eine 200 VOLLSTÄNDIGE Antwort auf seine DEFINE-GRAMMAR-Anfrage.

23. Das Gateway erhält eine 200-OK-Antwort (für SIP INVITE) vom TTS-Server. Das SDP der SIP-INVITE-Nachricht gibt Folgendes an:

- Der G711ulaw-Codec, die IP-Adresse und die RTP-Portnummern für den Audio-Stream

- Das richtung-Attribut dieses RTP-Streams:"sendonly"

- RTP-NTE-basierter DTMF-Relay

- Die TCP-Portnummer (51000), die vom Gateway zum Einrichten einer MRCPv2-Sitzung mit dem TTS-Server verwendet wird.

24. Gateway sendet SIP ACK an den TTS-Server, und die SIP-Sitzung für Text-to-Speech wird zwischen Gateway und TTS-Server eingerichtet.

25. Gateway sendet eine "RECOGNIZE"-MRCP-Anfrage an ASR-Server, um die Erkennung von DTMF/gesprochenen Wörtern zu starten.

26. Der ASR-Server sendet eine "IN PROGRESS"-Antwort (für eine Anforderung zur ERKENNUNG) an das Gateway.

27. Gateway beendet den Download der Mediendatei Welcome-1.wav, speichert sie im Cache und gibt die Aufforderung an den Anrufer weiter.

28. Gateway sendet eine "SPEAK"-MRCP-Anfrage an den TTS-Server, um die Aufforderung "Vielen Dank für Ihren Anruf" abzuspielen.

29. Der TTS-Server sendet eine "IN-PROGRESS"-Antwort auf die SPEAK-Anfrage.

30. Der TTS-Server sendet eine "SPEAK-COMPLETE"-Meldung, nachdem er die Aufforderung "Vielen Dank für Ihren Anruf" gesprochen hat.

31. Gateway sendet eine "SPEAK"-MRCP-Anfrage an den TTS-Server, um die Eingabeaufforderung "Menu" (Menü) abzuspielen (Eingabe 1, Say Refil/Eingabe 2 oder Say Apotheker). (Die Debug-Ausgaben werden nicht angezeigt.)

32. Der TTS-Server sendet eine IN-PROGRESS-, SPEAK-COMPLETE-Nachricht und schließt die Wiedergabe der Eingabeaufforderung ab. (Die Debug-Ausgaben werden nicht angezeigt.)

33. Der PSTN-Anrufer gibt "1" ein, um "Refill" auszuwählen. Gateway sendet diese Ziffer als RTP-NTE-Ereignis an den ASR-Server.

34. Der ASR-Server sendet eine "RECOGNITION-COMPLETE"-Nachricht an das Gateway, um das Gateway darüber zu informieren, dass es eines der angeforderten Ereignisse erkannt hat (in diesem Fall Ziffer 1).

35. Nachdem eine Erkennungsbenachrichtigung vom ASR-Server empfangen wurde, sendet das VXML-Gateway eine HTTP-POST-Anfrage, wie im SUBMIT-Tag des VXML-Dokuments (3) angegeben. Diese POST-Anforderung informiert den VXML-Server, dass die Ziffer 1 vom PSTN-Anrufer eingegeben wurde.

36. Der VXML-Server sendet dann ein weiteres VXML-Dokument, in dem der Anrufer aufgefordert wird, das Rezept hier einzugeben. (Die Debug-Ausgaben werden nicht angezeigt.)

37. Gateway sendet die MRCP-Nachricht an TTS, um die Aufforderungen zu sprechen. (Die Debug-Ausgaben werden nicht angezeigt, ähneln jedoch den Schritten 28-30.)

38. Gateway sendet die MRCP-Nachricht an ASR, um die vom Benutzer gesprochene vierstellige Verschreibungsnummer zu ermitteln. (Die Debug-Ausgaben werden nicht angezeigt, ähneln jedoch den Schritten 25-26.)

39. Der ASR erkennt die vierstellige Verschreibungsnummer und sendet eine "RECOGNITION-COMPLETE"-MRCP-Nachricht an das IOS VXML-Gateway.

40. Das Gateway informiert den VXML-Server über die Verschreibungsnummer, indem es eine HTTP POST-Anfrage sendet. (Die Debug-Ausgaben werden nicht angezeigt, ähneln jedoch Schritt 35.)

41. Der VXML-Server sendet VXML-Seiten, um die Abholzeit zu erfassen und den Anrufer darüber zu informieren, dass das Rezept zur Abholung bereit ist. Das Gateway führt diese Seiten durch Interaktionen mit dem TTS- und ASR-Server aus. (Die Debug-Ausgaben werden nicht angezeigt.)

42. Das endgültige VXML-Dokument, das vom VXML-Server gesendet wird, enthält nur das <exit\>-Tag im <form>. Dadurch wird das Gateway angewiesen, die VXML-Sitzung zu beenden.

43. Das Gateway beendet die VXML-Anwendung.

44. Das Gateway trennt die mit dem ASR-Server eingerichtete SIP-Sitzung.

45. Das Gateway trennt die mit dem TTS-Server eingerichtete SIP-Sitzung.

46. Das Gateway trennt den Anruf auf ISDN-Seite.

Eingehender Anruf vom PSTN

*Jan 18 03:34:52.735: ISDN Se3/0:23

Q931: RX <- SETUP pd = 8  callref = 0x005A

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

*Jan 18 03:34:52.735: //-1/2AEE8C2A801C/

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

*Jan 18 03:34:52.735:

//-1/2AEE8C2A801C/

CCAPI/cc_api_call_setup_ind_common:

Interface=0x664B4BA4, 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

*Jan 18 03:34:52.739:

//127/2AEE8C2A801C/CCAPI

/cc_process_call_setup_ind:

>>>>CCAPI handed cid 127 with tag 1 to app

"_ManagedAppProcess_Pharmacy"

*Jan 18 03:34:52.739:

//127/2AEE8C2A801C/CCAPI/ccCallSetupAck:

Call Id=127

Anruf wird auf ISDN-Seite verbunden

*Jan 18 03:34:52.739:

ISDN Se3/0:23 Q931: TX ->

CONNECT pd = 8  callref =

0x805A

*Jan 18 03:34:52.739:

//127/2AEE8C2A801C/CCAPI/ccCallHandoff:

Silent=FALSE, Application=0x663106C4,

Conference Id=0xFFFFFFFF

*Jan 18 03:34:52.743: //127//VXML:/Open_CallHandoff:

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

*Jan 18 03:34:52.755:

//127/2AEE8C2A801C/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>:

*Jan 18 03:34:52.799: //127/2AEE8C2A801C/VXML

:/vxml_expr_eval:

*Jan 18 03:34:52.863: //127/2AEE8C2A801C/VXML

:/vxml_jse_global_switch:

switch to scope(application)

<var>: namep=handoffstring

expr=session.handoff_string

*Jan 18 03:34:52.867: //127/2AEE8C2A801C/VXML

:/vxml_expr_eval:

expr=(var handoffstring=session.

handoff_string)

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

*Jan 18 03:34:52.867: //127/2AEE8C2A801C/VXML

:/vxml_expr_eval:

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

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

*Jan 18 03:34:52.867: //127/2AEE8C2A801C/VXML

:/vxml_expr_eval:

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

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

*Jan 18 03:34:52.867: //127/2AEE8C2A801C/VXML

:/vxml_expr_eval:

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

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

*Jan 18 03:34:52.867: //127/2AEE8C2A801C/VXML

:/vxml_expr_eval:

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

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

*Jan 18 03:34:52.867: //127/2AEE8C2A801C/VXML

:/vxml_expr_eval:

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

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

*Jan 18 03:34:52.867: //127/2AEE8C2A801C/VXML

:/vxml_expr_eval:

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

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

*Jan 18 03:34:52.867: //127/2AEE8C2A801C/VXML

:/vxml_expr_eval:

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

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

*Jan 18 03:34:52.867: //127/2AEE8C2A801C/VXML

:/vxml_expr_eval:

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

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

*Jan 18 03:34:52.867: //127/2AEE8C2A801C/VXML

:/vxml_expr_eval:

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

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

*Jan 18 03:34:52.867: //127/2AEE8C2A801C/VXML

:/vxml_expr_eval:

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

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

*Jan 18 03:34:52.871: //127/2AEE8C2A801C/VXML

:/vxml_expr_eval:

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

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

*Jan 18 03:34:52.871: //127/2AEE8C2A801C/VXML

:/vxml_expr_eval:

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

<var>: namep=handoffExit

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

*Jan 18 03:34:52.875:

//127//HTTPC:/httpc_write_stream:

Client write buffer fd(3):

GET /CVP/Server?application=

GoodPrescriptionRefillApp7&callid=

2AEE8C2A-0AFB11D6-801C0013-

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

5&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, tex

t/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 teilt dem Gateway die Mediendatei Welcome-1.wav mit, die sich auf einem Medienserver befindet.

*Jan 18 03:34:52.883: processing server

rsp msg: msg(67CA63A8)

URL:http://172.18.110.75:7000/CVP/

Server?application=GoodPrescription

RefillApp7&callid=2AEE8C2A-0AFB11D6-801C0013

-803E8C8E&session.connection.

remote.uri=5555&session.connection.local.

uri=5555, fd(3):

*Jan 18 03:34:52.883: Request msg:

GET /CVP/Server?application=

GoodPrescriptionRefillApp7&callid=

2AEE8C2A-0AFB11D6-801C0013-803E8C8

E&session.connection.remote.

uri=5555&session

.connection.local.uri=5555 HTTP/1.1

*Jan 18 03:34:52.883:

Message Response Code: 200

*Jan 18 03:34:52.883:

Message Rsp Decoded Headers:

*Jan 18 03:34:52.883:

Date:Mon, 30 Apr 2007 16:58:39 GMT

*Jan 18 03:34:52.883:

Content-Type:text/xml;

charset=ISO-8859-1

*Jan 18 03:34:52.883:

Connection:close

*Jan 18 03:34:52.883:

Set-Cookie:JSESSIONID=

BBCE0F948ADFDB720497F587A7997538;

Path=/CVP

*Jan 18 03:34:52.883: headers:

*Jan 18 03:34:52.883: HTTP/1.1 200 OK

Server: Apache-Coyote/1.1

Set-Cookie: JSESSIONID=BBCE0F948ADF

DB720497F587A7997538; Path=/CVP

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

Date: Mon, 30 Apr 2007 16:58:39 GMT

Connection: close

*Jan 18 03:34:52.883: body:

*Jan 18 03:34:52.883: <?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.getEla

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

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

t/html, audio/basic, audio/wav,

multipart/form-data,

application/octet-stream

User-Agent: Cisco-IOS-C5400/12.4

Gateway empfängt 200 OK vom Medienserver und empfängt den Inhalt des Welcome-1.wav im HTTP-Nachrichtentext

*Jan 18 03:34:55.647:

//127//HTTPC:/httpc_socket_read:

*Jan 18 03:34:55.647:

read data from the socket 3

: first 400 bytes of data:

HTTP/1.1 200 OK

Content-Length: 26450

Content-Type: audio/wav

Last-Modified:

Mon, 30 Apr 2007 15:36:51 GMT

Accept-Ranges: bytes

ETag: "e0c1445f3d8bc71:2d6"

Server: Microsoft-IIS/6.0

Date: Mon, 30 Apr 2007 16:58:42 GMT

Connection: close

RIFFJg(Unprintable char...)

0057415645666D7420120001010401

F00401F00108000666163744000176700

64617461176700FFFFFF807

FFFFFFF80FFFFFF80F

(other hex information not shown).

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

ADFDB720497F587A7997538; $Path=/CVP

Connection: close

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

application/vxml,

application/x-vxml,

application/voicexml,

application/x-voicexml,

text/plain, tex

t/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 POST-HTTP-Anfrage

Der Nachrichtentext enthält das VXML-Dokument (2). Im VXML-Dokument wird das Gateway aufgefordert, "Danke, dass Sie die Audium Pharacy-Klinik angerufen haben" abzuspielen. Beachten Sie, dass diese Eingabeaufforderung von einem Text to Speech Server synthetisiert werden muss.

*Jan 18 03:34:55.651:

processing server rsp msg:

msg(67CA6960)URL:

http://172.18.110.75:

7000/CVP/Server, fd(4):

*Jan 18 03:34:55.651: Request msg:

POST /CVP/Server HTTP/1.1

*Jan 18 03:34:55.651:

Message Response Code: 200

*Jan 18 03:34:55.651:

Message Rsp Decoded Headers:

*Jan 18 03:34:55.651:

Date:Mon, 30 Apr 2007 16:58:42 GMT

*Jan 18 03:34:55.651:

Content-Type:text/xml;

charset=ISO-8859-1

*Jan 18 03:34:55.651: Connection:close

*Jan 18 03:34:55.651: headers:

*Jan 18 03:34:55.651: HTTP/1.1 200 OK

Server: Apache-Coyote/1.1

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

Date: Mon, 30 Apr 2007 16:58:42 GMT

Connection: close

*Jan 18 03:34:55.655: body:

*Jan 18 03:34:55.655: <?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">

Thank you for calling Audium pharmacy.

</prompt>

<assign name="audium_vxmlLog" expr=

"audium_vxmlLog + '|||audio_group$$$'

+ 'initial_audio_group'

+ '^^^' + application.getEla

psedTime(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 (2) definiert.

*Jan 18 03:34:55.667:

//127//HTTPC:/httpc_write_stream:

Client write buffer fd(4):

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=

BBCE0F948ADFDB720497F587A7997538;

$Path=/CVP

Connection: close

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

application/vxml,

application/x-vxml, application/voicexml,

application/x-voicexml, text/plain, tex

t/html, audio/basic, audio/wav,

multipart/form-data,

application/octet-stream

User-Agent: Cisco-IOS-C5400/12.4

Gateway erhält eine 200 OK-Antwort 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, "Refill" zu sagen, oder "2" einzugeben oder "Apotheker" zu sagen. Die Aufforderungen werden von einem Text-to-Speech-Server synthetisiert. Die Eingaben (Sprache / DTMF) werden mit einem automatischen Spracherkenner erkannt.

*Jan 18 03:34:57.499:

processing server rsp msg:

msg(67CA6B48)URL:

http://172.18.110.75:7000/CVP/Server, fd(4):

*Jan 18 03:34:57.499: Request msg:

POST /CVP/Server HTTP/1.1

*Jan 18 03:34:57.499:

Message Response Code: 200

*Jan 18 03:34:57.499:

Message Rsp Decoded Headers:

*Jan 18 03:34:57.499:

Date:Mon, 30 Apr 2007 16:58:42 GMT

*Jan 18 03:34:57.499:

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

*Jan 18 03:34:57.499: Connection:close

*Jan 18 03:34:57.499: headers:

*Jan 18 03:34:57.499: HTTP/1.1 200 OK

Server: Apache-Coyote/1.1

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

Date: Mon, 30 Apr 2007 16:58:42 GMT

Connection: close

*Jan 18 03:34:57.499: body:

*Jan 18 03:34:57.499: ... Buffer too large

- truncated to (4096) len.

*Jan 18 03:34:57.499: <?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.getElapsedTime

(audium_element_start_time_millisecs)" />

<goto nextitem="choice_fld" />

</block>

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

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

<prompt bargein="true">Say refills or press 1.

Or.

Say pharmacist or press 2.</prompt>

<catch event="nomatch">

<prompt bargein="true">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>

<option value="refills" dtmf="1">

prescription</option>

<option value="refills">refills</option>

<option value="refills">

prescription refills</option>

<option value="refills">

refill my prescription</option>

<option value="refills">

I want to refill my prescription</option>

<option value="refills">

refills please</option>

<option value="Pharmacist"

dtmf="2">Pharmacist</option>

<option value="Pharmacist">

I want to speak to a pharmacist</option>

<option value="Pharmacist">

pharmacist please</option>

<filled>

<assign name="audium_vxmlLog"

expr="audium_vxmlLog

+ '|||utterance$$$' + choice_fld$.

utterance + '^^^'

+ application.getElapsedTime

(audium_element_start_time_millisecs)" />

<assign name="audium_vxmlLog"

expr="audium_vxmlLog

+ '|||inputmode$$$' + choice_fld$.

inputmode + '^^^'

+ application.getElapsedTime

(audium_element_start_time_millisecs)" />

<assign name="audium_vxmlLog"

expr="audium_vxmlLog

+ '|||interpretation$$$' + choice_fld + '^^^'

+ application.getElapsedTim

(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" />

<submit next="/CVP/Server" method="post"

namelist=" audium_vxmlLog confidence choice_fld" />

</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 Sitzung mit dem ASR-Server aufbaut.

*Jan 18 03:34:57.523:

//127//AFW_:/vapp_asr_change_server:

asr_server=sip:asr@172.18.110.76

*Jan 18 03:34:57.523: //127//AFW_

:/vapp_asr_define_grammar:

*Jan 18 03:34:57.523: //127//AFW_

:/vapp_asr_define_grammar:

grammar_id=session:option485@field.grammar

*Jan 18 03:34:57.523: //127//AFW_

:/vapp_asr_define_grammar:

xml_lang=en-us

*Jan 18 03:34:57.523: //127//AFW_

:/vapp_asr_define_grammar:

encoding_name=UTF-8

*Jan 18 03:34:57.523: //127//AFW_

:/vapp_asr_define_grammar:

remoteupdate=0

*Jan 18 03:34:57.523: //127//AFW_

:/vapp_asr_define_grammar:

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

<grammar version="1.0" xm

lns="http://www.w3.org/2001/06/grammar"

xml:lang="en-us"

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

prescription</rule></grammar>

*Jan 18 03:34:57.523: //-1//MRCP:/mrcp_get_ev:

****>Caller PC=0x61BE1F94, Count=339,

Event=0x63ACCCF0

*Jan 18 03:34:57.523: //127//AFW_

:/vapp_asr_define_grammar:

*Jan 18 03:34:57.523: //127//AFW_

:/vapp_asr_define_grammar:

grammar_id=session:option486@field.grammar

*Jan 18 03:34:57.523: //127//AFW_

:/vapp_asr_define_grammar:

encoding_name=UTF-8

*Jan 18 03:34:57.523: //127//AFW_

:/vapp_asr_define_grammar:

remoteupdate=0

*Jan 18 03:34:57.523: //127//AFW_

:/vapp_asr_define_grammar:

grammar=<?xml version="1.0"

encoding="UTF-8"?>

<grammar version="1.0" xm

lns="http://www.w3.org/2001/06/grammar"

mode="dtmf" root=

"root"><rule id="root" scope=

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

*Jan 18 03:34:57.523: //-1//MRCP:

/mrcp_get_ev:

****>Caller PC=0x61BE1F94, Count=340,

Event=0x63ACCAE8

*Jan 18 03:34:57.523: //127//AFW_

:/vapp_asr_define_grammar:

*Jan 18 03:34:57.523: //127//AFW_

:/vapp_asr_define_grammar:

grammar_id=session:option487@field.grammar

*Jan 18 03:34:57.523: //127//AFW_

:/vapp_asr_define_grammar:

xml_lang=en-us

*Jan 18 03:34:57.523: //127//AFW_

:/vapp_asr_define_grammar:

encoding_name=UTF-8

*Jan 18 03:34:57.523: //127//AFW_

:/vapp_asr_define_grammar:

remoteupdate=0

*Jan 18 03:34:57.523: //127//AFW_

:/vapp_asr_define_grammar:

grammar=<?xml version="1.0"

encoding="UTF-8"?>

<grammar version="1.0" xm

lns="http://www.w3.org/2001/06/grammar"

xml:lang="en-us"

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

refills</rule></grammar>

*Jan 18 03:34:57.523: //-1//MRCP

:/mrcp_get_ev:

****>Caller PC=0x61BE1F94, Count=341,

Event=0x63ACBC88

*Jan 18 03:34:57.523: //127//AFW_

:/vapp_asr_define_grammar:

*Jan 18 03:34:57.523: //127//AFW_

:/vapp_asr_define_grammar:

grammar_id=session:option488@field.grammar

*Jan 18 03:34:57.523: //127//AFW_

:/vapp_asr_define_grammar:

xml_lang=en-us

*Jan 18 03:34:57.523: //127//AFW_

:/vapp_asr_define_grammar:

encoding_name=UTF-8

*Jan 18 03:34:57.523: //127//AFW_

:/vapp_asr_define_grammar:

remoteupdate=0

*Jan 18 03:34:57.523: //127//AFW_

:/vapp_asr_define_grammar:

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

<grammar version="1.0" xm

lns="http://www.w3.org/2001/06/grammar"

xml:lang="en-us"

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

prescription refills</rule></grammar>

*Jan 18 03:34:57.523: //-1//MRCP:/mrcp_get_ev:

****>Caller PC=0x61BE1F94, Count=342,

Event=0x63ACBCB0

*Jan 18 03:34:57.523: //127//AFW_

:/vapp_asr_define_grammar:

*Jan 18 03:34:57.523: //127//AFW_

:/vapp_asr_define_grammar:

grammar_id=session:option489@field.grammar

*Jan 18 03:34:57.523: //127//AFW_

:/vapp_asr_define_grammar:

xml_lang=en-us

*Jan 18 03:34:57.523: //127//AFW_

:/vapp_asr_define_grammar:

encoding_name=UTF-8

*Jan 18 03:34:57.523: //127//AFW_

:/vapp_asr_define_grammar:

remoteupdate=0

*Jan 18 03:34:57.523: //127//AFW_

:/vapp_asr_define_grammar:

grammar=<?xml version="1.0"

encoding="UTF-8"?>

<grammar version="1.0" xm

lns="http://www.w3.org/2001/06/grammar" xml:

lang="en-us" root="root">

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

refill my prescription</rule><

/grammar>

*Jan 18 03:34:57.523: //-1//MRCP:/mrcp_get_ev:

****>Caller PC=0x61BE1F94,

Count=343, Event=0x63ACBCD8

*Jan 18 03:34:57.523: //127//AFW_

:/vapp_asr_define_grammar:

*Jan 18 03:34:57.523: //127//AFW_

:/vapp_asr_define_grammar:

grammar_id=session:option490@field.grammar

*Jan 18 03:34:57.523: //127//AFW_

:/vapp_asr_define_grammar:

xml_lang=en-us

*Jan 18 03:34:57.523: //127//AFW_

:/vapp_asr_define_grammar:

encoding_name=UTF-8

*Jan 18 03:34:57.523: //127//AFW_

:/vapp_asr_define_grammar:

remoteupdate=0

*Jan 18 03:34:57.523: //127//AFW_

:/vapp_asr_define_grammar:

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

<grammar version="1.0" xm

lns="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>

*Jan 18 03:34:57.523: //-1//MRCP:/mrcp_get_ev:

****>Caller PC=0x61BE1F94, Count=344,

Event=0x63ACBD00

*Jan 18 03:34:57.523: //127//AFW_

:/vapp_asr_define_grammar:

*Jan 18 03:34:57.523: //127//AFW_

:/vapp_asr_define_grammar:

grammar_id=session:option491@field.grammar

*Jan 18 03:34:57.523: //127//AFW_

:/vapp_asr_define_grammar:

xml_lang=en-us

*Jan 18 03:34:57.523: //127//AFW_

:/vapp_asr_define_grammar:

encoding_name=UTF-8

*Jan 18 03:34:57.523: //127//AFW_

:/vapp_asr_define_grammar:

remoteupdate=0

*Jan 18 03:34:57.523: //127//AFW_

:/vapp_asr_define_grammar:

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

<grammar version="1.0" xm

lns="http://www.w3.org/2001/06/grammar"

xml:lang="en-us"

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

refills please</rule></grammar

>

*Jan 18 03:34:57.523: //-1//MRCP:/mrcp_get_ev:

****>Caller PC=0x61BE1F94, Count=345,

Event=0x63ACBD28

*Jan 18 03:34:57.523: //127//AFW_

:/vapp_asr_define_grammar:

*Jan 18 03:34:57.523: //127//AFW_

:/vapp_asr_define_grammar:

grammar_id=session:option492@field.grammar

*Jan 18 03:34:57.523: //127//AFW_

:/vapp_asr_define_grammar:

xml_lang=en-us

*Jan 18 03:34:57.523: //127//AFW_

:/vapp_asr_define_grammar:

encoding_name=UTF-8

*Jan 18 03:34:57.523: //127//AFW_

:/vapp_asr_define_grammar:

remoteupdate=0

*Jan 18 03:34:57.523: //127//AFW_

:/vapp_asr_define_grammar:

grammar=<?xml version="1.0"

encoding="UTF-8"?>

<grammar version="1.0" xm

lns="http://www.w3.org/2001/06/grammar"

xml:lang="en-us"

root="root"><rule id="root"

scope="public"> Pharmacist

</rule></grammar>

*Jan 18 03:34:57.523: //-1//MRCP:/mrcp_get_ev:

****>Caller PC=0x61BE1F94, Count=346,

Event=0x63ACBB20

*Jan 18 03:34:57.523: //127//AFW_

:/vapp_asr_define_grammar:

*Jan 18 03:34:57.523: //127//AFW_

:/vapp_asr_define_grammar:

grammar_id=session:option493@field.grammar

*Jan 18 03:34:57.523:

//127//AFW_:/vapp_asr_define_grammar:

encoding_name=UTF-8

*Jan 18 03:34:57.523:

//127//AFW_:/vapp_asr_define_grammar:

remoteupdate=0

*Jan 18 03:34:57.523:

//127//AFW_:/vapp_asr_define_grammar:

grammar=<?xml version="1.0"

encoding="UTF-8"?>

<grammar version="1.0" xm

lns="http://www.w3.org/2001/06/grammar"

mode="dtmf" root="root">

<rule id="root" scope=

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

*Jan 18 03:34:57.523: //-1//MRCP:/mrcp_get_ev:

****>Caller PC=0x61BE1F94,

Count=347, Event=0x63ACBD50

*Jan 18 03:34:57.523:

//127//AFW_:/vapp_asr_define_grammar:

*Jan 18 03:34:57.523:

//127//AFW_:/vapp_asr_define_grammar:

grammar_id=session:

option494@field.grammar

*Jan 18 03:34:57.523: //127//AFW_

:/vapp_asr_define_grammar:

xml_lang=en-us

*Jan 18 03:34:57.523: //127//AFW_

:/vapp_asr_define_grammar:

encoding_name=UTF-8

*Jan 18 03:34:57.523: //127//AFW_

:/vapp_asr_define_grammar:

remoteupdate=0

*Jan 18 03:34:57.523: //127//AFW_

:/vapp_asr_define_grammar:

grammar=<?xml version="1.0"

encoding="UTF-8"?>

<grammar version="1.0" xm

lns="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>

*Jan 18 03:34:57.523: //-1//MRCP:/mrcp_get_ev:

****>Caller PC=0x61BE1F94,

Count=348, Event=0x63ACBFF8

*Jan 18 03:34:57.523: //127//AFW_

:/vapp_asr_define_grammar:

*Jan 18 03:34:57.527: //127//AFW_

:/vapp_asr_define_grammar:

grammar_id=session:option495@field.grammar

*Jan 18 03:34:57.527: //127//AFW_

:/vapp_asr_define_grammar:

xml_lang=en-us

*Jan 18 03:34:57.527: //127//AFW_

:/vapp_asr_define_grammar:

encoding_name=UTF-8

*Jan 18 03:34:57.527: //127//AFW_

:/vapp_asr_define_grammar:

remoteupdate=0

*Jan 18 03:34:57.527: //127//AFW_

:/vapp_asr_define_grammar:

grammar=<?xml version="1.0"

encoding="UTF-8"?>

<grammar version="1.0" xm

lns="http://www.w3.org/2001/06/grammar"

xml:lang="en-us"

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

pharmacist please

</rule></grammar>

*Jan 18 03:34:57.527:

//-1//MRCP:/mrcp_get_ev:

****>Caller PC=0x61BE1F94,

Count=349, Event=0x63ACC048

*Jan 18 03:34:57.527: //127//AFW_

:/vapp_asr_define_grammar:

*Jan 18 03:34:57.527:

//127//AFW_:/vapp_asr_define_grammar:

grammar_id=session:link496@document.grammar

*Jan 18 03:34:57.527:

//127//AFW_:/vapp_asr_define_grammar:

xml_lang=en-us

*Jan 18 03:34:57.527:

//127//AFW_:/vapp_asr_define_grammar:

encoding_name=UTF-8

*Jan 18 03:34:57.527:

//127//AFW_:/vapp_asr_define_grammar:

remoteupdate=0

*Jan 18 03:34:57.527:

//127//AFW_:/vapp_asr_define_grammar:

grammar=<?xml version="1.0"

encoding="UTF-8"?>

<grammar xmlns="http://ww

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

<item>agent</item>

<item>pharmacist</item>

</one-of>

</rule>

</grammar>

*Jan 18 03:34:57.527: //-1//MRCP:/mrcp_get_ev:

****>Caller PC=0x61BE1F94, Count=350,

Event=0x63ACC098

*Jan 18 03:34:57.527:

//127//AFW_:/vapp_asr_define_grammar:

*Jan 18 03:34:57.527:

//127//AFW_:/vapp_asr_define_grammar:

grammar_id=session:link497@document.grammar

*Jan 18 03:34:57.527:

//127//AFW_:/vapp_asr_define_grammar:

xml_lang=en-us

*Jan 18 03:34:57.527:

//127//AFW_:/vapp_asr_define_grammar:

encoding_name=UTF-8

*Jan 18 03:34:57.527:

//127//AFW_:/vapp_asr_define_grammar:

remoteupdate=0

*Jan 18 03:34:57.527:

//127//AFW_:/vapp_asr_define_grammar:

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

<grammar xmlns="http://ww

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

<item>agent</item>

<item>pharmacist</item>

</one-of>

</rule>

</grammar>

*Jan 18 03:34:57.527:

//-1//MRCP:/mrcp_get_ev:

****>Caller PC=0x61BE1F94, Count=351,

Event=0x63ACC0C0

*Jan 18 03:34:57.527:

//127//AFW_:/vapp_asr_define_grammar:

*Jan 18 03:34:57.527:

//127//AFW_:/vapp_asr_define_grammar:

grammar_id=session:help@grammar

*Jan 18 03:34:57.527:

//127//AFW_:/vapp_asr_define_grammar:

xml_lang=en-us

*Jan 18 03:34:57.527:

//127//AFW_:/vapp_asr_define_grammar:

encoding_name=UTF-8

*Jan 18 03:34:57.527:

//127//AFW_:/vapp_asr_define_grammar:

remoteupdate=1

*Jan 18 03:34:57.527:

//127//AFW_:/vapp_asr_define_grammar:

grammar=<?xml version="1.0"

encoding="UTF-8"?>

<grammar version="1.0" xm

lns="http://www.w3.org/2001/06/grammar"

xml:lang="en-us"

root="root"><rule id="root"

scope="public">

help</rule></grammar>

*Jan 18 03:34:57.527:

//-1//MRCP:/mrcp_get_ev:

****>Caller PC=0x61BE1F94, Count=352,

Event=0x63ACBEE0

*Jan 18 03:34:57.527: //127//AFW_:/vapp_asr:

grammar_id=session:option485@field.grammar

grammar_id=session:option486@field.grammar

grammar_id=session:option487@field.grammar

grammar_id=session:option488@field.grammar

grammar_id=session:option489@field.grammar

grammar_id=session:option490@field.grammar

grammar_id=session:option491@field.grammar

grammar_id=session:option492@field.grammar

grammar_id=session:option493@field.grammar

grammar_id=session:option494@field.grammar

grammar_id=session:option495@field.grammar

grammar_id=session:link496@document.grammar

grammar_id=session:link497@document.grammar

grammar_id=session:help@grammar

Gateway führt eine DFÜ-Peer-Suche durch, um eine SIP-Sitzung mit dem Text-to-Speech-Server einzurichten.

Der ausgehende Dial-Peer 6 wird zugeordnet.

*Jan 18 03:34:57.527:

//-1/xxxxxxxxxxxx/CCAPI/ccCallSetupRequest:

Destination Pattern=,

Called Number=sip:tts@172.18.110.76,

Digit Strip=FALSE

*Jan 18 03:34:57.527:

//-1/xxxxxxxxxxxx/CCAPI/ccCallSetupRequest:

Calling Number=5555(TON=Unknown, NPI=Unknown,

Screening=Not Screened,

Presentation=Allowed),

Called Number=sip:tts@172.18.110.76(TON=Unknown,

NPI=ISDN),

Redirect Number=, Display Info=

Account Number=, Final Destination Flag=TRUE,

Guid=2AEE8C2A-0AFB-11D6-801C-0013803E8C8E,

Outgoing Dial-peer=6

*Jan 18 03:34:57.531:

//-1/xxxxxxxxxxxx/CCAPI/cc

_api_display_ie_subfields:

ccCallSetupRequest:

cisco-username=

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

cisco-ani=5555

cisco-anitype=0

cisco-aniplan=0

cisco-anipi=0

cisco-anisi=0

dest=sip:tts@172.18.110.76

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

*Jan 18 03:34:57.531:

//-1/xxxxxxxxxxxx/CCAPI/

ccIFCallSetupRequestPrivate:

Interface=0x662CE538, Interface Type=3,

Destination=, Mode=0x0,

Call Params(Calling Number=5555,

(Calling Name=)(TON=Unknown,

NPI=Unknown, Screening=Not Screened,

Presentation=Allowed),

Called Number=sip:tts@172.18.110.76

(TON=Unknown, NPI=ISDN),

Calling Translated=FALSE,

Subscriber Type Str=RegularLine,

FinalDestinationFlag=TRUE,

Outgoing Dial-peer=6, Call Count On=FALSE,

Source Trkgrp Route Label=,

Target Trkgrp Route Label=,

tg_label_flag=0, Application Call Id=)

Gateway sendet eine SIP-INVITE an TTS-Server

Das SDP der INVITE-Nachricht enthält Medieninformationen für den Audio-Stream und die MRCPv2-Anwendung (Speechsynth-Kanal).

*Jan 18 03:34:57.531:

//-1/xxxxxxxxxxxx/SIP/Msg/ccsipDisplayMsg:

Sent:

INVITE sip:tts@172.18.110.76:5060 SIP/2.0

Via: SIP/2.0/UDP 14.1.16.25:

5060;branch=z9hG4bK931F1D

Remote-Party-ID: <sip:5555@14.1.16.25>;

party=calling;screen=no;privacy=off

From: <sip:5555@14.1.16.25>

;tag=E54D43C-1EC4

To: sip:tts@172.18.110.76

Date: Fri, 18 Jan 2002 03:34:57 GMT

Call-ID: 2DCA5BEF-AFB11D6-80D3DC30

-3585E95A@14.1.16.25

Supported: 100rel,timer,

resource-priority,replaces

Min-SE:  1800

Cisco-Guid: 720276522-184226262

-2149318675-2151582862

User-Agent: Cisco-SIPGateway/IOS-12.x

Allow: INVITE, OPTIONS, BYE,

CANCEL, ACK, PRACK, UPDATE,

REFER, SUBSCRIBE, NOTIFY, INFO, REGISTER

CSeq: 101 INVITE

Max-Forwards: 70

Timestamp: 1011324897

Contact: <sip:5555@14.1.16.25:5060>

Expires: 180

Allow-Events: telephone-event

Content-Type: application/sdp

Content-Disposition:

session;handling=required

Content-Length: 358

v=0

o=CiscoSystemsSIP-GW-UserAgent

6021 4611 IN IP4 14.1.16.25

s=SIP Call

c=IN IP4 14.1.16.25

t=0 0

m=audio 16984 RTP/AVP 0 101

c=IN IP4 14.1.16.25

a=rtpmap:0 PCMU/8000

a=rtpmap:101 telephone-event/8000

a=fmtp:101 0-16

a=ptime:20

a=recvonly

a=mid:1

m=application 9 TCP/MRCPv2

a=setup:active

a=connection:new

a=resource:speechsynth

a=cmid:1

Gateway führt eine DFÜ-Peer-Suche durch, um eine SIP-Sitzung mit dem ASR-Server einzurichten.

Der ausgehende Dial-Peer 5 wird zugeordnet.

*Jan 18 03:34:57.531:

//-1/xxxxxxxxxxxx/CCAPI/ccCallSetupRequest:

Destination Pattern=,

Called Number=sip:asr@172.18.110.76,

Digit Strip=FALSE

*Jan 18 03:34:57.531:

//-1/xxxxxxxxxxxx/CCAPI/ccCallSetupRequest:

Calling Number=5555(TON=Unknown, NPI=Unknown,

Screening=Not Screened, Presentation=Allowed),

Called Number=sip:asr@172.18.110.76

(TON=Unknown, NPI=ISDN),

Redirect Number=, Display Info=

Account Number=, Final Destination Flag=TRUE,

Guid=2AEE8C2A-0AFB-11D6-801C-0013803E8C8E,

Outgoing Dial-peer=5

*Jan 18 03:34:57.531:

//-1/xxxxxxxxxxxx/CCAPI/cc_api

_display_ie_subfields:

ccCallSetupRequest:

cisco-username=

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

cisco-ani=5555

cisco-anitype=0

cisco-aniplan=0

cisco-anipi=0

cisco-anisi=0

dest=sip:asr@172.18.110.76

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

*Jan 18 03:34:57.535:

//-1/xxxxxxxxxxxx/CCAPI

/ccIFCallSetupRequestPrivate:

Interface=0x662CE538, Interface Type=3,

Destination=, Mode=0x0,

Call Params(Calling Number=5555,

(Calling Name=)(TON=Unknown,

NPI=Unknown, Screening=Not Screened,

Presentation=Allowed),

Called Number=sip:asr@172.18.110.76

(TON=Unknown, NPI=ISDN),

Calling Translated=FALSE,

Subscriber Type Str=RegularLine,

FinalDestinationFlag=TRUE,

Outgoing Dial-peer=5, Call Count On=FALSE,

Source Trkgrp Route Label=,

Target Trkgrp Route Label=,

tg_label_flag=0, Application Call Id=)

Gateways senden eine SIP-INVITE an ASR-Server

Das SDP enthält die Medieninformationen für den Audio-Stream, DTMF Relay. und MRCPv2-Anwendung (Speechback-Kanal).

*Jan 18 03:34:57.535:

//-1/xxxxxxxxxxxx/SIP/Msg/ccsipDisplayMsg:

Sent:

INVITE sip:asr@172.18.110.76:5060 SIP/2.0

Via: SIP/2.0/UDP

14.1.16.25:5060;branch=z9hG4bK94C0B

Remote-Party-ID: <sip:5555@14.1.16.25>;

party=calling;screen=no;privacy=off

From: <sip:5555@14.1.16.25>;tag=E54D440-1CDB

To: sip:asr@172.18.110.76

Date: Fri, 18 Jan 2002 03:34:57 GMT

Call-ID: 2DCAF817-AFB11D6

-80D5DC30-3585E95A@14.1.16.25

Supported: 100rel,timer,

resource-priority,replaces

Min-SE:  1800

Cisco-Guid: 720276522-184226262-

2149318675-2151582862

User-Agent: Cisco-SIPGateway/IOS-12.x

Allow: INVITE, OPTIONS, BYE, CANCEL,

ACK, PRACK, UPDATE,

REFER, SUBSCRIBE, NOTIFY, INFO, REGISTER

CSeq: 101 INVITE

Max-Forwards: 70

Timestamp: 1011324897

Contact: <sip:5555@14.1.16.25:5060>

Expires: 180

Allow-Events: telephone-event

Content-Type: application/sdp

Content-Disposition:

session;handling=required

Content-Length: 358

v=0

o=CiscoSystemsSIP-GW-UserAgent

6805 2057 IN IP4 14.1.16.25

s=SIP Call

c=IN IP4 14.1.16.25

t=0 0

m=audio 19994 RTP/AVP 0 101

c=IN IP4 14.1.16.25

a=rtpmap:0 PCMU/8000

a=rtpmap:101 telephone-event/8000

a=fmtp:101 0-16

a=ptime:20

a=sendonly

a=mid:1

m=application 9 TCP/MRCPv2

a=setup:active

a=connection:new

a=resource:speechrecog

a=cmid:1

Das Gateway erhält eine 200-OK-Antwort (für SIP INVITE) vom ASR-Server.

1. G711ulaw-Codec, IP-Adresse und RTP-Portnummern für den Audio-Stream.

2. Das Richtungsattribut dieses RTP-Streams lautet "recvonly".

3. RTP-NTE-basierter DTMF-Relay.

4. Die vom Gateway zu verwendende TCP-Portnummer (51001) für die Einrichtung einer MRCPv2-Sitzung mit dem ASR-Server.

*Jan 18 03:34:57.559:

//-1/xxxxxxxxxxxx/SIP/Msg/ccsipDisplayMsg:

Received:

SIP/2.0 200 OK

Via: SIP/2.0/UDP 14.1.16.25:5060;

branch=z9hG4bK94C0B

To: <sip:asr@172.18.110.76>;tag=a99d0500

From: <sip:5555@14.1.16.25>;tag=E54D440-1CDB

Call-ID: 2DCAF817-AFB11D6-80D5DC30-

3585E95A@14.1.16.25

CSeq: 101 INVITE

Contact: <sip:172.18.110.76:5060>

Content-Type: application/sdp

Content-Length: 342

v=0

o=MRCPv2Server 3386937590 3386937590

IN IP4 172.18.110.76

s=SIP Call

c=IN IP4 172.18.110.76

t=3386937590 0

m=audio 10002 RTP/AVP 0 101

a=rtpmap:0 PCMU/8000

a=rtpmap:101 telephone-event/8000

a=recvonly

m=application 51001 TCP/MRCPv2

a=connection:new

a=setup:passive

a=model:besteffort

a=channel:000023B846361276@speechrecog

Gateway sendet SIP ACK an ASR Server

Die SIP-Sitzung für den ASR wird zwischen dem Gateway und dem ASR-Server eingerichtet.

*Jan 18 03:34:57.563:

//-1/xxxxxxxxxxxx/SIP/Msg/ccsipDisplayMsg:

Sent:

ACK sip:172.18.110.76:5060 SIP/2.0

Via: SIP/2.0/UDP 14.1.16.25:5060;branch=z9hG4bK9520FA

From: <sip:5555@14.1.16.25>;tag=E54D440-1CDB

To: <sip:asr@172.18.110.76>;tag=a99d0500

Date: Fri, 18 Jan 2002 03:34:57 GMT

Call-ID: 2DCAF817-AFB11D6-80D5DC30-3585E95A@14.1.16.25

Max-Forwards: 70

CSeq: 101 ACK

Allow-Events: telephone-event

Content-Length: 0

Gateway sendet "DEFINE-GRAMMER"-MRCP-Anforderung an ASR-Server

Hier wird nur eine Anfrage angezeigt.

MRCP/2.0 446      DEFINE-GRAMMAR  1

Channel-Identifier: 000023B846361276@speechrecog

:

Speech-Language: en-us

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

:

Content-Type: application/srgs+xml

Content-Id: option485@field.grammar

Content-Length: 193

:

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

<grammar version="1.0"

mlns="http://www.w3.org/2001/06/grammar"

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

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

prescription</rule></grammar>

Gateway erhält eine 200 VOLLSTÄNDIGE Antwort auf seine DEFINE-GRAMMAR-Anfrage

*Jan 18 03:34:57.587: //-1//MRCP:/hash_get:

Table=mrcpv2_socket_connect_table, Key=0:

MRCP/2.0 80 1 200 COMPLETE

Channel-Identifier: 000023B846361276@speechrecog

Gateway erhält eine 200-OK-Antwort (für SIP INVITE) vom TTS-Server

Das SDP der SIP-INVITE-Nachricht gibt Folgendes an:

1. G711ulaw-Codec, IP-Adresse und RTP-Portnummern für den Audio-Stream.

2. Das Richtungsattribut dieses RTP-Streams lautet "sendonly".

3. RTP-NTE-basierter DTMF-Relay

4. Die vom Gateway zu verwendende TCP-Portnummer (51000) für die Einrichtung einer MRCPv2-Sitzung mit dem TTS-Server.

*Jan 18 03:34:57.591:

//-1/xxxxxxxxxxxx/SIP/Msg/ccsipDisplayMsg:

Received:

SIP/2.0 200 OK

Via: SIP/2.0/UDP 14.1.16.25:5060;

branch=z9hG4bK931F1D

To: <sip:tts@172.18.110.76>;tag=c1160600

From: <sip:5555@14.1.16.25>;tag=E54D43C-1EC4

Call-ID: 2DCA5BEF-AFB11D6-80D3DC30-

3585E95A@14.1.16.25

CSeq: 101 INVITE

Contact: <sip:172.18.110.76:5060>

Content-Type: application/sdp

Content-Length: 342

v=0

o=MRCPv2Server 3386937590 3386937590

IN IP4 172.18.110.76

s=SIP Call

c=IN IP4 172.18.110.76

t=3386937590 0

m=audio 10000 RTP/AVP 0 101

a=rtpmap:0 PCMU/8000

a=rtpmap:101 telephone-event/8000

a=sendonly

m=application 51000 TCP/MRCPv2

a=connection:new

a=setup:passive

a=model:besteffort

a=channel:000023EC46361276@speechsynth

Gateway sendet SIP ACK an TTS-Server

Die SIP-Sitzung für den Text-to-Speech wird zwischen dem Gateway und dem TTS-Server eingerichtet.

*Jan 18 03:34:57.595:

//-1/xxxxxxxxxxxx/SIP/

Msg/ccsipDisplayMsg:

Sent:

ACK sip:172.18.110.76:5060 SIP/2.0

Via: SIP/2.0/UDP 14.1.16.25:5060;

branch=z9hG4bK9626BC

From: <sip:5555@14.1.16.25>;tag=E54D43C-1EC4

To: <sip:tts@172.18.110.76>;tag=c1160600

Date: Fri, 18 Jan 2002 03:34:57 GMT

Call-ID: 2DCA5BEF-AFB11D6-80D3DC30

-3585E95A@14.1.16.25

Max-Forwards: 70

CSeq: 101 ACK

Allow-Events: telephone-event

Content-Length: 0

Gateway sendet "RECOGNIZE"-MRCP-Anforderung an ASR-Server

MRCP/2.0 987

RECOGNIZE  15

Channel-Identifier:

000023B846361276@speechrecog

:

Speech-Language: en-us

Confidence-Threshold: 0.40

Sensitivity-Level: 0.50

Speed-Vs-Accuracy: 0.50

Cancel-If-Queue: false

Dtmf-Interdigit-Timeout: 10000

Dtmf-Term-Timeout: 0

Dtmf-Term-Char: #

No-Input-Timeout: 60000

N-Best-List-Length: 1

Logging-Tag: 127:127

Accept-Charset: charset: utf-8

Content-Base:

http://172.18.110.75:7000/CVP/

Media-Type: audio/basic

Start-Input-Timers: false

:

Content-Type: text/uri-list

Content-Length: 453

:

session:option485@field.grammar

session:option486@field.grammar

session:option487@field.grammar

session:option488@field.grammar

session:option489@field.grammar

session:option490@field.grammar

session:option491@field.grammar

session:option492@field.grammar

session:option493@field.grammar

session:option494@field.grammar

session:option495@field.grammar

session:link496@document.grammar

session:link497@document.grammar

session:help@grammar

ASR-Server sendet "IN FORGRESS"-Antwort (für ERKENNUNGSANTRAG) an das Gateway

MRCP/2.0 84 15 200 IN-PROGRESS

Channel-Identifier:

000023B846361276@speechrecog

Gateway schließt den Download der Welcome-1.wav-Mediendatei ab

Sie speichert sie im Cache und gibt die Aufforderung an den Aufrufer weiter.

*Jan 18 03:35:04.335:

//127//HTTPC:/httpc_is_cached:

HTTPC_FILE_IS_CACHED

*Jan 18 03:35:04.335: //-1//HTTPC:

/httpc_set_cache_revoke_cb:

Registering revoke_callback(0x61CDD948)

+pcontext(0x63A7AAA8) for cach

ep(0x68734930)

*Jan 18 03:35:04.335: //127//AFW_:/vapp_driver:

evtID: 146 vapp record state: 0

*Jan 18 03:35:04.335: //127//AFW_:/vapp_play_done:

evID=146 reason=17,

protocol=5, status_code=0, dur=3291, rate=0

*Jan 18 03:35:04.335: //127/2AEE8C2A801C/VXML:

/vxml_media_done:

Gateway sendet die "SPEAK"-MRCP-Anforderung an den TTS-Server, um die Dankeschön-Aufforderung abzuspielen.

MRCP/2.0 376      SPEAK  1

Channel-Identifier:

000023EC46361276@speechsynth

:

Kill-On-Barge-In: true

Speech-Language: en-us

Logging-Tag: 127:127

Content-Base:

http://172.18.110.75:7000/CVP/

:

Content-Type: application/ssml+xml

Content-Length: 123

:

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

<speak version="1.0" xml:lang="en-us">

Thank you for calling Audium pharmacy.</speak>

Der TTS-Server sendet die "IN PROGRESS"-Antwort für die SPEAK-Anfrage.

MRCP/2.0 83 1 200 IN-PROGRESS

Channel-Identifier:

000023EC46361276@speechsynth

Der TTS-Server sendet die Meldung "SPEAK-COMPLETE" (SPEAK-COMPLETE), nachdem er die Dankeschön-Aufforderung gesprochen hat.

MRCP/2.0 141 SPEAK-COMPLETE 1 COMPLETE

Channel-Identifier:

000023EC46361276@speechsynth

Completion-Cause: 000 normal

Speech-Marker: ""

Der PSTN-Anrufer wählt "1" für "Nachfüllen" aus.

Gateway sendet diese Ziffer als RTP-NTE-Ereignis an den ASR-Server.

*Jan 18 03:35:12.583:

s=DSP d=VoIP payload 0x65 ssrc

0x15 sequence 0x1E9B timestamp 0x2FADCC60

*Jan 18 03:35:12.583:          Pt:101    Evt:1

Pkt:03 00 00  <Snd>>>

*Jan 18 03:35:12.587:

s=DSP d=VoIP payload 0x65 ssrc

0x15 sequence 0x1E9C timestamp 0x2FADCC60

*Jan 18 03:35:12.587:          Pt:101    Evt:1

Pkt:03 00 00  <Snd>>>

*Jan 18 03:35:12.631:

s=DSP d=VoIP payload 0x65 ssrc

0x15 sequence 0x1E9E timestamp 0x2FADCC60

*Jan 18 03:35:12.631:          Pt:101    Evt:1

Pkt:03 01 90  <Snd>>>

*Jan 18 03:35:12.683:

s=DSP d=VoIP payload 0x65 ssrc

0x15 sequence 0x1E9F timestamp 0x2FADCC60

*Jan 18 03:35:12.683:          Pt:101    Evt:1

Pkt:03 03 20  <Snd>>>

*Jan 18 03:35:12.703:

s=DSP d=VoIP payload 0x65 ssrc

0x15 sequence 0x1EA0 timestamp 0x2FADCC60

*Jan 18 03:35:12.703:          Pt:101    Evt:1

Pkt:83 03 38  <Snd>>>

*Jan 18 03:35:12.707:          s=DSP d=VoIP payload

0x65 ssrc 0x15 sequence 0x1EA1 timestamp 0x2FADCC60

*Jan 18 03:35:12.707:          Pt:101    Evt:1

Pkt:83 03 38  <Snd>>>

*Jan 18 03:35:12.711:          s=DSP d=VoIP payload

0x65 ssrc 0x15 sequence

0x1EA2 timestamp 0x2FADCC60

*Jan 18 03:35:12.711:          Pt:101    Evt:1

Pkt:83 03 38  <Snd>>>

ASR-Server sendet eine "ERKENNUNG - VOLLSTÄNDIG"-Nachricht an das Gateway

Dadurch wird das Gateway darüber informiert, dass es eines der angeforderten Ereignisse erkannt hat (in diesem Fall Ziffer 1).

MRCP/2.0 513

RECOGNITION-COMPLETE 15 COMPLETE

Channel-Identifier:

000023B846361276@speechrecog

Proxy-Sync-Id: 0B82553000000027

Completion-Cause: 000 success

Content-Type: application/nlsml+xml

Content-Length: 292

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

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

<interpretation grammar=

"session:option486@field.grammar"

confidence="0.000000">

<instance>

1

</instance>

<input mode="dtmf"

confidence="1.000000">

1

</input>

</interpretation>

</result>

Das VXML-Gateway erhält eine Benachrichtigung über die erfolgreiche Erkennung vom ASR-Server.

Nach Erhalt dieser Benachrichtigung sendet das VXML-Gateway eine HTTP-POST-Anfrage, wie im SUBMIT-Tag des VXML-Dokuments (3) angegeben. Diese POST-Anforderung informiert den VXML-Server, dass die Ziffer 1 vom PSTN-Anrufer eingegeben wurde.

*Jan 18 03:35:12.863:

//127/2AEE8C2A801C/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%

5E%5E4%7C%7C%7Cutterance$$$1%5E%5E%5E153

40%7C%7C%7Cinputmode

$$$dtmf%5E%5E%5E15344%7C%7C%7C

interpretation$$$refills%5E%5E%5E15344%7C

%7C%7Cconfidence$$$0%5E%5E%5E15344&confidence=

0&choice_fld=refills

len 258maxage -1 maxstale -1

*Jan 18 03:35:12.863: //127//AFW_:/vapp_bgpost:

url=http://172.18.110.75:7000/CVP/Server;

mime_type=application/x-www-form-urlencod

ed; len=258; iov_base=audium_vxmlLog=%7C%7C%7Caudio_

group$$$initial_audio_group

%5E%5E%5E4%7C%7C%7Cutterance

$$$1%5E%5E%5E15340%7C%7C

%7Cinputmode$$$dtmf%5E%5E%5E15344%

7C%7C%7Cinterpretation$$$refills

%5E%5E%5E15344%7C%7C%7Cconfidence$$$0

%5E%5E%5E15344&confidence=0&

choice_fld=refills

*Jan 18 03:35:12.931:

about to send data to the socket 3

: first 400 bytes of data:

POST /CVP/Server HTTP/1.1

Host: 172.18.110.75:7000

Content-Length: 258

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

Cookie: $Version=0; JSESSIONID=

BBCE0F948ADFDB720497F587A7997538;

$Path=/CVP

Connection: close

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

application/x-vxml,

application/voicexml, application/x-voicexml,

text/plain, tex

t/html, audio/basic, audio/wav, multipart/form-dat

Der ASR erkennt die vierstellige Abonnementnummer.

Der ASR sendet eine RECOGNITION-COMPLETE MRCP-Nachricht an das IOS VXML-Gateway.

MRCP/2.0 533

RECOGNITION-COMPLETE 21 COMPLETE

Channel-Identifier:

000023B846361276@speechrecog

Proxy-Sync-Id: 0B82553000000028

Completion-Cause: 000 success

Content-Type: application/nlsml+xml

Content-Length: 312

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

<result grammar=

"session:field498@field.grammar">

<interpretation grammar=

"session:field498@field.grammar"

confidence="0.738968">

<instance>

1234

</instance>

<input mode="speech"

confidence="0.752155">

one two three four

</input>

</interpretation>

</result>

The final VXML document sent by the

VXML server contains just the

<exit\> tag in the <form>

This tells the Gateway to

terminate the VXML session

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

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

*Jan 18 03:36:07.159:

processing server rsp msg:

msg(67CA85F8)URL:

http://172.18.110.75:7000/CVP/Server, fd(3):

*Jan 18 03:36:07.159: Request msg:

POST /CVP/Server HTTP/1.1

*Jan 18 03:36:07.159:

Message Response Code: 200

*Jan 18 03:36:07.159:

Message Rsp Decoded Headers:

*Jan 18 03:36:07.159: D

ate:Mon, 30 Apr 2007 16:59:53 GMT

*Jan 18 03:36:07.159:

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

*Jan 18 03:36:07.159: Connection:close

*Jan 18 03:36:07.159: Set-Cookie:

JSESSIONID=NULL;

Expires=Thu, 01-Jan-1970

00:00:10 GMT; Path=/CVP

*Jan 18 03:36:07.159: headers:

*Jan 18 03:36:07.159: 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: Mon, 30 Apr 2007 16:59:53 GMT

Connection: close

*Jan 18 03:36:07.159: body:

*Jan 18 03:36:07.159: <?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

*Jan 18 03:36:14.155:

//127/2AEE8C2A801C/VXML:/vxml_vapp_terminate:

vapp_status=0 ref_count 0

*Jan 18 03:36:14.155:

//127//AFW_:/vapp_terminate:

*Jan 18 03:36:14.155: //127//AFW_

:/vapp_session_exit_event_name:

Exit Event vxml.session.complete

*Jan 18 03:36:14.155:

//127//AFW_:/AFW_M_VxmlModule_Terminate:

*Jan 18 03:36:14.155:

//131/2AEE8C2A801C/CCAPI/ccCallDisconnect:

Cause Value=16, Tag=0x0, Call Entry

(Previous Disconnect Cause=0,

Disconnect Cause=0)

*Jan 18 03:36:14.155:

//131/2AEE8C2A801C/CCAPI/ccCallDisconnect:

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

Cause Value=16)

Gateway trennt die SIP-Sitzung, die mit dem ASR-Server eingerichtet wurde.

*Jan 18 03:36:14.159:

//-1/xxxxxxxxxxxx/SIP/Msg/ccsipDisplayMsg:

Sent:

BYE sip:172.18.110.76:5060 SIP/2.0

Via: SIP/2.0/UDP 14.1.16.25:

5060;branch=z9hG4bK971131

From: <sip:5555@14.1.16.25>;tag=E54D440-1CDB

To: <sip:asr@172.18.110.76>;tag=a99d0500

Date: Fri, 18 Jan 2002 03:34:57 GMT

Call-ID: 2DCAF817-AFB11D6-80D5DC30-

3585E95A@14.1.16.25

User-Agent: Cisco-SIPGateway/IOS-12.x

Max-Forwards: 70

Timestamp: 1011324974

CSeq: 102 BYE

Reason: Q.850;cause=16

Content-Length: 0

*Jan 18 03:36:14.607:

//-1/xxxxxxxxxxxx/SIP/Msg/ccsipDisplayMsg:

Received:

SIP/2.0 200 OK

Via: SIP/2.0/UDP 14.1.16.25:

5060;branch=z9hG4bK971131

To: <sip:asr@172.18.110.76>;tag=a99d0500

From: <sip:5555@14.1.16.25>;tag=E54D440-1CDB

Call-ID: 2DCAF817-AFB11D6-80D5DC30-

3585E95A@14.1.16.25

CSeq: 102 BYE

Contact: <sip:172.18.110.76:5060>

Content-Length: 0

Gateway trennt die mit dem TTS-Server eingerichtete SIP-Sitzung

*Jan 18 03:36:14.159:

//-1/xxxxxxxxxxxx/SIP/Msg/ccsipDisplayMsg:

Sent:

BYE sip:172.18.110.76:5060 SIP/2.0

Via: SIP/2.0/UDP 14.1.16.25:5060;branch=z9hG4bK981487

From: <sip:5555@14.1.16.25>;tag=E54D43C-1EC4

To: <sip:tts@172.18.110.76>;tag=c1160600

Date: Fri, 18 Jan 2002 03:34:57 GMT

Call-ID: 2DCA5BEF-AFB11D6-

80D3DC30-3585E95A@14.1.16.25

User-Agent: Cisco-SIPGateway/IOS-12.x

Max-Forwards: 70

Timestamp: 1011324974

CSeq: 102 BYE

Reason: Q.850;cause=16

Content-Length: 0

*Jan 18 03:36:14.215:

//-1/xxxxxxxxxxxx/SIP/Msg/ccsipDisplayMsg:

Received:

SIP/2.0 200 OK

Via: SIP/2.0/UDP

14.1.16.25:5060;branch=z9hG4bK981487

To: <sip:tts@172.18.110.76>;tag=c1160600

From: <sip:5555@14.1.16.25>;tag=E54D43C-1EC4

Call-ID:

2DCA5BEF-AFB11D6-80D3DC30-3585E95A@14.1.16.25

CSeq: 102 BYE

Contact: <sip:172.18.110.76:5060>

Content-Length: 0

Gateway trennt den Anruf auf ISDN-Seite

*Jan 18 03:36:14.611: ISDN Se3/0:23 Q931: TX ->

DISCONNECT pd = 8  callref = 0x805A

Cause i = 0x8090 - Normal call clearing

*Jan 18 03:36:14.623: ISDN Se3/0:23 Q931:

RX <- RELEASE pd = 8  callref = 0x005A

*Jan 18 03:36:14.623: ISDN Se3/0:23 Q931:

TX -> RELEASE_COMP pd = 8  callref = 0x805A

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