Overview
This chapter shows you how to configure Cisco Unified IP Interactive Voice Response (IVR) using the Tool Command Language (TCL) scripts. This chapter contains the following sections:
To identify the hardware platform or software image information that is associated with a feature in this chapter, use the Feature Navigator on Cisco.com to search for information about the feature or refer to the software release notes for a specific release.
IVR consists of simple voice prompting and digit collection to gather caller information for authenticating the user and identifying the destination. It is possible to assign IVR applications to specific ports or invoke on the basis of DNIS. An IP public switched telephone network gateway can have several IVR applications to accommodate many different gateway services, and you can customize the IVR applications to present different interfaces to the various callers.
IVR systems provide information in the form of recorded messages over phone 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 an account number. After playing the voice prompt, the IVR application collects the predetermined number of touch tones and then places the call to the destination phone or system.
IVR uses TCL scripts gather information and to process accounting and billing. For example, a TCL IVR script plays when a caller receives a voice-prompt instruction to enter a specific type of information, such as a Personal Identification Number (PIN). After playing the voice prompt, the TCL IVR application collects the predetermined number of touch tones and sends the collected information to an external server for user authentication and authorization.
Note |
H.323 protocol is no longer supported from Cisco IOS XE Bengaluru 17.6.1a onwards. Consider using SIP for multimedia applications. |
Tcl IVR Enhancements
Since the introduction of the Cisco IVR technology, the software has undergone several enhancements. TCL IVR Version 2.0 is made up of separate components that are described individually in the sections that follow. The enhancements are as follows:
-
Real Time Streaming Protocol (RTSP) client implementation
-
TCL IVR prompt playout and digit collection on IP call legs
-
New TCL verbs to utilize RTSP scripting features.
The enhancements add scalability and enable the TCL IVR scripting functionality on VoIP legs. In addition, support for RTSP enables VoIP gateways to play messages from RTSP-compliant announcement servers. The addition of these enhancements also reduces the CPU load and saves memory on the gateway because no packetization is involved. Larger prompts can be played, and the use of an external audio server is allowed.
Note |
TCL IVR 2.0 removed the signature locking mechanism requirement. |
TCL IVR Prompts Played on IP Call Legs
TCL IVR Version 2.0 scripts is configured for incoming plain old telephone service (POTS) or VoIP call legs to play announcements to the user or collect user input (digits). With TCL IVR Version 2.0 the prompts is triggered from both the PSTN side of the call leg and the IP side of the call leg. This feature enables the audio files (or prompts) to be played out over the IP network.
TCL IVR scripts played toward a VoIP call leg are subject to the following conditions:
-
G.711 mu-law encoding must be used when prompts are played.
-
G.711 mu-law encoding must also be used while these calls, even at prompt playout has completed.
-
Digital Signaling Protocols (DSPs) cannot be on the IP call leg so the script cannot initiate a tone.
-
When a TCL IVR script is used to collect digits on a VoIP call leg, use Cisco proprietary RTP for SIP protocol configured on the call leg.
Note |
For additional information about the dtmf-relay command, refer to the Cisco IOS Voice Command Reference - D through I. |
IVR 2.0 enables the system to accept calls that are initiated from the IP side of the network using G.711, and terminate calls to the terminating gateway using the same codec. IP phones can also originate a call to a CUBE running an TCL IVR script.
TCL Verbs
TCL IVR, Version 2.0, delivers a new set of TCL verbs and scripts that replace the previous TCL version. The TCL verbs enable the user to develop TCL scripts that interact with the IVR application.
TCL IVR Version 2.0 is not backward compatible with the IVR 1.0 scripts.
TCL IVR scripts use the TCL verbs to interact with the gateway during call processing in order to collect the required digits—for example, to request the PIN or account number for the caller. The TCL scripts are the default scripts for all Cisco Voice features using IVR. TCL scripts are configured to control calls coming into or going out of the gateway.
Note |
Ensure that you have loaded the version of TCL scripts that support IVR Version 2. |
The TCL IVR scripts that are shown below are listed as an example of the types of scripts available to be downloaded from the Cisco.com Software Center. For a complete list of scripts, it is recommended that you check the Software Center.
Cisco provides the following IVR scripts:
-
fax_hop_on_1—Collects digits from the redialer, such as account number and destination number.
-
clid_authen—Authenticates the call with Automatic Number Identification (ANI) and DNIS numbers, collects the destination data, and makes the call.
-
clid_authen_npw—Performs as clid_authen, but uses a null password when authenticating, rather than DNIS numbers.
-
clid_authen_collect—Authenticates the call with ANI and DNIS numbers and collects the destination data. If authentication fails, it collects the account and password.
-
clid_authen_col_npw—Performs as clid_authen_collect, but uses a null password and does not use or collect DNIS numbers.
-
clid_col_npw_3—Performs as clid_authen_col_npw except with that script, if authentication with the digits collected (account and PIN) fails, the clid_authen_col_npwscript just plays a failure message (auth_failed.au) and then hangs up. The clid_col_npw_3 script allows two failures, then plays the retry audio file (auth_retry.au) and collects the account and PIN again.
-
The caller can interrupt the message by entering digits for the account number, triggering the prompt to tell the caller to enter the PIN. If authentication fails the third time, the script plays the audio file auth_fail_final.au, and hangs up.
The following table lists the prompt audio files that are associated with the clid_col_npw_3script.
Audio Filename |
Action |
flash:enter_account.au | Asks the caller to enter an account number. Played as the first request. |
flash:auth_fail_retry.au | Asks the caller to reenter the account number. Plays after two failures. |
flash:enter_pin.au | Asks the caller to enter a PIN. |
flash:enter_destination.au | Asks the caller to enter a destination phone number. |
flash:auth_fail_final.au | Informs the caller that the account number authorization has failed three times. |
The following table lists additional audio files that are associated with the clid_col_npw_3script.
Audio Filename |
Action |
auth_fail_retry.au | Informs the caller that authorization failed. Prompts the caller to reenter the account number followed by the pound sign (#). |
auth_fail_final.au | Informs the caller, "I'm sorry, your account number cannot be verified. Please hang up and try again." |
-
clid_col_npw_npw—Tries to authenticate by using ANI, null as the user ID, user, and user password pair. If that fails, it collects an account number and authenticates with account and null. It allows three tries for the caller to enter the account number before ending the call with the authentication failed audio file. If authentication succeeds, it plays a prompt to enter the destination number.
The following table lists the audio files that are associated with the clid_col_npw_npw script.
Audio Filename |
Action |
---|---|
flash:enter_account.au |
Asks the caller to enter the account number the first time. |
flash:auth_fail_retry.au |
Asks the caller to reenter the account number after first two failures. |
flash:enter_destination.au |
Asks the caller to enter the destination phone number. |
flash:auth_fail_final.au |
Informs the caller that the account number authorization has failed three times. |
-
clid_col_dnis_3.tcl—Authenticates the caller ID three times. First it authenticates the caller ID with DNIS. If that is not successful, it attempts to authenticate with the caller PIN up to three times.
-
clid_col_npw_3.tcl—Authenticates with null. If authentication is not successful, it attempts to authenticate by using the caller PIN up to 3 times.
-
clid_4digits_npw_3.tcl—Authenticates with null. If the authentication is not successful, it attempts to authenticate with the caller PIN up to 3 times using the 14-digit account number and password entered together.
-
clid_4digits_npw_3_cli.tcl—Authenticates the account number and PIN respectively by using ANI and null. The number of digits that are allowed for the account number and password are configurable through the CLI. If the authentication fails, it allows the caller to retry. The retry number is also configured through the CLI.
-
clid_authen_col_npw_cli.tcl—Authenticates the account number and PIN respectively using ANI and null. If the authentication fails, it allows the caller to retry. The retry number is configured through the CLI. The account number and PIN are collected separately.
-
clid_authen_collect_cli.tcl—Authenticates the account number and PIN by using ANI and DNIS. If the authentication fails, it allows the caller to retry. The retry number is configured through the CLI. The account number and PIN are collected separately.
-
clid_col_npw_3_cli.tcl—Authenticates by using ANI and null for account and PIN respectively. If the authentication fails, it allows the caller to retry. The retry number is configured through the CLI.
-
clid_col_npw_npw_cli.tcl—Authenticates by using ANI and null for account and PIN respectively. If authentication fails, it allows the caller to retry. The retry number is configured through the CLI. The account number and PIN are collected together.
Note |
To display the contents of the TCL IVR script, use the show call application voice command. |