Applications written in Voice eXtensible Markup Language (VoiceXML) provide access through a voice browser to content and services over the telephone, just as Hypertext Markup Language (HTML) provides access through a web browser running on a PC. The universal accessibility of the telephone and its ease of use makes VoiceXML applications a powerful alternative to HTML for accessing the information and services of the World Wide Web.

Applications written in Voice eXtensible Markup Language (VoiceXML) provide access through a voice browser to content and services over the telephone, just as Hypertext Markup Language (HTML) provides access through a web browser running on a PC. The universal accessibility of the telephone and its ease of use makes VoiceXML applications a powerful alternative to HTML for accessing the information and services of the World Wide Web.

Latest revision as of 17:25, 16 October 2012

Applications written in Voice eXtensible Markup Language (VoiceXML) provide access through a voice browser to content and services over the telephone, just as Hypertext Markup Language (HTML) provides access through a web browser running on a PC. The universal accessibility of the telephone and its ease of use makes VoiceXML applications a powerful alternative to HTML for accessing the information and services of the World Wide Web.

Cisco IOS VoiceXML Overview

The Cisco IOS VoiceXML feature provides a platform for interpreting VoiceXML documents. When a telephone call is made to the Cisco VoiceXML-enabled gateway, VoiceXML documents are downloaded from web servers, providing content and services to the caller, typically in the form of pre-recorded audio in an IVR application. Customers can access online business applications over the telephone, providing for example, stock quotes, sports scores, or bank balances.

VoiceXML brings the advantages of web-based development and content delivery to voice applications. It is similar to HTML in its simplicity and in its presentation of information. The Cisco IOS VoiceXML feature is based on the W3C VoiceXML 2.0 Working Draft and is designed to provide web developers great flexibility and ease in implementing VoiceXML applications.

Debugging Cisco VoiceXML Applications

This section describes troubleshooting at the script level. To troubleshoot Cisco VoiceXML scripts, enable the debug vxml error and debug vxml puts commands on the gateway.The debug vxml error command displays all errors on the console, and the debug vxml puts command prints debugging statements used with the <log> element in the VoiceXML document.

<cisco-debug>

<cisco-debug> is used to debug only a specific application. To disable debugging messages for all VoiceXML applications except the specific VoiceXML application you wish to debug, use the <cisco-debug> element in the VoiceXML document in conjunction with the debug condition application voice command.

Refer to the Cisco IOS TCL and VoiceXML Application Guide for information on debug commands.

Note:

Before you use Cisco IOS debug commands to debug a specific application, add <cisco-debug> to the VoiceXML document for the application you want to debug.

For example:

SUMMARY STEPS

Turn on global debug.

Add the <cisco-debug enabled = "true"/> and <cisco-debug enabled = "false"/> elements around the specific part of the VoiceXML document where you want to see debugging messages.

Add conditional debugging to the specific application.

DETAILED STEPS

1. Turn on global debug for the areas you want to debug. For example:

debug vxml application
debug vxml trace

Note:

If you do not proceed with step 2 and end your task with step 1, you see error messages for all the applications, irrespective of conditional debug being turned on or off.

To debug only one of the applications, for example myapp1, use the debug condition application voice command to disable debug messages for the other applications, myapp2 and myapp3.

debug condition application voice myapp1

Note:

Debugging for myapp1 is performed for only those debug areas that have been enabled in step 1 above. Debugging for the specific session must be enabled through the <cisco-debug> tag as shown in step 2 above.

Error Events

Enabling the debug vxml error command displays a list of possible error events on the console. For a list of error events, see the Tcl IVR Events and Status Codes section.

Some of the possible errors generated with the debug vxml error command enabled are:

error.badfetch

Possible Causes

Suggested Actions

The VoiceXML interpreter throws this event when there is a failure in retrieving external components in the application. These external components can be VoiceXML documents, prerecorded files, or grammar files.

A badfetch error usually occurs when there is an error in fetching an external document.

Verify that the external documents, audio prompts, or grammar files are available at the specified location mentioned in the URL.

If the external components are stored on a HTTP server, enable the debug http client error command. * If the external components are stored on a RTSP server, search for error.badfetch.rtsp.xxx, where xxx is a RTSP response code. For values of RTSP response codes, refer to RFC 2326 available on the IETF website at http://www.ietf.org/.

error.semantic

Possible Causes

Suggested Actions

Logical errors such as referencing an undefined variable.

Verify that all variables referenced in the script are valid and defined.

Defining different grammar types in the same scope in the VoiceXML application.

Verify that only one grammar type is used at the time of recognizing user input.

Failure to define mandatory parameters in Cisco objects. For example, failure to define the account parameter in the authorize object results in a semantic error.

Verify that all mandatory parameters are defined in Cisco objects used in the script.

error.unsupported.format

Possible Causes

Suggested Actions

A resource format is not supported by the platform.

Verify that all formats used in the script are supported by the specific platforms being used.

JavaScript or ECMA Script

When the <script> element or ECMA expression is used in a VoiceXML document, enable the debug java command for debugging.

Troubleshooting Speech Recognition and Synthesis

The Speech Recognition and Synthesis feature provides interfaces to ASR and TTS media servers by using Media Resource Control Protocol (MRCP), an application-level protocol developed by Cisco and its ASR and TTS media server partners, Nuance Communications and SpeechWorks International. Client devices that are processing audio or video streams use MRCP to control media resources on external media servers, such as speech synthesizers for TTS and speech recognizers for ASR. The Cisco gateway, running a voice application, and the media servers providing speech recognition and speech synthesis, maintain a client/server relationship through an RTSP connection; the gateway is the RTSP client and the RTSP server is the streaming media server providing speech recognition and speech synthesis.

While doing speech recognition, the gateway creates a separate G.711 u-law RTP stream to the media server, enabling the gateway to simultaneously perform speech synthesis or play audio files using a different codec.

Troubleshooting ASR and TTS Server Functionality

SUMMARY STEPS

debug vxml error and debug vxml event

debug mrcp error

debug rtsp error, debug rtsp session, and debug rtsp socket

DETAILED STEPS

1. Use the debug vxml error and debug vxml event commands to verify that the external media server is reachable and its location is configured on the gateway or in the VoiceXML document. In the following example, the application failed because the media server is not configured on the gateway or in the VoiceXML document.: