Both Tcl IVR 2.0 and VoiceXML can support extremely complex applications. These complex applications are built by stringing together basic functions that fall into the following categories:
MGCP is not supported with Tcl or VoiceXML applications. To support applications, the gateway must have local control of the call.
The main difference between Tcl and VoiceXML is that the router executes a Tcl script, whereas a VoiceXML script is a client-server model. If the gateway associates a call with a VoiceXML application, the application loads the appropriate VoiceXML document that can call for the gateway to interact with various web applications. This document might play audio prompts and collect digits. You can load additional VoiceXML documents based on the caller input.
Both Tcl and VoiceXML servers can utilize external RADIUS authentication, authorization, and accounting (AAA) servers for authentication and billing and TFTP servers for storing of scripts or prompts.
Figure 15-1 shows the interaction between a caller and a typical Tcl application providing prepaid calling card service. The caller dials a toll-free access number. The Tcl script prompts the caller for his calling card number, his personal identification number (PIN), and the number he wants to reach. After the Tcl application authenticates the calling card number and PIN with the AAA server, it extends the call to the remote gateway. The remote gateway then completes the call to the destination.
Figure 15-1. Caller Interaction with a Tcl Application
Figure 15-2 shows the interaction between a caller and a VoiceXML auto attendant (AA) application. The application prompts the user for his account number and uses this to access the customer records. The web application can then prompt the caller through checking balances, transferring funds, or other self-help activities, or it can transfer the caller to an agent for personalized service.
Figure 15-2. Caller Interaction with a VoiceXML Application
Tcl IVR 2.0 added support for Real Time Streaming Protocol (RTSP) servers. This allows you to store the audio files, or prompts, on the external server and stream them directly to the caller. This increases both the size and number of prompts that you can use in an application. Prompts that you store in the flash of the gateway or on a TFTP server are loaded into the DRAM and are played from DRAM to the caller. The applications discussed in this chapter would not typically require an RTSP server.
If a custom application requires access to servers for prompts or data retrieval, you should consider survivability if the servers are not accessible. For example, Cisco Voice Portal (CVP) includes a call survivability script that attempts to transfer callers to an alternate location in the event of CVP application errors.
Developing Tcl or VoiceXML scripts requires knowledge of programming that is beyond the scope of this book. Cisco provides numerous Tcl applications, some of which are described in the next section. This chapter focuses on implementing Tcl scripts using these Cisco-provided applications for illustration purposes. The methods for implementing VoiceXML applications are similar from the gateway perspective.
Cisco provides two excellent resources for developing your own Tcl or VoiceXML applications. The TCL IVR API Version 2.0 Programmer's Guide and Cisco VoiceXML Programmer's Guide are available from Cisco.com to registered users. Aspiring Tcl programmers should also review the wealth of information that is available at http://www.tcl.tk.
Cisco Systems also has a fee-based application development group that can develop an application to your specifications. In addition, a Cisco Technology Developer Program can provide support to third-party developers. Information on these programs is available from Cisco.com or from your Cisco account team.
Only Tcl/VoiceXML applications that are developed through the Cisco Technology Developer Program are supported by the Cisco Technical Assistance Center (TAC).
Part I: Voice Gateways and Gatekeepers
Gateways and Gatekeepers
Part II: Gateways
Media Gateway Control Protocol
Session Initiation Protocol
Connecting to the PSTN
Connecting to PBXs
Connecting to an IP WAN
Influencing Path Selection
Configuring Class of Restrictions
SRST and MGCP Gateway Fallback
Using Tcl Scripts and VoiceXML
Part III: Gatekeepers
Part IV: IP-to-IP Gateways
Cisco Multiservice IP-to-IP Gateway
Appendix A. Answers to Chapter-Ending Review Questions