Scripting Guide For CS1000, M1 PBX
Scripting Guide For CS1000, M1 PBX
Information is subject to change without notice. Nortel Networks reserves the right to make changes
in design or components as progress in engineering and manufacturing may warrant.
The process of transmitting data and call messaging between the Meridian 1 PBX and Contact
Center Manager is proprietary to Nortel Networks. Any other use of the data and the transmission
process is a violation of the user license unless specifically authorized in writing by Nortel Networks
prior to such use. Violations of the license by alternative usage of any portion of this process or the
related hardware constitutes grounds for an immediate termination of the license and Nortel
Networks reserves the right to seek all allowable remedies for such breach.
This page and the following page are considered the title page, and contain Nortel Networks and
third-party trademarks.
*Nortel Networks, Nortel, Nortel (Logo), the Globemark, CallPilot, IVR, Meridian, Meridian 1 PBX,
Meridian Mail, Optivity, Communication Server, and Symposium are trademarks of Nortel.
CRYSTAL REPORTS is a trademark of Crystal Decisions, Inc.
MICROSOFT, MICROSOFT ACCESS, WINDOWS, WINDOWS NT, and WINDOWS XP are
trademarks of Microsoft Corporation.
SYBASE is a trademark of Sybase, Inc.
Contents
1 Getting started 13
New in this release . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
How to use this guide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Skills you need . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Related documents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
How to get help. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
11 Intrinsics 343
Overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344
Examples of intrinsics use . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347
Section A: Skillset intrinsics 349
Overview of skillset intrinsics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350
ANSWERED COUNT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 355
AVERAGE SPEED ANSWER . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 357
EXPECTED WAIT TIME . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 360
IDLE AGENT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365
IDLE AGENT COUNT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 367
LOGGED AGENT COUNT. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 369
LOGGED OUT AGENT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 371
LONGEST IDLE AGENT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373
MOST LOGGED AGENTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375
OLDEST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 378
OUT OF SERVICE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 380
POSITION IN QUEUE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 383
PRIORITY IN QUEUE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385
PRIORITY IN NETWORK QUEUE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 388
QUEUED COUNT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 390
Section B: Time intrinsics 393
DAY OF WEEK . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 394
DATE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396
13 Applications 467
Overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 468
Applications and application thresholds . . . . . . . . . . . . . . . . . . . . . . . . . . . . 469
c_Master_with_Menus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 539
c_Primary_One . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 543
c_Primary_Two . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 544
c_Primary_Three . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 545
c_Primary_Four . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 546
c_Primary_Five. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 547
c_Common_Secondary. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 548
A Troubleshooting 551
Overview. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 552
Script execution problems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 553
Voice processing problems. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 556
Networking problems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 561
Phantom calls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 563
Validation errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 565
Validation option rules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 579
Glossary 757
Index 797
Getting started
In this chapter
New in this release 14
Overview 17
How to use this guide 20
Skills you need 20
Related documents 21
How to get help 23
The following sections detail what is new in the Nortel Contact Center Manager
Scripting Guide for Communication Server 1000/Meridian 1 PBX (297-2183-
930) for release 8.5.
“Features” on page 14
“Other changes” on page 15
Features
See the following sections for information about feature changes:
“SIP-enabled Contact Center Manager Server” on page 14
“Script Variables window” on page 14
“Script Manager” on page 15
“New Script Editor window” on page 15
“Open Queue” on page 15
Script Manager
The Script Manager lists all scripts in a table and provides a Last modified by
filter, which sorts by user name. The Script Manager is described in the
following sections:
“Scripting tools and procedures” on page 47
“Creating and editing scripts” on page 141
“Importing and exporting scripts” on page 167
“Administering scripts” on page 175
Open Queue
The Open Queue is a licensed feature that provides seamless integration between
the Contact Center Manager Server, Contact Center Manager Administration,
Contact Center Multimedia, and Communication Control Toolkit products. It
provides workflow, queuing, routing, reporting, and management e-mail,
outbound, Web communications contacts. Open Queue provides a truly
integrated multimedia contact center. The Open Queue feature affects the
following sections:
“Open Queue Intrinsics” on page 441
Other changes
See the following sections for information about changes that are not feature-
related.
“Additional updates” on page 16
Additional updates
Several intrinsics were changed to reflect the fact they now represent both voice
and video.
The number of call variables that can be defined is increased from 20 to 50.
Overview
The Nortel Contact Center Manager Scripting Guide for Communication Server
1000/Meridian 1 PBX provides an overview of the functions of contact center
scripts and explains the scripting process. The guide describes how to
plan the scripts used in your contact center
create, modify, and delete script variables
create, validate, activate, and delete contact center scripts
view applications, and change application thresholds
use sample scripts for your contact center
Throughout this guide, the term contact applies to both voice and non-voice
contacts.
This guide includes a detailed table of contents and an index to help you find
specific information or procedures related to scripting. “Where to start in this
guide” on page 19 focuses only on the most common tasks. If the task you want
to perform is not listed, use the table of contents or index to find the information
you need.
This guide is intended for individuals responsible for designing, writing, and
maintaining the scripts used in Contact Center Manager.
This section describes the skills and knowledge you need to use this guide
effectively.
PC experience or knowledge
Knowledge of, or experience with Windows Server 2003 is helpful when you
administer Contact Center Manager.
Related documents
The following guides are available on the Contact Center portfolio DVD or on
the Nortel Web site (www.nortel.com).
This section explains how to get help for Nortel products and services. However,
before contacting Nortel for support, see “Troubleshooting” on page 551 of this
guide.
Latest software The Nortel page for Contact Center located at http://
www.nortel.com/espl.
Latest documentation The Nortel page for Contact Center documentation
located at http://www.nortel.com/helmsman.
www.nortel.com/support
This site provides quick access to software, documentation, bulletins, and tools
to address issues with Nortel products. From this site, you can:
download software and related tools
download technical documents, release notes, and product bulletins
sign up for automatic notification of new software and documentation
search the Technical Support Web site and Nortel Knowledge Base for
answers to technical issues
open and manage technical support cases
Outside North America, go to the Web site below to obtain the phone number for
your region:
http://www.nortel.com/callus
http://www.nortel.com/erc
In this chapter
Overview 26
Using scripts in your contact center 27
How call routing and call treatment work 29
Types of scripts 33
Script building blocks 37
Planning your scripts 40
Scripting tools and procedures 47
Overview
Scripts perform two major functions: they define the path a contact follows, and
they provide treatments to a contact as the contact moves through Contact
Center Manager. Scripts are also used by the Contact Center Manager Server to
track and record information about each step in a contact’s progress. You can use
this information to analyze how your contact center is functioning and decide
how to improve service.
To use scripts effectively, you must understand the objectives of the contact
center. Generally, a contact center has three major objectives:
maximize contact center efficiency
maximize user satisfaction
analyze your contact center performance, and decide on how to improve
service
In an efficient contact center, agents process contacts that they are qualified to
handle. You must design a script so that incoming contacts are presented to the
agents who are best prepared to deal with the requirements of the contact.
Matching contacts with a qualified agent is the basis for skill-based routing:
determine a contact’s requirements and route the contact to an agent who has the
knowledge to deal with it effectively.
When both conditions are met for all contact types, costs decrease and profits
increase.
Occasionally, an incoming contact does not follow the path specified in the
script; for example, if a voice contact is returned to the queue or is disconnected.
Design scripts to prevent such situations or to deal with them if they do occur.
You must consider unexpected conditions and use scripting tools to resolve
them.
Specific scripts run when certain types of contacts enter Contact Center
Manager. These scripts must recognize contact requirements and route the
contacts to an agent who can deal effectively with these requirements.
As a script designer, you must write scripts to ensure that contacts are routed to
the qualified agents as quickly as possible. A contact is not always answered
immediately by an agent. However, you can provide treatments to the voice
contacts while they wait in a queue. These treatments can include telling callers
the estimated amount of time before their call is answered, or playing music to
callers while they wait in a queue.
Additionally, such items as time of day, day of the week, date, or contact center
activity are used to determine how the contact is handled.
For example, for a voice contact, if the default skillset is out of service, you can
inform the contact of this by using a recorded announcement (default RAN) or
predefined message. After the announcement, the contact is queued to the
default automatic call distribution directory number (ACD-DN) of the CDN.
For multimedia contacts, ensure that the contact is queued until the skillset
becomes staffed or until the age of the contact intrinsic is greater than the
acceptable limit.
Types of scripts
network
user-defined
primary
secondary
sample
System-defined scripts
The master and network scripts are system-defined, which means that they are
provided with Contact Center Manager.
Master script
The master script (Master_Script) is the central point of entry for every contact
that enters Contact Center Manager. The Master script is system-defined—that
is, it comes with Contact Center Manager, and it cannot be deactivated,
renamed, or deleted. However, you can change its contents to suit your contact
center needs and update the master script. The master script performs the
following functions:
It directs incoming contacts to primary scripts based on conditions such as
the DNIS, CLID, time of day, contact type, or other criteria that you
choose.
It schedules scripts and invokes primary scripts according to contact center
conditions in real time.
Network script
If you purchased the Network Skill-Based Routing feature, you also have a
network script. This script is used as the master script for network contacts that
return to the queue after they are forwarded between sites in a multisite contact
center.
Subscripts for the network script do not generate call statistics; therefore,
incoming call statistics are collected only from the Network_Script. You can use
these statistics in reports to track and record information about each step in the
progress of a call.
User-defined scripts
Primary and secondary scripts are user-defined, which means that they are not
provided with Contact Center Manager. If you are a Contact Center Manager
desktop user with the appropriate privileges, you can create, change, or delete
these scripts on the system.
For information about how scripts reference each other, see the following
illustrations. Referencing scripts (also known as branching), as shown in the first
illustration, are often referred to as trees.
A script can be referenced from many scripts; that is, several scripts can branch
to the same script (for example, the referenced script performs a function
required by many other scripts). When this happens, the complicated structure is
called a web, as shown in the following illustration.
A: A: A: A:
... ... ... ...
Execute Script A Execute Script B Execute Script B Execute Script
... ... ... Master_Script
Execute Script B
...
Not OK B: B: B:
... ... ...
Execute Script A Execute Script Execute Script A
... Master_Script ...
...
OK OK OK
Sample scripts
Sample scripts are provided with Contact Center Manager Administration as text
files. They help you create scripts for typical contact center situations. You can
import or copy the contents of these scripts to help you create your own scripts.
You access the sample scripts through the Import dialog box in the Scripting
component of Contact Center Manager Administration. The Import dialog box
has two importing options:
importing from the sample scripts directory on the Contact Center Manager
Administration server
importing a saved script file on the client computer or the network
There is no sample scripts directory on the client computer. The sample scripts
previously available on the client computer by using the Classic Client are now
available through the Import dialog box in the Scripting component of Contact
Center Manager Administration.
For information about the sample scripts contained in these directories, see
“Using sample scripts” on page 479.
Scripts contain the instructions that tell Contact Center Manager how to process
incoming contacts. These instructions consist of commands, scripting keywords
and parameters (some of which are optional), and expressions.
Commands
Commands perform distinct functions. For example, scripts route a contact to a
specific destination, play music or recorded announcements, or disconnect a
contact. Commands consist of combinations of intrinsics, constants, variables,
and expressions.
Intrinsics
Intrinsics are words or phrases that you use in scripts to represent a value or a set
of values about the Contact Center Manager system. Intrinsics contain system-
wide information about skillsets, agents, time, and call traffic. Use intrinsics to
access system information, which is then used in formulas and decision-making
statements.
Example
In the following section of a script, the intrinsic AVERAGE SPEED ANSWER
checks whether contacts are answered more quickly, on average, by the support
skillset than by the service skillset. If they are, incoming contacts are queued to
the support skillset.
IF (AVERAGE SPEED ANSWER support_sk < AVERAGE SPEED ANSWER
service_sk) THEN
QUEUE TO SKILLSET support_sk
WAIT 2
END IF
Variables
Script variables are user-defined words that you can insert in a script in place of
a value or a set of values. There are three types of variables:
Global variables are script variables that you can use in any script on the
system.
Example
Create a variable named business_hours_gv and assign the values 08:00..
17:00 to that variable. You can then use this variable in several scripts,
updating them all at one time (for example, if you change hours of
operation) by updating the variable.
Call variables are script variables with a value that can change for each
contact. These variables follow the contact through the system and are
passed from one script to another with the contact.
Example
Create a loop counter where you give a RAN to a voice contact every fourth
time around the loop. When the call variable changes to the value 4, the
loop plays the RAN.
Wild variables are integer call variables that encounter a READVAR/
SAVEVAR command. The value of the wild variable can then be accessed
by other scripts to execute further commands.
Example
Write a script that uses a call variable to change a wild variable. You can use
another script with the READVAR command to check the value of the wild
variable, and then perform an action. For example, disconnect a call if the
wild variable is of a certain value.
Tip: To help you identify types of variables when you write and edit your
scripts, include information about the variable type in its name. For
example, you can name a global variable for a greeting RAN
greeting_ran_gv, or you can name a call variable for contact-entered data
caller_data_cv, and you can precede wild variables with wv_.
For information about variables, see “Working with script variables” on page 99.
Expressions
Contact Center Manager uses expressions to create and compare data. To create
custom calculations for comparing known facts with conditional situations, you
can use mathematical expressions such as addition (+), subtraction (–), division
(/), and multiplication (*); logical conjunctions such as AND, OR, and NOT; and
comparisons such as less than (<), greater than (>), less than or equal to (< =),
greater than or equal to (> =), and not equal to (< >).
Example
In the following section of a script, the number of voice contacts waiting for the
sales skillset is compared to the number of agents logged on to that skillset. In
this case, if the number of voice contacts is three times larger than the number of
agents, the caller is sent an announcement stating that heavy call volumes can
delay providing service to the voice contact.
IF (QUEUED COUNT sales_sk) > (3* LOGGED AGENT COUNT sales_sk) THEN
GIVE RAN long_delay_ran_gv
END IF
Skillsets
A skillset is an area of expertise possessed by an agent or a group of agents that
corresponds to a specific contact type. Skillsets match a contact’s specific
requirements with the agents who are best prepared to meet their needs. For
example, if you expect your contact center to receive contacts requesting
information about servicing notebook computers, create a skillset (such as
skillset notebook_service_sk), and assign agents to this skillset who know about
servicing notebook computers.
Scriptwriting process
The following flowchart shows an overview of the scriptwriting process.
Identify and
create any Activate the
needed script
variables
To help plan your scripts, you can create a flowchart or an illustration to outline
the logic of the script (for example, a script tree or web). A flowchart helps you
visualize the sequence of steps that a contact follows after it enters Contact
Center Manager. You can also use a flowchart to determine when you send
treatments to the voice contact and when you can collect data for reporting.
skillsets
number of agents in each skillset
contact center working hours and holidays
IVR queues
call treatments
CLIDs and DNISs
CallPilot and Meridian Mail
Media Application Server (MAS)
Your contact center administrator has this information or, for information about
setting up these resources, see the following documents:
Nortel Contact Center Manager Administrator’s Guide
Contact Center, Communication Server 1000/Meridian 1 and Voice
Processing Guide
Contact Center Manager Administration online help
Create a flowchart
You can create a flowchart that illustrates the call routing and call treatment
process. The flowchart on page 44 shows an example of call routing and call
treatment. The following text explains the call process.
A voice contact arrives at the switch and is sent to Contact Center Manager. The
voice contact moves through the master script and arrives at either the primary or
a secondary script (depending on how the master script is written).
The script first checks to see if agents are available in the requested skillets to
answer the voice contact. If not, the voice contact is disconnected.
The script then checks to see if the voice contact is on the list of VIP voice
contacts. If so, the voice contact is given preferential treatment. If not, a test
determines if there are more than twice as many voice contacts queued as there
are agents logged on to the preferred skillset (skillset A). If so, the caller receives
a busy tone. If there are fewer than twice as many voice contacts queued as there
are agents logged on to skillset A, the voice contact is queued to skillset A.
After the voice contact is queued to skillset A, the script performs conditional
tests and treatments to the voice contact until it is answered.
Are
all skillsets YES Execute Give RAN
out of Disconnect
Night_Treatment closed
service?
NO
Is the
CLID in the YES Execute Queue to skillset A Give RAN
VIP_list Special_Handling with priority 1 special_ran
variable?
NO
YES Give Music
Give Busy Classical
Are
there more
than twice as
many calls as agents
logged in to Execute
Quit
skillset Night_Treatment
A?
NO
NO
Is Is
the call YES the call YES Change priority
Queue to skillset A more than in skillset A to
with priority 3 still in the
queue? 2 minutes priority 1
old?
NO
To see the sample script that this flowchart represents and a detailed explanation
of the call routing process, see “Script example using formatting conventions
and rules” on page 87.
Describe in writing
If you graphically plan the logic of a script and know its intended function, you
can write the script before you create it in the Web Scripts Editor (for
information about the Web Scripts Editor, see “Web Scripts Editor” on page 48).
For information about variables, see “Working with script variables” on page 99.
Compose scripts
To compose a script, you follow a four-part process:
compose the script in the Web Scripts Editor
validate the script
activate the script
test the script
For information about composing scripts, see “Scripting tools and procedures”
on page 47.
Example
The following illustration shows a master script referencing three primary
scripts that direct voice contacts to a common secondary script. In the example,
the three primary scripts (sales_sk, service_sk, and support_sk) define the call
variables delay_cv, skillset_cv, and RAN_cv. The value of the CDN tested in the
master script determines which primary script executes. After the call variables
are defined in the primary script, the secondary script, common, is executed
using the values assigned in the primary script.
Master_Script
...
WHERE CDN EQUALS
VALUE 4162357001: EXECUTE SCRIPT sales_sk
VALUE 4162357002: EXECUTE SCRIPT service_sk
VALUE 4162357003: EXECUTE SCRIPT support_sk
DEFAULT: EXECUTE SCRIPT sales_sk
END WHERE
...
common
...
QUEUE TO SKILLSET skillset_cv
WAIT 2
SECTION loop
WAIT delay_cv
IF NOT QUEUED THEN
EXECUTE jump_out
END IF
GIVE RAN RAN _cv
EXECUTE loop
SECTION jump_out
GIVE RAN sorry_closed_RAN_gv
DISCONNECT
This section describes the tools that you use to view, create, and edit scripts. This
section also describes script states, validation, and activation.
Script Manager
In the Contact Center Manager Administration application, in the Scripting
component, use the Script Manager to list the scripts on the system. From this
window, you can add or remove a script and access the Web Scripts Editor to
change a script.
You can configure validation options so you receive a message about broken
scriptwriting rules automatically after you validate a script, or before you edit
and then reactivate an activated script. You can also configure validation options
to display error messages.
Script states
A script can have one of three states:
Edited
The script is created or edited, and saved, but not validated.
Validated
The script syntax is checked for errors, and the script is ready to be acti-
vated.
Activated
The script is active in the system.
When you finish writing or updating a script in the Web Scripts Editor, you must
validate and activate it before it can process contacts. When you no longer want
the script to process contacts, you can deactivate it. You can also edit and
reactivate a script that is in the Activated state. Revalidation is performed when
you activate the script.
Validation
Before you put a script into service, or activate it, you must ensure that the
syntax and semantics are correct. This process is called validation. If the script
contains no errors, validation produces an executable version of the script. If the
script contains errors, validation produces a list of those errors and the
corresponding lines of the script.
Script validation detects only syntax errors. It cannot detect logic errors.
Activation
An activated script processes contacts. A script must be validated before it is
activated. The system validates a script automatically before it is activated, if
you have not validated the script manually.
Nortel recommends that you avoid activating scripts during busy contact center
periods.
To avoid having to reactivate the master script when you write test scripts, keep a
test CDN and a test primary script activated at all times. Then, edit and change
only the test primary script, not the master script. You can also use other
secondary test scripts. However, Nortel recommends that you make changes
outside busy hours.
Example
The All_Shift script references the Day_Shift, Night_Shift, and Wkend_Shift
scripts. You must validate all secondary scripts before you can activate the
All_Shift script.
Day_Shift
Night_Shift
All_Shift
Wkend_Shift
If an error occurs when the script is activated, the original script is used to
process contacts. You cannot save your changes with the same name as the
currently activated script.
Deactivation
A deactivated script does not process new contacts. If calls already in the system
are using the script when the script is deactivated, the calls are processed by the
script until they are handled by an agent.
Although you cannot deactivate the master script or the network script, you can
change the contents and activate the new version. Validation is performed when
you activate the script.
In this chapter
Overview 56
Script formatting conventions 58
Script naming guidelines 63
Script rules 65
General scriptwriting tips 68
Guidelines for providing feedback 83
Scriptwriting tips for specific commands 86
Script example using formatting conventions and rules 87
Opening the scripting tool 90
Overview
This chapter contains tips to help you plan how to write and organize your
scripts. This chapter includes the following topics:
“Script formatting conventions” on page 58 describes the formatting
conventions. Follow these conventions so your scripts are easy to
understand.
“Script naming guidelines” on page 63 describes the guidelines for naming
scripts.
“Script rules” on page 65 lists the rules that you must follow when you
write scripts. If you do not follow these rules, errors can occur when you
validate your scripts.
“General scriptwriting tips” on page 68 gives recommendations for writing
efficient scripts.
“Guidelines for providing feedback” on page 83 describes the guidelines
for providing feedback within your scripts.
“Scriptwriting tips for specific commands” on page 86 provides tips about
writing and using scripting commands such as GIVE IVR and OPEN/END
VOICE SESSION.
“Script example using formatting conventions and rules” on page 87
provides a sample script that demonstrates formatting conventions and tips.
“Opening the scripting tool” on page 90 provides instructions about
connecting to Contact Center Manager.
Also, all system resources such as RAN routes, music routes, voice ports, call
treatments, DNs, and IVR DNs must be set up and acquired. You do not need to
acquire RAN and music routes. For more information, see the Contact Center -
Manager, Communication Server 1000 and Voice Processing Guide.
Additionally, all agents, skillsets, and thresholds must be created. For more
information, see the Nortel Contact Center Manager Administrator’s Guide.
If you plan to use voice prompts in your scripts, all voice segments must be
created using the Voice Prompt Editor for Meridian Mail and Application
Builder for CallPilot.
For more information about Voice Prompt Editor, see the Nortel Contact Center
Manager Administrator’s Guide. For more information about Application
Builder, see the CallPilot Application Builder Guide.
This section provides formatting conventions for writing scripts. To ensure that
your scripts are easy to read and understand, follow a consistent format.
Commands
Type commands in uppercase letters.
QUEUE TO SKILLSET service_sk
Intrinsics
Type intrinsics in uppercase letters.
IF (AGE OF CALL > 30)
Logical expressions
Type logical operators (And, Not, Or) in uppercase letters.
IF (TIME OF DAY = business_hours_gv)
AND (DAY OF WEEK = business_days_gv) THEN
GIVE RAN open_ran_gv
END IF
Parentheses
Expressions in parentheses are processed before other expressions in a
statement. Ensure that the parentheses in your scripts correctly set the order of
call processing that you want. For information about how parentheses affect
your scripts, see “Order of operations” on page 466.
Section names
Type section names with initial uppercase letters followed by lowercase letters.
SECTION Night_Treatment
Remember that the word SECTION is a command, and what follows is the
section name.
Skillset names
Type skillset names in lowercase letters or in mixed case with the first letter in
uppercase.
sales
or
Sales
Tip: If you follow the skillset name with an underscore and the letters sk (for
example, sales_sk or Sales_sk), you can identify skillsets displayed in the Web
Scripts Editor.
Variables
Type variables in lowercase letters or in mixed case with the first letter in
lowercase.
GIVE RAN closed
or
GIVE RAN openHours
Tip: To identify types of variables in your scripts, include information about the
variable type in its name. For example, you can name a global variable for a
greeting RAN greeting_ran_gv or you can name a call variable for caller-entered
data call_data_cv.
You must use the unique identifier ct_ for contact type variables. For example,
ct_SentMail.
ATTENTION
Comments in your scripts must begin with an opening
marker (/*) and end with a closing marker (*/). If you do
not include both an opening and closing marker, the script
does not validate.
Example
The following example shows the correct use of comments, indenting, and blank
lines between sections:
/* This section of the script queues calls to the general skillset
during regular business hours.*/
IF (DATE = holiday_gv) OR (DAY OF WEEK = weekend_gv) THEN
EXECUTE Night_Treatment
END IF
QUEUE TO SKILLSET general_sk
QUIT
SECTION Night_Treatment
GIVE RAN closed_ran_gv
DISCONNECT
Example
IF (DATE = holidays_gv)
OR (DAY OF WEEK = weekend_gv)
OR (TIME OF DAY = after_hours_gv)
OR OUT OF SERVICE skillset_sk THEN
GIVE RAN closed_ran_gv
DISCONNECT
END IF
SECTION WaitLoop
WAIT loop_time_gv
IF NOT QUEUED THEN
IF OUT OF SERVICE skillset_sk THEN
GIVE RAN sorry_day_closed_ran_gv
DISCONNECT
ELSE
QUEUE TO SKILLSET skillset_sk
WAIT 2
END IF
END IF
EXECUTE WaitLoop
Follow the guidelines in this section when you name new scripts or rename
existing scripts.
The administrator can sort the scripts alphabetically on the real-time displays.
Script rules
This section describes the rules for creating Contact Center Manager scripts. If
you do not follow these rules, you receive errors when you validate the script,
and the call does not receive the treatment you intend.
Most, but not all, of these script element restrictions are detected during script
validation (before the script is activated). However, the validator cannot detect
every possible situation that can cause a problem.
This rule does not apply to multimedia contacts with the exception of the QUIT
command, which causes contacts to be queued to the default skillset for the
contact type.
For information about these commands in SIP-enabled contact centers, see “SIP
Contact Center” on page 675.
Call rejection
If one of the preceding commands is encountered as the first command, the call
is routed to the default ACD-DN configured for the CDN. (The call is not
queued to the default skillset or RAN). Contact Center Manager logs an error to
the alarm monitor and event browser.
This rule applies only if you purchased the Network Skill-Based Routing option.
Lists
For many commands and skillset intrinsics, you can list up to 20 skillsets or
agents. List entries must be separated by commas.
Example
QUEUE TO SKILLSET sales_sk, service_sk, support_sk
Parentheses rule
Parentheses are allowed in script commands to group elements and formulas in
expressions. Each open parenthesis must have a matching closing parenthesis.
Variables rule
When you use a command that changes the value of a variable, that variable
must be defined as a call variable.
The reverse is not true. Each SECTION label does not require an EXECUTE
command to target it.
The following diagrams illustrate two ways in which circular dependencies can
occur. In the first diagram, the circular dependency is created by a secondary
script (script B) referencing a primary script.
Secondary
script A
Secondary
script B
Secondary
script A
Primary script
Secondary
script B
For information about these commands in SIP-enabled contact centers, see “SIP
Contact Center” on page 675.
If you use the WITH PRIORITY option, Nortel recommends that you queue the
contacts to a backup skillset as well, or change the priorities of old contacts
(using the AGE OF CALL/AGE OF CONTACT intrinsics), so they do not stay
in the queue indefinitely.
Agent priorities do not cause contacts to be left in a queue. If you use agent
priority and contacts are waiting to be answered, Contact Center Manager sends
contacts to agents regardless of their priority.
Where is the Contact priority is set or changed in Agent priority is set in the User
value set? the script (by using the QUEUE TO Administration or Agent-to-Skillset
SKILLSET, QUEUE TO AGENT Assignment application on the
WITH PRIORITY, or CHANGE client.
PRIORITY commands) and can
differ for each contact.
Contact- or Contact priority is related only to Agent priority cannot be set or
agent- the contact. It is not related to changed in the script and is not
related? agents. contact-related.
How is Contact priority is used only when Agent priority is used only to
priority no agents are idle at the moment determine an agent’s place in a
used? that the QUEUE TO command queue when the agent becomes idle
executes. Contact priority and other agents are already
determines in which position available. It is not used to determine
Contact Center Manager places the agent selection. A contact is
contact. When an agent becomes presented to the agent at the top of
available, the contact with the the queue. That agent has the
highest priority and longest wait highest priority and the longest idle
time is presented. time of all idle agents within that
skillset.
For more information about setting agent-to-skillset priorities, see the Nortel
Contact Center Manager Administrator’s Guide and the Contact Center
Manager Administration online Help.
Example
In this example, 5555604 is called most often, followed by 5555610 and
5555612.
WHERE DNIS EQUALS
VALUE 5555604: QUEUE TO SKILLSET sales_sk WITH PRIORITY 3
VALUE 5555610: QUEUE TO SKILLSET sales_sk WITH PRIORITY 2
VALUE 5555612: QUEUE TO SKILLSET sales_sk WITH PRIORITY 1
DEFAULT: QUEUE TO SKILLSET sales_sk WITH PRIORITY 4
END WHERE
In this example, if the skillset is out of service, the call executes the loop until
the caller disconnects. The following example shows how to use the out-of-
service condition to prevent this situation.
After queuing a call to an NACD queue, you can use the queued intrinsic to
determine if the NACD queue is valid. Do not use the queued intrinsic within a
loop as the intrinsic always returns a value of True.
Be careful when using the queued intrinsic with NACD as the intrinsic returns a
True value even though the NACD entry is closed. This is because the call is still
considered queued. This can lead to calls remaining in a loop for a long time if
the queued intrinsic is used with NACD queuing. As an alternative, use other
intrinsics like AGE OF CALL.
In some emergency situations (for example, ones that require evacuation), you
may not have time to change the value of the emergency variable before you
leave the contact center. For these situations, use the following procedure.
If you expect this problem, write the script so that it executes the call treatments
(such as GIVE MUSIC or GIVE RINGBACK) before executing the non-call
treatments (such as EXECUTE SCRIPT). Begin a large number of IF tests only
after the caller hears a tone.
For information about other commands in SIP-enabled contact centers, see “SIP
Contact Center” on page 675.
Group IF statements
If your script has many IF statements, consider using a WHERE-EQUALS
statement to group the IF conditions.
Use loops
A loop is a section of a script that is repeated until a call is answered. You can
use a loop to check time intrinsics, such as AGE OF CALL, or to repeat a RAN
(for example, every 30 seconds).
When a voice contact is in a loop, it is important to ensure that the call is still
queued to the skillset and that agents are logged on to the skillset. In regular
script processing (that is, when a call is not in a loop), if the call is not queued
when it reaches the end of the script, Contact Center Manager automatically
checks whether the call is queued. If it is not queued, the call receives default
treatment. In a loop, however, this check is never performed because there are
always commands to run.
Use the OUT OF SERVICE intrinsic rather than LOGGED AGENT COUNT to
test a skillset state. The OUT OF SERVICE intrinsic handles the transition mode
(when the skillset is going out of service, but some agents are still logged on).
The LOGGED AGENT COUNT intrinsic does not handle the transition mode.
Any loop that you create in a script by using the SECTION and EXECUTE
commands must contain a WAIT command.
Example one
QUEUE TO SKILLSET service_sk WITH PRIORITY 3
WAIT 3
/*This section checks to ensure that the call is queued,then
repeats a second recorded announcement after a 30 second pause
until the call is answered.*/
SECTION Play_2nd_RAN
WAIT 30
IF NOT QUEUED THEN
IF NOT OUT OF SERVICE service_sk THEN
QUEUE TO SKILLSET service_sk WITH PRIORITY 1
WAIT 2
ELSE
EXECUTE Help_Me_Now
END IF
END IF
...
is true only if the skillset is checked when the call waits exactly 10 seconds. A
better method is to set a condition by using an operator that targets a range of
time, and place the conditional statement in a loop that is repeated at frequent
intervals, beginning at a time immediately before the time specified in the
condition.
For example,
IF AGE OF CALL > 60 THEN
EXECUTE WaitLoop
END IF
Example two
In this example, the priority of the call does not change until the call waits more
than 2 minutes. The condition AGE OF CALL (in the Check_Age section)
removes the call from the Check_Age loop to the Change_Priority section,
which occurs only after the call waits 2 minutes. The first WAIT statement
delays the script from beginning the loop until the system has time to check
whether an agent is available.
QUEUE TO SKILLSET service_sk WITH PRIORITY 3
WAIT 2
/* This section of the script tests the age of the call every 10
seconds. If the call is in queue longer than 2 minutes, the script
jumps to another section to increase the call’s priority in queue.
It also checks whether the call is queued, and if not, it jumps to
another section.*/
SECTION Check_Age
WAIT 10
IF NOT QUEUED THEN
EXECUTE Help_Me_Now
END IF
IF (AGE OF CALL > 120) THEN
EXECUTE Change_Priority
END IF
EXECUTE Check_Age
SECTION Change_Priority
CHANGE PRIORITY IN SKILLSET service_sk TO PRIORITY 2
WAIT 2
EXECUTE WaitLoop
SECTION Help_Me_Now
Use ranges
Ranges for variables include all numbers in the range, including the start and
end range values. For example, a range of 1 .. 4155552323 includes every CLID
from 1 to 4155552323. The starting and ending values usually have the same
number of digits (for example, 4155552134 .. 4155552688).
For time ranges, the entire minute at the end of the time range is included.
Therefore, the time range 08:00 .. 09:00 is 61 minutes. For a 60-minute period,
use the range 08:00 .. 08:59.
Example
This script uses a section to treat very important calls; otherwise, calls are
queued to the general skillset. If the call is not answered within 30 seconds, the
call receives a message stating that the contact center is closed.
IF (CLID = vip_list_gv) THEN
EXECUTE Vip_Treatment
ELSE
and
the first expression is true for 1 minute, and the second expression is true for 1
hour. A range is easier to read, as in this example:
IF (TIME OF DAY = 08:00 .. 08:59)
Naming restrictions
Variables must have unique names. Do not use keywords, skillset names, or
section labels to name variables.
To avoid errors, define all variables before you write your scripts. If you define a
variable that is not referenced by a script, delete it after you write all the scripts.
For more information about variables, see Chapter 4, “Working with script
variables.”
You can create phantom DNs in the switch, which forward calls to a CDN under
the control of Contact Center Manager. If you want to use phantom DNs to
transfer calls, you must configure a phantom DN for each skillset from which an
agent or IVR transfers calls. These DNs forward calls to one CDN controlled by
Contact Center Manager. You can program these DNs in to speed dial keys on
the agent telephone.
Example
This example shows how to transfer a call by using the DIALED DN intrinsic.
IF CDN = transfer_CDN THEN
IF TRANSFERRED THEN
GIVE RINGBACK
WAIT 20/*Allow time for transferring party to hang up*/
DISCONNECT
ELSE
WHERE DIALED DN EQUALS
VALUE XXXXXXX: EXECUTE SCRIPT ScriptA
VALUE XXXXXXX: EXECUTE SCRIPT ScriptB
VALUE XXXXXXX: EXECUTE SCRIPT ScriptC
DEFAULT: EXECUTE SCRIPT ScriptD
END WHERE
END IF
END IF
Your scripts should provide the user with confirmation that their contact is still
being processed. For voice contacts, provide ringback or other treatments, such
as music or recorded announcements. All other multimedia contacts can use the
auto-acknowledgement features in the multimedia applications. For example,
most e-mail applications can be configured to automatically send a message to
the mail originator if the receiver is not available.
Default treatments
If no other treatment is given for the following commands, ringback is
automatically applied for voice contacts:
QUEUE TO SKILLSET
QUEUE TO AGENT
SEND INFO
SEND REQUEST
LOG
QUEUE TO NACD (available with the Networked Skills Based Routing
feature only)
QUEUE TO NETWORK SKILLSET (available with the Networked Skills
Based Routing feature only)
The voice contact often hears only a burst of ringback in these situations,
depending on the delay—or lack of delay—in providing the next treatment.
Because a script cannot control that delay, it does not completely control the
tones heard by the caller.
Example
This example shows how to give the voice contact a full cycle of ringback before
the next treatment. This method forces a 6-second delay before giving tones to
ensure a more natural-sounding ringback cycle.
QUEUE TO SKILLSET sales_sk
WAIT 6
GIVE MUSIC classical_music_gv
For information about GIVE RAN in SIP-enabled contact centers, see “SIP
Contact Center” on page 675.
For information about GIVE MUSIC in SIP-enabled contact centers, see “GIVE
IVR” on page 679.
For information about other commands in SIP-enabled contact centers, see “SIP
Contact Center” on page 675.
For information about GIVE IVR in SIP-enabled contact centers, see “GIVE
IVR” on page 679.
Example
OPEN VOICE SESSION 4243
PLAY PROMPT VOICE SEGMENT greeting_vs
VOICE SEGMENT enter_acc_num_vs
COLLECT 6 DIGITS INTO acc_num_cv
END VOICE SESSION
The following script example combines many of the tips in this chapter.
Sample script
/* Check to see if both skillsets that can answer calls are out of
service, and disconnect the call if they are. */
IF OUT OF SERVICE general_sk, backup_sk THEN
EXECUTE Night_Treatment
END IF
/* Send VIP calls to be handled in a special way. This is done at
the beginning to ensure that VIP calls are never given a busy
signal. vip_list is a variable. */
IF (CLID = vip_list_gv) THEN
EXECUTE Special_Handling
END IF
/* Check to see if there are already more than twice as many calls
queued as there are agents logged in, and give the call a busy
signal if this is true. */
IF (QUEUED COUNT general_sk) > (2 * LOGGED AGENT COUNT general_sk)
THEN
GIVE BUSY
END IF
/* Queue the call to the general skillset and give an announcement
followed by music. */
QUEUE TO SKILLSET general_sk WITH PRIORITY 3
WAIT 6
GIVE RAN agents_busy_ran_gv
GIVE MUSIC classical_music_gv
/* This section of the script tests the age of the call every 20
seconds. If the call is in queue longer than 2 minutes, the script
jumps to another section that increases the call’s priority in
queue. If the call is not queued, the caller hears a message
informing him or her that the contact center is closed.*/
SECTION Check_Age
/* Check if call still queued - if not, Contact Center is closed
*/
WAIT 20
IF NOT QUEUED THEN
EXECUTE Night_Treatment
END IF
IF (AGE OF CALL > 120) THEN
EXECUTE Raise_Priority
END IF
GIVE RAN agents_still_busy_ran_gv
GIVE MUSIC classical_music_gv
EXECUTE Check_Age
SECTION Raise_Priority
CHANGE PRIORITY IN SKILLSET general_sk TO PRIORITY 1
WAIT 2
QUEUE TO SKILLSET backup_sk WITH PRIORITY 3
WAIT 2
SECTION Keep_RAN_Loop
/* Check if call still queued - if not, contact center is closed
*/
WAIT 20
IF NOT QUEUED THEN
EXECUTE Night_Treatment
END IF
GIVE RAN agents_still_busy_ran_gv
GIVE MUSIC classical_music_gv
EXECUTE Keep_RAN_Loop
Before you can create or edit scripts for Contact Center Manager, you must log
on to the Contact Center Manager through the Contact Center Manager
Administration tool.
Assumptions
This logon procedure is based upon the following assumptions:
The site and systems that you want to access are set up and configured.
For information about setting up sites and systems, see the Contact Center
Manager Server Installation and Maintenance Guide and the Contact
Center Planning and Engineering Guide.
You know the user ID and password to log on to Contact Center Manager.
If you do not know this information, contact your system administrator or
your contact center administrator.
After you log on to the system, you can create a shortcut to reduce the number of
steps involved in the procedure. See “Creating a desktop shortcut” on page 95.
ATTENTION
For Contact Center Manager Administration Scripting to
work correctly, ensure that pop-ups are allowed. If pop-
ups are blocked, interference with scripting can occur.
2 In the Address box, type the URL of the application server. The default
URL is http://<application server name>.
ATTENTION
Do not type the IP address of the application server. If
you type the IP address instead of the URL, you may
experience problems while working the Scripting
component.
5 Click Scripting.
Result: The Contact Center Manager Administration Scripting window
appears.
You can add Contact Center Manager Administration to your Favorites list in
Internet Explorer, or you can create a shortcut to Contact Center Manager
Administration on your desktop.
3 On the server desktop, right-click the desktop, and select New > Shortcut.
4 Right-click the Type the location of the item box, and click Paste.
Result: The URL for Contact Center Manager Administration appears in
the box.
5 Click Next.
Result: The following dialog box appears.
In this chapter
Overview 100
Starting the Script Variables tool 104
Types of variables 106
Creating script variables 109
Checking variables for referencing scripts 117
Changing script variable properties 119
Copying script variables 121
Deleting script variables 128
Printing script variables 131
Overview
Before you create your Contact Center Manager scripts, create the variables you
plan to use for your system. This chapter explains how to create and assign
values to variables, how to change the values assigned to variables, and how to
delete variables.
Example
BestAir Airlines has a global variable named business_hours_gv that is assigned
a value of 08:00 a.m. to 05:00 p.m. BestAir uses this variable in its script as
follows:
IF (TIME OF DAY = business_hours_gv) THEN
GIVE RAN open_ran_gv
END IF
There is no defined limit to the number of global variables that you can create.
The number of global variables that you can create is directly related to the
amount of system memory available.
Non-voice contacts can use only the ASSIGN TO command. The COLLECT
DIGITS and GET RESPONSE commands apply to voice contacts only.
Examples
You can use the ASSIGN TO command in a script to give a value to a variable
for the duration of a contact. The following example assigns the value of the
total number of active voice contacts, divided by the call rate, plus 10, to the
variable int_var.
ASSIGN (TOTAL ACTIVE CALLS / CALL RATE + 10) TO int_var_cv
At BestAir Airlines, voice contacts enter their customer account number.
BestAir uses the COLLECT DIGITS command to gather this information. The
customer account number is stored in a call variable. In this example, when a
voice contact enters a 10-digit account number, the information is stored in the
call variable caller_acct_num_cv. The call variable is of the DN type.
COLLECT 10 DIGITS INTO caller_acct_num_cv
You can create up to 50 call variables. If you attempt to create one more
variable, you receive an error message.
When a contact arrives and executes a master script, the contact starts with an
empty list of call variables. Then, as the contact executes the scripts, each call
variable that it uses is copied into the list of variables for that script.
If the scripts are written so that the original incoming contact accesses some call
variables, and the consultation contact accesses different call variables, when the
transfer is complete (blind transfer only), a single list is created that contains
both the original contact call variables plus the consultative contact call
variables. The original contact starts again at the top of the master script, but this
time with the combined list of call variables. If the same call variable is used by
both the original contact and the consultative contact, the value of the
consultative contact is applied to the variable after the contact is complete. This
process occurs only for blind transfers.
The TFE is the service that executes scripts and determines how all calls are
processed.
Visibility
The wild variables table is not synchronized with the call variables table. When
a call variable becomes a wild variable, Contact Center Manager Administration
displays only the initial value of the variable and not the current value of the
wild variable.
From Contact Center Manager Administration, use the Script Variables window
to list the script variables on the system. From this window, you can create or
delete a script variable. You can also access the Script Variable Properties
window where you can change the values stored within the variable.
You cannot delete script variables while they are referenced by activated scripts.
Tip: You can sort all columns in the Script Variables grid in ascending or
descending order by clicking on the column header.
Example: If you click the column heading Name, the grid is sorted with all
script variable names (and corresponding script variable data) in ascending
order. If you click the Name column heading again, the grid is sorted in
descending order.
Types of variables
The following table lists the types of variables you can create.
Leading
Class zero
Data type allowed allowed Valid value Example
Leading
Class zero
Data type allowed allowed Valid value Example
Leading
Class zero
Data type allowed allowed Valid value Example
Follow the procedure in this section to create script variables in Contact Center
Manager.
Additionally, all agents and skillsets must be created. For more information
about creating agents and skillsets, see the Nortel Contact Center Manager
Administrator’s Guide and the Contact Center Manager Administration online
Help.
Finally, if you plan to create voice segment variables, you must create all of the
voice segments. If you are using Contact Center Voice Services on Meridian
Mail, create the voice segments with the Voice Prompt Editor (refer to the Nortel
Contact Center Manager Administrator’s Guide). If you are using Contact
Center Voice Services on Messaging Server, create your voice segments with
Application Builder (refer to the CallPilot Application Builder Guide).
Tips:
1. When possible, give variables generic names so you can reuse them in
different scripts.
2. To help you identify types of variables when you write and edit your
scripts, include information about the variable type in its name. For
example, name a global variable for a greeting RAN greeting_RAN_gv, or
name a call variable for caller-entered data caller_data_cv.
Adding variables
1 Open the Scripting window.
2 Expand the system tree.
3 Click the appropriate server.
4 Click Script Variables.
Result: The Script Variables window appears.
5 In the left pane, right-click Script Variables and then click New.
Tip: Alternatively, you can right-click a specific variable type to create a
new variable of that type.
Result: The Script Properties and Script Attributes load in the right pane.
6 In the right pane, click Script Variables to minimize the list of script
variables.
7 Click Script Variable Properties to expand the Script Variable Properties
property sheet.
Result: The Script Variable Properties property sheet appears.
c. Repeat step b for each value that you want to add to the set.
Note: You can include up to 100 items in the set.
To assign a range of values to the variable (that is, a set), perform the
following steps.
a. Set the Class option to Set.
b. In the Value box, select the beginning of the range.
c. In the To box, select the end of the range.
Note: The To box appears only if the variable Class is Set and the Type
is Day, Day of Month, or Month.
d. Click Add One or Add Range.
Note: These buttons appear only if the script variable Class is Set and
the Type is Day, Day of Month, or Month, or if there is a predefined list
of values from which to choose.
12 Click Submit.
Result: The script variable is saved.
5 Select the script variable from which you want to remove a value. For
example, select the Agent_ID variable.
7 On the Attribute tab, click the button beside the value you want to remove.
Result: The value is highlighted.
8 Click Remove.
Result: The selected value is removed.
9 Click Submit.
Result: The script variable is saved.
If a script variable is referenced by any active scripts, you cannot change its
properties (except the value) or rename or delete it.
Tip: The Referencing Scripts section lists the names of scripts that
reference this variable.
7 If any activated scripts appear in the list, take one of the following actions:
a. Deactivate the script. For more information, see “Activating and
deactivating scripts” on page 182.
b. Remove the reference to the variable from the referencing script.
8 Click Save to close the Script Variable Properties property page.
Follow this procedure to change the properties of a script variable. You cannot
change the class of a script variable—you can change only the value. For more
information, see “Checking variables for referencing scripts” on page 117.
You cannot change the variable name or group type. If you want to change the
name or group type, you must delete the variable and create it again.
Follow this procedure to copy the properties of a script variable to create a new
script variable.
Copying variables
1 Open the Scripting window.
2 Expand the system tree.
3 Click the appropriate server.
4 Click Script Variables.
Result: The Script Variables window appears.
5 Right-click the script variable that you want to copy, and select Copy.
Result: The script variable is copied. The script variable properties are
reset, so you can add new data to the copied variable.
6 In the right pane, minimize Script Variables.
11 Click Submit.
Result: The copied variable is saved.
5 From the Script Variables grid, select the row for the script variable you
want to copy, and right-click the row.
6 Select Copy.
Result: The script variable is copied. The script variable properties are
reset so you can add new data to the copied variable.
You cannot delete a script variable if it is referenced by any active scripts. For
more information, see “Checking variables for referencing scripts” on page 117.
Deleting variables
1 Open the Scripting window.
2 Expand the system tree.
3 Click the appropriate server.
4 Click Script Variables.
Result: The Script Variables window appears.
5 Right-click the script variable that you want to delete.
6 Select Delete.
Result: The Confirm Delete message box appears.
6 Select Delete.
Result: The script variable is deleted.
Follow these procedures to print script variables. You can write script variables
to a file, or you can be send them to a printer.
Result: The Print Report dialog box appears. In the Select Printer section,
all printers mapped to your local computer are displayed.
6 Select Print.
Result: The script variable is be sent to the default printer that is mapped to
your local computer.
Tip: To see the script variable before printing, choose Print Preview. This
opens the Crystal Reports viewer. From here, can you proceed with
printing. See “Printing script variable to a printer,” on page 135.
In this chapter
Overview 140
Section A: Creating and editing scripts 141
Section B: Importing and exporting scripts 167
Section C: Administering scripts 175
Overview
This chapter provides details about how to create, import, export, and administer
scripts in the Contact Center Manager Administration scripting environment.
Section B, “Importing and exporting scripts,” explains how to import and export
scripts, including the sample scripts that are provided with Contact Center
Manager Administration.
In this section
Creating new scripts 142
Editing scripts 150
Adding script elements to scripts 152
Saving changes to scripts 156
Opening Web Scripts Editor in a new window 158
Using text find and replace 162
Using character count 165
5 In the right pane, enter the text of the new script. You can add items such as
commands, variables, and intrinsics manually, or you can use the Script
Command Reference panel. For more information, see “Adding script
elements to scripts” on page 152.
6 Choose File > Save.
7 In the Confirm box, click Yes to save the script.
8 In the New Script Name box, type the name of the new script. For further
information about naming scripts, see “Naming guidelines” on page 145.
9 Click OK.
Result: The new script is created.
Naming guidelines
Use the following guidelines when naming scripts:
Script names are not case-sensitive; however, the first character in each
script name must be a letter.
The name you assign to a new script must be unique. You cannot enter the
name of an existing script.
If the script is referenced from the master script, the name given to the
script becomes the application name, and it appears on real-time displays
and historical reports.
You must also consider customer requirements when you view the
applications. Does the customer want all relevant applications for each
department to appear together? If so, the applications must be in
alphabetical order.
The use of prefixes to indicate contact type is optional. However, if the
prefixes are not used, all application statistics in historical reporting are
considered voice statistics if they are filtered by the variable ContactType in
the Report Creation Wizard. Nortel recommends the following naming
prefixes for contact type:
OB_ for outbound
3 From the Web Scripts Editor menu, click View > On/Off Toolbar.
Result: The toolbar closes. The Web Scripts Editor is now maximized.
Tip: To show the hidden screen components, expand the Open Tree arrow
and the Open Bottom button.
4 Click View > On/Off Toolbar to show the Web Scripts Editor toolbar.
Editing scripts
Editing a script
1 Open the Scripting window.
2 Expand the system tree.
3 Click the appropriate server.
4 Click Script Manager.
Result: The Script Manager appears in the right pane of the Scripting
window.
5 Double-click the script that you want to edit.
Result: The Web Scripts Editor appears.
You can enter text manually, or you can insert elements using the Script
Command Reference panel. For further information about the Script
Command Reference panel, see “Adding script elements to scripts,” on
page 152.
Tip: Nortel recommends that you do not change scripts directly in the Web
Scripts Editor. Instead, copy the text of the script, paste it into Notepad, and
make your changes in Notepad to prevents loss of data should an error
occur on the server before you can save your changes.
7 Choose File > Save to save your changes.
Script limits
Single scripts cannot exceed 50 000 characters. If you reach 50 000 characters in
a single script, an error message appears.
Use the Script Command pane to add commands, intrinsics, variables, events,
operators, and other elements to your script.
In the Script Command pane, all parameters that you must replace are
automatically inserted to help to reduce errors in your scripts.
Script elements
You can insert all of the following types of script elements from the Script
Command pane.
Commands
Basic commands include basic call processing elements, general elements, and
voice processing elements. For more information about these commands, see
“Basic script commands” on page 193.
Advanced commands
Advanced commands include basic call processing elements, general elements,
host connectivity elements, and voice processing elements. For more
information about these commands, see “Advanced script commands” on page
245.
ATTENTION
Contact Center 6.0 Networked Voice Agents is required to
support networking commands.
Intrinsics
Intrinsics include skillset, time, traffic, and call intrinsics. For more information
about intrinsics, see “Intrinsics” on page 343.
Variables
Variables include global variables and call variables. For more information, see
“Working with script variables” on page 99.
Events
Events are unsolicited events or failed responses that you can instruct the Event
Handler to check for. For more information, see “EVENT HANDLER” on page
247.
Operators
Operators include logical, mathematical, and relational operators. For more
information, see “Script expressions” on page 455.
8 Click the folder for the element type that you want to use. In this example,
the user selected the Commands folder.
Result: The folder expands to show the various elements of the basic
commands.
You can make changes to a script while it is activated. You can then choose to
activate the script with the changes immediately, or you can save the script
without immediately implementing the changes. There are two ways to save a
script that is currently activated:
If you want to put the script into service immediately after making changes,
activate the script.
If you do not want to put the script into service immediately after making
changes, save the script using a different name.
When you activate a change to a script (under the existing name of the script),
calls in progress are processed using the old version of the script, and new calls
are processed using the new version of the script.
If the activation fails (because of a compilation error), the change to the script is
not saved. New calls still use the old version of the script.
You can open the Script Manager, the Script Variables window, and the Web
Scripts Editor as new browser windows in the same session. You can open the
Web Scripts Editor for many scripts so you can work on more than one script at
a time.
4 In the Script Manager grid, right-click the highlighted script, and click Open.
Result: The Web Scripts Editor appears in a new browser window and
displays the script.
5 From the Scripting window, click the Script Variables tree item.
Result: The Script Variables window appears in the right pane.
Tip: The Script Manager, Script Variables, and Web Scripts Editor all
appear in separate browser windows.
In the Web Scripts Editor, you can find text elements in scripts and, if required,
replace script text.
6 Click Replace to replace the Find what text with the Replace with text.
Tip: To replace all of the found Find what values with the Replace with
value, click Replace All.
The Web Scripts Editor can count the number of characters in a script. This
helps you ensure that the maximum character count for a script is not exceeded.
In this section
Importing scripts into Contact Center Manager 168
Exporting scripts to a remote location 170
Import command
Use the Import command to copy an existing script from your local hard drive, a
network drive, or a floppy disk into the current script. This command adds the
text of the imported script to text in the current script.
You cannot import a script that was created in another application, such as
Microsoft Word, because formatting characters may not properly import into the
Web Scripts Editor. However, if you create a text document that you want to use
as a script, you can copy the text into a script in the Web Scripts Editor.
Importing scripts
1 Open the Scripting window.
2 Expand the system tree.
3 Click the appropriate server.
4 Click Script Manager.
Result: The Script Manager appears in the right pane of the Scripting
window.
5 Double-click the script into which you want to import another script.
Tip: If you want to import the script into a new script, right-click Script
Manager, and select New.
Result: The Web Scripts Editor appears.
Export command
The Export command writes the currently opened script to a file on your local
hard drive with the file extension .s.
ATTENTION
If there is already a script in this location with the same
name as the exported script, the exported script overwrites
it.
7 In the File name box, type the name of the new script file.
8 Click Save.
Result: A copy of the script is placed in the location you specified.
.
If there are already scripts in this location with the same names as
the exported scripts, the exported scripts overwrite them.
Exporting the current script and all of its subscripts to a new file
1 Open the Scripting window.
2 Expand the system tree.
3 Click the appropriate server.
4 Click Script Manager.
Result: The Script Manager appears in the right pane of the Scripting
window.
In this section
Validating scripts 176
Activating and deactivating scripts 182
Deactivating scripts with circular dependencies 186
Renaming scripts 188
Deleting scripts 190
Validating scripts
Follow the procedure in this section to validate a script. If you want to save a
script without validating it (for example, you plan to continue working on it
later), see “Saving changes to scripts” on page 156.
You can save a script without validating it. However, you cannot activate the
script if it is not validated.
If you create a new script or modify an existing non-active script, you must
validate the script manually before it can be activated. If you are working with
an active script, you must save changes by activating the new version of the
script. The activation process validates the script automatically.
The system attempts to activate all referenced scripts when a script is activated.
However, the referenced scripts are not validated automatically. You must
validate each referenced script separately before you activate the script.
Validating scripts
1 Open the Scripting window.
2 Expand the system tree.
3 Click the appropriate server.
Example
This example demonstrates how to interpret script error messages.
If you validate the script again, the request is successful—no errors occur.
For a complete list of validation errors and what they mean, see “Validation
errors” on page 565.
If you create a new script or modify an existing non-active script, you must
validate the script manually before it can be activated. If you are working with
an active script, you must save changes by activating the new version of the
script. The activation process validates the script automatically.
The system attempts to activate all referenced scripts when a script is activated.
However, the referenced scripts are not validated automatically. You must
validate each referenced script separately before you activate the script.
Example
One of the BestAir scripts, the All_Shift script, references the Days, Nights, and
Wkends scripts. The All_Shift script is the primary script, and the others are
secondary scripts. Before activating the primary script, BestAir’s system
administrator must validate the secondary scripts.
You can deactivate a script only if it is not referenced by other active scripts.
You cannot deactivate the master script or the network script. However, you can
change the contents and activate the new version.
Activating scripts
1 Open the Scripting window.
2 Expand the system tree in the Scripting window.
3 Click the appropriate server.
and change only the test primary script, not the master script. You can also
use other secondary test scripts. However, it is still advisable to make
changes outside busy hours.
Deactivating scripts
1 Open the Scripting window.
2 Expand the system tree.
3 Click the appropriate server.
4 Click Script Manager.
Result: The Script Manager appears in the right pane of the Scripting
window.
5 Double-click the file you want to deactivate.
Result: The Web Scripts Editor appears.
6 Choose File > Deactivate.
Example
The following illustration shows how a circular dependency is created when two
scripts reference each other.
For example, if you want to deactivate secondary script A, you must first delete
the reference to secondary script A from the primary script and from secondary
script B. Then you can deactivate secondary script A.
Renaming scripts
You can rename a script in either the Script Manager or the Web Scripts Editor.
Contact Center Manager does not create a copy of the existing script with the old
name. Ensure that you meet the following requirements when you rename a
script:
Deactivate the script. For more information, see “Deactivating scripts” on
page 185.
Give the script a unique name. You cannot enter the name of an existing
script. Spaces are not allowed in script names.
Renaming scripts
1 Open the Scripting window.
2 Expand the system tree.
3 Click the appropriate server.
4 Click Script Manager.
Result: The Script Manager appears in the right pane of the Scripting
window.
5 Choose one of the following options:
a. To rename the script in the Script Manager, right-click the script you
want to rename and choose Rename.
b. To rename the script in the Web Scripts Editor, open the script and
choose File > Rename.
Result: Rename Confirmation message appears.
6 Click Yes.
Result: The Rename Script dialog box appears prompting you for the new
name of the script.
Deleting scripts
Follow the procedure in this section to remove a script from the system.
Deleting scripts
1 Open the Scripting window.
2 Expand the system tree in the Scripting window.
3 Click the appropriate server.
4 Click Script Manager.
Result: The Script Manager appears in the right-hand pane of the Scripting
window.
5 Right-click the script that you want to delete, and choose Delete.
When you delete a script, you delete the script, but not the referenced
variables. If no other scripts use the referenced variables, you can delete
them to save space on the server. For more information, see “Deleting
script variables” on page 128.
In this chapter
Overview 194
Section A: Basic general commands 195
Section B: Basic contact processing commands 209
Overview
This chapter describes the basic script commands to which all Contact Center
Manager systems have access. This chapter shows how to write the commands
in your scripts (script syntax) and the parameters and optional segments that
make up the commands.
Section A, “Basic general commands,” describes the general commands that you
can use in your scripts. These include commands such as IF-THEN-ELSE-END
IF, EXECUTE, and QUIT. All commands in this section apply to both voice and
multimedia contacts.
All examples in this chapter demonstrate basic script commands using voice
contacts only. Commands, such as GIVE RAN or GIVE MUSIC, do not apply
for multimedia contacts.
For information about the GIVE MUSIC or GIVE RAN and other commands in
SIP-enabled contact centers, see “SIP Contact Center” on page 675.
In this section
ASSIGN TO 196
EXECUTE 198
EXECUTE SCRIPT 199
IF-THEN-END IF 200
IF-THEN-ELSE-END IF 201
QUIT 203
SECTION 205
WAIT 206
ASSIGN TO
Use the ASSIGN TO command in your scripts to assign values to call variables.
For more information about call variables, see “Working with script variables”
on page 99.
Syntax change
The syntax of the ASSIGN TO command is different from previous product
releases. Now you can use the ASSIGN TO command in a voice session.
You can still use the old syntax, Assigned, in Contact Center Manager scripts.
Script syntax
ASSIGN <value> TO <variable>
Parameters
Enter information for the following parameters:
<variable> The name of the call variable to which you want to assign a
value when a script executes. You can use call variables of only type Item.
<value> The value that you want to assign to the call variable. Replace this
parameter with an item or with an expression.
Examples
Example 1
The following command assigns a value of 10 to the variable int_var_cv.
ASSIGN 10 TO int_var_cv
Example 2
The following example assigns the value of the total number of active calls,
divided by the call rate, plus 10 to the variable int_var_cv.
Example 3
The following example causes the section Loop to repeat three times.
ASSIGN 0 TO counter_cv
SECTION Loop
WAIT 30
GIVE RAN all_agents_busy_ran_gv
IF (counter_cv = 3) THEN
EXECUTE SCRIPT Finished
END IF
ASSIGN counter_cv + 1 TO counter_cv
EXECUTE Loop
EXECUTE
After the specific section executes, the script continues executing to the end of
the script or until it encounters a QUIT command. The script does not return to
the section of the script from which it was executed.
Script syntax
EXECUTE <section_label>
Parameter
Enter information for the following parameter:
<section_label> The name of the section that you want to execute.
Example
In this example, if the number of calls queued to the sales skillset exceeds 20,
the section named Estimate_wait_section runs. Otherwise, the caller hears music
until the call is answered.
IF (QUEUED COUNT sales_sk > 20) THEN
EXECUTE Estimate_Wait_Section
ELSE
GIVE MUSIC pop_music_gv
QUIT
END IF
SECTION Estimate_Wait_Section
...
EXECUTE SCRIPT
Use the EXECUTE SCRIPT command to branch from one script to another.
The call branches to the referenced script and does not return at the end of the
referenced script.
Script syntax
EXECUTE SCRIPT <Script_Name>
Parameter
Enter information for the following parameter:
<Script_Name> The name of the script that you want to run.
Example
In this example, the EXECUTE SCRIPT command runs different scripts
depending on the day and time that a call comes in to the contact center.
IF (DAY OF WEEK = weekend_gv) THEN
EXECUTE SCRIPT Script_B
END IF
IF (DAY OF WEEK = business_days_gv)
AND (TIME OF DAY = business_hours_gv) THEN
EXECUTE SCRIPT Script_C
END IF
IF-THEN-END IF
Script syntax
IF <logical_condition> THEN <statements> END IF
Parameters
Enter information for the following parameters:
<logical_condition> The condition for which you want the script to test.
<statements> The action that you want the script to take if the condition is
met.
Example
In this example, calls whose CLID is included in the vip_list variable receive
special treatment, including a recorded announcement, and are queued to the
preferred customer skillset with high priority.
IF (CLID = vip_list_gv) THEN
GIVE RAN special_callers_ran_gv
QUEUE TO SKILLSET preferred_cust_sk WITH PRIORITY 1
WAIT 2
GIVE MUSIC classical_music_gv
END IF
IF-THEN-ELSE-END IF
Script syntax
IF <logical_condition> THEN <statement1> ELSE <statement2> END IF
Parameters
Enter information for the following parameters:
<logical_condition> The condition for which you want the script to test.
<statement1> The action that you want the script to take if the condition is
met.
<statement2> The action that you want the script to take if the condition is
not met.
Examples
Example 1
The following script example checks the CLID of the call. If the CLID is 905-
863-3123 the call is queued to the customer service skillset with a priority of 1.
This caller also hears a special announcement. Otherwise, the call is queued with
a priority of 3 and the caller hears a different announcement.
IF (CLID = 9058633123) THEN
QUEUE TO SKILLSET customer_service_sk WITH PRIORITY 1
WAIT 2
Example 2
The following example shows how you can use an IF-THEN-END IF command
within an IF-THEN-ELSE-END IF command. You must have an END IF
command for each IF command.
QUIT
The QUIT command is necessary only when the execution of a script must end
while commands still remain to run in the script.
Script syntax
QUIT
When to use
Use the QUIT command to terminate further script execution.
This command does not disconnect the call. For example, if the call is already
queued to a skillset, the call remains queued and continues to receive whatever
tones, silence, or music were specified for the call earlier in the script. QUIT
ends only the script execution, not call processing.
Restriction
The QUIT command cannot be the first command in a script.
Example
In this example, the script checks whether the customer service skillset is out of
service. If the skillset is out of service, the script jumps to the closed section.
Otherwise, the script continues to queue the call to customer service with a
priority of 1. After 2 seconds, the caller hears a recorded announcement and then
music. The QUIT command after the GIVE MUSIC command prevents the
script from continuing on to the closed section.
IF OUT OF SERVICE customer_service_sk THEN
EXECUTE Closed
END IF
QUEUE TO SKILLSET customer_service_sk WITH PRIORITY 1
WAIT 2
GIVE RAN sevice_ran_gv
GIVE MUSIC classical_music_gv
QUIT
SECTION Closed
GIVE RAN closed_ran_gv
DISCONNECT
SECTION
Script syntax
SECTION <section_name>
Parameter
Enter information for the following parameter:
<section_name> The name of the section.
Example
The following example uses a SECTION command with an EXECUTE
command to create a simple loop. The call is sent to a section which requeues
the call if the call is not queued, thereby moving the call out of the Wait_Loop
section.
SECTION Wait_Loop
WAIT wait_delay_gv
IF NOT QUEUED THEN
EXECUTE Requeue_Call
END IF
GIVE RAN please_wait_ran_gv
EXECUTE Wait_Loop
SECTION Requeue_Call
/* script continues here */
WAIT
Use the WAIT command to suspend a script for a period before executing the
next script command. Nortel recommends that you run a WAIT command of at
least 2 seconds after queuing a call to a skillset or to an agent. The 2-second
pause provides time for the call to be answered by the agent before the command
is executed.
You enter the WAIT time in seconds format. If you enter a WAIT time of 0, the
system resets the value to 2 seconds. Zero is the only value that receives special
handling. The system uses timers when processing calls in a WAIT state.
Therefore, the WAIT time is accurate to +/– 1 second.
For example, if you specify a WAIT time of 5 seconds, the WAIT time can be
anywhere between 4 and 6 seconds.
Script syntax
WAIT <time_in_seconds>
Parameter
Enter information for the following parameter:
<time_in_seconds> The amount of time, in seconds, that you want the
script to pause.
Replace this parameter with a variable of type seconds or with a numerical
constant.
Restriction
The WAIT command cannot be the first command given to a voice contact. If a
WAIT command is the first command applied to a call, the voice contact is
rejected and given default treatment.
Example
In this example, calls are queued to the sales skillset. After a 2-second delay,
callers hear a recorded announcement asking them to wait.
QUEUE TO SKILLSET sales_sk
WAIT 2
GIVE RAN please_wait_ran_gv
If a call arrives and agents are available in Sales_Sk, then the Application
Report shows an Average Delay of at least 6 to 8 seconds, depending on the
timing queue, and the Skillset Report shows 0 to 2 seconds.
Nortel recommends that you qualify the GIVE RINGBACK command as shown
in the following script so that only transferred calls are affected by the WAIT
statement—new calls are not affected.
IF TRANSFERRED THEN
GIVE RINGBACK
WAIT 6
END IF
IF CND = test_cdn THEN
EXECUTE Sales_App
END IF
In this section
CHANGE PRIORITY IN AGENT 210
CHANGE PRIORITY IN SKILLSET 214
DISCONNECT 216
GIVE BUSY 217
GIVE MUSIC 219
GIVE OVERFLOW 221
GIVE RAN 223
GIVE RINGBACK 225
GIVE SILENCE 227
QUEUE TO AGENT 229
QUEUE TO SKILLSET 232
REMOVE FROM AGENT 237
REMOVE FROM SKILLSET 239
ROUTE CALL 241
You can use the CHANGE PRIORITY IN AGENT command to change the
priority of a call in an agent’s queue only when the call was queued by the
QUEUE TO AGENT command. You cannot use it to change the priority of a
call that was queued using the QUEUE TO SKILLSET command.
Script syntax
CHANGE PRIORITY IN AGENT [<agent_ID> | <agent_ID_list>] TO
PRIORITY <priority>
Parameters
Enter information for the following parameters:
<agent_ID> or <agent_id_list> The ID of the agent to whom the call is
queued, or a list of IDs of agents to whom the call is queued.
<priority> The new priority with which you want the call queued to the
specified agent.
Restriction
This command applies to all voice and multimedia contacts.
Voice example
In the following voice example, a call is queued to an agent variable named
agent_1 (representing an agent named Joe Smith) with a priority of 5 when it
first arrives. After 20 seconds, if the call is still unanswered, the priority changes
to 2, and after 60 seconds, the priority of the call increases to 1.
When you replace a specific agent with an agent variable, you do not need to
modify your scripts if the agent leaves the contact center and is replaced by
another agent.
ASSIGN 5 TO priority_cv
QUEUE TO AGENT agent_1 WITH PRIORITY priority_cv
WAIT 5
SECTION Check_Age
GIVE RAN agent_busy
WAIT 20
IF (AGE OF CALL > 120) THEN
EXECUTE Too_Long
ELSE
IF (AGE OF CALL > 60) THEN
IF (priority_cv <> 1) THEN
ASSIGN 1 TO priority_cv
CHANGE PRIORITY IN AGENT agent_1 TO
PRIORITY priority_cv
END IF
ELSE
IF (AGE OF CALL > 20) THEN
IF (priority_cv <> 2) THEN
ASSIGN 2 TO priority_cv
CHANGE PRIORITY IN AGENT agent_1
TO PRIORITY priority_cv
END IF
END IF
END IF
END IF
EXECUTE Check_Age
Multimedia example
In this example, a contact is queued to an agent variable named
contact_agent_cv (representing an agent named Joe Smith) with a priority of 5
when the contact first arrives into the contact center. After 120 seconds, if the
call is unanswered, the priority of the contact is increased to 2. After 300
seconds, if the call is unanswered, the priority of the contact is increased to 1.
ASSIGN CONTACT DATA "%AGENT%AGENT" TO contact_agent_cv
ASSIGN CONTACT DATA "%PRIORITY%PRIORITY" TO contact_priority_cv
QUEUE TO AGENT contact_agent_cv WITH PRIORITY contact_priority_cv
WAIT 10
SECTION Check_Age
WAIT 20
IF (AGE OF CALL > 600) THEN
EXECUTE Too_Long
ELSE
IF (AGE OF CALL > 300) THEN
IF (contact_priority_cv <> 1) THEN
ASSIGN 1 TO contact_priority_cv
CHANGE PRIORITY IN AGENT contact_agent_cv
TO PRIORITY contact_priority_cv
END IF
ELSE
IF (AGE OF CALL > 120) THEN
Script syntax
CHANGE PRIORITY IN SKILLSET [<skillset> | <skillset_list>] TO
PRIORITY <priority>
Parameters
Enter information for the following parameters:
<skillset> or <skillset_list> The skillset, or list of skillsets, to which the
call is queued. You can also replace this parameter with a variable returning
a skillset or a skillset list.
<priority> The new priority with which you want the call queued to the
specified skillset.
Restrictions
This command applies to all voice and multimedia contacts.
Example
In this example, the call is queued to the sales skillset. This section of the script
tests the current position of the call in the skillset queue. If it is more than 5, the
priority is raised to priority 1 (unless it is already priority 1).
QUEUE TO SKILLSET sales_sk
WAIT 2
IF (POSITION IN QUEUE sales_sk > 5)
AND (PRIORITY IN QUEUE sales_sk <> 1) THEN
CHANGE PRIORITY IN SKILLSET sales_sk TO PRIORITY 1
END IF
DISCONNECT
Script syntax
DISCONNECT
Restrictions
This command applies to all voice and multimedia contacts but, for script
efficiency, Nortel recommends that multimedia contacts be held in the script
even if a skillset goes out of service or if an agent logs off. If the DISCONNECT
command is used for multimedia contacts, it triggers the Contact Center
Multimedia to immediately resubmit the contact to the script.
Nortel recommends that you keep the contact in the script instead of
disconnecting the contact and repeating the task of presenting the multimedia
contact to the script several times.
Example
In this example, calls coming in to the contact center between August 10 and
August 23 (represented by a variable named august_holidays_gv) receive a
recorded announcement stating that the contact center is closed. Then the call is
disconnected.
IF (DATE = august_holidays_gv) THEN
GIVE RAN gone_fishing_ran_gv
DISCONNECT
END IF
GIVE BUSY
Use the GIVE BUSY command to provide a busy tone to a call before it is
disconnected by the switch. A call can receive a busy tone any time that it is in
the CDN queue, except when it is presented to, or answered by, an agent.
First treatment
This treatment must be the first treatment that the call receives; otherwise, for
some trunk types, the switch does not disconnect the call automatically after
giving the busy tone, which can cause trunks to stay connected until the user
disconnects the call.
Because some statements give an automatic ringback tone, you must analyze the
script carefully to ensure that these commands do not execute before the GIVE
BUSY command. Issuing the ringback tone after GIVE BUSY command
ensures that the busy tone is always the first treatment given to the call. For
more information about commands that automatically generate a ringback
treatment, see “Default treatments” on page 84.
Script syntax
GIVE BUSY {CONTROLLED}
Optional
The CONTROLLED keyword is optional for this command.
CONTROLLED keyword
By default, after the GIVE BUSY command is executed, the call is no longer
under the control of Contact Center Manager. However, if you use the
CONTROLLED keyword, the call remains in the control of Contact Center
Manager, which means that if an error condition occurs on the switch (cannot
give the tone to the call, for example), the call is returned to the queue so that it
can be further treated by the system.
Nortel highly recommends that you use the CONTROLLED keyword with this
command.
Restrictions
This command applies to voice contacts only.
Do not use this command in the network script (if you purchased the NSBR
feature).
Example
GIVE BUSY CONTROLLED
/* call reaches here only if above command fails */
GIVE RAN no_service_available_ran_gv
DISCONNECT
GIVE MUSIC
Use the GIVE MUSIC command to play music from a specified music route to a
call that is waiting in a queue.
You can define different music routes and apply them to the GIVE MUSIC
command. You can specify these routes for different locations to further
personalize the application for the user.
For information about GIVE MUSIC in SIP-enabled contact centers, see “RAN
and MUSIC routes” on page 705.
Script syntax
GIVE MUSIC <music_route>
Parameter
Enter information for the following parameter:
<music_route> The music route that contains the music you want to play
to the call.
Replace this parameter with a variable of type music or a numeric constant.
Restrictions
This command applies to voice contacts only.
For information about these commands in SIP-enabled contact centers, see “SIP
Contact Center” on page 675.
WAIT command
Use a WAIT command immediately after the GIVE MUSIC command to
control the duration of the music. If a call is given music followed by a GIVE
RAN command, the music resumes after the RAN is finished.
For information about the GIVE RAN command in SIP-enabled contact centers,
see “SIP Contact Center” on page 675.
For information about other commands in SIP-enabled contact centers, see “SIP
Contact Center” on page 675.
Examples
Example 1
In this example, a call is queued to the service skillset, and after a 2-second
delay, the caller hears music until an agent becomes available to take the call. In
this example, the music route is represented by a variable (pop_music).
QUEUE TO SKILLSET service_sk WITH PRIORITY 3
WAIT 2
GIVE MUSIC pop_music_gv
WAIT 30
Example 2
This example shows how the GIVE MUSIC command is used in the Event
Handler. EVENT HANDLER is an advanced command. For more information,
see “EVENT HANDLER” on page 247.
EVENT HANDLER
EVENT CALL ON HOLD: GIVE MUSIC classical_music_gv
END HANDLER
GIVE OVERFLOW
First treatment
This treatment must be the first treatment that the call receives; otherwise, for
some trunk types, the call is not disconnected automatically by the switch after
the busy tone. This can cause trunks to remain connected until the user
disconnects the call.
Because some statements give an automatic ringback tone, you must analyze the
script carefully to ensure that these commands are not executed before the GIVE
OVERFLOW command. Issuing the ringback tone after the GIVE OVERFLOW
command ensures that the overflow tone is always the first treatment given to the
call. For more information about commands that automatically generate a
ringback treatment, see “Default treatments” on page 84.
Script syntax
GIVE OVERFLOW {CONTROLLED}
Optional
The CONTROLLED keyword is optional in this command.
CONTROLLED keyword
By default, after this command is executed, the call is no longer under the
control of Contact Center Manager. However, if you use the CONTROLLED
keyword, the call remains in the control of Contact Center Manager. Using the
CONTROLLED keyword means that if an error condition occurs on the switch
(cannot give the tone to the user, for example), the call is returned to the queue
so that it can be further treated by the system.
Restrictions
This command applies to voice contacts only.
Do not use this command in the network script (if you purchased the NSBR
feature).
Example
The following script provides an overflow tone to a call. If the CS1000/Meridian
1 fails the command, the call is returned to the script and is disconnected.
GIVE OVERFLOW CONTROLLED
DISCONNECT /* if CS1000/M1 fails the command */
GIVE RAN
For information about GIVE RAN in SIP-enabled contact centers, see “SIP
Contact Center” on page 675.
Script syntax
GIVE RAN <ran_route>
Parameter
Enter information for the following parameter:
<ran_route> The RAN route that contains the recorded announcement
(RAN) that you want to play to the call.
Replace this parameter with a variable of type “RAN,” or with the route
number.
Restrictions
This command applies to voice contacts only.
Automatic ringback
If the GIVE RAN command is the first treatment in the script, and there is a
delay before the RAN is available, then the call hears ringback until the
announcement plays.
Example
In this example, calls entering the contact center between 05:00 p.m. and 08:00
a.m. hear a recorded announcement telling them that the contact center is closed.
IF (TIME OF DAY = closed_hours_gv) THEN
GIVE RAN closed_ran_gv
DISCONNECT
END IF
GIVE RINGBACK
Use the GIVE RINGBACK command to provide a ringback tone to a caller (that
is, to play a ringing sound to the caller).
You can use this command with the WAIT command if you want to control the
duration of the ringback tone. Use this command before a call is queued against
one or more destinations (that is, to skillsets or agents). If a call is queued by the
script without a specific treatment given first, then ringback is automatically
applied by Contact Center Manager (while the call is queued). For more
information about which commands give an automatic ringback tone, see
“Consider what the user experiences” on page 83.
Script syntax
GIVE RINGBACK
Restrictions
This command applies to voice contacts only.
Example
In this example, the user hears a ringback tone if the call is transferred.
IF TRANSFERRED THEN
GIVE RINGBACK
WAIT 6
/* Allows time for the transferring party to complete
the transfer */
END IF
GIVE SILENCE
Use the GIVE SILENCE command to provide silence to a call. GIVE SILENCE
is generally used to turn off either music or ringback. If a call is given music
followed by a RAN, the music automatically resumes after the RAN or
treatment is completed. Therefore, if you want silence after a RAN, use the
GIVE SILENCE command.
For information about GIVE SILENCE in SIP-enabled contact centers, see “SIP
Contact Center” on page 675.
This command cannot be the first treatment given to a call. Therefore, it cannot
be the first command in a script.
ATTENTION
The GIVE SILENCE command can potentially be the first
treatment for a call even if it is not the first command in the
script. This can happen, for example, if an IF-THEN-ELSE
or WHERE-EQUALS command leads to a GIVE SILENCE.
In that case, you receive an error, and the call is rejected and
routed to the default ACD-DN of the CDN as described in
“First command rule” on page 65.
Script syntax
GIVE SILENCE
Restriction
This command applies to voice contacts only.
Example
In this example, calls are queued to the service skillset. The user hears music for
30 seconds and a recorded announcement states that the agents are busy. The
GIVE SILENCE command prevents the music from resuming after the recorded
announcement.
QUEUE TO SKILLSET service_sk
GIVE MUSIC pop_music_gv
WAIT 30
GIVE SILENCE
GIVE RAN agents_busy_ran_gv
QUEUE TO AGENT
Use the QUEUE TO AGENT command to deliver a call to a local agent. This
command provides agent-based routing capability.
Use LONGEST IDLE AGENT only if you are sure that an idle agent is
available. If no idle agents are available, Contact Center Manager does not run
the QUEUE TO AGENT command.
Parameters
Enter information for the following parameters:
<agent_id> or <agent_id_list> The ID of the agent, or the list of agent IDs,
to which you want the call queued.
<priority> The priority with which you want the call queued to the
specified agent.
<skillset> or <skillset_list> The skillset, or list of skillsets, from which the
longest idle agent is taken.
Restrictions
This command applies to all voice and multimedia contacts.
Examples
Example 1
In this example, a variable named french_callers_gv contains a list of CLIDs
that identify some of the BestAir French-speaking clients. When a call from a
French-speaking client enters the contact center, it is first queued to an agent
(represented by the agent variable agent_fr_5) with a priority of 5. If the call is
not answered, it is then queued to an agent (represented by the agent variable
agent_fr_8) with a priority of 1. If the call is not answered within 4 seconds, it is
queued to a skillset named backup_french_sk with a priority of 5.
IF (CLID = french_callers_gv) THEN
QUEUE TO AGENT agent_fr_5 WITH PRIORITY 5
WAIT 2
QUEUE TO AGENT agent_fr_8 WITH PRIORITY 1
WAIT 4
QUEUE TO SKILLSET backup_french_sk WITH PRIORITY 5
WAIT 2
END IF
Example 2
In this example, if the number of idle agents in both the sales skillset and the
service skillset is greater than zero, the call is queued to the agent who is idle for
the longest time in either the sales skillset or the service skillset.
IF (IDLE AGENT COUNT sales_sk > 0)
AND (IDLE AGENT COUNT service_sk > 0) THEN
QUEUE TO AGENT LONGEST IDLE AGENT sales_sk, service_sk
WAIT 2
END IF
QUEUE TO SKILLSET
Use the QUEUE TO SKILLSET command to queue calls locally at the Contact
Center Manager site. Local calls can be queued against local and network
skillsets, provided that local agents are assigned to the network skillsets. Locally
queued calls can only be answered by local agents. The calls can be queued
according to how many agents are logged on to the skillsets or by the length of
time the agents are idle at the skillsets.
Script syntax
QUEUE TO SKILLSET [<skillset> | <list_of_skillsets>] {WITH PRIORITY
<priority>}
Optional
The WITH PRIORITY segment is optional.
Parameters
Enter information for the following parameters:
<skillset> or <list_of_skillsets> The skillset, or list of skillsets, to which
you want the call queued.
<priority> The priority with which you want the call queued to the
specified skillset.
Restrictions
This command applies to all voice and multimedia contacts.
Skillset lists
You can queue calls to up to 20 local skillsets simultaneously. You can queue to
more than one skillset either by specifying all of the skillsets to which you want
calls queued in a single QUEUE TO SKILLSET command or by using a
separate QUEUE TO SKILLSET command for each skillset.
Logging out
Reserve/Unreserve
When no idle agents are available, the BY LONGEST IDLE AGENT option has
no effect on queuing. The system queues the call to all skillsets listed in the
command, and the next available agent is presented with the call.
The priority of the idle agents for the skillsets takes precedence over the Agent
Preference setting, which means that the system always routes the call to the
highest priority agent, regardless of the Agent Preference setting.
If you do not choose the BY LONGEST IDLE AGENT option, then the call is
presented to the longest idle agent since the last status change. In addition, when
you choose multiple skillsets, the system randomly queries the skillset (the order
in which the skillsets are checked varies from call to call), and the call is
presented to the longest idle agent for that skillset.
Examples
Example 1
In this example, the script checks whether the number of idle agents in the sales
skillset is greater than 0. If so, the call is queued to the sales skillset with the
default priority of 6 because no priority is specified.
IF (IDLE AGENT COUNT sales_sk > 0) THEN
QUEUE TO SKILLSET sales_sk
WAIT 2 /*Allow time for the call to be queued*/
END IF
Example 2
In this example, the skillset with the most logged-on agents (either the service
skillset or the support skillset) is assigned to the variable named skillset_cv. The
call is then queued to skillset_cv.
ASSIGN MOST LOGGED AGENTS service_sk, support_sk TO skillset_cv
QUEUE TO SKILLSET skillset_cv
WAIT 2
Example 3
In this example, the script checks whether the number of idle agents in the
service skillset is greater than the number of idle agents in the support skillset. If
so, the call is queued to the service skillset. Otherwise, it is queued to the
support skillset.
IF (IDLE AGENT COUNT service_sk > IDLE AGENT COUNT support_sk)
THEN
QUEUE TO SKILLSET service_sk
ELSE
Use the REMOVE FROM AGENT command to remove a call from the
specified agent. This command applies to local agents only. Use this command
if a call must be answered within a specific duration. If the call is still queued
after this amount of time passes, the call can be retrieved and requeued.
You can use the REMOVE FROM AGENT command to remove a queued call
from an agent’s queue by using the QUEUE TO AGENT command. This
command cannot be used to remove a call that was queued to an agent by using a
QUEUE TO SKILLSET command.
Script syntax
REMOVE FROM AGENT [<agent_ID> | <agent_ID_list>]
Restriction
This command applies to all voice and multimedia contacts.
Parameter
Enter information for the following parameter:
<agent_ID> or <agent_ID_list> The ID of the agent from which you want
the call removed. This parameter can be replaced with a single agent ID or
a list of agent IDs.
Example
A call is queued to agent variable agent_2 with a priority of 2 when it first
arrives. If, after 60 seconds, the call is not answered, it is removed from the
agent and is queued to the sales skillset.
QUEUE TO agent_2 WITH PRIORITY 2
WAIT 2
SECTION Check_Age
WAIT 20
GIVE RAN agent_busy_ran_gv
IF (AGE OF CALL > 60) THEN
REMOVE FROM AGENT agent_2
WAIT 2 /* avoid race condition */
QUEUE TO SKILLSET sales_sk WITH PRIORITY 1
WAIT 2
EXECUTE WaitLoop
END IF
EXECUTE Check_Age
Use the REMOVE FROM SKILLSET command to remove a queued call from
the skillset or skillsets. This command applies only to local skillsets.
Script syntax
REMOVE FROM SKILLSET [<skillset> | <list_of_skillsets>]
Restriction
This command applies to all voice and multimedia contacts.
Parameter
Enter information for the following parameter:
<skillset> or <list_of_skillsets> The skillset, or list of skillsets, from
which you want the call removed.
Example
A call is queued to the sales skillset. If, after 60 seconds, the call is not
answered, the script determines which skillset has the most idle agents. If the
service skillset has more idle agents, the call is removed from the sales skillset
and is queued to the service skillset.
QUEUE TO SKILLSET sales_sk
WAIT 2
GIVE RAN agents_busy_ran_gv
SECTION Check_Age
WAIT 20
IF (AGE OF CALL > 60) THEN
IF (IDLE AGENT COUNT service_sk >= 1) THEN
REMOVE FROM SKILLSET sales_sk
ROUTE CALL
Use the ROUTE CALL command to send a call to a destination specified by the
parameter.
Script syntax
ROUTE CALL [<dn> | DEFAULT DN] {CONTROLLED}
Optional
The CONTROLLED keyword is optional.
Parameter
Enter information for the following parameter:
<dn> The directory number (DN) to which you want the call routed.
You can replace this parameter with a dialable number, internal or external,
such as an ACD-DN or a personal DN. The only exception is you cannot
use Vacant Number Routing (VNR) with the ROUTE CALL command.
Restrictions
This command applies to voice contacts only.
Default DN
If you specify the default DN, the call is sent to the default ACD-DN configured
on the switch for the CDN from which the call entered the system.
CONTROLLED keyword
By default, after a call is routed, it is no longer under the control of Contact
Center Manager. However, if you use the CONTROLLED keyword, the call
remains in the control of Contact Center Manager. If an error occurs, such as an
invalid or busy destination, the call is returned to the queue so that it can be
further treated by the system.
Examples
Example 1
In this example, if the day is a holiday or a Saturday or Sunday, or outside of
business hours, the call is routed to another site in the contact center.
IF (DATE = holiday_gv)
OR (DAY OF WEEK = weekend_gv)
OR (TIME OF DAY = after_hours_gv) THEN
ROUTE CALL other_site
END IF
Example 2
This example routes the call to the default DN.
GIVE RINGBACK
ROUTE CALL DEFAULT DN
Example 3
This example uses the CONTROLLED option to play a message, and then
disconnect the call if the ROUTE CALL command is not successful.
ROUTE CALL other_site CONTROLLED
/*If the call is routed successfully, then this is the end of this
script. */
/* This section is reached only if the controlled route call
fails. */
GIVE RAN sorry_not_possible_ran_gv
DISCONNECT
In this chapter
Overview 246
EVENT HANDLER 247
LOG 253
READVAR and SAVEVAR 255
WHERE-EQUALS 261
Overview
This chapter describes the advanced script commands that you can use if you
purchased the Nortel Contact Center Manager application software package.
This chapter shows how to write the commands in your scripts (script syntax)
and the parameters and optional segments that make up the commands.
EVENT HANDLER
Use the Event Handler to give the script instructions to manage certain
conditions that can occur during a call, such as abandonment of the call or RAN
response failure.
In the case of unsolicited events, the script execution does not return to the body
of the script after it processes the events within the Event Handler. In the case of
failed treatment responses, the script execution normally returns to the next
statement in the main body of the script after the treatment command that failed,
unless you use the EXECUTE SCRIPT or EXECUTE command. The
EXECUTE SCRIPT command branches to another script, and the EXECUTE
command branches to a section within the same script.
The Event Handler is optional and applies only to the script in which it resides.
Also, if it is present, there is no need to list all events. Use only the events
required for your system.
The script continues to monitor the call after it is answered by an agent. If the
agent puts the call on hold, for example, the Event Handler can play music to the
caller.
First command
The Event Handler, if included in a script, must be the first command in the
script.
Script syntax
EVENT HANDLER
...
END HANDLER
Restriction
This command applies to voice contacts only.
Parameters
Enter information for the following parameters:
<event_a>, <event_b>, <event_c> The events that you want the Event
Handler to address.
<statements> The action that you want the script to take if the event
occurs.
Unsolicited events
Use the following unsolicited events to replace the event parameters in the Event
Handler:
Call On Hold
Call Abandon
Tip: You can use the Event Handler to override the default music route. For
example, you may not want to play advertisements to callers who are waiting for
an agent to become available. However, you can use the Event Handler to play
advertisements to callers who are put on hold after an agent answers their call.
Failed responses
Use the following failed responses to replace the event parameters in the Event
Handler:
RAN Response Fail
IVR Response Fail
Broadcast Announcement Response Fail
After the failed response is addressed, the execution of the script leaves the
Event Handler and returns to its original place in the script. The script executes
the command that is immediately after the treatment command that failed.
Alternatively, you can run another script when a failed response occurs. For
example, if the Event Handler detects a RAN response failure, it can run a script
that uses IVR sessions instead of RANs. Also, you can run another section
within the same script rather than returning to the original place in the script.
Tip: If you use the Event Handler to play an announcement or message when a
response failure occurs, use as general a message as possible. The Event Handler
cannot distinguish which RAN, IVR session, or broadcast announcement failed,
so the message you play to users when a failure occurs should not replace a
specific message. If you must determine which commands failed, you can use a
call variable. Set the variable to a specific value before each treatment
command, and then test this value in the Event Handler to determine which
commands failed.
If Meridian Mail or CallPilot are used for the IVR, the EVENT IVR
RESPONSE FAIL command can trap the failed scenarios.
Use only the following commands with the Call Abandon event:
IF-THEN-END-IF
IF-THEN-ELSE-END-IF
QUIT
WAIT
LOG
SEND INFO
After the failed response is addressed, the execution of the script leaves the
Event Handler and returns to its original place in the script. The command that is
immediately after the failed treatment command is executed.
Example
In this example, Call On Hold and RAN Response Fail are defined in the Event
Handler. When a call is put on hold, the user hears music. If the script receives a
RAN Response Fail, the event is logged in the Script Log file. The call then
leaves the Event Handler and returns to the script.
EVENT HANDLER
EVENT CALL ON HOLD: GIVE MUSIC pop_music_gv
EVENT RAN RESPONSE FAIL: LOG "first RAN failed"
END HANDLER
QUEUE TO SKILLSET skillset_sk
WAIT 3
GIVE RAN please_wait_ran_gv
If error_ran_gv is an invalid RAN route, the first command in the script, GIVE
RAN error_ran_gv, starts the Event Handler. However, the same invalid route is
called in the Event Handler. To avoid an infinite loop, Contact Center Manager
does not repeat the treatment. Instead, Contact Center Manager continues to
process the script. In this example, the call is queued to the skillset
customer_service_sk.
To avoid an infinite loop between two response failures, all response failures are
ignored if they occur when the Event Handler processes a response fail event.
However, the unsolicited events ON HOLD and Call Abandon are accepted and
processed if they occur when the Event Handler processes a response fail event.
LOG
Use the LOG command to log a message to the Event Browser. This command
is typically used for script testing only, because it can slow response time if
executed for every call in a high-traffic contact center.
For more information about the Event Browser, see the Nortel Contact Center
Manager Administrator’s Guide.
By default, messages are logged to the Event Browser with the severity level of
information. When searching for messages, search for event code 48467 in the
Event Browser.
ATTENTION
Do not use the LOG command for normal call processing.
New events overwrite old events in the log file. Events
logged by this command can reduce the amount of historical
data in the log file.
Nortel recommends that you use the LOG command only in the following
situations:
in test scripts to which only a few calls are made
to identify errors. For example, you can define a boolean expression in your
script that, by default, is set to False. To troubleshoot, set the Boolean
expression to True. The following is an example of the LOG command:
IF debug THEN
LOG "message"
END IF
Script syntax
LOG <“msg_character_string”>
Parameter
Enter information for the following parameter:
<“msg_character_string”> The text of the message entry as you want it to
appear in the script log file.
You must use quotation marks around the text of the message entry, or use a
variable of type string without quotation marks.
Limitations
The LOG command is shown as an event in the Event Browser up to 10 times.
After this, the event is not visible because the throttling feature prevents
reoccurring events from filling up the Event Browser log. The default setting for
the throttling threshold is 3. The throttling feature is reset every hour, after
which the event is visible again. For more information about the event throttling
utility, see the Installation and Maintenance Guide.
Restriction
Do not insert the GIVE BUSY or GIVE OVERFLOW command immediately
after the LOG command.
Example
In this example, if the script receives a RAN response failure, the event is logged
in the Event Browser log.
EVENT HANDLER
EVENT CALL ON HOLD: GIVE MUSIC pop_music_gv
EVENT RAN RESPONSE FAIL: LOG "RAN failed in Master"
END HANDLER
Use the READVAR and SAVEVAR commands to enable a call to change the
value of a variable and pass the updated value to other calls.
READVAR
READVAR uses an existing integer call variable as a parameter, and then reads
the current value of the call variable from the Wild Variable table. If the value
does not exist in the Wild Variable table, READVAR reads the value from the
Call Variable table.
SAVEVAR
SAVEVAR saves the current value of the call variable to the Wild Variables
table.
You can use only the following commands between a READVAR and
SAVEVAR block:
ASSIGN
LOG
IF-THEN-ELSE-END IF
Operational rules
The script compiler enforces the following operational rules:
The parameter sent to the READVAR command is valid.
Commands within the block are permissible.
Examples
Example 1
In this example, the global call variable sends every tenth call to a survey or
routes the call.
READVAR wv_survey_cv
IF wv_survey_cv < 10 THEN
ASSIGN wv_survey_cv +1 TO wv_survey_cv
ELSE
ASSIGN 0 TO wv_survey_cv
END IF
SAVEVAR
IF wv_survey_cv = 0 THEN
ROUTE CALL survey_dn
ELSE
QUEUE TO SKILLSET Sales
WAIT 2
END IF
Example 2
This example illustrates simple load sharing across a network by routing
alternate calls to a network skillset. The first call queues locally. The next call
queues to the network, the third call queues locally, and so on.
READVAR wv_alternate_cv
IF wv_alternate_cv = 1 THEN
ASSIGN 0 TO wv_alternate_cv
ELSE
IF wv_alternate_cv = 0 THEN
ASSIGN 1 TO wv_alternate_cv
END IF
END IF
SAVEVAR
IF wv_alternate_cv = 1 THEN
QUEUE TO SKILLSET Sales
WAIT 2
ELSE
QUEUE TO NETWORK SKILLSET Sales
WAIT 4
END IF
Calls that enter a script where there is a READVAR/SAVEVAR block use the
value set in the wild variable table only when the call itself enters the
READVAR/SAVEVAR block. If you write the script so the call does not enter
the block, the call then assumes the default value from the script variable as
assigned in OAM, or the value assigned to it through the script commands.
Example 3
The following example shows how one call changes the value stored in the wild
variable table, and the other call reads that value and acts on it.
IF DNIS = emergency_act_number THEN
/* Call who sets the emergency state */
READVAR wild2_wv
IF wild2_cv = 0 THEN
ASSIGN 1 TO wild2_wv /* emergency is activated */
ELSE
ASSIGN 0 TO wild2_wv /* emergency is deactivated */
END IF
SAVEVAR
END IF
/* All incoming calls hit this portion of the script to check the
variable state */
READVAR wild2_wv
SAVEVAR
IF wild2_wv = 1 THEN /* If emergency state is enabled */
GIVE RAN emerg_ran
DISCONNECT
END IF
QUEUE TO SKILLSET sales_sk
WAIT 2
QUIT
As you can see in the preceding example, every call checks the value of the wild
variable to validate the emergency state. If the state is true, then the script plays
the emergency RAN message and disconnects the call.
Example 4
If the call enters the READVAR portion of the script, you cannot use the variable
in any other form (for example, as a call variable) unless the script has an
ASSIGN TO statement, as shown in this example.
IF DNIS = emergency_act_num THEN
/* Calls who sets the emergency state */
READVAR wild2_wv
IF wild2_wv = 0 THEN
ASSIGN 1 TO wild2_wv /* emergency is activated */
ELSE
As expected, when the emergency state is off, the call encounters the IF
statement. The variable assignment overwrites the wild variable table value for
this call, and the call is routed to DN 6911. When the call with DNIS
emergency_act_num dials in, the state is switched and the subsequent call then
hears the emergency announcement before being disconnected.
Example 5
The following example shows a script section where the value of the variable is
assigned within the script. Only this call sees the assigned value and cannot
change the value for any other call entering this script.
ASSIGN 0 TO wild2_wv
SECTION WaitLoop
WAIT 10
/* call are only be given ran every third time around
the loop */
IF wild2_wv < 3 THEN
ASSIGN wild2_cv + 1 TO wild2_wv
ELSE
GIVE RAN second_ran
ASSIGN 0 TO wild2_wv
END IF
EXECUTE WaitLoop
WHERE-EQUALS
Use the WHERE-EQUALS command to test for a condition that can have more
than one result. You can use this command, for example, to replace several IF-
THEN-ELSE commands that check for the same condition. The parameter
value_expr (the condition for which you are testing) is evaluated first, and then
different statements are executed, depending on the value of the parameter.
Possible results include advancing to another command, running another script,
or terminating the execution of the script. Use the DEFAULT clause, which is
optional, to specify a command to use when none of the results are possible.
After finishing the statements in the applicable VALUE clause, the script leaves
the WHERE-EQUALS command and continues executing the next command
after the END WHERE command (unless the statements transfer the call to
another script).
Script syntax
WHERE <value_expr> EQUALS
DEFAULT: <statements>
END WHERE
Parameters
Enter information for the following parameters:
<value_expr> The expression that you want the script to evaluate. You can
replace this parameter with an item, an intrinsic (such as CDN, DNIS, or
CLID), or a formula. If you use a variable in this parameter, it must be of
type Item.
<value_1>, <value_2>, <value_3> The values for the expression that you
want the script to address. Replace these parameters with an item, a list, or
a range.
<statements> The action that you want the script to take if the expression
is equal to the specified value.
Limitations
The number of value clauses is unlimited; however, for effective script
execution, Nortel recommends that you do not use more than 50 value clauses,
and that you break value clauses into groups where possible.
Example
This example demonstrates how to break value clauses into groups.
IF (NPA = west_coast_gv) THEN
WHERE CLID EQUALS
VALUE wc_dist1: EXECUTE SCRIPT WCoast1_Sales
VALUE wc_dist2: EXECUTE SCRIPT WCoast2_Sales
VALUE wc_dist3: EXECUTE SCRIPT WCoast3_Sales
...
END WHERE
ELSE
IF (NPA = east_coast_gv) THEN
WHERE CLID EQUALS
VALUE ec_dist1: EXECUTE SCRIPT ECoast1_Sales
VALUE ec_dist2: EXECUTE SCRIPT ECoast2_Sales
VALUE ec_dist3: EXECUTE SCRIPT ECoast3_Sales
...
END WHERE
ELSE
ROUTE CALL DEFAULT DN
END IF
END IF
Using variables
If you use a variable name for the <value_expr> parameter in a WHERE-
EQUALS command, the class of the variable must be Item. However, if you use
a variable name for the <value _1/2/3> parameter in value statements, the
variable class can be either Item or Set.
Nortel recommends that you replace constant ranges of values (or comma-
separated lists) with Set class variables because they are easy to modify. For
example, to represent winter months, you can use the following value statement:
WHERE MONTH OF YEAR EQUALS
VALUE Jan .. Mar: GIVE RAN winter_months_gv
...
However, Nortel recommends that you use a Set class variable instead:
WHERE MONTH OF YEAR EQUALS
VALUE winter_gv: GIVE RAN winter_months_gv
...
where winter_gv is a variable of MONTH OF YEAR type and Set class that
contains the value of January .. March.
where sales_cdn_gv is a variable of CDN type and Set class that contains
multiple CDN values (ranges and lists).
Examples
Example 1
In this example, callers hear different recorded announcements depending on the
month in which they call the contact center.
WHERE MONTH OF YEAR EQUALS
VALUE JANUARY: GIVE RAN winter_specials_ran_gv
VALUE APRIL: GIVE RAN spring_specials_ran_gv
VALUE JULY: GIVE RAN summer_specials_ran_gv
VALUE SEPTEMBER: GIVE RAN fall_specials_ran_gv
DEFAULT: GIVE RAN default_ran_gv
END WHERE
Example 2
In this example, the script uses the WHERE-EQUALS statement to direct calls
to the appropriate script, depending on the CDN of the call.
WHERE CDN EQUALS
VALUE 5553500: EXECUTE SCRIPT Automotive
VALUE 5553600: EXECUTE SCRIPT Electronics
VALUE 5553700: EXECUTE SCRIPT Sporting_Goods
VALUE 5553800: EXECUTE SCRIPT Kitchen_Ware
DEFAULT: GIVE RAN lost_ran_gv
END WHERE
Example 3
In this example, the script uses a nested WHERE-EQUALS statement to direct
calls to the appropriate scripts, depending on the month and the CDN of the call.
WHERE MONTH OF YEAR EQUALS
VALUE DECEMBER:
WHERE CDN EQUALS
VALUE 5553500:
GIVE RAN winter_special_automotive_ran_gv
VALUE 5553600:
GIVE RAN winter_special_electronics_ran_gv
VALUE 5553700:
GIVE RAN winter_special_sporting_ran_gv
VALUE 5553800:
GIVE RAN winter_special_kitchen_ran_gv
DEFAULT:
GIVE RAN winter_special_general_ran_gv
END WHERE
VALUE APRIL:
GIVE RAN spring_specials_general_ran_gv
VALUE JULY:
GIVE RAN summer_specials_general_ran_gv
VALUE SEPTEMBER:
GIVE RAN fall_specials_general_ran_gv
DEFAULT:
GIVE RAN default_general_ran_gv
END WHERE
Networking commands
In this chapter
Overview 268
Section A: Network ACD routing 277
Section B: Network Skill-Based Routing 285
Overview
If your Contact Center Manager system has the Network Skill-Based Routing
(NSBR) option, calls can be sent from one contact center to another. When a call
is sent between sites through the network, the call is processed by the network
script at the target site only if the call returns to the queue.
If a site has a local skillset with the same name as a network skillset, the server
converts the local skillset to a network skillset. Any agents assigned to the local
skillset remain assigned to the network skillset. The existing scripts continue to
function as before (that is, the QUEUE TO SKILLSET command continues to
queue calls locally), and other sites can queue calls to the skillset. However,
unless you modify your scripts to include the network skillset, calls for that
skillset that arrive at your site cannot be queued to any other site.
To use NSBR, you must modify your existing scripts when a network skillset is
propagated to your site. You can write your scripts to route calls to both the local
skillset (QUEUE TO SKILLSET) and the network skillset (QUEUE TO
NETWORK SKILLSET).
If Local Node Inclusion (LNI) is defined for the network skillset, then only the
QUEUE TO NETWORK SKILLSET command is required. Calls are
automatically queued to both the local and target sites.
Consider the order in which calls are queued to local and network skillsets.
Often, it is more efficient to first queue a call locally, and then wait a specific
amount of time before queuing to a network skillset. If a local agent is available
and qualified to handle the call, the call is immediately presented to the agent.
Beginning with Symposium Contact Center Server 5.0, you can select the Local
Node Inclusion (LNI) option for the QUEUE TO NETWORK SKILLSET
command. Using this option with the network skillset, you can queue both local
and network agents. Therefore, if you use this option, you do not need to queue
to the local skillset first, and then to the network skillset. You need to queue only
to the network skillset.
The Local Node Inclusion (LNI) option is available for the Agent Reservation
methods when defining the network skillset as shown in the following table.
Agent priority takes precedence over agent idle time in any network routing
decision.
You can configure idle time in the nodal client Global Settings by using any of
the following definitions:
Idle time since login
Last state change
Last call
Example 1
This example shows a call queued to a network skillset with the include local
node option selected. The call is queued to local and network agents at the same
time.
QUEUE TO NETWORK SKILLSET NetworkSales
WAIT 6 /* depends on configuration of nodal request wait timer */
If the administrator at the NCC deletes the network skillset, the network skillset
at your site is converted to a local skillset and agents remain assigned to the local
skillset. If you write your scripts to queue to both the local and network skillsets,
calls queue to the local skillset. However, if agents for the local skillset are not
available and the call is queued to the network skillset, the QUEUE TO
NETWORK SKILLSET command fails.
Example 2
This example shows a call queued to a network skillset with the include local
node option not selected.
QUEUE TO SKILLSET Sales_sk
WAIT 2
QUEUE TO NETWORK SKILLSET Sales_sk
WAIT 6
Example 3
This example shows how to queue to multiple skillsets. All skillsets listed in the
queue request must have the same routing configuration.
QUEUE TO NETWORK SKILLSET NetworkSales, NetworkSupport
WAIT 6
Limitations
A Release 6.0 network supports nodes from Releases 5.0 and 6.0 if the NCC is
Release 6.0 or later.
For more information about limitations on multiple skillsets, see the Network
Control Center Administrator's Guide.
For more information about these commands, see “ROUTE CALL” on page
241, “QUEUE TO NACD” on page 281, and “QUEUE TO NETWORK
SKILLSET” on page 288.
The following examples show how to use the QUEUED and PRIORITY IN
QUEUE intrinsics in your scripts.
Example 1
This example uses the QUEUED intrinsic.
QUEUE TO NETWORK SKILLSET sales_sk, service_sk
WAIT 4
/* If the call is not queued to either of these skillsets, NACD
routes the call */
IF NOT QUEUED THEN
QUEUE TO NACD nacd_queue
END IF
Example 2
This example uses the PRIORITY IN NETWORK QUEUE intrinsic.
QUEUE TO NETWORK SKILLSET sales_sk
WAIT 4
/* If the call is not queued to this skillset, NACD routes the
call */
IF (PRIORITY IN NETWORK QUEUE sales_sk = 0) THEN
QUEUE TO NACD nacd_queue
END IF
Because calls are not networked to a contact center until an agent is reserved, the
calls do not need to be queued. The target script must treat a network call with
commands that handle the call only if the call returns to queue and if default call
handling is not desired.
Subscripts for the network script do not generate call statistics. Therefore, the
network script is the only script from which incoming call statistics are
collected.
ATTENTION
If any command in this section is used in either the network
script or any of the subscripts it can call, your server can
stop responding or call execution can stop. You must ensure
that none of the scripts called by the network script (either
primary or secondary) include any of the commands listed
in this section.
These commands are rejected during script validation. When a call enters the
network and the agent becomes unavailable, the network script is executed. If
the network script executes a subscript that contains any of these commands and
the commands run, further script execution stops, the call remains in a queue,
and the call continues to experience previous treatments.
However, because a call is networked, it already has ringback. You do not need
to use GIVE BUSY or OVERFLOW to treat to these calls.
For information about these commands in SIP-enabled contact centers, see “SIP
Contact Center” on page 675.
In this section
CHANGE PRIORITY IN NACD 278
QUEUE TO NACD 281
REMOVE FROM NACD 283
Script syntax
CHANGE PRIORITY IN NACD <acd_dn> TO PRIORITY <priority>
Parameters
Enter information for the following parameters:
<acd_dn> The number of the ACD-DN to which the call is queued. This
parameter must be a single ACD-DN or, if you use a variable, an ACD type
variable.
<priority> The new priority with which you want the call queued to the
specified ACD-DN.
Restrictions
The following restrictions apply to this command:
The CHANGE PRIORITY IN NACD command cannot be the first
command in a voice script.
Do not use this command in the network script (if you purchased the NSBR
feature) or any of its subscripts.
Example
In this example, if the age of the call queued to the NACD queue is greater than
60 seconds, the priority of the call increases from 3 to 1.
IF (AGE OF CALL > 60) THEN
CHANGE PRIORITY IN NACD nacd_queue TO PRIORITY 1
END IF
4500 63434500 0
63444500 16
63454500 20
In this example, when you use the QUEUE TO NACD command, the call is
queued to 63434500 immediately, to 63444500 after 16 seconds, and to
63454500 after 20 seconds.
When you issue the CHANGE PRIORITY IN NACD command, the priority
changes only for those target sites to which the call is not yet queued.
Example
QUEUE TO NACD nacd_queue WITH PRIORITY 4
WAIT 10
CHANGE PRIORITY IN NACD nacd_queue TO PRIORITY 2
WAIT 2
In this example, the call is queued to the local ACD-DN, which has three target
sites. After 10 seconds, the command to change the priority of the call in the
NACD queues executes. Because of the timer, the call is already queued to the
first target site. Therefore, the priority of the call at this site does not change.
The call is not yet queued to the second and third sites, however, so the priority
for these target sites does change.
63444500 16 Priority 2
QUEUE TO NACD
If the network routing command fails, you can use the QUEUE TO NACD
command to ensure the call is routed to the appropriate site.
Use the QUEUE TO NACD command to queue a call to one or more remote
target ACD-DNs that are defined in the NACD routing table for the specified
ACD-DN in the command.
With this command, calls are queued on the remote switch rather than on
Contact Center Manager. You can use Contact Center Manager to:
remove calls from the queue
add calls to the queue
change the priority of the NACD call
provide treatments such as music, RAN, IVR, and broadcast
announcements for calls
Script syntax
QUEUE TO NACD <acd_dn> {WITH PRIORITY <priority>}
Optional
The WITH PRIORITY segment is optional.
Parameters
Enter information for the following parameters:
<acd_dn> The number of the ACD-DN to which you want the call queued.
This parameter must be a single ACD-DN or, if you use a variable, an ACD
type variable.
<priority> The priority with which you want the call queued to the
specified ACD-DN.
Restrictions
The following restrictions apply to this command:
The WITH PRIORITY option applies to voice contacts only.
Do not insert the GIVE BUSY or GIVE OVERFLOW command
immediately after the QUEUE TO NACD command.
Use a WAIT command with at least 2 seconds after a QUEUE TO NACD
command.
Do not use this command in the network script (if you purchased the
Network Skill-Based Routing feature) or any of its subscripts.
Example
In this example, a call is queued locally to the sales skillset and to an NACD.
QUEUE TO SKILLSET sales_sk
WAIT 6
QUEUE TO NACD nacd_queue
Add a brief pause between the QUEUE TO SKILLSET and QUEUE TO NACD
commands. This pause can prevent an error if an agent from the local skillset
becomes unavailable before the call is answered. If this happens, the QUEUE
TO NACD command fails because Contact Center Manager cannot queue to
NACD while presenting a call to a local agent.
Use the REMOVE FROM NACD command to remove a call from the ACD-DN
to which the call is queued. The call is then removed from all targets in the
NACD table for that ACD-DN.
Script syntax
REMOVE FROM NACD <acd_dn>
Parameter
Enter information for the following parameter:
<acd_dn> The number of the ACD-DN from which you want the call
removed. This parameter must be a single ACD-DN or, if you use a
variable, it must be an ACD type variable.
Restrictions
The following restrictions apply to this command:
The REMOVE FROM NACD command cannot be the first command in a
voice script.
Do not use this command in the network script (if you purchased the NSBR
feature) or any of its subscripts.
Example
A call is queued to an NACD queue when it first arrives. If, after 60 seconds, the
call is not answered, it is removed from the NACD and queued to local sales and
service skillsets.
QUEUE TO NACD nacd_queue
WAIT 2
GIVE MUSIC pop_music_gv
SECTION Check_Age
WAIT 20
IF (AGE OF CALL > 60) THEN
EXECUTE Get_Out
END IF
EXECUTE Check_Age
SECTION Get_Out
REMOVE FROM NACD nacd_queue
QUEUE TO SKILLSET sales_sk, service_sk
WAIT 2
In this section
CHANGE PRIORITY IN NETWORK SKILLSET 286
QUEUE TO NETWORK SKILLSET 288
REMOVE FROM NETWORK SKILLSET 290
Script syntax
CHANGE PRIORITY IN NETWORK SKILLSET [<network_skillset> |
<network_skillset_list>] TO PRIORITY <priority>
Parameters
Enter information for the following parameters:
<network_skillset> or <network_skillset_list> The network skillset, or
list of network skillsets, to which the call is queued.
<priority> The new priority with which you want the call queued to the
specified network skillset.
Restrictions
The following restrictions apply to this command:
The CHANGE PRIORITY IN NETWORK SKILLSET command cannot
be the first command in a script.
Do not use this command in the network script (if you purchased the
Network Skill-Based Routing feature) or any of its subscripts.
Do not insert the GIVE BUSY or GIVE OVERFLOW command
immediately after the QUEUE TO NETWORK SKILLSET command.
Currently, this applies only to voice contacts.
Use a WAIT command with at least 4 seconds after a QUEUE TO
NETWORK SKILLSET command.
The amount of time given with the WAIT command depends on your system
response time. For example, if you are using Virtual Network Services, you may
require a longer wait time.
Example
In this example, if the age of the call queued to the network skillset
(skillset_N1_sk) is greater than 60 seconds, the priority of the call is increased
from 3 to 1.
IF (AGE OF CALL > 60) THEN
CHANGE PRIORITY IN NETWORK SKILLSET skillset_N1_sk TO
PRIORITY 1
END IF
Script syntax
QUEUE TO NETWORK SKILLSET [<network_skillset> |
<network_skillset_list>] {WITH PRIORITY <priority>}
Optional
The WITH PRIORITY segment is optional.
Parameters
Enter information for the following parameters:
<network_skillset> or <network_skillset_list> The network skillset, or
list of network skillsets, to which you want the call queued.
<priority> The priority with which you want the call queued to the
specified network skillset.
Restrictions
The following restrictions apply to this command:
Do not insert the GIVE BUSY or GIVE OVERFLOW command
immediately after the QUEUE TO NETWORK SKILLSET command.
This restriction applies only to voice contacts.
Use a WAIT command with at least 4 seconds after a QUEUE TO
NETWORK SKILLSET command.
The amount of time given with the WAIT command depends on your
system response time. For example, if you are using Virtual Network
Services, you may require a longer wait time.
Do not use this command in the network script (if you purchased the NSBR
feature) or any of its subscripts.
Example
In this example, if the local skillset (local_skill_main_sk) is out of service, the
call is queued to the network skillset (skillset_N1_sk) and to a local backup
skillset.
IF OUT OF SERVICE local_skill_main_sk THEN
QUEUE TO NETWORK SKILLSET skillset_N1_sk
WAIT 4
QUEUE TO SKILLSET backup_sk
WAIT 4
END IF
Script syntax
REMOVE FROM NETWORK SKILLSET [<network_skillset> |
<network_skillset_list>]
Parameter
Enter information for the following parameter:
<network_skillset> or <network_skillset_list> The network skillset, or
list of network skillsets, from which you want the call removed. You can
also replace this parameter with an intrinsic returning a skillset.
Restrictions
The following restrictions apply to this command:
The REMOVE FROM NETWORK SKILLSET command cannot be the
first command in a script.
Do not use this command in the network script (if you purchased the
Network Skill-Based Routing feature) or any of its subscripts.
Examples
Example one
In this example, the call is queued to the network skillset (skillset_N1_sk). If the
call is not answered within 60 seconds, the call is queued to a local backup
skillset.
QUEUE TO NETWORK SKILLSET skillset_N1_sk
WAIT 4
Example 2
This example shows a network script when the Local Node Inclusion (LNI)
option is selected.
/* Local Node Inclusion option enabled for network skillset at the
source site. Call is queued to the local and remote sites. After 6
seconds we check if the call is queued anywhere and if not we send
the call to an emergency number. If the call is queued somewhere,
the caller hears the assigned music source. Every 30 seconds we
check the condition of the call, to see if it is still queued, if
not then we perform the same check as was performed when the call
entered the script.
If the call is queued somewhere, we then check the priority of the
call in the local skillset. If it has no priority in the local
skillset, then we check the condition of the skillset, if it is
staffed. If the local skillset is staffed then we requeue the call
locally. If the call has a priority in a local skillset, we ignore
the local priority check and verify the call priority in the
network. If the call is not queued to the network, the call is
requeued. If the call is queued to the network the network
priority check is ignored and we repeat the wait check every 30
seconds, until the call is answered or the caller abandons.
*/
QUEUE TO NETWORK SKILLSET skillset_cv WITH PRIORITY prio_cv
WAIT 6
SECTION WaitLoop
EXECUTE WaitLoop
In this chapter
Overview 294
Choosing the most efficient commands 295
Section A: Basic IVR 301
Section B: Voice session commands 305
Section C: Broadcast announcements 319
Overview
You can play messages to calls or, if your contact center has an IVR system, you
can collect information from the call so agents can service the call more
efficiently.
Within the OPEN/END VOICE SESSION clause, it is the PLAY PROMPT and
COLLECT DIGITS script commands that suspend the call, not the OPEN and
END VOICE SESSION commands.
For information about the GIVE RAN command and other commands in SIP-
enabled contact centers, see “SIP Contact Center” on page 675.
This section contains information to help you decide which voice processing
commands are the most efficient for your contact center.
GIVE RAN
Use the GIVE RAN command in the following situations:
when you want to play a message to calls
when your contact center has RAN equipment from a previous contact
center installation
if RAN equipment is less expensive than a voice processing system and
other voice processing functions are not required
For information about GIVE RAN in SIP-enabled contact centers, see “SIP
Contact Center” on page 675.
GIVE IVR
Use the GIVE IVR command in the following situations:
when you use a third-party voice processing system for announcements or
voice menus (call interaction)
when you use Nortel Self Service or any third-party application with
Meridian Mail, or CallPilot for voice menus (call interaction)
For information about the GIVE IVR command in SIP-enabled contact centers,
see “GIVE IVR” on page 679.
Voice Sessions
Use the OPEN VOICE SESSION and END VOICE SESSION commands when
you use Contact Center Voice Services on CallPilot or Meridian Mail to
provide:
customized messages (for example, to play a call expected wait time)
call interaction (for example, digit collection)
Playing messages
If callers only listen to the message, as opposed to making selections, you can
use the following commands:
GIVE RAN
GIVE IVR
GIVE CONTROLLED BROADCAST ANNOUNCEMENT
OPEN/END VOICE SESSION with PLAY PROMPT
For information about the GIVE RAN command, see page “GIVE RAN” on
page 223.
For information about the GIVE RAN command and other commands in SIP-
enabled contact centers, see “SIP Contact Center” on page 675.
For information about Host Data Exchange commands, see Chapter 10, “Host
Data Exchange commands.”
Continuous operation means the message plays repeatedly. When a call enters
the system, the caller hears the message from the point it is playing at the time.
That is, the caller can hear the message from middle to end and then hear the
beginning of the message when it starts over.
For information about these commands in SIP-enabled contact centers, see “SIP
Contact Center” on page 675.
Impact of commands
Some commands use more contact center system resources than others. One
parameter that determines the impact of the different voice processing
commands on the system is the amount of messaging necessary to run the
statements. Commands that interact with Call Pilot and Meridian Mail use more
system CPU resources than those that do not:
Lower-usage commands are GIVE RAN and GIVE IVR.
Higher-usage commands are GIVE CONTROLLED BROADCAST
ANNOUNCEMENT and OPEN/END VOICE SESSION.
Examples
The following examples demonstrate how to properly use the PLAY PROMPT
command.
Best practice
PLAY PROMPT NUMBERBYDIGIT 1234
Not recommended
PLAY PROMPT number 1 number 2 number 3 number 4
Do not use
PLAY PROMPT number 1
PLAY PROMPT number 2
PLAY PROMPT number 3
PLAY PROMPT number 4
In this section
GIVE IVR 302
GIVE IVR
Use the GIVE IVR (interactive voice response) command to deliver a call to a
voice messaging system, such as CallPilot, Meridian Mail, or Nortel IVR. This
command is used only when Contact Center Manager is not controlling the
voice session. No statistics are pegged against activities that take place while the
call is in the voice messaging system.
After the IVR session is complete, the call is returned to the script.
For information about the GIVE IVR command in SIP-enabled contact centers,
see “GIVE IVR” on page 679.
Script syntax
GIVE IVR {INTERRUPTIBLE} <ivr_dn> {WITH PRIORITY <priority>}
{WITH TREATMENT <vsdn>}
Optional
The INTERRUPTIBLE keyword, the WITH PRIORITY option, and the WITH
TREATMENT segments are optional.
Parameters
Enter information for the following parameters:
<ivr_dn> The switch ACD-DN in which you want the call placed.
<priority> The priority with which you want the call queued to the voice
services queue.
<vsdn>(Meridian Mail)/<sdn>(CallPilot) The voice service DN for the
treatment that you want to give the call.
The voice messaging system voice ports must be configured as agents for the
queue that is specified through the parameter ivr_dn.
The IVR session is not interrupted by an agent becoming idle unless the
INTERRUPTIBLE keyword is used.
INTERRUPTIBLE keyword
When you write your script, you can queue a call first and then use the GIVE
IVR command to deliver the call to a voice messaging system. If you use the
INTERRUPTIBLE keyword, the IVR session is interrupted when an agent
becomes available to take the call. If you do not use the INTERRUPTIBLE
keyword, the voice session continues until it is complete, even if an agent
becomes available.
The call holds its position in all of the queues that it was in prior to the GIVE
IVR command.
Do not use the INTERRUPTIBLE keyword for IVR sessions that include
menus. If you do this, an agent becoming available can interrupt the contact
while the caller is listening to the menu options.
For information about the GIVE IVR command in SIP-enabled contact centers,
see “GIVE IVR” on page 679.
Restrictions
The following restrictions apply to this command:
Do not insert the GIVE BUSY or GIVE OVERFLOW command
immediately after the GIVE IVR command.
For the Meridian 1 PBX switch, do not use the WITH TREATMENT
option with the GIVE CONTROLLED BROADCAST
ANNOUNCEMENT and OPEN VOICE SESSION commands. Use of this
option with these commands can cause the switch to lose voice ports.
For information about these commands in SIP-enabled contact centers, see “SIP
Contact Center” on page 675.
Example
In this example, the call is queued to the sales skillset and is then given IVR
treatment. The IVR session is interrupted if an agent becomes available to
answer the call before the IVR session is complete. Otherwise, the caller hears
music while waiting in a queue.
QUEUE TO SKILLSET sales_sk
WAIT 2
GIVE IVR INTERRUPTIBLE ivr_dn WITH TREATMENT agents_busy
GIVE MUSIC pop_music_gv
In this section
COLLECT DIGITS 306
OPEN VOICE SESSION and END VOICE SESSION 309
PLAY PROMPT 313
COLLECT DIGITS
Use the COLLECT DIGITS command to collect digits from the caller through
voice ports. Script execution is suspended until the digit collection is complete.
If the call is queued before the COLLECT DIGITS command is executed, digit
collection is interrupted when an agent becomes available.
The maximum number of digits that can be collected is 16. You must also define
a DN type call variable in which to store the digits.
ATTENTION
This command can be used only within an OPEN VOICE
SESSION and END VOICE SESSION section.
Script syntax
COLLECT <max_num_of_digits> DIGITS INTO <call_digit_var>
Optional
The NO TYPE AHEAD keyword and the INTER DIGIT TIMER and WITH
TERMINATING CHARACTER segments are optional.
Parameters
Enter information for the following parameters:
<max_num_of_digits> The maximum number of digits, up to 16, that you
want to collect. The script continues automatically when the specified
number of digits is collected.
The terminating character, if you use it, counts as a digit. For example, if
you are collecting 8 digits from the call, you must specify the maximum
number of digits as 9.
<call_digit_var> The call variable in which you want to store the collected
digits. This variable must be a DN type call variable.
<timer> The maximum time, in seconds, that you want the script to wait
between each digit collected.
<terminating_char> The number (from 0–9) or symbol (* or #) that, when
collected, terminates the digit collection before the maximum number of
digits is reached.
You must create the call variable before you can use the COLLECT DIGITS
command. For more information, see “Creating script variables” on page 109.
When you create the call variable, you must assign a numerical value to it. This
value changes when the caller enters digits.
The symbols * and # are terminating characters only. They cannot be used for
any other purpose.
Example
Use the COLLECT DIGITS command only within the OPEN VOICE SESSION
and END VOICE SESSION command. To see an example, see “Example” on
page 316.
Use the OPEN VOICE SESSION and END VOICE SESSION commands to
obtain control over a voice port on the voice processing system. After a voice
port is secure, the call is connected to the port automatically and the actions
specified between the OPEN VOICE SESSION and END VOICE SESSION
commands are performed.
You need Contact Center Voice Services on CallPilot or Meridian Mail to use
the OPEN VOICE SESSION and END VOICE SESSION commands.
Script syntax
OPEN VOICE SESSION {<access_ivrdn>}
<statement1>
<statement2>
...
Optional
The access_ivrdn parameter is optional. If this parameter is not specified, the
system uses a default parameter.
Parameters
Enter information for the following parameters:
<access_ivrdn> The ACCESS IVR DN configured on the CallPilot or
Meridian Mail system.
Note: Nortel recommends that you use the default ACCESS IVR DN
configured in the Global Settings property page for the server, rather than
specifying an ACCESS IVR DN in the script. From the Contact Center
Manager Administration Launchpad, choose Configuration > (server
name) > Global Settings.
<statement1>, <statement2>, . . . The action that you want performed on
the call.
Restriction
This command applies to voice contacts only.
Possible actions
You can use any of the following commands inside the OPEN VOICE SESSION
and END VOICE SESSION commands:
ASSIGN TO
ROUTE CALL
IF-THEN-END-IF
IF-THEN-ELSE-END-IF
DISCONNECT
LOG
PLAY PROMPT
COLLECT DIGITS
SEND INFO
SEND REQUEST
GET RESPONSE
WHERE-EQUALS
Examples
Example 1
In this example, a voice session begins in which the caller receives a welcome
message and is informed that no agents are currently available to answer the call.
The caller is then asked to respond to a menu option by entering a digit from the
phoneset. The digit is collected into a variable named menu_choice_cv.
OPEN VOICE SESSION
PLAY PROMPT VOICE SEGMENT welcome_vs
VOICE SEGMENT all_agents_busy_vs
VOICE SEGMENT leave_message_vs
COLLECT 1 DIGITS INTO menu_choice_cv
END VOICE SESSION
Example 2
In this example, a voice session begins in which the caller receives a menu
option in the language of their choice. If they do not select options 1 or 2, they
are prompted to enter their choice one more time. The voice session ends and,
based on the collected data, the appropriate language and skillset is assigned to
the call.
OPEN VOICE SESSION
PLAY PROMPT WITH LANGUAGE lang_cv VOICE SEGMENT
gen_info_main_menu_vs
COLLECT 1 DIGITS INTO menu_choice_cv INTER DIGIT TIMER 2
IF menu_choice_cv <> 1 OR menu_choice_cv <> 2 THEN
ASSIGN 11 TO menu_choice_cv
PLAY PROMPT WITH LANGUAGE lang_cv VOICE SEGMENT
gen_info_main_menu_vs
COLLECT 1 DIGITS INTO menu_choice_cv INTER DIGIT TIMER 2
END IF
END VOICE SESSION
WHERE menu_choice_cv EQUALS
VALUE 1: ASSIGN French TO lang_cv
ASSIGN Gen_Info_Fr TO skillset_cv
PLAY PROMPT
Use the PLAY PROMPT command to play a voice prompt or to speak a number
to the caller through a voice port. Voice prompts can be any of the following:
a list of voice segments identified by voice segment variables
a list of numbers
numbers interspersed with voice segments
If the call is queued, the voice prompt is interrupted when an agent is available
to take the call.
You need Contact Center Voice Services on CallPilot or Meridian Mail to use
the PLAY PROMPT command.
ATTENTION
Use this command only within an OPEN VOICE SESSION
and END VOICE SESSION command. The PLAY
PROMPT command is similar to the PLAY PROMPT
command used as part of the GIVE CONTROLLED
BROADCAST ANNOUNCEMENT command, but it
includes different optional parameters.
Script syntax
PLAY PROMPT
Optional
The WITH LANGUAGE segment is optional. The NO TYPE AHEAD,
NUMBER, and NUMBERBYDIGITS keywords are also optional.
Parameters
Enter information for the following parameters:
<language> The language in which you want the prompt played.
<number> The number that you want played.
<voice_seg> The voice segment that you want played. The maximum
length of a voice segment is 2 minutes (120 seconds) for Meridian Mail and
CallPilot.
ATTENTION
If no other language is specified in the script, the default
language is played. The default language is system
dependent based on regional settings of the operating
system on the server. If the system default language is other
than English and you want to play any of the system-
defined voice segments, such as c_zero_gv which has a
predefined value English:file:1:1, you must specify in the
script PLAY PROMPT WITH LANGUAGE English.
Numbers
You can record numbers as voice segments and then play them to calls. Contact
Center Manager comes with number variables predefined, but you must record
the voice segments. For Contact Center Voice Services on CallPilot, you use
Application Builder to record voice segments. For Contact Center Voice
Services on Meridian Mail, you use the Voice Prompt Editor.
For more information about Application Builder, see the CallPilot Application
Builder Guide. For more information about Voice Prompt Editor, see the Nortel
Contact Center Manager Administrator’s Guide.
You can play numbers to calls as a full number or as individual digits. For
example, the number 1234 can be spoken as either one thousand two hundred
thirty-four or one two three four.
To indicate how you want the number spoken, use either the NUMBER keyword
or the NUMBERBYDIGIT keyword.
NUMBER keyword
If you want a number to be spoken as full words, it must be preceded by the
NUMBER keyword. In this case, the number 1234 is spoken as one thousand
two hundred thirty-four.
NUMBERBYDIGIT keyword
If you want numbers to be spoken as digits, they must be preceded by the
NUMBERBYDIGIT keyword. In this case, the number 1234 is spoken as one
two three four.
Voice segments
Voice segments contain recorded voice data that you can play to calls. To do so,
you must record the voice segment, and then create a voice segment variable.
You can then use that variable in your script to identify the voice segment that
you want the caller to hear.
For Contact Center Voice Services on CallPilot, you use Application Builder to
create, record, and manage voice segments. For Contact Center Voice Services
on Meridian Mail, you use the Voice Prompt Editor.
For more information about Application Builder, see the CallPilot Application
Builder Guide. For more information about Voice Prompt Editor, see the Nortel
Contact Center Manager Administrator’s Guide.
Example
This example demonstrates a bank balance lookup using the PLAY PROMPT
command. Full IVR system are better equipped for this type of application
(rather than a voice session) because IVR systems are specially designed for this
type of work.
Use voice sessions in the contact center to make routing and queuing decisions,
rather than to replace IVR.
OPEN VOICE SESSION
PLAY PROMPT VOICE SEGMENT enter_account_number_vs
COLLECT 10 DIGITS INTO account_num_cv INTER DIGIT TIMER 5
WITH TERMINATING CHARACTER #
SEND REQUEST appl_id account_num
GET RESPONSE appl_id balance_cv
PLAY PROMPT VOICE SEGMENT acct_balance1_vs
NUMBERBYDIGIT account_num_cv
VOICE SEGMENT is_vs
NUMBER balance_cv
VOICE SEGMENT dollars_please_hold_vs
END VOICE SESSION
In this section
GIVE CONTROLLED BROADCAST ANNOUNCEMENT 320
You need Contact Center Voice Services on CallPilot or Meridian Mail to use
the GIVE CONTROLLED BROADCAST ANNOUNCEMENT command.
ATTENTION
Ensure that you correctly set the value of the Maximum
Ports With Queuing For Broadcast option in the Global
Settings window on the client. If you set this value to be
greater than the actual number of ports in the IVR ACD-
DN, call processing suspends at this statement even if no
ports are free for the call. The calls queue until a
connection to the port becomes free. However, if you set
this value equal to or less than the number of ports in the
IVR ACD-DN, the caller only hears the broadcast if a port
with free capacity is available to connect the call (if all
ports are used, the call skips this statement and goes to the
next statement in the script).
Script syntax
GIVE CONTROLLED BROADCAST ANNOUNCEMENT {<access_ivrdn>}
PLAY PROMPT
{CONTINUOUS}
Optional
The access_ivrdn parameter, WITH PRIORITY, and WITH LANGUAGE
segments are optional. The CONTINUOUS keyword is also optional.
Parameters
Enter information for the following parameters:
<access_ivrdn> The ACCESS IVR DN configured on the CallPilot or
Meridian Mail system.
Note: Nortel recommends that you use the default ACCESS IVR DN
configured in the Global Settings property page for the server, rather than
specifying an ACCESS IVR DN in the script. From the Contact Center
Manager Administration Launchpad, choose Configuration > (server
name) > Global Settings.
<priority> The priority with which you want the call queued.
<language> The language in which you want the broadcast announcement
presented.
<access_ivrdn> parameter
You can specify the ACCESS IVR DN in which the call is placed. If no IVR DN
is specified, the default, which is configured using Contact Center Manager
Administration, is used.
CONTINUOUS option
By default, broadcast announcements always start from the beginning (that is, in
Start/stop mode). As an option, announcements can be given in continuous
mode, meaning the announcement is played continuously. Calls are connected to
voice ports as they enter the contact center; therefore, depending on the arrival
time, the calls may or may not start at the beginning of the announcement. Every
call hears one complete play of the announcement.
ATTENTION
If no other language is specified in the script, the default
language is played. The default language is system
dependent based on regional settings of the operating
system on the server. If the system default language is other
than English and you want to play any of the system-
defined voice segments, such as c_zero_gv which has a
predefined value English:file:1:1, you must specify in the
script PLAY PROMPT WITH LANGUAGE English.
Restrictions
Do not insert the GIVE BUSY or GIVE OVERFLOW command immediately
after the GIVE CONTROLLED BROADCAST ANNOUNCEMENT
command.
Numbers
You can record numbers as voice segments and then play them to calls. Contact
Center Manager provides several predefined variables, but you must record the
voice segments. For Contact Center Voice Services on CallPilot, you use
Application Builder to record voice segments. For Contact Center Voice
Services on Meridian Mail, you use the Voice Prompt Editor.
For more information about Application Builder, see the CallPilot Application
Builder Guide. For more information about Voice Prompt Editor, see the Nortel
Contact Center Manager Administrator’s Guide.
You can play numbers to calls as a full number or as individual digits. For
example, the number 1234 can be spoken as either one thousand two hundred
thirty-four or one two three four.
To indicate how you want the number spoken, use either the NUMBER keyword
or the NUMBERBYDIGIT keyword.
NUMBER keyword
If you want a number to be spoken as full words, it must be preceded by the
NUMBER keyword. In this case, the number 1234 is spoken as one thousand
two hundred thirty-four or one two three four.
NUMBERBYDIGIT keyword
If you want numbers to be spoken as digits, they must be preceded by the
NUMBERBYDIGIT keyword. In this case, the number 1234 is spoken as one
two three four.
Voice segments
Voice segments contain recorded voice data that you can play to calls. To do so,
you must record the voice segment and then create a voice segment variable.
You can then use that variable in your script to identify the voice segment that
you want the caller to hear.
For Contact Center Voice Services on CallPilot, you use Application Builder to
create, record, and manage voice segments. For Contact Center Voice Services
on Meridian Mail, you use the Voice Prompt Editor.
For more information about Application Builder, see the CallPilot Application
Builder Guide. For more information about Voice Prompt Editor, see the Nortel
Contact Center Manager Administrator’s Guide.
Example
In this example, the script checks whether the call CLID is included in the
VIP_list_gv variable. If it is, the caller hears a special broadcast announcement.
Otherwise, the caller hears a general announcement.
IF (CLID = VIP_list_gv) THEN
GIVE CONTROLLED BROADCAST ANNOUNCEMENT
PLAY PROMPT VOICE SEGMENT gold_card_welcome_vs
ELSE
GIVE CONTROLLED BROADCAST ANNOUNCEMENT
PLAY PROMPT VOICE SEGMENT general_welcome_vs
END IF
In this chapter
Overview 328
SEND INFO 332
SEND REQUEST 334
GET RESPONSE 336
Database Integration Wizard 339
Overview
The commands used to interact with the third-party application are referred to as
HDX commands. HDX commands process voice calls and multimedia contacts.
Typically, a host application queries data in a third-party database based on data
available in the script—such as CallID or DNIS— and returns data to the script
to enable more intelligent call routing.
When using HDX commands, you must take traffic engineering into
consideration. Every call accessing a script containing HDX commands is
affected by:
application response time—A slow third-party application response time
can slow down all contact processing in Contact Center Manager.
application design—Databases may need special indexing and
optimization to handle a high number of requests at the same time. For
example, if the application can only handle one request at a time, and each
request takes 4 seconds to process, the script can handle a maximum of 900
calls per hour.
LAN interference—This can include backup and restore procedures and
large file transfers.
Contact Center Manager Release 6.0 also supports the following new call
variable types for HDX:
Agent ID
Skillset Name
Using the skillset call variable, a valid Skillset Name can be passed only by the
HDX application. Therefore, no flexibility or ambiguity exists about what can
be passed to the HDX application in the SEND REQUEST/SEND INFO
commands.
Only the Skillset Name numbers is passed back and forth to HDX, and the
responsibility is with the application developer to operate within this constraint.
Provider ID
Each HDX application must have a unique ID that identifies it to Contact Center
Manager. No two applications at the same site can have the same provider ID.
This unique ID is the ID that the HDX application passes to the server in
attempts to register with the server software. The developer of the HDX
application chooses the provider ID for the application.
You must specify the provider ID when you configure the HDX application in
your system. The script writers must also know the ID, so that they can include it
in the scripts.
Call ID
Every call that enters Contact Center Manager has a call ID associated with it.
The call ID is sent automatically with every SEND INFO or SEND REQUEST
command. You, or your company application developer, can use the call ID to
show information about the call (such as skillset or call entered data) in a screen
pop on the agents’ desktops. For more information, see the Host Data Exchange
API Programmer’s Guide.
Internally, all data types in the HDX are strings. When passed from the script to
the HDX, non-string types are converted to their string representation. For
example, when a skillset call variable assigned in the script with the skillset
SALES is passed to the HDX, it is represented in the HDX as the string SALES
rather than its Skillset Name. When the script receives a skillset from a host
application, the host must pass it as a valid string representation of the skillset.
The string representation of the skillset is converted back to the skillset for use
with the script for queuing.
Example
The following section of script sends a call DNIS number to a third-party
application and then receives the preferred skillset for that customer. The first
line of the script assigns a skillset-type variable named skillset_cv a default
value of sales_sk. Then the script sends the customer’s DNIS number to the
third-party application. The third-party application uses this information to
retrieve the preferred skillset for the customer. The script receives the preferred
skillset information, which is represented by a skillset.
ASSIGN sales_sk TO skillset_cv
SEND REQUEST app_ID DNIS
GET RESPONSE app_ID skillset_cv
IF NOT OUT OF SERVICE skillset_cv THEN
QUEUE TO SKILLSET skillset_cv
WAIT 2
ELSE
GIVE RAN nite_ran
DISCONNECT
END IF
SEND INFO
Use the SEND INFO command to send data to and start a third-party
application, such as a screen-pop application. You must use the SEND
REQUEST and GET RESPONSE commands to request and receive
information.
Script syntax
SEND INFO <provider_ID> [<variable> | <list_of_variables>]
A comma is not used between the application ID and the first variable, but
commas are mandatory between the variables (additional spaces are optional).
Parameters
Enter information for the following parameters:
<provider_ID> The identifier that the HDX application uses to register
with Contact Center Manager. Replace this parameter with an integer type
variable.
<variable> or <list_of_variables> The variable, or list of variables (up to
10), that contains the data you want to send to the third-party application.
Lists of variables are single variable values separated by commas. For a list
of variable types that you can use with this command, see “Using intrinsics
and variables in HDX commands” on page 330.
Restrictions
Do not insert the GIVE BUSY or GIVE OVERFLOW command immediately
after the SEND INFO command.
Example
In this example, calls entering CDN number 5553750 initiate a request to a
third-party application (such as a database) for the call priority. After the priority
is returned, the call is queued to the skillset customer_service_sk with that
priority.
If a call enters any other CDN, the CDN number is sent to the third-party
application and the call is queued to skillset general_information_sk.
WHERE CDN EQUALS
VALUE 5553750:
SEND REQUEST app_ID CDN, CLID
GET RESPONSE app_ID priority_cv
QUEUE TO SKILLSET customer_service_sk WITH PRIORITY
priority_cv
WAIT 2
DEFAULT:
SEND INFO app_ID CDN
QUEUE TO SKILLSET general_information_sk
WAIT 2
END WHERE
GIVE RAN agents_busy_ran_gv
GIVE MUSIC soft_music_gv
SEND REQUEST
Use the SEND REQUEST command to request specific data from a third-party
application. Call and global variables are used in this command to identify the
data that you are requesting from the host. These variables are read-only; that is,
the host application cannot change their value.
Script syntax
SEND REQUEST <provider_ID> [<variable> | <list_of_variables>]
A comma is not used between the application ID and the first variable, but
commas are mandatory between the variables (additional spaces are optional).
Parameters
Enter information for the following parameters:
<provider_ID> The identifier that the HDX application uses to register
with Contact Center Manager. Replace this parameter with an Integer type
variable.
<variable> or <list_of_variables> The variable, or list of variables (up to
10), that contains the data that you are requesting from the third-party
application. For a list of variable types that you can use with this command,
see “Using intrinsics and variables in HDX commands” on page 330.
Restrictions
Do not insert the GIVE BUSY or GIVE OVERFLOW command immediately
after the SEND REQUEST command.
Example
The following section of script sends a call CLID to a third-party application,
and then receives the preferred banker for that customer. The first line of the
script assigns a default value of 12345 to the variable named
personal_banker_cv. Then the SEND REQUEST command sends the
customer’s CLID to the third-party application.
The GET RESPONSE command retrieves the preferred banker for the customer
from the third-party application. The default value of the variable
personal_banker_cv is replaced with the value retrieved from the third-party
application.
When you replace a specific agent with an agent variable, you do not need to
modify any scripts if the agent leaves the contact center and is replaced by
another agent.
ASSIGN 12345 TO personal_banker_cv
SEND REQUEST app_ID CLID
GET RESPONSE app_ID TIMER 2 personal_banker_cv
IF NOT LOGGED OUT AGENT personal_banker_cv THEN
QUEUE TO AGENT personal_banker_cv
WAIT 2
ELSE
QUEUE TO SKILLSET sales_sk
WAIT 2
END IF
GIVE RAN agent_busy_ran_gv
GIVE MUSIC soft_music_gv
GET RESPONSE
Use the GET RESPONSE command to obtain the response from the SEND
REQUEST command previously sent to a third-party application. SEND
REQUEST must be the previous command in the script. Script validation fails if
the command is not preceded by a SEND REQUEST command.
You can specify one or more call variables in which to store the data in the
response message.
Script syntax
GET RESPONSE <provider_ID> {TIMER <timer>} [<variable> |
<list_of_variables>]
A comma is not used between the application ID and the first variable, but
commas are mandatory between the variables (additional spaces are optional).
Optional
The TIMER segment is optional. The default value is 10 seconds.
Parameters
Enter information for the following parameters:
<provider_ID> The identifier that the HDX application uses to register
with Contact Center Manager. Replace this parameter with an Integer type
variable.
<timer> The maximum amount of time, in seconds, to wait for a response.
Specify an amount of time between 0 and 65535 seconds.
Do not use global variables in the variable list—only call variables are allowed.
However, you can use either global or call variables for the application_ID and
the timer.
TIMER option
You can specify the duration to wait for a response from the host, to a maximum
of 65535 seconds. If the server does not receive a response in the specified time,
the command fails and is stopped.
The only way to detect that the timer expired in the script is to initialize the call
variables with specific values (using the ASSIGN TO command), and test them
after the GET RESPONSE command to see if they changed.
Example
The following section of script sends a call CLID to a third-party application,
and then receives the preferred skillset for that customer. The first line of the
script initializes the variable named pref_skillset_cv. Then the SEND
REQUEST command sends the customer’s CLID to the third-party application.
The GET RESPONSE command retrieves the preferred skillset for the customer
from the third-party application and replaces the value initially assigned to the
variable pref_skillset_cv with the value retrieved from the third-party
application.
See the Contact Center - Manager Database Integration User Guide for detailed
information about the Database Integration Wizard.
SEND REQUEST
The first parameter of the SEND REQUEST command functions as an index for
a list of SQL scripts that you write using the Configuration Wizard. The
remaining parameters of the SEND REQUEST command populate the unknown
parameters of the SQL statement (up to nine parameters can be passed).
Syntax example:
ASSIGN 4 TO HAI_SQLNO_cv /* sql index integer value */
ASSIGN "FAILURE" TO HAI_SQLRESP_cv /* status value string*/
SEND REQUEST HAI_AppId HAI_SQLNO_cv, CLID
GET RESPONSE HAI_AppId HAI_SQLRESP_cv, HAI_AGENTID_cv
The status of the execution of the SQL statement is passed back to the Contact
Center Manager script in the first parameter of the GET RESPONSE command.
The statuses are
SUCCESS—The SQL statement was executed without error.
FAILURE—The SQL statement execution failed. Consult trace files
(especially ODBC) for further information.
NODATA—The SQL statement is SELECT; however, no data was returned
from the statement execution.
The first parameter (string type) is reserved for status reporting of SQL
execution. Where the SQL statement generates data (SELECT), the data is
passed into the remaining parameters (up to nine).
WAIT 2
VALUE "NODATA":
LOG "No data available from Host"
QUEUE TO SKILLSET sales_sk
WAIT 2
VALUE "SUCCESS":
QUEUE TO AGENT HAI_AGENTID_cv
WAIT 2
END WHERE
The preceding example sends the CLID and the agent ID to the TAPI
application.
The first data parameter of the SEND INFO command is interrogated. If the text
in the parameter is %TAPI%, the data in the remaining parameters is sent to
TAPI. Otherwise, the SEND INFO command is assumed to be for database
access and the information in the first parameter is used to identify the SQL
statement number.
SEND INFO can also be used to attach TAPI data to a call based upon the
assumption that SEND INFO otherwise operates like SEND REQUEST.
The first data parameter of the SEND INFO command is interrogated. If the text
in the parameter is %TAPI%, then the data in the remaining parameters is sent to
TAPI. The parameters of the SEND INFO command are attached to a call using
the published TAPI IVR/CallData interface.
Only the raw Skillset Name numbers are sent between the switch and the HDX
and the responsibility is with the application developer to operate within this
constraint. The Skillset Name can be retrieved from the Skillset Configuration
Database view, accessible through programs such as Crystal Reports, Microsoft
Access or Report Creation Wizard, to see the link between the Skillset Name
and the Skillset Name that was assigned by the system.
Intrinsics
In this chapter
Overview 344
Examples of intrinsics use 347
Section A: Skillset intrinsics 349
Section B: Time intrinsics 393
Section C: Traffic intrinsics 405
Section D: Call intrinsics 411
Section E: Open Queue Intrinsics 441
Overview
Types of intrinsics
There are four types of intrinsics described in this chapter:
Section A: “Skillset intrinsics,” on page 349 describes the intrinsics that are
based on information about skillsets or agents.
Section B: “Time intrinsics,” on page 393 describes the intrinsics that are
based on system time information, including the time of day, day of week,
and day of year.
Section C: “Traffic intrinsics,” on page 405 describes the intrinsics that are
based on the system traffic level information.
Section D: “Call intrinsics,” on page 411 describes the intrinsics that are
specific to each call (for example, the CLID).
Section E: “Open Queue Intrinsics,” on page 441 describes the intrinsics
that are specific to multimedia processing.
Return value
The data that an intrinsic gathers from the system and inserts into the script is
referred to as the return value of the intrinsic. For example, the following section
of a script instructs the system to queue calls to the support skillset if the number
of agents in the service skillset (LOGGED AGENT COUNT) is less than five:
IF (LOGGED AGENT COUNT service_sk < 5) THEN
QUEUE TO SKILLSET support_sk
END IF
If, at 2:00 p.m., three agents from the service skillset are logged on, then the
return value for the intrinsic is 3. Therefore, incoming calls are queued to the
support skillset. Suppose later, at 3:30 p.m., nine agents from the service skillset
are logged on. Now, the return value for the intrinsic is 9, and calls are not
queued to the support skillset.
If all agents in the service_sk and general_sales_sk skillsets are busy on active
calls or are in Not Ready mode, then the intrinsic LONGEST IDLE AGENT
does not return a value. As a result, Contact Center Manager cannot queue the
call to an agent.
To prevent the call from being queued to the default skillset, ensure that the call
is queued before the end of the script.
Example
In this example, the script attempts to queue the call to the agent who is idle the
longest in either the service_sk or the general_sales_sk skillset. If, after 2
seconds, the call is not queued, it is queued to a third skillset named
backup_skillset_sk.
QUEUE TO AGENT LONGEST IDLE AGENT service_sk, general_sales_sk
WAIT 2
IF NOT QUEUED THEN
QUEUE TO SKILLSET backup_skillset_sk
WAIT 2
END IF
This section provides examples of how you can use intrinsics in your scripts for
voice and multimedia contacts.
If Open Queue is enabled then the TOTAL ACTIVE CALLS is the total number
of calls and Open Queue contacts in the system. In this scenario there is
potential for a large number of contacts to be waiting in the system relative to
what normally would be expected for telephony. Therefore, use TOTAL
ACTIVE CALLS with caution in an Open Queue enabled system.
In this section
Overview of skillset intrinsics 350
ANSWERED COUNT 355
AVERAGE SPEED ANSWER 357
EXPECTED WAIT TIME 360
IDLE AGENT 365
IDLE AGENT COUNT 367
LOGGED AGENT COUNT 369
LOGGED OUT AGENT 371
LONGEST IDLE AGENT 373
MOST LOGGED AGENTS 375
OLDEST 378
OUT OF SERVICE 380
POSITION IN QUEUE 383
PRIORITY IN QUEUE 385
PRIORITY IN NETWORK QUEUE 388
QUEUED COUNT 390
Skillset intrinsic elements are based on information about skillsets. The returned
value from the intrinsic can then be used in queuing commands, conditional
commands, and so on. Skillset intrinsics return skillsets, integer values, and
agent IDs.
Integer 0
For most skillset intrinsics, a network skillset call uses the values of the local
skillset intrinsics. The return value indicates information about the local skillset
queue and incoming network contacts from another network site, as well as
locally queued contacts (through QUEUE TO SKILLSET).
If you select the include source option for the network skillset, the skillset
intrinsic still contains the same value as if you issued the QUEUE TO
SKILLSET command. Thus, if the network skillset is staffed locally, then the
value includes contacts queued locally through the QUEUE TO NETWORK
SKILLSET command and any network contacts arriving at this node from
another network site.
If you do not select the include source option for the network skillset, the value
includes only contacts queued locally through the QUEUE TO SKILLSET
command and any network contacts arriving at this node from another network
site. It does not include outgoing network contacts that are queued through the
QUEUE TO NETWORK SKILLSET command.
The following skillset intrinsic values are based on the total contacts that are
answered in the local skillset queue in the last 10 minutes:
ANSWERED COUNT
AVERAGE SPEED ANSWER
EXPECTED WAIT TIME
The preceding skillset intrinsic values include contacts queued locally through
the QUEUE TO SKILLSET command and through the “include local node”
option set for the skillset, as well as network contacts arriving at this node from
another network site.
The preceding skillset intrinsic values do not include outgoing network contacts
that are queued through the QUEUE TO NETWORK SKILLSET command or
when the include local node option is not selected for the skillset (that is, when
you exclude the local node).
The following intrinsic values include local contacts and incoming network
contacts queued in the given skillsets at this node; they do not consider contacts
at other network nodes:
OLDEST
POSITION IN QUEUE
QUEUED COUNT
The network contact data that is passed when a contact is queued across the
network (QUEUE TO NETWORK SKILLSET) consists of the contact
application ID on the source node, CLID information, DNIS information, age of
the contact, network skillset ID, and priority. Call variables associated with the
contact are not passed to the destination node.
The following table shows what skillset the intrinsic checks—local or remote—
when the Include Local Node option is selected:
QUEUED X X
OUT OF SERVICE X
PRIORITY IN QUEUE X
PRIORITY IN NETWORK X
QUEUE
REMOVE FROM SKILLSET X
REMOVE FROM X
NETWORK SKILLSET
CHANGE PRIORITY IN X
SKILLSET
CHANGE PRIORITY IN X
NETWORK SKILLSET
Use the DISCONNECT command with care because the multimedia contact is
resent by Contact Center Multimedia to Contact Center Manager Server to be
requeued. Resending the contact forces Contact Center Manager Server to peg
the contact twice and resets the age of the contact.
ANSWERED COUNT
If you specify a list of skillsets, then the sum of answered contact counts for the
skillsets is returned.
Script syntax
ANSWERED COUNT [<skillset> | <skillset_list>]
Parameter
Enter information for the following parameter:
<skillset> or <skillset_list> The skillset, or list of skillsets, that you want
to include in the return value.
Return type
This intrinsic returns an integer to the script.
Examples
Example 1
In this example, if the number of answered calls for the service skillset is less
than that of the support skillset, then incoming calls are queued to the service
skillset. Otherwise, calls are queued to the support skillset. If the call is not
answered immediately, the caller hears a message indicating that all agents are
busy, followed by music.
IF (ANSWERED COUNT service_sk < ANSWERED CALL COUNT support_sk)
THEN
QUEUE TO SKILLSET service_sk
ELSE
QUEUE TO SKILLSET support_sk
END IF
WAIT 2
GIVE RAN agents_busy_ran_gv
GIVE MUSIC pop_music_gv
SECTION WaitLoop
Example 2
In this multimedia example, if the number of answered contacts for the e-mail
skillset sent in the contact data is greater than that of the Promo2 e-mail skillset,
then incoming contacts are queued to the Promo2 e-mail skillset. Otherwise,
contacts are queued to the e-mail skillset sent in the contact data.
ASSIGN CONTACT DATA "%SKILLSET%SKILLSET" TO skillset_cv
IF (ANSWERED COUNT skillset_cv > ANSWERED COUNT EM_Promo2_sk THEN
ASSIGN EM_Promo2_sk TO skillset_cv
END IF
QUEUE TO SKILLSET skillset_cv
WAIT 2
SECTION WaitLoop
Script syntax
AVERAGE SPEED ANSWER [<skillset> | <skillset_list>] {WITH CALL
PRIORITY <priority>}
Optional
The WITH CALL PRIORITY segment is optional.
Parameters
Enter information for the following parameters:
<skillset> or <skillset_list> The skillset, or list of skillsets, that you want
to include in the return value.
<priority> The priority of the calls that you want to track.
Return type
This intrinsic returns a value, in seconds, to the script.
Examples
Example 1
In this example, if calls are answered more quickly, on average, by the service
skillset than by the support skillset, then incoming calls are queued to the service
skillset. Otherwise, calls are queued to the support skillset. If the call is not
answered immediately, the caller hears a message indicating that all agents are
busy, followed by music.
IF (AVERAGE SPEED ANSWER service_sk < AVERAGE SPEED ANSWER
support_sk) THEN
QUEUE TO SKILLSET service_sk
ELSE
QUEUE TO SKILLSET support_sk
END IF
WAIT 2
GIVE RAN agents_busy_ran_gv
GIVE MUSIC pop_music_gv
SECTION WaitLoop
Example 2
In this multimedia example, if contacts are answered less quickly, on average,
for the e-mail skillset sent in the contact data than for the Promo2 e-mail skillset,
then incoming contacts are queued to the Promo2 e-mail skillset. Otherwise,
contacts are queued to the e-mail skillset sent in the contact data.
ASSIGN CONTACT DATA "%SKILLSET%SKILLSET" TO skillset_cv
IF (AVERAGE SPEED ANSWER skillset_cv > AVERAGE SPEED ANSWER
EM_Promo2_sk THEN
ASSIGN EM_Promo2_sk TO skillset_cv
END IF
QUEUE TO SKILLSET skillset_cv
WAIT 2
SECTION WaitLoop
The EXPECTED WAIT TIME is the predicted wait time of the current contact
in the given skillset at the moment the intrinsic is executed. This value can
change over time, depending on contact traffic. This intrinsic is calculated by the
contact processing executor using real-time data. If the contact is not yet in the
skillset indicated, an average expected wait time for the skillset is returned.
If you specify a skillset list, then the returned value is the minimum EXPECTED
WAIT TIME of all the skillsets.
Tip: Use this intrinsic to play the expected wait time to voice contacts only if the
wait is unusually long for your contact center. For example, if the normal wait
time for your contact center is 2 minutes, but a burst of traffic increased the wait
time to 5 minutes, use this intrinsic to warn voice contacts of the long wait. Give
the caller options at this point (for example, the choice of leaving a message or
continuing to wait).
Script syntax
EXPECTED WAIT TIME [<skillset> | <skillset_list>]
Parameter
Enter information for the following parameter:
<skillset> or <skillset_list> The skillset, or list of skillsets, that you want
to include in the return value.
Return type
This intrinsic returns a value, in seconds, to the script.
Nortel recommends that you use only the EXPECTED WAIT TIME intrinsic in
single-priority systems to avoid these conditions.
ATTENTION
Because the expected wait time can increase while a caller
waits, play the expected wait time to callers once.
Formulas
where
EWT (call, skillset) = ASA Waiting Calls * Queued Call Load * POSITION IN
QUEUE Factor
where
Customized formulas
If you do not want to use the default formula to estimate EXPECTED WAIT
TIME, you can use intrinsics to build a custom formula. For example, create the
following custom formula:
with Talk Time being an estimated constant for the contact center.
Whether you use the default formula or a custom formula, the value can be
stored as a variable and played to the voice contact through an interactive voice
session (available with integrated voice processing engines only).
Examples
Example 1
In the following voice example, the contact is first queued to the sales skillset. If
the EXPECTED WAIT TIME for the contact is greater than 4 minutes, the caller
hears a recorded announcement stating that a long wait is expected. If the
EXPECTED WAIT TIME is greater than 1 minute but less than 4 minutes, the
recorded announcement indicates an average wait time. An EXPECTED WAIT
TIME less than 1 minute uses a short wait announcement.
QUEUE TO SKILLSET sales_sk
WAIT 4
ASSIGN EXPECTED WAIT TIME sales_sk TO exp_wait_cv
IF (exp_wait_cv > 240) THEN
GIVE RAN long_wait_ran_gv
ELSE
IF (exp_wait_cv > 60) THEN
GIVE RAN average_wait_ran_gv
ELSE
GIVE RAN short_wait_ran_gv
END IF
END IF
Example 2
In this multimedia example, if the expected wait time for the e-mail skillset sent
in the contact data is greater than 3600 seconds, then incoming contacts are
queued to the Promo2 e-mail skillset. Otherwise, contacts are queued to the e-
mail skillset sent in the contact data.
ASSIGN CONTACT DATA "%SKILLSET%SKILLSET" TO skillset_cv
IDLE AGENT
Use this intrinsic to check whether the specified agent is currently idle. If the
agent is idle, the value returned is True. Otherwise, the value returned is False.
Script syntax
IDLE AGENT <agent_ID>
Parameter
Enter information for the following parameter:
<agent_ID> The logon ID of the agent that you want to track.
Return type
This intrinsic returns a True or False value to the script.
Examples
Example 1
In this example, if the agent represented by the agent variable agent_4 is idle and
available, the call goes to that agent. Otherwise, the call is queued to the sales
skillset.
IF IDLE AGENT agent_4 THEN
QUEUE TO AGENT agent_4
WAIT 2
ELSE
QUEUE TO SKILLSET sales_sk
WAIT 2
END IF
Example 2
In this multimedia example, if the preferred agent sent in the contact data is idle
and available, the contact goes to that agent. Otherwise, the contact is queued to
the skillset sent in the contact data.
ASSIGN CONTACT DATA "%SKILLSET%SKILLSET" TO skillset_cv
ASSIGN CONTACT DATA "%AGENT%AGENT" TO agent_cv
IF IDLE AGENT agent_cv THEN
QUEUE TO AGENT agent_cv
WAIT 2
ELSE
QUEUE TO SKILLSET skillset_cv
WAIT 2
END IF
The IDLE AGENT COUNT is the current number of idle agents in the given
skillset list.
If you specify a list of skillsets, then the return value is the maximum IDLE
AGENT COUNT of all the skillsets in the list.
Script syntax
IDLE AGENT COUNT [<skillset> | <skillset_list>]
Parameter
Enter information for the following parameter:
<skillset> or <skillset_list> The skillset, or list of skillsets, that you want
to include in the return value.
Return type
This intrinsic returns a numerical value to the script.
Examples
Example 1
This sample script first queues the call to the sales skillset. If the call is not
answered immediately, the script checks if more than two idle agents are in the
service skillset. If so, the call is queued to the service skillset. If the call is not
answered immediately, the caller hears a message indicating that all agents are
busy, followed by music.
QUEUE TO SKILLSET sales_sk
WAIT 2
IF (IDLE AGENT COUNT service_sk > 2) THEN
Example 2
The following sample script first queues the multimedia contact to the skillset
sent in the contact data. If the contact is not answered after 600 seconds, the
script checks if there are more than two idle agents in the EM_Promo2_sk
skillset. If so, the contact is also queued to the EM_Promo2_sk skillset.
ASSIGN CONTACT DATA "%SKILLSET%SKILLSET" TO skillset_cv
QUEUE TO SKILLSET skillset_cv
WAIT 600
IF (IDLE AGENT COUNT EM_Promo2_sk > 2) THEN
QUEUE TO SKILLSET EM_Promo2_sk
WAIT 2
END IF
If you specify a list of skillsets, then the return value is the maximum of the
LOGGED AGENT COUNT for the skillsets. This value is not the actual number
of logged-on agents in all skillsets.
Use this intrinsic in loops to ensure that agents are logged on to a skillset while
the contact is waiting to be answered.
Do not use the LOGGED AGENT COUNT intrinsic to test whether a skillset is
in service. Although agents are logged on to a skillset, it does not mean that the
skillset is in service. (You can put a skillset into out-of-service or transition
mode from the Skillset configuration screen under Configuration in Contact
Center Manager Administration.) Instead, use the OUT OF SERVICE intrinsic
to test whether a skillset is in service.
Script syntax
LOGGED AGENT COUNT [<skillset> | <skillset_list>]
Parameter
Enter information for the following parameter:
<skillset> or <skillset_list> The skillset, or list of skillsets, that you want
to include in the return value.
Return type
This intrinsic returns a numerical value to the script.
Examples
Example 1
This example shows how to test if enough agents are within a skillset to handle
the current call volume. If not enough agents are available, the caller receives a
busy tone.
IF (QUEUED COUNT sales_sk) > (2 * LOGGED AGENT COUNT sales_sk)
THEN
GIVE BUSY
END IF
QUEUE TO SKILLSET sales_sk
WAIT 2
Example 2
This example shows how to test if there are enough agents within a skillset to
handle the current multimedia contact volume. If there are not enough agents,
the contact is disconnected. The contact is sent back to Contact Center Manager
Server.
ASSIGN CONTACT DATA "%SKILLSET%SKILLSET" TO skillset_cv
IF (QUEUED COUNT skillset_cv) > (2 * LOGGED AGENT COUNT
skillset_cv) THEN
DISCONNECT
END IF
QUEUE TO SKILLSET skillset_cv
WAIT 2
The LOGGED OUT AGENT intrinsic tests whether agents are logged off.
This intrinsic applies to both voice and multimedia contacts. This intrinsic only
tests for agents at the local site. You cannot use this intrinsic to test for agents
logged off network sites.
Script syntax
LOGGED OUT AGENT <agent ID | agent ID list>
Parameter
Enter information for the following parameter:
<agent ID | agent ID list> The ID, or list of IDs, of the agents you want to
include in the return value.
Return type
This intrinsic returns a True or False value to the script. The value is True if all
agents you are querying are logged off. If you use a list of agents for the
parameter and one of the agents is logged on, then the return value is False.
Examples
Example 1
In this example, the LOGGED OUT AGENT intrinsic is used to test if the
preferred agent is available. If not, the contact is queued to a backup skillset
instead.
IF LOGGED OUT AGENT agent_4 THEN
QUEUE TO SKILLSET backup_sk
WAIT 2
ELSE
Example 2
In this multimedia example, the LOGGED OUT AGENT intrinsic is used to test
if the preferred agent is logged on. If not, the multimedia contact is queued to the
skillset sent in the contact data.
ASSIGN CONTACT DATA "%SKILLSET%SKILLSET" TO skillset_cv
ASSIGN CONTACT DATA "%AGENT%AGENT" TO agent_cv
IF LOGGED OUT AGENT agent_cv THEN
QUEUE TO SKILLSET skillset_cv
WAIT 2
ELSE
QUEUE TO AGENT agent_cv
WAIT 2
END IF
The LONGEST IDLE AGENT intrinsic is the ID of the agent in the skillset list
who is idle the longest.
The LONGEST IDLE AGENT is determined by either the idle time of the agent
since the last contact was disconnected or the total idle time of the agent since
logging on. The algorithm that is used is a system parameter set by the
administrator in the Global configuration screen under Configuration in Contact
Center Manager Administration.
If you specify a list of skillsets, then the return value is the LONGEST IDLE
AGENT for all the skillsets.
If you queue the contact to only one skillset, you do not need to use this intrinsic.
The server automatically queues the contact to the agent who is idle the longest.
Script syntax
LONGEST IDLE AGENT [<skillset> | <skillset_list>]
Parameter
Enter information for the following parameter:
<skillset> or <skillset_list> The skillset, or list of skillsets, that you want
to include in the return value.
The agent priorities in each skillset are still considered, so only the front of each
idle agent queue (for all the listed skillsets) is inspected for the longest idle
agent. This option does not override the agent priorities within each skillset.
Return type
This intrinsic returns an agent ID to the script.
Examples
Example 1
In this example, the call is queued to the skillset with the longest idle agent. If
the call is not answered immediately, the caller hears a message indicating that
all agents are busy, followed by music.
QUEUE TO SKILLSET sales_sk, service_sk BY LONGEST IDLE AGENT
WAIT 2
GIVE RAN agents_busy_ran_gv
GIVE MUSIC pop_music_gv
SECTION WaitLoop
Example 2
In this multimedia example, the contact is queued to the skillset with the longest
idle agent.
ASSIGN CONTACT DATA "%SKILLSET%SKILLSET" TO skillset_cv
ASSIGN EM_Promo2_sk TO backup_skillset_cv
QUEUE TO SKILLSET skillset_cv, backup_skillset_cv BY LONGEST IDLE
AGENT
WAIT 2
SECTION WaitLoop
The MOST LOGGED AGENTS intrinsic identifies the skillset with the most
logged-on agents at the time the intrinsic is executed.
Script syntax
MOST LOGGED AGENTS <skillset_list>
Parameter
Enter information for the following parameter:
<skillset_list> The list of skillsets that you want to include in the return
value.
Return type
This intrinsic returns a skillset to the script.
Examples
Example 1
In this example, the value of the skillset with the most logged-on agents is
assigned to a call variable named skillset_cv. The voice contact is then queued
to the skillset represented by this variable. If the voice contact is not answered
immediately, the caller hears a message indicating that all agents are busy,
followed by music. After this, the section named WaitLoop is executed. Every
30 seconds, this section checks whether the voice contact was answered and
whether agents are available in the required skillset to answer the voice contact.
/* Always assign the skillset to a skillset call variable
(skillset_cv) so that you can check where the call was queued to
*/
ASSIGN MOST LOGGED AGENTS service_sk, support_sk TO skillset_cv
Example 2
In this multimedia example, the value of the skillset with the most logged-on
agents is assigned to a call variable named skillset_cv. The contact is then
queued to the skillset represented by this variable. Every n seconds, this section
checks whether the contact is answered and if there are agents available in the
required skillset to handle the multimedia contact.
/* Always assign the skillset to a skillset call variable
(skillset_cv) so that you can check where the contact was queued
to */
ASSIGN CONTACT DATA "%SKILLSET%SKILLSET" TO skillset_cv
ASSIGN EM_Promo2_sk TO backup_skillset_cv
ASSIGN MOST LOGGED AGENTS skillset_cv, backup_skillset_cv TO
skillset_cv
QUEUE TO SKILLSET skillset_cv
WAIT 2
SECTION WaitLoop
WAIT waittime_cv
IF NOT QUEUED THEN
IF OUT OF SERVICE skillset_cv THEN
ASSIGN 120 TO waittime_cv
ELSE
QUEUE TO SKILLSET skillset_cv
ASSIGN 60 TO waittime_cv
END IF
END IF
EXECUTE WaitLoop
OLDEST
The OLDEST intrinsic is the age of the contact (with the given priority, if you
choose to include it) that waited longest in the given skillset queue when the
intrinsic is executed.
If you specify a list of skillsets, then the return value is the maximum value of
the OLDEST values for all the skillsets.
Script syntax
OLDEST [<skillset> | <skillset_list>] {WITH CALL PRIORITY <priority>}
Optional
The WITH CALL PRIORITY segment is optional.
Parameters
Enter information for the following parameters:
<skillset> or <skillset_list> The skillset, or list of skillsets, that you want
to include in the return value.
<priority> The priority of the contacts that you want to track.
Return type
This intrinsic returns a value, in seconds, to the script.
Examples
Example 1
In this example, if the oldest voice contact queued to the sales skillset is more
than 5 minutes old, then the current call is queued to a backup skillset. Queuing
the call to a backup skillset prevents more calls from being queued to the sales
skillset. If the oldest call queued to the sales skillset is less than 5 minutes old,
the script continues to queue the current call to that skillset.
IF (OLDEST sales_sk > 300) THEN
QUEUE TO SKILLSET backup_sk
WAIT 2
ELSE
QUEUE TO SKILLSET sales_sk
WAIT 2
END IF
Example 2
In this multimedia example, if the oldest contact queued to the skillset sent in the
contact data is more than 5 minutes old, then the current contact is queued to a
backup skillset. This prevents further contacts from being queued to the skillset
sent in the contact data. If the oldest contact queued to the skillset sent in the
contact data is less than 5 minutes old, the script continues to queue the current
contact to that skillset.
ASSIGN CONTACT DATA "%SKILLSET%SKILLSET" TO skillset_cv
ASSIGN EM_Promo2_sk TO backup_skillset_cv
IF (OLDEST CALL skillset_cv > 300) THEN
QUEUE TO SKILLSET backup_skillset_cv
WAIT 2
ELSE
QUEUE TO SKILLSET skillset_cv
WAIT 2
END IF
OUT OF SERVICE
Use the OUT OF SERVICE intrinsic to test whether skillsets are out of service.
If you specify a list of skillsets, then the OUT OF SERVICE intrinsic returns a
True value if all skillsets are out of service. Otherwise, the intrinsic returns a
False value.
Script syntax
OUT OF SERVICE [<skillset> | <skillset_list>]
Parameter
Enter information for the following parameter:
<skillset> or <skillset_list> The skillset, or list of skillsets, that you want
to include in the return value.
Return type
This intrinsic returns a True or False value to the script.
Examples
Example 1
In this example, if the sales skillset is out of service, then incoming calls receive
night service treatment. Otherwise, they are queued to the sales skillset. If the
call is not answered immediately, the caller hears a message indicating that all
agents are busy, followed by music.
IF OUT OF SERVICE sales_sk THEN
EXECUTE Night_Section
END IF
QUEUE TO SKILLSET sales_sk
WAIT 2
GIVE RAN agents_busy_ran_gv
GIVE MUSIC pop_music_gv
SECTION WaitLoop
Example 2
In this multimedia example, if the skillset sent in the contact data is out of
service, then incoming contacts run a section that checks the condition of the
skillset every 1800 seconds. Otherwise, the contact is queued to the skillset.
ASSIGN CONTACT DATA "%SKILLSET%SKILLSET" TO skillset_cv
IF OUT OF SERVICE skillset_cv THEN
EXECUTE Night_Section
END IF
QUEUE TO SKILLSET sales_sk
WAIT 2
QUIT
SECTION Night_Section
IF OUT OF SERVICE skillset_cv THEN
WAIT 1800
EXECUTE Night_Section
ELSE
QUEUE TO SKILLSET skillset_cv
WAIT 2
QUIT
END IF
Example 3
The Out of Service intrinsic only checks the condition of the local skillset, even
if the include local node option is selected.
If no agents are available for the skillset on this node, but there are agents with
that skillset on other nodes, the skillset is still considered to be out of service
when the command is executed.
Only the local node’s skillset is checked. If no agents are logged on, or the
skillset was placed into out-of-service mode using the client, callers immediately
receive a closed message.
IF OUT OF SERVICE Sales_SK THEN
GIVE RAN closed_ran
DISCONNECT
ELSE
QUEUE TO NETWORK SKILLSET Sales_SK
WAIT 4
END IF
Returns a value of type Boolean which indicates whether or not all of the
specified local skillset queues at this node are out of service.
POSITION IN QUEUE
The POSITION IN QUEUE intrinsic is the position of the contact in the skillset
queue at the time the intrinsic is executed.
The contact must be queued to the skillset before this intrinsic is used.
If you specify a list of skillsets, then the return value is the minimum value of
the POSITION IN QUEUE values for all of the skillsets.
The position is calculated using the number of contacts queued in front of the
current contact. This number includes all contacts with priorities equal to or
higher than the priority of the current contact. For example, if the current contact
is priority 2, then the calculation includes all priority 2 and priority 1 contacts.
Nortel recommendations:
Nortel recommends that you use this intrinsic only for contact centers that
do not assign priority levels.
Nortel recommends that you do not use this intrinsic to play the queue
position to a voice contact. Even in single-priority systems, a voice
contact’s position in queue can become higher rather than lower.
Script syntax
POSITION IN QUEUE [<skillset> | <skillset_list>]
Parameter
Enter information for the following parameter:
<skillset> or <skillset_list> The skillset, or list of skillsets, that you want
to include in the return value.
Return type
This intrinsic returns a numerical value to the script.
Examples
Example 1
In this example, the contact is already queued to the service skillset. This section
of the script tests the contact current position in the skillset queue. If it is more
than 5, the priority is raised to priority 1 (unless it is already priority 1).
IF (POSITION IN QUEUE service_sk > 5)
AND (PRIORITY IN QUEUE service_sk < > 1) THEN
CHANGE PRIORITY IN SKILLSET service_sk TO PRIORITY 1
END IF
Example 2
In this multimedia example, the contact is already queued to the skillset sent
with the contact data. This section of the script tests the contact's current
position in the skillset queue. If it is more than 5, the priority is raised to priority
2 (unless it is already priority 2).
ASSIGN CONTACT DATA "%SKILLSET%SKILLSET" TO skillset_cv
ASSIGN CONTACT DATA "%PRIORITY%PRIORITY TO priority_cv
QUEUE TO SKILLSET skillset_cv WITH PRIORITY priority_cv
WAIT 2
SECTION WaitLoop
WAIT looptimer_gv
IF (POSITION IN QUEUE skillset_cv > 5)
AND (PRIORITY IN QUEUE skillset_cv < > 2) THEN
CHANGE PRIORITY IN SKILLSET skillset_cv TO PRIORITY 2
END IF
EXECUTE WaitLoop
PRIORITY IN QUEUE
The PRIORITY IN QUEUE intrinsic is the priority of the current contact in the
queue. This value can range from 0–6, with 1 being the highest priority and 6
being the lowest priority. A value of 0 indicates the contact is not currently in the
queue.
The contact must be queued to the skillset before this intrinsic is used. The
PRIORITY IN QUEUE intrinsic can still be used to check if the call is queued
locally, even if the include local node option is selected for the network skillset.
Script syntax
PRIORITY IN QUEUE <skillset>
Parameter
Enter information for the following parameter:
<skillset> The skillset that you want to include in the return value.
Return type
This intrinsic returns a priority to the script.
Description
You can use the priority value in two ways.
You can use <> and = to make a direct comparison of the priority value. For
example:
IF (PRIORITY IN QUEUE sales_sk = 0) THEN
IF PRIORITY IN QUEUE Customer_Service_Eng <> 1 THEN
Less than or greater than operations are not valid with a priority value.
You can declare a call variable of type PRIORITY and assign a priority to it and
then perform the required comparison. For example:
ASSIGN 2 to cv_PriorityInQueue
IF (PRIORITY IN QUEUE Local_Sales_Sk > cv_PriorityInQueue) THEN
...
END IF
Examples
Example 1
In this example, the script first checks if the contact is queued in the sales
skillset. If this is true and agents are available to answer the contact in the
service skillset, the contact is queued to the service skillset. Otherwise, the
contact receives a message indicating that the contact center is closed.
IF (PRIORITY IN QUEUE sales_sk = 0) THEN
IF NOT OUT OF SERVICE service_sk THEN
QUEUE TO SKILLSET service_sk
WAIT 2
ELSE
GIVE RAN sorry_closed_ran_gv
DISCONNECT
END IF
END IF
Example 2
In this multimedia example, the script first checks if the contact is queued in the
skillset sent with the contact data. If this is true and there are agents available to
answer the contact in the skillset, the contact is requeued to the skillset.
Otherwise, the contact is disconnected and Contact Center Multimedia requests
the contact.
ASSIGN CONTACT DATA "%SKILLSET%SKILLSET" TO skillset_cv
IF (PRIORITY IN QUEUE skillset_cv = 0) THEN
IF NOT OUT OF SERVICE skillset_cv THEN
Example 3
In this example, a secondary script is used to increase the priority of calls in the
script.
Primary Script:
QUEUE TO SKILLSET Customer_Service_Eng WITH PRIORITY 6
GIVE RAN ran_cv
EXECUTE SCRIPT Secondary_One
The call must be queued to the network skillset and then you must give a wait
time of at least 1 second to ensure the target site can respond to the source site
before this intrinsic is used.
Script syntax
PRIORITY IN NETWORK QUEUE <skillset>
Parameter
Enter information for the following parameter:
<skillset> The network skillset that you want to include in the return value.
Restriction
Do not use this intrinsic in the Network script (if you purchased the NSBR
feature).
Return type
This intrinsic returns a priority to the script. If this intrinsic returns a value of 0,
then the call was not successfully queued to the network skillset.
Description
You can use the priority value in two ways.
You can use <> and = to make a direct comparison of the priority value. For
example:
Less than or greater than operations are not valid with a priority value.
IF (PRIORITY IN QUEUE Local_Sales_Sk > 0) THEN
You can declare a call variable of type PRIORITY and assign a priority to it and
then perform the required comparison. For example:
ASSIGN 2 to cv_PriorityInQueue
IF (PRIORITY IN QUEUE Local_Sales_Sk > cv_PriorityInQueue) THEN
...
END IF
Examples
Example 1
In the following example, if the priority of the call in the network skillset
service_sk is 0, then the call is queued to the network skillset support_sk.
IF (PRIORITY IN NETWORK QUEUE service_sk = 0) THEN
QUEUE TO NETWORK SKILLSET support_sk
WAIT 10
END IF
Example 2
In the following example, the include local node option is selected. The value
returned is the priority (1-6) of the call in the remote node’s network skillset
queue. This intrinsic returns a 0 (zero) if the call is not queued remotely. You can
use this command to determine if the call is queued to a remote node.
IF PRIORITY IN NETWORK QUEUE Sales_Sk = 0 THEN
QUEUE TO NETWORK SKILLSET Sales_Backup_Sk
WAIT 4
END IF
QUEUED COUNT
This count includes only contacts not yet serviced and does not include contacts
currently being presented to an agent.
Script syntax
QUEUED COUNT [<skillset> | <skillset_list>] {WITH CALL PRIORITY
<priority>}
Optional
The WITH CALL PRIORITY segment is optional.
Parameters
Enter information for the following parameters:
<skillset> or <skillset_list> The skillset, or list of skillsets, that you want
to include in the return value.
<priority> The priority of the calls that you want to track.
Return type
This intrinsic returns a numerical value to the script.
Examples
Example 1
In this example, if the number of calls queued to the sales skillset is greater than
twice the number of agents logged on to the sales skillset, then the caller is given
a busy tone. Otherwise, the call is queued to the sales skillset. If the call is not
answered immediately, the caller hears a message indicating that all agents are
busy, followed by music.
IF (QUEUED COUNT sales_sk) > (2 * LOGGED AGENT COUNT sales_sk)
THEN
GIVE BUSY
END IF
QUEUE TO SKILLSET sales_sk
WAIT 2
GIVE RAN agents_busy_ran_gv
GIVE MUSIC soft_music_gv
SECTION WaitLoop
Example 2
In this multimedia example, if the number of contacts queued to the skillset sent
with the contact data is greater than twice the number of agents logged on to the
skillset, the contact is disconnected and Contact Center Multimedia sends the
contact back to Contact Center Manager Server to be requeued. Otherwise, the
contact is queued to the skillset.
ASSIGN CONTACT DATA "%SKILLSET%SKILLSET" TO skillset_cv
IF (QUEUED COUNT skillset_cv) > (2 * LOGGED AGENT COUNT
skillset_cv) THEN
DISCONNECT
END IF
QUEUE TO SKILLSET skillset_cv
WAIT 2
SECTION WaitLoop
In this section
DAY OF WEEK 394
DATE 396
DAY OF MONTH 398
MONTH OF YEAR 400
TIME OF DAY 402
DAY OF WEEK
The value returned by this intrinsic is the current day of the week. You can use
this intrinsic to determine whether the current day is a specific day or is in a list
or range of days.
Script syntax
DAY OF WEEK
Return type
This intrinsic returns a day to the script.
Possible values
The possible values for this intrinsic are:
Monday
Tuesday
Wednesday
Thursday
Friday
Saturday
Sunday
The days are ordered from Monday to Sunday, with Monday as the first day of
the week and Sunday as the last. Therefore, the expression Monday < Sunday is
true, and Friday < Tuesday is false. Ranges also wrap around, so the expression
Friday .. Tuesday is valid, and is true on Friday, Saturday, Sunday, Monday, and
Tuesday.
Example
In this example, voice contacts coming into the contact center between 05:00
p.m. and 08:00 a.m. on Saturday and Sunday receive closed call treatment.
Otherwise, voice contacts are queued to the general skillset. If the voice contact
is not answered immediately, the caller hears a message indicating that all agents
are busy, followed by music.
You can use a variable to represent a specific period of time. For example, the
variable named weekend_gv represents the days from Saturday to Sunday, and a
variable named closed_hours_gv represents the hours from 05:00 p.m. to
08:00 a.m.
IF (DAY OF WEEK = weekend_gv) AND (TIME OF DAY = closed_hours_gv)
THEN
EXECUTE Closed_Section
END IF
QUEUE TO SKILLSET general_sk
WAIT 2
GIVE RAN agents_busy_ran_gv
GIVE MUSIC pop_music_gv
SECTION WaitLoop
DATE
The value returned by this intrinsic is the current date. You can use this intrinsic
to determine whether the current date is a specific date or is in a range of dates.
Script syntax
DATE
Return type
This intrinsic returns a date to the script.
Valid range
The value can range from January 1 to December 31.
Format
You can specify the month by using either the first three characters of the month
(for example, Apr), or by spelling out the entire month (for example,
September). In addition, the month can appear before or after the day.
Example
The following example uses both specific dates and a range of dates. Voice
contacts coming in to the contact center on May 31, July 4, and December 25 to
January 1 receive holiday call treatment.
You can use a variable to represent a specific period of time. For example, the
variable named christmas_holiday_gv represents the days from December 25 to
January 1.
IF (DATE = May 31, 4 July, christmas_holiday_gv) THEN
EXECUTE Holiday_Section
END IF
DAY OF MONTH
The value returned by this intrinsic is the current day of the month. You can use
this intrinsic to determine whether the current day is a specific day of the month
(the 15th, for example), or is in a range of days (the 2nd through the 10th, for
example).
Script syntax
DAY OF MONTH
Return type
This intrinsic returns a day (the day of the current month) to the script.
Valid range
The value can range from 1 to 31.
Format
Use a number or a list of numbers from 1 to 31.
Examples
You can use a variable to represent a specific period of time. For example, the
variable named monthly_special_gv represents the days between the 27th and
the 31st of each month.
MONTH OF YEAR
The value returned by this intrinsic is the current month of the year. You can use
this intrinsic to determine whether the current month is a specific month or is in
a range of months.
Script syntax
MONTH OF YEAR
Return type
This intrinsic returns a month to the script.
Valid range
The value can range from January to December.
You can specify the month either by using the first three characters of the month
(for example, Apr), or by spelling out the entire month (for example,
September).
Examples
You can use a variable to represent a specific period of time. For example, the
variable named winter_months_specials_gv represents the months of December
to February.
IF (MONTH OF YEAR = winter_months_specials_gv) THEN
GIVE RAN winter_specials_ran_gv
END IF
TIME OF DAY
The value returned by this intrinsic is the current time of day. You can use this
intrinsic to determine the exact time or whether the current time of day is in a
specified range of time.
Script syntax
TIME OF DAY
Return type
This intrinsic returns a time to the script.
Valid range
This value can range from 00:00 to 23:59.
Format
hh:mm
Examples
You can use a variable to represent a specific period of time. For example, the
variable named closed_hours_gv represents the hours from 05:00 p.m. to 08:00
a.m.
IF (TIME OF DAY = closed_hours_gv) THEN
EXECUTE Night_Section
END IF
QUEUE TO SKILLSET general_sk
WAIT 2
GIVE RAN agents_busy_ran_gv
GIVE MUSIC soft_music_gv
SECTION WaitLoop
the first expression is true for one minute; the second is true from midnight until
7:59 a.m.
In this section
CALL RATE 406
CONTACT RATE 407
TOTAL ACTIVE CALLS 408
TOTAL ACTIVE CONTACTS 409
CALL RATE
The value returned by this intrinsic is the number of voice and non-voice
contacts that entered the system during the previous 10-minute period.
This intrinsic does not differentiate between voice and non-voice contacts. The
intent, for a future release, is to have CALL RATE reflect voice contacts only.
Script syntax
CALL RATE
Return type
This intrinsic returns a numerical value to the script.
Example
In this example, when the call rate for the 10-minute period exceeds 50 voice
contacts, callers hear a recorded announcement that states that the contact center
is experiencing a high level of traffic.
IF (CALL RATE > 50) THEN
GIVE RAN busy_ran_gv
...
END IF
CONTACT RATE
This intrinsic represents the number of voice and non-voice contacts that enter
the system during the previous 10-minute period.
This intrinsic does not differentiate between voice and non-voice contacts. The
intent, for a future release, is to have CONTACT RATE reflect non-voice
contacts only.
Script syntax
CONTACT RATE
Return type
This intrinsic returns a numerical value to the script.
Example
IF CONTACT TYPE = g_EMAIL_gv THEN
IF CONTACT RATE > 50 THEN
IF TOTAL ACTIVE CONTACTS > 2500 THEN
/* Special Handling */
END IF
END IF
END IF
The value returned by this intrinsic is the total number of voice contacts in the
system at the moment the intrinsic is executed.
Active calls include all voice contacts in the system that are currently queued,
are being presented to agents, or are being answered by agents. Active calls do
not include abandoned, rejected, defaulted, or completed calls.
Script syntax
TOTAL ACTIVE CALLS
Return type
This intrinsic returns a numerical value to the script.
Example
In this example, if the number of active voice contacts exceeds 200, then callers
receive overflow treatment. You can restrict the number of active voice contacts
to 200 to preserve shared phone lines used by other staff in your contact center.
IF (TOTAL ACTIVE CALLS >= 200) THEN
GIVE OVERFLOW
END IF
Active contacts include all multimedia contacts in the system that are currently
queued, are being presented to agents, or are being answered by agents. Active
contacts do not include abandoned, rejected, defaulted, or completed contacts.
Script syntax
TOTAL ACTIVE CONTACTS
Return type
This intrinsic returns a numerical value to the script.
Example
IF CONTACT TYPE = g_EMAIL_gv THEN
IF CONTACT RATE > 50 THEN
IF TOTAL ACTIVE CONTACTS > 2500 THEN
/* Special Handling */
END IF
END IF
END IF
In this section
AGE OF CALL 412
CALL FORWARD 413
CALL FORWARD BUSY 414
CALL FORWARD DO NOT DISTURB 415
CALL FORWARD NO ANSWER 416
CDN 417
CLID 418
CONFERENCED 421
DIALED DN 422
Transferring calls with the dialed DN 423
DIRECT CALL 425
DNIS 426
INTERNATIONAL CALL 428
LOC 430
NETWORK CALL 431
NPA 432
NXX 433
NPANXX 434
ON HOLD 435
QUEUED 436
ROUTE NUMBER 438
TRANSFERRED 439
AGE OF CALL
This intrinsic is the age of the contact at the time the intrinsic is executed.
Script syntax
AGE OF CALL
Return type
This intrinsic returns a value, in seconds, to the script.
Example
The following example is a section of script that queues the voice contact to the
sales skillset, and then plays music. The section Check_Age checks the age of
the voice contact every 20 seconds, until the voice contact is more than 2
minutes old. If the voice contact is greater than 2 minutes old, it is queued to a
backup skillset.
QUEUE TO SKILLSET sales_sk WITH PRIORITY 2
WAIT 2
GIVE MUSIC pop_music_gv
SECTION Check_Age
WAIT 20
IF (AGE OF CALL > 120) THEN
EXECUTE Requeue
END IF
EXECUTE Check_Age
SECTION Requeue
QUEUE TO SKILLSET backup_sk WITH PRIORITY 1
WAIT 2
/* additional call handling steps */
CALL FORWARD
This intrinsic indicates if the call is forwarded (where the return value is True) or
not (where the return value is False).
This intrinsic is useful, for example, if a caller dials an agent DN directly, but the
agent is not available to take the call. If the call is forwarded to the contact
center, you can play an announcement stating that the call been forwarded.
Script syntax
CALL FORWARD
Return type
This intrinsic returns a True or False value to the script.
Example
In this example, forwarded calls are given a recorded announcement that tells
the caller that their call is forwarded to the contact center.
IF CALL FORWARD THEN
GIVE RAN forward_to_call_center_ran_gv
END IF
This intrinsic indicates whether the call is forwarded because the phoneset at the
original destination is busy (where the return value is True) or not (where the
return value is False).
Script syntax
CALL FORWARD BUSY
Return type
This intrinsic returns a True or False value to the script.
Example
In this example, forwarded calls due to a busy condition are given a recorded
announcement stating that the call is forwarded.
IF CALL FORWARD BUSY THEN
GIVE RAN busy_forwarded_ran_gv
END IF
This intrinsic indicates whether the call is forwarded due to a do not disturb
condition at the destination (where the return value is True) or not (where the
return value is False).
Script Syntax
CALL FORWARD DO NOT DISTURB
Return type
This intrinsic returns a True or False value to the script.
Example
In this example, calls forwarded due to a do not disturb condition at the
destination are given a recorded announcement stating that the call is forwarded.
IF CALL FORWARD DO NOT DISTURB THEN
GIVE RAN sleeping_ran_gv
END IF
This intrinsic indicates whether the call is forwarded because no one answered
the phoneset at the original destination (where the return value is True) or not
(where the return value is False).
Script syntax
CALL FORWARD NO ANSWER
Return type
This intrinsic returns a True or False value to the script.
Example
In this example, calls forwarded due to no answer at the destination are given a
recorded announcement stating that the call is forwarded.
IF CALL FORWARD NO ANSWER THEN
GIVE RAN forward_no_answer_ran_gv
END IF
CDN
The value of this intrinsic is the controlled directory number (CDN) of the
current call.
Script syntax
CDN
Return type
This intrinsic returns a CDN.
Example
In this example, the script executes the GoldCard, Reg_Customers, or
Promotions script, depending on the CDN of the call.
WHERE CDN EQUALS
VALUE 5551230: EXECUTE SCRIPT Gold_Customers
VALUE 5551231: EXECUTE SCRIPT Reg_Customers
VALUE 5551232: EXECUTE SCRIPT Promotions
END WHERE
CLID
The value of this intrinsic is the calling line identification (CLID) of the current
call.
Use the provider.exe tool to verify the CLID string sent by the switch. Make
sure you generate test calls from several different regions of the country. For
more information, see Appendix C, “Using HDX.”
Script syntax
CLID
Return type
This intrinsic returns a CLID.
Examples
Example 1
In this example, calls with CLIDs that are included in the vip_list_gv variable
are handled in a special way.
IF (CLID = vip_list_gv) THEN
EXECUTE Special_Handling
END IF
Example 3
The following example shows how to use a placeholder and wildcard to indicate
that all CLIDs starting with 305 through to 395 are queued to the VIP skillset
with a priority of 1 and hear a special recorded announcement.
IF (CLID = 3?5@) THEN
QUEUE TO SKILLSET VIP_sk WITH PRIORITY 1
WAIT 2
GIVE RAN you_are_special_ran_gv
END IF
CONFERENCED
This intrinsic is True when the call is a consultative call. A consultative call is
created when you start to conference in another party. When the conference is
established, this intrinsic is False.
Script syntax
CONFERENCED
Return type
This intrinsic returns a True or False value to the script.
Example
In this example, the conference consultation call receives a recorded message
stating that the conference is starting. The other callers in the conference do not
hear this message. Only the caller initiating the conference hears it.
IF CONFERENCED THEN
GIVE RAN in_conference_ran_gv
END IF
DIALED DN
The value of this intrinsic is the number that the caller originally dialed if the
call is forwarded to the CDN using a switch feature. This intrinsic applies only
to forwarded calls. You can use the dialed DN to transfer a call to Contact Center
Manager (see “Use the DIALED DN intrinsic to transfer calls” on page 81).
Script syntax
DIALED DN
Return type
This intrinsic returns a DN.
Example
In this example, calls are queued to the appropriate skillset depending on the
dialed DN.
WHERE DIALED DN EQUALS
VALUE 2512: QUEUE TO SKILLSET sales_sk WITH PRIORITY 1
VALUE 2603: QUEUE TO SKILLSET sales_sk WITH PRIORITY 2
VALUE 2776: QUEUE TO SKILLSET service_sk WITH PRIORITY 1
DEFAULT: QUEUE TO SKILLSET service_sk WITH PRIORITY 2
END WHERE
The DIALED DN intrinsic can handle the blind transfer of a call back to the
contact center by an agent. The dialed DN of the agent’s transfer call is
preserved for the original call when the transfer is complete so the caller can be
redirected to a new treatment or skillset.
This section explains how you can transfer a call using the dialed DN.
If you want to use phantom DNs to transfer calls, you must configure a phantom
DN for each skillset from which an agent or IVR system transfers calls. These
DNs all forward calls to one CDN acquired by Contact Center Manager. You can
program these DNs in a speed dial on the agent telephone to facilitate transfers.
Script syntax
DIALED DN
Return type
This intrinsic returns a DN.
Example
The following is an example of the DIALED DN intrinsic.
IF CDN = transfer_CDN THEN
IF TRANSFERRED THEN
GIVE RINGBACK
WAIT 20 /*Allow time for transferring party to hang up*/
DISCONNECT
ELSE
WHERE DIALED DN EQUALS
VALUE XXXXXXX: EXECUTE SCRIPT ScriptA
VALUE XXXXXXX: EXECUTE SCRIPT ScriptB
VALUE XXXXXXX: EXECUTE SCRIPT ScriptC
DEFAULT: EXECUTE SCRIPT ScriptD
END WHERE
END IF
END IF
DIRECT CALL
The value of this intrinsic indicates if the call is a direct call (where the return
value is True) or not (where the return value is False). Use the DIRECT CALL
intrinsic with phonesets that have the forwarding option.
Script syntax
DIRECT CALL
Return type
This intrinsic returns a True or False value to the script.
Example
In this example, all calls that are not direct calls receive a recorded
announcement.
IF NOT DIRECT CALL THEN
GIVE RAN you_were_forwarded_ran_gv
END IF
DNIS
The value is the first number that the caller dialed to enter the system.
This intrinsic is called the Dialed Number Identification Service (DNIS) and is
specific to the trunk used. Not all trunks can be configured to support DNIS;
therefore, the DNIS intrinsic is empty for any trunk that is not configured on the
switch to provide DNIS.
If you are using Virtual Network Services (VNS) trunks, the DNIS feature is not
supported. This means that a DNIS number cannot be forwarded from one site to
another in a VNS multisite contact center. If you want to send DNIS numbers
from one site to another, you must configure Meridian Customer Defined
Networking (MCDN) between sites.
When used for an incoming network call, the DNIS value is the same as the
value at the source node. The answering agent set can display the original source
DNIS information, as long as the DNIS name and number are programmed in
both the source and target Contact Center Manager (under Switch
Configuration). For more information, see the Administrator’s Guide.
Use the provider.exe tool to verify the DNIS string sent by the switch. Make
sure you generate test calls to different DNIS numbers. For more information,
see “Using HDX” on page 597.
Script syntax
DNIS
Return type
This intrinsic returns a DNIS.
Example
In this example, calls are queued to the appropriate skillset depending on the
DNIS.
WHERE DNIS EQUALS
VALUE 5552512: QUEUE TO SKILLSET sales_sk WITH PRIORITY 1
VALUE 5552603: QUEUE TO SKILLSET sales_sk WITH PRIORITY 2
VALUE 5552776: QUEUE TO SKILLSET service_sk WITH PRIORITY 1
DEFAULT: QUEUE TO SKILLSET service_sk WITH PRIORITY 2
END WHERE
WAIT 2
GIVE RAN agents_busy
GIVE MUSIC soft_music
QUIT
INTERNATIONAL CALL
The value of this intrinsic indicates whether the call is international (where the
return value is True) or not (where the return value is False).
Script syntax
INTERNATIONAL CALL
Return type
This intrinsic returns a True or False value to the script.
Example
The following script gives calls that are identified as international a choice of
languages in which the callers can receive service.
IF INTERNATIONAL CALL THEN
OPEN VOICE SESSION
PLAY PROMPT VOICE SEGMENT choose_language_vs
/* "For service in English, please press 1, followed
by the pound key. For service in French, please
press 2, followed by the pound key. For service in
German, please press 3, followed by the pound
key." */
COLLECT 1 DIGITS INTO language_choice_cv WITH
TERMINATING CHARACTER #
END VOICE SESSION
END IF
LOC
The value is the location code (LOC) number of the call. The LOC is the first
three digits for private network calls.
Script syntax
LOC
Return type
This intrinsic returns an LOC.
Example
In this example, calls are played the appropriate recorded announcement based
on the LOC number of the individual call.
WHERE LOC EQUALS
VALUE 512: GIVE RAN marketing_ran_gv
VALUE 603: GIVE RAN sales_ran_gv
VALUE 776: GIVE RAN accounting_ran_gv
DEFAULT: GIVE RAN company_ran_gv
END WHERE
NETWORK CALL
The value indicates if the call is a network call (where the return value is True)
or not (where the return value is False). You can use the NETWORK CALL
intrinsic in the network script to restrict local users from dialing network CDNs.
Script syntax
NETWORK CALL
Return type
This intrinsic returns a True or False value to the script.
Example
In this example, if the call is not a network call, the caller receives a recorded
announcement asking the caller to phone the local number.
IF NOT NETWORK CALL THEN
GIVE RAN wrong_number_ran_gv
DISCONNECT
END IF
NPA
The value is the number plan area (NPA) or area code of the current call.
Script syntax
NPA
Return type
This intrinsic returns an NPA.
Example
This script executes different sections of the script based on the area code of the
caller.
WHERE NPA EQUALS
VALUE 416: EXECUTE Toronto_Section
VALUE 514: EXECUTE Montreal_Section
VALUE 613: EXECUTE Ottawa_Section
DEFAULT: EXECUTE Ontario_Section
END WHERE
NXX
The value is the local exchange code (NXX) of the current call.
Script syntax
NXX
Return type
This intrinsic returns an NXX.
Example
This script executes different sections of the script based on the local exchange
code of the caller.
WHERE NXX EQUALS
VALUE 491, 492, 493: EXECUTE North_Section
VALUE 290, 291, 293: EXECUTE East_Section
DEFAULT: EXECUTE All_Section
END WHERE
NPANXX
The value is the number plan area or area code as well as the local exchange
code (NPANXX) of the current call.
Script syntax
NPANXX
Return type
This intrinsic returns an NPANXX.
Example
This script executes different sections of the script based on the area code and
the local exchange code of the caller.
WHERE NPANXX EQUALS
VALUE 416491, 416492, 416493: EXECUTE North_Section
VALUE 416290, 416291, 416293: EXECUTE East_Section
DEFAULT: EXECUTE All_Section
END WHERE
ON HOLD
The value indicates whether the call is on hold (where the return value is True)
or not (where the return value is False).
Script syntax
ON HOLD
Return type
This intrinsic returns a True or False value to the script.
Example
This script plays music if a call is on hold.
EVENT HANDLER
EVENT CALL ON HOLD: GIVE MUSIC pop_music_gv
END HANDLER
QUEUED
The value indicates whether the call is queued in any local skillsets, network
skillsets, or agent queues, or in an NACD queue (where the return value is True)
or not (where the return value is False).
Script syntax
QUEUED
Return type
This intrinsic returns a True or False value to the script.
Examples
Example 1
This script uses the QUEUED command to avoid an endless loop and ensures
that the initial QUEUE TO SKILLSET command worked.
IF OUT OF SERVICE sales_sk THEN
EXECUTE Help_Me_Now
END IF
QUEUE TO SKILLSET sales_sk WITH PRIORITY 3
WAIT 3
/* This section repeats a recorded announcement every 30 seconds.
It also checks whether the call is queued before playing the
announcement. */
SECTION Play_2nd_RAN
WAIT 30
IF NOT QUEUED THEN
EXECUTE Help_Me_Now
END IF
Example 2
This example shows the QUEUED intrinsic when the networking option is
enabled and the include local node option is selected. This example is used to
test if a call is queued. The QUEUED intrinsic returns a Boolean value of true if
the call is queued to a skillset (local or network) or an agent.
QUEUE TO NETWORK SKILLSET Sales_SK
WAIT 10
SECTION WaitLoop
IF NOT QUEUED THEN
QUEUE TO NETWORK SKILLSET Service_SK
WAIT 4
EXECUTE WaitLoop2
END IF
WAIT 30
EXECUTE Waitloop
SECTION WaitLoop2
WAIT 10
IF NOT QUEUED THEN
GIVE IVR mmail WITH TREATMENT sorry_closed
DISCONNECT
END IF
EXECUTE Waitloop2
ROUTE NUMBER
The value is the route number of the current call. If some routes are more
expensive than others, you can use this intrinsic to ensure that calls from
expensive routes are treated quickly.
Script syntax
ROUTE NUMBER
Return type
This intrinsic returns a route number.
Example
In this example, a variable named route_variable_cv represents the route number
of the current call. If the route number of the current call is 321, then the caller
hears a recorded announcement.
ASSIGN ROUTE NUMBER TO route_variable_cv
IF (route_variable_cv = 321) THEN
GIVE RAN calling_californians_ran_gv
END IF
TRANSFERRED
The value indicates whether the call is transferred (where the return value is
True) or not (where the return value is False).
The value for the TRANSFERRED intrinsic is True only for the call ID that is
created when you initiate a transfer. When the transfer is complete, the intrinsic
value is False.
Script syntax
TRANSFERRED
Return type
This intrinsic returns a True or False value to the script.
Example
In this example, transferred calls receive a recorded announcement (named
please_complete_transfer_ran_gv) that tells the agent to complete the transfer.
That is, the agent who performs the transfer hears the
please_complete_transfer_ran_gv announcement, but the original call (which is
on hold during the transfer) does not. After the transfer is complete, the script
restarts at the top of the master script, and the original caller then hears a
recorded announcement (hello_again_ran_gv) because the TRANSFERRED
intrinsic returns to a false state after transfer completion.
IF TRANSFERRED THEN
SECTION Tranfer_Loop
/*force agent to complete transfer*/
GIVE RAN please_complete_transfer_ran_gv
WAIT 20
EXECUTE Transfer_Loop
ELSE
GIVE RAN hello_again_ran_gv
END IF
In this section
Overview 344
AGE OF CONTACT 443
CONTACT DATA 444
CONTACT TYPE 448
ROUTE POINT 450
URI 453
Overview
This section on Open Queue intrinsics refers to intrinsics used with third-party
applications. These intrinsics are intended for future PSO & third-party
application developers.
For more information about using these intrinsics and scripting guidelines for
Contact Center Multimedia contacts, see “Scripting for Multimedia and
Outbound”.
AGE OF CONTACT
This intrinsic represents the length of time the contact is in the system and is the
non-voice equivalent to AGE OF CALL.
Script syntax
AGE OF CONTACT
Return type
This intrinsic returns the age of the contact in seconds.
Example
In this example, an e-mail contact receives special handling if the age of the
contact is greater than 500 seconds.
IF CONTACT TYPE = g_EMAIL_gv THEN
IF AGE OF CONTACT > 500 THEN
/* Special Handling */
END IF
END IF
CONTACT DATA
The CONTACT DATA intrinsic is used with the ASSIGN TO script command.
The value returned by CONTACT DATA is assigned to the variable specified in
the ASSIGN TO command. This is the only supported use of CONTACT DATA.
The CONTACT DATA key name is a string, which returns a string type by
default; however, a specific number of alternative return data types are also
supported. A convention is defined for identifying the specific data types: a
defined string is used in the key name to specify the alternative return type.
Script syntax
ASSIGN CONTACT DATA <key name> TO <call variable>
Parameters
<key name>: The string name of the key used to store the intrinsic data. The key
is unique for the specific piece of information. The following strings at the start
of the key name are used to specify alternative return types:
%AGENT%
%DATE%
%INTEGER%
%PRIORITY%
%SKILLSET%
%TIME%
These strings are case-insensitive. However, the full key name must exactly
match the key name entered when the contact is created.
<call variable>: A variable of a suitable type to store the value of the key. The
default type for the variable is string. If an alternative data type is specified using
the defined string at the start of the key name, then the type of the variable
should match. Using an inappropriate variable for the returned type results in a
script activation failure because of the incompatible types in the assignment.
Return type
The return type is a string value by default. If the key name starts with a unique
string to represent a data type, then alternative return types are returned.
%AGENT% Agent ID
%DATE% Date
%INTEGER% Integer
%PRIORITY% Priority
%SKILLSET% Skillset
%TIME% Time
Examples
Example one
This example specifies skillset and priority return types for direct queuing using
information stored with the contact.
ASSIGN CONTACT DATA "%SKILLSET%mySkillset" TO skillset_cv
ASSIGN CONTACT DATA "%PRIORITY%myPriority" TO priority_cv
QUEUE TO SKILLSET skillset_cv WITH PRIORITY priority_cv
WAIT 2
Example 2
This example specifies date and time return types for a callback using
information stored with the contact.
ASSIGN CONTACT DATA "%TIME%myTime" TO time_cv
ASSIGN CONTACT DATA "%DATE%myDate" TO date_cv
SECTION wait_loop
IF (((date_cv = DATE)
AND (time_cv > TIME OF DAY))
OR (date_cv > DATE)) THEN
WAIT 60
EXECUTE wait_loop
ELSE
EXECUTE wait_complete
END IF
SECTION wait_complete
Example 3
This example specifies an integer return type defining how long a contact waits
before being queued.
ASSIGN CONTACT DATA "%SKILLSET%mySkillset" TO skillset_cv
ASSIGN CONTACT DATA "%INTEGER%myWaitTime" TO integer_cv
WAIT integer_cv
QUEUE TO SKILLSET skillset_cv
WAIT 2
Example 4
This example specifies an agent return type for direct queuing using information
stored with the contact.
ASSIGN CONTACT DATA "%AGENT%myAgent" TO agent_cv
QUEUE TO AGENT agent_cv
WAIT 2
Example 5
This example specifies a string for direct queuing using account type
information stored with the contact.
ASSIGN CONTACT DATA "myAccountType" TO string_cv
WHERE string_cv EQUALS
VALUE "GOLD": QUEUE TO SKILLSET gold_ss
VALUE "PLATINUM": QUEUE TO SKILLSET platinum_ss
VALUE "BRONZE": QUEUE TO SKILLSET bronze_ss
DEFAULT: QUEUE TO SKILLSET general_ss
END WHERE
WAIT 2
CONTACT TYPE
This intrinsic returns the contact type of the contact. With the release of Contact
Center Manager Server 6.0, multimedia contacts such as e-mail, Web
communication, outbound, and video can be routed to agents through the
Contact Management Framework using the Communication Control Toolkit.
This intrinsic can also be used to screen contacts and ensure that voice and
multimedia contacts are not using the same scripts or call flows. For example,
you do not want to send an e-mail contact to a voice application or voice agents.
If this happens, contact presentation to the voice agent is rejected (only on run
time).
For SIP-enabled contact centers, only voice and video contact types are
supported at this time
Both call variables and global variables can be created for CONTACT TYPE,
which can be system-default contact types or user-defined contact types.
Script syntax
CONTACT TYPE
Return type
This intrinsic returns the contact type ID to the script.
Examples
Example 1
In this example, the CONTACT TYPE intrinsic is used to route e-mail contacts.
IF CONTACT TYPE = c_contact_type_email_gv THEN
EXECUTE SCRIPT email_handler
END IF
Example 2
In this example, scripts are executed based on their CONTACT TYPE.
WHERE CONTACT TYPE EQUALS
VALUE c_contact_type_email_gv: EXECUTE SCRIPT email_handler
VALUE c_contact_type_voice_gv: EXECUTE SCRIPT voice_handler
DEFAULT: EXECUTE SCRIPT voice_handler
END WHERE
ROUTE POINT
The ROUTE POINT intrinsic represents the anchor point for a contact and is a
multimedia equivalent to the CDN for a voice contact to represent the route
point for all contact types.
This intrinsic is used for filtering in the master script. It executes primary scripts
based on the ROUTE POINT of the contact, rather than just the contact type.
Script syntax
ROUTE POINT
Return type
This intrinsic returns the name of the route point to the script as a string value.
Example
In this example, contacts are first routed based upon their contact types. Voice
contacts are given treatment based upon their CDN, and e-mail and outbound
contacts are given treatment based upon their ROUTE POINT.
/* Title: Master Script */
GIVE RINGBACK
WHERE CONTACT TYPE EQUALS
VALUE c_VOICE_gv: EXECUTE CDNCheck
VALUE c_EMAIL_gv: EXECUTE SCRIPT RoutepointCheck
VALUE c_OUTBOUND_gv: EXECUTE SCRIPT RoutepointCheck
END WHERE
SECTION CDNCheck
WHERE CDN EQUALS
ELSE
IF NOT OUT OF SERVICE default_skillset_cv THEN
QUEUE TO SKILLSET default_skillset_cv WITH PRIORITY
priority_cv
WAIT 2
ELSE
EXECUTE NightCheck
END IF
END IF
EXECUTE NightCheck
URI
Script syntax
URI
Return type
The URI intrinsic returns a string value representing the URI of a route point.
Example
In this example, a contact is queued to an e-mail skillset if the contact type is e-
mail, if the route point matches the route point global variable, and if the URI
matches the global variable URI.
IF CONTACT TYPE = c_EMAIL_gv THEN
IF ROUTE POINT = g_ROUTEPOINT_gv THEN
IF URI = g_URI_gv THEN
QUEUE TO SKILLSET EM_URI
END IF
END IF
END IF
Script expressions
In this chapter
Overview 456
Logical expressions 457
Mathematical expressions 460
Relational expressions 462
Order of operations 466
Overview
This chapter describes the expressions that you can use in your scripts to test for
various conditions:
logical expressions (for example, NOT, AND, OR)
mathematical expressions (for example, multiplication, division, addition,
and subtraction)
relational expressions (for example, greater than or less than)
This chapter also explains how to control the order in which operations are
performed.
Logical expressions
This section describes the logical expressions that you can use in your scripts to
test for various conditions.
NOT
The NOT expression evaluates a conditional expression and returns a True value
to the script if the expression is False, and a False value if the expression is True.
AND
The AND expression evaluates two or more comparative expressions and
returns a True value to the script if the two expressions are both True, and a
False value if either expression is False.
OR
The OR expression evaluates two or more comparative expressions and returns a
True value to the script if either, or both, of the two expressions are True, and a
False value if both expressions are False.
Examples
Example 1
The BestAir customer service department is open Monday to Friday, from 08:00
a.m. to 06:00 p.m. After 06:00 p.m., and on Saturday and Sunday, the
department is closed.
IF (TIME OF DAY = business_hours_gv)
AND DAY OF WEEK = weekdays_gv) THEN
GIVE RAN open_ran_gv
ELSE
GIVE RAN closed_ran_gv
DISCONNECT
END IF
The following table illustrates the conditions under which calls are given open
call treatment in Example 1.
Is it between
08:00 a.m.
Is it a and Give open
Expression weekday? 06:00 p.m.? service?
AND yes no no
AND no no no
AND no yes no
Example 2
The BestAir customer service department is open Monday to Friday, from 08:00
a.m. to 06:00 p.m. After 06:00 p.m., and on Saturday and Sunday, the
department is closed.
IF (TIME OF DAY > 18:00) OR (DAY OF WEEK = SATURDAY, SUNDAY) THEN
GIVE RAN closed_ran_gv
DISCONNECT
ELSE
GIVE RAN open_ran_gv
END IF
The following table illustrates the conditions under which callers receive closed
call treatment in Example 2.
OR no no no
OR no yes yes
Example 3
On the 1st and 15th of every month, BestAir has a company-wide meeting that
reduces the number of agents available to answer sales calls from customers.
Therefore, during these meetings, the company plays a recorded announcement
that tells callers that there can be some delay in answering their call. However,
the company does not hold the meetings if the 1st or 15th is Saturday or Sunday.
Regular sales service is available on Saturday or Sunday. This example also
shows how you can combine two expressions (in this case, AND and NOT).
IF (DAY OF MONTH = 1,15)
AND NOT(DAY OF WEEK = SATURDAY, SUNDAY) THEN
GIVE RAN meeting_ran_gv
END IF
The following table illustrates the conditions under which the recording is
played to a caller in Example 3.
Is it the 1st
or 15th day Is it
of the Saturday or Give meeting
Expression month? Sunday? recording?
AND NOT no no no
Mathematical expressions
This section describes the mathematical expressions that you can use in your
scripts to test for different conditions.
Addition
Symbol
+
Description
The Addition expression (plus sign) adds two values of the same type. This
expression can be used with numerical constants, variables, and expressions that
return the data types Integer and Seconds.
Division
Symbol
/
Description
The Division expression (forward slash) divides the first value by the second
value of the same type. This expression can be used with numerical constants,
variables, and expressions that return the data types Integer and Seconds.
If the result of the division is not an integer, the value is truncated, not rounded.
For example, 10.7 becomes 10.
Multiplication
Symbol
*
Description
The Multiplication expression (asterisk) multiplies two values of the same type.
This expression can be used with numerical constants, variables, and
expressions that return the data types Integer and Seconds.
Subtraction
Symbol
–
Description
The Subtraction expression (dash) subtracts the second value from the first value
of the same type and can be used with numerical constants, variables, and
expressions that return the data types Integer and Seconds.
Relational expressions
You can use relational expressions to compare the values of intrinsics, variables,
and constants. The data type on each side of the comparison equation must be
the same for the comparison to be a valid expression. Comparison expressions
are used to evaluate a specific situation. For example, a test of the expression
TIME OF DAY >= 08:00
Values that can only be True or False are referred to as Boolean values. The state
of several situations at once (for example, it is later than 08:00, and there is at
least one agent logged on to the skillset) can be evaluated by writing several
comparison expressions, and then joining them into a logical expression
consisting of a series of true or false answers.
Limitations
Some relational expressions can be used only with variables that return integers,
seconds, and dates. For example, although you can determine that a numerical
value greater is than 312, you cannot determine that a skillset is greater than
another skillset.
Equal to (=) and not equal to (< >) can be used for all types of data.
The Greater Than (>), Less Than (<), Greater Than or Equal (> =), and Less
Than or Equal (< = ) expressions can be used only with integers, time, and dates.
These expressions cannot be used with skillsets, DNs, agent IDs, and so on.
Example 1: Incorrect
The following is an example of an invalid use of the Greater Than expression. In
these examples, 1543 is an agent ID.
IF (LONGEST IDLE AGENT gold_card_sk > 1543) THEN
...
Example 2: Correct
The following is an example of a valid use of an expression.
Example
IF (CLID = 4165355130, 4165355139, 4165355200..4165355300) THEN
...
This example tests whether the CLID is any of these values. The left side of the
comparison is an item (CLID intrinsic), and the right side is a set. In this
example, it is a constant list, including a range, but it can also be a set variable.
Equal
Symbol
=
Description
The Equal expression compares two values of the same type to see if they are
equal or if they are of the same set (list or range).
Not Equal
Symbol
<>
Description
The Not Equal expression compares two values of the same type to see if the
first value is different from the second value or if the value on the left is not in
the set (list or range) of values on the right.
Greater Than
Symbol
>
Description
The Greater Than expression compares two values of the same type to see if the
first value is greater than the second value.
Less Than
Symbol
<
Description
The Less Than expression compares two values of the same type to see if the
first value is less than the second value.
Symbol
>=
Description
The Greater Than or Equal expression compares two values of the same type to
see if the first value is greater than or equal to the second value.
Symbol
<=
Description
The Less Than or Equal expression compares two values of the same type to see
if the first value is less than or equal to the second value.
Order of operations
When you evaluate conditional expressions, the expression with the highest
precedence (importance) is evaluated first, then the one with the second highest
precedence, and through to the expression with the lowest precedence.
When expressions appear more than once, or when two expressions with equal
importance appear in the same expression, they are evaluated from left to right.
The expression NOT has precedence over the AND and OR expressions.
Example
Compare the results of the following calculations that have the parentheses in
different places:
2 * 3 + 2 * 3 = 12
2 * (3 + 2 * 3) = 18
(2 * 3 + 2) * 3 = 24
(2 * 3) + (2 * 3) = 12
Applications
In this chapter
Overview 468
Applications and application thresholds 469
Overview
ATTENTION
If you try to activate more primary scripts than the maximum
number of applications configured for your system, the
activation request is denied. This control prevents Contact
Center Manager from tracking call information. You can
reduce the number of primary scripts or you can increase the
number of applications configured for your server to ensure
that all primary scripts can be activated. The maximum
number of applications you can configure for Contact Center
Manager is 505 (including system scripts).
A display threshold class specifies the fields that apply to an application that you
use in a real-time display. For display threshold classes, you can set the level 1
(low) and level 2 (high) threshold values. In the real-time display, a statistic
changes color if it falls below the level 1 value or if it exceeds the level 2 value.
Example
A service level threshold is set at 20 seconds, which means that if a call is
answered or disconnected after 20 seconds, the service level objective is not met.
A caller waits for 21 seconds, and then the call is answered. The call is pegged
as Answered After Threshold.
To view applications
1 In Contact Center Manager Administration, open the Scripting window .
2 Expand the system tree in the Scripting window.
3 Click the appropriate server.
Result: The Script Manager appears with the expanded server.
4 In the Threshold Classes window, enter the name of the new threshold
class.
5 From the Type list, select the type Application.
Result: The application threshold class is automatically created.
. Select the application thresholds for the threshold class from the re
6 In the Thresholds window, choose the thresholds for the new application
threshold.
Result: The new application threshold class can now be applied to
applications in the Scripting component of Contact Center Manager
Administration.
You can see which threshold class is assigned to every application on a server
and you can view the threshold levels defined within the threshold class.
Tip: If you require access to application thresholds but do not see this
folder, you do not have access to application thresholds under the selected
server. Contact your administrator and request Application Thresholds
access.
3 From the list of applications in the left-hand pane of the window, click the
desired application.
Result: The threshold class that is assigned to the application appears in
the list in the right-hand pane and the threshold class values appear in the
table below it.
You can change the statistic threshold values and enable or disable statistics in
an application threshold class.
ATTENTION
One threshold class can be assigned to multiple applications on a
server. When you edit a threshold class, your changes apply to
all applications to which it is assigned.
Tip: If you require access to application thresholds but do not see this
folder, you do not have access to application thresholds under the selected
server. Contact your administrator and request Application Thresholds
access.
3 In the right-hand pane, from the list, select the threshold class that you
want to change.
Result: The threshold class attributes appear in the table.
4 To change the statistic threshold values:
a. Type the new Level 1 and Level 2 levels beside the statistic that you
want to change.
Tip: For a display threshold, type the value for the low end of the normal
range in the Level 1 box; type the value for the high end of the normal
range in the Level 2 box. For a pegging threshold, in the Level 1 box, type
the upper limit value for this statistic.
b. Press Tab to save your changes.
5 To enable statistics:
a. In the Enabled column, select the check box beside the statistics that
you want to add to the threshold class.
b. Select the Level 1 and Level 2 threshold levels for the statistics that you
add.
Tip: For a display threshold, type the value for the low end of the normal
range in the Level 1 box; type the value for the high end of the normal
range in the Level 2 box. For a pegging threshold, in the Level 1 box, type
the upper limit value for this statistic.
c. Press Tab to save your changes.
6 To disable statistics, clear the Enabled check box beside the statistics that
you want to remove from the threshold class.
Result: The system automatically removes the statistic from the threshold
class.
In this chapter
Overview 480
Section A: Getting started with sample scripts 481
Section B: Common scripts 493
Section C: Network Skill-Based Routing scripts 523
Section D: Nodal Routing examples 533
Overview
Nortel provides sample scripts with Contact Center Manager to get you started
on your server scripts.
Section A: “Getting started with sample scripts,” on page 481, explains how to
create the initial scripts that you must get started and how to edit the master
script.
The remaining sections list the sample scripts that are included with Contact
Center Manager Administration software and provide a brief explanation of
what each script does.
You can also import sample scripts into the Web Scripts Editor, and then copy
the sections that you need into your own scripts. For more information, see
“Importing scripts into Contact Center Manager” on page 168.
The variables used in the sample scripts are examples only. If you use a sample
script that contains variables, you must create and define the variables on your
system. For more information, see “Creating script variables” on
page 109.
Advanced commands
Some sample scripts use advanced commands. With the release of Contact
Center Manager, only packages 200 and 300 are available. Package 200 contains
all commands except for networking commands. Package 300 contains all
commands. For a list of advanced commands that you can use in Contact Center
Manager, see “Advanced script commands” on page 245.
In this section
Overview 482
Creating the initial scripts 484
Editing the master script 490
Overview
All variables, agents, and skillsets also must be created. For more information
about creating agents and skillsets, see the Nortel Contact Center Manager
Administrator’s Guide.
If you plan to use voice prompts in your scripts, all voice segments must be
created using the Voice Prompt Editor for Meridian Mail and Application
Builder for CallPilot.
For more information about Voice Prompt Editor, see the Nortel Contact Center
Manager Administrator’s Guide. For more information about Application
Builder, see the CallPilot Application Builder Guide.
Variables
The variables used in the sample scripts are examples only. If you use a sample
script that contains variables, you must create and define the variables on your
system. For more information, see “Creating script variables” on page 109.
Steps to take
After you configure your system and create all of the variables that you need,
complete the following procedures:
“Creating the initial scripts” on page 484
“Editing the master script” on page 490
When you complete these procedures, you can test the scripts by placing calls to
your contact center.
This section explains how to create initial scripts from the sample scripts
provided with Contact Center Manager. Create these scripts to test how calls are
handled when they arrive at Contact Center Manager.
To begin using the routing sample scripts on your system, perform the procedure
in this section to create the following scripts:
c_Primary_One
c_Common_Secondary
7 From the server list, expand the folder list to SampleScripts > CS1000
(M1)_samples > Routing_Examples > Nodal Examples > Secondary.
Tip: By importing the secondary script first, you ensure that validation does
not fail when validating the primary script because the primary script
references the secondary script.
8 Select the secondary script that you want to create. For example, select the
script c_common_secondary.s.
9 Click OK to import the script.
10 From the Web Scripts Editor, choose File > Save.
Result: A dialog box appears prompting you to save the script to the
server.
11 Click Yes.
Result: The New Script Name dialog box appears.
12 Enter the name of the sample script. Do not enter the file extension.
13 Click OK.
18 From the server list, expand the folder list to SampleScripts > CS1000
(M1)_samples > Routing_Examples > Nodal Examples > Primary.
19 Select the primary sample script that you want to create. For example,
select the script c_primary_one.s.
20 Click OK to import the script.
21 From the Web Scripts Editor, choose File > Save.
Result: A dialog box appears prompting you to save the script to the
server.
22 Click Yes.
Result: The New Script Name dialog box appears.
23 Enter the name of the sample script. Do not enter the file extension.
24 Click OK.
25 From the Web Scripts Editor, choose Edit > Validate.
Tip: If the validation fails, it can be because of a missing variable or a
variable of the wrong type. To find which variables you need for each script,
see the script that you want to use in the following sections.
This section explains how to import the contents of the sample script
c_Master_with_Exception_Checks into a new script. The script you create
serves as the master script for Contact Center Manager.
4 Double-click Master_Script.
Result: The Web Scripts Editor page appears.
6 From the server list, expand the folder list to SampleScripts > CS1000
(M1)_samples > Routing_Examples > Nodal Examples > Master.
7 Select c_Master_with_Exception_Checks.s.
8 Click OK to import the script.
9 From the Web Scripts Editor page, choose File > Activate.
Result: The script is automatically validated. If the validation fails, it may be
because of a missing variable, a variable of the wrong type, or a dependent
script that is not validated. Also, ensure that the master script references
the correct primary script name. To find which variables you need for each
script, see the script that you want to use in the following sections.
The c_Primary_One and c_Common_Secondary scripts are automatically
activated.
You can now test your scripts by placing a call to Contact Center Manager.
In this section
Overview 494
c_Basic 495
c_Basic_Backup_Skillset 497
c_Emergency_Boolean 500
c_Emergency_Skillset_Check 504
c_Excess_Call_Volume_Give_Busy 507
c_Expected_Wait_Message 509
c_Forced_Announcement 514
c_Holiday_Broadcast_Announcement 516
c_Priority_in_Queue_DNIS 519
Overview
Contact Center Manager provides nine common scripts that you can use in your
contact center. The sample scripts are in the directory C:\Program Files\Nortel
Networks\WClient\Server\SampleScripts. The sample scripts serve as primary
scripts. You do not need to reference any scripts to test call routing in your
contact center when you use these scripts, but all variables used in the sample
scripts must be defined before you validate the scripts.
c_Basic
Function
In this script, a test determines if the contact center is closed because the day is a
holiday, Saturday or Sunday, or if the time is after business hours. If the contact
center is open and agents with the required skillset are available to answer the
call, it is queued to the skillset, and the caller hears a recorded announcement
followed by music.
While the caller is waiting, the call is repeatedly checked to determine if it is still
queued. If not, a test determines if agents are still logged on to the skillset. If all
agents are logged off, the caller hears a recorded announcement and is
disconnected; otherwise, the call is requeued to the skillset.
Script text
/* Title: c_Basic
Note: Replace skillset_sk with the desired skillset name.
*/
IF (DATE = holidays_gv)
OR (DAY OF WEEK = weekends_gv)
OR (TIME OF DAY = closed_hours_gv) THEN
GIVE RAN closed_ran
DISCONNECT
END IF
SECTION WaitLoop
WAIT treatment_timer_gv
IF NOT QUEUED THEN
IF OUT OF SERVICE skillset_sk THEN
GIVE RAN dayclosed_ran
DISCONNECT
ELSE
QUEUE TO SKILLSET skillset_sk
WAIT 2 /* Allow time in case an agent is
available */
END IF
END IF
GIVE RAN second_ran
EXECUTE WaitLoop
c_Basic_Backup_Skillset
Function
In this script, a test determines if the contact center is closed because the day is a
holiday, Saturday or Sunday, or if the time is after business hours. If the contact
center is open and agents with the required skillset are available to answer the
call, it is queued to the skillset, and the caller hears a recorded announcement
followed by music.
After 10 seconds, a test determines if agents are still logged on to the skillset.
While the caller is waiting, the call is repeatedly checked to determine if it is still
queued. If not, a test determines if agents are logged on to the backup skillset. If
all agents in the backup skillset are logged off, the caller hears a recorded
announcement and is disconnected; otherwise, the call is requeued to the
skillset.
Script text
/* Title: c_Basic_Backup_Skillset
Note: Replace skillset_sk and backup_skillset_sk with the desired
skillset names.
IF (DATE = holidays_gv)
OR (DAY OF WEEK = weekend_gv)
OR (TIME OF DAY = closed_hours_gv) THEN
GIVE RAN closed_ran
DISCONNECT
END IF
SECTION WaitLoop
WAIT treatment_timer_gv
IF NOT QUEUED THEN
IF OUT OF SERVICE skillset_sk THEN
c_Emergency_Boolean
Function
In this script, a test determines if there is an emergency in the contact center. If
so, callers receive a recorded announcement and are disconnected. If there is no
emergency, and agents with the required skillset are available to answer the call,
it is queued to that skillset.
While the caller is waiting, the call is repeatedly checked to determine if it is still
queued, and the caller hears a series of recorded announcements. If the call is
still in a queue after all recorded announcements play, the caller receives a
message stating that all agents are busy, and the call remains in a queue.
Script text
/* Title: c_Emergency_Boolean
Note: Replace skillset_sk with desired skillset name.
IF emergency_gv THEN
GIVE IVR mmail_gv WITH TREATMENT msg_emerg_gv
DISCONNECT
END IF
SECTION General
WAIT 45
IF NOT QUEUED THEN
IF OUT OF SERVICE skillset_sk THEN
EXECUTE DayClosed
ELSE
QUEUE TO SKILLSET skillset_sk
WAIT 2
END IF
END IF
GIVE IVR INTERRUPTIBLE mmail_gv WITH TREATMENT tip1_msg_gv
WAIT 60
IF NOT QUEUED THEN
IF OUT OF SERVICE skillset_cv THEN
EXECUTE DayClosed
ELSE
QUEUE TO SKILLSET skillset_cv
WAIT 2
END IF
END IF
GIVE IVR INTERRUPTIBLE mmail_gv WITH TREATMENT
still_busy_msg2_gv
WAIT 90
IF NOT QUEUED THEN
IF OUT OF SERVICE skillset_cv THEN
EXECUTE DayClosed
ELSE
QUEUE TO SKILLSET skillset_cv
WAIT 2
END IF
END IF
GIVE IVR INTERRUPTIBLE mmail WITH TREATMENT tip2_msg_gv
WAIT 60
EXECUTE ClosedCheckLoop
SECTION ClosedCheckLoop
IF NOT QUEUED THEN
IF OUT OF SERVICE skillset_sk THEN
EXECUTE DayClosed
ELSE
QUEUE TO SKILLSET skillset_sk
WAIT 2
END IF
END IF
GIVE IVR INTERRUPTIBLE mmail_gv WITH TREATMENT
still_busy_msg2_gv
WAIT 180
EXECUTE ClosedCheckLoop
SECTION DayClosed
GIVE IVR mmail_gv WITH TREATMENT day_closed_msg_gv
DISCONNECT
c_Emergency_Skillset_Check
Function
In this script, a test determines if the contact center is closed because the day is a
holiday, Saturday or Sunday, or if the time is after business hours. If so, the
caller hears a recorded announcement and is disconnected. If the contact center
is not closed, a test determines if there is an emergency in the contact center. If
so, the caller hears a recorded announcement and is disconnected.
If the contact center is open, there is no emergency, and agents with the required
skillset are available to answer the call, it is queued to the skillset.
While the caller is waiting, the call is repeatedly checked to determine if it is still
queued. If not, a test determines if agents are still logged on to the skillset. If all
agents are logged off, the caller hears a recorded announcement and is
disconnected; otherwise, the call is requeued to the skillset. If the call is
requeued, a test is repeatedly performed to determine if an emergency was
declared while the caller waits in a queue.
Script text
/* Title: c_Emergency_Skillset_Check
Note: Replace skillset_sk with the desired skillset name.
SECTION WaitLoop
WAIT treatment_timer_gv
IF NOT OUT OF SERVICE emergency_sk THEN
GIVE RAN emergency_ran
DISCONNECT
END IF
IF NOT QUEUED THEN
IF OUT OF SERVICE skillset_sk THEN
GIVE RAN dayclosed_ran
DISCONNECT
ELSE
QUEUE TO SKILLSET skillset_sk
WAIT 2 /* Allow time in case an agent is
available */
END IF
END IF
GIVE RAN second_ran
EXECUTE WaitLoop
c_Excess_Call_Volume_Give_Busy
Function
In the following script, a test determines if the contact center capacity to handle
calls exceeds the specified threshold. If so, callers receive a busy treatment;
otherwise, the call is queued to the specified skillset.
Script text
/* Title: c_Excess_Call_Volume_Give_Busy
SECTION WaitLoop]
WAIT treatment_timer_gv
IF NOT QUEUED THEN
IF OUT OF SERVICE skillset_sk THEN
GIVE RAN dayclosed_ran
DISCONNECT
ELSE
QUEUE TO SKILLSET skillset_sk
WAIT 2 /* Allow time in case an agent is
available */
END IF
END IF
GIVE RAN second_ran
EXECUTE WaitLoop
c_Expected_Wait_Message
Function
In this script, a test determines if the contact center is closed because the day is a
holiday, Saturday or Sunday, or if the time is after business hours. If the contact
center is open and agents with the required skillset are available to answer the
call, it is queued to the skillset.
The script then calculates the time callers can expect to wait before their call is
answered. If the expected wait time is less than 1 minute, the caller hears a
recorded announcement stating that there is a short delay before the call is
answered. If the expected wait time is more than 15 minutes, the caller hears a
recorded announcement stating that there is a long delay before the call is
answered.
The caller is then informed of the expected wait time before the call is answered.
If this time is exceeded, the caller hears a message apologizing for the delay.
Script text
/* Title: c_Expected_Wait_Message
Note: Replace skillset_sk with the desired skillset name.
IF (DATE = holidays_gv)
OR (DAY OF WEEK = weekend_gv)
OR (TIME OF DAY = closed_hours_gv) THEN
GIVE RAN night_ran
DISCONNECT
END IF
WAIT 2
SECTION CheckAge
WAIT loop_time_gv
IF NOT QUEUED THEN
IF OUT OF SERVICE skillset_sk THEN
EXECUTE DayClosed
ELSE
QUEUE TO SKILLSET skillset_sk
WAIT 2
END IF
END IF
IF AGE OF CALL > (expwait_rounded_mins_cv * 60) THEN
/*need to convert to secs*/
GIVE CONTROLLED BROADCAST ANNOUNCEMENT
PLAY PROMPT VOICE SEGMENT exp_wait_apology_vs
EXECUTE WaitLoop
END IF
EXECUTE CheckAge
SECTION WaitLoop
WAIT loop_time_gv
IF NOT QUEUED THEN
IF OUT OF SERVICE skillset_sk THEN
EXECUTE DayClosed
ELSE
QUEUE TO SKILLSET skillset_sk
WAIT 2
END IF
END IF
EXECUTE WaitLoop
SECTION DayClosed
c_Forced_Announcement
Function
In this script, a test determines if agents with the required skillset are available to
answer the call. If so, the caller hears an entire recorded announcement, and the
call is then queued to the skillset.
While the caller is waiting, the call is repeatedly checked to determine if it is still
queued. If not, a test determines if agents are still logged on to the skillset. If all
agents are logged off, the call is routed to a mailbox and the caller is asked to
leave a recorded message. If agents are available to answer the call, it is
requeued to the skillset.
Script text
/* Title: c_Forced_Announcement
*/
IF (DATE = holidays_gv)
OR (DAY OF WEEK = weekends_gv)
OR (TIME OF DAY = closed_hours_gv) THEN
GIVE RAN closed_ran
DISCONNECT
END IF
SECTION WaitLoop
WAIT treatment_delay_gv
IF NOT QUEUED THEN
IF OUT OF SERVICE skillset_sk THEN
ROUTE CALL mailbox_gv
ELSE
QUEUE TO SKILLSET skillset_sk
WAIT 2
END IF
END IF
GIVE RAN second_ran
EXECUTE WaitLoop
c_Holiday_Broadcast_Announcement
Function
In this script, a test determines if the contact center is closed due because the day
is a holiday. If so, the caller hears a special holiday announcement. If it is
Saturday or Sunday, or if the time is after business hours, the caller hears a
recorded announcement stating that the contact center is closed. If the contact
center is open, and agents with the required skillset are available to handle the
call, it is queued to the skillset.
While the caller is waiting, the call is repeatedly checked to determine if it is still
queued. If not, a test determines if agents are still logged on to the skillset. If all
agents are logged off, the caller hears a recorded announcement and is
disconnected. If agents are available to answer the call, it is requeued to the
skillset.
Script text
/* Title: c_Holiday_Broadcast_Announcement
*/
SECTION WaitLoop
WAIT treatment_timer_gv
IF NOT QUEUED THEN
IF OUT OF SERVICE skillset_sk THEN
GIVE RAN dayclosed_ran
DISCONNECT
ELSE
QUEUE TO SKILLSET skillset_sk
WAIT 2
/* Allow time in case an agent is available */
END IF
END IF
GIVE RAN second_ran
EXECUTE WaitLoop
c_Priority_in_Queue_DNIS
Function
In this script, a test determines if the contact center is closed because the day is a
holiday, Saturday or Sunday, or if the time is after business hours. If the contact
center is open and agents with the required skillset are available to answer the
call, the call is assigned a priority level based on the call DNIS number, and then
queued to the skillset.
While the caller is waiting, the call is repeatedly checked to determine if it is still
queued. If not, a test determines if agents are still logged on to the skillset. If all
agents are logged off, the caller hears a recorded announcement and is
disconnected. If agents are available to answer the call, it is requeued to the
skillset.
Script text
/* Title: c_Priority_in_Queue_DNIS
Note: Replace skillset_sk with the desired skillset name.
Global Variable List: Variable Type:
1. holidays_gv - DATE (holiday dates)
2. weekend_gv - DAY (contains Saturdayand Sunday)
3. closed_hours_gv - TIME (value for closed hours)
4. dnis_1 - DNIS
5. dnis_2 - DNIS
6. dnis_3 - DNIS
7. first_ran - RAN (RAN route for first
announcement)
8. second_ran - RAN (RAN route for second
announcement)
9. closed_ran - RAN (RAN route for night
announcement)
10. dayclosed_ran - RAN (RAN route for day closed
announcement)
11. treatment_timer_gv - SECONDS
*/
IF (DATE = holidays_gv)
OR (DAY OF WEEK = weekends_gv)
OR (TIME OF DAY = closed_hours_gv)
THEN
GIVE RAN closed_ran
DISCONNECT
END IF
SECTION WaitLoop
WAIT treatment_timer_gv
IF NOT QUEUED THEN
IF OUT OF SERVICE skillset_sk THEN
GIVE RAN dayclosed_ran
DISCONNECT
ELSE
QUEUE TO SKILLSET skillset_sk WITH PRIORITY
sk_priority_cv
WAIT 2 /* Allow time in case an agent is
available */
END IF
END IF
GIVE RAN second_ran
EXECUTE WaitLoop
In this section
Overview 524
c_NSBR_Basic 525
c_NSBR_Primary 527
c_NSBR_Distribution 530
c_Network 532
Overview
If you purchased the Network Skill-Based Routing (NSBR) option, you can use
the following sample scripts to test the routing of calls from one Contact Center
Manager site to another. The sample scripts are located in the directory
C:\Program Files\Nortel Networks\WClient\Server\SampleScripts\CS1000
(M1)_samples\NSBR.
c_NSBR_Basic
Function
This script is used to route a call from one Contact Center Manager site to
another. The script first performs a test to determine if the contact center is
closed due to a holiday or a weekend, or if it is after business hours. If the
contact center is open and agents with the required skillset are available to
answer the call, it is queued to the local skillset and the network skillset. If no
agents in either the local or network skillset are available to answer the call, a
recorded announcement plays asking the caller to leave a message.
Script text
/* Title: NBSR_Basic
Global Variable List: Variable Type:
1. holiday_gv - DATE (holiday dates)
2. weekend_gv - DAY (weekend days:
Saturday, Sunday)
3. closed_hrs_gv - TIME (special value for
closed hours)
4. ran_nite_gv - RAN (RAN route for night
announcement)
5. ran_greeting_gv - RAN (RAN route for
greeting
announcement)
6. music_soft_gv - MUSIC (route for music)
7. mailbox_gv - DN (value of voice system)
*/
IF (DATE = holiday_gv)
OR (DAY OF WEEK = weekend_gv)
OR (TIME OF DAY = closed_hrs_gv) THEN
GIVE RAN ran_nite_gv
DISCONNECT
END IF
SECTION WaitLoop
WAIT 20
IF NOT QUEUED THEN
IF NOT OUT OF SERVICE skillset_sk THEN
QUEUE TO SKILLSET skillset_sk
WAIT 2
QUEUE TO NETWORK SKILLSET skillset_network_sk
WAIT 4/* Just in case an agent is idle*/
ELSE
ROUTE CALL mailbox_gv
END IF
END IF
GIVE RAN ran_second_gv
EXECUTE WaitLoop
c_NSBR_Primary
Function
This script is used to route a call from one Contact Center Manager site to
another. The script queues the call to the local skillset and the network skillset. If
the call is not successfully queued to the network skillset, it is then queued to a
backup network skillset. If the call is not successfully queued to the backup
network skillset or the local skillset, a recorded announcement plays asking the
caller to leave a message.
Script text
/* Title: c_NSBR_Primary
*/
IF (DATE = holidays_gv)
OR (DAY OF WEEK = weekend_gv)
OR (TIME OF DAY = afterhours_gv) THEN
GIVE RAN nite_ran
DISCONNECT
END IF
SECTION WaitLoop
WAIT 20
IF PRIORITY IN NETWORK QUEUE skillset_sk = 0 THEN
QUEUE TO NETWORK SKILLSET backup_skillset_sk
WAIT 4
EXECUTE WaitLoop2
END IF
GIVE RAN second_ran
EXECUTE WaitLoop
SECTION WaitLoop2
WAIT 20
IF NOT QUEUED THEN
QUEUE TO NACD nacd_q
WAIT 2
EXECUTE AgeCheck
END IF
GIVE RAN second_ran
EXECUTE WaitLoop2
SECTION AgeCheck
WAIT 30
IF AGE OF CALL >= too_old_gv THEN
ROUTE CALL mailbox_gv
END IF
GIVE RAN second_ran
EXECUTE AgeCheck
c_NSBR_Distribution
Function
This script is used to route a call from one Contact Center Manager site to
another. The script first performs a mathematical calculation to determine if the
number of idle agents in a specific skillset is less than or equal to the number of
logged-on agents divided by an agent logged-on ratio. Based on the result of the
calculation, the call is queued first to either a local or a network skillset. If the
call is not successfully queued to either the local or network skillset, a recorded
announcement plays asking the caller to leave a message.
The purpose of this script is to distribute calls evenly among all sites in a
multisite contact center. This ensures that no single site is handling the majority
of calls.
With Contact Center Manager Release 6.0, you can also route calls using LIA,
ASA, FB, Reserve Agent, and Wild Variables.
Script text
/* Title: c_NSBR_Distribution
Global Variable List: Variable Type:
1. holidays_gv - DATE (dates for holidays)
2. weekend_gv - DAY (days of week)
3. afterhours_gv - TIME (hours closed)
4. nite_ran - RAN (RAN route for night
announcement)
5. first_ran - RAN (RAN route for first
announcement)
6. second_ran - RAN (RAN route for second
announcement)
7. soft_music - MUSIC (route number for
music)
8. agent_factor_gv - INTEGER (value of agent
logged in ratio)
*/
IF (DATE = holidays_gv)
OR (DAY OF WEEK = weekend_gv)
OR (TIME OF DAY = afterhours_gv) THEN
GIVE RAN nite_ran
DISCONNECT
END IF
SECTION WaitLoop
WAIT 20
IF NOT QUEUED THEN
GIVE RAN nite_ran
DISCONNECT
END IF
GIVE RAN second_ran
EXECUTE WaitLoop
c_Network
Function
This script is used in the event that a call is routed to an agent at a remote site but
it is returned to the queue because the agent at the remote site became
unavailable. When the call is returned to the local queue, the caller hears music
and a recorded announcement. If all agents in the local skillset log off before the
call is answered, the caller hears a recorded announcement and is disconnected.
Script text
/* Title: c_Network
GIVE RINGBACK
WAIT 2 /* required to avoid race conditions with music */
GIVE MUSIC soft_music
SECTION WaitLoop
WAIT 10
IF NOT QUEUED THEN
GIVE RAN nite_ran
DISCONNECT
END IF
GIVE RAN second_ran
EXECUTE WaitLoop
In this section
Overview 534
c_Master_Handles_Call_Transfers 535
c_Master_with_Exception_Checks 537
c_Master_with_Menus 539
c_Primary_One 543
c_Primary_Two 544
c_Primary_Three 545
c_Primary_Four 546
c_Primary_Five 547
c_Common_Secondary 548
Overview
Master scripts
If you intend to use a master script, it must reference a primary script which, in
turn, must reference a secondary script.
Primary scripts
If you intend to use a primary script, it must reference a secondary script.
The primary scripts in this section define the values of call variables required for
historical reporting and real-time displays.
Secondary scripts
If you intend to use a secondary script, it must be referenced by a primary script.
c_Master_Handles_Call_Transfers
Function
This script handles a situation in which an agent transfers a call back to Contact
Center Manager. If the call arrives at the transfer CDN, a voice session is
established, prompting the agent to select the appropriate script to execute. After
the agent selects and completes the transfer by pressing the transfer key a second
time, the script executes. Executing this script ensures that any information
about the call is reported correctly.
Script text
/* Title: c_Master_Handles_Call_Transfers
ELSE
/* Caller is redirected to a script after the Agent
completes the Blind Transfer */
WHERE selection_cv EQUALS
VALUE 1: EXECUTE SCRIPT <script name>
VALUE 2: EXECUTE SCRIPT <script name>
VALUE 3: EXECUTE SCRIPT <script name>
VALUE 4: EXECUTE SCRIPT <script name>
DEFAULT: EXECUTE SCRIPT <script name>
END WHERE
END IF
END IF
c_Master_with_Exception_Checks
Function
In this script, a test determines if the contact center is closed because the day is a
holiday or if there is an emergency in the contact center. If the contact center is
open and there is no emergency, the script determines at which CDN the call
arrived. If the call is transferred, the script determines if the transferring agent is
still on the line. If so, script execution suspends for 6 seconds so the agent can
disconnect. If the agent disconnected or the call was not transferred, a primary
script is executed based on the CDN at which the call arrived.
Script text
/* Title: c_Master_with_Exception_Checks
Note: Replace <CDN> and <Script_Names> with site specific values.
IF (DATE = holiday_gv)
OR (DATE = spec_holiday_gv
AND TIME OF DAY = spec_holidayhrs_gv) THEN
GIVE RAN holiday_ran_gv
DISCONNECT
END IF
IF call_center_emerg_gv THEN
GIVE IVR mmail_gv WITH TREATMENT call_center_emerg_msg_gv
DISCONNECT
END IF
c_Master_with_Menus
Function
In this script, a test determines if the contact center is closed because the day is a
holiday or if there is an emergency in the contact center. If the contact center is
open and there is no emergency, the script determines at which CDN the call
arrived. Based on the CDN, either a primary script or a section within the master
script executes. The section within the master script establishes an IVR session,
prompting the caller to choose a menu option. The option chosen executes a
primary script. If the caller does not choose an option, the menu option replays,
and the call is directed to a default script.
Script text
/* Title: c_Master_Script_With_Menus
Note: Replace <CDN>,<Script_Names> and <SectionNames> with site
specific values.
IF (DATE = holiday_gv)
OR (DATE = spec_holiday_gv
AND TIME OF DAY = spec_holidayhrs_gv) THEN
EXECUTE SCRIPT Holiday_Closed
END IF
IF call_center_emerg_gv THEN
GIVE IVR mmail_q WITH TREATMENT call_center_emerg_msg_gv
DISCONNECT
END IF
SECTION <SectionName>
SECTION MainMenu
The c_Master_with_Menus sample script executes the main menu again if the
caller does not make a valid menu choice. Nortel strongly recommends that the
script check if the caller selected a valid menu choice and, if not, repeat the
menu in the one OPEN/END VOICE SESSION. Failure to do so can result in a
caller waiting too long to be reconnected because voice ports are unavailable
(not engineered correctly) and performance is affected. Voice ports must
disconnect and reconnect.
c_Primary_One
Function
This primary script defines the values of call variables and then directs the call to
a common secondary script.
Script text
/* c_Primary_One
Call Variable List: Variable Type:
1. ran_cv - RAN (holds assigned
ran route value)
2. skillset_cv - SKILLSET (holds assigned
skillset value)
3. time_loop_cv - SECONDS (holds value for
delay time)
*/
ASSIGN 100 TO ran_cv
ASSIGN A_skillset_sk TO skillset_cv
ASSIGN 20 TO time_loop_cv
c_Primary_Two
Function
This primary script defines the values of call variables and then directs the call to
a common secondary script.
Script text
/* c_Primary_Two
c_Primary_Three
Function
This primary script defines the values of call variables and then directs the call to
a common secondary script.
Script text
/* Title: c_Primary_Three
c_Primary_Four
Function
This primary script defines the values of call variables and then directs the call to
a common secondary script.
Script text
/* Title: c_Primary_Four
c_Primary_Five
Function
This primary script defines the values of call variables and then directs the call to
a common secondary script.
Script text
/* Title: c_Primary_Five
c_Common_Secondary
Function
In this script, a test determines if the contact center is closed because the day is a
holiday, Saturday or Sunday, or the time is after business hours. If so, the caller
hears a recorded announcement and is disconnected; otherwise, the caller hears a
message stating that the call may be recorded, and then the call is queued to the
appropriate skillset.
While the caller is waiting, the call is repeatedly checked to determine if it is still
queued. If not, a test determines if agents are still logged on to the skillset. If all
agents are logged off, the caller hears a recorded announcement and is
disconnected. If agents are available to answer the call, it is queued to the skillset
again.
Script text
/* Title: c_Common_Secondary
Global Variable List: Variable Type:
1. holiday_gv - DATE (holiday dates)
2. weekend_gv - DAY (weekend days:
Saturday, Sunday)
3. closed_hrs_gv - TIME (special value for
closed hours)
4. ran_nite_gv - RAN (RAN route for night
announcement)
5. wg_theme_gv - MUSIC (route for music)
6. mailbox_gv - DN (value of voice
system)
7. ivrdn - ACD (Meridian Mail queue)
8. system_unavailable_gv - TREATMENT DN (message
programmed in
Meridian Mail)
9. agents_busy_gv - TREATMENT DN (message
programmed in
Meridian Mail)
*/
IF (DATE = holiday_gv)
OR (DAY OF WEEK = weekend_gv)
OR (TIME OF DAY = closed_hrs_gv) THEN
GIVE RAN ran_nite_gv
DISCONNECT
END IF
SECTION Wait_Loop
WAIT time_loop_cv
IF NOT QUEUED THEN
IF OUT OF SERVICE skillset_cv THEN
GIVE IVR ivrdn WITH TREATMENT system_unavailable_gv
DISCONNECT
ELSE
QUEUE TO SKILLSET skillset_cv
WAIT 2
END IF
END IF
GIVE IVR INTERRUPTIBLE ivrdn WITH TREATMENT agents_busy_gv
EXECUTE Wait_Loop
Troubleshooting
In this appendix
Overview 552
Script execution problems 553
Voice processing problems 556
Networking problems 561
Phantom calls 563
Validation errors 565
Validation option rules 579
Overview
For information about the GIVE RAN command in SIP-enabled contact centers,
see “SIP Contact Center” on page 675.
You must include a test, such as using the QUEUED or OUT OF SERVICE
intrinsics, inside loops. Use the results of these tests to provide default
treatments to the call to ensure that it is successfully routed.
In this example, a call is queued to the sales skillset, and then the caller is given
a recorded announcement. Every 30 seconds, a loop is used to test whether the
call is still in a queue or if agents are logged on to the sales skillset.
QUEUE TO SKILLSET sales_sk
WAIT 10
SECTION LoopForever
IF NOT QUEUED THEN
IF OUT OF SERVICE sales_sk THEN
ROUTE CALL auto_att
ELSE
QUEUE TO SKILLSET sales_sk
WAIT 2
END IF
END IF
GIVE RAN please_wait_ran_gv
WAIT 30
EXECUTE LoopForever
The following commands in this list apply only if you purchased the NSBR
option:
REMOVE FROM NETWORK SKILLSET
CHANGE PRIORITY IN NETWORK SKILLSET
The call must first be given treatment using any other command before any of
the preceding commands are used in a script.
For information about the GIVE IVR command in SIP-enabled contact centers,
see “GIVE IVR” on page 679.
If you set this value equal to or less than the number of ports in the IVR ACD-
DN, the caller hears the announcement only if there is a port with free capacity
to connect the call. If all ports are used, the call skips this statement and goes to
the next statement in the script.
For information about how to ensure that scripts execute all voice processing
commands, see the Contact Center - Manager, Communication Server 1000 and
Voice Processing Guide.
For information about how to ensure that voice processing commands run
consistently, see the Contact Center - Manager, Communication Server 1000
and Voice Processing Guide.
For information about how to ensure that voice processing treatments are
executed successfully, see the Contact Center - Manager, Communication
Server 1000 and Voice Processing Guide.
For information about how to ensure that the correct voice processing treatment
is given, see the Contact Center - Manager, Communication Server 1000 and
Voice Processing Guide.
For information about how to ensure that scripts do not skip over voice
processing commands, see the Contact Center - Manager, Communication
Server 1000 and Voice Processing Guide.
For information about how to ensure that script execution does not suspend at a
voice processing command, see the Contact Center - Manager, Communication
Server 1000 and Voice Processing Guide.
For information about how to ensure that voice processing commands run
successfully, see the Contact Center - Manager, Communication Server 1000
and Voice Processing Guide.
For information about how to ensure that voice processing commands run
successfully, see the Contact Center - Manager, Communication Server 1000
and Voice Processing Guide.
If the GIVE IVR script command is used with a third-party IVR application or a
CallPilot or Meridian Mail voice menu to transfer a call to a DN that is busy,
Contact Center Manager loses control of the call. When you use the GIVE IVR
command, always transfer the call to an ACD-DN.
For information about the GIVE IVR command in SIP-enabled contact centers,
see “GIVE IVR” on page 679.
Networking problems
Do not use the preceding commands or intrinsic in the network script as they
cause script execution to stop.
Phantom calls
A phantom call is a call that is no longer active on the switch, but which the
Statistical Data Manager or the call processing subsystem treats as though it is
still active. That is, the server continues to collect statistics for the call and
provide treatments for it.
Diagnosis
If you have calls in your system for an extended period of time, those calls can
be phantom calls. However, other conditions, such as incorrectly written scripts,
can make calls remain in the system for a long time.
Calls that are not treated correctly in the script show as Waiting in the
application real-time statistics but not in the skillset real-time statistics. For
example, calls that are queued to a skillset that is out of service or calls that are
unqueued show as Waiting in the application real-time statistics but not in the
skillset real-time statistics.
Check your scripts to ensure that there are no infinite loops and that no calls are
queued to skillsets that are out of service. If no problems exist in your scripts,
the oldest calls in the system can be phantom calls.
Possible causes
Phantom calls can occur if the system is configured incorrectly. Make sure that
you
installed all of the latest Contact Center Manager Service Updates (SU)
dedicated voice ports to Contact Center Manager; the server must not share
voice ports with other applications
created separate ACD-DNs for GIVE IVR and ACCESS voice ports
Solution
Verify that your system is configured correctly. For more information, see the
Contact Center - Manager, Communication Server 1000 and Voice Processing
Guide. If the problem persists, contact Nortel customer support.
Validation errors
This section contains a list of errors that you can receive when you validate a
script. The following table lists the error numbers and the text of the error
messages, and gives a brief explanation of each error.
Error
num Error message Description
15 Syntax error or unsupported A syntax error can occur when the Script Validator
command. cannot understand a command because of a
missing or incorrect keyword. If you cannot see the
error in the line of the script indicated by the Script
Validator, check the previous line for errors. For the
correct syntax of commands, use the Script
Command Reference panel, or see the description
of the command in this document.
An unsupported command is one that cannot be
used in the network script. For a list of commands
that cannot be used in the network script, see
“Network script restrictions” on page 274.
The network script applies only if you purchased
the NSBR feature for the switch.
Error
num Error message Description
20 Valid integer constants Ensure that the number on the line indicated by the
cannot be greater than Script Validator is valid.
1999999999 or less than –
1999999999.
22 CDN or DNIS range is 1–31 Ensure that the CDN or DNIS number on the line
digits. indicated by the Script Validator is 1–31 digits in
length.
Error
num Error message Description
24 Max day of month is 31. An invalid day of month is specified in the line
indicated by the Script Validator. Make sure that
the day of month is from 1 to 31.
25 Time of day ranges from An invalid time of day is specified in the line
00:01 to 23:59. indicated by the Script Validator. Make sure that
the time of day is from 00:01 to 23:59.
26 Time format was incorrect An invalid time format is specified in the line
(three-digit hours, and so indicated by the Script Validator. Make sure that
on). you specify the time in the format hh:mm.
32 IDs (variable names) can be An invalid variable name is specified in the line
30 characters max. indicated by the Script Validator. Make sure that
the variable name is from 1 to 30 characters in
length.
Error
num Error message Description
34 Char not valid in language An invalid character is in the line indicated by the
({, |, and so on) was Script Validator. Remove invalid characters.
encountered.
36 Sets (lists and ranges) must The set of values in the line indicated by the Script
contain elements of the same Validator contains values of different types, or
type, and variables cannot mixes constants with variables. Make sure that all
(currently) be mixed with of the values are the same type, and remove either
constants, even if they are of the constants or the variables.
the same type.
37 The variable specified is not The variable in the line indicated by the Script
the expected type. Validator is not the correct type. Use a different
variable, or change the variable type. For more
information, see “Working with script variables”
on page 99.
39 An EXECUTE statement An EXECUTE statement in the line specified by
references a non-existent the Script Validator references a section that does
label. not exist. Make sure that the section exists and that
it is referenced correctly (that is, use exact spelling)
by the EXECUTE statement.
42 This statement cannot be the An invalid first statement is in the script. For a list
first statement in a script. of statements that cannot be used as the first
statements in a script, see “First command rule” on
page 65.
Error
num Error message Description
44 A set (variable or constant) You can use only a variable of class Item or a single
cannot be used in a prompt. constant number for a prompt. If you use a variable
for the prompt indicated (by line number) by the
Script Validator, make sure its class is set to Item.
47 Day in date is invalid (three An invalid day is specified in the date. Make sure
digits, and so on). that the correct day is specified. The day should
contain no more than two digits.Valid date formats
are as follows:
May 4, 16 July, Dec 13
49 Invalid date for month The date specified for the month in the line
specified. indicated by the Script Validator is invalid. For
example, Feb. 30 and Nov. 31 are invalid. Make
sure that you specify the correct date.
50 Max 20 agents IDs in set Too many agent IDs are in the list specified by the
(list). Script Validator (by line number). Make sure that
the list contains no more than 20 agent IDs.
51 Too many skillsets are listed Too many skillsets are listed in the line indicated.
for this command. Skillset-related commands can use no more than 20
skillsets in the list of skillsets. If the command
relates to an NSBR feature (Communication Server
1000/Meridian 1 PBX only), no more than 10
skillsets can be listed.
52 Invalid type in Unary Minus A Unary Minus operation is an operation in which
operation. you change the sign of a mathematical expression
using a negative sign (–) in front of the expression.
(For example, ASSIGN –variable2 TO variable1.)
The variable being negated must be type Integer or
Seconds.
Error
num Error message Description
53 Invalid type (left side) in The value on the left side of the Addition operation
Addition operation. is invalid. The left and right sides must be type
Integer or Seconds. For more information, see
“Mathematical expressions” on page 460.
54 Invalid type (right side) in The value on the right side of the Addition
Addition operation. operation is invalid. The left and right sides must
be type Integer or Seconds. For more information,
see “Mathematical expressions” on page 460.
55 Invalid type (left side) in The value on the left side of the Subtraction
Subtraction operation. operation is invalid. The left and right sides must
be type Integer or Seconds. For more information,
see “Mathematical expressions” on page 460.
56 Invalid type (right side) in The value on the right side of the Subtraction
Subtraction operation. operation is invalid. The left and right sides must
be type Integer or Seconds. For more information,
see “Mathematical expressions” on page 460.
57 Invalid type (left side) in The value on the left side of the Multiplication
Multiplication operation. operation is invalid. The left and right sides must
be type Integer or Seconds. For more information,
see “Mathematical expressions” on page 460.
58 Invalid type (right side) in The value on the right side of the Multiplication
Multiplication operation. operation is invalid. The left and right sides must
be type Integer or Seconds. For more information,
see “Mathematical expressions” on page 460.
59 Invalid type (left side) in The value on the left side of the Division operation
Division operation. is invalid. The left and right sides must be type
Integer or Seconds. For more information, see
“Mathematical expressions” on page 460.
Error
num Error message Description
60 Invalid type (right side) in The value on the right side of the Division
Division operation. operation is invalid. The left and right sides must
be type Integer or Seconds. For more information,
see “Mathematical expressions” on page 460.
61 Sets (left side) are not A set (that is, more than one value) is included in
allowed in Addition the Addition operation. This is invalid. Ensure that
operations. there is only one value. If a variable is on the left
side of the equation, ensure that the class of the
variable is set to Item.
62 Sets (right side) are not A set (that is, more than one value) is included in
allowed in Addition the Addition operation. This is invalid. Ensure that
operations. there is only one value. If a variable is on the right
side of the equation, ensure that the class of the
variable is set to Item.
80 Incompatible types in Less The values in the Less Than or Equal To expression
Than or Equal To relational cannot be compared. Use only types Integer and
expression. Seconds. For more information, see “Mathematical
expressions” on page 460.
Error
num Error message Description
85 The Where expression in the The Where statement in the line indicated by the
WHERE-EQUALS Script Validator contains invalid data. Make sure
statement cannot be a set. that the value in the Where statement is a single
value only. You cannot use sets of values. If you
use a variable, make sure that its class is set to
Item.
86 Sets cannot be used on the The Equal To operator in the line indicated by the
left side of the Equal To Script Validator contains invalid data. Make sure
operator. that the value on the left side of the operator is a
single value only. You cannot use sets of values. If
you use a variable, make sure that its class is set to
Item.
87 Sets cannot be used on the The Not Equal To operator in the line indicated by
left side of the Not Equal To the Script Validator contains invalid data. Make
operator. sure that the value on the left side of the operator is
a single value only. You cannot use sets of values.
Error
num Error message Description
Error
num Error message Description
100 An undefined identifier is A name (or an identifier) is used in the script, but
encountered. no skillset, variable, or script is defined in the
system with this name.
102 Illegal statement is used in An invalid statement is in the Event Handler. For a
Event statement. list of valid statements that you can use in the
Event Handler, see “EVENT HANDLER” on page
247.
106 Division by zero is not An error in the division operation is in the line
allowed. indicated by the Script Validator. You cannot divide
by zero.
107 An EXECUTE/SECTION Change the name of the SECTION label in the line
label should not be the same indicated by the Script Validator so that it is not the
as a variable name or a same as a skillset or variable name. The system is
skillset name. case-insensitive, so the label names must differ by
more than just the case of the letters.
Error
num Error message Description
108 Only call variables can be The variable used with the ASSIGN TO command
used on the left side of the in the line indicated by the Script Validator is a
ASSIGN TO command. global variable, which is not correct. You must
delete the variable and create it again, this time
choosing Call as the variable type. For more
information, see “Adding variables” on page 110.
109 The variables used in third- The variable class for the SEND INFO, SEND
party statements (SEND REQUEST, or GET RESPONSE variable should
INFO, SEND REQUEST, be Item.
GET RESPONSE) cannot be
sets.
111 A GET RESPONSE A GET RESPONSE statement is missing after the
statement must appear SEND REQUEST statement. For more
immediately after a SEND information, see “GET RESPONSE” on page 336.
REQUEST statement.
112 No more than 10 variables Too many variables are listed in the SEND INFO,
are allowed as parameters in SEND REQUEST, or GET RESPONSE command
each third-party statement. in the line number indicated by the Script Validator.
Remove as many variables as necessary.
113 Third-party variables can be The variable in the line indicated by the Script
of the following types: DN, Validator is the wrong type. Change the type to one
CLID, ACD, CDN, DNIS, the following: DN, CLID, ACD, CDN, DNIS,
LOC, NPA, NXX, LOC, NPA, NXX, NPANXX, String, Integer. For
NPANXX, String, Integer. more information, see “Changing variable
properties” on page 119.
114 Invalid use of keywords or The line indicated by the Script Validator contains
punctuation. an invalid keyword or invalid punctuation. For the
correct syntax of a command, use the Script
Command Reference panel, or see “Basic script
commands” on page 193 and “Advanced script
commands” on page 245.
Error
num Error message Description
116 Only variables of Boolean The variable in the line indicated by the Script
type are allowed. Validator should be a Boolean-type variable. For
more information, see “Changing variable
properties” on page 119.
118 TIMER variable must be The timer variable in the line indicated by the
seconds type. Script Validator should be a Seconds-type variable.
120 Only variables of DN and The variable type in the line indicated by the Script
ACD type are allowed. Validator is invalid. The variables indicated must
Variables cannot be sets. be the type DN or ACD. The class must be Item.
For more information, see “Changing variable
properties” on page 119.
121 Statement is part of the The script command in the line indicated by the
Advanced Script Elements Script Validator is an advanced command. You
package. Package not must purchase the Nortel Symposium Call Center
purchased. Server 200 application software package to use
advanced commands.
122 Advanced Scripts Package A server installation problem. Try to revalidate the
Query failed. script. If the problem persists, contact your Nortel
customer support representative.
Error
num Error message Description
124 Invalid value assigned to this The value assigned to the variable in the line
variable. Check limit for indicated by the Script Validator is invalid. Change
variables of this type. the value of the variable. For more information, see
“Sets of values in variables” on page 103.
125 Range of seconds is 0 to An incorrect number of seconds is specified in the
65535. line indicated by the Script Validator. Make sure
that the number of seconds you specify is from 0 to
65535.
127 ACD range is 2 to 7 digits. There is an incorrect ACD number in the line
indicated by the Script Validator. Make sure that
the ACD is 2 to 7 digits in length.
128 Variables used in this context An invalid variable type is in the line indicated by
must be Boolean. the Script Validator. Make sure that the variable is a
Boolean-type (that is, has a True or False value)
variable.
129 Numbers cannot be greater The number in the line indicated by the Script
than 32 digits. Validator is not valid. Make sure that the number is
no longer than 32 digits.
Error
num Error message Description
137 Call Center Manager feature You did not purchase the package that includes the
not purchased or error set of basic features for the system to work or a
accessing database. database error occurred when the system accessed
the features purchased.
138 Intrinsic not supported for An intrinsic statement that is not supported for the
ICM protocol. ICM protocol was encountered in the script.
139 Call Data index out of range. The value of the Call Data intrinsic is incorrect.
Valid range is 1 to 10. Ensure that the value is an integer from 1 to10.
141 Incomplete comment. Check “/*” specifies the beginning of a comment and “*/”
that a previous comment was specifies the end of a comment. This error is
terminated properly. logged when a comment is not terminated properly
or when another comment starts before a previous
comment ends.
This section contains a list of errors that you can receive if you configure the
Validation Options dialog box to inform you when you break scriptwriting rules.
The table lists the rule numbers, provides the text of the error messages, and
gives tips to avoid breaking rules.
Rule 5 Remove the GIVE BUSY This command must not be followed by a
command or the GIVE GIVE BUSY or GIVE OVERFLOW
OVERFLOW command, command.
or insert another command
before the command the
message refers to.
Rule 6 Simplify this statement as Code structure tip.
follows: IF OUT OF
SERVICE <skillset_1>,
<skillset_2>,
<skillset_3>,...THEN...
Rule 8 Insert IF NOT OUT OF You should use the OUT OF SERVICE
SERVICE <skillset> <skillset> intrinsic to test the skillset queue
THEN before the QUEUE before the QUEUE TO SKILLSET
TO SKILLSET command. command.
Rule 9 Insert a WAIT command Loops must contain at least one statement
or an announcement that suspends script execution for a finite
treatment inside the loop. time, such as WAIT or an announcement
treatment.
Rule Insert a test of the Loops must have an exit so that they do not
10 QUEUED intrinsic or loop indefinitely if the call is not queued.
AGE OF CALL intrinsic,
and exit the loop if the call
is not queued.
Rule After the call is queued to The QUEUED intrinsic is not useful to be
19 NACD, only use the tested in a loop if the call is already queued
QUEUED intrinsic once. to NACD.
This rule applies only if
you purchased the
Network Skill-Based
Routing feature.
Scripting keywords
In this appendix
Reserved keywords 584
Reserved keywords
The keywords listed in this section are reserved within the Contact Center
Manager scripting language. Do not use the keywords as user-defined names or
labels.
ANNOUNCEMENT
BROADCAST
COLLECT
CONFERENCED
CONTROLLED
INTERNATIONAL
INTERRUPTIBLE
NETWORK
NONCONTROLLED
PLAY
PROMPT
SEGMENT
TRANSFERRED
TREATMENT
VOICE
The keywords marked with an asterisk (*) are input parameters to the VXML
treatments provided by the Media Application Server (MAS) and are case-
sensitive. These Contact Center Manager script variables are automatically
created when SIP is enabled on Contact Center Manager Server.
ADDRESS
HEADER
im *
interdigittimeout *
notypeahead *
numberofdigits *
PARAMETERS
PREFERRED
promttoplay *
RETURNS
SERVICEURI
SIP
SUBJECT
termchar *
TREATMENT
urltopush *
USER
vars *
VXML
vxmlfrom *
vxmlto*
WHERE
WITH
%AGENT%
%DATE%
%PRIORITY%
%SKILLSET%
%TIME%
ABANDON
ACD
ACTIVE
AGE
AGE OF CONTACT
AGENT
AGENTS
AHEAD
AND
ANSWER
ANSWERED
APPLICATION
APR
APRIL
ASSIGN
ASSIGNED
AUG
AUGUST
AVERAGE
BUSY
BY
CALL
CALLS
CDN
CHANGE
CHARACTER
CHINESE
CLID
CONSULTED
CONTACT DATA
CONTACT TYPE
CONTINUOUS
COUNT
CUSTOMERID
DATA
DATE
DAY
DEC
DECEMBER
DEFAULT
DEQUEUE
DIALED
DIGIT
DIGITS
DIRECT
DISCONNECT
DISTURB
DN
DNIS
DO
ELSE
END
ENGLISH
EQUALS
EVENT
EXECUTE
EXPECTED
FAIL
FALSE
FEB
FEBRUARY
FOR
FOREVER
FORWARD
FRENCH
FRIDAY
FROM
FROMADDRESS
GERMAN
GET
GIVE
HANDLER
HOLD
ID
IDLE
IF
IN
INCOMING
INFO
INTER
INTO
IVR
JAN
JANUARY
JAPANESE
JUL
JULY
JUN
JUNE
LANGUAGE
LEAST
LOC
LOCATION
LOG
LOGGED
LONGEST
MAR
MARCH
MAY
MONDAY
MONTH
MOST
MUSIC
NACD
NAME
NEXTYEAR
NIGHT
NO
NON
NOT
NOV
NOVEMBER
NPA
NPANXX
NUMBER
NUMBERBYDIGIT
NXX
OCT
OCTOBER
OF
OLDEST
ON
OPEN
OR
OUT
OVERFLOW
PORTUGUESE
POSITION
PRESENT
PRIORITY
QUEUE
QUEUED
QUEUES
QUEUETYPE
QUIT
RAN
RATE
RECEIVED
RELEASED
REMOVE
REQUEST
RESPONSE
RETRIEVE
RETURN
RINGBACK
RINGING
ROUTE
ROUTEPOINT
SATURDAY
SCRIPT
SECTION
SEND
SEP
SEPTEMBER
SERVICE
SESSION
SET
SILENCE
SKILLSET
SPANISH
SPEED
SUCCESS
SUNDAY
TERMINATING
THEN
THURSDAY
TIME
TIMEOUT
TIMER
TO
TOADDRESS
TOTAL
TRUE
TUESDAY
TYPE
URI
VALUE
VOICE
WAIT
WAITING
WEDNESDAY
WEEK
Using HDX
In this appendix
Using Provider 598
Using Provider
Also, you can configure Provider to return information to the contact center
script because Provider has a receiving side and a sending side. The receiving
side receives both SEND INFO and SEND REQUEST information from the
contact center script. You can configure the sending side to send a variety of
information to the contact center script. The contact center script command GET
RESPONSE receives the information sent by the Provider.
This appendix shows how you can use the provider.exe application to verify the
caller information received from the switch.
Service Provider
The following is an image of the Service Provider main page in the Provider
application.
Functionality
The following table describes the fields in the Provider application.
Provider Provider
component subcomponent Functionality
Main Enter Register ID Use this box to enter the value used
box by Provider to communicate with the
HDX interface.
Create this value in Contact Center
Manager Administration script
variables as a global variable.
Provider Provider
component subcomponent Functionality
Request Data Held Call ID box This value is the held call ID. This
applies only to voice contacts.
Provider Provider
component subcomponent Functionality
Request Data Network Call ID This value is the network call ID.
box This applies only to voice contacts.
Request Data Node ID box This value is the customer site ID.
Provider Provider
component subcomponent Functionality
Provider Provider
component subcomponent Functionality
Completion Data Use the Last Set Select Use the Last Set of Return
of Return Values Values to repeat the data on the last
check box send even if the data was modified.
Completion Data Return Parameter For this parameter only, select the
1 Auto Increment check box to automatically increment
check box the value for Return Parameter 1.
Provider Provider
component subcomponent Functionality
Provider Provider
component subcomponent Functionality
Provider Provider
component subcomponent Functionality
The special features for the first three return parameters help test Contact Center
Manager Server under call traffic load testing.
Configuring Provider
Before you use the Provider application, you must create a register ID as a call
contact variable in the Script Manager.
2 In the Scripting window, click the Contact Center Manager Server in the
left-hand pane.
3 Right-click the Script Variables tree item.
4 Select New.
Result: The following window appears.
9 Click Submit.
Result: The provider_ID global variable is created.
13 Click Submit.
Result: The script is saved.
14 From the Contact Center Manager Server, go to Start > All Programs >
Nortel Contact Center > Server Utility > Provider.
Tip: You can also launch Provider.exe from a client PC that has a copy of
the provider.exe application.
15 In the Server Site IP Address box, type the Nortel server subnet address
of Contact Center Manager Server.
16 Click Connect To Server.
Result: A connection is made to Contact Center Manager Server.
17 In the Enter Register ID box, type the value defined for the provider_ID
global variable.
18 Click Register.
Result: The label on the Register button changes to UnRegister.
In this appendix
Overview 616
Using Multimedia Contact Intrinsics 617
%AGENT%AGENT 618
%DATE%DATE 620
%INTEGER%WAITTIME 622
%PRIORITY%PRIORITY 624
%SKILLSET%SKILLSET 625
%TIME%TIME 626
CONTACTSUBTYPE 628
CUSTOMERID 631
CUSTOMFIELD1 632
FROMADDRESS 633
NEXTYEAR 634
QUEUETYPE 636
TOADDRESS 641
Recommended scripts for Contact Center Multimedia 643
Filtering Real Time Display statistics for rescheduled contacts 662
Modifying the multimedia scripts 667
Overview
The first section of this appendix covers the intrinsics required for the
Multimedia scripts.
Contact Center Multimedia creates a number of contact data intrinsics for each
multimedia contact. The intrinsics are used within the sample scripts to correctly
route the contact.
%AGENT%AGENT
For scheduled contacts or transferred contacts, this intrinsic returns the agent
assigned to the contact by Contact Center Multimedia based on actions
performed by an agent on the Agent Desktop.
For reply e-mail contacts and new e-mail contacts from existing customers, this
intrinsic returns the preferred agent assigned to that customer.
Syntax
The intrinsic must be used in conjunction with the CONTACT DATA intrinsic
and must be assigned to a script call variable before use.
ASSIGN CONTACT DATA "%AGENT%AGENT" TO contact_agent_cv
Return type
This intrinsic returns an AGENT_ID variable.
Example
This example stores the %AGENT%AGENT and %PRIORITY%PRIORITY
intrinsics in call variables and then queues the contact to the agent indicated by
%AGENT%AGENT with a priority of %PRIORITY%PRIORITY.
ASSIGN CONTACT DATA "%AGENT%AGENT" TO contact_agent_cv
ASSIGN CONTACT DATA "%PRIORITY%PRIORITY" TO contact_priority_cv
QUEUE TO AGENT contact_agent_cv WITH PRIORITY contact_priority_cv
WAIT 2
%DATE%DATE
This intrinsic returns the date on which a scheduled contact should be presented.
This date is called the Callback Date.
If you want scheduled contacts to occur at the correct date and time, ensure that
your script delays these contacts until that date and time and then queues the
contacts appropriately. The contacts can be delayed in the scripts in one of two
ways:
using a loop in conjunction with the intrinsics %DATE%DATE,
%TIME%TIME, and NEXTYEAR
OR
using a WAIT statement in conjunction with the intrinsic
%INTEGER%WAITTIME
Syntax
The intrinsic must be used in conjunction with the CONTACT DATA intrinsic
and must be assigned to a script call variable before use.
ASSIGN CONTACT DATA "%DATE%DATE" TO date_cv
Return type
This intrinsic returns a DATE variable.
If no callback date is set for the contact, this intrinsic returns a default date of 01
January.
Example
In this example, a check is performed to see if the current date is equal to the
callback date and if the current time is greater than the callback time. If so, the
system executes the section Queue_Contact. Otherwise, the contact remains in a
loop checking the date and time.
ASSIGN CONTACT DATA "%DATE%DATE" TO contact_cbdate_cv
ASSIGN CONTACT DATA "%TIME%TIME" TO contact_cbtime_cv
SECTION Callback_loop
/****************************************************************
Loop until the Current Date / Time is greater than or equal to the
Callback Date / Time then Queue the Contact using the script
Queue_Multimedia_Contact.
****************************************************************/
IF (DATE > contact_cbdate_cv) THEN
EXECUTE SCRIPT Queue_Multimedia_Contact
ELSE
IF ((DATE = contact_cbdate_cv)
AND (TIME OF DAY >= contact_cbtime_cv)) THEN
EXECUTE SCRIPT Queue_Multimedia_Contact
ELSE
WAIT 60
EXECUTE Callback_loop
END IF
END IF
%INTEGER%WAITTIME
This intrinsic returns the number of seconds from the time the contact is created
until the callback time. Use this intrinsic as the value in a WAIT statement in the
scripts to delay queuing of a contact until the callback time.
If you want scheduled contacts to be presented at the correct date and time,
ensure that your script delays these contacts until that date and time and then
queues the contacts appropriately. The contacts can be delayed in the scripts in
one of two ways:
using a loop in conjunction with the intrinsics %DATE%DATE,
%TIME%TIME, and NEXTYEAR
OR
using a WAIT statement in conjunction with the intrinsic
%INTEGER%WAITTIME
Syntax
The intrinsic must be used in conjunction with the CONTACT DATA intrinsic
and must be assigned to a variable before use.
ASSIGN CONTACT DATA "%INTEGER%WAITTIME" TO contact_wait_time_cv
Return type
This intrinsic returns an INTEGER variable.
The default value of this intrinsic for contacts that do not have a callback time
set is 0. For example, new contacts have a value of 0 for this intrinsic.
Example
This example stores the %INTEGER%WAITTIME,
%SKILLSET%SKILLSET, and %PRIORITY%PRIORITY intrinsics in call
variables. It then waits the required number of seconds until the callback time
before queuing the contact to the skillset indicated by
%SKILLSET%SKILLSET with a priority of %PRIORITY%PRIORITY.
ASSIGN CONTACT DATA "%SKILLSET%SKILLSET" TO contact_skillset_cv
ASSIGN CONTACT DATA "%PRIORITY%PRIORITY" TO contact_priority_cv
%PRIORITY%PRIORITY
This intrinsic returns the priority assigned to this contact by Contact Center
Multimedia based on the rules configured or based on the actions performed by
an agent on the Agent Desktop.
Nortel recommends that you queue multimedia contacts with the priority
%PRIORITY%PRIORITY, because this priority is determined by Contact
Center Multimedia.
Syntax
The intrinsic must be used in conjunction with the CONTACT DATA intrinsic
and must be assigned to a script call variable before use.
ASSIGN CONTACT DATA "%PRIORITY%PRIORITY" TO contact_priority_cv
Return type
This intrinsic returns a PRIORITY variable.
Example
This example stores the %SKILLSET%SKILLSET and
%PRIORITY%PRIORITY intrinsics in call variables and then queues the
contact to the skillset indicated by %SKILLSET%SKILLSET with a priority of
%PRIORITY%PRIORITY.
ASSIGN CONTACT DATA "%SKILLSET%SKILLSET" TO contact_skillset_cv
ASSIGN CONTACT DATA "%PRIORITY%PRIORITY" TO contact_priority_cv
QUEUE TO SKILLSET contact_skillset_cv WITH PRIORITY
contact_priority_cv
WAIT 2
%SKILLSET%SKILLSET
This intrinsic returns the skillset assigned to this contact by Contact Center
Multimedia based on the rules configured or based on the actions performed by
an agent on the Agent Desktop.
Syntax
The intrinsic must be used in conjunction with the CONTACT DATA intrinsic
and must be assigned to a script call variable before use.
ASSIGN CONTACT DATA "%SKILLSET%SKILLSET" TO contact_skillset_cv
Return type
This intrinsic returns a SKILLSET variable.
Example
This example stores the %SKILLSET%SKILLSET and
PRIORITY%PRIORITY intrinsics in call variables and then queues the contact
to the skillset indicated by %SKILLSET%SKILLSET with a priority of
%PRIORITY%PRIORITY.
ASSIGN CONTACT DATA "%SKILLSET%SKILLSET" TO contact_skillset_cv
ASSIGN CONTACT DATA "%PRIORITY%PRIORITY" TO contact_priority_cv
QUEUE TO SKILLSET contact_skillset_cv WITH PRIORITY
contact_priority_cv
WAIT 2
%TIME%TIME
This intrinsic returns the time of day which a scheduled contact should be
presented. This time is called the callback time.
If you want scheduled contacts to be presented at the correct date and time,
ensure that your script delays these contacts until that date and time and then
queues the contacts appropriately. The contacts can be delayed in the scripts in
one of two ways:
using a loop in conjunction with the intrinsics %DATE%DATE,
%TIME%TIME, and NEXTYEAR
OR
using a WAIT statement in conjunction with the intrinsic
%INTEGER%WAITTIME
Syntax
The intrinsic must be used in conjunction with the CONTACT DATA intrinsic
and must be assigned to a script call variable before use.
ASSIGN CONTACT DATA "%TIME%TIME" TO time_cv
Return type
This intrinsic returns a TIME variable.
If no callback time is set for the contact, this intrinsic returns a default time of
00:00.
Example
This is the same example as shown for the %DATE%DATE intrinsic. In this
example, a check is performed to see if the current date is equal to the callback
date and if the current time is greater than the callback time. If so, the system
executes the section Queue_Contact. Otherwise, the contact remains in a loop
checking the date and time.
ASSIGN CONTACT DATA "%DATE%DATE" TO contact_cbdate_cv
ASSIGN CONTACT DATA "%TIME%TIME" TO contact_cbtime_cv
SECTION Callback_loop
/****************************************************************
Loop until the Current Date / Time is greater than or equal to the
Callback Date / Time then Queue the Contact using the script
Queue_Multimedia_Contact.
****************************************************************/
IF (DATE > contact_cbdate_cv) THEN
EXECUTE SCRIPT Queue_Multimedia_Contact
ELSE
IF ((DATE = contact_cbdate_cv)
AND (TIME OF DAY >= contact_cbtime_cv)) THEN
EXECUTE SCRIPT Queue_Multimedia_Contact
ELSE
WAIT 60
EXECUTE Callback_loop
END IF
END IF
CONTACTSUBTYPE
Contacts in the Contact Center Multimedia database have a contact type which
is one of the main contact types, e-mail, outbound, voice, Web communications
and video.
Contacts also have a subtype. For example, you can create fax, SMS, voicemail,
and whitemail contacts in the Multimedia database using the e-mail rules
configuration. These contact types are all subtypes of the e-mail contact type. In
scripting, a fax message has a CONTACTSUBTYPE of fax and a CONTACT
TYPE of e-mail.
The following table shows all contact subtypes and their corresponding contact
types:
fax e-mail
SMS e-mail
voicemail e-mail
whitemail e-mail
other e-mail
e-mail e-mail
video video
Syntax
The intrinsic must be used in conjunction with the CONTACT DATA intrinsic
and must be assigned to a variable before use.
ASSIGN CONTACT DATA “CONTACTSUBTYPE” TO contact_subtype_cv
Return Type
A STRING variable is returned by this intrinsic. It can have one of the following
values:
Fax
SMS
Voicemail
Whitemail
Other
Scheduled Callback
Email
Outbound
Web_Communications
Video
Example
This example checks for the CONTACTSUBTYPE of scheduled callback and
executes separate primary scripts for scheduled callbacks and outbound
campaign contacts.
IF CONTACT TYPE = c_contact_type_outbound_gv THEN
ASSIGN CONTACT DATA “CONTACTSUBTYPE” TO contact_subtype_cv
IF contact_subtype_cv = “Scheduled Callback” THEN
EXECUTE SCRIPT OB_ScheduledCallback_Primary
ELSE
EXECUTE SCRIPT OB_Outbound_Primary
END IF
END IF
CUSTOMERID
Syntax
The intrinsic must be used in conjunction with the CONTACT DATA intrinsic
and must be assigned to a script call variable before use.
ASSIGN CONTACT DATA "CUSTOMERID" TO contact_custID_cv
Return type
This intrinsic returns a STRING variable. For example, 5004.
Example
The following example assigns the customer ID to a call variable and then
increases the priority of the contact if that customer is identified as a priority
customer.
ASSIGN CONTACT DATA "CUSTOMERID" TO contact_custID_cv
ASSIGN CONTACT DATA "%SKILLSET%SKILLSET" TO contact_skillset_cv
ASSIGN CONTACT DATA "%PRIORITY%PRIORITY" TO contact_priority_cv
IF contact_custID_cv = "5004" THEN
/* identify priority Customer */
ASSIGN 1 TO contact_priority_cv
END IF
CUSTOMFIELD1
This intrinsic returns the text value of the first customer field associated with a
contact. Only information about the first customer field is available as an
intrinsic within scripting. Other customer fields are not available.
Syntax
The intrinsic must be used in conjunction with the CONTACT DATA intrinsic
and must be assigned to a variable before use.
ASSIGN CONTACT DATA “CUSTOMFIELD1” TO contact_customfield_cv
Return Type
A STRING variable is returned by this intrinsic. For example “Ref_123456”.
Example
This example checks for a CUSTOMFIELD1 value of “Ref_123456” and
executes a specific primary script for contacts that have this custom field value.
IF CONTACT TYPE = c_contact_type_outbound_gv THEN
ASSIGN CONTACT DATA “CUSTOMFIELD1” TO contact _customfield_cv
IF contact_customfield_cv = “Ref_123456” THEN
EXECUTE SCRIPT OB_ref123456_Primary
ELSE
EXECUTE SCRIPT OB_Outbound_Primary
END IF
END IF
FROMADDRESS
This intrinsic returns the e-mail address from which an e-mail contact was sent.
This intrinsic is available for e-mail contacts only.
Syntax
The intrinsic must be used in conjunction with the CONTACT DATA intrinsic
and must be assigned to a script call variable before use.
ASSIGN CONTACT DATA "FROMADDRESS" TO contact_fromAddress_cv
Return type
This intrinsic returns a STRING variable. For example, [email protected].
Example
The following example assigns the from address value to a call variable and then
increases the priority of the contact if the customer is identified as a priority
customer.
ASSIGN CONTACT DATA "FROMADDRESS" TO contact_fromAddress_cv
ASSIGN CONTACT DATA "SKILLSET" TO contact_skillset_cv
ASSIGN CONTACT DATA "PRIORITY" TO contact_priority_cv
IF CONTACT TYPE = c_EMAIL_gv THEN
/* Identify a Priority Customer by their e-mail address */
IF (contact_fromAddress_cv = "[email protected]") THEN
ASSIGN 1 TO contact_priority_cv
END IF
END IF
QUEUE TO SKILLSET contact_skillset_cv WITH PRIORITY
contact_priority_cv
WAIT 2
NEXTYEAR
This intrinsic indicates whether the callback date and time values for the contact
are in the current year or the next year.
If you want scheduled contacts to be presented at the correct date and time,
ensure that your script delays these contacts until that date and time and then
queues the contacts appropriately. The contacts can be delayed in the scripts in
one of two ways:
using a loop in conjunction with the intrinsics %DATE%DATE,
%TIME%TIME, and NEXTYEAR
OR
using a WAIT statement in conjunction with the intrinsic
%INTEGER%WAITTIME
Syntax
The intrinsic must be used in conjunction with the CONTACT DATA intrinsic
and must be assigned to a script call variable before use.
ASSIGN CONTACT DATA "NEXTYEAR" TO callback_nextyear_cv
Return type
This intrinsic returns a STRING variable with one of the following values:
YES—The callback date and time are in the following year.
NO—The callback date and time are in the current year.
Example
This example checks if the NEXTYEAR intrinsic has the value YES. If so, the
script remains in a loop until the date changes to January 1, and then the script
runs another section that checks the callback date and time.
ASSIGN CONTACT DATA "NEXTYEAR" TO callback_nextyear_cv
SECTION Next_Year_Loop
IF CALLBACK_NEXTYEAR_cv = "YES" THEN
IF DATE = Jan 01 THEN
ASSIGN "NO" TO callback_nextyear_cv
EXECUTE Callback_DateTime_Check
ELSE
WAIT 60
EXECUTE Next_Year_Loop
END IF
END IF
SECTION Callback_DateTime_Check
QUEUETYPE
This intrinsic allows for flexibility when you decide how to queue a contact by
identifying different groups of contacts based on either
the type of contact (for example, a reply e-mail from a customer)
or
actions that are performed on the contact using the Agent Desktop (for
example, a contact that is transferred to an agent).
Syntax
The intrinsic must be used in conjunction with the CONTACT DATA intrinsic
and must be assigned to a script call variable before use.
ASSIGN CONTACT DATA "QUEUETYPE" TO contact_queuetype_cv
Return Type
This intrinsic returns a STRING variable that can have one of the following
values:
SKILLSET
AGENT
AGENTPULL
REPLYMAIL
NEWMAIL
NOQUEUE
The following table describes each QUEUETYPE value in detail and indicates
the recommended queuing method for each value.
Example
This example assigns the QUEUETYPE intrinsic to a variable and then queues
the contact differently based on the value of the QUEUETYPE.
ASSIGN CONTACT DATA "%SKILLSET%SKILLSET" TO contact_skillset_cv
ASSIGN CONTACT DATA "%AGENT%AGENT" TO contact_agent_cv
ASSIGN CONTACT DATA "%PRIORITY%PRIORITY" TO contact_priority_cv
ASSIGN CONTACT DATA "QUEUETYPE" TO contact_queuetype_cv
TOADDRESS
This intrinsic returns the e-mail address that an e-mail contact was sent to. It is
available for e-mail contacts only.
Syntax
The intrinsic must be used in conjunction with the CONTACT DATA intrinsic
and must be assigned to a script call variable before use.
ASSIGN CONTACT DATA "TOADDRESS" TO contact_toAddress_cv
Return Type
This intrinsic returns a STRING variable. For example, [email protected].
Example
This example assigns the to address and customer ID values to call variables and
then uses these call variables to check if a priority customer sent an e-mail to a
general mailbox. If so, the priority of the contact is increased.
ASSIGN CONTACT DATA "TOADDRESS" TO contact_toAddress_cv
ASSIGN CONTACT DATA "SKILLSET" TO contact_skillset_cv
ASSIGN CONTACT DATA "PRIORITY" TO contact_priority_cv
ASSIGN CONTACT DATA "CUSTOMERID" TO contact_custID_cv
IF CONTACT TYPE = c_EMAIL_gv THEN
/* Identify a Priority Customer who sent an E-mail to a general
mailbox */
IF ((contact_toAddress_cv = "[email protected]")
AND (contact_custID_cv = "5004")) THEN
ASSIGN 1 TO contact_priority_cv
END IF
END IF
QUEUE TO SKILLSET contact_skillset_cv WITH PRIORITY
contact_priority_cv
WAIT 2
Use the scripts in this appendix in conjunction with Contact Center Multimedia
to route multimedia contacts.
Nortel recommends:
Nortel recommends that you initially integrate these scripts with your
existing Contact Center Manager Server scripts. After the scripts are
integrated, multimedia contacts are routed correctly. However, you can
customize the scripts to meet the needs in your contact center.
You can separate pegging for outbound, e-mail, and Web contacts. You can
also have application pegging for e-mail and outbound groups. The
maximum number of applications is 505 (five applications are
system-defined) and must be shared between voice and multimedia
contacts.
You must create these variables by using the Contact Center Manager
Administration Scripting interface with the Name, Type, Scope, Class, and
Default values listed in the preceding table.
Integrating scripts
1 Create all the variables listed in the table “Variables required by the Contact
Center Multimedia scripts” on page 646.
2 Import the c_Queue_Multimedia_Contact script from the SampleScripts
multimedia folder.
Tip: For more information about scripts, see “Using sample scripts” on
page 479.
3 Save and validate this script.
4 Import the c_Scheduled_Contact_Handler script from the SampleScripts
multimedia folder.
5 Save and validate this script.
6 Import the EM_Email_Primary script from the SampleScripts multimedia
folder.
7 Save and validate this script.
8 Import the OB_Outbound_Primary script from the SampleScripts
multimedia folder.
9 Save and validate this script.
10 Import the WC_Web_Primary script from the SampleScripts multimedia
folder.
11 Save and validate this script.
c_Master_Handles_Multimedia Script
This master script checks for multimedia contact types and passes execution to
the relevant primary script based on contact type. To use this script in a contact
center, you must add the necessary handling instructions for voice contacts to
this script.
The GIVE RINGBACK command is the first command in this script. This
treatment has no effect for multimedia contacts and can be used as a blanket
statement for all contacts.
/**************************************************************
Title: c_Master_Handles_Multimedia
GIVE RINGBACK
/****************************************************************
Put necessary handling for voice calls here
****************************************************************/
IF TRANSFERRED THEN
END IF
/*************************************************************
Add Necessary Voice Handling here
************************************************************/
EXECUTE End_of_Script
END IF
/**************************************************************
If more than 20 000 contacts are in the system, then disconnect
any other Multimedia contacts.
**************************************************************/
/****************************************************************
For Multimedia Contacts execute the relevant Primary Script
****************************************************************/
WHERE CONTACT TYPE EQUALS
VALUE c_contact_type_email_gv : EXECUTE SCRIPT
EM_Email_Primary
VALUE c_contact_type_outbound_gv : EXECUTE SCRIPT
OB_Outbound_Primary
VALUE c_contact_type_web_gv : EXECUTE SCRIPT
WC_Web_Primary
DEFAULT : EXECUTE End_of_Script
END WHERE
SECTION End_of_Script
EM_Email_Primary Script
This primary script is executed for e-mail contacts that are pegged against this
application in historical reporting and Real-Time Displays.
/****************************************************************
Title: EM_Email_Primary
This primary script executes the c_Scheduled_Contact_Handler
script for E-mail Contacts.
In Reporting and Real Time Displays, E-mail Contacts are pegged
against this application.
****************************************************************/
EXECUTE SCRIPT c_Scheduled_Contact_Handler
OB_Outbound_Primary Script
This primary script is executed for outbound contacts that are pegged against
this application in historical reporting and Real-Time Displays.
/****************************************************************
Title: OB_Outbound_Primary
WC_Web_Primary Script
This primary script is executed for Web communications contacts that are
pegged against this application in historical reporting and Real-Time Displays.
/****************************************************************
Title: WC_Web_Primary
This primary script executes the c_Scheduled_Contact_Handler
script for Web Communications Contacts. In Reporting and Real Time
Displays, Web Communications.
Contacts are pegged against this application
****************************************************************/
EXECUTE SCRIPT c_Scheduled_Contact_Handler
c_Scheduled_Contact_Handler Script
The c_Scheduled_Contact_Handler script uses the value of the contact intrinsic
%INTEGER%WAITTIME in a WAIT statement to wait the required number of
seconds until the Callback Time. It then passes execution to the
c_Queue_Multimedia_Contact Script. The following flowchart displays the
flow of execution in this script.
/****************************************************************
Title : c_Scheduled_Contact_Handler
/****************************************************************
To handle rescheduled Multimedia Contacts, assign the
%INTEGER%WAITTIME intrinsic to the call variable
contact_wait_time_cv and do a WAIT statement on this value.
The value of this intrinsic is the number of seconds left to the
Callback Time
For New Multimedia Contacts the value of this Intrinsic is 0
***************************************************************/
/****************************************************************
After waiting the required number of seconds execute the
c_Queue_Multimedia_Contact script
****************************************************************/
EXECUTE SCRIPT c_Queue_Multimedia_Contact
c_Queue_Multimedia_Contact Script
The c_Queue_Multimedia_Contact script first checks the QUEUETYPE contact
intrinsic to determine how to queue the contact. The script checks if the
QUEUETYPE is AGENT, AGENTPULL, or REPLYMAIL and, if so, queues
the contact directly to the correct agent with the appropriate priority. If the
preferred agent is not logged in or if QUEUETYPE is not AGENT,
AGENTPULL, or REPLYMAIL, the script attempts to queue the contact to the
multimedia skillset assigned to it by Contact Center Multimedia.
If this skillset is out of service (or goes out of service after the contact is
queued), the script remains in a loop until an agent logs into the skillset. Then,
the script queues the contact to that skillset. The following flowchart shows the
flow of execution through this script.
When skillsets go out-of-service, the contacts that are queued to those skillsets
remain in a loop within this script until the skillset comes back into service,
when they are queued to the skillset again. Therefore, Application Statistics such
as Max Wait Time and Average Answer accumulate even while skillsets are out-
of-service.
c_Queue_Multimedia_Contact
Script
NO
NO
NO
NO NO YES
QUEUETYPE = Contact is
REPLYMAIL Queued
YES
NO NO
Preferred Agent Contact’s Skillset WAIT M sec
is Logged In is in Service
YES YES
The term PRIORITY n used in the preceding flowchart indicates the priority of
the contact. The priority is initially set to the value of the
%PRIORITY%PRIORITY intrinsic. However, the priority of the contact can be
increased to 1 depending on the QUEUETYPE intrinsic.
The term WAIT M sec used in the preceding flowchart indicates the number of
seconds to wait between successive cycles of the Skillset_Queuing_Loop. This
value varies depending on the number of Contacts in the system.
/****************************************************************
Title: c_Queue_Multimedia_Contact
/****************************************************************
Assign Default Values to the following Call Variables
****************************************************************/
/****************************************************************
Below the Contact Intrinsic values are assigned to Call Variables
NOTE: The Contact Intrinsic QUEUETYPE indicates the method of
queuing the Contact recommended by CCMM. This recommendation is
based on either the type of contact or actions that are performed
on the contact using the Agent Desktop.
/****************************************************************
Check the QUEUETYPE Value and then execute the appropriate queuing
section
****************************************************************/
/****************************************************************
Agent_Queuing Section
SECTION Agent_Queuing
/****************************************************************
Agent_Queuing_Loop
NOTE: The Agent_Queuing_Loop section below is not included in this
script. An Agent Queuing Loop would continue to attempt queuing a
contact to the preferred Agent until that Agent logged in. If this
functionality is required then it is important to have the correct
loop exit conditions in place, otherwise an Agent may go on
holidays, leave, and so on and continue to have contacts queued to
them. For an example of an Agent Queuing Loop, see the section on
Implementing an Agent Queuing Loop in the M1 Scripting Guide. This
script only attempts Agent_Queuing once in the Agent_Queuing
section above and then fall through to the Skillset_Queuing
section
NOTE: Also, be aware that if you use an Agent_Queuing_Loop without
a loop exit clause and you delete an Agent then contacts for that
Agent may remain in this loop indefinitely
****************************************************************/
SECTION Agent_Queuing_Loop
/***************************
NOTE: THIS SECTION IS NOT INCLUDED HERE. IF YOU WISH TO IMPLEMENT
AN AGENT QUEUING LOOP. SEE THE SECTION ON IMPLEMENTING AN AGENT
QUEUING LOOP IN THE M1 SCRIPTING GUIDE.
****************************/
/****************************************************************
Skillset_Queuing Section
Queue the Contact to the Specified Skillset if the Skillset is in
Service
****************************************************************/
SECTION Skillset_Queuing
/****************************************************************
Skillset_Queuing_Loop
This Loop queues the Contact again if it not Queued. This loop
handles the scenario where a Contact is Queued and the skillset
goes out of service. The frequency of this loop is decreased as
the number of contacts in the system increases.
NOTE: If you delete a skillset, then you must afterwards check for
any new contacts that were in that skillset using the Agent
Desktop. For these contacts to be Queued, they must be pulled by
Agents, otherwise these contacts remain in the
Skillset_Queuing_Loop forever. To pull the contacts, search for
new Contacts using the Agent Desktop then sort by skillset and
pull any new contacts in the skillset you deleted.
****************************************************************/
SECTION Skillset_Queuing_Loop
/****************************************************************
The following algorithm is used to decrease the frequency of the
skillset queuing loop as the number of contacts increases.
****************************************************************/
WAIT loop_wait_time_cv
Troubleshooting
To help troubleshoot script-related issues, use the LOG scripting command to
print out messages to the Event Viewer that indicate the progress of the contact
through the script. Printing out messages can help you to determine what path a
contact followed through the scripts.
You must use the LOG command only for testing or for logging error conditions
in the scripts. Remove non-critical log messages before you use scripts in a live
environment because the LOG command affects system performance.
You can use the Contact Center Manager Administration Standard Application
Real-Time Display as a troubleshooting tool. Contact center administrators can
use the real-time display to determine the number of contacts waiting in a given
application.
See “Filtering Real Time Display statistics for rescheduled contacts,” on page
662, for more information about how to use the Application Real-Time Display
to determine the number of rescheduled contacts waiting in the system.
In the existing script structure, rescheduled contacts skew both the Application
Average Delay and Max Wait Time statistic in the Real Time Displays (RTD)
for the relevant application. This condition is because when a contact is
rescheduled, it stays in the c_Scheduled_Contact_Handler script until the
callback date and time occurs and is then queued to the appropriate skillset.
To isolate rescheduled contacts, you can change the structure of the scripts to
execute separate primary scripts for rescheduled contacts and for new contacts.
This condition requires using the following six primary scripts instead of the
three primary scripts shown in the scripts:
EM_Email_Primary
EM_Scheduled_Email_Primary
OB_Outbound_Primary
OB_Scheduled_Outbound_Primary
WC_Web_Primary
WC_Scheduled_Web_Primary
After you change the script structure, the application RTD can be filtered by the
application, so that separate filter totals are listed for new contacts and for
rescheduled contacts. The statistics for rescheduled contacts can still show a
long delay, but it is separated from the statistics for new contacts by using the
RTD filter. An example of an RTD is shown in the following figure.
To modify the existing scripts so that separate applications are called for new
contacts and rescheduled contacts follow the procedure Modifying scripts.
Modifying scripts
1 Copy the three primary scripts:
EM_Email_Primary
OB_Outbound_Primary
WC_Web_Primary
2 Rename the scripts to:
EM_Scheduled_Email_Primary
OB_Scheduled_Outbound_Primary
WC_Scheduled_Web_Primary
3 Validate the three new Primary Scripts.
4 Remove this section of the Master Script:
/****************************************************************
For Multimedia Contacts execute the relevant Primary Script
****************************************************************/
/****************************************************************
Assign the Contact WAITTIME to a Call Variable
****************************************************************/
/****************************************************************
Check if the WAITTIME is 0 for the Contact, this indicates the
Contact is a New Contact and the regular Primary Scripts is
executed, otherwise the Contact is a rescheduled Contact and the
corresponding Scheduled Primary Script is executed.
This separates rescheduled contacts from new contacts in
Application Reporting
****************************************************************/
IF contact_wait_time_cv = 0 THEN
WHERE CONTACT TYPE EQUALS
VALUE c_contact_type_email_gv : EXECUTE SCRIPT
EM_Email_Primary
ELSE
END IF
New_Contacts EM_Email_Primary
OB_Outbound_Primary
WC_Web_Primary
Scheduled_Contacts EM_Scheduled_Email_Primary
OB_Scheduled_Outbound_Primary
WC_Scheduled_Web_Primary
Standard_Application ACD_DN_Application
Master_Script
NACD_DN_Application
Network_Script
After you are familiar with the multimedia scripts, you can adjust the scripts to
improve the operation of your multimedia contact center.
You may want to create a Route Point such as Client_A_RoutePoint and then
assign multimedia skillsets to this Route Point. This Route Point can represent a
client for who you manage a contact center and who requires a separate
application report.
In the Master_Script, you can then execute a specific primary script for contacts
routed to this Route Point as follows:
IF CONTACT TYPE = c_contact_type_email_gv THEN
WHERE ROUTE POINT EQUALS
VALUE "Client_A_RoutePoint": EXECUTE SCRIPT
EM_Client_A_Primary
VALUE "Client_B_RoutePoint": EXECUTE SCRIPT
EM_Client_B_Primary
DEFAULT : EXECUTE SCRIPT
EM_Email_Primary
END WHERE
END IF
When you implement such a loop, it is important to ensure that the loop has an
appropriate exit condition based on the age of the contact or on the number of
attempts made to queue the contact to the preferred agent. If such an exit
condition is not in place, contacts can remain in the loop indefinitely.
An example of an Agent Queuing Loop with exit conditions based on the age of
contact and business hours is shown in the following section. This example
script executes the Agent_Queuing_Loop during periods when the preferred
agent is expected to be logged out. During normal working hours, the script
attempts to queue the contact to the agent for 1 hour (if the agent logged out). If
the contact does not connect to the agent, the contact moves to the
Skillset_Queuing section, which queues the contact to the relevant multimedia
skillset.
SECTION Agent_Queuing_Loop
WAIT 60
IF NOT QUEUED THEN
/* execute Agent Queuing Loop if out of hours */
IF ((TIME OF DAY = out_of_hours_gv) OR
(DAY OF WEEK = closed_days_gv)) THEN
EXECUTE Agent_Queuing
ELSE
/* during normal working hours attempt to Queue to Agent
for 1 hour */
ELSE
EXECUTE Agent_Queuing_Loop
END IF
This example is not included in the scripts because the parameters for an Agent
Queuing Loop depend on the specific requirements of your multimedia contact
center.
If you want the skillset information to appear on the Agent Desktop for voice
calls before the agent accepts the call, then you must add the skillset information
as call data to the voice call before you queue it to the appropriate skillset. The
Agent Desktop displays the information in the call data when the call is
presented.
To add the skillset information to the call data, you must configure the TAPI
connection in the Database Integration Wizard on Contact Center Manager
Server, and then modify your scripts to add the appropriate voice skillset name
to the TAPI call data for the call.
ATTENTION
If you use the Database Integration Wizard to add TAPI call
data, you overwrite any existing TAPI call data. This adversely
affects other CTI applications that rely on existing TAPI call
data and prevents these applications from working correctly.
Nortel recommends that you review what other CTI
applications (if any) rely on existing TAPI call data before
proceeding with the Database Integration Wizard.
1 On the Contact Center Manager server, click Start > All Programs >
Nortel Contact Center > Manager Server > Database Integration
Wizard.
2 Click Next on the Welcome window.
8 Click Next.
9 Click Next.
10 Click Next.
11 Click Finish.
In your scripts, add the appropriate voice skillset name to the TAPI call data by
adding the following two lines of code to the script before each QUEUE TO
SKILLSET command:
ASSIGN Skillset_Name to DIW_Skillset_cv
For example:
IF NOT OUT OF SERVICE Sales_Skillset THEN
ASSIGN Sales_Skillset to DIW_Skillset_cv
SEND INFO DIW_AppID_gv DIW_TAPI_String_gv, DIW_Skillset_cv
QUEUE TO SKILLSET Default_Skillset WITH PRIORITY 2
WAIT 2
END IF
In this appendix
Overview 676
GIVE IVR 679
Example usage scripts 688
SIP intrinsics 700
Configuration guidelines and general scripting considerations 705
Test script 710
Overview
To support interaction with the Media Application Server, some Contact Center
Manager Server scripting engine commands in a SIP-enabled contact center
have usage updates or command syntax changes. One Contact Center Manager
Server scripting engine change is the introduction of support for VoiceXML
(VXML), which is designed for:
creating audio dialogs featuring synthesized speech
creating digitized output
recognition of spoken and dual-tone multifrequency (DTMF) key input
recording of spoken input
playing recorded media files
VXML scripts control media dialog with the voice contact from a media server
node in the contact center.
Scripting in the SIP-enabled Contact Center Manager can invoke VXML scripts
on any compatible SIP Media Application Server. However, the Nortel Media
Application Server currently only supports VXML scripts provided as part of the
Nortel Media Application Server Contact Center Application installation
(PlayPrompt.vxml and PlayAndCollect.vxml). Therefore:
Generic VXML scripts are not currently supported on the Media
Application Server.
VXML support on Media Application Server is extended to include video,
IM, and Web push.
The SIP-enabled contact center currently supports only the Media
Application Server.
In general, the SIP-enabled contact center delivers the same level of support as
the scripting features of Contact Center Manager Administration. Some of the
existing commands are retained, but other commands are removed or replaced
by an updated GIVE IVR command.
Currently, SIP-enabled contact centers queue voice and video contacts only.
The following table summarizes the Contact Center Manager Server scripting
engine (TFE) commands in a SIP-enabled contact center.
Support Command
When Contact Center Manager Server scripting engine invokes VXML on the
Media Application Server, it retains overall control of the voice or video contact.
Specify the URL or name of the VXML script file to execute the script.
Several Contact Center Manager Server scripting engine variables are created
automatically during installation to facilitate interaction between the call flow
operation script running on SIP-enabled contact center and the VXML script
(PlayPrompt.vxml or PlayAndCollect.vxml) running on the Media Application
Server.
For detailed instructions about configuring the default media services for SIP,
see the Contact Center Manager Server Installation and Maintenance Guide.
GIVE IVR
In the SIP-enabled contact center, the GIVE IVR (interactive voice response)
command provides treatments to callers by playing recorded announcements or
by collecting caller information from VXML scripts residing on the media
server. This command is extended for the Nortel Media Application Server to
include instant message treatments, Web page pushes, and video.
Script syntax
GIVE IVR {INTERRUPTIBLE}
{RETURNS <variable_r1>,...<variable_r10>}
INTERRUPTIBLE keyword
INTERRUPTIBLE is an optional keyword used by Contact Center Manager
Server to interrupt the media treatment, for example, when an agent becomes
available to take the contact.
When the INTERRUPTIBLE option is used, if the contact is queued before the
GIVE IVR command is used, then the IVR session is interrupted when an agent
becomes available to take the contact.
SERVICE URI
The SERVICE URI keyword is an optional keyword that expects a predefined
script variable (<service_uri>) of type String. The <service_uri> script variable
represents any valid SIP address of the following format:
sip: username@domain
The name and value of the <service_uri> script variable are defined in Contact
Center Manager Administration scripting. The name of the script variable can be
any value; there is no validation on the script variable name. For example,
cv_service_uri represents sip:[email protected]
cv_dialog_sip_add represents sip:[email protected]
The SIP address represents the media service at which the invoked VXML
treatment can be serviced. The SIP address must have a media server (or proxy)
associated with it through Contact Center Manager Administration
configuration. A default SIP address is configured on the Default Media
Services tab of the Server Setup Configuration Utility on the Contact Center
Manager Server Server Setup Configuration utility and this address is used, if a
SIP address is not specified in the variable name.
The Default Media Services tab only appears in the Server Setup Configuration
utility if Contact Center Manager Server is installed with a SIP-enabled switch.
The VXML script name must exactly match in Contact Center Manager
Administration scripting and the Nortel Media Application Server.
The name and value of the <treatment_uri> script variable are defined in Contact
Center Manager Administration scripting. The name of the script variable can be
any value; there is no validation on the script variable name. For example:
cv_treatment_uri represents InitialTreatment.vxml
cv_vxml_treatment represents CollectTreatment.vxml
When invoking the GIVE IVR command against the Media Application Server
Contact Center application, the <treatment_uri> script variable name must be
voicexml and the script variable value must be either PlayPrompt.vxml or
PlayAndCollect.vxml.
PARAMETERS keyword
The optional PARAMETERS keyword of the GIVE IVR command uses a list of
1 to 10 predefined script variables (<variable_p1>) of type string, integer, or
digit that are inputs to the VXML treatment identified by the WITH VXML
TREATMENT keyword. The names of these variables are fixed and the names
and functions of the variables are defined below.
When the SIP-enabled Contact Center Manager Server scripting engine is the
invoking party, a set of parameters (with default values) are predefined as
Contact Center Manager Server scripting engine variables. Depending on the
target VXML script, these parameters are optional or mandatory. For example,
the interdigittimeout parameter can have a value set in the Contact Center
Manager Server scripting engine, but it can also have a default value to which
the VXML scripts reverts to if the parameter is not included with the GIVE IVR
command.
When SIP is selected as the Contact Center Manager Server switch integration
option during installation, the following script variables are automatically
detected. The default values indicate for what the variables are used.
GIVE IVR
SERVICE URI serviceuri
WITH VXML TREATMENT voicexml
PARAMETERS prompttoplay, notypeahead, numberofdigits,
interdigittimeout
RETURNS c_sip_digits_int_cv
/*This GIVE IVR command plays back the digits that were
entered.*/
ASSIGN c_sip_digits_int_cv TO vars
ASSIGN c_play_only_gv TO voicexml
ASSIGN "TheAccountNumberYouEnteredWas.wav+%n0" TO
prompttoplay
GIVE IVR
SERVICE URI serviceuri
WITH VXML TREATMENT voicexml
PARAMETERS prompttoplay, vars
As a string according to the definition of c_sip_digits_str_cv. When the
variable is a string variable, up to 80 digits can be returned and manipulated
in scripting. When the variable is defined as a string it cannot be used in
conjunction with the GIVE IVR vars parameter.
RETURNS keyword
The optional RETURNS keyword of the GIVE IVR command is a list of 1 to 10
predefined script variables (<variable_r1>) of type string, integer, or digit that
are returned to Contact Center Manager Server by the VXML treatment
identified by the WITH VXML TREATMENT keyword.
The GIVE IVR command compiles any user-defined return parameters, but you
must declare and assign values to return parameter script variables before using
the GIVE IVR command.
4. If you use the im parameter, you must also use valid vxmlfrom and vxmlto
parameters. The vxmlfrom and vxmlto parameters in Contact Center
Manager Administration scripting equal valid SIP addresses. The vxmlfrom
parameter identifies the SIP address originating the IM. The vxmlto
parameter identifies the SIP address receiving the IM.
GIVE IVR WITH TREATMENT voicexml
PARAMETERS im, vxmlfrom, vxmlto
5. If you use the urltopush parameter, you must use valid vxmlfrom and
vxmlto parameters. The vxmlfrom and vxmlto parameters in Contact
Center Manager Administration Scripting equal valid SIP addresses. The
vxmlfrom parameter identifies the SIP address performing the URL push.
The vxmlto parameter identifies the SIP address to which the caller’s
browser is directed.
GIVE IVR WITH TREATMENT voicexml
PARAMETERS urltopush, vxmlfrom, vxmlto
The following example scripts are simplified for functional reference only and
are not representative of scripting best practice.
GIVE IVR
WITH VXML TREATMENT voicexml
PARAMETERS urltopush, vxmlfrom, vxmlto
GIVE IVR
WITH VXML TREATMENT voicexml
PARAMETERS im, vxmlfrom, vxmlto
GIVE IVR
WITH VXML TREATMENT voicexml
PARAMETERS im, vxmlfrom, vxmlto
WAIT 5
/*In this situation the WAIT command is used
to give the caller time to read the default IM
before the next IM is sent*/
GIVE IVR
WITH VXML TREATMENT voicexml
PARAMETERS im, vxmlfrom, vxmlto
/* This example shows how the parameters vxmlto and vxmlfrom are
typically used. CONTACT DATA intrinsics in SIP are used to set the
values for the vxmlto and vxmlfrom. CONTACT DATA SIP_FROM_ADDRESS
reflects the SIP address of the customer originating the contact
into the contact center. CONTACT DATA SIP_TO_ADDRESS reflects the
SIP address of the contact center route point or CDN to which the
customer contacts are directed. For more information about CONTACT
DATA intrinsics, see “CONTACT DATA” on page 444. */
GIVE RINGBACK
WAIT 2
GIVE IVR
WITH VXML TREATMENT voicexml
PARAMETERS prompttoplay,urltopush,vxmlfrom, vxmlto
/* You must save the audio and video files on the Media
Application Server using the CCPROV.exe tool. */
GIVE RINGBACK
WAIT 5
GIVE IVR
WITH VXML TREATMENT voicexml
PARAMETERS im, prompttoplay, notypeahead, numberofdigits,
vxmlfrom, vxmlto
RETURNS C_sip_digits_str_cv
GIVE RINGBACK
WAIT 5
END IF
GIVE IVR
SERVICE URI serviceuri
WITH VXML TREATMENT voicexml
PARAMETERS prompttoplay, vars
DISCONNECT
GIVE RINGBACK
WAIT 5
GIVE IVR
SERVICE URI serviceuri
WITH VXML TREATMENT voicexml
PARAMETERS im, vxmlfrom, vxmlto
WAIT 2
GIVE IVR
SERVICE URI serviceuri
WITH VXML TREATMENT voicexml
PARAMETERS prompttoplay, vars
DISCONNECT
GIVE RINGBACK
WAIT 5
GIVE IVR
SERVICE URI serviceuri
WITH VXML TREATMENT voicexml
PARAMETERS prompttoplay, vars
DISCONNECT
GIVE RINGBACK
WAIT 5
GIVE IVR
SERVICE URI serviceuri
WITH VXML TREATMENT voicexml
PARAMETERS im, vxmlfrom, vxmlto
GIVE IVR
SERVICE URI serviceuri
WITH VXML TREATMENT voicexml
PARAMETERS prompttoplay, notypeahead, numberofdigits, termchar
RETURNS c_sip_digits_int_cv
GIVE IVR
SERVICE URI serviceuri
WITH VXML TREATMENT voicexml
PARAMETERS prompttoplay, vars
DISCONNECT
SIP intrinsics
For SIP-enabled contact centers, the name and value parameters used to extract
intrinsic values are string types. In scripting, the intrinsic value is made available
using the new script command:
This command returns the string value associated with a specified keyname. In
SIP-enabled contact centers, the following keynames are defined to extract SIP
intrinsic data.
SIP Call ID
The SIP Call ID is the alphanumeric identification of the initial customer
session. While it can be used as a unique key for parameter storage or retrieval to
a remote database using HDX commands, a SIP Call ID is not maintained end-
to-end as the contact traverses multiple proxies.
The usage of the Accept-Language header in this way is not consistent with the
intention of the SIP Standard Reference 7.
GIVE IVR
SERVICE URI serviceuri
WITH VXML TREATMENT voicexml
PARAMETERS prompttoplay
CONTACT TYPE
The new intrinsic CONTACT TYPE provides the primary contact type (media
type) of the contact. In SIP Contact Center, this is normally either voice
(c_contact_type_voice_gv) or video (c_contact_type_video_gv).
VALUE c_contact_type_video_gv:
QUEUE TO SKILLSET VI_Video_Skillset
END WHERE
Only the configuration details relevant to call flow operation are described in
this guide.
Note: HDX is supported for SIP. For more details refer to “Host Data Exchange
commands” on page 327.
For example, instead of invoking two instances of GIVE IVR to play a prompt,
collect digits, and subsequently push a Web page, use a single invocation passing
parameters to support all three functions. You significantly optimize the
performance of the overall solution and, in particular, Media Application Server
usage performance.
The following graphic shows a music script variable in Contact Center Manager
Administration.
The following graphic shows the route number and name of music and
announcement files in Contact Center Manager Administration.
Example: Using the MUSIC variable type with the GIVE MUSIC
command
/* This script demonstrates the use of the GIVE MUSIC using the
MUSIC variable type.
GIVE RINGBACK
WAIT 5
QUEUE TO SKILLSET Default_Skillset
GIVE MUSIC pop_music_route
WAIT 5
DISCONNECT
ATTENTION
On Communication Server 1000/Meridian 1 PBX
installations of Contact Center Manager Server, music is
automatically reapplied by the switch after the initial GIVE
MUSIC command if, for example, the call is returned to
queue. This means the GIVE MUSIC command does not
have to be reissued in scripts.
In SIP-enabled Contact Center Manager Server installations,
music is automatically reapplied by the switch after the initial
GIVE MUSIC command if the call is returned to queue.
However, in all other scenarios, GIVE MUSIC must be
manually re-applied at appropriate points in the script call
flow as required. For example CS1K-CCMS installations
automatically re-insert MUSIC (if MUSIC was the last
command issued) between RANs but in SIP-enabled CCMS
installations, GIVE MUSIC must be manually re-applied.
When the first file is finished, the Media Application Server selects another
recording in the genre folder and begins playback. The Media Application
Server continues genre playback until Contact Center Manager Server scripting
terminates the invocation for music. This occurs, for example, when a call is
offered to a selected agent or a WAIT timeout is followed by an invocation to a
new treatment.
Video and audio playback are included in a genre including a mixture of both
video and audio files.
ATTENTION
The GIVE MUSIC <route number> command does not work
if the route number corresponds to a specific music file rather
than a genre.
Test script
The following is a test script for use as a reference to highlight the capabilities in
SIP-enabled contact center scripting. It incorporates a range of sample functions
including:
using standard tone, RAN, and music invocations
sending IMs and Web Push treatments
playing prompts and collecting digits, including digit collection approaches
playing estimated wait time and time in queue announcements
Script variables
When SIP is selected as the Contact Center Manager Server option during
installation, the following script variables are automatically created.
Music routes uses genres, which are folders with a genre name on the Media
Application Server. RAN routes use media file names such as .wav or .avi.
Name Number
Pop 10
Rock 11
myAnnouncement.wav 500
Skillsets
The script references one skillset, VI_Default_Skillset, which is the default
video skillset.
Master script
/* Title: Master Script
GIVE RINGBACK
WAIT 5
GIVE IVR
SERVICE URI serviceuri
Primary 1 script
/*Primary 1-tests GIVE IVR, IM, webpush etc. */
GIVE IVR
SERVICE URI serviceuri
WITH VXML TREATMENT voicexml
PARAMETERS prompttoplay
GIVE IVR
SERVICE URI serviceuri
WITH VXML TREATMENT voicexml
PARAMETERS prompttoplay, notypeahead, numberofdigits,
interdigittimeout
RETURNS c_sip_digits_str_cv
SECTION IM_TREATMENT
/*This GIVE IVR plays a video and sends the IM text assigned
above*/
GIVE IVR
SERVICE URI serviceuri
ASSIGN c_sip_from_add_cv TO im
GIVE IVR
SERVICE URI serviceuri
WITH VXML TREATMENT voicexml
PARAMETERS im, vxmlfrom, vxmlto
WAIT 5
GIVE IVR
SERVICE URI serviceuri
WITH VXML TREATMENT voicexml
PARAMETERS im, vxmlfrom, vxmlto
WAIT 5
EXECUTE EXIT_DEMO
SECTION WEB_PUSH
GIVE IVR
SERVICE URI serviceuri
WITH VXML TREATMENT voicexml
PARAMETERS prompttoplay, urltopush, vxmlfrom, vxmlto
GIVE IVR
SERVICE URI serviceuri
WITH VXML TREATMENT voicexml
PARAMETERS prompttoplay, notypeahead, numberofdigits,
interdigittimeout
RETURNS c_sip_digits_str_cv
GIVE IVR
SERVICE URI serviceuri
WITH VXML TREATMENT voicexml
PARAMETERS im, vxmlfrom, vxmlto
WAIT 5
GIVE IVR
SERVICE URI serviceuri
WITH VXML TREATMENT voicexml
PARAMETERS urltopush, vxmlfrom, vxmlto
WAIT 5
END IF
GIVE IVR
SERVICE URI serviceuri
WITH VXML TREATMENT voicexml
PARAMETERS im, vxmlfrom, vxmlto
WAIT 5
EXECUTE EXIT_DEMO
SECTION EXIT_DEMO
GIVE IVR
SERVICE URI serviceuri
WITH VXML TREATMENT voicexml
PARAMETERS im, vxmlfrom, vxmlto
WAIT 5
GIVE IVR
SERVICE URI serviceuri
WITH VXML TREATMENT voicexml
PARAMETERS im, vxmlfrom, vxmlto
GIVE IVR
SERVICE URI serviceuri
WITH VXML TREATMENT voicexml
PARAMETERS prompttoplay, notypeahead, numberofdigits, termchar
RETURNS c_sip_digits_int_cv
/*This GIVE IVR command plays back the digits that were
entered.*/
GIVE IVR
SERVICE URI serviceuri
WITH VXML TREATMENT voicexml
PARAMETERS prompttoplay, vars
GIVE IVR
SERVICE URI serviceuri
WITH VXML TREATMENT voicexml
PARAMETERS im, vxmlfrom, vxmlto
WAIT 5
ASSIGN "Enter 5 digits. See what happens if you pause for too
long in between digits" TO im
GIVE IVR
SERVICE URI serviceuri
WITH VXML TREATMENT voicexml
PARAMETERS im, vxmlfrom, vxmlto
change the IM above to let the caller know what action he/she
should take.*/
/*This GIVE IVR command collects digits from the user until
the number of digits or the interdigittimeout is reached.*/
GIVE IVR
SERVICE URI serviceuri
WITH VXML TREATMENT voicexml
PARAMETERS prompttoplay, notypeahead, numberofdigits,
interdigittimeout
RETURNS ReturnValue
/*This GIVE IVR command plays back the digits that were
entered.*/
GIVE IVR
SERVICE URI serviceuri
WITH VXML TREATMENT voicexml
PARAMETERS prompttoplay, vars
ASSIGN "You are now finished GIVE IVR testing. You will be
disconnected shortly." TO im
GIVE IVR
SERVICE URI serviceuri
WITH VXML TREATMENT voicexml
PARAMETERS im, vxmlfrom, vxmlto
WAIT 5
DISCONNECT
Primary 2 script
/*Primary 2 - tests the SIP intrinsics
*/
GIVE IVR
SERVICE URI serviceuri
WITH VXML TREATMENT voicexml
PARAMETERS prompttoplay
GIVE IVR
SERVICE URI serviceuri
WITH VXML TREATMENT voicexml
PARAMETERS im, vxmlfrom, vxmlto
WAIT 2
GIVE IVR
SERVICE URI serviceuri
WITH VXML TREATMENT voicexml
PARAMETERS im, vxmlfrom, vxmlto
WAIT 2
ASSIGN c_sip_from_add_cv TO im
GIVE IVR
SERVICE URI serviceuri
WITH VXML TREATMENT voicexml
PARAMETERS im, vxmlfrom, vxmlto
WAIT 2
GIVE IVR
SERVICE URI serviceuri
WITH VXML TREATMENT voicexml
PARAMETERS im, vxmlfrom, vxmlto
WAIT 2
ASSIGN c_sip_to_add_cv TO im
GIVE IVR
SERVICE URI serviceuri
WITH VXML TREATMENT voicexml
PARAMETERS im, vxmlfrom, vxmlto
WAIT 2
GIVE IVR
SERVICE URI serviceuri
WITH VXML TREATMENT voicexml
PARAMETERS im, vxmlfrom, vxmlto
WAIT 2
GIVE IVR
SERVICE URI serviceuri
WITH VXML TREATMENT voicexml
PARAMETERS im, vxmlfrom, vxmlto
WAIT 2
GIVE IVR
SERVICE URI serviceuri
WITH VXML TREATMENT voicexml
PARAMETERS im, vxmlfrom, vxmlto
WAIT 2
GIVE IVR
SERVICE URI serviceuri
WITH VXML TREATMENT voicexml
PARAMETERS im, vxmlfrom, vxmlto
WAIT 2
GIVE IVR
SERVICE URI serviceuri
WITH VXML TREATMENT voicexml
PARAMETERS im, vxmlfrom, vxmlto
WAIT 2
GIVE IVR
SERVICE URI serviceuri
WITH VXML TREATMENT voicexml
PARAMETERS im, vxmlfrom, vxmlto
WAIT 2
GIVE IVR
SERVICE URI serviceuri
WITH VXML TREATMENT voicexml
PARAMETERS im, vxmlfrom, vxmlto
WAIT 2
GIVE IVR
SERVICE URI serviceuri
WITH VXML TREATMENT voicexml
PARAMETERS im, vxmlfrom, vxmlto
WAIT 2
GIVE IVR
SERVICE URI serviceuri
WITH VXML TREATMENT voicexml
PARAMETERS im, vxmlfrom, vxmlto
WAIT 2
GIVE IVR
SERVICE URI serviceuri
WITH VXML TREATMENT voicexml
PARAMETERS im, vxmlfrom, vxmlto
WAIT 2
GIVE IVR
SERVICE URI serviceuri
GIVE IVR
SERVICE URI serviceuri
WITH VXML TREATMENT voicexml
PARAMETERS im, vxmlfrom, vxmlto
GIVE IVR
SERVICE URI serviceuri
WITH VXML TREATMENT voicexml
PARAMETERS im, vxmlfrom, vxmlto
END WHERE
WAIT 5
DISCONNECT
Primary 3 script
/*Primary 3 - music and tone testing
The music and RAN routes (for example, GIVE MUSIC 10 and GIVE RAN
500) are configured in CCMA, where 10 corresponds to pop music and
500 corresponds to myAnnouncement.wav.
*/
/*This GIVE IVR command plays an audio file telling you that
you have chosen option 3.*/
GIVE IVR
SERVICE URI serviceuri
WITH VXML TREATMENT voicexml
PARAMETERS prompttoplay
GIVE IVR
SERVICE URI serviceuri
WITH VXML TREATMENT voicexml
PARAMETERS im, vxmlfrom, vxmlto
GIVE MUSIC 31
WAIT 5
GIVE IVR
SERVICE URI serviceuri
WITH VXML TREATMENT voicexml
PARAMETERS im, vxmlfrom, vxmlto
GIVE MUSIC 11
WAIT 5
GIVE SILENCE
WAIT 2
GIVE MUSIC 11
WAIT 5
GIVE IVR
SERVICE URI serviceuri
WITH VXML TREATMENT voicexml
PARAMETERS im, vxmlfrom, vxmlto
GIVE MUSIC 10
WAIT 5
GIVE MUSIC 29
WAIT 5
ASSIGN "Testing valid, then invalid RAN route (after the 1st RAN
there should be silence)" TO im
GIVE IVR
SERVICE URI serviceuri
WITH VXML TREATMENT voicexml
PARAMETERS im, vxmlfrom, vxmlto
GIVE IVR
SERVICE URI serviceuri
WITH VXML TREATMENT voicexml
PARAMETERS im, vxmlfrom, vxmlto
Primary 4 script
/*Primary 4 - Tests misc. commands, for example- estimated
wait time and position in queue.*/
/*This GIVE IVR command plays an audio file telling the caller
that they have chosen option 4.*/
GIVE IVR
SERVICE URI serviceuri
WITH VXML TREATMENT voicexml
PARAMETERS prompttoplay
GIVE IVR
SERVICE URI serviceuri
WITH VXML TREATMENT voicexml
PARAMETERS im, vxmlfrom, vxmlto
GIVE IVR
SERVICE URI serviceuri
WITH VXML TREATMENT voicexml
PARAMETERS im, vxmlfrom, vxmlto
WAIT 5
DISCONNECT
END IF
GIVE IVR
SERVICE URI serviceuri
WITH VXML TREATMENT voicexml
PARAMETERS prompttoplay, vars
GIVE MUSIC 10
WAIT 5
/*Note that although the GIVE MUSIC command was used earlier,
music is not automatically reintroduced after GIVE IVR and GIVE
RAN. Each time you want to reintroduce music you must give the
GIVE MUSIC command.*/
GIVE IVR
SERVICE URI serviceuri
WITH VXML TREATMENT voicexml
PARAMETERS prompttoplay,vars
GIVE MUSIC 10
WAIT 5
/*This GIVE IVR command sends the caller an IM. There is a WAIT
command to give the caller a change to read the message, then the
call is disconnected. */
GIVE IVR
SERVICE URI serviceuri
WITH VXML TREATMENT voicexml
PARAMETERS im, vxmlfrom, vxmlto
WAIT 5
DISCONNECT
Scripting Reference
In this appendix
Commands and intrinsics 736
The tables in this appendix list all the commands and intrinsics and compares
their use with M1, DMS, Open Queue, and SIP.
Commands–General
CS CS
1000/ 2100/ Open
Command Description M1 DMS Queue SIP Notes
Commands–Call Procedures
CS CS
1000/ 2100/ Open
Command Description M1 DMS Queue SIP Notes
GIVE BUSY Give a busy tone Yes Yes No Yes For SIP: Tone is
to the caller. localized
through the
Default or Script
modified Locale
Setting.
GIVE MUSIC Give music to the Yes Yes No Yes For SIP: Tone is
caller. localized
through the
Default or Script
modified Locale
Setting.
CS CS
1000/ 2100/ Open
Command Description M1 DMS Queue SIP Notes
CS CS
1000/ 2100/ Open
Command Description M1 DMS Queue SIP Notes
ROUTE CALL Route the call to Yes Yes No Yes For SIP: This
a DN. command is
supported only
for numeric
targets. For
example, it does
not support SIP
addresses;
aliases only.
Commands–Advanced
CS CS
1000/ 2100/ Open
Command Description M1 DMS Queue SIP Notes
Commands–Networking
CS CS
1000/ 2100/ Open
Command Description M1 DMS Queue SIP Notes
CS CS
1000/ 2100/ Open
Command Description M1 DMS Queue SIP Notes
REMOVE Remove the call Yes Yes Yes No For DMS: New
FROM from the in Contact
NETWORK specified Center Manager
SKILLSET network skillsets. 6.0.
For SIP: NACD
features are not
applicable.
Commands–Voice Processing
CS CS
1000/ 2100/ Open
Command Description M1 DMS Queue SIP Notes
GIVE IVR Deliver the call Yes Yes No No For DMS: New
to IVR. in Contact
Center Manager
6.0.
For SIP: This
command is
replaced by
GIVE IVR with
integrated
VXML service
invocation and
open VXML
service
invocation
support.
GIVE IVR VXML treatment No No No Yes For SIP: This
WITH VXML for a SIP CC feature is new in
contact. Contact Center
Manager 6.0
CS CS
1000/ 2100/ Open
Command Description M1 DMS Queue SIP Notes
Commands–HDX
CS CS
1000/ 2100/ Open
Command Description M1 DMS Queue SIP Notes
Intrinsics–Skillset
CS CS
1000/ 2100/ Open
Command Description M1 DMS Queue SIP Notes
CS CS
1000/ 2100/ Open
Command Description M1 DMS Queue SIP Notes
PRIORITY IN Return the Yes Yes Yes Yes For DMS: New
NETWORK priority of the in Contact
QUEUE contact in the Center Manager
specified 6.0
network skillset.
CS CS
1000/ 2100/ Open
Command Description M1 DMS Queue SIP Notes
Intrinsics–Time
CS CS
1000/ 2100/ Open
Command Description M1 DMS Queue SIP Notes
Intrinsics–Traffic
CS CS
1000/ 2100/ Open
Command Description M1 DMS Queue SIP Notes
Intrinsics–Call
CS CS
1000/ 2100/ Open
Command Description M1 DMS Queue SIP Notes
CS CS
1000/ 2100/ Open
Command Description M1 DMS Queue SIP Notes
CS CS
1000/ 2100/ Open
Command Description M1 DMS Queue SIP Notes
CS CS
1000/ 2100/ Open
Command Description M1 DMS Queue SIP Notes
Intrinsics–Multimedia
CS CS
1000/ 2100/ Open
Command Description M1 DMS Queue SIP Notes
CONTACT Contact type for Yes Yes Yes Yes This command
TYPE the contact. is new in
Returned as Contact Center
CONTACT_ Manager 6.0.
TYPE.
ROUTE POINT Route point of No No Yes Yes For SIP: This
the contact. command
returns the name
of the SIP route
point.
CS CS
1000/ 2100/ Open
Command Description M1 DMS Queue SIP Notes
A accelerator key
A key on a phoneset that an agent can use to place a call quickly. When an agent
presses an accelerator key, the system places the call to the configured number
associated with the key. For example, if an agent presses the Emergency key, the
system places a call to the agent’s supervisor.
ACCESS
An internal protocol used by Contact Center Manager Server to directly control
some of the voice services available on the CallPilot or Meridian Mail platform.
access class
A collection of access levels that defines the actions a member of the access
class can perform within the system. For example, a member of the
Administrator access class might be given a collection of Read/Write access
levels.
access level
A level of access or permission given to a particular user for a particular
application or function. For example, a user might be given View Only access to
historical reports.
ACCESS link
A communication channel between Contact Center Manager Server and
CallPilot or Meridian Mail.
ACD call
See automatic call distribution call.
ACD-DN
See automatic call distribution directory number.
ACD group
See automatic call distribution group.
ACD subgroup
See automatic call distribution subgroup.
acquired resource
A resource configured on the switch under the control of Contact Center
Manager Server. Resources must be configured with matching values on both
the switch and Contact Center Manager Server.
activated script
A script that is processing calls or is ready to process calls. Before you can
activate a script, you must first validate it.
active server
In a system with a Replication Server, the server providing call processing and
administration services.
activity code
A number that agents enter on their phoneset during a call. Activity codes
provide a way of tracking the time agents spend on various types of incoming
calls. They are also known as Line of Business (LOB) codes. For example, the
activity code 720 might be used to track sales calls. Agents can then enter 720
on their agent desktop applications during sales calls, and this information can
be generated in an Activity Code report.
adapter
Hardware required to support a particular device. For example, network adapters
provide a port for the network wire. Adapters can be expansion boards or part of
the computer’s main circuitry.
administrator
A user who sets up and maintains Contact Center Manager and Contact Center
Multimedia.
agent
A user who handles inbound and outbound voice calls, e-mail messages, and
Web communications.
agent logon ID
A unique identification number assigned to a particular agent. The agent uses
this number when logging on. The agent ID is not associated with any particular
phoneset.
agent-to-skillset assignment
A matrix that, when you run it, sets the priority of one or more agents for a
skillset. Agent to skillset assignments can be scheduled.
agent-to-supervisor assignment
A matrix that, when you run it, assigns one or more agents to specific
supervisors. Agent to supervisor assignments can be scheduled.
AIP
Advanced I/O Processor
alias
See e-mail alias.
AML
See Application Module Link.
ANI
See automatic Number Identification.
API
See application program interface.
application
1. A logical entity that represents a Contact Center Manager script for reporting
purposes. The Master script and each primary script have an associated
application. The application has the same name as the script it represents. 2. A
program that runs on a computer.
application server
The server on which the Contact Center Manager Administration software is
installed. This server acts as the middle layer that communicates with Contact
Center Manager Server and makes information available to the client PCs.
associated supervisor
A supervisor who is available for an agent if the agent’s reporting supervisor is
unavailable. See also reporting supervisor.
auto-response
A message sent to a customer with no agent interaction. An auto-response can
be an intelligent response, such as a sales promotion flyer, or an
acknowledgement, such as, “We received your e-mail and will respond to you
within three days.”
B basic call
A simple unfeatured call between two 2500 phonesets, on the same switch,
using a four-digit dialing plan.
BBUA
Back-to-Back User Agent
C call age
The amount of time a call waits in the system before being answered by an
agent.
call destination
The site to which an outgoing network call is sent. See also call source.
call intrinsic
A script element that stores call-related information assigned when a call enters
Contact Center Manager Server. See also intrinsic, skillset intrinsic, time
intrinsic, traffic intrinsic.
call priority
The priority given to a request for a skillset agent in a QUEUE TO SKILLSET
or QUEUE TO NETWORK SKILLSET script element. This priority is used
only in queuing a pending request in the pending request queue corresponding to
the required skillsets. This allows pending requests with greater priority in a
skillset to be presented to agents before calls of lesser priority. Call priority has a
range or 1 to 6, with 1 having the greatest priority. Six priorities are used to fully
support the many queuing variations provided by existing NACD functionality.
Call priority is maintained at target nodes for network call requests.
call source
The site from which an incoming network call originates. See also call
destination.
call treatment
A script element that enables you to provide handling to a call while it is waiting
to be answered by a contact center agent. For example, a caller can hear a
recorded announcement or music while waiting for an agent.
call variable
A script variable that applies to a specific call. A call variable follows the call
through the system and is passed from one script to another with the call. See
also global variable, script variable.
CallPilot
A multimedia messaging system you can use to manage many types of
information, including voice messages, fax messages, e-mail messages,
telephone calls (including conferencing), calendars, and directories.
campaign
See outbound campaign.
CAT
Channel Allocation Table
CCR
customer controlled routing
CDN
See controlled directory number.
CLAN
See Customer Local Area Network.
CLAN subnet
See enterprise IP network.
CLID
See Calling Line Identification.
client
The part of Contact Center Manager Server that runs on a personal computer or
workstation and relies on the server to perform some operations. Two types of
client are available: Server Utility and Contact Center Manager Administration.
See also server.
closed reasons
An item configured in Contact Center Multimedia to indicate the result of a
completed e-mail contact. Agents choose a closed reason, and this information
can be generated in a report.
command
A building block used with expressions, variables, and intrinsics to create
scripts. Commands perform distinct functions, such as routing a call to a specific
destination, playing music to a caller, or disconnecting a caller.
CPH
calls per hour
CPU
See central processing unit.
CRM
See Customer Relationship Manager.
CRQS
See Call Request Queue Size.
CSL
Command and Status Link
CTD
See Conditionally Toll Denied.
CTI
See Computer Telephony Integration.
customer administrator
A user who maintains Contact Center Manager.
database views
A logical representation of the database used to organize information in the
database for your use. Event statistics are accessible through database views.
DBMS
Database Management System
deacquire
To release an acquired switch resource from the control of the contact center.
deactivated script
A script that does not process any new calls. If a script is in use when it is
deactivated, calls continue to be processed by the script until they are completed.
default skillset
The skillset to which calls are queued if they are not queued to a skillset or a
specific agent by the end of a script.
denial of service
An incident in which a user or organization is unable to gain access to a resource
that they can normally access.
DEP
See Data Execution Prevention.
Designer Patch
An emergency fix packaged to address specific individual Contact Center
software problems. Designer Patches are viewable from a patch viewer
application. Designer Patches are included in the next scheduled Service Update
or Service Update Supplementary. See also Service Update and Service Update
Supplementary.
desktop user
A configured user who can log on to the Contact Center Manager Server from a
client PC.
destination site
The site to which an outgoing network call is sent. See also source site.
DHCP
See dynamic host configuration protocol.
Dial-Up Networking
See Remote Access Services.
DID
Direct Inward Dial
directory number
The number that identifies a phoneset on a switch. The directory number (DN)
can be a local extension (local DN), a public network telephone number, or an
automatic call distribution directory number (ACD-DN).
display threshold
A threshold used in real-time displays to highlight a value below or above the
normal range.
disposition code
An item configured in Contact Center Multimedia to indicate the result of a
completed outbound contact. Agents choose a disposition code, and this
information can be generated in a report.
DMS
Digital Multiplex Switch
DN
See directory number.
DN call
See directory number call.
DNIS
See Dialed Number Identification Service.
DoS
See denial of service.
DP
See Designer Patch.
DSC
Distant Steering Code
DTMF
Dual Tone Multi Frequency
DVMRP
See Distance Vector Multicast Routing Protocol.
E EBC
See equivalent basic calls.
EIU
Ethernet Interface Unit
ELAN Subnet
See embedded local area network.
e-mail alias
An e-mail address that forwards all e-mail messages it receives to another e-mail
account. For example, the mailbox [email protected] can have the
aliases [email protected] and [email protected]. E-mail
addressed to either of these aliases is forwarded to the [email protected]
mailbox. To route e-mail differently depending on the alias to which it is
addressed, create a recipient mailbox as an alias in the Contact Center
Multimedia Administrator application and then create routing rules based on the
alias.
e-mail rule
Determine how an e-mail contact is routed based on information about the
e-mail message (inputs) and configurations in your contact center (outputs).
Emergency key
A key on an agent’s phoneset that, when pressed by an agent, automatically calls
their supervisor to notify the supervisor of a problem with a caller.
enterprise IP network
Your entire IP network including the ELAN subnet and the Nortel server subnet.
event
1. An occurrence or action on Contact Center Manager, such as the sending or
receiving of a message, the opening or closing of an application, or the reporting
of an error. Some events are for information only, while others can indicate a
problem. Events are categorized by severity: information, minor, major, and
critical. 2. An action generated by a script command, such as queuing a call to a
skillset or playing music.
expression
1. A building block used in scripts to test for conditions, perform calculations, or
compare values within scripts. See also logical expression and mathematical
expression. 2. A category of disk drives that employs two or more drives in
combination for fault tolerance and performance. See also relational expression.
F FCTH
See Flow Control Threshold.
filter timer
The length of time after the system unsuccessfully attempts to route calls to a
destination site before that site is filtered out of a routing table.
firewall
A set of programs that protects the resources of a private network from external
users.
first-level threshold
The value that represents the lowest value of the normal range for a statistic in a
threshold class. The system tracks how often the value for the statistic falls
below this value.
G global settings
Settings that apply to all skillsets or IVR ACD-DNs configured on your system.
global variable
A variable that contains values that can be used by any script on the system. You
can only change the value of a global variable in the Script Variable Properties
sheet. You cannot change it in a script. See also call variable, variable.
GOS
See grade of service.
grade of service
The probability that calls are delayed by more than a certain number of seconds
while waiting for a port.
H HDX
See Host Data Exchange.
HTTP
See Hypertext Transfer Protocol.
I ICM
See Intelligent Call Manager.
IGMP
See Internet Group Management Protocol.
Incalls key
The key on an agent phoneset to which incoming ACD and Contact Center
Manager calls are presented.
intrinsic
A word or phrase used in a script to gain access to system information about
skillsets, agents, time, and call traffic that can then be used in formulas and
decision-making statements. See also call intrinsic, skillset intrinsic, time
intrinsic, traffic intrinsic.
IP address
See Internet Protocol address.
IPML
See Integration Package for Meridian Link.
ISDN
See Integrated Services Digital Network.
IVR
See Interactive Voice Response.
IVR ACD-DN
See Interactive Voice Response ACD-DN.
IVR event
See Interactive Voice Response event.
IVR port
See voice port.
L LAN
See local area network.
LOB code
See activity code.
local call
A call that originates at the local site. See also network call.
local skillset
A skillset that can be used at the local site only. See also network skillset,
skillset.
logical expression
1. A symbol used in scripts to test for different conditions. Logical expressions
are AND, OR, and NOT. See also expression, mathematical expression. 2. A
category of disk drives that employs two or more drives in combination for fault
tolerance and performance. See also relational expression.
M M1
Meridian 1 switch
M1 IE
Meridian 1 Internet Enabled switch
mailbox
See recipient mailbox.
Master script
The first script executed when a call arrives at the Contact Center. A default
Master script is provided with Contact Center Manager, but it can be customized
by an authorized user. It cannot be deactivated or deleted. See also network
script, primary script, script, secondary script.
mathematical expression
1. An expression used in scripts to add, subtract, multiply, and divide values.
Mathematical expressions are addition (+), subtraction (-), division (/), and
multiplication (*). See also expression and logical expression. 2. A category of
disk drives that employs two or more drives in combination for fault tolerance
and performance. See also relational expression.
Meridian Mail
A Nortel product that provides voice messaging and other voice and fax
services.
Meridian MAX
A Nortel product that provides call processing based on ACD routing.
MHT
See mean holding time.
MIB
See Management Information Base.
MLS
See Meridian Link Services.
MM
See Meridian Mail.
MOSPF
See Multicasting Extensions to Open Shortest Path First.
MTBC
See mean time between calls.
Multimedia database
A Caché database used to store customer information and contact details for
outbound, e-mail, and Web communication contacts.
MSL-100
Meridian Stored Logic 100 switch
music route
A resource installed on the switch that provides music to callers while they wait
for an agent.
N NACD call
A call that arrives at the server from a network ACD-DN.
NAT
See Network Address Translation.
NCC
See Network Control Center.
NCRTD
See Network Consolidated Real-Time Display.
network call
A call that originates at another site in the network. See also local call.
network script
The script executed to handle error conditions for Contact Center Manager
Server calls forwarded from one site to another for customers using NSBR. The
network script is a system-defined script provided with Contact Center Manager,
but it can be customized by an authorized user. It cannot be deactivated or
deleted. See also Master script, primary script, script, secondary script.
network skillset
A skillset common to every site on the network. Network skillsets must be
created at the Network Control Center (NCC).
night mode
A skillset state in which the server does not queue incoming calls to the skillset,
and in which all queued calls are given night treatment. A skillset goes into night
mode automatically when the last agent logs off, or the administrator can put it
into night mode manually. See also out-of-service mode, transition mode.
NPA
See Number Plan Area.
NSBR
See Network Skill-Based Routing.
ODBC
See Open Database Connectivity.
OEM
Original equipment manufacturer
Office hours
Hours configured in the contact center where e-mail messages can be routed
using one method when the contact center is open, and another method when the
contact center is closed.
OLE
See object linking and embedding.
OSPF
See Open Shortest Path First.
OTM
See Optivity Telephony Manager.
outbound campaign
A group of outgoing calls from the contact center for a specific purpose, for
example, customer satisfaction surveys.
outbound contact
An outgoing voice call intelligently routed to an agent according to a skillset
within a defined time interval. The call can be dialed by the agent or the switch.
out-of-service mode
A skillset state in which the skillset does not take calls. A skillset is out of
service if no agents are logged on or if the supervisor puts the skillset into out-
of-service mode manually. See also night mode, transition mode.
out-of-service skillset
A skillset not taking any new calls. While a skillset is out of service, incoming
calls cannot be queued to the skillset. See also local skillset, network skillset,
skillset.
P patch
See Designer Patch.
PBX
See private branch exchange.
pegging
The action of incrementing statistical counters to track and report on system
events.
pegging threshold
A threshold used to define a cut-off value for statistics, such as short call and
service level. Pegging thresholds are used in reports.
PEP
Performance Enhancement Package. Now known as Designer Patch. See
Designer Patch.
phoneset
The physical device, connected to the switch, to which calls are presented. Each
agent and supervisor must have a phoneset.
phoneset display
The display area on an agent’s phoneset where information about incoming calls
can be communicated.
PIM
See Protocol Independent Multicast.
Position ID
A unique identifier for a phoneset, used by the switch to route calls to the
phoneset. Referred to as Telephony/Port Address in Contact Center Manager
Server.
primary ACD-DN
A directory number that callers can dial to reach an ACD group.
primary script
A script executed or referenced by the Master script. A primary script can route
calls to skillsets, or it can transfer routing control to a secondary script. See also
Master script, network script, script, secondary script.
priorities
Two sets of priorities affect queuing and call presentation: agent priority per
skillset and call priority. For both sets of priorities, the lower in value of the
number indicates a greater priority in presentation. All idle agent queues and all
pending request queues always queue by priority as its top precedence. All other
queuing options, such as age of call and agent idle time, take a lower precedence
than priority. See also call priority and agent priority per skillset.
PSTN
See public switched telephone network.
R RAID
See Redundant Array of Intelligent/Inexpensive Disks.
RAN
recorded announcement
RAN route
See recorded announcement route.
RAS
See Remote Access Services.
recipient mailbox
A container on the e-mail server that hold e-mail messages. Standard mailboxes
are monitored by the Contact Center E-mail Manager, which routes the e-mail to
an agent or group of agents (skillset) based on an analytical search of the sender
address, the recipient address, the subject and body of an e-mail message for
predetermined keywords, or a combination of these. The e-mail server must be
compliant with Post Office Protocol 3 (POP3) and Standard Mail Transfer
Protocol (SMTP).
redundant server
A warm standby server, used for shadowing the Multimedia database on the
Multimedia server and providing a quick recovery if the primary server fails.
relational expression
An expression used in scripts to test for different conditions. Relational
expressions are less than (<), greater than (>), less than or equal to (< =), greater
than or equal to (> =), and not equal to (< >). See also expression, logical
expression, mathematical expression.
Replication Server
A server that backs up the active Contact Center Manager Server to the standby
Contact Center Manager Server in real time.
reporting supervisor
The supervisor who has primary responsibility for an agent. When an agent
presses the Emergency key on the phoneset, the emergency call is presented to
the agent’s reporting supervisor. See also associated supervisor.
route
A group of trunks. Each trunk carries either incoming or outgoing calls to the
switch. See also music route, RAN route.
router
A device that connects two LANs. Routers can also filter messages and forward
them to different places based on various criteria.
routing table
A table that defines how calls are routed to the sites on the network. See also
round robin routing table, sequential routing table.
RSM
See Real-time Statistics Multicast.
RSVP
See Resource Reservation Protocol.
rule
See e-mail rule.
S sample script
A script installed with the Contact Center Manager Server client. Sample scripts
are stored as text files in a special folder on the client. The contents of these
scripts can be imported or copied into user scripts to create scripts for typical
contact center scenarios.
SCM
See Service Control Manager.
script
A set of instructions that relates to a particular type of call, caller, or set of
conditions, such as time of day or day of week. See also Master script, network
script, primary script, secondary script.
script variable
See variable.
second-level threshold
The value used in display thresholds that represents the highest value of the
normal range for a given statistic. The system tracks how often the value for the
statistic falls outside this value.
secondary script
Any script (other than a Master, network, or primary script) referenced from a
primary script or any other secondary script. Statistics are not pegged for actions
occurring during a secondary script. See also Master script, network script,
primary script, script.
server
A computer or device on a network that manages network resources. Examples
of servers include file servers, print servers, network servers, and database
servers. Contact Center Manager Server is used to configure the operations of
the contact center. See also client.
server subnet
The subnet to which the Nortel servers, such as Contact Center Manger Server,
Network Control Center, Contact Center Manager Administration, Contact
Center Multimedia, and CallPilot are connected.
service
A process that adheres to a Windows NT structure and requirements. A service
provides system functionality.
service level
The percentage of incoming calls answered within a configured number of
seconds.
Service Update
A Contact Center supplementary software application that enhances the
functionality of previously released software by improving performance, adding
functionality, or correcting a problem discovered since the original release. All
previous Service Updates (SUs) for the release are included in the latest Service
Update. For example, SU02 contains the contents of SU01 as well as the fixes
delivered in SU02. SU03 contains SU01, SU02, and the fixes delivered in SU03.
See also Service Update Supplementary and Designer Patch.
SIP
See Session Initiation Protocol.
SIP Terminal
The SIP Address of the TR87 controlled terminal dedicated to this agent. This is
the phone number that the agent controls, combined with the domain of the
agent in the SIP URI.
SIP URI
The SIP Address for the agent as configured on the target SIP server. The SIP
Address uniquely identifies the agent on the SIP network.
site
1. A system using Contact Center Manager Server that can be accessed using
Server Utility. 2. A system using Contact Center Manager Server and
participating in Network Skill-Based Routing.
skillset
A group of capabilities or knowledge required to answer a specific type of call.
See also local skillset, network skillset.
skillset intrinsic
A script element that inserts information about a skillset in a script. Skillset
intrinsics return values such as skillsets, integers, and agent IDs. These values
are then used in queuing commands. See also call intrinsic, intrinsic, time
intrinsic, and traffic intrinsic.
SL-100
Stored Logic 100 switch
SNMP
See Simple Network Management Protocol.
source site
The site from which an incoming network call originates. See also destination
site.
standby
In skillset assignments, a property that grants an agent membership in a skillset,
but makes the agent inactive for that skillset.
standby server
A server that contains an up-to-date version of the database, for use when the
active server becomes unavailable.
SU
See Service Update.
supervisor
A user who manages a group of agents. See also associated supervisor and
reporting supervisor.
supplementary ACD-DN
A DN associated with a primary DN. Any calls to the supplementary DN are
automatically routed to the primary DN. A supplementary DN can be a toll-free
(1-800) number.
SUS
See Service Update Supplementary.
switch
See telephony switch.
switch resource
A device configured on the switch. For example, a CDN is configured on the
switch and then used as a resource with Contact Center Manager Server. See
also acquired resource.
system-defined scripts
The Master_Script and the Network_Script (if NSBR is enabled). Users can
customize or deactivate these scripts, but they cannot delete them. These scripts
are the first scripts executed for every local or network call arriving at the
contact center.
T TAPI
See Telephony Application Program Interface.
target site
See destination site.
TCP/IP
See Transmission Control Protocol/Internet Protocol.
TDM
See Time-Division Multiplex.
telephony
The science of translating sound into electrical signals, transmitting them, and
then converting them back to sound. The term is used frequently to refer to
computer hardware and software that perform functions traditionally performed
by telephone equipment.
telephony switch
The hardware that processes calls and routes them to their destination.
threshold
A value for a statistic at which system handling of the statistic changes.
threshold class
A set of options that specifies how statistics are treated in reports and real-time
displays. See also display threshold, pegging threshold.
Time-Division Multiplex
A method of transmission in which a signal is separated into multiple segments
at the transmission source, and then reassembled at the receiving end.
time intrinsic
A script element that stores information about system time, including time of
day, day of week, and week of year. See also call intrinsic, intrinsic, skillset
intrinsic, traffic intrinsic.
Token Ring
A PC network protocol developed by IBM. A Token Ring network is a type of
computer network in which all the computers are arranged schematically in a
circle.
traffic intrinsic
An intrinsic that inserts information about system-level traffic in a script. See
also call intrinsic, intrinsic, skillset intrinsic, time intrinsic.
transition mode
A skillset state in which the server presents already queued calls to a skillset.
New calls queued to the skillset are given out-of-service treatment. See also
night mode, out-of-service mode.
treatment
See call treatment.
trunk
A communications link between a PBX and the public central office, or between
PBXs. Various trunk types provide services such as Direct Inward Dialing (DID
trunks), ISDN, and Central Office connectivity.
U user-created script
A script created by an authorized user on the Contact Center Manager system.
Primary and secondary scripts are user created scripts.
user-defined script
A script modified by an authorized user on the Contact Center Manager system.
utility
A program that performs a specific task, usually related to managing system
resources. Operating systems contain a number of utilities for managing disk
drives, printers, and other devices.
V validation
The process of checking a script to ensure that all the syntax and semantics are
correct. A script must be validated before it can be activated.
variable
A placeholder for values calculated within a script, such as CLID. Variables are
defined in the Script Variable Properties sheet and can be used in multiple
scripts to determine treatment and routing of calls entering Contact Center
Manager Server. See also call variable, global variable.
Voice over IP
Voice traffic transmitted in digital format using the IP protocol.
voice port
A connection from a telephony port on the switch to a port on the IVR system.
VPN
See Virtual Private Network.
VXML
See Voice Extensible Markup Language.
W WAN
See wide area network.
Web-on-hold
A set of URLs that a customer sees after requesting a text chat session, and
before the agent connects to the Web Communications contact.
workload scenarios
Sets of configuration values defined for typical patterns of system operations.
Five typical workload scenarios (entry, small, medium, large, and upper end) are
used in the Capacity Assessment Tool for capacity analysis for Contact Center
Manager.
O
N objectives, defining for scripts 41
NACD
Q
P Queue To Agent command 229
parentheses and Longest Idle Agent intrinsic 230
in expressions 466 example 230, 231
in scripts 58 restrictions 229
rules 66 With Priority option 230
password 92 Queue to NACD command 281
pegging, threshold classes 469 example 282
phantom DNs, using to transfer calls 81 restrictions 282
placeholders With Priority option 282
CLID 418 Queue To Network Skillset command 288
description 418 example 289
rules 418 restriction 289
Play Prompt command 313 With Priority option 288
example 316 Queue To Skillset command 232
No Type Ahead keyword 315 and By Longest Idle Agent option 233
numbers 315 and Change Priority In Agent command 210
voice segments 316 and Most Logged Agents intrinsic 233
With Language option 314 and Remove from Agent command 237
Play Prompt option example 235
Give Controlled Broadcast Announcement feedback to callers 84
command 322 restrictions 233
playing messages, commands to use for 297 With Priority option 235
playing voice prompts 313 Queued Call Count intrinsic 390
Position In Queue intrinsic 380, 383 Queued Count intrinsic
threshold classes
definition 469
display 469
U
example 469 unnecessary commands, avoiding 69
pegging 469 unsolicited events 247
throttling and Log command 254 description 248
time comparisons, using 79 Event Handler 248
Time data type 108 restrictions 250
time intrinsics 393–401 URI intrinsic 453
decision making with 347 example 453
Time Of Day intrinsic usage of resources 299
example 402, 403 Use 469
Time of Day intrinsic 402 user ID 92
Timer option 337 user satisfaction, maximizing 28
interdigit timer 307 user-defined scripts 34
tips using
contacts 83 a dialed DN to transfer calls 81, 423
loops 75 loops 75
most likely conditions 71 ranges 78
out of service 72 sample scripts 151
ranges 78 sections 78
sections 78 time comparisons 79
unnecessary commands 69
TOADDRESS 641
Total Active Calls intrinsic 408
example 408
V
Total Active Contacts intrinsic 409 validated state 51
example 409 validating scripts 176
tracking calls 28 validation
traffic intrinsics 405–408 description 51
decision making with 348 resolving errors 179
Transferred intrinsic 439 Validation Options dialog box 49
variables 38, 44
W
Wait command 206
and Give Ringback command 225
and Queue To Agent command 230
and Queue to NACD command 282
and Queue to Skillset command 233
and report statistics 207
example 207
Occupation: Phone:
Information is subject to change without notice. Nortel Networks reserves the right to make changes
in design or components as progress in engineering and manufacturing may warrant.
The process of transmitting data and call messaging between the Meridian 1 and Contact Center
Manager is proprietary to Nortel Networks. Any other use of the data and the transmission process
is a violation of the user license unless specifically authorized in writing by Nortel Networks prior to
such use. Violations of the license by alternative usage of any portion of this process or the related
hardware constitutes grounds for an immediate termination of the license and Nortel Networks
reserves the right to seek all allowable remedies for such breach.