×

Warning message

  • Cisco Support Forums is in Read Only mode while the site is being migrated.
  • Cisco Support Forums is in Read Only mode while the site is being migrated.

Problem in getting IVR prompt - Voice XML Gateway

Document

Mon, 09/30/2013 - 01:12
Sep 26th, 2013
User Badges:
  • Gold, 750 points or more



Introduction


This document covers the troubleshooting procedure to resolve the issue when caller doesnot get IVR Prompt as expected when call routed through CUBE/ VXML gateway to Cisco Voice Portal - IVR system.


Voice Extensible Markup Language (VXML) is a standard defined by the World Wide Web Consortium (W3C). VXML is designed to create audio dialogs that provide synthesized speech, recognition of spoken words, recognition of DTMF digits and recordings of spoken audio. The VXML server and clients use the well-known HTTP protocol to exchange VXML documents and pages.

Cisco Voice Portal (CVP) delivers intelligent and interactive voice response (IVR) applications that can be accessed over the phone.


Problem Description


Incoming call to IVR, caller unable to hear audio prompt. We get these type of issues for new installation or deployment failure impacting business and we see such issues end up being configuration missing.


Sample Call Flow:

SIP provider --- SIP --- CUBE/VXML GW ---- SIP --- CUSP --- SIP --- CVP --- ICM


Troubleshooting


Enabled the below debugs on CUBE/VXML GW:


!
debug ccsip messages
debug voip ccapi inout
debug http client all
debug voip application vxml all


//CUBE logs display, the Incoming call is sent to CVP via CUSP


//CUBE rcv the VRU leg INVITE from CVP via CUSP
!


//Snippet of the INVITE with SDP with relevant headers that we need to look at

003583: .Sep 19 23:24:33.923 Eastern: //-1/xxxxxxxxxxxx/SIP/Msg/ccsipDisplayMsg:
Received:
INVITE sip:[email protected] SIP/2.0
Via: SIP/2.0/TCP 10.25.140.111:5060;branch=z9hG4bK6sAbxZ4ucju8ekH1H9PdnQ~~4019314
Via: SIP/2.0/TCP 10.25.140.130:5060;branch=z9hG4bKbtfj4GSJXb3UV7OFtgGhxw~~4828172
To: <sip:[email protected];transport=tcp>
From: "WIRELESS CALLER" <sip:[email protected]:5060>;tag=dsca2b472
Contact: <sip:[email protected]:5060;transport=tcp>
Remote-Party-ID: "WIRELESS CALLER" <sip:[email protected]>;party=calling;screen=no;privacy=off
Call-ID: [email protected]
User-Agent: CVP 8.5 (1) ES=6 Build=36
Call-Info: <sip:10.250.140.13:5060>;purpose=x-cisco-origIP
App-Info: <10.25.140.130:8000:8443>

003584: .Sep 19 23:24:33.927 Eastern: //-1/00F3D3B684DB/CCAPI/cc_api_display_ie_subfields:
cc_api_call_setup_ind_common:
cisco-username=3307041492
----- ccCallInfo IE subfields -----
cisco-ani=3307041492
cisco-anitype=0
cisco-aniplan=0
cisco-anipi=0
cisco-anisi=0
dest=555401950000999931519



//Inbound Dial-peer 9999 is matched:
!
003585: .Sep 19 23:24:33.927 Eastern: //-1/00F3D3B684DB/CCAPI/cc_api_call_setup_ind_common:
Interface=0x315BC91C, Call Info(
Calling Number=3307041492,(Calling Name=)(TON=Unknown, NPI=Unknown, Screening=Not Screened, Presentation=Allowed),
Called Number=555401950000999931519(TON=Unknown, NPI=Unknown),
Incoming Dial-peer=9999, Progress Indication=NULL(0), Calling IE Present=TRUE,


//Below is the dial-peer 9999
!
dial-peer voice 9999 voip
description CVP IVR dial-peer
service bootstrap


//Call is handed off by CCAPI to "_ManagedAppProcess_bootstrap" service
!
003598: .Sep 19 23:24:33.927 Eastern: //1015/00F3D3B684DB/CCAPI/cc_process_call_setup_ind:
>>>>CCAPI handed cid 1015 with tag 9999 to app "_ManagedAppProcess_bootstrap"


//This call gets connected on the Incoming leg to provider:
!
003600: .Sep 19 23:24:33.931 Eastern: //1015/00F3D3B684DB/CCAPI/ccCallConnect:
Progress Indication=NULL(0), Data Bitmask=0x0



//VXML gateway starts the execution of the bootstrap.vxml VoiceXML script:
!
003608: .Sep 19 23:24:33.963 Eastern: //1015//VXML:/Open_CallHandoff:
!
003629: .Sep 19 23:24:33.975 Eastern: //1015/00F3D3B684DB/VXML:/vxml_vxml_proc:
<vxml>
URI(abs):flash:bootstrap.vxml
scheme=flash
path=bootstrap.vxml
base=
URI(abs):flash:bootstrap.vxml
scheme=flash
path=bootstrap.vxml lang=none version=2.0
<script>:
!
003630: .Sep 19 23:24:34.039 Eastern: //1015/00F3D3B684DB/VXML:/vxml_expr_eval:
<var>: namep=handoffstring expr=session.handoff_string
!
003633: .Sep 19 23:24:34.039 Eastern: //1015/00F3D3B684DB/VXML:/vxml_expr_eval:
003634: .Sep 19 23:24:34.039 Eastern: expr=var handoffstring=session.handoff_string
<var>: namep=MSG_TYPE expr='PING'
!
003635: .Sep 19 23:24:34.039 Eastern: //1015/00F3D3B684DB/VXML:/vxml_expr_eval:
003636: .Sep 19 23:24:34.039 Eastern: expr=var MSG_TYPE='PING'
<var>: namep=PROTOCOL expr=getValue('PROTOCOL')
!


*** Verify all the "/VXML:/vxml_expr_eval:" debug messages to check the execution of the bootstrap.vxml VoiceXML script ***


// And goes through the below mandatory steps:
!
The script extracts required parameters and then hands off the call to the bootstrap VXML service which calls the bootstrap.vxml file.
!
The VXML then sends request to the Customer Voice Portal (CVP) IVR Service which kicks off a sequence of VXML communications between the VXML Gateway and the CVP IVR Service.
!


++ For SIP calls, this script extracts Call GUID, Call Server URL, and DNIS.
++ For SIP calls, the cvpserverhost parameter is overridden by the call server info in the SIP App Header Info.


//Thus, the script will check if this is SIP call, and look for App-Info Header in the SIP Invite and extract the parameters like CVPserverhost IP address


//However, from the VXML gateway debugs, we see that it is sending HTTP requet to VXML server IP address 10.23.140.111:8000 to get the VXML documents with the relevant audio prompt to play
!
003693: .Sep 19 23:24:34.051 Eastern: //1015/00F3D3B684DB/VXML:/vxml_vapp_bgload_from_proc:
urlp=http://10.25.140.111:8000/cvp/VBServlet?MSG_TYPE=PING&CALL_DNIS=555401950000999931519&CALL_ANI=3307041492C3&ERROR_CODE=0&RECOVERY_VXML=flash:recovery.vxml&CLIENT_TYPE=IOS&CALL_ID=00F3D3B620DB11E384DBCE03972FCF89&CALL_LEGID=&CALL_UUI=&VERSION=CVP_8_5_1_0_0_0_312 fetchaudio=NULL delay=0 minimum=0



//VXML gateway, now sending the 200ok for the Invite that it recieved:
!
003703: .Sep 19 23:24:34.091 Eastern: //-1/xxxxxxxxxxxx/SIP/Msg/ccsipDisplayMsg:
Sent:
SIP/2.0 200 OK
Via: SIP/2.0/TCP 10.25.140.111:5060;branch=z9hG4bK6sAbxZ4ucju8ekH1H9PdnQ~~4019314,SIP/2.0/TCP 10.25.140.130:5060;branch=z9hG4bKbtfj4GSJXb3UV7OFtgGhxw~~4828172
From: "WIRELESS CALLER" <sip:[email protected]:5060>;tag=dsca2b472
To: <sip:[email protected];transport=tcp>;tag=21DD344-1CDE
Date: Fri, 20 Sep 2013 03:24:33 GMT
Call-ID: [email protected]
CSeq: 1 INVITE
Contact: <sip:[email protected]:5060;transport=tcp>



//VXML gateway, displays "internal client transmit error" at the VXML script layer
!
003704: .Sep 19 23:24:34.115 Eastern: //1015//HIFS:/hifs_http_cb: hifs http callback: load of http://10.25.140.111:8000/cvp/VBServlet?MSG_TYPE=PING&CALL_DNIS=555401950000999931519&CALL_ANI=3307041492&ERROR_CODE=0&RECOVERY_VXML=flash:recovery.vxml&CLIENT_TYPE=IOS&CALL_ID=00F3D3B620DB11E384DBCE03972FCF89&CALL_LEGID=&CALL_UUI=&VERSION=CVP_8_5_1_0_0_0_312 failed. Status=httpc error -5=internal client transmit error
003705: .Sep 19 23:24:34.115 Eastern: //1015//AFW_:/vapp_bgload_done: status=httpc error -5=internal client transmit error



//VXML gateway display "fetch audio load fail" error:
!
003711: .Sep 19 23:24:34.115 Eastern: //1015/00F3D3B684DB/VXML:/vxml_stop_fetchaudio_load_fail:



//VXML Gateway, attempts to try to reach the CVPserver host IP:
!
003804: .Sep 19 23:24:34.183 Eastern: Couldn't contact IVR Service at CVP Call Server. Retrying CVP Call Server: DNIS: 555401950000999931519
003805: .Sep 19 23:24:34.183 Eastern: //1015/00F3D3B684DB/VXML:/vxml_submit_proc:
<submit>: caching=fast fetchhint=invalid fetchtimeout=7 maxage=-1 maxstale=-1
expr=PRIMARY_CVP_URL


At this stage, caller is not hearing the expected IVR prompt


Solution



VXML gateway is unable to fetch the audio from the VXML server, and thus caller doent hear the audio prompt


//Since this is SIP call, checked if the Incoming SIP Invite had the App-Info header, and it was present
!
003583: .Sep 19 23:24:33.923 Eastern: //-1/xxxxxxxxxxxx/SIP/Msg/ccsipDisplayMsg:
Received:
INVITE sip:[email protected] SIP/2.0
Via: SIP/2.0/TCP 10.25.140.111:5060;branch=z9hG4bK6sAbxZ4ucju8ekH1H9PdnQ~~4019314
Via: SIP/2.0/TCP 10.25.140.130:5060;branch=z9hG4bKbtfj4GSJXb3UV7OFtgGhxw~~4828172
App-Info: <10.25.140.130:8000:8443>


//Based on the VXML script, the cvpserverhost parameter is over-ridden by the App-Info header information, thus we dont need to add this parameter in the script
!


//SIP gateway, requires mandatory command "header-passing" which is configured under "voice service voip" "sip" section
This command is to pass data contained within SIP headers arriving at the gateway to VXML application


// If VXML script, didnt find an App-Info header, Extracts the originating IP address from the INVITE


Checked the configuration on the VXML gateway, and the command was missing, which explained, why the PING HTTP request was going to the originating IP 10.25.140.111 ( which is CUSP IP in customer setup ), instead of VXML server IP which was in the App-Info header:10.25.140.130


Added the below configuration:
!
voice service voip
sip
header-passing sip-sip
!


Test calls been made and caller started getting IVR Prompt as expected.



Loading.
Sivanesan Rethinam Fri, 09/27/2013 - 01:01
User Badges:

Hi - You mean to say INVITE comes fom CVP SIP ---> VXML G/W for VRU Treatment should have App-Info:  Header, Am i Right?



Regards,

Sivanesan R

Muthurani Lavan... Mon, 09/30/2013 - 01:12
User Badges:
  • Gold, 750 points or more

Yes Sivanesan, VXML Gateway should have App-info header.

Add this configuration: This command is to pass data contained within SIP headers arriving at the gateway to VXML application.
!
voice service voip
sip
header-passing sip-sip
!


Regards

Lavanya

Actions

This Document

Related Content