Voz : Roteamento de chamadas / Planos de discagem

Gateway do IOS Voice XML ao fluxo de chamadas CVP usando MRCPv1 ASR/TTS

19 Setembro 2015 - Tradução por Computador
Outras Versões: Versão em PDFpdf | Inglês (22 Agosto 2015) | Feedback


Índice


Introdução

O linguagem de marcação extensível da Voz (VXML) é um padrão definido pelo consórcio da world wide web (W3C). O VXML é projetado criar os diálogos audio que fornecem o discurso sintetizado, o reconhecimento das palavras dita, o reconhecimento dos dígitos de DTMF e as gravações do áudio falado. O server e os clientes VXML usam o protocolo HTTP conhecido para trocar documentos e páginas VXML.

Cisco exprime o portal (CVP) entrega os aplicativos inteligentes e da resposta de voz interativa (IVR) que podem ser alcançados sobre o telefone. Há três tipos de implementações CVP:

  • Serviço autônomo

  • Controle de chamadas CVP

  • Fila e transferência do atendimento

O discurso sintetizado, o reconhecimento das palavras dita ou as funcionalidades do dígito de DTMF são fornecidos por server textos a expressão (TTS) e do reconhecimento de discurso automático (ASR). O gateway de Cisco IOS� VXML comunica-se com os server TTS e ASR usando o protocolo de controle dos recursos de mídia (MRCP). Há duas versões de MRCP (RFC 4463), a saber MRCPv1 (MRCP sobre o RTSP) e MRCPv2 (MRCP sobre o SORVO).

Este documento descreve o fluxo de chamadas de um gateway da Voz XML do Cisco IOS ao atendimento CVP em uma distribuição de serviço autônoma que use server MRCPv1 TTS ou ASR. Um aplicativo da farmácia da amostra foi distribuído no server CVP VXML.

Pré-requisitos

Requisitos

Não existem requisitos específicos para este documento.

Componentes Utilizados

As informações neste documento são baseadas nestas versões de software e hardware:

  • Gateway IO VXML: Cisco AS5400XM, IO 12.4(11)T2

  • Server VXML: CVP 4.0

  • Server ASR/TTS: Nuance ASR v8.5 e TTS v4.0.6

As informações neste documento foram criadas a partir de dispositivos em um ambiente de laboratório específico. Todos os dispositivos utilizados neste documento foram iniciados com uma configuração (padrão) inicial. Se a sua rede estiver ativa, certifique-se de que entende o impacto potencial de qualquer comando.

Convenções

Consulte as Convenções de Dicas Técnicas da Cisco para obter mais informações sobre convenções de documentos.

Configurar

Nesta seção, você encontrará informações para configurar os recursos descritos neste documento.

Nota: Use a ferramenta Command Lookup Tool (apenas para clientes registrados) para obter mais informações sobre os comandos usados neste documento.

Diagrama de Rede

Este documento utiliza a seguinte configuração de rede:

/image/gif/paws/97213/ios-vxml-cvpcf1.gif

Configurações

Este documento utiliza esta configuração:

Configuração de gateway VXML

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


ip host asr-en-us 10.86.177.39
ip host tts-en-us 10.86.177.39

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


ivr prompt memory 15000

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


ivr asr-server rtsp://10.86.177.39/recognizer
ivr tts-server rtsp://10.86.177.39/synthesizer

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


application
service CVPSelfService flash:CVPSelfServiceBootstrap.vxml
  paramspace english language en
  paramspace english index 0
  paramspace english location flash:
  paramspace english prefix en


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


service Pharmacy flash:CVPSelfService.tcl
  paramspace english index 0
  paramspace english language en
  paramspace english location flash:
  param CVPSelfService-port 7000
  param CVPSelfService-app GoodPrescriptionRefillApp7
  paramspace english prefix en
  param CVPPrimaryVXMLServer 172.18.110.75


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


mrcp client rtpsetup enable


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


http client cache memory pool 15000


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


http client cache memory file 500


!--- Disable Persistent HTTP Connections.


no http client connection persistent


!--- Configure the T1 PRI.
 

controller T1 3/0
 framing esf
 linecode b8zs
 pri-group timeslots 1-24


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


interface Serial3/0:23
 no ip address
 encapsulation hdlc
 isdn switch-type primary-net5
 isdn incoming-voice modem
 no cdp enable


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


dial-peer voice 1 pots
 service pharmacy
 destination-pattern 5555
 direct-inward-dial
 port 3/0:D
 forward-digits all

Exemplo do fluxo de chamadas

Esta seção descreve o fluxo de chamadas esse resultados deste exemplo de configuração.

  1. Uma chamada ISDN chega no PSTN/VXML Gatway através do T1 PRI 3/0.

  2. O Gateway de IOS combina o POTS dial peer 1 como o dial peer de entrada para este atendimento.

  3. O Gateway de IOS entrega fora do Controle de chamadas ao serviço da farmácia que é associado ao dial-peer 1.

  4. O script CVP VXML/TCL associado com o serviço da farmácia envia um pedido HTTP GET ao server VXML.

  5. O server VXML retorna uma resposta de 200 APROVAÇÕES. Esta resposta contém um documento ou a página VXML.

  6. O Gateway de IOS executa o documento VXML.

  7. Se o documento VXML especifica uma URL para um prompt de áudio, o Gateway de IOS transfere o arquivo de áudio e joga a alerta.

  8. Se o documento VXML especifica um texto para um prompt de áudio, o Gateway de IOS estabelece uma sessão RTSP com rtsp://10.86.177.39/synthesizer (server TTS). Depois que a sessão RTSP é estabelecida, o gateway e do server TTS mensagens da troca MRCP como FALAM, SPEAK-COMPLETE usando o RTSP ANUNCIAM o pedido.

    O server TTS envia o fluxo de áudio G.711ulaw RTP ao endereço IP de Um ou Mais Servidores Cisco ICM NT e ao número de porta UDP fornecidos pelo gateway no encabeçamento do “transporte” da requisição de instalação RTSP.

  9. Se os specifes do documento VXML o gateway para reconhecer dígitos de DTMF e palavras dita, Gateway de IOS estabelecem uma sessão RTSP com rtsp://10.86.177.39/recognizer (server ASR). Depois que a sessão RTSP é estabelecida, as mensagens da troca MRCP do gateway e do server ASR como DEFINEM A GRAMÁTICA, TERMINE, RECONHEÇA, RECOGNITION-COMPLETE usando o RTSP ANUNCIAM o pedido.

    O gateway IO VXML envia o fluxo de áudio G.711ulaw RTP ao endereço IP de Um ou Mais Servidores Cisco ICM NT e ao número de porta UDP fornecidos pelo ASR no SDP da resposta da APROVAÇÃO RTSP 200. O gateway IO VXML envia os dígitos incorporados pelo usuário PSTN como eventos RTP-NTE ao server ASR.

  10. Depois que a execução do documento VXML, o gateway envia um pedido do CARGO HTTP (com um conjunto de parâmetro) como especificado na etiqueta do <submit> do documento ou da página VXML.

  11. As etapas 6 – 10 ocorrem para cada documento VXML enviado pelo server.

  12. Quando o aplicativo VXML termina o serviço proporcionado ao chamador, envia um documento VXML com apenas uma etiqueta <exit/> dentro do elemento do <form>.

  13. O Gateway de IOS desliga as sessões MRCPv1 estabelecidas com os server TTS e ASR.

  14. O Gateway de IOS desliga chamar o lado ISDN.

Verificar

Use esta seção para confirmar se a sua configuração funciona corretamente.

A Output Interpreter Tool (apenas para clientes registrados) (OIT) suporta determinados comandos show. Use a OIT para exibir uma análise da saída do comando show.

  • show call ative voice brief

    11E7 : 63 4728960ms.1 +0 pid:1 Answer 5555 active
     dur 00:00:31 tx:920/179920 rx:880/211200
     Tele 3/0:D (63) [3/0.1] tx:4600/4600/0ms None noise:-80 acom:51  i/0:-79/-27 dBm
    
    Telephony call-legs: 1
    SIP call-legs: 0
    H323 call-legs: 0
    Call agent controlled call-legs: 0
    SCCP call-legs: 0
    Multicast call-legs: 0
    Total call-legs: 1
  • mostre o detalhe do active da sessão cliente do mrcp

    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
    ############################################################
  • mostre conexões do rtp do voip

    VoIP RTP active connections :
    No. CallId     dstCallId  LocalRTP RmtRTP LocalIP         RemoteIP       
    1   66         63         17704    1224   172.18.110.77   10.86.177.39
  • mostre o cache de cliente HTTP

    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

Troubleshooting

Use esta seção para resolver problemas de configuração.

Comandos debug

Configurar o Gateway de IOS para registrar debuga em seu logging buffer e desabilitam o console de registro.

Nota: Consulte Informações Importantes sobre Comandos de Depuração antes de usar comandos debug.

Estes são os comandos usados para configurar o gateway a fim armazenar debugam no logging buffer do gateway:

  1. service timestamps debug datetime msec

  2. preste serviços de manutenção à sequência

  3. nenhum console de registro

  4. registrando 5000000 protegidos debugar

  5. cancele o log

  • debug isdn q931

  • debug voip ccapi inout

  • debugar o padrão do vxml do aplicativo do voip

  • debugar a descarga do vxml do aplicativo do voip

  • debugar o rtsp todo

  • debugar o mrcp todo

  • debugar o cliente todo HTTP

  • debugar o Nomeado-evento do nte da sessão do rtp do voip

Saídas de depuração

Esta seção fornece resultados do debug para este fluxo de chamadas da amostra:

  1. O gateway recebe uma chamada recebida do PSTN

  2. O gateway combina o dial peer de entrada 1

  3. O atendimento é entregado fora ao serviço da farmácia

  4. O atendimento obtém conectado no lado ISDN

  5. O gateway começa a execução do script do VoiceXML CVPSelfServiceBootstrap.vxml

  6. O gateway envia um pedido HTTP GET ao server VXML

  7. O gateway recebe uma mensagem de 200 APROVAÇÕES do server VXML

  8. O gateway envia um pedido HTTP GET ao servidor de mídia transferir o arquivo Welcome-1.wav

  9. O gateway recebe uma APROVAÇÃO 200 do servidor de mídia e recebe os índices do Welcome-1.wav no corpo da mensagem HTTP

  10. O gateway envia um pedido do CARGO HTTP ao server como definido no “submete” a opção do documento VXML (1)

  11. O gateway recebe a APROVAÇÃO 200 para seu pedido do CARGO HTTP

  12. O gateway envia um pedido do CARGO HTTP como definido na opção da submissão do documento VXML (2)

  13. O gateway recebe uma resposta de 200 APROVAÇÕES para o pedido do CARGO HTTP

  14. O gateway cria as gramáticas a ser usadas para o DTMF/reconhecimento de discurso

  15. O gateway envia uma requisição de instalação RTSP ao server ASR

  16. O gateway recebe uma resposta de 200 APROVAÇÕES do server ASR

  17. O gateway envia o pedido MRCP “DEFINE-GRAMMAR” ao server ASR encaixado dentro do RTSP ANUNCIA o pedido (apenas um pedido é mostrado aqui)

  18. O gateway recebe a resposta 200 COMPLETA para seu pedido DEFINE-GRAMMAR

  19. O gateway envia MRCP “RECONHECE” o pedido ao server ASR

  20. O server ASR envia a resposta EM ANDAMENTO ao pedido do RECONHECIMENTO

  21. O gateway termina a transferência do arquivo de media Welcome-1.wav, joga a alerta ao chamador e armazena-a no esconderijo

  22. O gateway envia uma requisição de instalação RTSP ao server TTS

  23. O gateway recebe uma resposta de 200 APROVAÇÕES do server TTS para a requisição de instalação RTSP

  24. O gateway envia MRCP “FALA” o pedido ao server TTS jogar “bom dia e agradecer-lhe para chamar a alerta da farmácia de Audium”

  25. O server TTS envia a resposta “EM ANDAMENTO” para o pedido do DISCURSO

  26. Depois que a alerta é jogada, o server TTS envia a resposta MRCP “SPEAK-COMPLETE” ao gateway

  27. O server ASR detecta o começo do discurso e notifica o gateway usando a resposta MRCP “START-OF-SPEECH”

  28. O gateway envia uma resposta de 200 APROVAÇÕES a MRCP anuncia o pedido

  29. O server ASR reconhece a palavra “reenche” e envia a mensagem MRCP “RECOGNITION-COMPLETE” ao gateway

  30. Após ter recebido uma notificação bem sucedida do reconhecimento do server ASR, o gateway VXML envia um pedido do CARGO HTTP como especificado na etiqueta da SUBMISSÃO do documento VXML (2)

  31. O server VXML envia páginas VXML para recolher o número da prescrição, tempo de recolhimento e para informar o chamador que a prescrição estará pronta para o recolhimento. O gateway executa estas páginas interagindo com o server TTS e ASR (resultados do debug não mostrados).

  32. O documento final VXML enviado pelo server VXML contém apenas a etiqueta da saída no formulário

  33. O gateway termina o aplicativo VXML

  34. O gateway desliga chamar o lado ISDN

  35. O gateway desliga a sessão RTSP estabelecida com o server ASR

  36. O gateway desliga a sessão RTSP estabelecida com o server TTS

Chamada recebida do 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

O dial peer de entrada 1 é combinado

*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

O atendimento é entregado fora ao serviço da farmácia

*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

O atendimento obtém conectado no lado ISDN

*Feb  4 03:24:54.119: ISDN Se3/0:23 Q931: TX -> CONNECT pd = 8  callref = 0x8099
*Feb  4 03:24:54.119: //63/972590A48011/CCAPI/ccCallHandoff:
  Silent=FALSE, Application=0x67569410, Conference Id=0xFFFFFFFF
*Feb  4 03:24:54.119: //63//VXML:/Open_CallHandoff:

O gateway começa a execução do script do VoiceXML CVPSelfServiceBootstrap.vxml

*Feb  4 03:24:54.131: //63/972590A48011/VXML:/vxml_vxml_proc:    
<vxml> 
  URI(abs):flash:CVPSelfServiceBootstrap.vxml 
  scheme=flash 
  path=CVPSelfServiceBootstrap.vxml 
  base= 
  URI(abs):flash:CVPSelfServiceBootstrap.vxml 
  scheme=flash 
  path=CVPSelfServiceBootstrap.vxml lang=none version=2.0 
<script>:
*Feb  4 03:24:54.175: //63/972590A48011/VXML:/vxml_expr_eval:  
<var>: namep=handoffstring expr=session.handoff_string
*Feb  4 03:24:54.243: //63/972590A48011/VXML:/vxml_expr_eval:  
  expr=(var handoffstring=session.handoff_string) 
<var>: namep=application expr=getValue('APP')
*Feb  4 03:24:54.243: //63/972590A48011/VXML:/vxml_expr_eval:  
  expr=(var application=getValue('APP')) 
<var>: namep=port expr=getValue('PORT')
*Feb  4 03:24:54.243: //63/972590A48011/VXML:/vxml_expr_eval:  
  expr=(var port=getValue('PORT')) 
<var>: namep=callid expr=getValue('CALLID')
*Feb  4 03:24:54.243: //63/972590A48011/VXML:/vxml_expr_eval:  
  expr=(var callid=getValue('CALLID')) 
<var>: namep=servername expr=getValue('PRIMARY')
*Feb  4 03:24:54.243: //63/972590A48011/VXML:/vxml_expr_eval:  
  expr=(var servername=getValue('PRIMARY')) 
<var>: namep=var1 expr=getValue('var1')
*Feb  4 03:24:54.243: //63/972590A48011/VXML:/vxml_expr_eval:  
  expr=(var var1=getValue('var1')) 
<var>: namep=var2 expr=getValue('var2')
*Feb  4 03:24:54.243: //63/972590A48011/VXML:/vxml_expr_eval:  
  expr=(var var2=getValue('var2')) 
<var>: namep=var3 expr=getValue('var3')
*Feb  4 03:24:54.243: //63/972590A48011/VXML:/vxml_expr_eval:  
  expr=(var var3=getValue('var3')) 
<var>: namep=var4 expr=getValue('var4')
*Feb  4 03:24:54.247: //63/972590A48011/VXML:/vxml_expr_eval:  
  expr=(var var4=getValue('var4')) 
<var>: namep=var5 expr=getValue('var5')
*Feb  4 03:24:54.247: //63/972590A48011/VXML:/vxml_expr_eval:  
  expr=(var var5=getValue('var5')) 
<var>: namep=status expr=getValue('status')
*Feb  4 03:24:54.247: //63/972590A48011/VXML:/vxml_expr_eval:  
  expr=(var status=getValue('status')) 
<var>: namep=prevapp expr=getValue('prevapp')
*Feb  4 03:24:54.247: //63/972590A48011/VXML:/vxml_expr_eval:  
  expr=(var prevapp=getValue('prevapp')) 
<var>: namep=survive expr=getValue('survive')
*Feb  4 03:24:54.247: //63/972590A48011/VXML:/vxml_expr_eval:  
  expr=(var survive=getValue('survive')) 
<var>: namep=handoffExit
*Feb  4 03:24:54.247: //63/972590A48011/VXML:/vxml_expr_eval:  
  expr=(var handoffExit)

O gateway envia um pedido HTTP GET ao server VXML

*Feb  4 03:24:54.255: //63//HTTPC:/httpc_write_stream: Client write buffer fd(0):
GET /CVP/Server?application=GoodPrescriptionRefillApp7&callid=972590A4-185511D6-80110013-
803E8C8E&session.connection.remote.uri=5555
&session.connection.local.uri=5555 HTTP/1.1
Host: 172.18.110.75:7000
Content-Type: application/x-www-form-urlencoded
Connection: close
Accept: text/vxml, text/x-vxml, application/vxml, application/x-vxml, application/voicexml, 
application/x-voicexml, text/plain, text/html, audio/basic, audio/wav, multipart/form-data, 
application/octet-stream
User-Agent: Cisco-IOS-C5400/12.4

O gateway recebe uma mensagem de 200 APROVAÇÕES do server VXML

O corpo da mensagem desta resposta contém um documento VXML (1). O documento VXML diz o gateway para jogar o arquivo de media Welcome-1.wav chamado situado em um servidor de mídia

*Feb  4 03:24:54.263: processing server rsp msg: msg(63AC8784)
URL:http://172.18.110.75:7000/CVP/Server?application=GoodPrescriptionRefillApp7&
callid=972590A4-185511D6-80110013-803E8C8E&session.connection.remote.uri=
5555&session.connection.local.uri=5555, fd(0):
*Feb  4 03:24:54.263: Request msg: GET /CVP/Server?application=GoodPrescriptionRefillApp7&
callid=972590A4-185511D6-80110013-803E8C8E
&session.connection.remote.uri=5555&session.connection.local.uri=5555 HTTP/1.1
*Feb  4 03:24:54.263: Message Response Code: 200
*Feb  4 03:24:54.263: Message Rsp Decoded Headers:
*Feb  4 03:24:54.263: Date:Thu, 17 May 2007 15:48:31 GMT
*Feb  4 03:24:54.263: Content-Type:text/xml;charset=ISO-8859-1
*Feb  4 03:24:54.263: Connection:close
*Feb  4 03:24:54.263: Set-Cookie:JSESSIONID=6FE82FC3B0E02909CA5A9307D57F00E1; Path=/CVP
*Feb  4 03:24:54.263: headers:                                                               
*Feb  4 03:24:54.263: HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Set-Cookie: JSESSIONID=6FE82FC3B0E02909CA5A9307D57F00E1; Path=/CVP
Content-Type: text/xml;charset=ISO-8859-1
Date: Thu, 17 May 2007 15:48:31 GMT
Connection: close

 
*Feb  4 03:24:54.263: body:
*Feb  4 03:24:54.263: <?xml version="1.0" encoding="UTF-8"?>
<vxml version="2.0" application="/CVP/Server?audium_root=true&amp;
calling_into=GoodPrescriptionRefillApp7" xml:lang="en-us">
  <form id="audium_start_form">
   <block>
    <assign name="audium_vxmlLog" expr="''" />
    <assign name="audium_element_start_time_millisecs" expr="new Date().getTime()" />
    <goto next="#start" />
   </block>
  </form>
  <form id="start">
   <block>
    <prompt bargein="true">
     <audio src="http://172.18.110.75/Welcome-1.wav" />
    </prompt>
    <assign name="audium_vxmlLog" expr="audium_vxmlLog + '|||audio_group$$$' + 
'initial_audio_group' + '^^^' + application.getElap
 sedTime(audium_element_start_time_millisecs)" />
    <submit next="/CVP/Server" method="post" namelist=" audium_vxmlLog" />
   </block>
  </form>
 </vxml>

O gateway envia um pedido HTTP GET ao servidor de mídia transferir o arquivo Welcome-1.wav

*Feb  4 03:24:54.371: //63//HTTPC:/httpc_write_stream: Client write buffer fd(0):
GET /Welcome-1.wav HTTP/1.1
Host: 172.18.110.75
Content-Type: application/x-www-form-urlencoded
Connection: close
Accept: text/vxml, text/x-vxml, application/vxml, application/x-vxml, application/voicexml, 
application/x-voicexml, text/plain, text/html, audio/basic, audio/wav, multipart/form-data, 
application/octet-stream
User-Agent: Cisco-IOS-C5400/12.4

O gateway recebe uma APROVAÇÃO 200 do servidor de mídia e recebe os índices do Welcome-1.wav no corpo da mensagem HTTP

*Feb  4 03:24:54.391: read data from the socket 0 : first 400 bytes of data: 
HTTP/1.1 200 OK
Content-Length: 76152
Content-Type: audio/wav
Last-Modified: Thu, 03 May 2007 19:47:43 GMT
Accept-Ranges: bytes
ETag: "b27d69eabb8dc71:2eb"
Server: Microsoft-IIS/6.0
Date: Thu, 17 May 2007 15:48:31 GMT
Connection: close

RIFFo)(Unprintable char...)1057415645666D7420120007010401F00401F00108000666163744
000529106461746152910FFFFFFFFFFFFFFFF7AFFFFFFFD7E7E

O gateway envia um pedido do HTTP do CARGO ao server como definido no “submete” a opção do VXML Document(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

O gateway recebe a APROVAÇÃO 200 para seu pedido do HTTP do CARGO

O corpo da mensagem contém um documento VXML (2). O documento VXML diz o gateway para jogar o “bom dia e para agradecer-lhe para chamar a farmácia de Audium.

Nota: Esta alerta precisa de ser sintetizada por um server texto a expressão.

*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>
   <prompt bargein="true">Good morning and thank you for calling Audium pharmacy.</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>

O gateway envia um pedido do CARGO HTTP como definido na opção da submissão do documento VXML (2)

*Feb  4 03:24:54.399: //63//HTTPC:/httpc_write_stream: Client write buffer fd(1):
POST /CVP/Server HTTP/1.1
Host: 172.18.110.75:7000
Content-Length: 67
Content-Type: application/x-www-form-urlencoded
Cookie: $Version=0; JSESSIONID=6FE82FC3B0E02909CA5A9307D57F00E1; $Path=/CVP
Connection: close
Accept: text/vxml, text/x-vxml, application/vxml, application/x-vxml, application/voicexml, 
application/x-voicexml, text/plain, text/html, audio/basic, audio/wav, multipart/form-data, 
application/octet-stream
User-Agent: Cisco-IOS-C5400/12.4

O gateway recebe uma resposta de 200 APROVAÇÕES para o pedido do CARGO HTTP

O corpo da mensagem contém o documento VXML (3). Este documento VXML define uma alerta do menu que diga o chamador para incorporar 1 ou dizer reenchimentos, incorporar 2 ou dizer o farmacêutico. As alertas são sintetizadas por um server TTS. As entradas (discurso/dtmf) são reconhecidas usando um ASR.

*Feb  4 03:24:54.415: processing server rsp msg: msg(63AC8F24)
URL:http://172.18.110.75:7000/CVP/Server, fd(1):
*Feb  4 03:24:54.415: Request msg: POST /CVP/Server HTTP/1.1
*Feb  4 03:24:54.415: Message Response Code: 200
*Feb  4 03:24:54.415: Message Rsp Decoded Headers:
*Feb  4 03:24:54.415: Date:Thu, 17 May 2007 15:48:31 GMT
*Feb  4 03:24:54.415: Content-Type:text/xml;charset=ISO-8859-1
*Feb  4 03:24:54.415: Connection:close
*Feb  4 03:24:54.415: headers:
*Feb  4 03:24:54.415: HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Content-Type: text/xml;charset=ISO-8859-1
Date: Thu, 17 May 2007 15:48:31 GMT
Connection: close

 
*Feb  4 03:24:54.415: body:
*Feb  4 03:24:54.415: ... Buffer too large - truncated to (4096) len.
*Feb  4 03:24:54.415: <?xml version="1.0" encoding="UTF-8"?>
<vxml version="2.0" application="/CVP/Server?audium_root=true&amp;
calling_into=GoodPrescriptionRefillApp7" xml:lang="en-us">
 <property name="timeout" value="60s" />
 <property name="confidencelevel" value="0.40" />
 <form id="audium_start_form">
  <block>
   <assign name="audium_vxmlLog" expr="''" />
   <assign name="audium_element_start_time_millisecs" expr="new Date().getTime()" />
   <goto next="#start" />
  </block>
 </form>
 <form id="start">
  <block>
   <assign name="audium_vxmlLog" expr="audium_vxmlLog + '|||audio_group$$$' + 
'initial_audio_group' + '^^^' + application.getElap
sedTime(audium_element_start_time_millisecs)" />
   <goto nextitem="choice_fld" />
  </block>
  <field name="choice_fld" modal="false">
   <property name="inputmodes" value="dtmf voice" />
   <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="
*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" />
   <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.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" />
   <submit next="/CVP/Server" method="post" namelist=" audium_vxmlLog confidence choice_fld" />
   </filled>
  </field>
 </form>
</vxml>

O gateway cria as gramáticas a ser usadas para o DTMF/reconhecimento de discurso

Estas gramáticas estão enviadas então ao server ASR uma vez que o gateway estabelece uma sessão RTSP com o server ASR.

*Feb  4 03:24:54.447: //63//AFW_:/vapp_asr_change_server:  
asr_server=rtsp://10.86.177.39/recognizer
*Feb  4 03:24:54.447: //-1//MRCP:/mrcp_change_url: sess-id: 17, 
url=rtsp://10.86.177.39/recognizer
*Feb  4 03:24:54.447: //-1//RTSP:/rtsplib_pmh_parse_url:  
*Feb  4 03:24:54.447: //-1//RTSP:/rtsplib_pmh_parse_url: Input-Url: 
rtsp://10.86.177.39/recognizer
*Feb  4 03:24:54.447: //-1//RTSP:/rtsplib_pmh_parse_url: Hostname: 
10.86.177.39Port    : 554Path    : recognizer
*Feb  4 03:24:54.447: //-1//RTSP:/rtsplib_pmh_parse_url:  
*Feb  4 03:24:54.447: //-1//RTSP:/rtsplib_pmh_parse_url: Input-Url: 
rtsp://10.86.177.39/recognizer
*Feb  4 03:24:54.447: //-1//RTSP:/rtsplib_pmh_parse_url: Hostname: 
10.86.177.39Port    : 554Path    : recognizer
*Feb  4 03:24:54.447: //63//MRCP:/mrcp_change_url: fsm (674DA1E4) already defined
*Feb  4 03:24:54.447: //63//AFW_:/vapp_asr_define_grammar: 
*Feb  4 03:24:54.447: //63//AFW_:/vapp_asr_define_grammar:  
grammar_id=session:option322@field.grammar
*Feb  4 03:24:54.447: //63//AFW_:/vapp_asr_define_grammar:  xml_lang=en-us
*Feb  4 03:24:54.447: //63//AFW_:/vapp_asr_define_grammar:  encoding_name=UTF-8
*Feb  4 03:24:54.447: //63//AFW_:/vapp_asr_define_grammar:  remoteupdate=0
*Feb  4 03:24:54.447: //63//AFW_:/vapp_asr_define_grammar: grammar=<?xml version="1.0" 
encoding="UTF-8"?><grammar version="1.0" xmln
s="http://www.w3.org/2001/06/grammar" xml:lang="en-us" root="root"><rule id="root" 
scope="public"> prescription</rule></grammar>
*Feb  4 03:24:54.447: //-1//MRCP:/mrcp_add_param: param: Speech-Language: 
*Feb  4 03:24:54.447: //-1//MRCP:/mrcp_add_param: param: Content-Base: 
*Feb  4 03:24:54.447: //-1//MRCP:/mrcp_recognizer_define_grammar: sess-id: 17
*Feb  4 03:24:54.447: //63//AFW_:/vapp_asr_define_grammar: 
*Feb  4 03:24:54.447: //63//AFW_:/vapp_asr_define_grammar:  
grammar_id=session:option323@field.grammar
*Feb  4 03:24:54.447: //63//AFW_:/vapp_asr_define_grammar:  encoding_name=UTF-8
*Feb  4 03:24:54.447: //63//AFW_:/vapp_asr_define_grammar:  remoteupdate=0
*Feb  4 03:24:54.447: //63//AFW_:/vapp_asr_define_grammar: grammar=<?xml version="1.0" 
encoding="UTF-8"?><grammar version="1.0" xmln
s="http://www.w3.org/2001/06/grammar" mode="dtmf" root="root"><rule id="root" 
scope="public">1</rule></grammar>
*Feb  4 03:24:54.447: //-1//MRCP:/mrcp_add_param: param: Content-Base: 
*Feb  4 03:24:54.447: //-1//MRCP:/mrcp_recognizer_define_grammar: sess-id: 17
*Feb  4 03:24:54.447: //63//AFW_:/vapp_asr_define_grammar: 
*Feb  4 03:24:54.447: //63//AFW_:/vapp_asr_define_grammar:  
grammar_id=session:option324@field.grammar
*Feb  4 03:24:54.447: //63//AFW_:/vapp_asr_define_grammar:  xml_lang=en-us
*Feb  4 03:24:54.447: //63//AFW_:/vapp_asr_define_grammar:  encoding_name=UTF-8
*Feb  4 03:24:54.447: //63//AFW_:/vapp_asr_define_grammar:  remoteupdate=0
*Feb  4 03:24:54.447: //63//AFW_:/vapp_asr_define_grammar: grammar=<?xml version="1.0" 
encoding="UTF-8"?><grammar version="1.0" xmln
s="http://www.w3.org/2001/06/grammar" xml:lang="en-us" root="root"><rule id="root" 
scope="public"> refills</rule></grammar>
*Feb  4 03:24:54.447: //-1//MRCP:/mrcp_add_param: param: Speech-Language: 
*Feb  4 03:24:54.447: //-1//MRCP:/mrcp_add_param: param: Content-Base: 
*Feb  4 03:24:54.447: //-1//MRCP:/mrcp_recognizer_define_grammar: sess-id: 17
*Feb  4 03:24:54.447: //63//AFW_:/vapp_asr_define_grammar: 
*Feb  4 03:24:54.447: //63//AFW_:/vapp_asr_define_grammar:  
grammar_id=session:option325@field.grammar
*Feb  4 03:24:54.447: //63//AFW_:/vapp_asr_define_grammar:  xml_lang=en-us
*Feb  4 03:24:54.447: //63//AFW_:/vapp_asr_define_grammar:  encoding_name=UTF-8
*Feb  4 03:24:54.447: //63//AFW_:/vapp_asr_define_grammar:  remoteupdate=0
*Feb  4 03:24:54.447: //63//AFW_:/vapp_asr_define_grammar: grammar=<?xml version="1.0" 
encoding="UTF-8"?><grammar version="1.0" xmln
s="http://www.w3.org/2001/06/grammar" xml:lang="en-us" root="root"><rule id="root" 
scope="public"> prescription refills</rule></gram
mar>
*Feb  4 03:24:54.447: //-1//MRCP:/mrcp_add_param: param: Speech-Language: 
*Feb  4 03:24:54.447: //-1//MRCP:/mrcp_add_param: param: Content-Base: 
*Feb  4 03:24:54.447: //-1//MRCP:/mrcp_recognizer_define_grammar: sess-id: 17
*Feb  4 03:24:54.447: //63//AFW_:/vapp_asr_define_grammar: 
*Feb  4 03:24:54.447: //63//AFW_:/vapp_asr_define_grammar:  
grammar_id=session:option326@field.grammar
*Feb  4 03:24:54.447: //63//AFW_:/vapp_asr_define_grammar:  xml_lang=en-us
*Feb  4 03:24:54.447: //63//AFW_:/vapp_asr_define_grammar:  encoding_name=UTF-8
*Feb  4 03:24:54.447: //63//AFW_:/vapp_asr_define_grammar:  remoteupdate=0
*Feb  4 03:24:54.447: //63//AFW_:/vapp_asr_define_grammar: grammar=<?xml version="1.0" 
encoding="UTF-8"?><grammar version="1.0" xmln
s="http://www.w3.org/2001/06/grammar" xml:lang="en-us" root="root"><rule id="root" 
scope="public"> refill my prescription</rule></gr
ammar>
*Feb  4 03:24:54.447: //-1//MRCP:/mrcp_add_param: param: Speech-Language: 
*Feb  4 03:24:54.447: //-1//MRCP:/mrcp_add_param: param: Content-Base: 
*Feb  4 03:24:54.447: //-1//MRCP:/mrcp_recognizer_define_grammar: sess-id: 17
*Feb  4 03:24:54.447: //63//AFW_:/vapp_asr_define_grammar: 
*Feb  4 03:24:54.447: //63//AFW_:/vapp_asr_define_grammar:  
grammar_id=session:option327@field.grammar
*Feb  4 03:24:54.447: //63//AFW_:/vapp_asr_define_grammar:  xml_lang=en-us
*Feb  4 03:24:54.447: //63//AFW_:/vapp_asr_define_grammar:  encoding_name=UTF-8
*Feb  4 03:24:54.447: //63//AFW_:/vapp_asr_define_grammar:  remoteupdate=0
*Feb  4 03:24:54.447: //63//AFW_:/vapp_asr_define_grammar: grammar=<?xml version="1.0" 
encoding="UTF-8"?><grammar version="1.0" xmln
s="http://www.w3.org/2001/06/grammar" xml:lang="en-us" root="root"><rule id="root" 
scope="public"> I want to refill my prescription</rule></grammar>
*Feb  4 03:24:54.447: //-1//MRCP:/mrcp_add_param: param: Speech-Language: 
*Feb  4 03:24:54.447: //-1//MRCP:/mrcp_add_param: param: Content-Base: 
*Feb  4 03:24:54.447: //-1//MRCP:/mrcp_recognizer_define_grammar: sess-id: 17
*Feb  4 03:24:54.447: //63//AFW_:/vapp_asr_define_grammar: 
*Feb  4 03:24:54.447: //63//AFW_:/vapp_asr_define_grammar:  
grammar_id=session:option328@field.grammar
*Feb  4 03:24:54.447: //63//AFW_:/vapp_asr_define_grammar:  xml_lang=en-us
*Feb  4 03:24:54.447: //63//AFW_:/vapp_asr_define_grammar:  encoding_name=UTF-8
*Feb  4 03:24:54.447: //63//AFW_:/vapp_asr_define_grammar:  remoteupdate=0
*Feb  4 03:24:54.447: //63//AFW_:/vapp_asr_define_grammar: grammar=<?xml version="1.0" 
encoding="UTF-8"?><grammar version="1.0" xmln
s="http://www.w3.org/2001/06/grammar" xml:lang="en-us" root="root"><rule id="root" 
scope="public"> refills please</rule></grammar>
*Feb  4 03:24:54.447: //-1//MRCP:/mrcp_add_param: param: Speech-Language: 
*Feb  4 03:24:54.447: //-1//MRCP:/mrcp_add_param: param: Content-Base: 
*Feb  4 03:24:54.447: //-1//MRCP:/mrcp_recognizer_define_grammar: sess-id: 17
*Feb  4 03:24:54.447: //63//AFW_:/vapp_asr_define_grammar: 
*Feb  4 03:24:54.447: //63//AFW_:/vapp_asr_define_grammar:  
grammar_id=session:option329@field.grammar
*Feb  4 03:24:54.447: //63//AFW_:/vapp_asr_define_grammar:  xml_lang=en-us
*Feb  4 03:24:54.447: //63//AFW_:/vapp_asr_define_grammar:  encoding_name=UTF-8
*Feb  4 03:24:54.447: //63//AFW_:/vapp_asr_define_grammar:  remoteupdate=0
*Feb  4 03:24:54.447: //63//AFW_:/vapp_asr_define_grammar: grammar=<?xml version="1.0" 
encoding="UTF-8"?><grammar version="1.0" xmln
s="http://www.w3.org/2001/06/grammar" xml:lang="en-us" root="root"><rule id="root" 
scope="public"> Pharmacist</rule></grammar>
*Feb  4 03:24:54.447: //-1//MRCP:/mrcp_add_param: param: Speech-Language: 
*Feb  4 03:24:54.447: //-1//MRCP:/mrcp_add_param: param: Content-Base: 
*Feb  4 03:24:54.447: //-1//MRCP:/mrcp_recognizer_define_grammar: sess-id: 17
*Feb  4 03:24:54.451: //63//AFW_:/vapp_asr_define_grammar: 
*Feb  4 03:24:54.451: //63//AFW_:/vapp_asr_define_grammar:  
grammar_id=session:option330@field.grammar
*Feb  4 03:24:54.451: //63//AFW_:/vapp_asr_define_grammar:  encoding_name=UTF-8
*Feb  4 03:24:54.451: //63//AFW_:/vapp_asr_define_grammar:  remoteupdate=0
*Feb  4 03:24:54.451: //63//AFW_:/vapp_asr_define_grammar: grammar=<?xml version="1.0" 
encoding="UTF-8"?><grammar version="1.0" xmln
s="http://www.w3.org/2001/06/grammar" mode="dtmf" root="root"><rule id="root" 
scope="public">2</rule></grammar>
*Feb  4 03:24:54.451: //-1//MRCP:/mrcp_add_param: param: Content-Base: 
*Feb  4 03:24:54.451: //-1//MRCP:/mrcp_recognizer_define_grammar: sess-id: 17
*Feb  4 03:24:54.451: //63//AFW_:/vapp_asr_define_grammar: 
*Feb  4 03:24:54.451: //63//AFW_:/vapp_asr_define_grammar:  
grammar_id=session:option331@field.grammar
*Feb  4 03:24:54.451: //63//AFW_:/vapp_asr_define_grammar:  xml_lang=en-us
*Feb  4 03:24:54.451: //63//AFW_:/vapp_asr_define_grammar:  encoding_name=UTF-8
*Feb  4 03:24:54.451: //63//AFW_:/vapp_asr_define_grammar:  remoteupdate=0
*Feb  4 03:24:54.451: //63//AFW_:/vapp_asr_define_grammar: grammar=<?xml version="1.0" 
encoding="UTF-8"?><grammar version="1.0" xmln
s="http://www.w3.org/2001/06/grammar" xml:lang="en-us" root="root"><rule id="root" 
scope="public"> I want to speak to a pharmacist</rule></grammar>
*Feb  4 03:24:54.451: //-1//MRCP:/mrcp_add_param: param: Speech-Language: 
*Feb  4 03:24:54.451: //-1//MRCP:/mrcp_add_param: param: Content-Base: 
*Feb  4 03:24:54.451: //-1//MRCP:/mrcp_recognizer_define_grammar: sess-id: 17
*Feb  4 03:24:54.451: //63//AFW_:/vapp_asr_define_grammar: 
*Feb  4 03:24:54.451: //63//AFW_:/vapp_asr_define_grammar:  
grammar_id=session:option332@field.grammar
*Feb  4 03:24:54.451: //63//AFW_:/vapp_asr_define_grammar:  xml_lang=en-us
*Feb  4 03:24:54.451: //63//AFW_:/vapp_asr_define_grammar:  encoding_name=UTF-8
*Feb  4 03:24:54.451: //63//AFW_:/vapp_asr_define_grammar:  remoteupdate=0
*Feb  4 03:24:54.451: //63//AFW_:/vapp_asr_define_grammar: grammar=<?xml version="1.0" 
encoding="UTF-8"?><grammar version="1.0" xmln
s="http://www.w3.org/2001/06/grammar" xml:lang="en-us" root="root"><rule id="root" 
scope="public"> pharmacist please</rule></grammar> 
*Feb  4 03:24:54.451: //-1//MRCP:/mrcp_add_param: param: Speech-Language: 
*Feb  4 03:24:54.451: //-1//MRCP:/mrcp_add_param: param: Content-Base: 
*Feb  4 03:24:54.451: //-1//MRCP:/mrcp_recognizer_define_grammar: sess-id: 17
*Feb  4 03:24:54.451: //63//AFW_:/vapp_asr_define_grammar: 
*Feb  4 03:24:54.451: //63//AFW_:/vapp_asr_define_grammar:  
grammar_id=session:link333@document.grammar
*Feb  4 03:24:54.451: //63//AFW_:/vapp_asr_define_grammar:  xml_lang=en-us
*Feb  4 03:24:54.451: //63//AFW_:/vapp_asr_define_grammar:  encoding_name=UTF-8
*Feb  4 03:24:54.451: //63//AFW_:/vapp_asr_define_grammar:  remoteupdate=0
*Feb  4 03:24:54.451: //63//AFW_:/vapp_asr_define_grammar: grammar=<?xml version="1.0" 
encoding="UTF-8"?><grammar xmlns="http://www.w3.org/2001/06/grammar" mode="voice" version="1.0" 
root="Hotlink_02_VOICE" xml:lang="en-us">
   <rule id="Hotlink_02_VOICE" scope="public">
    <one-of>
     <item>operator</item>
     <item>agent</item>
     <item>pharmacist</item>
    </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>
     <item>agent</item>
     <item>pharmacist</item>
    </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

O gateway envia uma requisição de instalação RTSP ao server ASR

*Feb  4 03:24:54.475: ########################################
*Feb  4 03:24:54.475: Request
*Feb  4 03:24:54.475: SETUP rtsp://10.86.177.39/recognizer RTSP/1.0
CSeq:  0
Transport: rtp/avp;unicast;client_port=17704;mode=record

O gateway recebe uma resposta de 200 APROVAÇÕES do server ASR

O SDP da resposta de 200 APROVAÇÕES contém o endereço IP de Um ou Mais Servidores Cisco ICM NT do server ASR e o número de porta UDP a que o gateway precisa de enviar pacotes RTP.

*Feb  4 03:24:54.531: //-1//RTSP:/rtsp_process_single_svr_resp: 
*Feb  4 03:24:54.531: rtsp_process_single_svr_resp: 400 bytes of data: 
RTSP/1.0 200 OK
CSeq: 0
Session: 27b1560a_00000748_464c95e8_000b_0000
Transport: RTP/AVP;unicast;client_port=17704;server_port=1224-1225;mode=record
Content-Length: 233
Content-Type: application/sdp

v=0
o=- 3388413032 3388413032 IN IP4 10.86.177.39
s=Nuance Media Server/1.0.0 SP10 (Windows 2000)
c=IN IP4 10.86.177.39
t=0 0
m=audio 1224 RTP/AVP 0 101
a=rtpmap:0 pcmu/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15

O gateway envia o pedido MRCP “DEFINE-GRAMMAR” ao server ASR encaixado dentro do RTSP ANUNCIA o pedido

Somente um pedido é mostrado aqui:

*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: 
<?xml version="1.0" encoding="UTF-8"?><grammar version="1.0" 
xmlns="http://www.w3.org/2001/06/grammar" xml:lang="en-us" root="root">
<rule id="root" scope="public"> prescription</rule></grammar>

O gateway recebe a resposta 200 COMPLETA para seu pedido DEFINE-GRAMMAR

*Feb  4 03:24:54.555: rtsp_process_single_svr_resp: 400 bytes of data: 
RTSP/1.0 200 OK
CSeq: 1
Session: 27b1560a_00000748_464c95e8_000b_0000
Content-Length: 27
Content-Type: application/mrcp

MRCP/1.0 3 200 COMPLETE

O gateway envia MRCP “RECONHECE” o pedido ao server ASR

*Feb  4 03:24:54.619: rtsp_partial_socket_send: (fd:0 len:24) 400 bytes of data: 
RECOGNIZE  17 MRCP/1.0

*Feb  4 03:24:54.619: //-1//RTSP:/rtsp_partial_socket_send: 
*Feb  4 03:24:54.619: (socket:0) (bytes-sent:24)
*Feb  4 03:24:54.619: //-1//RTSP:/rtsp_partial_socket_send: 
*Feb  4 03:24:54.619: rtsp_partial_socket_send: (fd:0 len:347) 400 bytes of data: 
Speech-Language: en-us
Confidence-Threshold: 40
Sensitivity-Level: 50
Speed-Vs-Accuracy: 50
Dtmf-Interdigit-Timeout: 10000
Dtmf-Term-Timeout: 0
Dtmf-Term-Char: #
No-Input-Timeout: 60000
N-Best-List-Length: 1
Logging-Tag: 63:63
Accept-Charset: charset: utf-8
Content-Base: http://172.18.110.75:7000/CVP/
Recognizer-Start-Timers: false
 
*Feb  4 03:24:54.619: //-1//RTSP:/rtsp_partial_socket_send: 
*Feb  4 03:24:54.619: (socket:0) (bytes-sent:347)
*Feb  4 03:24:54.619: //-1//RTSP:/rtsp_partial_socket_send: 
*Feb  4 03:24:54.619: rtsp_partial_socket_send: (fd:0 len:52) 400 bytes of data: 
Content-Type: text/uri-list
Content-Length: 453

 
*Feb  4 03:24:54.619: //-1//RTSP:/rtsp_partial_socket_send: 
*Feb  4 03:24:54.619: (socket:0) (bytes-sent:52)
*Feb  4 03:24:54.619: //-1//RTSP:/rtsp_partial_socket_send: 
*Feb  4 03:24:54.619: rtsp_partial_socket_send: (fd:0 len:256) 400 bytes of data: 
session:option322@field.grammar
session:option323@field.grammar
session:option324@field.grammar
session:option325@field.grammar
session:option326@field.grammar
session:option327@field.grammar
session:option328@field.grammar
session:option329@field.grammar
*Feb  4 03:24:54.623: //-1//RTSP:/rtsp_partial_socket_send: 
*Feb  4 03:24:54.623: (socket:0) (bytes-sent:256)
*Feb  4 03:24:54.623: //-1//RTSP:/rtsp_partial_socket_send: 
*Feb  4 03:24:54.623: rtsp_partial_socket_send: (fd:0 len:197) 400 bytes of data: 
session:option330@field.grammar
session:option331@field.grammar
session:option332@field.grammar
session:link333@document.grammar
session:link334@document.grammar
session:help@grammar

O server ASR envia a resposta EM ANDAMENTO ao pedido do RECONHECIMENTO

*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

O gateway termina a transferência do arquivo de media Welcome-1.wav, joga a alerta ao chamador e armazena-a no esconderijo

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

O gateway envia uma requisição de instalação RTSP ao server TTS

*Feb  4 03:25:07.811: //-1//RTSP:/rtsplib_send_setup: 
*Feb  4 03:25:07.811: ########################################
*Feb  4 03:25:07.811: Request
*Feb  4 03:25:07.811: SETUP rtsp://10.86.177.39/synthesizer RTSP/1.0
CSeq:  16
Session: 27b1560a_00000748_464c95e8_000b_0000
Transport: rtp/avp;unicast;source=172.18.110.77;destination=172.18.110.77;
client_port=17704-17705

O gateway recebe uma resposta de 200 APROVAÇÕES do server TTS para a requisição de instalação RTSP

*Feb  4 03:25:07.831: rtsp_process_single_svr_resp: 400 bytes of data: 
RTSP/1.0 200 OK
CSeq: 16
Session: 27b1560a_00000748_464c95e8_000b_0000
Transport: RTP/AVP;unicast;client_port=17704;server_port=1224-1225

O gateway envia MRCP “FALA” o pedido ao server TTS jogar “bom dia e agradecer-lhe para chamar a alerta da farmácia de Audium”

*Feb  4 03:25:07.835: //-1//RTSP:/rtsp_partial_socket_send: 
*Feb  4 03:25:07.835: rtsp_partial_socket_send: (fd:0 len:165) 400 bytes of data: 
ANNOUNCE rtsp://10.86.177.39/synthesizer RTSP/1.0
CSeq:  17
Session: 27b1560a_00000748_464c95e8_000b_0000
Content-Type: application/mrcp
Content-Length:  307

*Feb  4 03:25:07.835: //-1//RTSP:/rtsp_partial_socket_send: 
*Feb  4 03:25:07.835: (socket:0) (bytes-sent:165)
*Feb  4 03:25:07.835: //-1//RTSP:/rtsp_partial_socket_send: 
*Feb  4 03:25:07.835: rtsp_partial_socket_send: (fd:0 len:19) 400 bytes of data: 
SPEAK  2 MRCP/1.0

*Feb  4 03:25:07.835: //-1//RTSP:/rtsp_partial_socket_send: 
*Feb  4 03:25:07.835: (socket:0) (bytes-sent:19)
*Feb  4 03:25:07.835: //-1//RTSP:/rtsp_partial_socket_send: 
*Feb  4 03:25:07.835: rtsp_partial_socket_send: (fd:0 len:114) 400 bytes of data: 
Kill-On-Barge-In: true
Speech-Language: en-us
Logging-Tag: 63:63
Content-Base: http://172.18.110.75:7000/CVP/

*Feb  4 03:25:07.835: //-1//RTSP:/rtsp_partial_socket_send: 
*Feb  4 03:25:07.835: (socket:0) (bytes-sent:114)
*Feb  4 03:25:07.835: //-1//RTSP:/rtsp_partial_socket_send: 
*Feb  4 03:25:07.835: rtsp_partial_socket_send: (fd:0 len:65) 400 bytes of data: 
Content-Type: application/synthesis+ssml
Content-Length: 109

*Feb  4 03:25:07.835: //-1//RTSP:/rtsp_partial_socket_send: 
*Feb  4 03:25:07.835: (socket:0) (bytes-sent:65)
*Feb  4 03:25:07.835: //-1//RTSP:/rtsp_partial_socket_send: 
*Feb  4 03:25:07.835: rtsp_partial_socket_send: (fd:0 len:109) 400 bytes of data: 
<?xml version="1.0" encoding="UTF-8"?><speak> Good morning and thank you for calling Audium 
pharmacy.</speak>

O server TTS envia a resposta “EM ANDAMENTO” para FALA o pedido

*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

Depois que a alerta é jogada, o server TTS envia a resposta MRCP “SPEAK-COMPLETE” ao 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

O server ASR detecta o começo do discurso e notifica o gateway usando a resposta START-OF-SPEECH

*Feb  4 03:25:19.711: //-1//RTSP:/rtsp_process_single_svr_resp: 
*Feb  4 03:25:19.711: rtsp_process_single_svr_resp: 400 bytes of data: 
ANNOUNCE rtsp://10.86.177.39/recognizer RTSP/1.0
CSeq: 3
Session: 27b1560a_00000748_464c95e8_000b_0000
Content-Length: 61
Content-Type: application/mrcp

START-OF-SPEECH 17 IN-PROGRESS MRCP/1.0
Proxy-Sync-Id: 1

O gateway envia uma resposta de 200 APROVAÇÕES a MRCP anuncia o pedido

*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

O server ASR reconhece a palavra “reenche” e envia uma mensagem MRCP “RECOGNITION-COMPLETE” ao 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

Após ter recebido uma notificação bem sucedida do reconhecimento do server ASR, o gateway VXML envia um pedido do CARGO HTTP como especificado na etiqueta da SUBMISSÃO do documento VXML (2)

Este pedido do CARGO informa o server VXML que o usuário selecionou “reenche” a opção.

*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

O último documento VXML enviado pelo server VXML contém apenas a etiqueta da saída no formulário

Isto diz o gateway para terminar a sessão VXML.

*Feb  4 03:26:20.623: processing server rsp msg: msg(63ABB204)
URL:http://172.18.110.75:7000/CVP/Server, fd(0):
*Feb  4 03:26:20.623: Request msg: POST /CVP/Server HTTP/1.1
*Feb  4 03:26:20.623: Message Response Code: 200
*Feb  4 03:26:20.623: Message Rsp Decoded Headers:
*Feb  4 03:26:20.623: Date:Thu, 17 May 2007 15:49:57 GMT
*Feb  4 03:26:20.623: Content-Type:text/xml;charset=ISO-8859-1
*Feb  4 03:26:20.623: Connection:close
*Feb  4 03:26:20.623: Set-Cookie:JSESSIONID=NULL; Expires=Thu, 01-Jan-1970 00:00:10 GMT; 
Path=/CVP
*Feb  4 03:26:20.623: headers:
*Feb  4 03:26:20.623: HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Set-Cookie: JSESSIONID=NULL; Expires=Thu, 01-Jan-1970 00:00:10 GMT; Path=/CVP
Content-Type: text/xml;charset=ISO-8859-1
Date: Thu, 17 May 2007 15:49:57 GMT
Connection: close

 
*Feb  4 03:26:20.627: body:
*Feb  4 03:26:20.627: <?xml version="1.0" encoding="UTF-8"?>
<vxml version="2.0" xml:lang="en-us">
 <catch event="vxml.session.error">
  <exit />
 </catch>
 <catch event="telephone.disconnect.hangup">
  <exit />
 </catch>
 <catch event="telephone.disconnect">
  <exit />
 </catch>
 <catch event="error.unsupported.object">
  <exit />
 </catch>
 <catch event="error.unsupported.language">
  <exit />
 </catch>
 <catch event="error.unsupported.format">
  <exit />
 </catch>
 <catch event="error.unsupported.element">
  <exit />
 </catch>
 <catch event="error.unsupported.builtin">
  <exit />
 </catch>
 <catch event="error.unsupported">
  <exit />
 </catch>
 <catch event="error.semantic">
  <exit />
 </catch>
 <catch event="error.noresource">
  <exit />
 </catch>
 <catch event="error.noauthorization">
  <exit />
 </catch>
 <catch event="error.eventhandler.notfound">
  <exit />
 </catch>
 <catch event="error.connection.noroute">
  <exit />
 </catch>
 <catch event="error.connection.noresource">
  <exit />
 </catch>
 <catch event="error.connection.nolicense">
  <exit />
 </catch>
 <catch event="error.connection.noauthorization">
  <exit />
 </catch>
 <catch event="error.connection.baddestination">
  <exit />
 </catch>
 <catch event="error.condition.baddestination">
  <exit />
 </catch>
 <catch event="error.com.cisco.media.resource.unavailable">
  <exit />
 </catch>
 <catch event="error.com.cisco.handoff.failure">
  <exit />
 </catch>
 <catch event="error.com.cisco.callhandoff.failure">
  <exit />
 </catch>
 <catch event="error.com.cisco.aaa.authorize.failure">
  <exit />
 </catch>
 <catch event="error.com.cisco.aaa.authenticate.failure">
  <exit />
 </catch>
 <catch event="error.badfetch.https">
  <exit />
 </catch>
 <catch event="error.badfetch.http">
  <exit />
 </catch>
 <catch event="error.badfetch">
  <exit />
 </catch>
 <catch event="error">
  <exit />
 </catch>
 <catch event="disconnect.com.cisco.handoff">
  <exit />
 </catch>
 <catch event="connection.disconnect.hangup">
  <exit />
 </catch>
 <catch event="connection.disconnect">
  <exit />
 </catch>
 <form>
  <block>
   <exit />
  </block>
 </form>
</vxml>

O gateway termina o aplicativo VXML

*Feb  4 03:26:28.803: //63/972590A48011/VXML:/vxml_vapp_terminate:  
  vapp_status=0 ref_count 0
*Feb  4 03:26:28.803: //63//AFW_:/vapp_terminate: 
*Feb  4 03:26:28.803: //63//AFW_:/vapp_session_exit_event_name: Exit Event vxml.session.complete
*Feb  4 03:26:28.803: //63//AFW_:/AFW_M_VxmlModule_Terminate: 
*Feb  4 03:26:28.803: //63//AFW_:/vapp_checksessionstate: 
*Feb  4 03:26:28.803: //63//AFW_:/vapp_checkifdone: Object: 1, Leg: 1
*Feb  4 03:26:28.803: //63/972590A48011/VXML:/pop_exec_stack:  

*Feb  4 03:26:28.803: pop_exec_stack: sidp->vxmlp->urip=http://172.18.110.75:7000/CVP/Server
*Feb  4 03:26:28.803: //63/972590A48011/VXML:/vxml_leave_scope:  
  scope=application
*Feb  4 03:26:28.803: vxml_tree_delete:mem_mgr_mempool_free: mem_refcnt(6848EE98)=
0 - mempool cleanup
*Feb  4 03:26:28.803: vxml_tree_delete:mem_mgr_mempool_free: mem_refcnt(6848CD00)=
0 - mempool cleanupnls_mem_free
*Feb  4 03:26:28.803: nls_mem_free:mem_mgr_mempool_free: mem_refcnt(67651498)=
0 - mempool cleanup
*Feb  4 03:26:28.803: //63/972590A48011/VXML:/vxml_session_delete:  

*Feb  4 03:26:28.803: vxml_session_delete:mem_mgr_mempool_free: mem_refcnt(6848CD54)=
0 - mempool cleanup
*Feb  4 03:26:28.803: //63//AFW_:/vapp_checksessionstate: 
*Feb  4 03:26:28.803: //63//AFW_:/vapp_checkifdone: Object: 0, Leg: 0
*Feb  4 03:26:28.807: //63/972590A48011/CCAPI/ccCallDisconnect:
  Cause Value=16, Tag=0x0, Call Entry(Previous Disconnect Cause=0, Disconnect Cause=0)
*Feb  4 03:26:28.807: //63/972590A48011/CCAPI/ccCallDisconnect:
  Cause Value=16, Call Entry(Responsed=TRUE, Cause Value=16)

O gateway desliga chamar o lado ISDN

*Feb  4 03:26:28.807: ISDN Se3/0:23 Q931: TX -> DISCONNECT pd = 8  callref = 0x8099 
       Cause i = 0x8090 - Normal call clearing
*Feb  4 03:26:28.819: ISDN Se3/0:23 Q931: RX <- RELEASE pd = 8  callref = 0x0099
*Feb  4 03:26:28.819: ISDN Se3/0:23 Q931: TX -> RELEASE_COMP pd = 8  callref = 0x8099

O gateway desliga a sessão RTSP com o server ASR

*Feb  4 03:26:28.823: //-1//RTSP:/rtsplib_send_teardown: 
*Feb  4 03:26:28.823: ########################################
*Feb  4 03:26:28.823: Request
*Feb  4 03:26:28.823: TEARDOWN rtsp://10.86.177.39/recognizer RTSP/1.0
CSeq:  62
Session: 27b1560a_00000748_464c95e8_000b_0000

 
*Feb  4 03:26:28.975: //-1//RTSP:/rtsp_process_single_svr_resp: 
*Feb  4 03:26:28.975: rtsp_process_single_svr_resp: 400 bytes of data: 
RTSP/1.0 200 OK
CSeq: 62
Session: 27b1560a_00000748_464c95e8_000b_0000

O gateway desliga a sessão RTSP com o server TTS

*Feb  4 03:26:28.823: //-1//RTSP:/rtsp_partial_socket_send: 
*Feb  4 03:26:28.823: rtsp_partial_socket_send: (fd:0 len:111) 400 bytes of data: 
TEARDOWN rtsp://10.86.177.39/synthesizer RTSP/1.0
CSeq:  63
Session: 27b1560a_00000748_464c95e8_000b_0000


*Feb  4 03:26:28.979: rtsp_process_single_svr_resp: 400 bytes of data: 
RTSP/1.0 200 OK
CSeq: 63
Session: 27b1560a_00000748_464c95e8_000b_0000

Discussões relacionadas da comunidade de suporte da Cisco

A Comunidade de Suporte da Cisco é um fórum onde você pode perguntar e responder, oferecer sugestões e colaborar com colegas.


Informações Relacionadas


Document ID: 97213