TCL IVR API Version 1.0 Programmer s Guide
|
|
|
- Virgil Aldous Moody
- 10 years ago
- Views:
Transcription
1 Text Part Number: OL TCL IVR API Version 1.0 Programmer s Guide Version Date: 03/11/02 This document contains information about the Tool Command Language (TCL) Interactive Voice Response (IVR) application programming interface (API) Version 1.0 commands that you can use to write TCL scripts to interact with the Cisco IVR feature. It provides an annotated example of a TCL IVR script and includes instructions for testing and loading a TCL IVR script. This document helps developers writing voice application software for Cisco voice interfaces, such as the Cisco AS5x00 series. This includes independent software vendors (ISVs), in-house corporate developers, system integrators, and Original Equipment Manufacturers (OEMs). This document includes the following sections: Overview of IVR and TCL, page 1 How to Use TCL IVR Scripts, page 3 TCL IVR Command Reference, page 21 Related Documentation, page 63 Glossary, page 63 Cisco Connection Online, page 65 Documentation CD-ROM, page 65 Overview of IVR and TCL IVR is a term that is used to describe systems that provide information in the form of recorded messages over telephone lines in response to user input in the form of spoken words, or more commonly dual tone multifrequency (DTMF) signaling. For example, when a user makes a call with a debit card, an IVR application is used to prompt the caller to enter a specific type of information, such as a PIN. After playing the voice prompt, the IVR application collects the predetermined number of touch tones (digit collection), forwards the collected digits to a server for storage and retrieval, and then places the call to the destination phone or system. Call records can be kept and a variety of accounting functions performed. Corporate Headquarters Cisco Systems, Inc. 170 West Tasman Drive San Jose, CA USA Copyright 1999 Cisco Systems, Inc. All rights reserved. 1
2 Overview of IVR and TCL The IVR application (or script) is a voice application designed to handle calls on a voice gateway, which is a router that is equipped with Voice over IP (VoIP) features and capabilities. The prompts used in an IVR script can be either static or dynamic. With static prompts, the prompt message is pre-recorded in its entirety and played as a single unit. With dynamic prompts, the prompt message is pre-recorded in pieces and the pieces are assembled dynamically during play. For example, dynamic prompts are used to inform the caller of how much time is left in their debit account, such as: You have 15 minutes and 32 seconds of call time left in your account. The above prompt is created using eight individual prompt files. They are: youhave.au, 15.au, minutes.au, and.au, 30.au, 2.au, seconds.au, and leftinyouraccount.au. These audio files are assembled dynamically by the underlying system and played as a prompt based on the selected language and prompt file locations. The Cisco IVR (Interactive Voice Response) feature, available in Cisco IOS Release 12.0(6)T and later, provides IVR capabilities using TCL 1.0 scripts. These scripts are signature locked, and can be only modified by Cisco. The IVR feature allows IVR scripts to be used during call processing. The scripts interact with the IOS software to perform various call-related functions. Starting with release 12.1(3), the TCL script lock will be removed, thus allowing customers to create and change their own TCL scripts. TCL is an interpreted scripting language. Because TCL is an interpreted language, scripts written in TCL do not have to be compiled before they are executed. TCL provides a fundamental command set, which allows for standard functions such as flow control (if, then, else) and variable management. By design, this command set can be expanded by adding extensions to the language to perform specific operations. Cisco has created a set of extensions, called TCL IVR commands, that allows users to create IVR scripts using TCL. Unlike other TCL scripts, which are invoked from a shell, TCL IVR scripts are invoked when a call comes into the gateway. The remainder of this document assumes that you are familiar with TCL and how to create scripts using TCL.If you are not, we recommend that you read TCL and the TK Toolkit by John Ousterhout (published by Addison Wesley Longman, Inc). Plans for Developing a New Script Format Cisco plans to develop a new TCL script format (TCL 2.0) that will address scalability and performance issues. All verbs are non blocking, meaning that they can execute without causing the script to wait, which allows the script to perform multiple tasks at once. The scripts are event-driven and the flow of the call is controlled by a Finite State Machine (FSM), which is defined by the TCL script. Prompt can be played over VoIP and VoFR call legs. Digits can be collected over VoIP and VoFR call legs. Real-Time Streaming Protocol (RTSP)-based prompts are supported (depending on the release of Cisco IOS software and the platform). Scripts can control more than two legs simultaneously. Call legs can be handed off between scripts. 2 TCL IVR API Version 1.0 Programmer s Guide
3 Prerequisites Prerequisites The Open TCL IVR feature is currently supported on the Cisco AS5300 voice platform only. In order to use the open TCL IVR feature you need the following: 1. Cisco AS5300 (Voice platform) universal access server 2. Cisco IOS Release 12.1(3) or later. 3. TCL version 7.1 or later. Calls can come into a gateway using analog lines, ISDN lines, a VoIP link, or a VoFR link. TCL IVR scripts can provide full functionality for calls received over analog or ISDN lines. The functionality provided for calls received over VoIP or Voice over Frame Relay (VoFR) links varies depending on the release of Cisco IOS software being used. For example, if you are using Cisco IOS Release 12.0, you cannot play prompts or tones, and you cannot collect tones. Restrictions The argument av-send, used with the authenticate and authorize commands, is valid on Cisco IOS Release 12.1(2) and later. Refer to the authenticate and authorize for more information. If a TCL 1.0 script is used with the TCL Interpreter 8.0.5, the minimum memory requirement is 64 mbytes for the Cisco 2600 and Cisco 36xx platforms, starting with Cisco IOS Release 12.1(3)T. Additional memory is only needed if one uses TCL 1.0 scripts with TCL interpreter At this time, the unlocked TCL scripts are not supported on the 2600 and the 36xx platforms. This memory requirement applies regardless of whether the TCL scripts are locked or unlocked. Developer Support Developers using this guide may be interested in joining the Cisco Developer Support Program. This new program has been developed to provide you a consistent level of support that you can depend on while leveraging Cisco interfaces in your development projects. A signed Developer Support Agreement is required to participate in this program. For more details, and access to this agreement, please visit us at: or contact [email protected] How to Use TCL IVR Scripts This section of the document includes information on how to create and use TCL IVR scripts. This section includes the following topics: Writing an IVR Script using TCL Extensions, page 4 Testing and Debugging Your Script, page 13 Loading Your Script, page 14 Associating Your Script with an Inbound Dial Peer, page 14 Displaying Information About IVR Scripts, page 15 Using URLs in IVR Scripts, page 20 Tips for Using Your TCL IVR Script, page 21 TCL IVR API Version 1.0 Programmer s Guide 3
4 How to Use TCL IVR Scripts Writing an IVR Script using TCL Extensions Before you write an IVR script using TCL, you should familiarize yourself with the TCL extensions for IVR scripts. You can use any text editor to create your TCL IVR script. Follow the standard conventions for creating a TCL script and incorporate the TCL IVR commands as necessary. A sample script is provided in this section to illustrate how the TCL IVR commands can be used. Note When writing scripts, it s strongly recommended first doing a setupack or an acceptcall. Note If the caller hangs up, the script stops running and the call legs are cleared. No further processing will be done by the script, which means the exit command will not be called. Standard TCL Commands Used in TCL IVR Scripts Certain standard TCL commands can be used in TCL IVR scripts. These commands are as follows: append array break case catch concat continue error eval expr for foreach format global history if incr info join lappend lindex linsert list llength lrange lreplace lsearch lsort proc puts regexp regsub rename return set split string switch tcl_trace unset uplevel upvar while For additional information about the standard TCL commands, see the TCL and the TK Toolkit by John Ousterhout (published by Addison Wesley Longman, Inc). TCL IVR Commands At-a-Glance In addition to the standard TCL commands, you can use the TCL extensions for IVR scripts that Cisco has created. Also, Cisco modified two of the existing TCL commands, puts and exit, to perform specific tasks. The TCL IVR commands are as follows: Command acceptcall ani authenticate authorize Description Sends setup acknowledgement, call proceeding, and call connect messages to the incoming call leg. Returns the originating number, which is supplied by the incoming call leg. Sends an authentication request to an external system, typically a Remote Access Dial- In User Services (RADIUS) server. Sends an authorization request to an external system, typically a RADIUS server. 4 TCL IVR API Version 1.0 Programmer s Guide
5 Writing an IVR Script using TCL Extensions callid callproceeding clearoutgoingleg conferencecreate conferencedelete credittimeleft did dnis exit failurecode getvariable insertmessage inserttone placecall playfailuretone playprompt playtone promptandcollect puts rdn setlocation settimeout setvariable setupack starttimer waitevent Returns the call ID used in the Cisco IOS debug messages. Sends a call proceeding message to the incoming call leg. Deletes a conference and disconnects the outgoing call leg. Creates a conference between two call legs. Deletes a conference between two call legs. Returns the credit time available for this call. Determines whether the incoming dial peer is configured for dial-in direct (DID) operation. Returns the destination number. Exits the script, clears the call leg, and cleans up the data structures. Returns the last failure event and code. Returns the value of a specified variable. Inserts a message to the originating (calling) party. Inserts a beep to the originating (calling) party. Places a call to the specified destination. Plays one of two tones depending on the last failure event. Plays a prompt to the incoming call leg. Designed for use with dynamic prompts. Plays a call progress tone. Plays a prompt to the originating (calling) party and collects digits in a specified pattern. Outputs a debug string to the console if the IVR state debug flag is set. Returns the redirect number that came with the call. Sets the location of the audio files. Sets the initial digit collection timeout and the inter-digit collection timeout values. Sets the value of a specified variable. Sends a call setup acknowledgement back to the incoming call leg. Causes the script to block until a specified number of seconds passes or an event (such as a destination hang up or an origination hang up) occurs. Causes the script to pause until an event occurs. For more information about these commands, see the TCL IVR Command Reference on page 21. TCL IVR API Version 1.0 Programmer s Guide 5
6 How to Use TCL IVR Scripts Sample TCL IVR Script The following annotated example illustrates how the TCL IVR commands can be used. We start with the header information, which includes the name of the script, the date the script was created and by whom, and some general information about what the script does. It is also a good idea to include a version number for the script. We recommend that you use a three digit system where the first digit indicates a major version of the script, the second digit should be incremented with each minor revisions (such as a change in function within the script), and the third number should be incremented each time other changes are made to the script. # Script Loaded by: Dram # Script Version # Script LookDate: Sept :58: # # September 1998, David Ramsthaler # # Copyright (c) 1998, 1999, 2000 by cisco Systems, Inc. # All rights reserved. # # # This script authenticates using (ani, dnis) for (account, password). If # that fails, it collects account and pin number, then authenticates # using (account, pin). # # If authentication passes, it collects the destination number and # places the call. # Next, we define a series of procedures. The get_account procedure defines the parameters of the account prompt and collects the account information. In this procedure: The prompt plays an audio file called enter_account, which is stored in Flash memory. The user is allowed to enter information before the prompt message is complete. The user is allowed to abort the process by pressing the asterisk key. The user must indicate that they have completed their entry by pressing the pound (#) key. The input from the user is collected in an array. If the collection of information is successful, the script stores the account number and indicates that the next procedure is to get the personal identification number (PIN). If the user aborts the process, the script indicates that this procedure should be started again. If the account number is not collected, the script indicates that this procedure should be started again. proc do_get_account { { global state global account set prompt(url) flash:enter_account.au set prompt(interrupt) true set prompt(abortkey) * set prompt(terminationkey) # set patterns(account).+ set event [promptandcollect prompt info patterns ] if {$event == "collect success" { set state get_pin 6 TCL IVR API Version 1.0 Programmer s Guide
7 Writing an IVR Script using TCL Extensions set account $info(digits) if {$event == "collect aborted" { set state get_account if {$event == "collect fail" { set state get_account set state end The get_pin procedure defines the parameters of the PIN prompt and collects the PIN. In this procedure: The prompt plays an audio file called enter_pin, which is stored in Flash memory. The user is allowed to enter information before the prompt message is complete. The user is allowed to abort the process by pressing the asterisk (*) key. The user must indicate that they have completed their entry by pressing the pound (#) key. The input from the user is collected in an array. If the collection of information is successful, the script stores the PIN and indicates that the next procedure is to authenticate the information. If the user aborts the process, the script indicates that the user should be returned to the account collection procedure. If the user does not enter a PIN within the allotted time, the script indicates that this procedure should be started again. If the PIN entered by the user is invalid, the script indicates that this procedure should be started again. proc do_get_pin { { global state global pin set prompt(url) flash:enter_pin.au set prompt(interrupt) true set prompt(abortkey) * set prompt(terminationkey) # set patterns(account).+ set event [promptandcollect prompt ReturnInfo patterns ] if {$event == "collect success" { set state authenticate set pin $info(digits) if {$event == "collect aborted" { set state get_account if {$event == "collect fail" { # timeout TCL IVR API Version 1.0 Programmer s Guide 7
8 How to Use TCL IVR Scripts if {$info(code) == 102 { set state get_pin # invalid number if {$info(code) == 28 { set state get_pin set state end The authenticate procedure passes the information collected to a RADIUS server for authentication and waits for a reply. In this procedure: The account number and PIN are passed to the RADIUS server. The response from the RADIUS server is interpreted. If the authentication is successful, the script indicates that the next state is to continue processing the call. If the authentication fails, the script indicates that the next state is to inform the user of the failure. proc do_authenticate { { global state global pin global account set event [authenticate $account $pin info] if { $event == "authenticated" { set state authen_pass if {$event == "authentication failed" { set state authen_fail set state end The get_dest procedure defines the parameters of the destination prompt and collects the destination phone number. In this procedure: The prompt plays an audio file called enter_destination, which is stored in Flash memory. The user is allowed to enter information before the prompt message is complete. The user is allowed to abort the process by pressing the asterisk (*) key. The user must indicate that they have completed their entry by pressing the pound (#) key. The destination phone number is collected against the dial plan. If the collection of information is successful, the script indicates that the next procedure is to process the call. 8 TCL IVR API Version 1.0 Programmer s Guide
9 Writing an IVR Script using TCL Extensions If the user aborts the process, the script indicates that this procedure should be started again. If the destination phone number entered by the user is invalid, the script indicates that this procedure should be started again. proc do_get_dest { { global state global destination set prompt(url) flash:enter_destination.au set prompt(interrupt) true set prompt(abortkey) * set prompt(terminationkey) # set prompt(dialplan) true set event [promptandcollect prompt info ] if {$event == "collect success" { set state place_call set destination $info(digits) if {$event == "collect aborted" { set state get_dest if {$event == "collect fail" { set state get_dest set state end The authen_pass procedure determines whether the destination phone number has been provided. In this procedure: If the incoming dial peer is configured for DID operation and there is an incoming called number ($dnislen is not equal to 0), the destination is set to the destination number and the script indicates that the next state is place_call. If the incoming dial peer in not configured for DID operation, the script indicates that the next state is to collect the destination phone number. proc do_authen_pass { { global state global destination set dnislen [string len [dnis]] if { [did] && $dnislen { set destination [dnis] set state place_call else { set state get_dest TCL IVR API Version 1.0 Programmer s Guide 9
10 How to Use TCL IVR Scripts The place_call procedure places the call to the specified destination. In this procedure: If the call is successful, the script indicates that the next state is to determine whether the call should be timed. If the call is unsuccessful, the script indicates that the next state is to process the failed call. proc do_place_call { { global state global destination set event [placecall $destination callinfo info] if {$event == "active" { set state active if {$event == "call fail" { set state place_fail set state end The active_notimer procedure specifies that no time limit is set on the call. The script waits idly for an event. proc do_active_notimer { { global state set event [waitevent] while { $event == "digit" { set event [waitevent] set state end The active_last_timer procedure monitors the last few seconds of time allowed for the call to ensure that the user does not exceed their allotted credit time. In this procedure: A final timer is set. The duration of the timer is equal to the number of seconds left in the user s account. If the call exceeds the timer, the script disconnects the outgoing call leg and indicates that the next procedure is to notify the user that they are out of time. proc do_active_last_timer { { global state set event [starttimer [credittimeleft] info] while { $event == "digit" { set event [starttimer $info(timeleft) info] if { $event == "timeout" { clearoutgoingleg returninfo set state out_of_time else { set state end 10 TCL IVR API Version 1.0 Programmer s Guide
11 Writing an IVR Script using TCL Extensions The active_timer procedure monitors the amount of time used during the call to ensure that the user does not go past their allotted credit time. In this procedure: The user s remaining amount of credit is determined. If the user has less than ten seconds remaining, the script indicates that the next procedure should be to monitor the last few seconds of the call. If the user has more than ten seconds remaining, a timer is set that equals the user s remaining time minus ten seconds. If the call exceeds the timer, a warning message (beep.au) is played and the script indicates that the next procedure is to monitor the last few seconds of the call. proc do_active_timer { { global state if { [credittimeleft] < 10 { do_active_last_timer set delay [expr [credittimeleft] - 10] set event [starttimer $delay info] while { $event == "digit" { set event [starttimer $info(timeleft) info] if { $event == "timeout" { insertmessage flash:beep.au returninfo do_active_last_timer else { set state end The active procedure determines whether there is a time limit on the call. In this procedure: If the user has no credit limit, the script indicates that the next procedure is to wait idly for an event. If the user has a credit limit, the script indicates that the next procedure is to start an active timer. proc do_active { { global state if { ( [credittimeleft] == "unlimited") ([credittimeleft] == "uninitialized") { do_active_notimer else { do_active_timer The out_of_time procedure plays a message (out_of_time.au) if the user is out of time. proc do_out_of_time { { global state set prompt(url) flash:out_of_time.au set prompt(playcomplete) true set event [promptandcollect prompt info ] set state end TCL IVR API Version 1.0 Programmer s Guide 11
12 How to Use TCL IVR Scripts The authen_fail procedure plays a message (auth_failed.au) if the information that the user provided is not authenticated by the RADIUS server. proc do_authen_fail { { global state set prompt(url) flash:auth_failed.au set prompt(playcomplete) true set event [promptandcollect prompt info ] set state end The place_fail procedure plays a tone if the call cannot be placed. proc do_place_fail { { global state playfailuretone 5 returninfo set state end Finally, we put all the procedures together in a main routine. The main routine passes the origination and destination phone numbers (if available) to the RADIUS server for authentication. If the response from the RADIUS server is authenticated, the authen_pass procedure is called. If the response from the RADIUS server is anything other than authenticated, the get_account procedure is called. From there, the main routine reads the state as set by each procedure to determine which procedure to call next. # # The main routine begins here. # acceptcall set event [authenticate [ani] [dnis] info] if {$event!= "authenticated" { set state get_account else { set state authen_pass while {$state!= "end" { if {[info proc do_$state] == do_$state do_$state 12 TCL IVR API Version 1.0 Programmer s Guide
13 Testing and Debugging Your Script Testing and Debugging Your Script It s important to thoroughly test a script before it is deployed. To test a script, you must place it on a router and place a call to activate the script. When you test your script, make sure that you test every procedure in the script and all variations within each procedure. Errors that occur in parts of the script that are not tested will not be found. For example, if you have the following: if {[dnis]== 1234 { promptandcollect prompt info The misspelling of the promptandcollect command will not be detected until the number 1234 is dialed. You can view debugging information applicable to the TCL IVR scripts that are running on the router. The debug voip ivr command allows you to specify the type of debug output you want to view. To view debug output, enter the following command in privileged Exec mode: [no] debug voip ivr [states error script dynamic all] If you specify error, output is displayed only if an error occurs in the script. If you specify states, the output provides information about what is happening in an IVR application. If you specify dynamic this shows the dynamic prompt play information. If you specify all, both error and states information is displayed. The output of any TCL puts commands is displayed if script debugging is on. Note Possible sources of errors are: an unknown or misspelled command (for example, if you misspell promptandcollect as promptandcollect), a syntax error (such as, specifying an invalid number of arguments), or executing a command in an invalid state (for example, executing insertmessage when no conference is active). In most cases, an error such as these will cause the underlying infrastructure to disconnect the call and clean up. Error Handling of TCL IVR Commands Following are some of the errors that may appear and their causes: Error Message wrong # args: should be cmd bad args: should be cmd verb-name called in wrong state,... other detail information... verb-name ignored,... other detail information Description Script exits with error information due to the wrong number of arguments. Script exit with error information due to incorrect argument(s). Script exit with error information due to verb being called in the wrong state. Command is ignored due to verb being called in the wrong state. TCL IVR API Version 1.0 Programmer s Guide 13
14 How to Use TCL IVR Scripts Loading Your Script To associate an application with your TCL IVR script and load the script, use the following command: (config)#call application voice script_name url [parameter value] In this command: script_name specifies the name of the TCL application that the system is to use for the calls configured on the inbound dial peer. Enter the name to be associated with the TCL IVR script. url is the pathname where the script is stored. Enter the pathname of the storage location first and then the script filename. TCL IVR scripts can be stored in Flash memory or on a server that is acceptable using a URL, such as a TFTP server. parameter value allows you to configure values for specific parameters, such as language or PIN length. For more information about possible parameters, see the Debit Card for Packet Telephony on Cisco Access Platforms document on CCO. In the following example, the application named test is associated with the TCL IVR script called newapp.tcl, which is located at tftp://keyer/debit_audio/. (config)#call application voice test tftp://keyer/debit_audio/newapp.tcl If you modify your script, you can reload it using only the script name as shown below: (config)#call application voice load script_name Associating Your Script with an Inbound Dial Peer To invoke your TCL IVR script to handle a call, you must associate the script with an inbound dial peer. To associate your script with an inbound dial peer, enter the following commands in configuration mode: (config)#dial-peer voice number voip (conf-dial-peer)#incoming called-number destination_number (conf-dial-peer)#application application_name In these commands: number uniquely identifies the dial peer. (This number has local significance only.) destination_number specifies the destination telephone number. Valid entries are any series of digits that specify the E.164 telephone number. application_name is the abbreviated name that you assigned when you loaded the application. For example, the following commands indicate that the application called newapp should be invoked for calls that come in from an IP network and are destine for the telephone number of 125. (config)#dial-peer voice 3 voip (conf-dial-peer)#incoming called-number 125 (conf-dial-peer)#application test For more information about inbound dial peers, see the Cisco IOS software documentation. 14 TCL IVR API Version 1.0 Programmer s Guide
15 Displaying Information About IVR Scripts Displaying Information About IVR Scripts To view a list of the voice applications that are configured on the router, use the show call application voice command. A one-line summary of each application is displayed. The description includes the names of the audio files the script plays, the operation of the interrupt keys, what prompts are used, and the caller interaction. #show call application voice [ [name] [summary] ] In this command: name indicates the name of the desired IVR application. If you enter the name of a specific application, the system supplies information about that application. summary indicates that you want to view summary information. If you specify the summary keyword, a one-line summary is displayed about each application. If you omit this keyword, a detailed description of the specified application is displayed. The following is an example of the output of the show call application voice command. router#show call app voice clid_authen_collect Idle call list has 0 calls on it. Application clid_authen_collect The script is compiled into the image It has 0 calls active. The TCL Script is: # clid_authen_collect.tcl # # September 1998, David Ramsthaler # # Copyright (c) 1998, 1999 by cisco Systems, Inc. # All rights reserved. # # Mimic the clid_authen_collect script in the SP1.0 release. # # It authenticates using (ani, dnis) for (account, password). If # that fails, it collects account and pin number, then authenticates # using (account, pin). # # If authentication passes, it collects the destination number and # places the call. # # The main routine is at the bottom. Start reading the script there. # proc do_get_account { { global state global account set prompt(url) flash:enter_account.au set prompt(interrupt) true set prompt(abortkey) * set prompt(terminationkey) # set patterns(account).+ set event [promptandcollect prompt info patterns ] if {$event == "collect success" { set state get_pin set account $info(digits) if {$event == "collect aborted" { set state get_account TCL IVR API Version 1.0 Programmer s Guide 15
16 How to Use TCL IVR Scripts if {$event == "collect fail" { set state get_account set state end proc do_get_pin { { global state global pin set prompt(url) flash:enter_pin.au set prompt(interrupt) true set prompt(abortkey) * set prompt(terminationkey) # set patterns(account).+ set event [promptandcollect prompt info patterns ] if {$event == "collect success" { set state authenticate set pin $info(digits) if {$event == "collect aborted" { set state get_account if {$event == "collect fail" { # timeout if {$info(code) == 102 { set state get_pin # invalid number if {$info(code) == 28 { set state get_pin set state end proc do_authenticate { { global state global pin global account 16 TCL IVR API Version 1.0 Programmer s Guide set event [authenticate $account $pin info] if { $event == "authenticated" { set state authen_pass if {$event == "authentication failed" { set state authen_fail
17 Displaying Information About IVR Scripts set state end proc do_get_dest { { global state global destination set prompt(url) flash:enter_destination.au set prompt(interrupt) true set prompt(abortkey) * set prompt(terminationkey) # set prompt(dialplan) true set event [promptandcollect prompt info ] if {$event == "collect success" { set state place_call set destination $info(digits) if {$event == "collect aborted" { set state get_dest if {$event == "collect fail" { set state get_dest set state end proc do_authen_pass { { global state global destination set dnislen [string len [dnis]] if { [did] && $dnislen { set destination [dnis] set state place_call else { set state get_dest proc do_place_call { { global state global destination set event [placecall $destination callinfo info] if {$event == "active" { set state active if {$event == "call fail" { set state place_fail TCL IVR API Version 1.0 Programmer s Guide 17
18 How to Use TCL IVR Scripts set state end proc do_active_notimer { { global state set event [waitevent] while { $event == "digit" { set event [waitevent] set state end proc do_active_last_timer { { global state set event [starttimer [credittimeleft] info] while { $event == "digit" { set event [starttimer $info(timeleft) info] if { $event == "timeout" { clearoutgoingleg retinfo set state out_of_time else { set state end proc do_active_timer { { global state if { [credittimeleft] < 10 { do_active_last_timer set delay [expr [credittimeleft] - 10] set event [starttimer $delay info] while { $event == "digit" { set event [starttimer $info(timeleft) info] if { $event == "timeout" { insertmessage flash:beep.au retinfo do_active_last_timer else { set state end proc do_active { { global state 18 TCL IVR API Version 1.0 Programmer s Guide if { ( [credittimeleft] == "unlimited") ([credittimeleft] == "uninitialized") { do_active_notimer else { do_active_timer
19 Displaying Information About IVR Scripts proc do_out_of_time { { global state set prompt(url) flash:out_of_time.au set prompt(playcomplete) true set event [promptandcollect prompt info ] set state end proc do_authen_fail { { global state set prompt(url) flash:auth_failed.au set prompt(playcomplete) true set event [promptandcollect prompt info ] set state end proc do_place_fail { { global state playfailuretone 5 retinfo set state end # # And here is the main loop # acceptcall set event [authenticate [ani] [dnis] info] if {$event!= "authenticated" { set state get_account else { set state authen_pass while {$state!= "end" { puts "cid([callid]) running state $state" if {$state == "get_account" { do_get_account elseif {$state == "get_pin" { do_get_pin elseif {$state == "authenticate" { do_authenticate elseif {$state == "get_dest" { do_get_dest elseif {$state == "place_call" { do_place_call elseif {$state == "active" { do_active elseif {$state == "authen_fail" { do_authen_fail elseif {$state == "authen_pass" { do_authen_pass elseif {$state == "place_fail" { TCL IVR API Version 1.0 Programmer s Guide 19
20 How to Use TCL IVR Scripts do_place_fail elseif {$state == "out_of_time" { do_out_of_time else { break Using URLs in IVR Scripts With IVR scripts, you use URLs to call the script and to call the audio files that the script plays. The VoIP system uses IOS File System (IFS) to read the files, so any IFS supported URLs can be used, which includes TFTP, FTP, or a pointer to a device on the router. Note Flash memory is limited to 32 entries, so it may not be possible to copy all your audio files into Flash memory. URLs for Loading the IVR Script The URL of the IVR script is a standard URL that points to the location of the script. Examples include: flash:myscript.tcl The script called myscript.tcl is being loaded from Flash memory on the router. slot0:myscript.tcl The script called myscript.tcl is being loaded from a device in slot 0 on the router. tftp://bigserver/myscripts/bettermousetrap.tcl The script called myscript.tcl is being loaded from a server called BigServer in a directory within the tftpboot directory called myscripts. URLs for Loading Audio Files URLs for audio files are different from those used to load IVR scripts. With URLs for audio files: For static prompts (used with the playprompt, insertmessage, and promptandcollect commands), you can use the IFS-supported URLs as described in the URLs for Loading the IVR Script on page 20. For dynamic prompts (used in the playprompt command), the URL is created by the software using information from the setvariable language and setlocation commands and the language CLI configuration command. 20 TCL IVR API Version 1.0 Programmer s Guide
21 Tips for Using Your TCL IVR Script Tips for Using Your TCL IVR Script This section provides some answers to frequently asked questions about using TCL IVR scripts. 1 How do I get information from my RADIUS server to the TCL IVR script? After you perform an authentication and authorization, you can use the getvariable command to obtain the credit amount, credit time, and cause codes maintained by the RADIUS server. See the getvariable on page How do I keep the network from charging for the incoming call if there is no answer? Although gateways do not control the charges for each call, in most networks you are only charged for completed calls. Therefore, if the incoming network does not detect a completed call, you are not charged. The placecall command accepts an incoming call only if it succeeds in placing the call. At that point the incoming network will detect the completed call and charges will begin to accrue. Normally, if the script is going to play prompts and collect digits, it will need to accept the incoming call by running the acceptcall command. If the script does not accept the incoming call, there may be a relatively short timer on the incoming network. 3 What happens if my script encounters an error? When an error is encountered in the script, the call is cleared with a cause of TEMPORARY_FAILURE (41). If the IVR application has already accepted the incoming call, the caller will hear silence. If the script has not accepted the incoming call, the caller might hear a fast busy signal. If the script exits with an error and IVR debugging is on (as described in Testing and Debugging Your Script on page 13), the location of the error in the script is displayed at the command line. TCL IVR Command Reference This section provides an alphabetical listing of the new TCL IVR commands. The following is provided for each command: Description of the purpose or function of the command Description of the syntax List of arguments and a description of each List of the possible return values and a description of each Whether the command is blocking (meaning the command has some external interaction) or nonblocking Example of how the command can be used For information about how returns and events are defined in the code, see Value Definitions on page 61. Notes For the commands that return information, the returninfo array often contains useful information. However, if the command is returned because the destination (called) party hangs up, then the returninfo(code) is the failure code. If you specify an invalid number of arguments for a command, an error will occur and the script will fail. TCL IVR API Version 1.0 Programmer s Guide 21
22 TCL IVR Command Reference acceptcall The acceptcall command is used at the beginning of the main routine in a TCL script. It sends setup acknowledgement, call proceeding, and call connect messages to the incoming call leg. The Gateway is responsible for translating these messages into the appropriate protocol messages (depending on the call leg) and sending them to the caller. Syntax acceptcall Arguments None Return Values None Blocking or Non Blocking Non blocking Example # Accept a call and then prompt redialer for a pattern acceptcall set prompt(url) flash:redialer_tone.au set prompt(interrupt) true set patterns(accountandpw) \\*\\*.+#\\*\\*.+# set event [promptandcollect prompt returninfo patterns] Usage Notes On an ISDN line, this command sends a setup acknowledgment. On an analog line, this command has no external effect. However, it does stop the internal timers on that call leg. If the call has already been connected, this command is ignored. If IVR state debugging is on (see the Testing and Debugging Your Script on page 13), a message is displayed that indicates that the command was ignored. The command is ignored if the incoming call has already been connected. If there is no incoming call, the script will exit with error information. The system tracks whether a setup acknowledgement or call proceeding has already been sent, and will not send another. 22 TCL IVR API Version 1.0 Programmer s Guide
23 ani ani The ani command returns the call origination number, which it obtains from the incoming callinfo data structure. Syntax ani Arguments None Return Values This command returns the origination number (as a decimal string) or a NULL string if the number is not available. The origination number is the number provided by the incoming call leg. Blocking or Non Blocking Non blocking Example # Authenticate using origination number as the user account number set event [authenticate [ani] [dnis] info] Usage Notes On some incoming calls, such as those coming over ISDN, the calling number might not be provided. If it is not and the you have configured the router such that calls from this port have a configured calling number (using the answer-address command), the system can attempt to determine the calling number based on the information in the inbound dial-peer and the incoming port number. For more information on the answer-address command, see the Cisco IOS Voice, Video, and Home Applications Command Reference. If there is no incoming call, the script will exit with error information. TCL IVR API Version 1.0 Programmer s Guide 23
24 TCL IVR Command Reference authenticate The authenticate command validates the authenticity of the user. This command sends the account number and password to the appropriate server for authentication and waits for a response. In many cases, ani is used as the account number and dnis (or a NULL value) is used as the password. Syntax authenticate account password [av-send] returninfo Arguments The arguments of this command are: account The user s account number for the AAA request. password The user s password (or PIN) for the AAA request. av-send If it is present, it is an associate array containing standard AV or VSA pairs to be sent along. returninfo The name of an associative array where information about the result is stored. Return Values This command returns the following: The event returned is: authenticated The authentication was successful. authentication failed The authentication failed. If the authentication fails, the AAA failure code is stored in returninfo(code). If the caller hangs up or the call becomes disconnected, the authentication will not be valid. Blocking or Non Blocking Blocking Example # Authenticate using origination number as the account number set event [authenticate [ani] [dnis] info] if {$event == authentication failed { puts authentication failed with code $info(code) exit Usage Notes Caution The authorize command will return erroneous VSA values with Cisco IOS 12.1T and higher versions such as 12.2M, 12.2T, 12.3M, and 12.3T. Typically a RADIUS server is used for authentication, but any AAA-supported method can be used. 24 TCL IVR API Version 1.0 Programmer s Guide
25 authenticate If IVR state debugging is on (see the Testing and Debugging Your Script on page 13), the account number and password are displayed. Account numbers and PINs are truncated at 32 characters, the E.164 maximum length. You can use the aaa authentication login and radius-server commands to configure a number of RADIUS parameters. For more information, see the Named Method Lists for AAA Authorization and Accounting document located at To define av-send, use the command set av-send attrname [index] value. Note Cisco IOS Release 12.1(2) is the first release incorporating the argument av-send. attrname Currently, only two IVR-specific attributes are supported: h323-ivr-out and h323-credit-amount. Refer to the table in the getvariable command description for more information on these types. index An optional integer index starting from 0, used to distinguish multiple values for a single attribute. Example 1: set av-send(h323-credit-amount) 25.0 Example 2: (Using two values for h323-ivr-out) set av-send(h323-ivr-out,0) "payphone:true" set av-send(h323-ivr-out,1) "credittime:3400" TCL IVR API Version 1.0 Programmer s Guide 25
26 TCL IVR Command Reference authorize The authorize command sends an AAA authorization request and waits for a response. Typically, this command is used to provide additional information to the RADIUS server (destination and origination numbers) after a user has been successfully authenticated. It sends the authorization request to the RADIUS server after the IVR application prompts the user to enter the destination number. Syntax authorize account password destination ani [av-send] returninfo Arguments The arguments of this command are: account The user s account number. password The user s password (or PIN). destination The call destination number. ani The origination number. av-send Indicates that the values that were specified with the set av-send command should be included in the authorization. returninfo The name of an associative array where information about the result is stored. The account, password, and returninfo arguments are the same as those specified in the authentication command. The destination is the destination, or called, number and the ani is the origination, or calling, number. The destination and ani fields are used to provide additional information to the external server. Return Values This command returns the following: The event returned is: authorized The authorization was successful. authorization failed The authorization failed. If the authentication fails, the AAA failure code is stored in returninfo(code). The set of VSAs from the AAA return will be available through the getvariable command. If the caller hangs up or the call becomes disconnected, the authorization is not valid. Blocking or Non Blocking Blocking 26 TCL IVR API Version 1.0 Programmer s Guide
27 authorize Example # authorize the call, and get the available credit time. set event [authorize $account $pin $destination [ani] info] if {$event == authorized { set num [getvariable aaa h323-credit-amount CreditAmount] Usage Notes Caution The authorize command will return erroneous VSA values with Cisco IOS 12.1T and higher versions such as 12.2M, 12.2T, 12.3M, and 12.3T. If IVR state debugging is on (see the Testing and Debugging Your Script on page 13), the account number, password, and destination are displayed. Account numbers, PINs, and destination numbers are truncated at 32 characters, the E.164 maximum length. In addition to the failure code, which is stored in the returninfo array as returninfo(code), return codes are generated by the external RADIUS server after an authorization request has been processed. These return codes contain information about the account and the destination called, and indicate what actions the application can carry out in the event of a failed authorization. You can retrieve these return codes using getvariable aaa h323-return-code returninfo. You can use the aaa authentication login and radius-server commands to configure a number of RADIUS parameters. For more information, see the Named Method Lists for AAA Authorization and Accounting document located at If there is no incoming call, the script exits with error information. To define av-send, use the command set av-send (attrname [,index]) value. Note Cisco IOS Release 12.1(2) is the first release incorporating the argument av-send. attrname The standard attribute name or VSA attribute name string defined by AAA of Cisco IOS. Currently, only two IVR-specific VSAs are supported: h323-ivr-out and h323-credit-amount. index An optional integer index starting from 0, used to distinguish multiple values for a single attribute. Example 1: set av-send(h323-credit-amount) 25.0 Example 2: (Using two values for h323-ivr-out) set av-send(h323-ivr-out,0) "payphone:true" set av-send(h323-ivr-out,1) "credittime:3400" TCL IVR API Version 1.0 Programmer s Guide 27
28 TCL IVR Command Reference callid The callid command is used for debugging purposes only. It can be used in problem determination for a particular call. This command returns the call ID (which is used in the IOS debug messages) of the incoming or outgoing call leg. This call ID has no meaning outside the router that is handling the call. Syntax callid [outgoing] Arguments The argument of this command is: outgoing (Optional) Indicates that the command should return the callid of the outgoing call leg. Return Values This command returns an integer greater than zero, which represents the call ID of the incoming or outgoing call leg. If you specify outgoing and there is no outgoing call leg, zero is returned. Blocking or Non Blocking Non blocking Example # Display the call IDs in a debug message puts Incoming callid [callid] connected to outing callid [callid outgoing] Usage Notes Each call leg is assigned a call ID. The Cisco IOS software begins assigning call IDs at 1 when the system is rebooted. The call ID is increment for each call leg and will eventually wrap. 28 TCL IVR API Version 1.0 Programmer s Guide
29 callproceeding callproceeding The callproceeding command sends a call proceeding message to the incoming call leg. The Gateway is responsible for translating this message into the appropriate protocol message (depending on the call leg) and sending them to the caller. Caution The ISDN state machine actually connects the incoming call on a setup acknowledgement. Syntax callproceeding Arguments None Return Values None Blocking or Non Blocking Non blocking Example # Send call proceeding while placing the call callproceeding # we have not accepted the call yet. placecall will place the outbound # call, conference the two call legs, and accept the inbound call leg. # set callinfo(destinationnum) $destination set event [placecall $destination callinfo info] Usage Notes If a call proceeding message has already been sent (for example, if a callproceeding or acceptcall command has already been executed), this command is ignored. If IVR debugging is on (see the Testing and Debugging Your Script on page 13), the fact that the command has been ignored will be displayed. If there is no incoming call, the script will exit with error information. TCL IVR API Version 1.0 Programmer s Guide 29
30 TCL IVR Command Reference clearoutgoingleg The clearoutgoingleg command deletes the conference and disconnects the outgoing call leg. Syntax clearoutgoingleg returninfo Arguments The argument of this command is: returninfo The name of an associative array where information about the result is stored. Return Values This command returns a disconnect done outgoing event, even if no outgoing call leg exists. Blocking or Non Blocking Blocking Example # If time runs out, clear the outgoing call and play out of time message if {$event == timeout { clearoutgoingleg returninfo set prompt(url) flash:out_of_time.au set event [promptandcollect prompt info] Usage Notes The command is ignored if the outgoing call is not connected. 30 TCL IVR API Version 1.0 Programmer s Guide
31 conferencecreate conferencecreate The conferencecreate command creates a conference between the call legs. This command ignores any digits entered by the caller. Syntax conferencecreate returninfo Arguments The argument of this command is: returninfo The name of an associative array where information about the result is stored. Return Values This command returns a conference created event. If the called party hangs up during the conferencecreate, an outgoing disconnected event is returned and the returninfo(code) will indicate the cause. Blocking or Non Blocking Blocking Example # Delete the conference, play a message, then recreate it set event [conferencedelete returninfo] if {$event!= conference deleted { exit 0 set prompt(url) message.au promptandcollect prompt info set event [conferencecreate returninfo] if {$event!= conference created { exit Usage Notes If this command is invoked while a conference is already established, the command is ignored. If two call legs do not exist, the script returns an error code, which causes the underlying infrastructure to disconnect the call and clean up. TCL IVR API Version 1.0 Programmer s Guide 31
32 TCL IVR Command Reference conferencedelete The conferencedelete command deletes a conference between call legs. It ignores digits and will abort and return if it receives any event other than the expected one. Syntax conferencedelete returninfo Arguments The argument of this command is: returninfo The name of an associative array where information about the result is stored. Return Values This command returns a conference deleted event, even if a conference does not exist. If the outgoing call leg disconnected, outgoing disconnected is returned. Blocking or Non Blocking Blocking Example # Delete the conference, play a message, then recreate it set event [conferencedelete returninfo] if {$event!= conference deleted { exit 0 set prompt(url) message.au promptandcollect prompt info set event [conferencecreate returninfo] if { $event!= conference created { exit 0 Usage Notes If the destination party disconnects, the cause code is saved internally but is not returned with this command. 32 TCL IVR API Version 1.0 Programmer s Guide
33 credittimeleft credittimeleft The credittimeleft command returns the amount of credit time available for this call. Syntax credittimeleft [-settlement -aaa] Arguments The arguments of this command are: -settlement (Optional) Requests the Open Settlement Protocol (OSP) credit time available. -aaa (Optional) Requests the authentication, authorization, and accounting (AAA) credit time available. If no argument is specified, the lesser of the two credit times is requested. Return Values This command returns one of the following: An integer greater than or equal to 0, indicating the number of seconds of credit available. If 0 is returned, there is no credit time available. uninitialized or unlimited, indicating that there is no credit limit. A return value of uninitialized means that no credit time was returned from the authorize command and OSP settlement was not used to get a credit time. If unlimited is returned, no credit line has been set. If no argument is specified, the lesser of the OSP and AAA values is returned. If the two values are an integer and uninitialized, the integer is returned. Blocking or Non Blocking Non blocking Example # wait for the credit time we have set event [starttimer [credittimeleft] returninfo] while { $event == digit { set event [starttimer [credittimeleft] returninfo] Usage Notes If you are using the aaa option, the command authorize must be run before using credittimeleft, so that the credittimeleft values will be initialized. If no argument is specified and the values returned by AAA or OSP are unlimited and uninitialized, the value returned by this command will be unlimited. The following values are defined for credittimeleft returns: CT_INVALID uninitialized CT_UNLIMITED unlimited If both the AAA and OSP servers are down, uninitialized is returned. TCL IVR API Version 1.0 Programmer s Guide 33
34 TCL IVR Command Reference did The did command determines whether the incoming dial peer is configured for DID operation. Syntax did Arguments None Return Values This command returns either a 0 (the dial peer is not configured for DID) or a 1 (the dial peer is configured for DID). Blocking or Non Blocking Non blocking Example # If DID, just place the call if {[did] { set destination [dnis] else { # play a dial tone, and collect against the pattern playtone Dial set prompt(dialplan) true set event [promptandcollect prompt returninfo] if {event!= collect success { puts Call [callid] got event $event collecting destination exit 0 set destination returninfo(digits) Usage Notes If there is no incoming call, the script will exit with error information. 34 TCL IVR API Version 1.0 Programmer s Guide
35 dnis dnis The dnis command returns the destination phone number. Syntax dnis Arguments None Return Values This command returns the destination number, if it was provided with the incoming call. If no destination number was provided with the incoming call, this command returns a null value. Blocking or Non Blocking Non blocking Example # Authenticate using destination number as the user password set event [authenticate [ani] [dnis] info] Usage Notes With the dnis command, number expansion does not operate on the number before it is given to the script. Number expansion occurs during the placecall command. If there is no incoming call, the script will exit with error information. TCL IVR API Version 1.0 Programmer s Guide 35
36 TCL IVR Command Reference exit The exit command exits the script, and then clears the call and cleans up the data structures. You can use this command to set the cause code for a call. Syntax exit [code] Arguments The argument of this command is: code (Optional) Causes a code to be displayed in a debug output message if the IVR state debugging is on (see the Testing and Debugging Your Script on page 13). If no code is provided, zero will be shown in the debug output. If the value of code is a positive integer, the cause code of the call leg is set to that value. The cause code is a Q.931 cause code, which is used in the disconnect message and stored in the Call Data Record (CDR) for the call. Return Values None Blocking or Non Blocking Non blocking Example # set event [placecall destination callinfo info] if {$event!= active { puts Call [callid] got $event when placing call exit 0 Usage Notes If the inbound call leg is not yet connected, setting a cause code can change what the caller hears. It may be a busy signal, a fast busy signal, or silence. 36 TCL IVR API Version 1.0 Programmer s Guide
37 failurecode failurecode The failurecode command returns the last failure event and code. Syntax failurecode returninfo Arguments The argument of this command is: returninfo The name of an associative array where information about the result is stored. Return Values The return value is the return event if the last failure event was authentication failed, collect fail, or call fail. In these cases, returninfo(code) is failure code from that event. Otherwise (if there is no previous failure event), the return value is success, and returninfo(code) is 0. Blocking or Non Blocking Non blocking Example # get the last failure event and code set event [failurecode returninfo] if {$returninfo(code) == 17 { set destination $forwardonbusy TCL IVR API Version 1.0 Programmer s Guide 37
38 TCL IVR Command Reference getvariable The getvariable command returns the value of a variable based on its type and name. Syntax getvariable {callinfo config local radius aaa name [returninfo] Arguments The arguments of this command are: callinfo Obtained from the call information. config Obtained from the CLI configuration. local Obtained from internal variables. radius Obtained from the RADIUS server. The argument radius, though currently supported, has been obsoleted by aaa. It is strongly recommended that you use aaa and not radius. aaa Obtained from the AAA server. If aaa is specified you should use one of the attribute names listed the table below. returninfo (Option only when aaa is chosen) Name of an associative array to return information when the type is aaa. name Name of the variable to retrieve. The possible name depends on the specified type, see the following table of possible command options for getvariable. 38 TCL IVR API Version 1.0 Programmer s Guide
39 getvariable Variable Type Variable Name Variable Description callinfo ani The origination (calling) number is returned. callidin The incoming call ID is returned. 0 is the return value if there is no incoming call ID. callidout The outgoing call ID is returned. 0 is the return value if no outgoing call ID. callipin The incoming IP leg's address is returned. Null is returned if the incoming leg is not an IP leg. did The value of the DID flag (0 or 1) is returned. dnis The destination (called) number is returned. config uidlen The account length is returned. pinlen The PIN length is returned. warningtime The time to play the warning message is returned. retrycount The number of retries for entering digits is returned. redirectnumber The number for redirection of a call is returned. This variable can return a value of not configured. local credittimeleft The length of credit time remaining is returned. language The language selected is returned. radius 1 creditamount The credit amount remaining in the account is returned. credittime The credit time remaining in the account is returned. promptid The ID of the prompt is returned. redirectnumber The number for redirection of a call is returned. redirectip The IP address for the preferred route is returned. preferredlang The language that the billing system returns as the preferred language of the end user. Currently, three languages are supported; en (english), sp (spanish) and ch (mandarin). You can define additional languages as needed. timeatdest The current time at the destination. returncode This information is returned only after an authorization command is issued. It returns either a numerical value or Unknown variable name. The numerical value indicates what action the IVR application should take, namely to play a particular audio file to inform the end user of the reason for the failed authorization. If Unknown variable name is returned, this indicates that the external RADIUS server is out of service. TCL IVR API Version 1.0 Programmer s Guide 39
40 TCL IVR Command Reference Variable Type Variable Name Variable Description aaa h323-ivr-in A generic VSA for the billing server to send any information to the gatway in the form of an avpair like color:blue or advprompt:rtsp:// h323-ivr-out A generic VSA for the gateway to send any information to the billing server in the form of an avpair like color:blue or advprompt:rtsp:// h323-credit-amount The credit amount remaining in the account is returned. h323-credit-time The credit time remaining in the account is returned. h323-prompt-id The ID of the prompt is returned. h323-redirect-number The number for redirection of a call is returned. h323-redirect-ip-addr The IP address for the preferred route is returned. h323-preferred-lang The language that the billing system returns as the preferred language of the end user. Currently, three languages are supported; en (english), sp (spanish) and ch (mandarin). You can define additional languages as needed. h323-time-and-day The current time and day at the destination. h323-return-code This information is returned only after an authorization command is issued. It returns either a numerical value or Unknown variable name. The numerical value indicates what action the IVR application should take, namely to play a particular audio file to inform the end user of the reason for the failed authorization. If Unknown variable name is returned, this indicates that the external AAA server is out of service. h323-billing-model Indicates the billing model used for the call. Initial values: 0=Credit, 1=Debit. Note: The debit card application will assume a Debit billing model. 1 The argument radius, though currently supported, has been obsoleted by aaa. It is strongly recommended that you use aaa and not radius. Note If the aaa variable returns 0, this indicates that there is no VSA match to the name returned. Return Values This command returns the value of the variable, as indicated in the preceding table. If you specify a variable name other than one listed in the preceding table, the command returns Unknown variable name. Following is an example of how AAA information is returned for the attribute h323-ivr-in: returninfo(0) payphone:true returninfo(1) color:blue Blocking or Non Blocking Non blocking 40 TCL IVR API Version 1.0 Programmer s Guide
41 getvariable Example Script set event [authorize $account $pin $destination $ani info] set num [getvariable aaa h323-ivr-in ivrin] if {$num!= 0 { ## We got values back for h323-ivr-in, $num=2 ## ivrin(0)="payphone:true" ## ivrin(1)="whatevervalue" ## Do something set num [getvariable aaa h323-credit-amount creditamount] if {$num!= 0 { ## We got creditamount back, $num=1 ## creditamount(0)= ## Do something set num [getvariable aaa xxx returninfo] ## $num=0, because there is no VSA returned with a name matched "xxx" Usage Notes The script will exit with error information if a wrong variable type is used. If a wrong variable name is used with the variable types callinfo, config, or local, the script will exit with error information. If a wrong variable name is used with the variable types aaa or radius, the verb will return Uknown variable name. If you want to obtain additional AAA information, do the following: On the AAA server, populate a VSA with following string: h323-ivr-in=value where value is the value of the variable that you want the AAA server to provide to the script. For example: h323-ivr-in=payphone:true In the script, you can obtain the information by using the following statement: getvariable aaa h323-ivr-in returninfo For more information about using VSAs to transmit information between the Voice Gateway and the AAA server, see the Vendor-Specific Attributes Implementation Guide. Note The getvariable command does not access the AAA server. It allows the script to access information returned in the last authorization or authentication interaction with the AAA server. TCL IVR API Version 1.0 Programmer s Guide 41
42 TCL IVR Command Reference insertmessage The insertmessage command inserts a message to the originating (calling) party. This command blocks until the message completes. Digits are ignored. The destination (called) party will not hear anything (the tone or the calling party) while the message is playing. Syntax insertmessage url returninfo Arguments The arguments of this command are: url The name and location of an.au file (in G bit ulaw encoding). returninfo The name of an associative array where information about the result is stored. Return Values This command returns play complete. However, outgoing disconnected is returned if the called party hangs up. This command returns play fail if the message fails to play. Blocking or Non Blocking Blocking Example # Give the caller a warning 10 seconds before cutting him off set event [starttimer [expr credittime-10] retinfo] if {$event == Timeout insertmessage tensecondsleft.au returninfo if { $event!= play complete exit 0 starttimer 10 exit 0 Usage Notes If no conference is active when this command is invoked, the script returns an error code, which causes the underlying infrastructure to disconnect the call and clean up. 42 TCL IVR API Version 1.0 Programmer s Guide
43 inserttone inserttone The inserttone command inserts a beep to the originating (calling) party. The tone is actually a 60 msec ring. The destination (called) party will not hear the tone. This command is typically used to warn the caller 10 seconds before the call is cut off. Syntax inserttone Arguments None Return Values None Blocking or Non Blocking Non blocking Example # If a timeout occurs, tell the caller with a beep if { $event == "timeout" { inserttone Usage Notes If a tone was already playing due to a playtone command, that tone will be halted. If no conference exists, the script will exit with error information. For information about how tones are defined in the code, see the Tones on page 62. TCL IVR API Version 1.0 Programmer s Guide 43
44 TCL IVR Command Reference placecall The placecall command places a call to the specified destination. Syntax placecall destination info returninfo Arguments The arguments of this command are: destination The number to look up in the dialing plan to place the call. info An array of arguments describing how to place the call. info(originationnum) The origination number to use. info(accountnum) The account number to use. info(destinationnum) The called number to use. info(redirectnum) The redirection number to use. info(pinnum) The PIN to use. returninfo The name of an associative array where information about the result is stored. Return Values This command returns active or call fail. If the call fails, the failure code is stored in returninfo(code). Blocking or Non Blocking Blocking Example # Place a call, setting an account number, and check the return set callinfo(accountnum) $account set ev [placecall $destination callinfo info] if {$ev == active { set state active if {$ev == "call fail" { set state place_fail Usage Notes Even if placecall returns active, the outgoing call leg is not created if the dial peer that matches the call has a loopback session target configured; the outgoing callid cannot be retrieved. If there is no incoming call, the script will exit with error information. If there is already an active outgoing call, the script will exit with error information. 44 TCL IVR API Version 1.0 Programmer s Guide
45 placecall You can use the placecall command to set the OSP credit time. If the script places a call to a number that uses a dial-peer which is configured for OSP, placecall automatically initiates the OSP transaction, which returns a credit time. Information configured in the info array overrides information received from the incoming call. If an info array value is not specified, information from the incoming callinfo is used. If you do not configure the destinationnum, the called number in the outbound call is generated using the standard IOS algorithm (which uses the destination and the matched digits in the dial-peer). Also, you can set destination to one number and still set a different number (with the destinationnum field) to be used in the called number field. The following arguments are defined in the code for the placecall command: PLACE_DEST destinationnum PLACE_CALLING originationnum PLACE_ACCOUNT accountnum PLACE_PIN pinnum PLACE_REDIRECT redirectnum TCL IVR API Version 1.0 Programmer s Guide 45
46 TCL IVR Command Reference playfailuretone The playfailuretone command plays a tone according to the last failure event and code. This command blocks until either the number of seconds elapses or an event occurs. The tone played is busy if the last failure code is Normal, unspecified, or busy. Otherwise, the tone played is congestion. This command is typically used to give the caller the appropriate tone (fast busy, normal busy, and so forth) on failure. Syntax playfailuretone numseconds returninfo Arguments The arguments of this command are: numseconds The number of seconds the tone should be played. Possible values are 1 to 4 million seconds. returninfo The name of an associative array where information about the result is stored. Return Values This command returns timeout or an event. The value is stored in returninfo(timeleft). If a timeout occurs, returninfo(timeleft) is 0. Blocking or Non Blocking Blocking Example # play failure tone for 5 seconds playfailuretone 5 returninfo Usage Notes This command does not turn off the tone, even after the timer expires. However, scripts typically play the failure tone and then disconnect, so the tone stops when the call is cleared. If there is no incoming call, the script will exit with error information. For information about how tones are defined in the code, see the Tones on page TCL IVR API Version 1.0 Programmer s Guide
47 playprompt playprompt The playprompt command plays a prompt to the incoming call leg. This command is similar to the promptandcollect command, except this command allows dynamic prompting. Syntax playprompt prompt_array_name returninfo [promptinfo] Arguments The arguments of this command are: prompt_array_name An associative array of arguments describing how to play the prompt. prompt_array_name(insertmessage) Indicates to insert message in a conference if set to True. prompt_array_name(interrupt) Allows the user to interrupt the prompt and enter digits before the prompt completes playing. prompt_array_name(abortkey) Specifies a key to allow the user to abort the prompt. prompt_array_name(terminationkey) Specifies a key to terminate pattern collection. prompt_array_name(dialplan) Specifies to collect digits against the dial plan. prompt_array_name(dialplanterm) Specifies to collect digits against the dial plan but not to return until a timeout occurs while collecting digits. prompt_array_name(playcomplete) Specifies to return on play completion (not to wait for digit collection). The default value is True, but if any of the arguments dialplan, dialplanterm, or maxdigits are set, these may override it, changing the playcomplete value to False. prompt_array_name(maxdigits) Specifies the maximum number of digits to be collected. returninfo The name of an associative array where information about the result is stored. promptinfo (Optional) Information about the prompt to play. For static prompts this can be a pointer to the location of the audio files. URL The location of an audio file. The URL must contain a colon or the code treats it as a file name, adding.au to the location. For example: tftp:// /lang_en/en_welcome.au name.au The name of an audio file. The audio file location values will be appended to the name.au. The file name cannot contain a colon, or it will be treated as a URL. For dynamic prompts, the following fields are used: %anum A monetary amount (in US cents). If you specify 123, the value is $1.23. The maximum value is for $999, %tnum Time (in seconds). %dday_time Day of week and time of day. The format is DHHMM, where D is the day of week and 1=Monday, 7=Sunday. For example, %d52147 plays Friday, 9:47 PM. %stime Amount of play silence (in msecs). TCL IVR API Version 1.0 Programmer s Guide 47
48 TCL IVR Command Reference %pnum Plays a phone number. The maximum number of digits is 64. This does not insert any text, such as the number is, but it does put pauses between groups of numbers. It assumes groupings as used in common numbering plans. For example, is read as The pauses between the groupings are 500 msec. %nnum Plays a string of digits without pauses. %iid Plays an announcement. The id must be 2-digits. The digits can be any character except a period (.). The URL for the announcement is created as with _announce_<id>.au, and appending language and au location fields. Return Values play complete The message is played, but no digit collection is needed (when playcomplete is set). play fail The message fails to play. collect success The message is played and the digit collection succeeds. collect fail The message is played, but the digit collection does not succeed. collect aborted The message is played, but the digit collection does not succeed. no conference exits The insertmessage command is set, but no conference exists. collect timeout The router times out waiting for digits to be keyed in by the caller. Blocking or Non Blocking Blocking Example # Get the destination number set amt [getvariable radius creditamount] set param(interrupt) true set param(abortkey) * set param(dialplan) true set param(terminationkey) # set ev [playprompt param info en_you_have.au %a$amt %s1000 en_enter_dest.au] if {$ev == "collect success" { set destination $info(digits) set state second_authorize if {$ev == "collect aborted" { set state get_dest Usage Notes If there is no incoming call, the script will exit with error information. Unlike promptandcollect, playprompt does not allow generic pattern matching. It can only match against the dialplan. 48 TCL IVR API Version 1.0 Programmer s Guide
49 playprompt For dynamic prompts, which are played using the playprompt command, you can use the setlocation and setvariable language commands and the CLI to determine which audio file is played.for example, let s say you enter the following at the CLI: (config)#call application voice myapp language 3 en This command associates '3' is associated with the two-character language code of en. Next, you specify the following in the script: setvariable language 3 setlocation tftp://keyer/en_audio/ en 0 setlocation tftp://keyer/fr_audio/ fr 0 These commands set the current language to 3, which we identified earlier as English, and indicate that all the audio files for English are located in tftp://keyer/en_audio/ and all the audio files for French are stored in tftp://keyer/fr_audio/. Then, if you want to change the language without altering the script, you can use the CLI command to associate 3 with French as follows: (config)#call application voice myapp language 3 fr The result is that when the script encounters the following command: playprompt welcomemessage It will use the URL specified in the setlocation command for French and the audio file played will be the one located at: tftp://keyer/fr_audio/welcomemessage.au TCL IVR API Version 1.0 Programmer s Guide 49
50 TCL IVR Command Reference playtone The playtone command creates a call progress tone. This command sends a user-specified tone to the call leg. Because there is no capability for this over an IP leg, a VoIP call leg ignores this command. If a conference is in session, the digital signalling processor (DSP) stops sending data to the remote end while playing a tone. This command is typically used give the caller a dial-tone if the script needs to collect digits. Syntax playtone tone [outgoing] Arguments The arguments of this command are: tone This can be one of the following: Ring, Busy, Dial, Out Of Service, Address Ack, Disconnect, Off Hook Notice, Off Hook Alert, or None. When specifying the name of a tone that contains spaces, be sure to enclose the tone name in quotes. For example playtone Off Hook Alert outgoing (Optional) If specified, the tone is played to the outgoing call leg. Return Values None Blocking or Non Blocking Non blocking Example # Output a ring for 5 seconds playtone Ring starttimer 5 elapsedtime playtone None Usage Notes If you invoke playtone tone when there is no incoming call leg, the script will exit with error information. If you invoke playtone tone outgoing when there is no outgoing call leg, the command will be ignored. For information about how tones are defined in the code, see the Tones on page TCL IVR API Version 1.0 Programmer s Guide
51 promptandcollect promptandcollect The promptandcollect command plays a prompt to the caller and collects digits against a set of patterns. This command is similar to the playprompt command, except this command does not allow dynamic prompting. Syntax promptandcollect prompt_array_name returninfo [patterns] Arguments The arguments of this command are: prompt_array_name An associative array of information that describes how to play the prompt. prompt_array_name(url) Is the URL of an audio file (in G bit ulaw format). prompt_array_name(abortkey) Specifies a key to allow the user to abort the prompt. prompt_array_name(terminationkey) Specifies a key to terminate pattern collection. prompt_array_name(interrupt) Allows the user to begin entering digits before the prompt completes playing. prompt_array_name(dialplan) Specifies to collect digits against the dial plan. prompt_array_name(playcomplete) Specifies to return on play completion. returninfo The name of an associative array where information about the result is stored. patterns (Optional) An array of patterns to collect against. For more information about patterns, see the TCL and the TK Toolkit by John Ousterhout (published by Addison Wesley Longman, Inc). Return Values This command returns collect success, in which case returninfo(digits) is the string collected. If the digits were collected against a pattern, returninfo(patternname) is the name of the pattern. If the digits were collected against a dial plan, then returninfo(patternname) is NULL. This command returns play complete if prompt(playcompete) was set, or collect fail, if the digits collected do not match the pattern. If the digits collected do not match the pattern, the collected digits are not returned to the script. This command returns play fail if the message fails to play. If no pattern is defined and neither dialplan nor playcomplete is set to True, collect fail will be returned. If you use the argument set patterns (anypattern).+ to set the patterns, the PromptAndCollect command accepts any pattern of digits. Blocking or Non Blocking Blocking TCL IVR API Version 1.0 Programmer s Guide 51
52 TCL IVR Command Reference Example # Prompt for destination number allow * entry to abort set prompt(url) flash:enterdest.au set prompt(interrupt) true set prompt(abortkey) * set prompt(dialplan) true set event [promptandcollect prompt info] if {$event == collect success { set state place_call set destination $info(digits) Usage Notes If there is no incoming call, the script will exit with error information. You can collect against both the dial plan (set of dial-peers) and patterns. If a number matches both, the result is undefined. You cannot collect digits while a prompt is playing. Setting prompt(interrupt) allows the prompt to be terminated when the caller enters a digit. The following arguments are defined in the code for the promptandcollect command: PROMPT_ABORT_KEY abortkey PROMPT_TERM_KEY terminationkey PROMPT_URL url PROMPT_ALLOW_INT interrupt PROMPT_OUTGOING outgoing PROMPT_DIALPLAN dialplan PROMPT_DIALPLAN_TERM dialplanterm PROMPT_PLAY_RET playcomplete PROMPT_INSRTMSG insertmessage PROMPT_MAX_DIGIT maxdigits 52 TCL IVR API Version 1.0 Programmer s Guide
53 puts puts The puts command outputs a debug string to the console if the IVR state debug flag is set (using the debug voip ivr state command). Syntax puts [-nonewline] string Arguments The arguments of this command are: -nonewline (Optional) If specified, a new line will not be output after the string. string The string to output. Return Values This command returns an empty string. Blocking or Non Blocking Non blocking Example: puts Handling call ID [callid] TCL IVR API Version 1.0 Programmer s Guide 53
54 TCL IVR Command Reference rdn The rdn command returns the redirect number that came with the call. Syntax rdn Arguments None Return Values This command returns the redirect number or a null string if no redirect number is available. Blocking or Non Blocking Non blocking Example # place the call to the rdn set event [placecall [rdn] callinfo info] Usage Notes If there is no incoming call, the script will exit with error information. 54 TCL IVR API Version 1.0 Programmer s Guide
55 setlocation setlocation The setlocation command specifies the location of the audio files for each language and category. Syntax setlocation url language category Arguments The arguments of this command are: url The location where the prompts are stored. language If information for different languages is stored in different places, this is the two-character language code for the specified URL. Use aa if the prompts for all languages are stored in the same place. You can use any two characters that you want. IOS does not enforce any specific two-character identifier. So although en is typically used to indicate English. You could use en to indicate French. The two-character code should match one of the codes specified in the call application voice command. category If information for different categories is stored in different places, this is the category for the specified URL. Use one of the following: 0 - all 1 - numbers 2 - units 3 - day/months 4 - others Return Values None Blocking or Non Blocking Non blocking Example # install params set accountlen [getvariable config uidlen] set pinlen [getvariable config pinlen] set retrycnt [getvariable config retrycount] set operatornum [getvariable config redirectnumber] set warntime [getvariable config warningtime] set prelanguage [getvariable radius preferredlang] setvariable language 1 setlocation tftp://keyer/echeng/bowie_audio/ en 0 Usage Notes If you specify an invalid category or a language that has not been configured, the script returns an error code, which causes the underlying infrastructure to disconnect the call and clean up. TCL IVR API Version 1.0 Programmer s Guide 55
56 TCL IVR Command Reference settimeout The settimeout command sets the initial digit collection timeout and the inter-digit collection timeout values. This command overrides any configuration of the voice port. If you set the timeout to 0, this disables the timer. Syntax settimeout initialdigittimeout interdigittimeout Arguments The arguments of this command are: initialdigittimeout The number of seconds to wait for the first digit in promptandcollect. interdigittimeout The number of seconds to wait between digits in promptandcollect. Return Values None Blocking or Non Blocking Non blocking Example # set the digit timeouts short for redialer interaction settimeout TCL IVR API Version 1.0 Programmer s Guide
57 setvariable setvariable The setvariable command sets the value of a specified variable. Syntax setvariable name value Arguments The arguments of this command are: name The name of the variable to set. Valid values are longpound and language. value The new value. Valid values depend on the variable name. Name Value Description longpound true, false If longpound is false, any pound sign (#) is reported as a # digits. If longpound is true, # digits longer than one second are reported as long pound events. language 0 through 9 Specifies the language to be used. Return Values If language is specified as the variable, this command can return one of the following: If the corresponding language has not been configured (using the call application voice command), this command returns a language not specified in configuration event and the setting is ignored. If the language argument is outside the range (0-9), this command returns language not supported. Otherwise, this command returns a NULL string. Blocking or Non Blocking Non blocking Example #install parameters setvariable language 1 setvariable longpound true Usage Notes If a name other than longpound or language is specified, the script returns an error code, which causes the underlying infrastructure to disconnect the call and clean up. If longpound returns anything other than true or false, the script returns an error code, which causes the underlying infrastructure to disconnect the call and clean up. If a value greater than 9 is specified, a language not supported event is returned, but the script will not exit with error information. TCL IVR API Version 1.0 Programmer s Guide 57
58 TCL IVR Command Reference setupack The setupack command sends a call setup acknowledgement message to the incoming call leg. This command is ignored if a setup acknowledgement, proceeding, or connect message has already been sent (for example, if the script has already issued a callproceeding or acceptcall command). Syntax setupack Arguments None Return Values None Blocking or Non Blocking Non blocking Example # acknowledge the setup before waiting on authentication setupack set event [authenticate [ani] [dnis] info] Usage Notes If there is no incoming call, the script will exit with error information. 58 TCL IVR API Version 1.0 Programmer s Guide
59 starttimer starttimer The starttimer command blocks until either a specified number of seconds elapses or another event (such as a destination hang up) occurs. The timer does not continue running after the starttimer command returns. Syntax starttimer numseconds returninfo Arguments The arguments of this command are: numseconds The number of seconds to wait. Possible values are 0 to 4 million seconds. returninfo The name of an associative array where information about the result is stored. Return Values This command returns timeout if no other event occurs. If an event occurs, returninfo(timeleft) contains the amount of time left. Otherwise, it contains 0. Blocking or Non Blocking Blocking Example # wait for the credit time we have set event [starttimer [credittimeleft] returninfo] while { $event == digit { set event [starttimer [credittimeleft] returninfo] Usage Notes If the value for starttimer numseconds is not given a number, but by mistake some alphanumeric string, the script returns an error code, which causes the underlying infrastructure to disconnect the call and clean up. If you specify a negative number of seconds to wait, the script returns an error code, which causes the underlying infrastructure to disconnect the call and clean up. If IVR state debugging is on (see the Testing and Debugging Your Script on page 13), this command will cause Wait for <num> seconds to be displayed when this command is encountered. TCL IVR API Version 1.0 Programmer s Guide 59
60 TCL IVR Command Reference waitevent The waitevent command causes the script to sit idly until an event occurs. Syntax waitevent returninfo Arguments The argument of this command is: returninfo The name of an associative array where information about the result is stored. Return Values This command returns: outgoing disconnected if the outgoing call leg disconnected. digit if a digit was collected. In this case, returninfo(digits) will contain the digit collected. Blocking or Non Blocking Blocking Example # Place a call, then just sit on waitevent, ignoring digits set callinfo(destinationnum) destination set event [placecall destination callinfo info] if {$event!= active { puts Call [callid] got $event when placing call exit 0 set event [waitevent returninfo] while {$event == digit { puts ignoring received digit $returninfo(digits) set event [waitevent] 60 TCL IVR API Version 1.0 Programmer s Guide
61 Value Definitions Value Definitions Within the code that supports the TCL IVR scripts, there is a series of defined values. These values are listed in this section. Events The valid event values for the TCL IVR commands are: TA_E_AUTHEN_SUCCESS authenticated TA_E_AUTHEN_FAIL authentication failed TA_E_AUTHOR_SUCCESS authorized TA_E_AUTHOR_FAIL authorization failed TA_E_AUTHOR_ERROR authorization error TA_E_DISC_OUT outgoing disconnected TA_E_CALL_FAIL call fail TA_E_ACTIVE active TA_E_COLLECT_FAIL collect fail TA_E_COLLECT_SUCCESS collect success TA_E_COLLECT_COMPLETE play complete TA_E_COLLECT_ABORTED collect aborted TA_E_COLLECT_TIMEOUT collect timeout TA_E_PLAY_COMPLETE play complete TA_E_CANT_PLAY_PROMPT play failed on voip call leg TA_E_FAILURE failure TA_E_SUCCESS success TA_E_DIGIT digit TA_E_TIMEOUT timeout TA_E_CREATE_DONE conference created TA_E_DESTROY_DONE conference deleted TA_E_LONG_POUND longpound TA_E_FACILITY facility TCL IVR API Version 1.0 Programmer s Guide 61
62 Value Definitions ReturnInfo Array The retinfo variable in most commands is an associative array that can contains information in the following fields: TA_RI_CODE code TA_RI_DIGITS digits TA_RI_PATNAME patternname TA_RI_CREDIT credittime TA_RI_TIMELEFT timeleft TA_RI_LONG_POUND longpound TA_RI_ROAM roam Tones For tones, the possible values are: TA_TONE_RINGBACK Ring TA_TONE_BUSY Busy TA_TONE_DIALTONE Dial TA_TONE_OOS Out Of Service TA_TONE_ADDR_ACK Address Ack TA_TONE_DISCONNECT Disconnect TA_TONE_OFF_HOOK_NOTICE Off Hook Notice TA_TONE_OFF_HOOK_ALERT Off Hook Alert TA_TONE_NULL None 62 TCL IVR API Version 1.0 Programmer s Guide
63 Related Documentation Related Documentation Configuring Interactive Voice Response for Cisco Access Platforms htm Service Provider Features for Voice over IP 03.htm Voice over IP for the Cisco AS Voice over IP for the Cisco AS Voice over IP for the Cisco 2600/Cisco 3600 Series Configuring H.323 VoIP Gateway for Cisco Access Platforms gw.htm Configuring H.323 VoIP Gatekeeper for Cisco Access Platforms gk.htm Prepaid Distributed Calling Card via Packet Telephony i.htm RADIUS Vendor-Specific Attributes Voice Implementation Guide Glossary AAA Authentication, Authorization, and Accounting. A suite of network security services that provides the primary framework through which you can set up access control on your Cisco router or access server. ANI Automatic number identification. Same as calling party. CDR Call Data Record. CLI Command line interface. DID Dial in direct. Calls in which the gateway uses the number that you initially dialed (DNIS) to make the call, as opposed to prompting you to dial additional digits. DNIS Dialed number identification service. Same as the called number. DSP Digital signalling processor. TCL IVR API Version 1.0 Programmer s Guide 63
64 Glossary DTMF Dual tone multifrequency. Use of two simultaneous voice-band tones for dialing (such as touch tone). Gatekeeper A Gatekeeper maintains a registry of devices in the multimedia network. The devices register with the Gatekeeper at startup and request admission to a call from the Gatekeeper. The Gatekeeper is an H.323 entity on the LAN that provides address translation and control access to the LAN for H.323 terminals and gateways. The Gatekeeper can provide other services to the H.323 terminals and gateways, such as bandwidth management and locating gateways. gateway A gateway allows H.323 terminals to communicate with non-h.323 terminals by converting protocols. A gateway is the point where a circuit-switched call is encoded and repackaged into IP packets. An H.323 gateway is an endpoint on the LAN that provides real-time, two-way communications between H.323 terminals on the LAN and other ITU-T terminals in the WAN or to another H.323 gateway. IFS Cisco IOS File System. ISDN Integrated Services Digital Network. Communication protocol, offered by telephone companies, that permits telephone networks to carry data, voice, and other source traffic. IVR Interactive voice response. When someone dials in, IVR responds with a prompt to get a personal identification number (PIN), and so on. OSP Open Settlement Protocol. Protocol used to allow carriers to communicate with third-party settlement servers. PIN Personal identification number. Password used with account number for authentication. POTS Plain old telephone service. Basic telephone service supplying standard single line telephones, telephone lines, and access to the PSTN. PSTN Public Switched Telephone Network. PSTN refers to the local telephone company. RADIUS Remote Access Dial-In User Service. Database for authenticating modem and ISDN connections and for tracking connection time. TCL Tool Command Language. TCL is an interpreted script language developed by Dr. John Ousterhout of the University of California, Berkeley, and is now developed and maintained by Sun Microsystems Laboratories. URL Universal Resource Locator. Standardized addressing scheme for accessing hypertext documents and other services using a browser. VoFR Voice Over Frame Relay. Voice over Frame Relay enables a router to carry voice traffic (for example, telephone calls and faxes) over a Frame Relay network. When sending voice traffic over Frame Relay, the voice traffic is segmented and encapsulated for transit across the Frame Relay network using FRF.12 encapsulation. VoIP Voice over IP. The ability to carry normal telephone-style voice signals over an IP-based network with POTS-like functionality, reliability, and voice quality. VoIP is a blanket term that generally refers to Cisco's open standards-based (for example, H.323) approach to IP voice traffic. Note For a list of other internetworking terms, see Internetworking Terms and Acronyms document that is available on the Documentation CD-ROM and Cisco Connection Online (CCO) at the following URL: 64 TCL IVR API Version 1.0 Programmer s Guide
65 Cisco Connection Online Cisco Connection Online Cisco Connection Online (CCO) is Cisco Systems primary, real-time support channel. Maintenance customers and partners can self-register on CCO to obtain additional information and services. Available 24 hours a day, 7 days a week, CCO provides a wealth of standard and value-added services to Cisco s customers and business partners. CCO services include product information, product documentation, software updates, release notes, technical tips, the Bug Navigator, configuration notes, brochures, descriptions of service offerings, and download access to public and authorized files. CCO serves a wide variety of users through two interfaces that are updated and enhanced simultaneously: a character-based version and a multimedia version that resides on the World Wide Web (WWW). The character-based CCO supports Zmodem, Kermit, Xmodem, FTP, and Internet , and it is excellent for quick access to information over lower bandwidths. The WWW version of CCO provides richly formatted documents with photographs, figures, graphics, and video, as well as hyperlinks to related information. You can access CCO in the following ways: WWW: WWW: WWW: Telnet: cco.cisco.com Modem: From North America, ; from Europe, Use the following terminal settings: VT100 emulation; databits: 8; parity: none; stop bits: 1; and connection rates up to 28.8 kbps. For a copy of CCO s Frequently Asked Questions (FAQ), contact [email protected]. For additional information, contact [email protected]. Note If you are a network administrator and need personal technical assistance with a Cisco product that is under warranty or covered by a maintenance contract, contact Cisco s Technical Assistance Center (TAC) at , , or [email protected]. To obtain general information about Cisco Systems, Cisco products, or upgrades, contact , , or [email protected]. Documentation CD-ROM Cisco documentation and additional literature are available in a CD-ROM package, which ships with your product. The Documentation CD-ROM, a member of the Cisco Connection Family, is updated monthly. Therefore, it might be more current than printed documentation. To order additional copies of the Documentation CD-ROM, contact your local sales representative or call customer service. The CD-ROM package is available as a single package or as an annual subscription. You can also access Cisco documentation on the World Wide Web at or If you are reading Cisco product documentation on the World Wide Web, you can submit comments electronically. Click Feedback in the toolbar and select Documentation. After you complete the form, click Submit to send it to Cisco. We appreciate your comments. TCL IVR API Version 1.0 Programmer s Guide 65
66 Documentation CD-ROM This document is to be used in conjunction with the documents listed in the Related Documentation section. Access Registrar, AccessPath, Any to Any, AtmDirector, CCDA, CCDE, CCDP, CCIE, CCNA, CCNP, CCSI, CD-PAC, the Cisco logo, Cisco Certified Internetwork Expert logo, CiscoLink, the Cisco Management Connection logo, the Cisco NetWorks logo, the Cisco Powered Network logo, Cisco Systems Capital, the Cisco Systems Capital logo, Cisco Systems Networking Academy, the Cisco Systems Networking Academy logo, the Cisco Technologies logo, ConnectWay, Fast Step, FireRunner, GigaStack, IGX, Internet Quotient, Kernel Proxy, MGX, Natural Network Viewer, NetSonar, Network Registrar, Packet, PIX, Point and Click Internetworking, Policy Builder, Precept, Secure Script, ServiceWay, SlideCast, SMARTnet, The Cell, TrafficDirector, TransPath, ViewRunner, VisionWay, VlanDirector, Workgroup Director, and Workgroup Stack are trademarks; Changing the Way We Work, Live, Play, and Learn, Empowering the Internet Generation, The Internet Economy, and The New Internet Economy are service marks; and ASIST, BPX, Catalyst, Cisco, Cisco IOS, the Cisco IOS logo, Cisco Systems, the Cisco Systems logo, the Cisco Systems Cisco Press logo, Enterprise/Solver, EtherChannel, EtherSwitch, FastHub, FastLink, FastPAD, FastSwitch, GeoTel, IOS, IP/TV, IPX, LightStream, LightSwitch, MICA, NetRanger, Post-Routing, Pre-Routing, Registrar, StrataView Plus, Stratm, TeleRouter, and VCO are registered trademarks of Cisco Systems, Inc. and/or its affiliates in the U.S. and certain other countries. All other trademarks mentioned in this document are the property of their respective owners. The use of the word partner does not imply a partnership relationship between Cisco and any of its resellers. (9909R) Copyright 2000, Cisco Systems, Inc. All rights reserved. 66 TCL IVR API Version 1.0 Programmer s Guide
Direct Inward Dial Digit Translation Service
Direct Inward Dial Digit Translation Service In Cisco CME 3.2.3 and later versions, a Tcl script is available to provide digit translation for Direct Inward Dial (DID) calls when the DID digits provided
Configuring VoIP Call Setup Monitoring
The Cisco IOS IP Service Level Agreements (SLAs) VoIP Call Setup (Post-Dial Delay) Monitoring feature provides the ability to measure your network s response time for setting up a Voice over IP (VoIP)
Let's take a look at another example, which is based on the following diagram:
Chapter 3 - Voice Dial Peers In order to understand the concept of dial peers, it is important to understand call legs. A voice call over a packet network is segmented into discrete call legs. A call leg
This topic describes dial peers and their applications.
Dial Peers What is Dial Peer? This topic describes dial peers and their applications. What is a Dial Peer? A dial peer is an addressable call endpoint. Dial peers establish logical connections, called
Connecting to the Firewall Services Module and Managing the Configuration
CHAPTER 3 Connecting to the Firewall Services Module and This chapter describes how to access the command-line interface and work with the configuration. This chapter includes the following sections: Connecting
Call Setup and Digit Manipulation
Call Setup and Digit Manipulation End-to-End Calls This topic explains how routers interpret call legs to establish end-to-end calls. End-to-End Calls IP Telephony 2005 Cisco Systems, Inc. All rights reserved.
IP PBX. SD Card Slot. FXO Ports. PBX WAN port. FXO Ports LED, RED means online
1 IP PBX SD Card Slot FXO Ports PBX LAN port PBX WAN port FXO Ports LED, RED means online 2 Connect the IP PBX to Your LAN Internet PSTN Router Ethernet Switch FXO Ports 3 Access the PBX s WEB GUI The
Supported Platforms. Supported Standards, MIBs, and RFCs. Prerequisites. Related Features and Technologies. Related Documents. Improved Server Access
Configuring Timeout, Retransmission, and Key Values per RADIUS Server The Configuring Timeout, Retransmission, and Key Values per RADIUS Server feature extends the functionality of the existing radius-server
Dial Peer. Example: Dial-Peer Configuration
Configuring Dial Peers Understanding Dial Peers This topic describes dial peers and their applications. Understanding Dial Peers A dial peer is an addressable call endpoint. Dial peers establish logical
Table of Contents. Cisco Mapping Outbound VoIP Calls to Specific Digital Voice Ports
Table of Contents Mapping Outbound VoIP Calls to Specific Digital Voice Ports...1 Introduction...1 Before You Begin...1 Conventions...1 Prerequisites...1 Components Used...1 Configure...2 Network Diagram...2
Emerald. Cisco IVR - Prepaid Voice Version 1.1. Emerald Management Suite IEA Software, Inc.
Emerald Cisco IVR - Prepaid Voice Version 1.1 Emerald Management Suite IEA Software, Inc. Software License Agreement By purchasing or installing all or part of the Emerald Management Suite, you indicate
Configuring SIP Support for SRTP
Configuring SIP Support for SRTP This chapter contains information about the SIP Support for SRTP feature. The Secure Real-Time Transfer protocol (SRTP) is an extension of the Real-Time Protocol (RTP)
MiVoice Integration for Salesforce
MiVoice Integration for Salesforce USER GUIDE MiVoice Integration for Salesforce User Guide, Version 1, April 2014. Part number 58014124 Mitel is a registered trademark of Mitel Networks Corporation. Salesforce
Cisco SPA302D Mobility Enhanced Cordless Handset
USER GUIDE Cisco SPA30D Mobility Enhanced Cordless Handset Contents Chapter 1: Getting Started 1 Overview 1 Understanding Your Cisco SPA30D Cisco SPA30D Display Screen 4 Turning the Handset On and Off
Voice Call Flow Overview
oice Call Flow Overview To troubleshoot problems with voice networks, you must follow the call both inside the router and outside on the network in order to isolate the problem. You must understand the
Cisco Unity Express 8.5 Voice-Mail System User s Guide for Advanced Features
Cisco Unity Express 8.5 Voice-Mail System User s Guide for Advanced Features First Published: January 18, 2011 This guide provides information about using some of the advanced voice-mail features of your
Dolby Conference Phone User s Guide 2.0. Issue 2
Dolby Conference Phone User s Guide 2.0 Issue 2 Corporate Headquarters Dolby Laboratories Licensing Corporation Dolby Laboratories, Inc. 100 Potrero Avenue San Francisco, CA 94103 4813 USA Telephone 415
Tcl IVR 2.0 Programming Guide
Cisco IOS Release 12.3(4)XQ Doc Release Date 4/5/2004 Corporate Headquarters Cisco Systems, Inc. 170 West Tasman Drive San Jose, CA 95134-1706 USA http://www.cisco.com Tel: 408 526-4000 800 553-NETS (6387)
RADIUS Server Load Balancing
First Published: March 20, 2006 Last Updated: September 22, 2009 The feature distributes authentication, authorization, and accounting (AAA) authentication and accounting transactions across servers in
Session Initiation Protocol Gateway Call Flows and Compliance Information
Session Initiation Protocol Gateway Call Flows and Compliance Information Corporate Headquarters Cisco Systems, Inc. 170 West Tasman Drive San Jose, CA 95134-1706 USA http://www.cisco.com Tel: 408 526-4000
Release Notes for NeoGate TE100 16.18.0.X
Release Notes for NeoGate TE100 16.18.0.X ===Firmware Version: V16.18.0.2==== Applicable Model: NeoGate TE100 Release Date: October 25th, 2014 http://www.yeastar.com 1/6 1. New Features 1. Added support
GLBP - Gateway Load Balancing Protocol
GLBP - Gateway Load Balancing Protocol Gateway Load Balancing Protocol (GLBP) protects data traffic from a failed router or circuit, like Hot Standby Router Protocol (HSRP) and Virtual Router Redundancy
IPPBX FAQ. For Firmware Version: V2.0/V3.0 2013-12-11
For Firmware Version: V2.0/V3.0 2013-12-11 Contents 1. IPPBX Access... 3 1.1 How to access IPPBX via SSH?... 3 1.2 How to access IPPBX if I forget the IP of WAN?... 4 1.3 How to retrieve WEB password via
Feature Reference. Features: Call Forwarding Call Waiting Conference Calling Outbound Caller ID Block Last Call Return VoiceMail
Feature Reference This document will provide you with information on and how to use the following features of your phone service with Standard Broadband. Features: Call Forwarding Call Waiting Conference
Polycom SoundPoint IP 650
Polycom SoundPoint IP 650 User Guide For training/documentation, please visit us @ http://customertraining.verizonbusiness.com or call 1 800 662 1049 2009 Verizon. All Rights Reserved. The Verizon and
Installation and Configuration Manual
Beacon Office Installation and Configuration Manual Version - 2.5(1) Radianta Inc. September 2008 Radianta, Inc. Beacon Office Page 2 Table of Contents Introduction... 4 What is Beacon Office... 4 How
COMSPHERE 6700 SERIES NETWORK MANAGEMENT SYSTEM
COMSPHERE 6700 SERIES NETWORK MANAGEMENT SYSTEM SECURITY MANAGER FEATURE SUPPLEMENT Document No. 6700-A2-GB41-30 February 1998 Copyright 1998 Paradyne Corporation. All rights reserved. Printed in U.S.A.
Backing Up and Restoring Data
Backing Up and Restoring Data Cisco Unity Express backup and restore functions use an FTP server to store and retrieve data. The backup function copies the files from the Cisco Unity Express application
IP-PBX Quick Start Guide
IP-PBX Quick Start Guide Introduce... 3 Configure and set up the IP-PBX... 4 How to change the IP address... 7 Set up extensions and make internal calls... 8 How to make calls via the FXO port... 10 How
Mitel IP Phone User Reference Guide Release 5.0
830 Parkview Drive North, El Segundo, CA 90245 Tel: 310 747 3232 Fax: 310 747 3233 WWW.UNIVOIP.COM OfficeConnect Mitel IP Phone User Reference Guide Release 5.0 Note: The information contained in this
Configuring Access Service Security
CHAPTER 3 Configuring Access Service Security The access service security paradigm presented in this guide uses the authentication, authorization, and accounting (AAA) facility. Authentication requires
Telnet, Console and AUX Port Passwords on Cisco Routers Configuration Example
Telnet, Console and AUX Port Passwords on Cisco Routers Configuration Example Document ID: 45843 Introduction Prerequisites Requirements Components Used Conventions Background Information Configure Passwords
Configuring Network Side ISDN PRI Signaling, Trunking, and Switching
Configuring Network Side ISDN PRI Signaling, Trunking, and Switching This chapter describes the Network Side ISDN PRI Signaling, Trunking, and Switching feature. The following main sections are provided:
Application Note. IP8000 Conference Phone Configuration Guide. Table of Contents. Overview. Requirements. ST-10010 October 25, 2007
Application Note ST-10010 October 25, 2007 IP8000 Conference Phone Configuration Guide This application note provides the details on adding the IP8000 conference phone to the ShoreTel IP phone system.
Configuring Timeout, Retransmission, and Key Values Per RADIUS Server
Configuring Timeout, Retransmission, and Key Values Per RADIUS Server Feature Summary The radius-server host command functions have been extended to include timeout, retransmission, and encryption key
NAT TCP SIP ALG Support
The feature allows embedded messages of the Session Initiation Protocol (SIP) passing through a device that is configured with Network Address Translation (NAT) to be translated and encoded back to the
Release Date Version Supersedes Description. June 2006 Initial Release Initial Release
45p SLT User Guide Record of Revision Release Date Version Supersedes Description June 2006 Initial Release Initial Release Copyright XBLUE Networks, LLC 2006 XBLUE Networks reserves the right to make
OfficeSuite Mitel IP Phone User Reference Guide Release 4.1
OfficeSuite Mitel IP Phone User Reference Guide Release 4.1 2004-2009 Broadview Networks & Natural Convergence Inc. All rights reserved. Table of Contents TABLE OF CONTENTS...I INTRODUCTION...4 WHAT'S
OfficeSuite Cloud-Based Phone System Mitel IP Phone User Reference Guide Release 5.0 Final
OfficeSuite Cloud-Based Phone System Mitel IP Phone User Reference Guide Release 5.0 Final Note: The information contained in this document is the property of Broadview Networks Inc. and is disclosed to
642-436 Q&A. DEMO Version
Cisco Voice over IP (CVOICE) Q&A DEMO Version Copyright (c) 2010 Chinatag LLC. All rights reserved. Important Note Please Read Carefully For demonstration purpose only, this free version Chinatag study
Advanced Call Handling
Advanced Call Handling Advanced call-handling tasks involve special features that your system administrator may configure for your phone depending on your call-handling needs and work environment. Speed
Single Line Telephone User Guide
Record of Revision Release Date Version Supersedes Description March 2008 Initial Release Initial Release Copyright 2006 We reserves the right to make changes in specifications at any time without notice.
Direct IP Calls. Quick IP Call Mode
Unicorn3112 Tips Direct IP Calls...1 Quick IP Call Mode...1 PSTN Pass Through...2 VoIP-to-PSTN Calls...2 PSTN-to-VoIP Calls...3 Route Calls to PSTN...4 Forward Calls to PSTN...4 Forward Calls to VoIP...4
A This panel lists all the IVR queues you have built so far. This is where you start the creation of a IVR
IVR The IVR (Interactive Voice Response) feature allows you to automate some or all of your inbound call handling. At its simplest, you can implement an IVR that routes calls to a specific department selected
VIP-102B IP Solutions Setup Tool Reference Manual
VIP-102B IP Solutions Setup Tool Reference Manual Table of Contents Overview...5 System Requirements for Managed VoIP Products...6 Term Definitions...7 Main Application Window...8 Legend Description...9
LifeSize Networker Installation Guide
LifeSize Networker Installation Guide November 2008 Copyright Notice 2006-2008 LifeSize Communications Inc, and its licensors. All rights reserved. LifeSize Communications has made every effort to ensure
Phone Routing Stepping Through the Basics
Ng is Phone Routing Stepping Through the Basics Version 2.6 Contents What is Phone Routing?...3 Logging in to your Ifbyphone Account...3 Configuring Different Phone Routing Functions...4 How do I purchase
Cisco IOS SIP Configuration Guide
Cisco IOS SIP Configuration Guide Dialpeer Configuration Session Number 1 Terminology Call - A connection terminating on or passing through a gateway. Call Leg - The segment of a call associated with a
An Overview of the Cisco Unified Wireless IP Phone 7921G
CHAPTER1 An Overview of the Cisco Unified Wireless IP Phone 7921G The Cisco Unified Wireless IP Phone 7921G provides wireless voice communication over an Internet Protocol (IP) network. Like traditional
NetFlow v9 Export Format
NetFlow v9 Export Format With this release, NetFlow can export data in NetFlow v9 (version 9) export format. This format is flexible and extensible, which provides the versatility needed to support new
BRI to PRI Connection Using Data Over Voice
BRI to PRI Connection Using Data Over Voice Document ID: 14962 Contents Introduction Prerequisites Requirements Conventions Background Information Configure Network Diagram Configurations Verify Troubleshoot
Compatible with All FXS Ports of Digium Asterisk VoIP PBX
X100P.com s STOC-FX World s First Professional Grade VoIP FXS to FXO Converter Compatible with All FXS Ports of Digium Asterisk VoIP PBX Copyright (c) 2006 by X100P.com All rights reserved including the
ADTRAN SBC and Cisco Unified Call Manager SIP Trunk Interoperability
6AOSSG0004-42A April 2013 Interoperability Guide ADTRAN SBC and Cisco Unified Call Manager SIP Trunk Interoperability This guide describes an example configuration used in testing the interoperability
640-460 - Implementing Cisco IOS Unified Communications (IIUC)
640-460 - Implementing Cisco IOS Unified Communications (IIUC) Course Introduction Course Introduction Module 1 - Cisco Unified Communications System Introduction Cisco Unified Communications System Introduction
managedip Hosted TDS Table of Contents Calling Features User Guide
Table of Contents Anonymous Call Rejection... 2 Automatic Callback... 2 Call Forwarding... 3 Call Park/Directed Call Park... 7 Call Park Retrieve... 8 Call Pickup... 8 Call Retrieve... 8 Call Return...
Clear Choice Communications. Digital Voice Services User Guide
Clear Choice Communications Digital Voice Services User Guide 2 P a g e * Feature Access Codes *62 Access Voicemail *72 Call Forwarding Always Activation *73 Call Forwarding Always Deactivation *90 Call
Voice Mail User Guide
Voice Mail User Guide IP COMMUNICATIONS PLATFORM FOR THE SMALL BUSINESS 1 Specifications subject to change without notice. Facilities described may or may not be supported by your network. Opera Flexicom
Connect to telephone. Connect to wall jack
AD350-SE Multi-Function Auto Dialer Installation Install the AD350 SE Multi Function Auto Dialer as shown in the below diagram. The AD350 SE is only work on standard analog phones. Do not install the dialer
Tcl IVR 2.0 Programming Guide
IOS Version 12.3(2)T 7/21/2003 Corporate Headquarters Cisco Systems, Inc. 170 West Tasman Drive San Jose, CA 95134-1706 USA http://www.cisco.com Tel: 408 526-4000 800 553-NETS (6387) Fax: 408 526-4100
Voice Gateway with Router
Voice User Guide Model No. SPA3102 Copyright and Trademarks Specifications are subject to change without notice. Linksys is a registered trademark or trademark of Cisco Systems, Inc. and/or its affiliates
How To Use Allworx On A Pc Or Mac Or Ipod Or Ipo Or Ipode Or Ipro Or Iporode Or Mac (For A Mac) Or Ipore Or Ipos Or Ipob Or Ipocode (
Allworx User s Guide (Release 7.2.3.x) No part of this publication may be reproduced, stored in a retrieval system, or transmitted, in any form or by any means, electronic, mechanical, photocopy, recording,
Contents. WOW! Phone Reference Guide
WOW! Phone Reference Guide Intro to WOW! Phone P-1 WOW! Phone Features P-1 Call Waiting P-1 Call Forwarding P-1 3-Way Calling P-1 Call Return P-1 Anonymous Call Rejection P-2 Caller ID P-2 Caller ID Block
silhouette Cloud-Based Phone System Mitel IP Phone User Reference Guide Release 5.0 Final
silhouette Cloud-Based Phone System Mitel IP Phone User Reference Guide Release 5.0 Final Contents Introduction...1 Setting your language...1 Setting your language for the web interface...1 Setting your
RADIUS Authentication and Accounting
5 RADIUS Authentication and Accounting Contents Overview...................................................... 5-2 Terminology................................................... 5-3 Switch Operating Rules
SMTP-32 Library. Simple Mail Transfer Protocol Dynamic Link Library for Microsoft Windows. Version 5.2
SMTP-32 Library Simple Mail Transfer Protocol Dynamic Link Library for Microsoft Windows Version 5.2 Copyright 1994-2003 by Distinct Corporation All rights reserved Table of Contents 1 Overview... 5 1.1
Intermedia Cloud Softphone. User Guide
Intermedia Cloud Softphone User Guide FOR MORE INFO VISIT: CALL US EMAIL US intermedia.net +1.800.379.7729 [email protected] 1 Contents 1 Introduction... 3 1.1 Cloud Softphone Features... 3 2 Installation...
Integrating VoIP Phones and IP PBX s with VidyoGateway
Integrating VoIP Phones and IP PBX s with VidyoGateway Updated February 2011 INDEX: I. ABSTRACT.1 II. III. IV. VIDYOGATEWAY OVERVIEW.. 1 NETWORK TOPOLOGIES AND DEFINITIONS...2 CONNECTING TO VIDYOCONFERENCES
Digital Voice Services Residential User Guide
Digital Voice Services Residential User Guide 2 P a g e * Feature Access Codes *11 Broadworks Anywhere (pulling call to alternate phone) *62 Access Voicemail *72 Call Forwarding Always Activation *73 Call
MAXCS Release 7.0. Application Note: Remote MultiVoIP Gateway Configuration. Intended audience: AltiGen Authorized Partners
MAXCS Release 7.0 Application Note: Remote MultiVoIP Gateway Configuration Intended audience: AltiGen Authorized Partners March 4, 2014 Contents Introduction... 3 Requirements... 3 MultiVoIP Gateway Configuration...
Using RADIUS Agent for Transparent User Identification
Using RADIUS Agent for Transparent User Identification Using RADIUS Agent Web Security Solutions Version 7.7, 7.8 Websense RADIUS Agent works together with the RADIUS server and RADIUS clients in your
HPBX User Guide. Version 2.0.60 V ISIT W IGHTMAN. CA
HPBX User Guide Version 2.0.60 V ISIT W IGHTMAN. CA Table of Contents CALL FEATURES... 4 Placing a Call... 4 Receiving a Call... 4 Call Forwarding... 4 Recording a Call... 4 Parking a Call... 5 Do Not
Business Telephone User Guide
Business Telephone User Guide 1 Proud to provide Conway s Electric, Water, Cable, Internet and Telephone services. Welcome to Conway Corporation Business Telephone Service We take pride in providing superior
Application Notes for Configuring QuesCom 400 IP/GSM Gateway with Avaya IP Office using H.323 trunks Issue 1.0
Avaya Solution & Interoperability Test Lab Application Notes for Configuring QuesCom 400 IP/GSM Gateway with Avaya IP Office using H.323 trunks Issue 1.0 Abstract These Application Notes describe the configuration
Version 2.6. Virtual Receptionist Stepping Through the Basics
Version 2.6 Virtual Receptionist Stepping Through the Basics Contents What is a Virtual Receptionist?...3 About the Documentation...3 Ifbyphone on the Web...3 Setting Up a Virtual Receptionist...4 Logging
SIP Trunking using Optimum Business SIP Trunk Adaptor and the Cisco Call Manager Express Version 8.5
CISCO SIP Trunking using Optimum Business SIP Trunk Adaptor and the Cisco Call Manager Express Version 8.5 Goal The purpose of this configuration guide is to describe the steps needed to configure the
Digital Voice Services User Guide
Digital Voice Services User Guide 2 P a g e * Feature Access Codes *11 Broadworks Anywhere (pulling call to alternate phone) *62 Access Voicemail *72 Call Forwarding Always Activation *73 Call Forwarding
VOIP-211RS/210RS/220RS/440S. SIP VoIP Router. User s Guide
VOIP-211RS/210RS/220RS/440S SIP VoIP Router User s Guide Trademarks Contents are subject to revise without prior notice. All trademarks belong to their respective owners. FCC Warning This equipment has
How To Use Cisco Jabber On Iphone Or Ipod
Frequently Asked Questions Frequently Asked Questions: Cisco Jabber 9.1(1) for iphone FAQs 2 Basics 2 Account Settings 7 Calls 9 Contacts and Directory Search 16 Voicemail 19 Recents 20 Connectivity 21
Conference Center User Guide. Conference Center User Guide
W AVECOM SOLUTIONS CONFERENCE CENTER USER GUIDE Conference Center User Guide Conference Center User Guide WAVECOM SOLUTIONS Conference Center User Guide Version 1.13a September 26, 2011 Wavecom Solutions
All Rights Reserved. Copyright 2009
IMPORTANT NOTICE CONCERNING EMERGENCY 911 SERVICES Your service provider, not the manufacturer of the equipment, is responsible for the provision of phone services through this equipment. Any services
SCOPIA iview Communications Manager
SCOPIA iview Communications Manager User Guide Version 7.5 2000-2010 RADVISION Ltd. All intellectual property rights in this publication are owned by RADVISION Ltd and are protected by United States copyright
MOBILITY FOR iphone USER GUIDE
MOBILITY FOR iphone USER GUIDE VERSION 20.0.2 401 Market Street, First Floor Philadelphia, PA 19106 877.258.3722 www.alteva.com Table of Contentsl 1. About Alteva Mobility for iphone... 3 2. Installation...
A Guide to Connecting to FreePBX
A Guide to Connecting to FreePBX FreePBX is a basic web Graphical User Interface that manages Asterisk PBX. It includes many features available in other PBX systems such as voice mail, conference calling,
OmniPCX Enterprise. Easy Reflexes TM. Quick Guide
OmniPCX Enterprise Easy Reflexes TM Quick Guide User Guide Easy REFLEXESÔ Alcatel OmniPCXÔ 4400 Your Easy REFLEXESÔ terminal provides simple and quick access to all the services and features offered by
White Paper Integration of TTY Calls into a Call Center Using the Placeholder Call Technique Updated: February 2007
Overview of Call Centers White Paper Integration of TTY Calls into a Call Center Using the Placeholder Call Technique Updated: February 2007 All organizations have a phone system, but a call center has
Quick Start Guide. Cisco SPA232D Mobility Enhanced ATA
Quick Start Guide Cisco SPA232D Mobility Enhanced ATA Package Contents Analog Telephone Adapter Ethernet Cable Phone Cable Power Adapter Quick Start Guide Product CD-ROM Welcome Thank you for choosing
FortiVoice. Version 7.00 User Guide
FortiVoice Version 7.00 User Guide FortiVoice Version 7.00 User Guide Revision 2 28 October 2011 Copyright 2011 Fortinet, Inc. All rights reserved. Contents and terms are subject to change by Fortinet
Building Conferencing Applications Using Intel NetStructure Host Media Processing Software
Application Note Building Conferencing Applications Using Intel NetStructure Host Media Processing Software Intel in Communications Building Conferencing Applications Using Intel NetStructure Host Media
Quick set-up instructions for. The Avois AV-3500 IP Phone
Solwise Ltd. Quick set-up instructions for The Avois AV-3500 IP Phone www.solwiseforum.co.uk The Solwise Forum is designed to be the first port-of-call for technical support and sales advice for the whole
Polycom SoundPoint IP 550
Polycom SoundPoint IP 550 User Guide For training/documentation, please visit us @ http://customertraining.verizonbusiness.com or call 1 800 662 1049 2009 Verizon. All Rights Reserved. The Verizon and
ROM Monitor. Entering the ROM Monitor APPENDIX
APPENDIX B This appendix describes the Cisco router ROM monitor (also called the bootstrap program). The ROM monitor firmware runs when the router is powered up or reset. The firmware helps to initialize
3.1 Connecting to a Router and Basic Configuration
3.1 Connecting to a Router and Basic Configuration Objective This lab will focus on the ability to connect a PC to a router in order to establish a console session and observe the user interface. A console
Enhanced ANI/DNIS Substitution in AOS
61200796E1-29.1B August 2010 Configuration Guide in AOS This configuration guide describes automatic number identification (ANI) substitution and dialed number identification service (DNIS) substitution
Configuring System Message Logging
CHAPTER 1 This chapter describes how to configure system message logging on the Cisco 4700 Series Application Control Engine (ACE) appliance. Each ACE contains a number of log files that retain records
Configure Unified CVP Logging and Event Notifications
Configure Unified CVP Logging and Event Notifications Unified CVP provides information about component device status and interaction through Logs, which are presented in text format and can be viewed using
Mediatrix 4404 Step by Step Configuration Guide June 22, 2011
Mediatrix 4404 Step by Step Configuration Guide June 22, 2011 Proprietary 2011 Media5 Corporation Table of Contents First Steps... 3 Identifying your MAC Address... 3 Identifying your Dynamic IP Address...
