Table Of Contents
Overview of Cisco IOS Tcl IVR and VoiceXML Applications
Contents
Prerequisites for Implementing Tcl IVR and VoiceXML Applications
Memory Requirements for Interpreting a VoiceXML Document
Gateway Prerequisite Configuration
VCWare Version on Cisco AS5300
Call Admission Control
HTTP Server
Installing Apache PHP Server Software
Enabling Chunked Transfer
Additional References
Related Documents
Related Websites
Standards
MIBs
RFCs
Technical Assistance
Overview of Cisco IOS Tcl IVR and VoiceXML Applications
Tcl and VoiceXML applications on the Cisco gateway provide Interactive Voice Response (IVR) features and call control functionality such as call forwarding, conference calling, and voice mail.
IVR systems provide information through the telephone in response to user input in the form of spoken words or dual tone multifrequency (DTMF) signaling. The Cisco voice gateway allows an IVR application to be used during call processing. A Cisco voice gateway can have several IVR applications to accommodate many different services, and you can customize the IVR applications to present different interfaces to various callers.
Voice applications can be developed using one or both of these two scripting languages:
•
Tcl IVR 2.0—Tcl-based scripting with a proprietary Cisco API. Provides extensive call control capabilities, signaling, and GTD manipulation.
•
VoiceXML—Standards-based markup language for voice browsers. Existing web server and application logic can be used for VoiceXML applications, requiring less time and money to build infrastructure and perform development than traditional proprietary IVR systems require.
For information on developing and implementing a VoiceXML document or Tcl script for use with your voice application, see the following guides:
•
Cisco VoiceXML Programmer's Guide
•
Tcl IVR API Version 2.0 Programmer's Guide
For more information about Cisco IOS voice features, see the entire Cisco IOS Voice Configuration Library—including library preface and glossary, feature documents, and troubleshooting information—at http://www.cisco.com/en/US/docs/ios/12_3/vvf_c/cisco_ios_voice_configuration_library_glossary/vcl.htm.
Note
For releases prior to Cisco IOS Release 12.3(14)T, see the previous version of the Cisco IOS Tcl IVR and VoiceXML Application Guide at: http://www.cisco.com/univercd/cc/td/doc/product/software/ios123/123cgcr/vvfax_c/tcl_leg/index.htm
Contents
•
Prerequisites for Implementing Tcl IVR and VoiceXML Applications
•
Additional References
Prerequisites for Implementing Tcl IVR and VoiceXML Applications
The following sections describe the prerequisites necessary for configuring a Tcl IVR or VoiceXML application on the Cisco gateway:
•
Memory Requirements for Interpreting a VoiceXML Document
•
Gateway Prerequisite Configuration
•
VCWare Version on Cisco AS5300
•
Call Admission Control
•
HTTP Server
Note
When developing and configuring a voice application, also refer to the Cisco VoiceXML Programmer's Guide or the Tcl IVR API Version 2.0 Programmer's Guide.
Memory Requirements for Interpreting a VoiceXML Document
For the smallest document, the minimum memory that the Cisco IOS software and VoiceXML interpreter uses for a call is approximately 128 KB. The maximum memory allowed is approximately 380 KB. This is allocated as follows:
•
The underlying system, including the telephony signaling software and JavaScript Expressions context, requires approximately 120 KB for a call.
•
Each VoiceXML document can use a maximum of 65 KB of internal memory. The amount of memory that each document requires cannot be calculated by counting tags or lines in a VoiceXML document, but generally the memory required correlates to the size of the document.
Gateway Prerequisite Configuration
Step 1
Establish a working IP network using the Cisco gateway.
Step 2
Configure VoIP on the gateway, including voice ports and dial peers.
For information on configuring IP networking, VoIP, and ISDN, refer to the appropriate software configuration guide for your Cisco gateway:
•
Software Configuration Guide for Cisco 2600 Series, Cisco 3600 Series and Cisco 3700 Series Routers
•
Cisco 2800 Series Software Configuration
•
Cisco 3800 Series Software Configuration
•
Cisco AS5300 Software Configuration Guide
•
Cisco AS5350 and Cisco AS5400 Universal Gateway Software Configuration Guide
•
Cisco AS5800 Operations, Administration, Maintenance, and Provisioning Guide
•
Cisco AS5850 Operations, Administration, Maintenance, and Provisioning Guide
Step 3
For Tcl IVR 2.0 applications, download any necessary certified Cisco Tcl scripts or audio files from the following location:
http://www.cisco.com/pcgi-bin/tablebuild.pl/tclware
Step 4
For Voice Store and Forward, the mail application Tcl script, named voicemail-offramp.tcl, must be downloaded to your TFTP server. See the "Downloading the Tcl Script for Off-Ramp Mail Application" section for instructions on how to download the mail application script.
Step 5
On Cisco 3600 series gateways, the codec type used for recordings must be compatible with the codecs supported by the codec complexity command on the gateway. The setting of the codec complexity command determines the supported codecs. See the "Modifying Codec Complexity on the Cisco 3600 Series" section for instructions on how to change the codec complexity.
VCWare Version on Cisco AS5300
Cisco VCWare release required for the Cisco AS5300 VFC:
•
Release 10.26a or later with DSPWare 4.0.26
Note
You can verify your VCWare version by using the show vfc slot version vcware privileged EXEC command, where slot is the slot number (0 to 2) of the VFC card.
For more information on VCWare versions and installation:
•
Overview of the VCWare version required for this feature: Release Notes for Cisco VCWare on Cisco AS5300 Universal Access Servers/Voice Gateways
•
Descriptions of the different VCWare releases: Cisco VCWare Compatibility Matrix for the Cisco AS5300 Universal Access Server/Voice Gateway
•
Download instructions: Voice over IP for the Cisco AS5300, "VFC Management" section.
Call Admission Control
Call admission control for calls handled by Tcl 1.0, Tcl IVR 2.0, and VoiceXML applications can be configured by setting the percentages of memory and CPU utilization that are optimal for the Cisco voice gateway and for the particular application scenario. When the percentage levels are set, incoming calls are denied whenever the current system CPU or memory usage (or a combination of these) exceeds the resource thresholds. This denial prevents the gateway from overloading.
The default is 89% for the CPU and 98% for RAM. However, on a high-end platform such as the Cisco AS5400, resource thresholds can be increased to accommodate more calls. To configure call admission control and set the optimal system CPU and RAM usage thresholds, use the call treatment and call threshold commands.
Tip
The following is a recommended configuration for extreme performance conditions. The voice gateway rejects calls if the configured thresholds for CPU usage and memory usage for call treatment are exceeded.
Router(config)# call treatment on
Router(config)# call threshold global cpu-5sec low 50 high 80 treatment
Router(config)# call threshold global total-mem low 80 high 90 treatment
For detailed instructions on configuring call admission control, refer to the Trunk Connections and Conditioning Features document, Cisco IOS Voice Configuration Library, Release 12.3.
HTTP Server
The web server must support Hypertext Transfer Protocol (HTTP) 1.1. Cisco voice applications are tested for compatibility with web servers running Apache software; compatibility with other web servers is not verified. For instructions on installing Apache PHP software for use with Cisco voice applications, see the following procedures.
For information about the supported HTTP 1.1 features, see the "HTTP Client Support" section.
Installing Apache PHP Server Software
Step 1
Untar the php-4.0.4pl1.tar file.
Step 2
Untar the apache_1.3.17.tar file to a new directory.
Step 3
Modify the php-4.0.4pl1/sapi/apache/mod_php4.c file:
Change the line "if ((retval = setup_client_block(r, REQUEST_CHUNKED_ERROR)))" to "if ((retval = setup_client_block(r, REQUEST_CHUNKED_DECHUNK)))"
Step 4
cd to php-4.0.4pl1 directory.
Run configure, specifying the path to apache sources
(for example, /configure apache=/local/http/apache_1.3.17)
un "make" followed by "make install" from the preceding directory.
Step 5
cd to apache directory (for example, cd /local/http/apache_1.3.17).
Execute the following:
•
configure prefix=/local/http/apache
•
make
•
make install
Step 6
Start your HTTP server in su mode:
/local/http/apache/bin/apachectl start
Enabling Chunked Transfer
When recording audio files to an HTTP server, audio data is moved in chunks from the gateway using the "chunked" Transfer-Encoding method. To accept streaming recording, the chunked transfer capability must be enabled on the web server. To enable chunked transfer on the Apache PHP server, perform the following steps:
Step 1
Turn on the following flag:
./php-4.0.3p11/sapi/apache/mod_php4.c
Step 2
Recompile the Apache PHP server code.
For more information, refer to the Apache Software Foundation website.
Additional References
The following sections provide references related to Cisco IOS Tcl IVR and VoiceXML.
Related Documents
Related Topic
|
Document Title
|
Cisco IOS
|
Cisco IOS configuration examples
|
Cisco Systems Technology Support website at http://cisco.com/en/US/tech/index.html. Choose a technology category and subsequent hierarchy of subcategories. Under Configure, click Configuration Examples and Tech Notes.
|
Cisco IOS debug command reference
|
Cisco IOS Debug Command Reference, Release 12.4T at http://www.cisco.com/univercd/cc/td/doc/product/software/ios123/123tcr/123dbr/index.htm
|
Cisco IOS troubleshooting information
|
Cisco IOS Voice Troubleshooting and Monitoring Guide at http://www.cisco.com/univercd/cc/td/doc/product/software/ios123/123cgcr/vvfax_c/voipt_c/index.htm
|
Cisco IOS voice command reference
|
Cisco IOS Voice Command Reference, Release 12.3T at http://www.cisco.com/univercd/cc/td/doc/product/software/ios123/123tcr/123tvr/index.htm
|
Cisco IOS Voice Configuration Library preface and glossary
|
Cisco IOS Voice Configuration Library at http://www.cisco.com/en/US/docs/ios/12_3/vvf_c/cisco_ios_voice_configuration_library_glossary/vcl.htm.
|
API guides
|
|
VoiceXML elements and attributes
|
Cisco VoiceXML Programmer's Guide
|
Tcl verbs and attributes
|
Tcl IVR Version 2.0 Programmer's Guide
|
Hardware installation guides
|
|
Cisco AS5300 hardware installation instructions
|
Hardware installation documents for Cisco AS5300
|
Cisco AS5350 hardware installation instructions
|
Hardware installation documents for Cisco AS5350
|
Cisco AS5400 hardware installation instructions
|
Hardware installation documents for Cisco AS5400
|
Software configuration guides
|
|
Cisco 3600 series prerequisite software configuration
|
Software Configuration Guide for Cisco 2600 Series, Cisco 3600 Series and Cisco 3700 Series Routers
|
Cisco 2800 series prerequisite software configuration
|
Cisco 2800 Series Software Configuration
|
Cisco 3800 series prerequisite software configuration
|
Cisco 3800 Series Software Configuration
|
Cisco AS5300 prerequisite software configuration
|
Cisco AS5300 Software Configuration Guide
|
VCWare releases
|
Cisco VCWare Compatibility Matrix for the Cisco AS5300 Universal Access Server/Voice Gateway
|
VCWare version requirements
|
Release Notes for Cisco VCWare on Cisco AS5300 Universal Access Servers/Voice Gateways
|
VCWare download instructions
|
Voice over IP for the Cisco AS5300, "VFC Management" section.
|
Cisco AS5350 prerequisite software configuration
|
Cisco AS5350 and Cisco AS5400 Universal Gateway Software Configuration Guide
|
Cisco AS5800 prerequisite software configuration
|
Cisco AS5800 Operations, Administration, Maintenance, and Provisioning Guide
|
Cisco AS5850 prerequisite software configuration
|
Cisco AS5850 Operations, Administration, Maintenance, and Provisioning Guide
|
Dial peer configuration
|
Dial Peer Configuration, Cisco IOS Voice Configuration Library, Release 12.3
|
H.323 gateway configuration
|
Cisco IOS H.323 Configuration Guide, Release 12.3
|
MGCP configuration
|
Cisco IOS MGCP and Related Protocols Configuration Guide, Release 12.3
|
SIP configuration
|
Cisco IOS SIP Configuration Guide, Release 12.3
|
Fax Relay and store and forward fax configuration
|
Cisco IOS Fax Services over IP Application Guide, Release 12.3
|
AAA configuration
|
"Authentication, Authorization, and Accounting (AAA)" chapter in Cisco IOS Security Configuration Guide, Release 12.3
|
VSAs used for call detail records (CDRs)
|
RADIUS Vendor-Specific Attributes Voice Implementation Guide
|
Codec support
|
VoIP—Understanding Codecs: Complexity, Support, MOS, and Negotiation
|
Call Transfer
|
Call transfer and forward configuration
|
Cisco IOS Call Transfer and Call Forwarding Supplementary Services
|
GTD configuration
|
GTD for GKTMP Using SS7 Interconnect for Voice Gatekeeper Version 2.0
|
GTD configuration
|
R2 and ISUP Transparency for Voice Gateways Version 2.0
|
AAA configuration
|
Cisco IOS Security Configuration Guide, Release 12.3
|
Cisco SC2200 configuration
|
Cisco SC2200 Signaling Controller documentation
|
Miscellaneous
|
|
Release notes
|
Cisco IOS Release 12.3 Cross-Platform Release Notes
|
Network module specifications for Cisco 3600 series
|
Cisco Network Modules Hardware Installation Guide
|
Related Websites
Standards
Standards
|
Title
|
ANSI T1.661 SS7
|
Release To Pivot
|
ANSI T1.688 SS7
|
Facility Request To Pivot
|
ECMA-262
|
ECMAScript Language Specification, 3rd edition August 1998
|
ITU-T H.450.2
|
Call transfer supplementary service for H.323
|
ITU-T H.450.3
|
Call diversion supplementary service for H.323
|
Telcordia GR-2857-CORE
|
Generic Requirements for SS7 Release to Pivot Network Capability
|
Telcordia GR-2865-CORE
|
Generic Requirements for ISDN PRI Two B-Channel Transfer
|
Telcordia GR-3016-CORE
|
Operator Services Generic Requirements for the Use of Signaling System 7 (SS7) Release to Pivot (RTP) Phase II Network Capability
|
VoiceXML 2.1
|
W3C Candidate Recommendation (June 13, 2005)
|
MIBs
MIBs
|
MIBs Link
|
• CISCO-VOICE-DIAL-CONTROL-MIB
• CISCO-VOICE-DNIS-MIB
|
To locate and download MIBs for selected platforms, Cisco IOS releases, and feature sets, use Cisco MIB Locator found at the following URL:
http://www.cisco.com/go/mibs
|
RFCs
RFCs
|
Title
|
RFC 821
|
Simple Mail Transfer Protocol
|
RFC 822
|
Standard for the Format of ARPA Internet Text Messages
|
RFC 1341
|
MIME (Multipurpose Internet Mail Extensions), June 1992
|
RFC 1652
|
SMTP Service Extension for 8bit-MIME Transport
|
RFC 1869
|
SMTP Service Extensions
|
RFC 1891
|
SMTP Service Extension for Delivery Status Notifications
|
RFC 1892
|
Multipart/Report Content Type for the Reporting of Mail System Administrative Messages
|
RFC 1893
|
Enhanced Mail System Status Codes
|
RFC 1894
|
An Extensible Message Format for Delivery Status Notifications
|
RFC 1896
|
The Text/Enriched MIME Content-Type
|
RFC 2034
|
SMTP Service Extension for Returning Enhanced Error Codes
|
RFC 2045
|
Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies
|
RFC 2046
|
Multipurpose Internet Mail Extensions (MIME) Part Two: Media Types
|
RFC 2047
|
MIME (Multipurpose Internet Mail Extensions) Part Three: Message Header Extensions for Non-ASCII Text
|
RFC 2068
|
Hypertext Transfer Protocol—HTTP/1.1, January 1997
|
RFC 2109
|
HTTP State Management Mechanism
|
RFC 2197
|
SMTP Service Extension for Command Pipelining
|
RFC 2298
|
An Extensible Message Format for Message Disposition Notifications
|
RFC 2326
|
Real-Time Streaming Protocol, April 1998
|
RFC 2368
|
The Mailto URL Scheme, July 1998
|
RFC 2616
|
Hypertext Transfer Protocol HTTP/1.1, June 1999
|
Technical Assistance
Description
|
Link
|
Technical Assistance Center (TAC) home page, containing 30,000 pages of searchable technical content, including links to products, technologies, solutions, technical tips, and tools. Registered Cisco.com users can log in from this page to access even more content.
|
http://www.cisco.com/public/support/tac/home.shtml
|
Developers using this guide may be interested in joining the Cisco Developer Support Program. This program was created to provide you with a consistent level of support that you can depend on while leveraging Cisco interfaces in your development projects.
|
http://www.cisco.com/en/US/products/svcs/ps3034/ps5408/ps5418/serv_home.html
developer-support@cisco.com
|