Cisco Unity Express 1.1.1 Script Editor Guide
Designing a Basic Script

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.

Table 10 Variables in the aa_sample1.aef Script 

Variable Name
Variable Type
Value
Function

welcomePrompt

Prompt

P[AA\Welcome.wav]

Greets the caller.

See Play Prompt Step.

The designer defines this variable as a parameter so that the administrator can configure it when provisioning an application with this script.

extnXfer

String

Stores the extension to which the caller is transferred.

See Get Digit String Step for the DialByExtn Step.

user

User

null

Identifies the user that the caller chooses with the Name To User step.

See Name To User Step.

menuPrompt

Prompt

This prompt presents the initial menu of options for calling by name or by extension.

See Menu.

prefixPrompt

Prompt

Informs the caller of the status of the call. This value is dependent on many steps.

See DialByExtn Output Branch.

attempts

Integer

1

Stores the number of times the script has attempted confirmation.

See IMPLICIT CONFIRMATION STEP FOR THE GET DIGIT STRING SUCCESSFUL BRANCH.

extnPrompt

Prompt

Prompts the caller to enter the extension number.

See DialByExtn Output Branch.

namePrompt

Prompt

Asks the caller to enter the name of the person the caller wants to reach.

See Create Container Prompt Step.

prompt

Prompt

Used for a variety of purposes throughout the script, such as playing a recorded status message, asking the caller for input, playing a menu of options, and so on.

See Create Container Prompt Step.

spokenName

Document

null

Stores the audio document of the spoken name of the person the caller is trying to reach.

See GET USER INFO STEP FOR THE NAME TO USER SUCCESSFUL OUTPUT BRANCH.

name

String

Stores the written name of the person the caller is trying to reach.

See GET USER INFO STEP FOR THE NAME TO USER SUCCESSFUL OUTPUT BRANCH.

MaxRetry

Integer

3

Stores the maximum retries a caller can make in this script before the script terminates the call.

See IMPLICIT CONFIRMATION STEP FOR THE GET DIGIT STRING SUCCESSFUL BRANCH.

This variable is a parameter so that the administrator can configure it when provisioning an application with this script.

operExtn

String

Stores the Operator extension the Call Redirect step uses to transfer the call to the operator.

See Call Redirect Step.

This variable is a parameter so that the administrator can configure it when provisioning an application with this 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.