Table Of Contents
Designing an Auto Attendant Script
Overview
Auto Attendant Script Variables
Start Step
Accept Step
First Set Step
Second and Third Set Steps
Call Subflow Step
Play Prompt Step
Label Step (MainMenu)
Create Container Prompt Step
Set Step
Menu Step
DialByExtn Output Branch
Label Step (DialByExtn) for the DialByExtn Step
Create Container Prompt Step for the DialByExtn Step
Set Step for the DialByExtn Step
Get Digit String Step for the DialByExtn Step
DialByName Output Branch
Label Step (DialByName)
Create Container Prompt Step
Set Step
Name To User Step
Operator Output Branch
Label Step (Xfer Operator) for the Operator Branch
Call Redirect Step for the Operator Branch
If Step for the Operator Branch
Play Prompt Step
Call Redirect Step
If Step
Play Prompt Step
End Step
Designing an Auto Attendant Script
This chapter describes the design of an Auto Attendant (AA) script, aa_sample1.aef, which is included with the Cisco Unity Express Script Editor, and contains the following sections:
•
Overview
•
Auto Attendant Script Variables
•
Start Step
•
Accept Step
•
First Set Step
•
Second and Third Set Steps
•
Menu Step
–
DialByExtn Output Branch
–
DialByName Output Branch
–
Operator Output Branch
•
Play Prompt Step
•
Call Redirect Step
•
If Step
•
Call Redirect Step
•
End Step
Overview
You can use the Cisco Unity Express Script Editor to create custom scripts for Auto Attendant.
The aa_sample1.aef file is a simple script that answers a call, asks for the name or extension of the person to whom the caller would like to be connected, and transfers the call.
Note
You can modify the aa_sample1.aef file to create your own AA script. Please make a backup copy of the aa_sample1.aef file before modifying it, so that you always have access to the original file.
The aa_sample1.aef script is a good example of how you can use various steps:
•
Steps in the Media palette to receive caller input
•
If step in the General palette to branch to another script element based on a condition
•
Steps in the Prompt palette to create a variety of prompts, and so on.
Figure 13 shows the aa_sample1.aef script as it appears in the Design pane of the Cisco Unity Express Script Editor window.
Figure 13 aa_sample1.aef Script
The aa_sample1.aef script performs the following tasks:
1.
Accepts the call.
2.
Plays a welcome prompt, asking the caller to perform one of three actions:
•
Press "1" to enter an extension number.
•
Press "2" to enter the name of a person.
If the caller chooses to spell a name, the script maps the letters entered against the available users defined in a specified directory and transfers the call to the primary extension of the user.
If more than one match occurs, the script prompts the caller to choose the correct extension. If too many matches occur, the script prompts the caller to enter more characters. If no match occurs, the script prompts the caller to enter another name.
•
Press "0" to speak to an operator.
Note
This welcome prompt is a parameter, which means that the administrator can configure this prompt when provisioning an application with this script. (For more information on provisioning applications, refer to the Cisco Unity Express CLI Administrator Guide or the Cisco Unity Express GUI Administrator Guide for your system. See the list of administrator guides in "Additional References" on page xiv.)
3.
When the script receives a valid extension, it transfers the call.
•
If the destination is busy, the caller hears the system prompt, "The phone number you are trying to reach is currently busy."
•
If the destination is out of service, the caller hears the system prompt, "The phone number you are trying to reach is currently out of service."
The aa_sample1.aef script uses system prompts stored as .wav files, which are installed automatically with the Cisco Unity Express software. These audio prompts include the following:
•
AAMainMenu.wav—Provides a menu of choices: press 1 to enter an extension, press 2 to enter the first few characters of a user name, or press 0 to speak to an operator.
•
AASorry.wav—States that the transfer was not successful.
•
AABusyExtn.wav—States that the dialed extension is busy.
•
AAInvalidExtn.wav—States that the entered extension is not a valid choice.
•
AAExntOutofService.wav—States that the entered extension is no longer in service.
•
AAWelcome.wav—Greets the caller.
In the auto attendant application, you can configure the filename for the AAWelcome.wav prompt by selecting the Voice Mail > Auto Attendant menu option on the Cisco Unity Express GUI administration web interface. You can change the default welcome prompt to reference a custom prompt.
Note
For custom scripts, you need to record your own prompts. You can either have them recorded professionally or you can use the Greeting Management System to record them in your own voice. For more information about the Greeting Management System, refer to the Cisco Unity Express GUI Administrator Guide or the Cisco Unity Express CLI Administrator Guide for your system. See the list of administrator guides in "Additional References" on page xiv.
Auto Attendant Script Variables
Begin the aa_sample1.aef script design process using the Variable pane of the Cisco Unity Express Script Editor to define script variables, as shown in Figure 14.
Figure 14 Variables Pane of the aa_sample1.aef Script
Table 10 describes the variables used in the aa_sample1.aef script.
Start Step
Every script built in the Design pane of the Cisco Unity Express Script Editor window begins with a Start step.
Click File > New from the Cisco Unity Express Script Editor menu bar. The Cisco Unity Express Script Editor places a Start step in the Design pane of the Cisco Unity Express Script Editor window.
The Start step needs no configuration and has no customizer window.
Accept Step
This step drags an Accept step from the Contact palette (in the Palette pane of the Cisco Unity Express Script Editor window) to the Design pane and drops it over the Start step, as shown in Figure 13.
This step accepts the default contact; no configuration is necessary for this step.
First Set Step
This step drags the Set step from the General palette to the Design pane, and drops it over the Accept step, as shown in Figure 13.
The Set step sets the value of menuPrompt to SP[AA/AAMainMenu], which is the system prompt for playing the main menu, as shown in Figure 15.
Figure 15 Set Customizer Window—Configured General Tab
The Set step customizer window contains the following values:
•
Variable—menuPrompt
Specifies the variable that is assigned a value.
•
Type—Prompt
The system assigns this value.
•
Assign—SP[AA/AAMainMenu]
Specifies the value to assign to the variable.
Second and Third Set Steps
This step drags the second and third Set steps from the General palette to the Design pane, and drops them over the first Set step, as shown in Figure 13.
The second Set step sets the value of extnPrompt to SP[AA/AAEnterExtn], which is the system prompt that asks the caller to enter the extension number.
The third Set step sets the value of namePrompt to SP[AA/AANameDial], which is the system prompt that asks the caller to enter the name of the called person.
Call Subflow Step
This step drags the Call Subflow step from the General palette to the Design pane, and drops it over the third Set step, as shown in Figure 13.
The General tab of the Call Subflow step sets the subflow name to checkAltGreet.aef, as shown in Figure 16.
Figure 16 Call Subflow Customizer Window—Configured General Tab
The Call Subflow customizer window contains the following values:
•
Subflow Name—checkAltGreet.aef
This subflow checks if an alternate greeting is enabled. If it is, then the subflow plays the alternate greeting and returns to the aa_sample1.aef script.
•
Disable interruptions—checked
Other script steps cannot interrupt the Call Subflow process.
Play Prompt Step
This step drags a Play Prompt step from the Prompt palette to the Design pane, and drops it over the Call Subflow step, as shown in Figure 13.
The Play Prompt step plays the Welcome prompt, as shown in Figure 17.
Figure 17 Play Prompt Customizer Window—Configured Prompt Tab
The three tabs of the Play Prompt customizer window contain the following data:
•
General tab
–
Contact—Triggering contact
The contact that triggered the script remains the contact for this step.
–
Interruptible—No
No external events can interrupt the playback of the prompt.
•
Prompt tab
–
Prompt—welcomePrompt
This prompt plays back to greet the caller.
–
Barge In—No
The caller must listen to the whole prompt before responding.
–
Continue on Prompt Errors—Yes
If a prompt error occurs, the script continues to play the next prompt, or, if this is the last prompt in the sequence, the script waits for caller input.
•
Input tab
–
Flush Input Buffer— Yes
This step erases previous input.
Label Step (MainMenu)
This step drags a Label step from the General palette to the Design pane, and drops it over the Play Prompt step, as shown in Figure 13.
The Label step creates a target for the script. This target is used later in the script when an output branch reaches a timeout, unsuccessful, or otherwise dead-end position and the script returns the caller to the Label step to try again.
The Label step is named MainMenu.
Create Container Prompt Step
This step drags a Create Container Prompt step from the Prompt palette to the Design pane, and drops it over the Label step, as shown in Figure 13.
This step, as shown in Figure 18, creates an escalating prompt called prompt, which combines menuPrompt (the first prompt created in the script; see the "First Set Step" section) with a new prompt called prefixPrompt.
The prefixPrompt variable initializes with no value, but as the caller loops through the application and fails to be connected to a destination, this variable holds an error message to be played back to the caller.
The prompt is an escalating prompt so that the error message plays only on the first attempt of the subsequent Menu step, which uses the prompt created by this step.
Figure 18 Create Container Prompt—Configured General Tab
Configure the Create Container Prompt step as follows:
•
Output Prompt—prompt
This prompt results from this Create Container Prompt step.
•
Prompt Container Type—escalating
This step creates an escalating prompt.
•
Prompts List Box
–
prefixPrompt + menuPrompt
–
menuPrompt
This specifies the prompt phrases that are played if the Media step uses more than one attempt at eliciting a valid response from the caller.
Set Step
This step drags a Set step from the General palette to the Design pane, and drops it over the Create Container Prompt step, as shown in Figure 13.
The Set step sets the value of prefixPrompt to P[], which means it is empty.
When callers are returned to the MainMenu Label step to listen to menu options again, this Set step clears prefixPrompt of values that the script may have previously assigned to it. Call Redirect steps often return callers to the MainMenu Label. See Figure 26 in the "Call Redirect Step for the Yes Output Branch" section for an example.
Menu Step
This step drags a Menu step from the Media palette to the Design pane, and drops it over the Set step, as shown in Figure 13.
The Menu step receives either speech or digits in response to prompts, as shown in Figure 19. The script procedures configured under the Menu step transfer the call to the proper extension if the script receives valid input from the caller.
Figure 19 Menu Customizer Window—Configured General Tab
The Menu customizer window contains the following values:
•
General tab
–
Contact—Triggering Contact
The contact that triggered this script remains the contact for this step.
–
Options—DialByExtn, DialByName, Operator
The list of options the menu offers to the caller. The tags map to the output points to determine the execution of branching output paths.
— DialByExtn is mapped to dial keypad 1.
— DialByName is mapped to dial keypad 2.
— Operator is mapped to dial keypad 0.
–
Interruptible—Yes
External events can interrupt the execution of this step.
•
Prompt tab
–
Prompt—prompt
The step plays this prompt back to the caller.
–
Barge In—Yes
The caller can respond without first having to listen to the playback of the entire prompt.
–
Continue on Prompt Errors—Yes
If a prompt error occurs, the script continues to play the next prompt, or, if this is the last prompt in the sequence, the script waits for caller input.
•
Input tab
–
Timeout (in sec)—5
After playing all prompts, the script waits 5 seconds for initial input from the caller before re-attempting with a timeout error, or, if this was the last attempt, the script executes the Timeout output branch.
–
Maximum Retries—5
The script will retry to receive input 5 times before sending the script to the Unsuccessful output branch.
–
Flush Input Buffer—No
The script saves previous input.
The Menu step contains two built-in output branches: Timeout and Unsuccessful. Three output branches, as shown in Figure 20, correspond to the three choices menuPrompt gives the caller: dial by extension, dial by name, or dial the operator.
Figure 20 Menu Step Output Branches
The Timeout and Unsuccessful output branches need no scripting. If the script reaches either of these branches, it proceeds to the next step on the same level as the Menu step, the second Play Prompt step (see "Play Prompt Step").
The following sections describe the three customized output branches:
•
DialByExtn Output Branch
•
DialByName Output Branch
•
Operator Output Branch for the Name to User Step
DialByExtn Output Branch
Menu > DialByExtn
If the caller chooses menu option "1" (press an extension number) when given the option by the Menu step, the script executes the DialByExtn output branch.
The DialByExtn output branch of the Menu step receives the extension number provided by the caller, as shown in Figure 21
Figure 21 DialByExtn Scripting
The DialByExtn output branch contains the following steps:
•
Label Step (DialByExtn) for the DialByExtn Step
•
Create Container Prompt Step for the DialByExtn Step
•
Set Step for the DialByExtn Step
•
Get Digit String Step for the DialByExtn Step
Label Step (DialByExtn) for the DialByExtn Step
Menu > DialByExtn > Label (DialByExtn)
This step drags a Label step from the General palette to the Design pane, and drops it over the DialByExtn icon under the Menu step, as shown in Figure 21.
The Label step creates a target DialByExtn.
Create Container Prompt Step for the DialByExtn Step
Menu > DialByExtn > Create Container Prompt
This step drags a Create Container Prompt step from the General palette to the Design pane, and drops it over the Label step (DialByExtn) icon under the DialByExtn icon, as shown in Figure 21.
The Create Container Prompt step creates a concatenated container prompt, consisting of prefixPrompt (see "Create Container Prompt Step") and extnPrompt, a preset prompt that prompts the caller to enter the extension number (with a possible error message when looping back if there is an error connecting to the destination).
Set Step for the DialByExtn Step
Menu > DialByExtn > Set
This step drags a Set step from the General palette to the Design pane, and drops it over the Create Container Prompt icon under the DialByExtn icon, as shown in Figure 21.
The Set step sets the value of prefixPrompt to P[], which clears prefixPrompt of any values that the script may have previously assigned.
Get Digit String Step for the DialByExtn Step
Menu > DialByExtn > Get Digit String
This step drags a Get Digit String step from the Media palette to the Design pane, and drops it over the Set step icon under the DialByExtn icon, as shown in Figure 21.
The Get Digit String step receives the digits entered by the caller in response to prompt, stores them in a result digit string variable named extnXfer, and then attempts to transfer the call.
Note
For more information on configuring the Get Digit String step, see "Get Digit String".
The Get Digit String has three output branches: Successful, Timeout, and Unsuccessful, as shown in Figure 22.
Figure 22 Get Digit String Output Branches
The following sections describe the three output branches of the Get Digit String step:
•
Timeout Output Branch for the Get Digit String Step
•
Unsuccessful Output Branch for the Get Digit String Step
•
Successful Output Branch for the Get Digit String Step
Timeout Output Branch for the Get Digit String Step
Menu > DialByExtn > Get Digit String > Timeout
If the Get Digit String step does not receive input before reaching the timeout limit, the script executes the Timeout output branch, and the script skips the rest of the output branches of the Menu step and proceeds to the second Play Prompt step (see "Play Prompt Step").
Unsuccessful Output Branch for the Get Digit String Step
Menu > DialByExtn > Get Digit String > Unsuccessful
If the Get Digit String step is unsuccessful in receiving valid input, the script executes the Unsuccessful output branch, and the script skips the rest of the output branches of the Menu step and proceeds to the second Play Prompt step (see "Play Prompt Step").
Successful Output Branch for the Get Digit String Step
Menu > DialByExtn > Get Digit String > Successful
If the Get Digit String step successfully receives caller input, the script executes the Successful output branch.
The Successful output branch transfers the call, as shown in Figure 23.
Figure 23 Get Digit String—Successful Branch Scripting
Note
See Figure 26 for the diagram of the Implicit Confirmation Yes branch steps.
The Successful output branch of the Get Digit String step contains the following steps:
•
IMPLICIT CONFIRMATION STEP FOR THE GET DIGIT STRING SUCCESSFUL BRANCH
•
CREATE GENERATED PROMPT STEP FOR THE GET DIGIT STRING SUCCESSFUL BRANCH
•
IMPLICIT CONFIRMATION STEP FOR THE GET DIGIT STRING SUCCESSFUL BRANCH
IF STEP FOR THE GET DIGIT STRING SUCCESSFUL BRANCH
Menu > DialByExtn > Get Digit String > Successful > If
This step drags an If step from the General palette to the Design pane and drops it over the Successful icon under the Get Digit String step, as shown in Figure 23.
The If step checks if the extension entered (extnXfer) is empty or not by evaluating the expression (extnXfer == "").
The If step has two output branches:
•
True Output Branch For The Get Digit String Successful If Step
•
False Output Branch for the Get Digit String Successful If Step
True Output Branch For The Get Digit String Successful If Step
Menu > DialByExtn > Get Digit String > Successful > If > True
If the If step determines that the extension entered is empty, the script executes the True output branch.
The True output branch increments the number of attempts by one and gives the caller another try.
The True output branch of the If step contains three functional steps:
•
Play Prompt Step
•
Increment Step
•
Goto Step
Play Prompt Step
Menu > DialByExtn > Get Digit String > Successful > If > True > Play Prompt
This step drags a Play Prompt step from the Prompt palette to the Design pane, and drops it over the True icon under the If step, as shown in Figure 23.
The Play Prompt step plays an empty prompt, P[], to flush the DTMF buffer of any digits that the script may have accumulated as part of the previous Get Digit String step.
Note
The Play Prompt step has an empty prompt to enable the script to return immediately from this step after flushing out the buffer.
Increment Step
Menu > DialByExtn > Get Digit String > Successful > If > True > Increment
This step drags an Increment step from the General palette to the Design pane, and drops it over the Play Prompt step icon under the True icon under If step, as shown in Figure 23.
The Increment step increases the number of attempts until the maximum number of retries is reached.
Goto Step
Menu > DialByExtn > Get Digit String > Successful > If > True > Goto
This step drags a Goto step from the General palette to the Design pane, and drops it over the Increment step icon under the True icon under the If step, as shown in Figure 23.
The Goto step returns the caller to the beginning of the DialByExtn Label step at the beginning of the DialByExtn output branch in order to give the caller more attempts to input the proper extension.
False Output Branch for the Get Digit String Successful If Step
Menu > DialByExtn > Get Digit String > Successful > If > False
If the If step determines that the caller has entered an extension, the script executes the False output branch.
The False output branch of the If step proceeds to the next step (Create Generated Prompt step).
CREATE GENERATED PROMPT STEP FOR THE GET DIGIT STRING SUCCESSFUL BRANCH
Menu > DialByExtn > Get Digit String > Successful > Create Generated Prompt
This step drags a Create Generated Prompt step from the Prompt palette to the Design pane, and drops it over the If icon under the Get Digit String step, as shown in Figure 23.
The Create Generated Prompt step, as shown in Figure 24, creates a prompt to play back to the caller the digits received, in order to confirm the caller input before transferring the call.
Figure 24 Configured Create Generated Prompt Customizer Window
The Create Generated Prompt customizer window contains the following values:
•
Output Prompt—prompt
The prompt variable stores the value that results from this step.
•
Generator Type— telephone.number
Telephone.number is the generator type. (See "Telephone Number Generator".)
•
Constructor Type—number
Number is the constructor type. (See "Number Generator".)
•
Argument Information list box—extnXfer
The extnXfer variable stores the results of the number constructor.
IMPLICIT CONFIRMATION STEP FOR THE GET DIGIT STRING SUCCESSFUL BRANCH
Menu > DialByExtn > Get Digit String > Successful > Implicit Confirmation
This step drags an Implicit Confirmation step from the Media palette to the Design pane and drops it over the Create Generated Prompt step icon under the Successful icon under the Get Digit String step, as shown in Figure 23.
The Implicit Confirmation step confirms the extension entered without requiring more input from the caller, as shown in Figure 25.
Figure 25 Configured Implicit Confirmation Customizer Window
The Implicit Confirmation customizer window contains the following values:
•
Contact—Triggering Contact
The contact that triggered the script remains the contact for this step.
•
Prompt—SP[AA/AACallingExtn] + prompt
The system prompt and the generated prompt indicate the specified extension the script plays back to the caller.
•
Timeout (in sec)— 2
The caller has 2 seconds to stop the transfer before the script accepts the confirmation and transfers the call.
•
Interruptible—Yes
External events are allowed to interrupt the execution of this step.
•
Continue on Prompt Errors—Yes
In the event of a prompt error, the script will play the next prompt in the sequence, or if this is the last prompt, will wait for caller input.
The Implicit Confirmation step has two output branches:
•
No Output Branch for the Implicit Confirmation Step
•
Yes Output Branch for the Implicit Confirmation Step
No Output Branch for the Implicit Confirmation Step
Menu > DialByExtn > Get Digit String > Successful > Implicit Confirmation > No
If the caller interrupts the Implicit Confirmation step and does not give confirmation, the script executes the No output branch.
The No output branch of the Implicit Confirmation step uses an If step to try again, until the maximum number of retries is reached.
The No output branch contains the following step:
•
If Step for the No Output Branch
If Step for the No Output Branch
Menu > DialByExtn > Get Digit String > Successful > Implicit Confirmation > No > If
This step drags an If step from the General palette to the Design pane, and drops it over the No icon under the Implicit Confirmation step, as shown in Figure 23.
The If step determines whether or not the maximum number of retries has been reached by evaluating the expression attempts < MaxRetry. The expression determines if the number of attempts, as stored in the attempts variable, is less than the maximum number of retries, as stored in the MaxRetry variable.
The If step has two output branches:
•
TRUE OUTPUT BRANCH FOR THE NO OUTPUT BRANCH IF STEP
•
FALSE OUTPUT BRANCH FOR THE NO OUTPUT BRANCH IF STEP
TRUE OUTPUT BRANCH FOR THE NO OUTPUT BRANCH IF STEP
Menu > DialByExtn > Get Digit String > Successful > Implicit Confirmation > No > If > True
If the If step determines that the maximum number of retries has not been reached, the script executes the True output branch.
The True output branch increments the number of retries by one and gives the caller another try.
The True output branch of the If step contains three functional steps:
•
Play Prompt Step
•
Increment Step
•
Goto Step
Play Prompt Step
Menu > DialByExtn > Get Digit String > Successful > Implicit Confirmation > No > If > True > Play Prompt
This step drags a Play Prompt step from the Prompt palette to the Design pane, and drops it over the True icon under the If step, as shown in Figure 23.
The Play Prompt step plays an empty prompt, P[] to flush the DTMF buffer of any digits that the script may have accumulated as part of the previous Implicit Confirmation step.
Note
The Play Prompt step has an empty prompt to enable the script to return immediately from this step after flushing out the buffer.
Increment Step
Menu > DialByExtn > Get Digit String > Successful > Implicit Confirmation > No > If >
True > Increment
This step drags an Increment step from the General palette to the Design pane, and drops it over the Play Prompt step icon under the True icon under If step, as shown in Figure 23.
The Increment step increases the number of attempts until the maximum number of retries is reached.
Goto Step
Menu > DialByExtn > Get Digit String > Successful > Implicit Confirmation > No > If >
True > Goto
This step drags a Goto step from the General palette to the Design pane, and drops it over the Increment step icon under the True icon under the If step, as shown in Figure 23.
The Goto step returns the caller to the beginning of the DialByExtn Label step at the beginning of the DialByExtn output branch in order to give the caller more attempts to input the proper extension.
FALSE OUTPUT BRANCH FOR THE NO OUTPUT BRANCH IF STEP
Menu > DialByExtn > Get Digit String > Successful > Implicit Confirmation > No > If > False
If the If step determines that the maximum number or retries has been reached, the script executes the False output branch.
The False output branch of the If step skips the rest of the steps under the Menu step and proceed to the second Play Prompt step (see "Play Prompt Step").
Yes Output Branch for the Implicit Confirmation Step
Menu > DialByExtn > Get Digit String > Successful > Implicit Confirmation > Yes
If the Implicit Confirmation step successfully confirms the extension, the script executes the Yes output branch.
The Yes output branch of the Implicit Confirmation step transfers the call.
The Yes output branch contains the following steps:
•
Call Redirect Step for the Yes Output Branch
•
If Step for the Yes Output Branch
Call Redirect Step for the Yes Output Branch
Menu > DialByExtn > Get Digit String > Successful > Implicit Confirmation > Yes > Call Redirect
This step drags a Call Redirect step from the Call Contact palette to the Design pane, and drops it over the Yes icon under the Implicit Confirmation step, as shown in Figure 23.
As in the other two main output branches of the Menu step (DialByName and Operator), the DialByExtn output branch contains the Call Redirect step, which attempts to transfer the call, in this case to the desired extension number.
The Call Redirect step has four output branches, as shown in Figure 26.
Figure 26 Call Redirect Output Branch Scripting
The following sections describe these four output branches.
•
SUCCESSFUL OUTPUT BRANCH FOR THE CALL REDIRECT STEP
•
BUSY OUTPUT BRANCH FOR THE CALL REDIRECT STEP
•
INVALID OUTPUT BRANCH FOR THE CALL REDIRECT STEP
•
UNSUCCESSFUL OUTPUT BRANCH FOR THE CALL REDIRECT STEP
SUCCESSFUL OUTPUT BRANCH FOR THE CALL REDIRECT STEP
Menu > DialByExtn > Get Digit String > Successful > Implicit Confirmation > Yes > Call Redirect > Successful
If the Call Redirect step successfully transfers the call, the script executes the Successful output branch.
The Successful output branch of the Call Redirect step marks the contact as Handled and ends the script.
The Successful output branch of the Call Redirect step contains two steps:
•
Set Contact Info Step
•
End Step
Set Contact Info Step
Menu > DialByExtn > Get Digit String > Successful > Implicit Confirmation > Yes > Call Redirect > Successful > Set Contact
This step drags a Set Contact Info step from the Contact palette to the Design pane, and drops it over the Successful icon under the Call Redirect step, as shown in Figure 26.
The Set Contact Info step marks the call as Handled.
End Step
Menu > DialByExtn > Get Digit String > Successful > Implicit Confirmation > Yes > Call Redirect > Successful > End
This step drags an End step from the General palette to the Design pane, and drops it over the Set Contact Info icon under the Successful icon under the Call Redirect step, as shown in Figure 26.
The End step ends this branch of the script.
BUSY OUTPUT BRANCH FOR THE CALL REDIRECT STEP
Menu > DialByExtn > Get Digit String > Successful > Implicit Confirmation > Yes > Call Redirect > Busy
If the Call Redirect step registers the destination extension as busy, the script executes the Busy output branch.
The Busy output branch of the Call Redirect step sets the value of the prefixPrompt variable to inform the caller that the extension was busy.
The Busy output branch of the Call Redirect step contains the Set step.
Set Step
Menu > DialByExtn > Get Digit String > Successful > Implicit Confirmation > Yes > Call Redirect > Busy > Set
This step drags a Set step from the General palette to the Design pane, and drops it over the Busy icon under the Call Redirect step, as shown in Figure 26.
The Set step sets the value of prefixPrompt to contain a system prompt that plays back a message to the caller that the extension is busy.
INVALID OUTPUT BRANCH FOR THE CALL REDIRECT STEP
Menu > DialByExtn > Get Digit String > Successful > Implicit Confirmation > Yes > Call Redirect > Invalid
If the Call Redirect step registers the destination extension as invalid, the script executes the Invalid output branch.
The Invalid output branch of the Call Redirect step sets the value of the prefixPrompt variable to inform the caller that the extension was invalid.
The Invalid output branch of the Call Redirect step contains the Set step.
Set Step
Menu > DialByExtn > Get Digit String > Successful > Implicit Confirmation > Yes > Call Redirect > Invalid > Set
This step drags a Set step from the General palette to the Design pane, and drops it over the Invalid icon under the Call Redirect step, as shown in Figure 26.
The Set step sets the value of prefixPrompt to contain a system prompt that plays back a message to the caller that the extension is invalid.
UNSUCCESSFUL OUTPUT BRANCH FOR THE CALL REDIRECT STEP
Menu > DialByExtn > Get Digit String > Successful > Implicit Confirmation > Yes > Call Redirect > Unsuccessful
If the Call Redirect step registers the destination extension as out of service, the script executes the Unsuccessful output branch.
The Unsuccessful output branch of the Call Redirect step sets the value of the prefixPrompt variable to inform the caller that the extension was out of service.
The Unsuccessful output branch of the Call Redirect step contains the Set step.
Set Step
Menu > DialByExtn > Get Digit String > Successful > Implicit Confirmation > Yes > Call Redirect > Unsuccessful > Set
This step drags a Set step from the General palette to the Design pane, and drops it over the Unsuccessful icon under the Call Redirect step, as shown in Figure 26.
The Set step sets the value of prefixPrompt contain a system prompt that plays back a message to the caller that the extension is out of service.
If Step for the Yes Output Branch
Menu > DialByExtn > Get Digit String > Successful > Implicit Confirmation > Yes > If
This step drags an If step from the General palette to the Design pane, and drops it over the Call Redirect step icon under the Implicit Confirmation step, as shown in Figure 26.
The If step allows the script to determine whether or not the maximum number of retries has been reached by evaluating the expression attempts < MaxRetry. This expression determines if the number of attempts, as stored in the attempts variable, is less than the maximum number of retries, as stored in the MaxRetry variable.
The If step has two output branches, True and False:
•
TRUE OUTPUT BRANCH FOR THE IF STEP
•
FALSE OUTPUT BRANCH FOR THE IF STEP
TRUE OUTPUT BRANCH FOR THE IF STEP
Menu > DialByExtn > Get Digit String > Successful > Implicit Confirmation > Yes > If > True
If the If step determines that the maximum number of retries has not been reached, the script executes the True output branch.
The True output branch of the If step allows the caller to keep returning to the MainMenu Label until it reaches the maximum number of retries.
The True output branch contains two steps:
•
Increment Step
•
Goto Step
Increment Step
Menu > DialByExtn > Get Digit String > Successful > Implicit Confirmation > Yes > If > True > Increment
This step drags an Increment step from the General palette to the Design pane, and drops it over the True icon under the If step, as shown in Figure 26.
The Increment step increases the numbers or retries by 1.
Goto Step
Menu > DialByExtn > Get Digit String > Successful > Implicit Confirmation > Yes > If > True > Goto
This step drags a Goto step from the General palette to the Design pane, and drops it over the True step icon under the under the If step, as shown in Figure 26.
The Goto step sends the caller back to the MainMenu Label step to provide the caller another opportunity to enter an extension.
FALSE OUTPUT BRANCH FOR THE IF STEP
Menu > DialByExtn > Get Digit String > Successful > Implicit Confirmation > Yes > If > False
If the If step determines that the maximum number of retries has been reached, the script executes the False output branch.
The False output branch of the If step proceeds to the second Play Prompt step (see "Play Prompt Step").
DialByName Output Branch
Menu > DialByName
If the caller chooses menu option "2" (press to enter the name of a person) when given the option by the Menu step, the script executes the DialByName output branch.
The DialByName output branch, as shown in Figure 27, receives the name of the person the caller desires to reach.
Figure 27 DialByName Output Branch Scripting
The DialByName output branch contains four functional steps:
•
Label Step (DialByName)
•
Create Container Prompt Step
•
Set Step
•
Name To User Step
Label Step (DialByName)
Menu > DialByName > Label
This step drags a Label step from the General palette to the Design pane, and drops it over the DialByName icon under the Menu step icon, as shown in Figure 27.
The Label step is named DialByName to provide a target for the script so that the caller has more opportunities, if necessary, to enter a name successfully.
Create Container Prompt Step
Menu > DialByName > Create Container Prompt
This step drags a Create Container Prompt step from the Prompt palette to the Design pane, and drops it over the Label step icon under the DialByName icon, as shown in Figure 27.
The Create Container Prompt step creates a prompt that asks the caller to enter the name of the desired person.
Set Step
Menu > DialByName > Set
This step drags a Set step from the General palette to the Design pane, and drops it over the Create Container Prompt step icon, as shown in Figure 27.
Configure the Set step to clear the value of the prefixPrompt variable so that it can be assigned by subsequent steps.
Name To User Step
Menu > DialByName > Name To User
This step drags a Name To User step from the Media palette to the Design pane, and drops it over the Set step icon, as shown in Figure 27.
The Name To User step, as shown in Figure 28, allows the caller to find a user based on DTMF digits input from the caller.
Figure 28 Name To User Customizer Window—Configured General Tab
The Name To User customizer window contains the following values:
•
General tab
–
Contact—Triggering Contact
The contact that triggered the script remains the contact for this step.
–
Result User—user
The user variable stores the user object that maps to the selection of the caller.
–
Announce When Number of Matches Less Than—4
If the number of matches is less than 4, the script prompts the caller to choose the correct entry from the list of matches. If the number of matches is greater than or equal to 4, the script prompts the caller to enter additional letters to reduce the number of matches.
–
Operator—Yes
The script gives the caller the option to connect to an operator by pressing "0".
–
Interruptible—Yes
External events can interrupt the playback of the prompt.
•
Prompt tab
–
Prompt—Customize Prompt
The script uses a customized prompt.
–
Prompt—prompt
The prompt variable stores the custom prompt the script plays back to the caller.
–
Barge In—Yes
The caller can respond without first having to listen to the playback of the entire prompt.
–
Continue On Prompt Errors—Yes
If a prompt error occurs, the script continues to play the next prompt, or, if this prompt is the last in the sequence, the script waits for caller input.
•
Input tab
–
Input Length—30
Specifies that the script automatically triggers a lookup when the caller enters 30 digits.
–
Terminating Key—#
The terminating key is "#".
–
Cancel Key—*
The cancel key is "*".
–
Maximum Retries—5
The maximum number of retries is 5.
–
Initial Timeout (in sec)—5
The step times out if the script receives no input within 5 seconds after playing back the prompt.
–
Interdigit Timeout (in sec)—3
The step times out if the script receives no input between digits for 3 seconds.
–
Flush Input Buffer—No
The script saves input previously entered by the caller.
The Name To User step has four output branches: Successful, Timeout, Unsuccessful, and Operator.
The Timeout and Unsuccessful output branches need no scripting. If the step times out, the script proceeds to the second Play Prompt step (see "Play Prompt Step"). If an invalid entry is made after 5 attempts, the script also proceeds to the second Play Prompt step (see "Play Prompt Step").
Two output branches require scripting:
•
Successful Output Branch for the Name to User Step
•
Operator Output Branch for the Name to User Step
Successful Output Branch for the Name to User Step
Menu > DialByName > Name To User > Successful
If the Name to User step successfully receives caller input, the script executes the Successful output branch.
The Successful output branch of the Name To User step, as shown in Figure 29, receives confirmation of the name from the caller and to transfer the call.
The steps under this branch are similar to the steps under the Successful output branch of the Get Digit String step above (See "Get Digit String Step for the DialByExtn Step"): the script requests confirmation and redirects the call to the desired extension.
Figure 29 Name To User—Successful Output Branch Scripting
The Successful output branch of the Name To User step contains three main steps:
•
GET USER INFO STEP FOR THE NAME TO USER SUCCESSFUL OUTPUT BRANCH
•
IF STEP FOR THE NAME TO USER SUCCESSFUL OUTPUT BRANCH
•
IMPLICIT CONFIRMATION STEP FOR THE NAME TO USER SUCCESSFUL OUTPUT BRANCH
GET USER INFO STEP FOR THE NAME TO USER SUCCESSFUL OUTPUT BRANCH
Menu > DialByName > Name To User > Successful > Get User Info
This step drags a Get User Info step from the User palette to the Design pane, and drops it over the Successful icon under the Name To User step icon, as shown in Figure 29.
The Get User Info step, as shown in Figure 30, makes user attributes available to the script.
Figure 30 Configured Get User Info Customizer Window
The Get User Info customizer window contains the following values:
•
User—user
Specifies user as the variable that holds a handle to the user information selected by the Name To User step.
•
Attribute/Variable text box
–
Full Name—name
–
Extension—extnXfer
–
Spoken Name—spokenName
IF STEP FOR THE NAME TO USER SUCCESSFUL OUTPUT BRANCH
Menu > DialByName > Name To User > Successful > If
This step drags an If step from the General palette to the Design pane, and drops it over the Get User Info step icon under the Name To User step icon, as shown in Figure 29.
The If step creates a prompt based on whether or not a recording of the spoken name of the person whose extension is being called is available.
The If step evaluates the Boolean expression spokenName==null. This expression determines if the value of the Document variable spokenName is equal to null.
The If step has two output branches (see Figure 29):
•
True Output Branch for the Name to User Successful If Step
•
False Output Branch for the Name to User Successful If Step
True Output Branch for the Name to User Successful If Step
Menu > DialByName > Name To User > Successful > If > True
If the If step determines that a recording of the spoken name of the person whose extension is being called is not available, the script executes the True output branch.
The True output branch of the If step instructs prompt to play the system prompt SP[AA/AACalling], which does not play the name of the person being called.
False Output Branch for the Name to User Successful If Step
Menu > DialByName > Name To User > Successful > If > False
If the If step determines that a recording of the spoken name of the person whose extension is being called is available, the script executes the False output branch.
The False output branch of the If step instructs prompt to play the system prompt SP[AA/AACallingName], which is then followed by the spoken name.
IMPLICIT CONFIRMATION STEP FOR THE NAME TO USER SUCCESSFUL OUTPUT BRANCH
Menu > DialByName > Name To User > Successful > Implicit Confirmation
This step drags an Implicit Confirmation step from the Media palette to the Design pane, and drops it over the If step icon under the Name To User step icon, as shown in Figure 29.
The Implicit Confirmation step implicitly confirms the name entered without demanding more input from the caller.
The Implicit Confirmation step performs in a similar way to the DialByExtn section above. (See "IMPLICIT CONFIRMATION STEP FOR THE GET DIGIT STRING SUCCESSFUL BRANCH" section).
The Implicit Confirmation step has two output branches (see Figure 29.):
•
No Output Branch for the Implicit Confirmation Step
•
Yes Output Branch for the Implicit Confirmation Step
No Output Branch for the Implicit Confirmation Step
Menu > DialByName > Name To User > Successful > Implicit Confirmation > No
If the Implicit Confirmation step does not successfully confirm the choice of the caller, the script executes the No output branch.
The No output branch of the If step, as shown in Figure 31, creates a prompt that provides the caller an opportunity to explicitly confirm the choice.
Figure 31 Name To User—No Output Branch of Implicit Confirmation Step
The No output branch of the Implicit Confirmation step contains these functional steps:
•
Create Conditional Prompt Step for the No Branch
•
Set Step for the No Branch
•
Explicit Confirmation Step for the No Branch
•
If Step for the No Branch
Create Conditional Prompt Step for the No Branch
Menu > DialByName > Name To User > Successful > Implicit Confirmation > No >
Create Conditional Prompt
This step drags a Create Conditional Prompt step from the Prompt palette to the Design pane, and drops it over the No output branch icon under the Implicit Confirmation step icon, as shown in Figure 31.
The Create Conditional Prompt step creates a prompt based on whether or not the variable spokenName is null. The spokenName variable is not null if a spoken name exists for the selected user in the directory.
Set Step for the No Branch
Menu > DialByName > Name To User > Successful > Implicit Confirmation > No > Set
This step drags a Set step from the Prompt palette to the Design pane, and drops it over the Create Conditional Prompt step icon under the Implicit Confirmation step icon, as shown in Figure 31.
The Set step appends the prompt created by the Create Conditional Prompt step with the system prompt SP[AA/AAWantToCall].
Explicit Confirmation Step for the No Branch
Menu > DialByName > Name To User >Successful > Implicit Confirmation > No >
Explicit Confirmation
This step drags an Explicit Confirmation step from the Media palette to the Design pane, and drops it over the Set step icon under the Implicit Confirmation step icon, as shown in Figure 31.
The Explicit Confirmation step makes an explicit confirmation of the name of the desired person, as shown in Figure 32.
Figure 32 Explicit Confirmation Customizer Window—Configured Prompt Tab
The Explicit Confirmation customizer window contains the following values:
•
General tab
–
Contact—Triggering Contact
The contact that triggered the script remains the contact for this step.
–
Interruptible—Yes
External events can interrupt the playback of the prompt.
•
Prompt tab
–
Initial Prompt—prompt
The prompt variable stores the first prompt.
–
Error Prompt—prompt
The prompt variable plays in the event of an input error.
–
Timeout Prompt—prompt
The prompt variable plays if the timeout limit is reached.
–
Barge In—Yes
The caller can respond without first having to listen to the playback of the entire prompt.
–
Continue on Prompt Errors—Yes
If a prompt error occurs, the script continues to play the next prompt, or, if this is the last prompt in the sequence, the script waits for caller input.
•
Input tab
–
Timeout (in sec)—5
After playing all prompts, the script waits 5 seconds for initial input from the caller before re-attempting with a timeout error, or, if this was the last attempt, the script executes the Timeout output branch.
–
Maximum Retries—3
The script will attempt a maximum of 3 retries to receive confirmation before executing the Unsuccessful output branch.
–
Flush Input Buffer—Yes
The step erases previous input.
–
Grammar—grammar
Leave blank.
The Explicit Confirmation step has four output branches: Yes, No, Timeout, and Error.
The No, Timeout, and Error output branches do not require scripting. The script proceeds to the If step (see "If Step for the No Branch") to allow the caller more attempts to confirm until the maximum retries limit is reached, after which the script proceeds to the Play Prompt step at the same level as the Menu step. (See Figure 13.)
The following section describes the Yes output branch:
•
YES OUTPUT BRANCH FOR THE EXPLICIT CONFIRMATION STEP
YES OUTPUT BRANCH FOR THE EXPLICIT CONFIRMATION STEP
Menu > DialByName > Name To User > Successful > Implicit Confirmation > No >
Explicit Confirmation > Yes
If the Explicit Confirmation step successfully receives confirmation from the caller, the script executes the Yes output branch.
The Yes output branch of the Explicit Confirmation step directs the script to the Xfer Label step under the Yes output branch of the Implicit Confirmation step (see "Label Step for the Implicit Confirmation Yes Branch"), which contains the steps necessary to redirect the call to the desired extension.
If Step for the No Branch
Menu > DialByName > Name To User > Successful > Implicit Confirmation > No > If
This step drags an If step from the General palette to the Design pane, and drops it over the Explicit Confirmation step icon, as shown in Figure 31.
The If step determines whether or not the maximum number of retries has been reached by evaluating the expression attempts < MaxRetry. This expression determines if the number of attempts (as stored by the attempts variable) is less than the maximum retries value stored in the MaxRetry variable.
The If step has two output branches (see Figure 31):
•
TRUE OUTPUT BRANCH FOR THE NO BRANCH IF STEP
•
FALSE OUTPUT BRANCH FOR THE NO BRANCH IF STEP
TRUE OUTPUT BRANCH FOR THE NO BRANCH IF STEP
Menu > DialByName > Name To User > Successful > Implicit Confirmation > No > If > True
If the If step determines that the maximum number of retries has not been reached, the script executes the True output branch.
The True output branch of the If step provides the caller with another opportunity to enter the name of the desired person.
The following sections describe the two steps under the True output b ranch of the If step:
•
Increment Step
•
Goto Step (DialByName)
Increment Step
Menu > DialByName > Name To User > Successful > Implicit Confirmation > No > If >
True > Increment
This step drags an Increment step from the General palette to the Design pane, and drops it under the True icon under the If step, as shown in Figure 31.
The Increment step increases the value of the attempts variable by 1.
Goto Step (DialByName)
Menu > DialByName > Name To User > Successful > Implicit Confirmation > No > If >
True > Goto
This step drags a Goto step from the General palette to the Design pane, and drops it over the Increment step icon under the True icon under the If step, as shown in Figure 31.
The Goto step returns the caller to the beginning of the DialByName Label step at the beginning of the DialByName output branch in order to give the caller more attempts to input the proper name.
FALSE OUTPUT BRANCH FOR THE NO BRANCH IF STEP
Menu > DialByName > Name To User > Successful > Implicit Confirmation > No > If > False
If the If step determines that the maximum number of retries has been reached, the script executes the False output branch. The script proceeds to the second Play Prompt step (see "Play Prompt Step").
Yes Output Branch for the Implicit Confirmation Step
Menu > DialByName > Name To User > Successful > Implicit Confirmation > Yes
If the Implicit Confirmation step is successful, the script executes the Yes output branch.
The Yes output branch of the Implicit Confirmation step redirects the call to the desired extension, as shown in Figure 33.
Figure 33 Name To User—Yes Output Branch of Implicit Confirmation Step
The Yes output branch of the Implicit Confirmation step contains these functional steps:
•
Label Step for the Implicit Confirmation Yes Branch
•
First If Step for the Implicit Confirmation Yes Branch
•
Second If Step for the Implicit Confirmation Yes Branch
Label Step for the Implicit Confirmation Yes Branch
Menu > DialByName > Name To User > Successful > Implicit Confirmation > Yes > Label
This step drags a Label step from the General palette to the Design pane, and drops it over the Yes icon under the Implicit Confirmation step icon, as shown in Figure 33.
The Label step has the value Xfer that provides a target for the Yes output branch of the Explicit Confirmation step above (see "YES OUTPUT BRANCH FOR THE EXPLICIT CONFIRMATION STEP").
First If Step for the Implicit Confirmation Yes Branch
Menu > DialByName > Name To User > Successful > Implicit Confirmation > Yes >
If (extnXfer)
This step drags an If step from the General palette to the Design pane, and drops it over the Label step icon under the Implicit Confirmation step icon, as shown in Figure 33.
The first If step directs the script based on whether or not the desired extension exists by evaluating the expression extnXfer != null. The expression determines if the value of the extnXfer variable (which stores the extension number) is not null."
The If step has two output branches (see Figure 33.):
•
FALSE OUTPUT BRANCH FOR THE IMPLICIT CONFIRMATION YES IF STEP
•
TRUE OUTPUT BRANCH FOR THE IMPLICIT CONFIRMATION YES IF STEP
FALSE OUTPUT BRANCH FOR THE IMPLICIT CONFIRMATION YES IF STEP
Menu > DialByName > Name To User > Successful > Implicit Confirmation > Yes >
If (extnXfer) > False
If the If step finds no extension for the selected user, the script executes the False output branch, which has one step, the Set step.
Set Step
Menu > DialByName > Name To User > Successful > Implicit Confirmation > Yes >
If (extnXfer) > False > Set
This step drags a Set step from the Prompt palette to the Design pane, and drops it over the False step icon under the first If step icon, as shown in Figure 33.
The Set step sets the value of a prompt that will be played back to inform the caller that the extension was invalid.
TRUE OUTPUT BRANCH FOR THE IMPLICIT CONFIRMATION YES IF STEP
Menu > DialByName > Name To User > Successful > Implicit Confirmation > Yes >
If (extnXfer) > True
If the If step evaluates the desired extension as valid, the script executes the True output branch.
The True output branch of the If step transfers the call using the following step:
•
Call Redirect Step for the Implicit Confirmation Yes If True Branch
Call Redirect Step for the Implicit Confirmation Yes If True Branch
Menu > DialByName > Name To User > Successful > Implicit Confirmation > Yes >
If (extnXfer) > True > Call Redirect
This step drags a Call Redirect step from the Call Contact palette to the Design pane, and drops it over the True icon under the first If step icon, as shown in Figure 33.
As in the other two main output branches of the Menu step (DialByExtn and Operator), the DialByName output branch contains the Call Redirect step, which attempts to transfer the call, in this case to the desired extension number.
The Call Redirect step has four output branches:
•
Successful Output Branch for the Call Redirect Step
•
Busy Output Branch for the Call Redirect Step
•
Invalid Output Branch for the Call Redirect Step
•
Unsuccessful Output Branch for the Call Redirect Step
Successful Output Branch for the Call Redirect Step
Menu > DialByName > Name To User > Successful > Implicit Confirmation > Yes >
If (extnXfer) > True > Call Redirect > Successful
If the Call Redirect step successfully transfers the call, the script executes the Successful output branch.
The Successful output branch of the Call Redirect step marks the contact as Handled and ends the script.
The Successful output branch of the Call Redirect step contains two steps:
•
Set Contact Info Step for the Call Redirect Successful Branch
•
End Step for the Call Redirect Successful Branch
Set Contact Info Step for the Call Redirect Successful Branch
Menu > DialByName > Name To User > Successful > Implicit Confirmation > Yes >
If (extnXfer) > True > Call Redirect > Successful > Set Contact Info
This step drags a Set Contact Info step from the Contact palette to the Design pane, and drops it over the Successful icon under the Call Redirect step, as shown in Figure 33.
The Set Contact Info step marks the call as Handled.
End Step for the Call Redirect Successful Branch
Menu > DialByName > Name To User > Successful > Implicit Confirmation > Yes >
If (extnXfer) > True > Call Redirect > Successful > End
This step drags an End step from the General palette to the Design pane, and drops it over the Set Contact Info step icon under the Successful icon under the Call Redirect step, as shown in Figure 33.
The End step ends the script and releases all system resources.
Busy Output Branch for the Call Redirect Step
Menu > DialByName > Name To User > Successful > Implicit Confirmation > Yes >
If (extnXfer) > True > Call Redirect > Busy
If the Call Redirect step registers the destination extension as busy, the script executes the Busy output branch.
The Busy output branch of the Call Redirect step sets the value of the prefixPrompt variable to inform the caller that the extension was busy.
The Busy output branch of the Call Redirect step contains the Set step.
Set Step for the Call Redirect Busy Branch
Menu > DialByName > Name To User > Successful > Implicit Confirmation > Yes >
If (extnXfer) > True > Call Redirect > Busy > Set
This step drags a Set step from the General palette to the Design pane, and drops it over the Busy icon under the Call Redirect step, as shown in Figure 33.
The Set step sets the value of prefixPrompt to contain a system prompt that will play back a message to the caller that the extension is busy when the script proceeds to the final Play Prompt step (see "Play Prompt Step").
Invalid Output Branch for the Call Redirect Step
Menu > DialByName > Name To User > Successful > Implicit Confirmation > Yes >
If (extnXfer) > True > Call Redirect > Invalid
If the Call Redirect step registers the destination extension as invalid, the script executes the Invalid output branch.
The Invalid output branch of the Call Redirect step sets the value of the prefixPrompt variable to inform the caller that the extension was invalid.
The Invalid output branch of the Call Redirect step contains the Set step.
Set Step for the Call Redirect Invalid Branch
Menu > DialByName > Name To User > Successful > Implicit Confirmation > Yes >
If (extnXfer) > True > Call Redirect > Invalid > Set
This step drags a Set step from the General palette to the Design pane, and drops it over the Invalid icon under the Call Redirect step, as shown in Figure 33.
The Set step sets the value of prefixPrompt to contain a system prompt that plays back a message to the caller that the extension is invalid.
Unsuccessful Output Branch for the Call Redirect Step
Menu > DialByName > Name To User > Successful > Implicit Confirmation > Yes >
If (extnXfer) > True > Call Redirect > Unsuccessful
If the Call Redirect step registers the destination extension as out of service, the script executes the Unsuccessful output branch.
The Unsuccessful output branch of the Call Redirect step sets the value of the prefixPrompt variable to inform the caller that the extension is out of service.
The Unsuccessful output branch of the Call Redirect step contains the Set step.
Set Step for the Call Redirect Unsuccessful Branch
Menu > DialByName > Name To User > Successful > Implicit Confirmation > Yes >
If (extnXfer) > True > Call Redirect > Unsuccessful > Set
This step drags a Set step from the General palette to the Design pane, and drops it over the Unsuccessful icon under the Call Redirect step, as shown in Figure 33.
The Set step sets the value of prefixPrompt to contain a system prompt that plays back a message to the caller that the extension is out of service.
Second If Step for the Implicit Confirmation Yes Branch
Menu > DialByName > Name To User > Successful > Implicit Confirmation > Yes >
If (MaxRetry)
This step drags a second If step from the General palette to the Design pane, and drops it over the first If step icon under the Implicit Confirmation step icon, as shown in Figure 33.
The second If step directs the script based on whether or not the maximum number of retries has been reached by evaluating the expression attempts < MaxRetry. The expression determines if the number of attempts, as stored in the attempts variable, is less than the maximum number of retries allowed, as stored in the MaxRetry variable.
The If step has two output branches (see Figure 33.):
•
FALSE OUTPUT BRANCH FOR THE IF (MaxRetry) STEP
•
TRUE OUTPUT BRANCH FOR THE IF (MaxRetry) STEP
FALSE OUTPUT BRANCH FOR THE IF (MaxRetry) STEP
Menu > DialByName > Name To User > Successful > Implicit Confirmation > Yes >
If (MaxRetry) > False
If the second If step finds that the maximum number of retries has been reached, the script executes the False output branch, and the script proceeds to the final Play Prompt step (see "Play Prompt Step").
TRUE OUTPUT BRANCH FOR THE IF (MaxRetry) STEP
Menu > DialByName > Name To User > Successful > Implicit Confirmation > Yes >
If (MaxRetry) > True
If the If step finds that the maximum number of retries has not been reached, the script executes the True output branch.
The True output branch of the If step provides more opportunities for the caller to successfully enter a name.
The True output branch contains two functional steps:
•
Increment Step for the If (MaxRetry) True Branch
•
Goto Step for the If (MaxRetry) True Branch
Increment Step for the If (MaxRetry) True Branch
Menu > DialByName > Name To User > Successful > Implicit Confirmation > Yes >
If (MaxRetry) > True > Increment
This step drags an Increment step from the General palette to the Design pane, and drops it over the True icon under the If step, as shown in Figure 33.
The Increment step increases the value of the attempts variable by 1.
Goto Step for the If (MaxRetry) True Branch
Menu > DialByName > Name To User > Successful > Implicit Confirmation > Yes >
If (MaxRetry) > True > Goto
This step drags a Goto step from the General palette to the Design pane, and drops it over the Increment step icon under the True icon under the If step, as shown in Figure 33.
The Goto step returns the caller to the beginning of the DialByName Label step at the beginning of the DialByName output branch of the Get Digit String step in order to give the caller more attempts to input the proper extension.
Operator Output Branch for the Name to User Step
Menu > DialByName > Name To User > Operator
If the Name to User step receives caller input for transfer to the operator, the script executes the Operator output branch.
The Output branch transfers the call to an operator, as shown in Figure 34.
Figure 34 Name to User—Operator Output Branch
The Operator output branch has one step:
•
GOTO STEP FOR THE OPERATOR OUTPUT BRANCH
GOTO STEP FOR THE OPERATOR OUTPUT BRANCH
Menu > DialByName > Name To User > Operator > Goto
This step drags a Goto step from the General palette to the Design pane and drops it over the Operator icon under the Name To User step, as shown in Figure 34.
The Goto step sends the caller to the Operator output branch of the Menu step.
Operator Output Branch
Menu > Operator
If the caller chooses menu option "3" to speak to an operator when given the option by the Menu step, the script executes the Operator output branch.
The Operator output branch transfers the call to an operator, as shown in Figure 35.
Figure 35 Menu—Operator Output Branch
The Operator output branch contains these steps:
•
Label Step (Xfer Operator) for the Operator Branch
•
Call Redirect Step for the Operator Branch
•
If Step for the Operator Branch
Label Step (Xfer Operator) for the Operator Branch
Menu > Operator > Label
This step drags a Label step from the General palette to the Design pane, and drops it over the Operator icon under the Name to User step icon, as shown in Figure 35.
The Label step has the value Xfer Operator that provides a target for the Goto step.
Call Redirect Step for the Operator Branch
Menu > Operator > Call Redirect
This step drags a Call Redirect step from the Call Contact palette to the Design pane, and drops it over the Label step icon under the Name to User step icon, as shown in Figure 35.
As in the other two main output branches of the Menu step (DialByExtn and DialByName), the Operator output branch contains the Call Redirect step, which attempts to transfer the call, in this case to the operator.
The Call Redirect step has four output branches:
•
Successful Output Branch for the Call Redirect Step
•
Busy Output Branch for the Call Redirect Step
•
Invalid Output Branch for the Call Redirect Step
•
Unsuccessful Output Branch for the Call Redirect Step
Successful Output Branch for the Call Redirect Step
Menu > Operator > Call Redirect > Successful
If the Call Redirect step successfully transfers the call, the script executes the Successful output branch.
The Successful output branch of the Call Redirect step transfers the call.
The Successful output branch contains two steps:
•
SET CONTACT INFO STEP FOR THE CALL REDIRECT SUCCESSFUL BRANCH
•
END STEP FOR THE CALL REDIRECT SUCCESSFUL BRANCH
SET CONTACT INFO STEP FOR THE CALL REDIRECT SUCCESSFUL BRANCH
Menu > Operator > Call Redirect > Successful > Set Contact Info
This step drags a Set Contact Info step from the Contact palette to the Design pane, and drops it over the Successful icon under the Call Redirect step, as shown in Figure 35.
The Set Contact Info step marks the call as Handled.
END STEP FOR THE CALL REDIRECT SUCCESSFUL BRANCH
Menu > Operator > Call Redirect > Successful > End
This step drags an End step from the General palette to the Design pane, and drops it over the Set Contact Info step icon under the Successful icon under the Call Redirect step, as shown in Figure 35.
The End step ends the script and releases all system resources.
Busy Output Branch for the Call Redirect Step
Menu > Operator > Call Redirect > Busy
If the Call Redirect step registers the destination extension as busy, the script executes the Busy output branch.
The Busy output branch of the Call Redirect step sets the value of the prefixPrompt variable to inform the caller that the extension was busy.
The Busy output branch of the Call Redirect step contains the Set step.
SET STEP FOR THE CALL REDIRECT BUSY BRANCH
Menu > Operator > Call Redirect > Busy > Set
This step drags a Set step from the General palette to the Design pane, and drops it over the Busy icon under the Call Redirect step, as shown in Figure 35.
The Set step sets the value of prefixPrompt to contain a system prompt that plays back a message to the caller that the extension is busy.
Invalid Output Branch for the Call Redirect Step
Menu > Operator > Call Redirect > Invalid
If the Call Redirect step registers the destination extension as invalid, the script executes the Invalid output branch.
The Invalid output branch of the Call Redirect step sets the value of the prefixPrompt variable to inform the caller that the extension was invalid.
The Invalid output branch of the Call Redirect step contains the Set step.
SET STEP FOR THE CALL REDIRECT INVALID BRANCH
Menu > Operator > Call Redirect > Invalid > Set
This step drags a Set step from the General palette to the Design pane, and drops it over the Invalid icon under the Call Redirect step, as shown in Figure 35.
The Set step sets the value of prefixPrompt to contain a system prompt that plays back a message to the caller that the extension is invalid.
Unsuccessful Output Branch for the Call Redirect Step
Menu > Operator > Call Redirect > Unsuccessful
If the Call Redirect step registers the destination extension as out of service, the script executes the Unsuccessful output branch.
The Unsuccessful output branch of the Call Redirect step sets the value of the prefixPrompt variable to inform the caller that the extension was out of service.
The Unsuccessful output branch of the Call Redirect step contains the Set step.
SET STEP FOR THE CALL REDIRECT UNSUCCESSFUL BRANCH
Menu > Operator > Call Redirect > Unsuccessful > Set
This step drags a Set step from the General palette to the Design pane, and drops it over the Unsuccessful icon under the Call Redirect step, as shown in Figure 35.
The Set step sets the value of prefixPrompt contain a system prompt that plays back a message to the caller that the extension is out of service.
If Step for the Operator Branch
Menu > Operator > If
This step drags an If step from the General palette to the Design pane, and drops it over the Call Redirect icon under the Menu step, as shown in Figure 35.
The If step allows the script to determine whether or not the maximum number of retries has been reached by evaluating the expression attempts < MaxRetry. The expression determines if the number of attempts, as stored in the attempts variable, is less than the maximum number of retries, as stored in the MaxRetry variable.
The If step has two output branches:
•
True Output Branch for the Operator Branch If Step
•
False Output Branch for the Operator Branch If Step
True Output Branch for the Operator Branch If Step
Menu > Operator > If > True
If the If step determines that the maximum number of retries has not been reached, the script executes the True output branch.
The True output branch of the If step allows the caller to keep returning to the MainMenu Label until it reaches the maximum number of retries.
The True output branch contains two steps:
•
INCREMENT STEP FOR THE OPERATOR IF TRUE BRANCH
•
GOTO STEP FOR THE OPERATOR IF TRUE BRANCH
INCREMENT STEP FOR THE OPERATOR IF TRUE BRANCH
Menu > Operator > If > True > Increment
This step drags an Increment step from the General palette to the Design pane, and drops it over the True icon under the If step, as shown in Figure 35.
The Increment step increases the value of the attempts variable by 1.
GOTO STEP FOR THE OPERATOR IF TRUE BRANCH
Menu > Operator > If > True > Goto
This step drags a Goto step from the General palette to the Design pane, and drops it over the True step icon under the If step, as shown in Figure 35.
The Goto step sends the script back to the MainMenu label.
False Output Branch for the Operator Branch If Step
Menu > Operator > If > False
If the If step determines that the maximum number of retries has been reached, the script executes the False output branch.
The False output branch of the If step proceeds to the next step at the same level in the script as the Menu step, which is the Play Prompt step. (See Figure 13.)
Play Prompt Step
In case none of the steps and branches under the Menu step succeed in transferring the call, the script proceeds to the Play Prompt step.
This step drags a Play Prompt step from the Prompt palette to the Design pane, and drops it over the Menu step, as shown in Figure 13.
The Play Prompt step, as shown in Figure 36, plays (as a last resort) a prompt informing the caller of the inability to transfer the call.
The Play Prompt step plays prefixPrompt + SP[AA/AASorry], which informs the caller the reason the attempted transfer was unsuccessful.
Figure 36 End of Script
Call Redirect Step
This step drags a Call Redirect step from the Call Contact palette to the Design pane, and drops it over the Play Prompt step, as shown in Figure 36.
After the Play Prompt step informs the caller of the unsuccessful call transfer, the Call Redirect step attempts to redirect the call to an operator, using the extension number stored in the operExtn variable.
If Step
This step drags an If step from the General palette to the Design pane, and drops it over the Call Redirect step, as shown in Figure 36.
The If step determines whether or not the maximum number of retries has been reached. As in the previous examples, the If step and Increment step allow the caller the maximum number of retries.
If the transfer is successful, the script ends.
Play Prompt Step
This step drags a Play Prompt step from the Prompt palette to the Design pane, and drops it over the If step, as shown in Figure 13.
After the maximum number of retries is reached without successfully transferring the call to an operator, the Play Prompt step plays prefixPrompt, which explains why the transfer was unsuccessful.
End Step
This step drags a End step from the General palette to the Design pane.
The End step ends the script and releases all system resources. The End step requires no configuration.