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.
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.
//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
*** 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
//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
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:firstname.lastname@example.orgSIP/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.