This topic contains information about common tasks you perform in Script
Editor. This topic does not contain information about every possible task you
can perform. For more information on Script Editor, see the
Script Editor online help.
You can display the Palette by clicking the Palette icon
in the Main toolbar or by selecting Palette from the
View menu. The Palette contains the icons that
represent the nodes used in scripts.
The available nodes are divided into the following
tabs:
In Script Editor, choose File > New or click New. You are prompted to
select a Routing Script or an Administrative Script:
Figure 2. New Dialog Box
Step 2
Click the following icon.
Figure 3. Routing Script
The new script opens in the Edit window, with a Start node.
Step 3
Build the script.
Step 4
To save the script, choose File > Save or click Save. You are
prompted for a script name.
Add Comments to a Node
Most nodes have a Comment tab:
Figure 4. Comment Tab
Procedure
Step 1
You can add a comment in the Enter text
field.
Step 2
You can also select the location where you want your comment to
appear in the node. You can do this by selecting a radio button in the
Text justification area.
Specify a Connection Label Location for a Node
Most nodes have a Connection Labels tab.
Procedure
Step 1
You can specify the location of connection labels by moving the
slider in the Label position area (when viewing a script in monitor
mode). You can move the slider to the following locations:
Origin, for the connection label to display
close to the node you are editing.
Destination, for the connection label to
display close to the targeted node.
Center, for the connection label to display
between the nodes.
Step 2
You can also select to show the connection label by clearing the
Display monitor labels check box.
Validate Scripts
Procedure
Step 1
To validate a single script, with the script open in the active
window, choose Script > Validate or click the
Validate Icon on the toolbar.
Step 2
To validate multiple scripts, choose Script > Validate
All or on the toolbar, click the
Validate All Icon.
You are prompted to choose between validating active versions of
all scripts or all the opened scripts.
Figure 5. Validate All Query Dialog
Step 3
Make the appropriate selection and click
OK.
If a script is valid, a dialog box opens stating that
script is valid.
If the script is not valid, the Validate Script dialog box
opens with a list of the errors. When you select an error, the
node where the error occurs is highlighted in the Edit
window.
Open Script Explorer
Procedure
In Script Editor, choose File > Script Explorer
or on the toolbar, click the Explorer Icon.
The Script Explorer dialog box opens, listing scripts by customer
and business entity:
You can then set the active version of the script, view its
properties, rename it, or delete it. For more information, see the Script
Editor Online Help.
Schedule Routing Script
You schedule a script by associating it with a call type as
follows:
Procedure
Step 1
Choose Script > Call Type Manager. The Call Type
Manager dialog box opens.
Figure 6. Call Type Manager Dialog Box—Schedules Tab
Step 2
Select the call type to
associate with the script.
Step 3
Click Add. The Add Call Type Schedule dialog box
opens.
Step 4
In the Script tab, select the script to schedule:
Figure 7. Add Call Type Dialog Box - Script Tab
Step 5
In the Period tab, choose the information to define
the period for which the schedule will be effective.
Figure 8. Add Call Type Schedule Dialog Box - Period Tab
Step 6
Optionally, in the Description tab, enter a
description of the schedule.
Step 7
Click OK in the Add Call Type Schedule dialog box.
Step 8
Click OK in the Call Type Manager dialog box.
Note
The schedule is not saved until you click OK in
the Call Type Manager dialog box.
Viewing Modes
You can view a script in four different modes:
Browse - Allows you to view the script and edit it.
Edit - Allows you to edit the script.
Monitor - Allows you to monitor the script
Quick Edit
- Allows you to make certain modifications to a script, with
the following guidelines:
In Quick Edit mode, you cannot add or delete a node.
In Quick Edit mode, you can adjust most of the properties of the script nodes
you select in the Node Control table of your assigned feature control set.
However, in Quick Edit mode you cannot edit any properties of the selected nodes that change the structure of a
script or that reset previous reporting data.
As a Quick Edit Only User:
You can only edit scripts through Quick Edit mode.
You cannot create or delete a script.
You can access the Properties of any script node in any mode
by either right-clicking the node and selecting Properties, or by
double-clicking the node.
You cannot edit the Call Type Manager dialog box (Script > Call
Type Manager).
You cannot edit the Administrative Manager dialog box (Script >
Administrative Manager).
You cannot edit the Custom Functions dialog box (Script >
Custom Functions).
You can choose the viewing mode from the
Scripting
toolbar, or from the Script menu.
Making Packaged CCE Work with Unified CVP
The following sections describe the differences between Packaged Contact Center Enterprise ( Packaged CCE) and Unified Customer Voice Portal (Unified CVP) scripting and show how they work together in common tasks.
Difference between CCE and CVP Scripting
Packaged CCE scripting offers call control such as how a call should be treated based on time of day, call type, and so on. It also handles queuing for an agent based on skill group or service. It determines when to send the call to Unified CVP (for example, to play prompts, collect call entered digits, and get or put information in a database), or for queuing the call while waiting for an agent.
Packaged CVP scripting offers IVR interaction, like playing a prompt based on an audio file or text-to-speech or collecting caller-entered digits via touch tone or speech. It also offers advanced features such as accessing an external database or web service for information used in creating a dynamic caller interaction experience. Examples include accessing current balance or storing collected customer information in a database.
Packaged CCE scripting is used for routing the call; but when the call needs to go to the CVP, a self-service component is enlisted with Unified CVP scripts that have been created in Call Studio. For example, if a customer calls a credit card company and gets a voice recorded message, the Packaged CCE component makes the decision which script to run, whether the interaction is treated as a sales call or a service call and then selects which VRU (voice response unit) scripts get run, The call is then sent to a VRU, which connects the call to the Unified CVP "self-service engine". It accomplishes these tasks without the customer talking to an agent, such as getting the account balance with touch tone activation or speech. Once the information is collected control is then returned to the Packaged CCE script. The Packaged CCE script queues the customer for an agent, and connects her to an agent.
How Packaged CCE and Unified CVP Work Together
To summarize, Packaged CCE and Unified CVP work together to perform such tasks as:
Playing media, such as a recording stating
office hours, to a caller.
Playing streaming audio, such
as a radio broadcast, to a caller.
Retrieving
caller-entered data, DTMF, or speech.
Playing back
different types of data, such as an account number or balance, to a
caller.
Moving calls to other destinations. For example,
forwarding calls to an agent.
Packaged CCE uses CVP messaging technology to direct
Unified CVP and to receive the responses from Unified CVP.
For more information about Packaged CCE working with Unified CVP, proceed to Before You Begin.
Call Types, Contact Data, and Scripting
When writing scripts to route contacts, you must understand Call Types and
contact data. Call Types are typically created during use of the call type gadget of the Unified CCE Administration tool and are therefore discussed in greater detail in the
Access Configuration Manager in Packaged CCE Administration Guide for Release 9.0(x).
A Call Type is the first-level category of a contact and is determined by
data associated with the contact. You associate a script with a Call Type.
When a contact of a certain Call Type is received, the associated script
runs on that contact.
Default Call Types
A default Call Type is the Call Type used when a contact does not map to a
defined Call Type.
You define a default Call Type for each routing client through
the Configuration Manager in the PG Explorer tool. The General Default call type is set through the Configuration Manager in the System Information tool. You also define a
general default Call Type that is not specific to a routing client. For more
information, see the Call Types chapter in Packaged CCE Administration Guide for Release 9.0(x) .
Relation between Call Types and Scripts
Scripts are scheduled by Call Type. In other words, when Packaged CCE receives a request to route a contact, it
determines the Call Type of that contact, then runs the associated script.
Call Types provide the first level of categorization of
contacts, enabling you to write scripts to route contacts
differently depending on their call type. While other types of
categorization take place within a script, Call Types enable you to provide
contacts with different treatment by running different scripts to begin
with. Call Types enable categorization before a script begins to execute.
Call Type Qualifiers
The Call Type is determined by the following data, which are
referred to as Call Type qualifiers:
Dialed Number
The Call Type qualifiers described in this section apply to
contacts from all media. The terminology used is applicable to voice
contacts; where the terminology differs for other media, the differences
are explained in this section, as well as the following sections in this
topic:
A Dialed Number (DN) is a string that represents the telephone number
dialed by the caller, preceded by the name of the routing client and a
period. For example, "ucm.18005551212" might be a Dialed
Number.
Typically, a Dialed Number is associated with one or more Call Types.
Association of Contacts with Call Types in Packaged CCE
Following is the general process of how Packaged CCE attempts to associate a contact with a
Call Type.
If the Dialed Number of the contact maps to a defined Call Type, Packaged CCE uses that Call Type.
If no Call Type matches the contact, Packaged CCE uses the default Call Type for the
routing client.
If no default Call Type is defined for the routing client, Packaged CCE uses the general default Call Type.
If no general default Call Type is defined, Packaged CCE returns an error to the routing client.
Determination of Call Type for Voice Contact
The following example demonstrates how Packaged CCE determines the Call Type for a voice
contact and runs the appropriate script:
When configuring Packaged CCE , you create a Call Type called
"MASSACHUSETTS_SALES". This Call Type is defined as:
Having a Dialed Number of "ucm.8005551234".
You create a script called "MASSACHUSETTS_SALES_SCRIPT," which
finds the longest available agent in the "NORTHEAST_SALES" skill
group.
You schedule the script to run for the "MASSACHUSETTS_SALES" Call
Type.
Packaged CCE determines that the Call Type is "MASSACHUSETTS_SALES"
and executes the "MASSACHUSETTS_SALES_SCRIPT" script.
Packaged CCE assigns the task to a particular
agent.
Determination of Call Type for E-mail or Web Request
The following basic example demonstrates how Packaged CCE
determines the Call Type for e-mail or chat web request:
When configuring Packaged CCE, you create a Call Type called
"SSC_CT". This Call Type is defined as having a Script Selector
(Dialed Number) of "SSC_DN".
When configuring Unified EIM/WIM, set the value of the Script Selector for Media Routing Domain to "SSC_DN".
You create a script called "SSC_SCRIPT," which finds the longest
available agent in the "COLLABORATION_SALES" skill group.
You schedule the script to run for the "SSC_CT" Call Type.
An e-mail is sent or a web user requests a chat session.
A route request is sent to Packaged CCE .
Packaged CCE determines that the Call Type is "SSC_CT" and executes
the "SSC_SCRIPT" script.
Packaged CCE instructs the Unified EIM/WIM to assign the task to a particular agent.
Contact Categorization
When you create a routing script, you typically use the nodes available in
Script Editor to define how the script is to categorize contacts. By
categorizing contacts, a script can provide unique solution for different
customer needs.
Categorization is the process of classifying a contact based on certain
data associated with the contact. Through categorization, a script can
determine the best way to process a contact.
Categorization through Scheduling Scripts by Call Type
Call Types provide the first level of categorization
for routing scripts. You schedule scripts by Call Type; therefore, the
Call Type of a contact determines which script is executed, enabling you
to create different scripts for different types of contacts.
Change Call Type to Static
You can change the Call Type of a contact from within a script by
using the Call Type node (in the Routing tab of the Palette).
Figure 9. The Call Type Icon
The following figure is the Call Type Properties dialog box of the Static Call Type
node:
Figure 10. Call Type Properties Dialog Box - Static Call Type
To define a static call type node, complete the following steps.
Procedure
Step 1
In the Call Type tab, click the Statically radio button.
Step 2
From the Call Type list, click the call type to assign to the contact.
What to Do Next
Warning
The Call Type node changes the Call Type and continues the current script execution. The Requalify Call node terminates the current script execution and executes a new script associated with that Call Type.
Change Call Type to Dynamic
You can change the Call Type of a contact from within a script by using the call type node (on the Routing tab of the Palette).
Figure 11. Call Type icon
Note
Dynamic Call Type selection is not available when an External Authorization server is used with Internet Script Editor and will be grayed out in the interface.
The following figure is the Call Type Properties dialog box of a dynamic call type node:
Figure 12. Call Type Properties Dialog Box - Dynamic Call Type
To define a dynamic call type node, complete the following steps.
Procedure
Step 1
On the call type tab, select the Dynamically radio button.
Step 2
To dynamically change the call type of a contact by call type name, In the Find By section, select the Call Type Name radio button.
Step 3
To dynamically change the call type of a contact by call type ID, In the Find By section, select the Call Type ID radio button.
Step 4
To determine which call type name or ID to use to change the call type of a contact, click the Formula Editor button to create a formula.
What to Do Next
Change Call Type and Execute a New Script
You can change the Call Type of a contact from within a script and
execute a new script associated with the Call Type by using the
Requalify Call node ( in the Routing tab of the Palette).
Figure 13. The Requalify Call Icon
Following is the Requalify Properties dialog box of the Requalify Call
node:
Figure 14. The Requalify Properties - Requalify Call Tab
Define Requalify node properties as
follows:
Procedure
Step 1
In the Requalify Call Tab, select the Call type to assign to
the contact.
Step 2
Optionally, add comments.
What to Do Next
Warning
The Call Type node changes the Call Type and continues the current
script execution. The Requalify Call node terminates the current script
execution and executes a new script associated with that Call
Type.
Categorization by Call Type Qualifiers
As described in the topic Call Types, Contact Data, and
Scripting, a contact's Call Type is determined by the Dialed Number qualifier.
When Packaged CCE determines a contact's Call Type based on these
qualifiers, it executes the associated script.
However, after the script executes, you can further categorize the contact
based on the values of the Call Type qualifiers.
You can categorize a contact based on its Dialed Number by using the
Dialed Number (DN) node ( in the Routing tab of the Palette).
Figure 15. The Dialed Number Icon
Following is the DN Properties dialog box of the Dialed Number
node:
Figure 16. DN Properties - Dialed numbers rab
You can define the Dialed Number node properties as
follows:
Procedure
Step 1
Select one or more dialed numbers or Script Selectors from the
Dialed numbers list and click Add> to move
them to the Target dialed numbers list. If the current contact
matches one of the selections in the Target dialed numbers list,
processing continues on the node's success branch; otherwise,
processing continues on the failure branch.
Step 2
Optionally, add comments and connection labels.
Categorization by Time and Date
You schedule a script by associating it with a Call Type. When a contact
of a certain Call Type is received, the associated script runs for that
contact.
However, after the script executes, you can further categorize the contact
based on the time and day of week. This categorization refines the schedule.
Note
The time and day of the week are determined by the settings on the CallServer virtual machine.
For example, a Call Type named "CHAT_CT" may be defined to include all
chat web requests. A script named "CHAT_SCRIPT" executes every time a
contact with the Call Type "CHAT_CT" is received. Typically, this script
instructs Unified WIM to assign the request to the longest
available agent in the "Chat" skill group. However, the contact center is
staffed differently over the weekend and the supervisor wants reports to
better reflect weekend activity. Therefore, for chat web requests received
on Saturday or Sunday, the script branches differently and instructs
Unified WIM to assign the request to the longest available
agent in the "WKEND_SUPPORT" skill group.
As another example, for a contact center where no phone support is
available during night hours or weekends, you may choose to design a script
that routes a phone call to an announcement instead to an agent, during
those off hours.
You use the Time node (in the General tab of the Palette) to choose
from among several paths within the script based on the current time at
Packaged CCE Central Controller. Following is the Time Properties dialog box
of the Time node.
Figure 17. Time Icon
Following is the Properties dialog box of the Time node:
Figure 18. Time Properties
You must insert targets and connections from the Time node before you
can define the node's properties.
Then define Time node properties as follows:
Procedure
Step 1
For each branch listed in the Connections list, define a Time
Range. You can define multiple time ranges for a single branch.
Click Add Time to add a new time range to the
branch, or select a time range listed and click Modify
Time to modify it. A dialog box opens in which you
can define the time range (the Add Time dialog box is shown
below; the Modify Time dialog box looks and functions
similarly):
Figure 19. Add Time Dialog
Step 2
To delete a time associated with the branch, select the time
and click Delete Time.
Step 3
You can define a branch as Otherwise by selecting the branch
and clicking Make Otherwise. Execution follows
this branch if none of the specified time ranges apply. You can
specify only one Otherwise branch for the node. If you do not
want to define the branch as Otherwise, select
the branch and click Delete Otherwise.
Step 4
Optionally, add comments and connection labels.
What to Do Next
Note
If you delete a connection, the time-range information you specified
in the Properties dialog box is also deleted.
Categorize Contact by the Day of Week
You use the Day of Week node (in the General tab of the Palette) to
transfer control to one of several branches depending on the current day
of week (Sunday, Monday, etc.).
Figure 20. Day of Week Icon
Following is the Properties dialog box of the Day of Week node:
Figure 21. Day of Week Properties
You can define multiple output connections from the Day of Week node
and associate each with one or more days of the week.
You must insert targets and connections from the Day of Week node
before you can define the node's properties.
Define Day of Week node properties as follows:
Procedure
Step 1
For each branch listed in the Connection list, check the days
of the week in which processing should continue on that branch.
To check the day for that connection, left-click in a spot in
the grid corresponding to that connection and day. A check mark
appears in the grid.You can associate each day of week with one connection.
However, you can associate each connection with one or more days
of the week.
Step 2
Optionally, add comments and connection labels.
Categorization by Branching
Within a script, you can create multiple branches to direct script
processing based on certain conditions. Branching allows you to use a single
script that processes contacts differently, depending on data associated
with the contact, or on conditions at the contact center.
You use the Go To Script node (in the General tab of
the Palette) to direct contact processing to another script without
changing the call type. When Packaged CCE encounters a Go To Script node,
it stops executing the current script and starts the script indicated in
the node.
Figure 22. Go To Script Icon
For example, you might have several scripts that check for exception
conditions and, if none are found, execute a standard subroutine.
Instead of including that subroutine as a branch from the failure output
terminal of each of the exception conditions, you could use a Go To
Script node pointing to a separate script containing the subroutine.
Following is the Properties dialog box of the Go To Script node:
Figure 23. Go To Script Properties
Define "Go to Script" node properties as follows:
Procedure
Step 1
Select the Business entity that owns the script that the node
should execute. By default, Packaged CCE consists of one business entity.
Step 2
Select a script from the Scripts list. From within an administrative script, you can only go to another administrative script. Within a routing script, you can
only go to another routing script.
Step 3
Optionally, add comments and connection labels.
Direct Script Execution to Different Branches by Percentage
You can direct specific percentages of contacts to different branches
in a script by using the Percent Allocation node (in the General tab of
the Palette).
Figure 24. Percent Allocation Icon
Each branch may lead directly to a target, or may include additional
processing. Because contacts are distributed by percentage and without
tests of the targets' data, distributing by percentage never fails.
For example, in a geographically diverse environment, you can create a
script that sends 10% of contacts to Boston, 5% to Chicago, and
distributes the remaining 85% to another set of targets.
Following is the Properties dialog box of the Percent Allocation node:
Figure 25. % Allocation Properties
Define Percent Allocation node properties as follows:
Procedure
Step 1
In the Percent column for each connection, enter a percent
number for the percentage of contacts to process on that branch.
Note
Note: The percent total for all rows must equal 100.
Step 2
Optionally, modify the Connection name. Changes appear in the
connector labels when you save the properties and view the
script.
Step 3
Optionally, add comments and connection labels.
Categorize Contact Based on a Condition
You use the If node (in the General tab in the
Palette) to direct script execution to one of two branches based on the
result of an evaluation. You can use formulas to define the If
node.
Figure 26. If Icon
When Packaged CCE executes an If node, it first evaluates the condition
specified in the node Properties dialog box Define condition field. If
Packaged CCE determines that the condition is true, control flows through
the success output terminal; if it determines the condition is false,
control flows through the failure output terminal.
Following is the Properties dialog box of the If node:
Figure 27. If Properties
Define If node properties as follows:
Procedure
Step 1
In the Define condition field, enter a condition or use the
Formula Editor to create a formula.
Step 2
Optionally, add comments and connection labels.
Categorize a Contact Based on its Media Routing Domain
You use the Media Routing Domain node to categorize contacts based on
their media routing domains. This node is described in the Universal
Queue section of this document.
Selection of Routing Targets
After defining how a script is used to categorize contacts, you typically
use the nodes available in Script Editor to specify how the contact is to be
routed to a target. By selecting routing targets, you determine the
destination for contacts.
You can transfer a call from an agent to an agent by using the Agent to
Agent node in the Targets tab of the Palette.
Figure 28. Agent to Agent icon
The Agent to Agent node routes the call to the specified agent. You define
the agent either by directly selecting the agent from the database or by
providing an expression using a formula. The expression must translate to
agent peripheral number or SkillTargetID. The router then finds a valid
label for the agent. If there are no labels configured for the specified
agent, the failure node of the Agent to Agent node is executed.
Following is the Properties dialog box for the Agent to Agent node:
Figure 29. Agent to Agent Properties
Define Agent to Agent node properties as follows:
Procedure
Step 1
Choose an option from the Select agent
by drop-down list:
Peripheral number - To select a peripheral and a provide
formula that translates to the agent's peripheral number.
Enterprise Name - To select the agent from the list of
configured agents.
Skill target ID - To select the agent by providing an
expression that translates into the agent's SkillTargetID.
In the Packaged CCE/Unified CCH supervisory
case, the expression should use the call's PreferredAgentID.
Step 2
Based on your selection in Step 1, select the peripheral or agent,
or enter an expression, as necessary.
Step 3
Optionally, check or uncheck Fail
node if agent is unavailable:
When checked, the success branch of the Agent to Agent
node is executed and the router sends the call if the router finds a valid label for the agent, the agent is available, and the agent state is Ready.
The failure branch of the Agent to Agent node is executed if the router does not find a valid label for the agent, or the agent is not available or the agent is in TempUnavailable mode (the
router has just send a call to the agent).
When not checked, the success branch of the Agent to Agent node is executed and the router sends the call if the router finds a valid label for the agent. The failure branch of the Agent to
Agent node is executed if the Router does not find a valid
label for the agent.
Step 4
Optionally, add comments and connection labels.
Nodes Used to Stop Script Processing
You can use the following nodes to stop script
processing:
You can terminate the script by using the End node in the General tab
of the Palette.
Figure 30. End icon
If the script reaches the End node, it has failed to find a target for
the contact. Packaged CCE then uses the default route for the Dialed
Number.
Several End nodes can appear in the same script. The End node is never
required; a script can terminate with any node.
You do not define any properties for the End node. You can optionally
add comments.
Release Call Node
You can terminate the script and disconnect the caller by using the
Release Call node in the Targets tab of the Palette.
Figure 31. Release Call Icon
You can use a Release Call node in situations where the caller needs
no further service after executing several CVP scripts.
You do not define any properties for the Release Call node. You can
optionally add comments.
Target Requery
Target Requery is a script node feature that addresses routing failures
due to transient failures in the network (such as network congestion). If
the determined destination for a contact is available but not reachable,
Target Requery attempts to find a different valid destination.
You need Target Requery to address the following failures:
Failure to deliver a call to an agent.
Failure of the outbound leg of a blind-mode Network Transfer.
Target Requery works on a per call basis; that is, the routing
information for one call does not affect the state for other calls.
If the first target selected for the contact was not reachable, the
target is not eliminated from the potential routing destinations for
other contacts.
In the Packaged CCE system, when queried, the CallRouter returns a label to
the routing client. The routing client then routes the call to the
destination specified by the label. If the destination is not reachable
(for example, because of a busy signal or no answer), the call is routed
to the default destination.
With Target Requery, if the router fails to route to the target node,
a second attempt is made. If the failure occurs a second time, then the
router continues from the failure path in the node.
Note
In a Queue node, just one target is used and the failure path of the
node is immediately taken. You can create a script that increases the
priority and requeries the call from the failure path to the same
queue.
In the event of a failure, you can handle requerying in the scripting
environment, as you deem appropriate.
Target Requery does not require different definitions for different failure
cases. However, you can choose to handle different failures
differently.
Test of the RequeryStatus Variable
You can test the error path of these script nodes using Target Requery
to determine the specific network cause of failure and conditionally
retry the attempt as necessary. You can accomplish this using an If node to check
the value of the Call variable RequeryStatus. The decision path for the
script is then determined by the value of the RequeryStatus variable.
The following are possible values for the RequeryStatus variable:
Table 1 RequeryStatus Variables
Requery Status Variable
Description
REQUERY_ANSWER (0)
CallRouter internal use. Script ends and the call
was successfully sent to the chosen target. Not
visible to users.
REQUERY_ROUTE_SELECT_FAILURE (1)
Routing client generated an error code from
ReRouteReq msg indicating a Route Select failure.
REQUERY_CALLED_PARTY_BUSY (2)
Routing client generated error code from
ReRouteReq msg indicating the called party is busy.
REQUERY_NO_ANSWER (3)
Routing client generated an error code from
ReRouteReq msg indicating no answer.
REQUERY_ERROR (4)
CallRouter generated an error code. The attempt to
send the call to target failed because the target
was not reachable (i.e., busy, ring no answer).
REQUERY_TIMED_OUT (5)
CallRouter internal use. Script ends. The attempt
to send the call to target failed because the
Routing Client did not respond within the
DivertOnBusyCallTimeout period. Not visible to
users.
REQUERY_ABORTED (6)
CallRouter internal use. Script ends. The attempt
to send the call to target failed because the caller
hung up or the call was lost. Not visible to users.
In the case of ABANDON and DISCONNECT, the
CallRouter assumes the call has ended and ends the
script. The RequeryStatus value is set to 6,
indicating REQUERY_ABORTED. This is used for the
internal workings of the CallRouter but is not
visible to users. Which Nodes Support Target.
Nodes that Support Target Requery
The following nodes support Target Requery:
Queue
Queue to Agent
Route Select
Precision Queue
Use Target Requery
You define nodes to enable Target Requery. For the Queue, Queue to Agent, and Route
Select nodes:
Procedure
Step 1
Open the node properties.
Step 2
Click Change. A dialog box opens.
Step 3
Check Enable target requery.
Step 4
Click OK to close the dialog box.
Step 5
Click OK to close the properties dialog box.
What to Do Next
For Select nodes:
Open the node properties.
Check Enable target requery.
Click OK to close the properties dialog box
Network VRUs
Through routing scripts, you can divert a call to a Network VRU for
additional call processing.
A VRU, or Voice Response Unit, is a telecommunications device, also called
an Interactive Voice Response Unit (IVR), that plays recorded announcements
and responds to caller-entered touch-tone digits. Cisco Voice Portal (CVP) is the supported VRU for Packaged CCE. A VRU can also be equipped
with Automatic Speech Recognition (ASR) or Text-to-Speech (TTS)
capabilities.
Access to VRU Scripts in Unified ICM Scripts
After you set up VRUs through the Unified ICM
Configuration Manager, you can write routing scripts that send calls to the
VRU, queue the call, and invoke specific VRU scripts.
Send Call to a VRU with Send to VRU Node
You can send a call to CVP for further processing by using the Send to
VRU node (in the Queue tab of the Palette).
Figure 32. The Send to VRU icon
When Packaged CCE executes a Send to VRU Node, it looks up the
call's Dialed Number, the Dialed Number's Customer, and the Customer’s
Network VRU. If that fails to retrieve a Network VRU, the router uses
the system default Network VRU .
There are two failure cases:
If the label does not exist, script execution continues with
control flowing through the nodes failure output terminal.
If Packaged CCE does not receive confirmation, execution continues
with control flowing through the nodes failure output terminal.
In all other cases script execution continues with control flowing through
the nodes success output terminal.
Notes:
If the Run External Script, Play, Menu, Collect Data, or Queue
node is used in a script before a Send To VRU node, an implicit Send
To VRU node is assumed. You
do not have to use the Send To VRU node. However, Cisco recommends
that you make a practice of including the node in routing scripts,
as it can act as a visual aid if you ever need to troubleshoot the
script.
If the call is delivered to the CVP but then abandoned, script
execution ends. In monitor mode, a special label on the Send To VRU
node accounts for these cases.
You do not need to set properties for the Send to VRU node. However, you
can optionally add comments or connection labels.
Run External Scripts
You can instruct a
Network CVP to run a specific script by using the Run External Script node (in
the Queue tab of the Palette).
Figure 33. The Run External Script icon
You can use multiple Run External Script nodes to execute a series of
scripts on the CVP.
The Run External Script node is valid for use with all the VRU types.
The execution of Packaged CCE routing script waits for the
external script to finish:
If the external script
runs successfully, control then passes through the success branch of the Run
External Script node.
If the external script
does not run successfully for any reason, then control passes through the
failure branch of the Run External Script node.
Notes:
If the current call is not
at a CVP when the Run External Script node executes, the Packaged CCE sends the call
to the associated Network VRU, as executing a Send to VRU node.
Design scripts so that the
Failure branch of a Run External Script Node contains a test for the
Call.VRUStatus variable. If the value is 2, the VRU is likely to be not
functioning properly. Therefore, the script avoids executing any subsequent Run
External Script nodes on this Failure branch.
Note
When an uninterruptible script is used in a Run External Script
node, the CallRouter waits for the script result from the VRU. It then executes
the next node. Calls can only be routed when they reach an interruptible node.
The Wait node and interruptible Run External Script node ( micro apps) are
interruptible. Every other node is uninterruptible.
Following is the Properties dialog box for the Run External Script
node:
Figure 34. Run External Script Properties
Define Run External Script node properties as follows:
Procedure
Step 1
Select the Packaged CCE Script/External Script Name you want to
execute.
Step 2
Optionally, add comments and connection labels.
VRU Errors
The following table lists the possible values for the VruStatus variable:
Table 2 VruStatus Variable Codes
Value
Meaning
Description
0
VRU_SUCCESS
The last VRU node was successful.
1
VRU_ERROR
The last VRU node failed because of a routing or
configuration error.
2
VRU_TIMEOUT
The last Send To VRU failed because the routing client did not respond within
20 seconds or the last Run External Script node failed
because the timeout limit defined for the script
expired.
3
VRU_ABORTED
The last VRU node did not complete because the caller
hung up or was otherwise lost. (Because this causes the
routing script to terminate immediately, this value is
never seen.)
4
VRU_DIALOG_ FAILED
The last VRU node failed because communication with
the VRU ended unexpectedly.
5
VRU_SCRIPT_ NOT_FOUND
The VRU failed because the referenced VRU script was
not found in the Packaged CCE configuration.
Call Queuing at VRUs
You can queue a call at a Network VRU until a specific resource becomes
available. A call can be queued for one or more skill groups, or a Precision Queue. As soon as
an agent becomes available at one of the specified targets, the call is
removed from the queue and sent to the target.
Specifically, you can:
Place a call in a Precision Queue.
Place the call in a Precision Queue for one or more skill groups.
Adjust the priority of call in a queue for one or more skill
groups.
Remove the current call from any queues to which it is
assigned.
For example:
The call is first sent to the Network VRU. This step is required
before you queue the call.
The call is queued for three skill groups.
If the call is successfully queued, the script cycles between a
Wait node and a Run External Script node so that the caller hears an
announcement every 30 seconds. If an agent in one of the skill
groups becomes available, the call is removed from queue and taken
back from the CVP . Routing script execution ends and the call is
delivered to the target.
Note
In this scenario, you would likely make the VRU script interruptible so
that the routing script can retrieve the call immediately when the resource
becomes available.
Place a Call in Queue
You can place a call in queue at a CVP for one or more skill groups using the Queue node (in the Queue tab of the Palette).
Figure 35. The Queue icon
If an agent becomes available in one of the skill groups, the call is routed to that resource.
Note
If the current call is not at a CVP when the Queue node executes, Packaged CCE sends the call to the associated Network VRU. (This does not apply to Type 2 VRUs, which are VRUs at customer premises.)
The Queue node includes a Priority field, which sets the initial queuing
priority for the calls processed through this node versus other calls queued
for the same target. The Priority is expressed as an integer from 1 (top
priority) to 10 (least priority). The default value is 5.
If more than one call is queued to a group when an agent becomes
available, the queued call with the lowest priority number is routed to the
target first. For example, assume an agent in a skill group becomes
available and two calls are queued to that skill group. If one call has
priority 3 and the other has priority 5, the call with priority 3, the lower
value, is routed to the skill group while the other call continues to wait.
Note
The Queue node does not actually result in instructions being sent to the
VRU. When queuing occurs the Queue node exits immediately through the
success branch and the call is assumed to be at the VRU; the script should
then continue with a Run External Script node to instruct the VRU what to do
while holding the call until an agent to becomes available. Typically this
would invoke a Network VRU Script that plays music-on-hold, possibly
interrupted on a regular basis with an announcement.
Following is the Properties dialog box for the Queue node:
Figure 36. Queue to Skill Group Properties
Define Queue node properties as follows:
Procedure
Step 1
To change the queue type:
Click Change. The Queue Type dialog box
opens.
Select a Target Type (Skill Group). You cannot reference more than one
type of target within a single Queue node. To queue a call
to more than one target type, execute multiple Queue nodes
sequentially.
Optionally, select a Priority to set the initial queuing
priority for calls processed through this node versus other
calls queued for the same target: 1 for top priority to 10
for least priority. (The default is 5.)
Optionally, check Enable Target Requery.
Note
When Target Requery is enabled in a Queue node and a
Requery happens, for example because the call is presented
to an available agent, but the agent does not answer, the
script continues through the failure terminal. The script
can then inspect the call variable RequeryStatus to
determine what to do next. The typical action in case of a
No Answer would be to Queue the call again, possibly to
other skill groups, and possibly increase the priority so
that it is taken out of the queue before regular queued
calls.
Click OK to close the Queue Type dialog
box.
Step 2
To add targets:
click Add Targets. The Add Targets dialog
box opens, listing available targets of the type you
specified.
Use the Available Targets list and the Add button to
select targets.
Click OK to close the Add Targets dialog
box. The target members you selected appear in the
Properties dialog box.
Step 3
Optionally, continue defining Target Type information
for the Route (Drop-down list) member. This is the route to send the call to
when an agent in the target type becomes available. (The
drop-down list includes all routes associated with the
target.)
Step 4
Optionally, add connection labels.
What to Do Next
Note
When processing a Queue node, the router first checks for an available
target, if there is none available then the router attempts to queue the
call. The call does not move to the VRU if there is an available
agent.
Precision Queue Script Node
You can use the Precision Queue script node to queue a call in the Unified CCE
based on caller requirements until agents with desired proficiency become
available. This node contains multiple agent selection criterion which are
separated into steps.
A single call can be queued on multiple Precision Queues. If an agent
becomes available in one of the Precision Queues, the call is routed to that
resource. You cannot reference multiple Precision Queues with a single
Precision Queue node. However, you can execute multiple Precision Queue
nodes sequentially to achieve this.
The Precision Queue node includes a Priority field, which sets the initial
queuing priority for the calls processed through this node versus other
calls queued to the other targets using different nodes. The priority is
expressed as an integer from 1 (top priority) to 10 (least priority). The
default value is 5.
If more than one call is queued to a Precision Queue when an agent becomes
available, the queued call with the lowest priority number is routed to the
target first. For example, assume an agent in a Precision Queue becomes
available and two calls are queued to that Precision Queue. If one call has
priority 3 and the other has priority 5, the call with priority 3, the lower
value, is routed to the Precision Queue while the other call continues to
wait. If the priorities of the two calls are same, then the call queued
first is routed first.
VRU script instructions are not sent to the VRU. If a call enters the Precision Queue node and no resource is available, the call is queued to the Precision Queue and the node transfers the call to the default VRU, if the call is not already on a VRU. The script flow then exits immediately through the success branch and continues to a Run External Script node to instruct the VRU what to do while holding the call until an agent becomes available. Typically, this invokes a Network VRU Script that plays music-on-hold, possibly interrupted on a regular basis with an announcement. The script flow can also use other queuing nodes to queue the same call to other targets, for example, Queue to Skill Group and Queue to Agent.
The following property is unique to static precision queues:
Drop-down list—To route calls that enter this node to a static Precision Queue, you must select a Precision Queue from the list.
The following properties are common to static and dynamic precision queues:
Select Precision Queue radio buttons—You can select one of the following options for each a Precision Queue:
Statically—Select this option to choose a single Precision Queue to be selected for all the calls that enter this node.
Dynamically—Select this option to select a Precision Queue on a call-by-call basis based on a formula.
Note
The Dynamic Precision Queue selection is not available when an External Authorization server is used with Internet Script Editor and will be grayed out in the interface.
Priority selection—To select the initial queuing priority for calls processed through this node, you can select from 1 to 10. The default is 5.
Enable target requery check box—To enable the requery feature for calls processed through this node, select this check box. When a requery occurs, for example if a call is presented to an available agent and the agent does not answer, the script continues through the failure terminal. The script can then inspect the call variable RequeryStatus to determine what to do next. The typical action in case of a No Answer is to queue the call again to other precision queues, and increase the priority so that it is taken out of the queue before regular queued calls.
The following list describes the Precision Queue Properties dialog box for a dynamic precision queue script node.
Use dynamic precision queues when you want a single routing script for multiple precision queues (for example, when the overall call treatment does not vary from one precision queue to another). Dynamic precision queues can simplify and reduce the overall number of routing scripts in the system.
Dynamic Precision Queue selection is not available when an External Authorization server is used with Internet Script Editor and will be grayed out in the interface.
The following properties are unique to dynamic precision queues:
Find By radio buttons—To dynamically route calls that enter this node to a Precision Queue name or ID, use the Find By radio buttons.
Precision Queue Name radio—Select this option to dynamically route calls that enter this node to a Precision Queue name.
Precision Queue ID—Select this option to dynamically route calls that enter this node to a Precision Queue ID.
Formula Editor button—To determine to which Precision Queue name or ID to route calls that enter this node, click the Formula Editor button to create a formula. The formula is then evaluated at run time to select a precision queue by either name or by database ID. For example, you can use the formula "Call.PeripheralVariable4" to look up the Precision Queue if call variable 4 contained the Precision Queue name, as a result of a database lookup or from CVP call processing.
Precision Queues internally are configured with one or more time-based
steps, each with a configured wait time. After a call is queued, the
first step begins and the timer starts. This occurs although the
execution path of the script exited the success node and a new node may
be targeted (for example, Run Ext. Script).
If the timer for the first step expires, control moves to the second
step (assuming one exists), and so on. As long as the call remains in
queue and there are steps left to execute, the call internally continues
to move between steps regardless of the path the call takes after it
leaves the Precision Queue node. If a call is queued to two or more
Precision Queues, the call internally walks through the steps for each
Precision Queue in parallel. After the call reaches the last step on a
Precision Queue, it remains queued on that step until the call is
routed, abandoned, or ended.
Adjust Priority of a Call in a Queue
You can override the priority of a call in queue set by the Queue node by
using the Queue Priority node (in the Queue tab of the Palette).
Figure 40. The Queue Priority Icon
For example:
The original priority of the call in queue is set by the Queue to
Skill Group node or the Precision Queue node.
The call waits in queue for 20 seconds while the caller listens to
an announcement.
Call control passes to a second Wait node.
If 20 more seconds pass without an agent becoming available, the
Queue Priority node executes and raises the call's priority in
queue.
Notes:
Only use the Queue Priority node after a Queue to Skill Group node or a Precision Queue
node. Any subsequent use of the Queue to Skill Group node or the Precision Queue node results in
setting the queue priority back to the original setting for that node.
The Queue Priority node sets the priority for a call within all
queues that the call is placed in. If a call requires the
priority to be raised in one queue only, you should use a subsequent Queue to Skill Group
or Precision Queue node for only that skill group/queue (with the new priority).
Queuing priorities should be handled very carefully. Just
increasing Queue priority does not get a call handled sooner. The
effect depends on the other call in the queue. For example, if all
calls are treated using the example above, the priority increase
has no net effect. If the script above is only used for the
Platinum customers while the Standard customers script leaves them
at the default priority level, the effect is that all Platinum
customers that have been in queue for more than 20 seconds are
handled first regardless of other customers in queue. This can be a
dangerous practice, because while the delay for Platinum customers
is greater than 20 seconds, no Standard customer will ever be
handled. The solution is to increase the priority level for Standard
customers as well, but only after they have been in queue for a
longer period, for example 3 minutes.
Following is the Properties dialog box for the Queue Priority node:
Figure 41. Queue Priority Properties
Define Queue Priority node properties as follows:
Specify the queuing priority for a call processed through this
node: 1 for top priority to 10 for least priority. This determines
the priority the call has versus other calls queued for the same
target.
Optionally, add comments or connection labels.
Remove Call from a Queue
You can remove a call from any queues by using the Cancel Queuing node (in
the Queue tab of the Palette).
Figure 42. The Cancel Queuing Icon
You do not have to define properties for the Cancel Queuing node. You can
optionally add comments or connection labels.
Temporarily Halt Script Execution
You can halt script execution for a specified number of seconds by using
the Wait node (in the Queue tab of the Palette).
Figure 43. The Wait icon
The Wait node simply stops script executing for the specified number of
seconds. In the meantime, the Network VRU is waiting for instructions.
Warning
You must set protocol time-out variables in the VRU system to a
value greater than the longest wait node used in the script.
Following is the Properties dialog box for the Wait node:
Figure 44. Wait Properties
Define Wait node properties as follows:
Procedure
Step 1
In the Timeout in field, specify an interval to wait, in seconds.
Packaged CCE supports the following types of multichannel
route requests:
Web callback - A web callback request is one
that does not involve Unified WIM. A customer clicks a button on a
website that says, "Call me back." Then the caller and agent
simply talk on the phone.
Blended collaboration - With blended
collaboration, the caller and agent talk on the phone and are
linked in a collaborative web session. They can share web pages,
forms, and applications, while at the same time conducting a
voice conversation.
Text chat - The caller and agent can conduct
a text chat session when a telephone call is not desired or not
possible. They can both chat and collaborate on the web.
E-mail message - The customer and agent
communicate using electronic mail.
Application Request Routing
The Unified WIM or Unified EIM
applications route requests to Packaged CCE Media Routing Peripheral
gateway (MR-PG). The Media Routing Peripheral Interface Manager (MR-PIM)
on the MR-PG provides a generic interface to queue and route requests.
The MR-PIM communicates with the CallRouter, which runs a routing script
to determine how best to handle the request.
Packaged CCE uses a media class ID to identify the type of
media or channel. A media class is a communication channel that is
correlated to an application. Cisco_Voice is a predefined media class that is used for web and delayed callbacks requests and Packaged CCE inbound and outbound voice calls.
Each media class has at least one Media Routing Domain (MRD), which is
a collection of skill groups associated with a medium.
The Packaged CCE uses the MRD to route a task to an agent who is associated
with a skill group and a particular medium. Each MRD requires a Packaged CCE script, but it is possible to route requests from different MRDs
using one script.
Synchronized Agents and Skill Groups
Agents are common across the multichannel software, but skill groups
are application-specific. Agents can be created in the
Unified WIM or Unified EIM
applications or in Packaged CCE and agents can be shared across
applications. When agents or skill groups are created in either
Unified WIM or Unified EIM,
they are simultaneously created in Packaged CCE . If an agent is created
in Packaged CCE , the agent must be enabled in the Unified WIM and
Unified EIM applications if the agent wants to log
in to and work on those applications.
Skill groups are application-specific, and even though they are
simultaneously created in Packaged CCE when they are created in
Unified WIM or Unified EIM, do
not create, modify, or delete them in Packaged CCE . You cannot enable
skill groups in the applications.
Independent Media Queues
You can configure the multichannel software to route all media through
independent queues defined by media class. You can configure agents to
log in to only one media type to take either e-mail, text chat, or voice. In this configuration, requests are queued only
to agents who have logged in to the corresponding media application.
Universal Queue
Universal Queue Functionality
Universal Queue is the term used to describe the system's ability to
route requests from different channels to agents who work with customer
contacts in multiple media. With Universal Queue, the Packaged CCE treats
requests from different channels as part of a single queue. Routing
scripts can send requests to agents based on business rules regardless
of the channel from which the request came. For example, the Packaged CCE can
route phone, chat, and e-mail message requests to an agent who works
with all these channels, based on the agent's skills and current tasks.
Universal Queue Configuration Overview
You can configure the
multichannel software to manage a single universal work queue for all
requests. You can configure agents to handle all media types, switching
media on a task-by-task basis. For example, you can configure an agent
as a member of three skill groups if the agent handles voice, e-mail,
and chat, and the agent logs in to the softphone, the Unified EIM,
and the Unified WIM. The agent is assigned the longest waiting
request from any of the three skill groups, or you can choose to
prioritize the requests using the multichannel software scripting
environment.
Multichannel scripts and media routing domains
Media Routing Domains
A Media Routing Domain (MRD) is a collection of skill groups and services associated with a
specific communication channel. For example,
the Unified EIM uses Packaged CCE MRD to route a task to an agent who is
associated with a skill group and a particular channel. MRDs are defined in
the Packaged CCE configuration and have unique IDs across the enterprise.
Media Routing Domains and Interruptibility
When you configure MRDs, you indicate whether tasks for the MRD are
interruptible. If the MRD is not interruptible, and agent working on
tasks for that MRD is not assigned tasks from other MRDs. If the MRD is
interruptible, the agent may be assigned tasks from another MRD.
Typically, voice calls and Unified WIM
tasks are not interruptible, as agents are interacting with customers
synchronously. E-mail messages, on the other hand, are typically
interruptible because contact with the customer is asynchronous.
Therefore, an agent responding to an e-mail message may be interrupted
by a phone call or chat session.
Use Media Routing Domains to Categorize Contacts
You can categorize contacts based on the MRD based on the route
request made by the MRD using the Media Routing Domain node (in the
Routing tab of the Palette).
Figure 45. MRD Domain icon
For example, you can have different MRDs for an Unified EIM
instance and Unified WIM chat. You can have a single script
for both types of requests that branches so that it routes e-mail
messages and chats to different targets.
You must insert targets and connections from the MRD node before you
define the node's properties.
Note
A branch can include multiple MRDs, but a single MRD can only be
associated with one branch.
Following is the Properties dialog box for the Media Routing Domain
node:
Figure 46. Media Routing Domain Properties
Define Media Routing Domain node properties as
follows:
Procedure
Step 1
To associate a MRD with a branch: Select the branch:
Click Add.
Choose a MRD from the drop-down list.
Step 2
To delete a branch, select it and click
Delete.
Step 3
To rename a branch, select it, click Rename,
and type the new name.
Step 4
You can define a branch as Otherwise by selecting the branch
and clicking Make Otherwise. Execution follows
this branch if none of the specified time ranges apply. You can
specify only one Otherwise branch for the node.
A formula consists of one or more expressions that the Packaged CCE
evaluates to produce a value that it can use for subsequent script processing.
You define expressions—made up of
variables,
constants, operators, and functions—as part of
custom selection rules or
distribution criteria in scripts.
Formula Example
Following is a simple example of a formula:
CallerEnteredDigits == 1
In this example:
The Left-value, CallerEnteredDigits, is a variable. More
specifically, it is a call control variable.
The operator is the "Equal To" equality operator.
The Right-value is the number 1.
If the value of CallerEnteredDigits is 1, the formula returns true;
otherwise, the formula returns false.
Variables
Variable Usage
A variable is a named object that holds a value. You use variables in
formulas to select targets and help in call tracking.
Variable Syntax
Following is the syntax for using a variable in a formula:
object-type.object-name.variable-name
Where:
The object-type is an object category, such as SkillGroup.
The object-name is the name of an object contained in Packaged CCE database, such as the name of a SkillGroup (for example,
BosSales).
The variable-name is the name of an object that can hold a value, such as call information for the Skill Group; for example, (CallsInProgress).
Each component in the variable is separated by a period
(.).
Single-Target Variables
A single-target variable examines data for one specified routing
target. For example, the variable:
SkillGroup.BosSales.CallsInProgress: Examines the number of calls in progress for the BosSales skill group.
Multiple-Target Variables
A multiple-target variable examines data across multiple routing
targets. For example, the function:
Max(SkillGroup.*.LongestAvailable): Finds the
skill group, from all skill groups defined in the target set for the
script node that calls the function, with the longest available
agent.
You use an asterisk (*) as the object-name value to indicate that the
variable is to examine data across multiple targets.
Call Control Variables
Call control variables provide information about the current contact
that is being routed by the script. Call control variables include information
about where the route request came from, contact classification data, and data
to be passed to the peripheral that receives the contact.
Variable
Data Type
Description
Can be Set by the User
CallerEnteredDigits
String
Digits caller entered in response to prompts.
Yes
CallingLineID
String
Billing telephone number of the caller.
No
DialedNumberString
String
Telephone number dialed by the caller.
No
ExpCallVarName
String
Expanded Call Context (ECC) variable value assigned in scripts and passed with contact.
Yes
PeripheralVariable1-
PeripheralVariable10
String
Values passed to and from the peripheral.
Yes
RequeryStatus
Integer
Provides the ability to test the error path of the Label, Queue, RouteSelect, and Select nodes to determine the specific network cause of failure and conditionally retry the attempt as necessary.
No
RouterCallDay
Integer
An encoded value that indicates the date on which Packaged CCE processes the call.
No
RouterCallKey
Integer
A value that is unique among all calls Packaged CCE has processed since midnight. RouterCallDay and RouterCallKey combine to form a unique call identifier.
No
RoutingClient
String
The name of the routing client that made the route request.
No
TimeInQueue
Integer
Number of seconds a call has been queued.
No
UserToUserInfo
String
ISDN private network User to User information
Yes
VruStatus
Integer
Indicates the result of a previous VRU node.
No
CallGUID
varchar (32)
Globally unique call identifier.
No
LocationParamName
varchar(50)
Location name.
No
PstnTrunkGroupID
varchar(32)
The Trunk Group ID on which the call arrived on IOS Gateway.
No
PstnTrunkGroupChannelNumber
Integer
The Trunk Group Channel Number on which the call arrived on IOS Gateway.
No
SIPHeader
varchar(255)
Specific header information extracted from a SIP call that arrives at CVP (or VRU).
Yes
Note
The Call Variables are used in "SET" node by several customers in
an Admin Script as temporary placeholders for complex calculation. However,
because any call context is only existent as long as the call itself, the
Variables cease to exist after the Route Request (a.k.a Call) is complete
(be it by virtue of a successful Routing Script Execute Completionor or an
Administrative Script Execute Completion). They cannot be used to store values,
so as to be re-used in Routing Scripts, as the Routing Scripts itself will have
a new set of CallVariables created for the Route Request.
Note
When comparing two Call Variables of Numeric string, you must use the Built-In
Function "value()" in the IF Node to perform Numeric comparison,
otherwise there is a String comparison. Ex:
value(Call.PeripheralVariable1)>=value(Call.PeripheralVariable2) where
Call.PeripheralVariable1 and Call.PeripheralVariable2 are given as Numeric
string.
Expanded Call Variables
Expanded Call variables store values associated with the
contact.
Expanded call values are written to Termination Call Detail records only if, and
when, an ECC value is explicitly set, which can be done any numbers of
ways, such as using a script, a CVP, CTI, and so on. This
applies to null values as well as non-null values.
If an expanded call variable is defined, but never assigned a value, it
does not have a row in the Termination Call Variable table when a
Termination Call Detail record is written.
Generally speaking, expanded call values are passed from leg to leg on the call.
After a value is assigned, the value is recorded in the Termination
Call Variable for every Termination Call Detail Segment. However, this
depends on how each new call segment is created.
The Packaged CCE is delivered with some ECC variables, and you can create others through the Unified CCE Administration tool.
Persistent vs. Non-Persistent Call Variables
When Packaged CCE writes call data
records to its historical database, it can store the values of all call
variables. Storing excessive call variable data can degrade historical
database performance. When you define a call variable (using the Expanded Call Variables gadget in the Unified CCE Administration web tool), you can tag it as either persistent or
non-persistent. Only persistent call variables
are written to the historical database. You can use non-persistent variables in routing scripts, but they are not written to the database.
User Variables
User variables are variables you create to serve as temporary storage
for values you can test with an If Node. For example,
you could create a user variable called usertemp to serve as a temporary
storage area for a string value used by an If node.
You create user variables through the Unified CCE Administration tool.
For more information, see the User Variable List in Packaged CCE Administration Guide for Release 9.0(x).
Each user variable must:
Have a name that begins with user.
Be associated with an object type, for example, SkillGroup. (This
enables the Packaged CCE to maintain an instance of that variable for
each object of that type in the system.)
Be identified as a persistent (retains value across CallRouter
restarts) or non-persistent (does not retain value across
CallRouter restarts) variable.
Store a value up to 40 characters
long.
After you have define a variable, you can use the Formula Editor
to access the variable and reference it in expressions, just as you
would with a built-in variable.
Set Variable Node Usage
Figure 49. Set Properties window
You can set the value of a variable with the Set Variable
node:
Object type - Choose the type of object the variable is
associated with.
Object - Choose the specific object the variable is associated
with.
Note
If you choose Call as the Object Type, this field does not
apply.
Variable - The specific variable you want to set.
Note
The variables that are available are determined by the value
you choose in the Object Type field.
Note
Define all integer fields in tables accessed by a Set
Variables node as NOT NULL.
Array index - Enter an integer or an expression that evaluates
to an integer. For example, if the Array Index expression
evaluates to 2, then the Set Variable node sets the second
element of the variable array.
Note
This field is only available if you select an array variable
in the Variable field.
Value - Enter the value to assign to the
variable. The value can be:
A constant
A reference to another variable
An expression
SkillGroup.Avail and SkillGroup.ICMAvailable Variables
When Packaged CCE system includes only the voice channel, the value of
the SkillGroup.Avail variable is the number of agents in the available
state, meaning that the agents are able to accept new calls.
However, when the web or E-mail channel is used with non-voice Media
Routing Domains and agents log in to multiple domains, the value of the
SkillGroup.Avail variable is calculated differently. There is also a
SkillGroup.ICMAvail variable.
The following table describes the difference between the
SkillGroup.Avail and the SkillGroup.ICMAvail variables:
Case
SkillGroup.Avail
SkillGroup.ICMAvailable
Only voice domain is used
Number of agents in the Available state.
Same
Multiple Domains are used
Number of agents in the Available state,
regardless of what they may be doing in this or
other domains.
Number of agents who can actually handle an
additional task or call in the domain.
SkillGroup.ICMAvailable Variable
The value of the SkillGroup.ICMAvailable variable is the
actual number of agents logged in to the skill group who can take new
calls or tasks. Such agents must meet all the following
criteria:
They are routable in the domain.
The agent's state in the domain is something other than
"Not-Ready".
The agent is below the maximum task limit.
Note
For most domains (that is, if the agent is not a
Unified WIM Multi-session agent), the
maximum task limit is 1, and an agent is below the maximum only
when the agent is not working on any call or task.
The agent is not working on another task in a
non-interruptible domain.
SkillGroup.Avail Variable
SkillGroup.Avail is the number of agents in the skill group who are
not doing anything in the domain. An agent who is logged in to two
domains can be counted as Avail in one domain even though that agent is
handling a task in another non-interruptible domain. An agent in a
domain that handles multiple tasks (such as chat) is not counted as
Avail if that agent is handling a task, even though the agent has
additional capacity for more tasks.
The following table shows some possible values for these variables.
Assume three agents are logged in to a voice skill group, and the same
three agents are also logged in to another non-interruptible domain, such
as Unified WIM Chat. This table shows the voice skill
group states.
Case
SkillGroup.Avail
SkillGroup.ICMAvailable
Initial state
3
3
First agent handles a call
2
2
Second agent handles a Collaboration chat
session
2 (because there are two agents doing nothing in
the domain)
1 (because there is only one agent left to handle
voice calls)
Voice call ends
3
2
Collaboration chat ends
3
3
If a routing script needs to check the number of available agents,
using SkillGroup.Avail produces better results as it uses an
extrapolation mechanism in determining the available agent.
Following is another example showing agents handling chat. Assume
three agents logged in to a chat skill group, each capable of handling
two chats. This table shows states for the chat group.
Case
SkillGroup.Avail
SkillGroup.TalkingIn
SkillGroup.ICMAvailable
Initial state
3
0
3
First agent handles a Collaboration chat
session
2 (because the agent is now in the talking
state)
1
3 (because all three agents can still handle
additional chats)
Second agent handles a Collaboration chat
session
1
2
3
Third agent handles a Collaboration chat
session
0
3
3
First agent handles second Collaboration chat
session
0
3 (even though a total of 4 chats are in progress,
only 3 agents are doing the work)
2 (because only the second and third agents can
handle an additional chat)
By default, Script Editor shows the ICMAvailable value instead of
Avail value when displaying skill group real-time data.
Closed Variables
Closed variables are available for use for Skill Groups, Peripherals,
and Media Routing Domains. Closed variables allow administration scripts
to turn dequeuing to these objects on and off. The Closed variables
default to 0, meaning that the object is open. A script (usually an
administration script) can change the state of the Closed variables.
If a Closed flag is set to a non-zero integer, then calls are not
dequeued to affected agents, regardless of their state.
When closed variables are set to zero, the queued calls do not go to
the available agents immediately, and continue to be in the queue. When
the agent state changes from "Not Ready" to "Ready" state, the new calls
are sent to the availabe agents (agents in the "Ready" state) only, and
not the queued calls.
Operator Precedence
The following table shows the order in which operators are
evaluated.
Note
The operators with priority 1 are evaluated first, then those with
priority 2, and so on. The order of evaluation within each priority
level can also be important. Prefix operators are evaluated from
right-to-left in an expression. Assignment operators are also evaluated
from right-to-left. In all other cases where operators have equal
priority, they are evaluated left-to-right.
Priority
Operator type
Operators
1
Prefix (unary)
+ - ! ~
2
Multiplication and division
* /
3
Addition and subtraction
+ -
4
Shift right and shift left
>> <<
5
Relational
< > <= >=
6
Equality
== !=
7
Bitwise And
&
8
Bitwise exclusive Or
^
9
Bitwise inclusive Or
|
10
And
&&
11
Or
||
12
Conditional
?
13
Sequential
,
Operators
Prefix Operators
The Prefix Operators in the following table take a single
operand:
Operator
Meaning
Comments/Examples
+
Positive
Numeric values are positive by default, so the
positive operator (+) is optional. Example: 2 and +2
represent the same value.
-
Negative
The negative operator (-) changes the sign of a
value. Example: 2 represents a positive value; -2
represents a negative value.
!
Logical negation
A logical expression is any expression that
evaluates to true or false. The logical negation
operator (!) changes the value of a logical
expression. Note: Numerically, a false value equates
to 0 and a true value equates to a non-zero value.
Example: If the current value of
SkillGroup.Sales.Avail is 3, then
SkillGroup.Sales.Avail > 0 is true and
(SkillGroup.Sales.Avail > 0) is false.
~
One's complement
Operates on a bit value, changing each 1 bit to 0
and each 0 bit to 1. Note: This operator is rarely
used.
Arithmetic Operators
The Arithmetic Operators in the following table take two
operands:
Operator
Meaning
Comments/Examples
*
Multiplication
Arithmetic operators perform the basic operations
of addition, subtraction, multiplication and
division. You can use them in making calculations
for a skill group, service, or route. Note:
Multiplication (*) and division (/) operators are
evaluated before addition (+) and subtraction (-)
operators. Examples: Returns the number of agents
who are logged in to the service but not currently
available. Evaluates to because the multiplication
is performed first.
/
Division
+
Addition
-
Subtraction
Equality Operators
The Equality Operators in the following table take two
operands:
Operator
Meaning
Comments/Examples
==
Equal to
Equality operators allow you to determine whether
two values are equivalent or not. Examples: Is true
if any calls are currently queued for the service.
Is true if all agents logged in to the service are
currently available.
!=
Not Equal To
Relational Operators
The Relational Operators in the following table take two
operands:
Operator
Meaning
Comments/Examples
>
Greater than
Relational operators allow you to perform a more
sophisticated comparison than the equality
operators. Examples: Is true if more members of the skill
group are in the Not Ready state. Is true if at
least as many agents are Ready as Not Ready.
<
Less than
>=
Greater Than or Equal To
<=
Less Than or Equal To
Logical Operators
The Logical Operators in the following table take two operands.
Logical operators examine the values of different logical
expressions:
Operator
Meaning
Comments/Examples
&&
And
The expression is true if both of the operands are
true. If either is false, the overall expression is
false. The following is true if the skill group has
at least one agent logged in and no agents are
currently available.
||
Or
The expression is true if either or both of the
operands is true. If both are false, the overall
expression is false. The following is true if the
skill group has at least 5 agents logged in or no
agents are currently available. However, the
expression is false if less than five agents are
logged in and there is an agent available.
Note
The equality (==) and relational (>) operators are evaluated before
the logical operators (&& and ||).
Bitwise Operators
The Bitwise Operators in the following table take two operands.
Operator
Meaning
Comments/Examples
&
And
The & Bitwise Operator turns specific bits in
a value on or off. The following expression turns
off the six low-order bits of AvgTalkTimeTo5.
Note the use of the complement operator (~) with
the constant. This is equivalent to rounding the
value down to the next multiple of 64.
|
Inclusive Or
Inclusive Or and Exclusive Or differ in the way
they handle the case where bits in both values are
1: Inclusive Or evaluates the result as true and
sets a 1 bit in the result. Exclusive Or evaluates
the result as false and sets a 0 bit in the result.
(An Exclusive Or applies the rule "one or the other,
but not both").
^
Exclusive Or
Miscellaneous Operators
The following table lists miscellaneous operators:
Operator
Meaning
Comments/Examples
?
Conditional
The conditional operator (?) takes three operands
and its syntax is as follows:
The Packaged CCE evaluates the expression by first
examining the logical expression condition and then
tests the following condition: If the result is
true, then the overall expression evaluates to the
value of the expression true-result. If the result
is false, then the overall expression evaluates to
the expression false-result. The following
expression determines whether the number of agents
available for skill group S1 is even or odd.
&
Concatenation
The concatenation operator (&) joins two
strings end-to-end. returns the value.
,
Sequential
The sequential or comma operator (,) takes two
operands, each of which is an expression. Packaged CCE evaluates the left expression first and then the
right expression. The value of the overall
expression is the value of the right expression. The
first expression typically affects the valuation of
the second.
<<
Shift left
The shift left (<<) and shift right
(>>) operators shift the bits within a value.
The following example shifts the bits in Avail two
places to the left. The two right-most positions are
filled with zeroes: The following example shifts the
bits in Avail two places to the right. In this case,
the positions are filled with sign bits (0 if the
original value is positive or zero; 1 if the
original value is negative).
Built-in functions
Date and Time Functions
The following table lists the built-in date and time functions:
Function
Data Type
Return Value/Example
date [ (date) ]
Integer
Returns the current system date or the date
portion of a given date-time value. The given date
can be a floating point value (as returned by the
now function), a string of the form mm/dd/yy, or
three integers: yyyy, mm, dd. date (with no
arguments) returns the current date. = date (2001, 7,
15) tests whether the current date is July 15,
2001.
Note
Do not use the slash (/) character in defining a
date function. Because it is the division operator,
the function would not return the results you are
looking for. You can enclose the argument within a
string.
day [ (date) ]
Integer
Returns the day of month (1-31) for the current
date or a given date. The given date must be an
integer or a floating-point value, as returned by
the date or now function. Tests whether tomorrow is
the first of the month.
hour [ (time) ]
Integer
Returns the hour (0-23) of the current time or a
given time. The given time must be a floating-point
value, as returned by the now function. Tests
whether the current time is before noon.
minute [ (time) ]
Integer
Returns the minutes (0-59) of the current time or
a given time. The given time must be a
floating-point value as returned by the time
function. Tests whether the current time is in the
second fifteen-minute interval after an hour.
month [ (date) ]
Integer
Returns the month (1-12) of the current month or a
given date. The given date must be a floating-point
value, as returned by the date or now function.
Tests whether the current month is June.
now
Float
Returns the current date and time, with the date
represented as an integer and the time represented
as a fraction. Note: You can use the date or time
functions without any arguments to return just the
current date or time. This function is useful for
comparing the current date and time to a specific
point in time. To test whether the current date and
time is later than 10 P.M., December 24, 2001, use
the expression.
second [ (time) ]
Integer
Returns the seconds (0-59) of the current time or
a given time. The given time must be a
floating-point value, as returned by the time
function. Tests whether the current time is within
the last ten seconds of a minute.
time [ (time) ]
Float
Returns the current system time or the time
portion of a date-time value. The given time can be
a floating point value, a string of the form
hh:mm:ss, or two or three numeric values: hh, mm [,
ss ]. (with no arguments) returns the current time.
Tests whether the current time is after 2:00
PM.
weekday [ (date) ]
Integer
Returns the current day of week (Sunday=1,
Monday=2, etc.) of the current date or given date.
The given date must be an integer or floating-point
value, as returned by the date or now function.
Tests whether today is Tuesday.
year [ (date) ]
And
Returns the year of the current year or given
date. The given date must be a floating-point value,
as returned by the date or now function. Tests
whether the millennium has passed.
Mathematical Functions
The following table lists the built-in mathematical functions:
Function
Data Type
Return Value/Example
abs(n)
Floating Point or Integer
Returns the absolute value of (the number with no
sign). Returns the value 15.
max(n1, n2 [,n3] . . .)
Floating Point or Integer
Returns the largest of the operands. Each operand
must be numeric. Returns the value 3.
min(n1, n2 [,n3] . . .)
Integer
Returns the smallest of the operands. Each operand
must be numeric. Returns the value -2.
mod(n1,n2)
Floating Point or Integer
Returns the integer remainder of n1 divided by n2.
Returns the value 99.
random()
Floating Point or Integer
Returns a random value between 0 and 1.
sqrt(n)
Floating Point or Integer
Returns the square root. (The operand n must
be numeric and non-negative). Returns the value
7.
trunc(n)
Floating Point or Integer
Returns the value of truncated to an integer.
returns the value 28.
Miscellaneous Functions
The following table lists the built-in miscellaneous functions:
Function
Data Type
Return Value/Example
after(string1,string2)
String
That portion of string2 following the first
occurrence of string1. If string1 does not occur in
string2, the null string is returned. If string1 is
the null string, string2 is returned. Returns the
value defg.
before(string1,string2)
String
That portion of string2 that precedes the first
occurrence of string1. If string1 does not occur in
string2, string2 is returned. If string1 is the null
string, the null string is returned. Returns the
value abc.
ClidInRegion
Logical
Indicates whether the CLID for the current contact
is in the geographical region specified by string.
The value string must be the name of a defined
region. You can use the Name variable of a region to
avoid entering a literal value. Tests whether the
CLID is from the Maryland region.
concatenate(string1,string2, . . .)
String
Returns the concatenation of the arguments. The
function takes up to eight arguments. Returns the
value abcde.
find(string1, string2 [,index ])
Integer
Returns the starting location of string1 within
string2. If you specify an index value, searching
starts with the specified character of string2.
Returns the value 6.
if(condition,true-value,false-value)
Logical
Returns a value of true-value if the condition is
true; false-value if the condition is false. Returns
the current hour in 12-hour format rather than
24-hour format.
left(string,n)
String
Returns left-most n characters of string. Returns
the value abc.
len(string)
Integer
Returns the number of characters in string.
Returns the value 3.
mid(string,start,length)
String
Returns a substring of string beginning with the
start character and continuing for length
characters. Eeturns the value bcd.
result
Floating Point or Integer
Returns the result of the current Select node.
(This function is valid only in a Select node.) If
you are using the LAA rule in the Select node,
result Returns the number of seconds the selected
agent has been available.
right(string,n)
String
Returns right-most n characters of string. Returns
the value cde.
substr(string,start [ , length ])
String
Returns a substring of string beginning with start
character and continuing for length characters.
Returns the value 01851.
text(n)
String
Converts a numeric value to a string. Returns the
value "5".
valid(variable)
Logical
Returns whether variable has a valid value. Tests
whether the database C name is a valid value.
ValidValue(variable,value)
String
If variable has a valid value, returns that value;
otherwise, returns "value". Returns either a name
from the database or the string value None.
value(string)
Floating Point or Integer
Converts a string to a numeric value. Returns the
value 5.
Custom Functions
Custom functions are those functions you create for use within scripts, as
opposed to built-in functions.
In Script Editor, from the Script menu, choose
Custom Functions. The Custom Functions dialog
box opens, listing all the custom functions currently
defined.
Step 2
Click Add to open the Add Custom Function
dialog box.
Step 3
Specify the following:
Function name. All custom function names must begin with
user.
Number of Parameters. The number of parameters to be
passed to the function. A function may take 0, 1, or more
parameters.
Function definition. The expression to be evaluated when
the function is called. When entering the function
definition, keep the following in mind:
The parameters to a function are numbered
beginning with 1. To reference a parameter within
the expression, surround it with percent signs (%).
For example, %3% is a reference to the third
parameter.
The lower portion of the dialog box is just like
the Formula Editor. You can use it to help build the
expression.
Step 4
When finished, click Test. The Test Function
dialog box opens.
Step 5
Test the function by entering an example of how you might
reference the function. Include a specific value for each
parameter.
Step 6
Click Evaluate to see how the Script Editor
interprets the function call and click Close to
return to the Add Custom Function dialog box.
Step 7
Use one of the Validate buttons to validate the scripts that
reference a selection function. (The Validate All button lets you
validate all the scripts that reference any custom
function.)
Step 8
When finished, click OK to apply changes and to
close the dialog box.
Import Custom Functions
Procedure
Step 1
In Script Editor, from the Script menu, choose
Custom Functions. The Custom Functions dialog
box opens, listing all the custom functions currently
defined.
Step 2
Click Import. The Import Custom Function dialog
box opens.
Step 3
Choose a file name with an ICMF extension (.ICMF) and click
Open. The Script Editor examines the file for
naming conflicts. If a conflict is found, a dialog box appears
listing options for resolving the conflict.
Step 4
Choose one of the options and click
OK.
Note
If you choose to rename the function, the new name must begin
with user.
The Script Editor performs automapping and the
following happens:
If all imported objects were successfully auto-mapped, a
message window appears prompting you to review the mappings.
Click OK to access the Object Mapping
dialog box.
If some imported objects were not successfully
auto-mapped, the Object Mapping dialog box appears, with all
unmapped objects labeled Unmapped.
The Object Mapping dialog box contains three
columns:
Object Types. The type of imported
objects.
Imported Object. Name of imported object.
Mapped To. What this imported object will be
mapped to.
(Optional.) Click an Imported Object value. The Mapped To
column displays all the valid objects on the target
system.
(Optional.) Choose an object from the Mapped To columns
drop-down list on the target system that you want to map the
imported object to.
Note
Multiple objects may be mapped to the same target. Objects may be
left unmapped; however, the resulting custom function are not
valid until all objects are mapped.
When the mapping is complete, click Apply and
Finish.
Export Custom Functions
Procedure
Step 1
In Script Editor, from the Script menu, choose
Custom Functions. The Custom Functions dialog
box opens, listing all the custom functions currently
defined.
Step 2
Choose the custom function(s) from the list and click
Export. The Export Custom Function dialog box
opens.
Note
If you selected a single function, that functions name appears
in the File Name field. If you selected more than one function,
the File Name field is blank.
Step 3
(Optional.) Change the File Name.
Note
You cannot change the file type; you can save the script only in .ICMF format.
Step 4
Click Save. If the file name already exists,
the system prompts you to confirm the save.
Step 5
If prompted, click OK. The custom function(s)
are saved to the specified file in text format.
When a call is queued to a skill group because there are no agents
available, the Queue to Skill Group node sets the call's priority. The Queue
Priority node can then promote the call's priority based on time the caller
has waited. The call can be queued to multiple skill groups with the same or
different priorities.
If there are calls in the agent's skill group queues when an agent becomes
available, the agent is presented with the highest priority (1-10 with
1 being the highest priority) call that has waited the longest within the
skill group(s) that the agent is assigned to.
Check for Available Agents
A script that routes to Packaged CCE agents needs to check for an available
agent within a skill group. If an agent is not available, then the script
should use a Queue to Skill Group node. The script execution ends when
an agent becomes available or when the caller disconnects.
Queue to Skill Group Node
If you use the Queue to Skill Group node, then do not use the base priority within the Queue node unless
the option is enabled in the router through the registry.
Cancel Queuing Node
If the call needs to be taken out of a skill group, then use the Cancel
Queuing node. The Cancel Queuing node takes the call out of all the skill
groups it is queued to.
End Node
The End node either tries default routing, or if there is no default
label, it sends an error (dialog fail) to the routing client.
Agent to Agent Node
You can use the Agent to Agent node for agent to agent transfers; the
router checks agent availability before sending the call to the agent. If
the agent is not available, the script queues the call to a skill group. You can also use the
Agent to Agent node to send a call to the agent: the
"caller" is not required to be an agent.
CVP as a Queue Point
Packaged CCE relies on the CVP to queue the call while it is waiting for an
available agent.
The Packaged CCE sends the call to the CVP port for queuing:
To provide the call with a termination point that allows the
VoIP Gateway to return the correct signals or messages back to the
PSTN.
Provide announcements or music or expected wait time or initial
position in queue to the caller while they are waiting for an agent.
Allow the caller an option to leave a message if the caller does not
want to wait for an agent.
To obtain further information from the caller that is not sent
from the network
The CVP lets Packaged CCE know when the caller disconnects through the
Event Report Message with an Event Type of either DISCONNECT or ABANDON. When
an agent becomes available, Packaged CCE automatically instructs CVP
to route the call to the agent through the Connect message.
If the VRU script is collecting digits from the customer to
ascertain information regarding the caller that is crucial for a screen
pop or call routing, put the VRU script in a non-interruptible
mode.
If a call was queued to a skill group through a Queue to Skill Group node and then sent to VRU to
hear a non-interruptible VRU script, if during the time that the caller
is interacting and listening to the non-interruptible VRU script, an
agent becomes available, the call will not be connected to the agent.
The Packaged CCE only looks for available agents for that call when the VRU
script is finished and the call executes an interruptible node such as a
Wait node or a Run External Script node for a VRU script that is
interruptible. The call does, however, maintain its place in the queue
so when the call does become available for an agent, it is answered
before calls that came in afterward it (assuming the same priority).
For announcement and music type of treatments, put the VRU Scripts in
interruptible mode. This allows the call to be connected to the first
available agent even while the caller is listening to a VRU script.
You set the interruptibility of a VRU script through the Network VRU Scripts gadget in the Unified CCE Administration Web tool. Neither the VRU or the Packaged CCE script
can overwrite this setting.
The Start node marks the beginning of a script. The Script Editor
automatically inserts the Start node when you create a new script; a script
must have one and only one Start node.
You do not define any properties for the Start node. However, you can add
comments and connection labels:
Figure 50. Start Properties
Comment Node
Use the Comment node (in the General tab of the Palette) to include a
block comment in a script. A block comment provides general documentation
for a script or section of a script:
Figure 51. The Comment Icon
Figure 52. Comment Properties
For example, you might add a comment describing the purpose of the script.
You can move and resize the comment box within the script.
Note
If you choose the Auto-Size Height option, you cannot adjust the height of
the comment.
Line Connector Node
Use the Line Connector node (in the General tab of the Palette) to make
routing and administrative scripts clear and understandable.
Figure 53. The Line Connector Icon
A script can be difficult to understand and the call flow hard
to follow if:
The connecting lines between nodes are too long.
The connecting lines go in different directions.
The connecting lines run over other nodes and other connection
lines.
The Line Connector node allows you to break and reconnect lines using one
or more of its multiple input connections and single output connection. Any
request coming into this node (on any one of the multiple inputs) goes to
the single output connection of the line connector node.
For the Line Connector node, you define the connection labels:
Figure 54. Line Connector Properties
CVP Scripting
Writing Scripts for Unified CVP
This section discusses using Packaged CCE configuration and script editing to access the Unified CVP solution.
It includes information about how to:
Set up Packaged CCE to interact with Unified CVP
Write applications for Unified CVP
Note
This section contains important information for CVP application developers. It also may be of interest to Call Center Managers, Unified CVP System Managers, and Packaged CCEsystem managers.
Before You Begin
This chapter makes the following assumptions:
The information in this chapter assumes that you are already familiar
with using the Unified CCE Administration and Script Editor tools for call center operations and management.
When
creating applications that interact with Unified CVP, only use alphanumeric
characters for application, element, and field names;
do not
use special characters such as periods, asterisks or brackets.
Following this practice will avoid potential issues with data transfer between
different systems.
Scripts to Access Unified CVP from Packaged CCE
Both Packaged CCE and Unified CVP use scripts to invoke
their features. In fact, Packaged CCE
references Unified CVP scripts from within its own
scripts . This method of invoking Unified CVP from within
Packaged CCE enables Packaged CCE to take
advantage of the features of Unified CVP.
The two products (Packaged CCE and
Unified CVP) provide two service creation (scripting) environments.
Each environment is used for different purposes:
ICM Script Editor. Use this scripting tool to develop
agent routing scripts and to invoke the Unified CVP
micro-applications: Play Media, Get Speech, Get Digits, Menu,
Play Data, and Capture. These applications are the basic building blocks of a
voice interaction design.
Call Studio.
Use Call Studio to develop sophisticated CVP applications.
The
Packaged CCE Script Editor is used to develop agent routing
scripts, and to invoke Unified CVP micro-applications - basic building blocks of
a voice interaction design. The Unified CVP micro-applications are: Play Media,
Get Speech, Get Digits, Menu, Play Data, and Capture. These applications are
combined and customized in the Packaged CCE routing script
to produce a viable voice interaction with the caller.
While it is
possible to develop full scale CVP applications using micro-applications, it is
not recommended. Micro-application-based scripts are primarily used for initial
prompt and collection operations, as well as for directing the playing of .wav
files while calls are in queue. Instead, use the CVP scripts developed using
Call Studio to create the CVP applications.
In an environment where
Packaged CCE script works with Call Studio script (the 2-script
implementation for Unified CCE-integrated models described here), the
Packaged CCE script remains in control (and receives control
back), even while it delegates the more complex self-service activity to the Call Studio script. Data can be passed from one script
to the other and back through ECC variables.
Note
The capability of
using Packaged CCE scripting for anything other than simple functions has been
kept in support of legacy deployments. New customers are strongly advised to
use the VoiceXML scripting environment of Unified CVP for creating CVP
applications.
Unified CVP Call Studio Scripting
Sophisticated CVP
applications can be developed using Call Studio which is an Eclipse-based
service creation environment whose output is an intermediary file describing
the application flow. That file gets loaded onto the VXML Server for
execution. To invoke a VXML Server application, the script writer includes a
Get Speech (GS) micro-application via the Run External Script node in his Packaged CCE routing
script. This micro-application instructs the VoiceXML Gateway to interact with
the VXML Server directly to execute the application. The final results are
passed back to Packaged CCE .
Some
of the Call Studio scripting environment features include:
A drag-and-drop interface with a palette of CVP functions
The ability to do database queries
Extensibility with Java code written to perform any task a Java
application can perform
Note
Packaged CCE does not support
using the MicroApp nodes that are available in the ICM
Script Editor. All MicroApp implementation must be done using the
Run
External Script
node in ICM Script Editor. Refer to Writing Unified CCE Applications for Unified CVP for detailed information
about setting Unified CVP-specific parameters in this node for each Unified CVP
micro-application.
Micro-applications are a set of specific CVP
functions that can be invoked by Packaged CCE , enabling communication with the
caller.
There are six Unified CVP
micro-applications:
Play Media.
Plays a message to the caller.
Play
Data
. Retrieves data from a storage area and plays it to the caller in
a specific format called a data play back type.
Get Digits. Plays a media file and retrieves
digits from the caller.
Menu. Plays a
media menu file and retrieves a single telephone keypad entry from the
caller.
Get Speech. Executes a Call Studio script on VXML Server.
Capture. The Capture (CAP) micro-application enables you
to trigger the storage of current call data at multiple points in the Packaged CCE routing script.
Micro-applications are interpreted
by the CVP Service, which resides on the Call Server. The CVP Service sends
VoiceXML code to the VoiceXML Gateway Voice Browser.
Note
Using ASR/TTS(speech) through micro-applications is not supported. You have to use Call Studio scripts for any caller interaction that requires use of ASR/TTS (speech).
Simple Example Script: Welcome to XYZ Corporation
Suppose you want to create a Packaged CCE script that has an example call flow as follows.
This simple script performs the following functions:
Executes the GetInfo Call Studio script on the VXML Server to collect some caller input based on the example callflow.
Based on caller input, queues for a sales or support agent
.
If an agent is not available, executes the MOH Call Studio script which will play music-on-hold to the caller until an agent becomes available.
Procedure
Step 1
A call arrives at CCE and executes a CCE script.
Step 2
The caller hears a welcome prompt.
Step 3
The CCE script sends the call to CVP for collecting some information from the caller before queuing the call for an agent. For example, a menu is offered such as "press 1 for sales and 2 for support," as well as entering an account number.
Step 4
If the caller is an existing customer, the caller-entered account number is used to retrieve additional information about the caller from an external database.
Step 5
Caller-entered digits and the additional information about the caller are returned back to the CCE script to be shown a screen pop to the agent, when an agent becomes available.
Step 6
The call is then queued waiting for an agent in a particular skill group, based on the caller selection of the type of service.
Step 7
If an agent is available, the caller is connected to that agent. The agent desktop displays the caller information collected via caller input as well as database lookup.
Step 8
If an agent is not available, the call is sent back to CVP for playing music-on-hold while the caller waits for an agent to become available.
Step 9
The information collected from the caller is preserved as call context on the call until the agent becomes available.
You can create a script such as the one shown in the following figure.
Figure 55. Packaged CCE Script with Call Flow
This simple script performs the following functions:
Executes the GetInfo Call Studio script on the VXML Server to collect some caller input based on the example callflow.
Based on caller input, queues for a sales or support agent
.
If an agent is not available, executes the MOH Call Studio script which will play music-on-hold to the caller until an agent becomes available.
Note
In a "real life" application, any Packaged CCE script you create would include error checking to ensure that micro-applications instructions are properly executed.
Packaged CCE Unified CVP Micro-App Connection
Before the Unified CVP can be accessible through the
Script Editor’s Run External Script node, you must first set up
Packaged CCE with special Unified CVP parameters using the Unified CCE Administration tool.
Begin by using the Packaged CCE Administration’s New Network VRU Script window to define Unified CVP
parameters.
Figure 56. New Network VRU Script Example
In the figure above:
PM,Welcome. (VRU Script Name field.) This means: "Use
the instructions in the Play Media micro-application to play the Welcome.wav
media file."
N. (Configuration Param
field.) This means: "Do not allow barge-in." (Barge-in is when the caller can
interrupt message play by entering a digit, causing the script to move to the
next prompt.)
You must check the
Interruptible checkbox as shown in the figure above. This
specification allows the script to be interrupted by the Unified CVP script
functions.
Note
As shown in the two columns of the following
table, certain entries for the VRU Script Name and Configuration Param fields
are case-sensitive.
Attribute
Allowed Values
Applies to
Case-Sensitive?
Attribute: VRU Script Name (for example, PM,
GD).
PM,
GD
All micro-applications
N
Attribute:
Media Library Type (A, S, V)
A, S, V
All micro-applications
N
Barge-in Allowed
Y/N
All micro-applications
N
Data playback type
Number,
Char
PlayData (PD)
N
Time Format
HHMM, HHMMSS,
HHMMAP
PlayData (PD)
N
Timeout Message
Override
Y/N
Get Digits (GD), Get
Speech (GS), Menu (M)
N
Invalid Entry
Message Override
Y/N
Get Digits (GD), Get
Speech (GS), Menu (M)
N
DTMF Termination
Key
N
All micro-applications
N
Media File Name
All micro-applications
Y
Once the network VRU script configuration settings have been saved, the
information is available to the Script Editor. When you place a Run External
Script node in the Script Editor workspace and open the Properties dialog box,
it displays all the script names defined in the system.
The Run
External Script node below shows that the ICM Script Name Play_Welcome was
selected.
Figure 57. Run External Script Node
Information Exchange Between Packaged CCE and Unified CVP
When Packaged CCE processes a Run External
Script node, parameters are sent to Unified CVP.
These parameters contain instructions about how to interact with
a caller, such as:
What micro-application to
use.
The location of the media files to be played to the
caller.
Timeout settings to be used during caller digit
entry.
Some CVP parameters are passed to Unified CVP
through Expanded Call Context (ECC) variables and/or Call.Peripheral variables.
Other parameters are sent in the normal VRU messaging interface
(Packaged CCE /CVP Service Control
Interface).
Packaged CCE Data Handling
In
defining scripts, you might specify strings, numbers, or formulas to be sent to
Unified CVP. When passing numbers to Unified CVP, always enclose them in quotes
so that they will be processed as a string.
This is
especially important if:
Leading 0’s are significant
to the data type (times, character), enter the number as a quoted string
(example: "031524").
Trailing 0’s after a decimal point
are significant to the data type (number, character, currency), enter the
number as a quoted string (examples: "42.00" or "42.10").
The number is very large (example: a number normally expressed through
exponential notation).
Unified CVP Script Error Checking
Unified CVP uses the
user.microapp.error_code ECC variable to return information
regarding problems encountered while running a script.
Unified CVP software tests for the following conditions when
processing Packaged CCE scripts:
ASR Error
Failure of an Advanced Speech Recognition
component.
General error
General error
occurred.
Invalid Configuration Param
Data passed from Packaged CCE to the CVP Service is not consistent with what
the micro-application requires for processing.
Invalid variable data
The variable data passed was not
valid for the script type being processed.
Invalid VRU Script Name format
VRU Script Name data
passed from Packaged CCE to the CVP Service does not contain the expected
components (micro-application name, media file name, media file type,
uniqueness value).
Locale
Locale was
not supported. (Only applies to Play Data micro-applications that use .wav
files. Does not apply to Play Data micro-applications that use TTS, or to Play
Media, Get Digits, Menu, Get Speech, or Capture
micro-applications.)
Misconfigured ECC
variable
An ECC variable was set to a value the CVP Service did not
recognize. ECC variable definitions must be the same in Packaged CCE and
Unified CVP.
Network Error
Failure of
an IP network connection.
Reached Maximum Invalid
Tries
Caller was unsuccessful in entering digits during each of the
tries allowed by the micro-application. (Only applies to Get Digits, Menu, and
Get Speech micro-applications.)
Reached Maximum
Number Entry Tries
Caller did not enter digits in response to the
prompt for each of the tries allowed by the micro-application. (Only applies to
Get Digits and Get Speech micro-applications.)
Semantic-Runtime
Semantic error occurred while running
a micro-application.
System Error
Unexpected failure of a Unified CVP component.
Timed Out
Caller did not enter digits in response to
the prompt in the time allowed by the micro-application.
TTS Error
Failure of a Text-to-Speech
component.
Unavailable Media file
Media
file name passed from Packaged CCE to the CVP Service did not exist on the
Media Server.
Unknown micro-application
Micro-application name passed from Packaged CCE to the CVP Service did not
exist on the CVP Service.
Unsupported
locale
The VoiceXML Interpreter (that is, gateway) did not recognize
the locale passed from the CVP Service.
Unsupported VoiceXML element
The VoiceXML Interpreter
(that is, gateway) did not recognize a VoiceXML element passed from the CVP
Service, VXML Server, or media server.
Unsupported VoiceXML format
The VoiceXML
Interpreter (that is, gateway) did not recognize a VoiceXML format passed from
the CVP Service, VXML Server, or media server.
Each Unified
CVP micro-application has individualized settings for
user.microapp.error_code, as shown in
the following table.
Table 3
Possible user.microapp.error_code ECC
Variable Settings for Non-Video
Error
Code
Play Media
Play
Data
Get
Digits
Menu
Get
Speech
Capture
0
No error
No
error
No error
No error
No error
No
error
1
Caller Hangup
Caller Hangup
Caller Hangup
Caller Hangup
Caller Hangup
N/A
2
Network
Error
Network Error
Network Error
Network Error
Network Error
N/A
3
System Error
System Error
System Error
System Error
System Error
System Error
5
Unknown micro-application
Unknown micro-application
Unknown micro-application
Unknown micro-application
Unknown micro-application
Unknown micro-application
6
Invalid VRU Script Name format
Invalid VRU Script Name format
Invalid VRU Script Name format
Invalid VRU Script Name format
Invalid VRU Script Name format
N/A
7
Invalid
Configuration Param
Invalid
Configuration Param
Invalid
Configuration Param
Invalid
Configuration Param
Invalid
Configuration Param
N/A
8
Misconfigured ECC variable
Misconfigured ECC variable
Misconfigured ECC variable
Misconfigured ECC variable
Misconfigured ECC variable
N/A
9
One of the following:
Media file does not exist.
Invalid URL for Media file.
One of
the following:
Media file does not exist
Invalid URL for Media L file
One of the following:
Media file does not exist
Invalid URL for
Media L file
One of the following:
Media file does
not exist
Invalid URL for Media L
file
One of
the following:
Media file does not
exist
Invalid URL for Media file
N/A
10
Semantic-Runtime Error
Semantic-Runtime
Error
Semantic-Runtime
Error
Semantic-Runtime
Error
Semantic-Runtime
Error
N/A
11
Unsupported VoiceXML format
Unsupported VoiceXML format
Unsupported VoiceXML format
Unsupported VoiceXML format
Unsupported VoiceXML format
N/A
12
Unsupported VoiceXML element
Unsupported VoiceXML element
Unsupported VoiceXML element
Unsupported VoiceXML element
Unsupported VoiceXML element
N/A
13
N/A
Variable data is
invalid
N/A
N/A
N/A
N/A
14
N/A
Location of variable data
is empty
N/A
N/A
N/A
N/A
15
N/A
Time format is
invalid
N/A
N/A
N/A
N/A
16
N/A
N/A
Reached Maximum Invalid Tries
Reached Maximum Invalid Tries
Reached Maximum Invalid Tries
N/A
17
N/A
N/A
Reached Maximum No Entry Tries
Reached Maximum No Entry Tries
Reached Maximum No Entry Tries
N/A
20
N/A
Data value out of
range
N/A
N/A
N/A
N/A
23
No answer
No
answer
No answer
No answer
No answer
N/A
24
Busy
Busy
Busy
Busy
Busy
N/A
25
General transfer
error
General transfer
error
General transfer
error
General transfer
error
General transfer
error
N/A
26
Invalid extension
Invalid
extension
Invalid
extension
Invalid
extension
Invalid
extension
N/A
27
Called party hung up
Called
party hung up
Called party hung
up
Called party hung
up
Called party hung
up
N/A
28
Error after transfer established
Error after transfer established
Error after transfer established
Error after transfer established
Error after transfer established
N/A
30
Unsupported locale
Unsupported locale
Unsupported locale
Unsupported locale
Unsupported locale
N/A
31
ASR
error
ASR error
ASR error
ASR error
ASR
error
N/A
32
TTS
error
TTS error
TTS error
TTS error
TTS error
N/A
33
General ASR/TTS error
General
ASR/TTS error
General ASR/TTS
error
General ASR/TTS
error
General ASR/TTS
error
N/A
34
Unknown error
Unknown
error
Unknown error
Unknown error
Unknown error
N/A
40
VXML Server system unavailable
N/A
N/A
N/A
VXML Server system unavailable
N/A
41
VXML Server
application error
N/A
N/A
N/A
VXML Server application error
N/A
42
VXML Server application
used hangup element instead of subdialog return element
N/A
N/A
N/A
VXML Server application used hangup element instead
of subdialog return element
N/A
43
VXML Server application is suspended
N/A
N/A
N/A
VXML Server application is suspended
N/A
44
VXML
Server session error (for example, application has not yet been
loaded)
N/A
N/A
N/A
VXML Server session error (for
example, application has not yet been loaded)
N/A
45
VXML Server
encounters a bad fetch error (for example, media or grammar file not found)
N/A
N/A
N/A
VXML Server encounters a bad fetch
error (for example, media or grammar file not found)
N/A
46
Audio
streaming error
N/A
N/A
N/A
N/A
N/A
Note
user.microapp.error_code is always zero, indicating
success, if control proceeds out the Checkmark (success) branch of the Run
External Script node. Usually, if control proceeds out the X (failure) branch,
Unified CVP sets this variable to one of the codes listed here. (Set up your
routing script to always test the error code after an X branch is
taken.)
Note
However, if a configuration error, or a network or
component failure of some sort, prevents the micro-application from being
executed at all, then Unified CVP does not get a chance to set this variable at
all. Such cases can be identified by using a Set node to pre-set
user.microapp.error_code to some known invalid value such as
-1, and then to test for that value using an If node, following the X branch of
the Run External Script node.
Writing Packaged CCE Applications for Unified CVP
Once Packaged CCE -to-Unified CVP initial setup is
complete, you can create Packaged CCE applications to access
Unified CVP micro-applications.
You do this using
two Packaged CCE software tools:
Unified CCE Administration
Packaged CCE Script Editor
The sections that follow give a brief overview of how to use these
tools to access Unified CVP functionality.
Within Packaged CCE Administration, select
Tools > List Tools> Network VRU Scripts.
Step 2
In the Network VRU Scripts window, enable
the Add button by clicking Retrieve.
Step 3
Click Add.
The Attributes property tab is enabled.
Step 4
Complete the Attributes tab as
described below.
Note
The format of the strings for the
VRU Script Name and Configuration Param
fields are very specific and vary for different
micro-applications (Play Media, Play Data, Get Digits, Menu, and Get
Speech).
Name. A unique name for the VRU script.
VRU Script
Name. A 39-character, comma-delimited string used by Unified CVP to
pass parameters to the CVP Service. The content of string depends on the
micro-application to be accessed. For more information on what to specify in
this field, refer to the following sections:
Timeout. The number of seconds Packaged CCE waits
for a response from the VRU after invoking the script before assuming that the
Unified CVP script has failed.
Note
This setting is designed to
detect VRU failures only; attempting to use it as a technique for interrupting
script processing can lead to unexpected results. Use the 180-second default or
lengthen the setting to a duration that is longer than the longest time the
script is expected to take.
Timeout. The number of seconds Packaged CCE waits
for a response from the VRU after invoking the script before assuming that the
Unified CVP script has failed.
Note
This setting is designed to
detect VRU failures only; attempting to use it as a technique for interrupting
script processing can lead to unexpected results. Use the 180-second default or
lengthen the setting to a duration that is longer than the longest time the
script is expected to take.
Interruptible.
(Checkbox.) Whether Packaged CCE can interrupt the script (for example, if a
routing target becomes available).
Description. Any additional information about the
script.
Step 5
When finished, click Save to apply your
changes.
Run External Script Node That Accesses a Unified CVP Micro-Application
Procedure
Step 1
Within
Script Editor, place the Run External Script object in the workspace,
right-click, and open the Properties dialog box.
The Run
External Script Properties dialog box lists all Network VRU scripts currently
configured
Note
The ICM Script Name column reflects the values defined
through the Name field in ICM Configuration Manager’s Scripts
tool.
Step 2
Select the
ICM Script/VRU
Script Name
you want to execute.
Step 3
Modify the Comments tab, if desired.
Step 4
Modify the Labels tab, if desired.
Step 5
When
finished, click OK to submit the changes and close the dialog
box.
Unified CVP Micro-Applications
The sections that follow
describe the parameters that can be defined through Unified CCE Administration for each of the six Unified CVP micro-applications.
Keep the following in mind as you configure each Network VRU
Script to be used with Unified CVP:
Each
micro-application parameter in fields of theNetwork VRU Script ’s Attributes tab must be separated by a comma.
If a parameter value is not specified, the micro-application uses its
default.
Unified CVP lets you use a single
micro-application and specify the prompt using call variables and the Packaged CCE
formula editor.
To provide dynamic audio file capability, set
the second VRU script parameter to a numeric value, 1-10, prefixed by a dash.
You then set the Media Library to either "A", "S", or "V". Unified CVP looks in
the corresponding Call.PeripheralVariable for the name of the audio file to
play.
When you set the Media Library to "A" or "S", Unified CVP
plays the audio file specified by the Call Variable after the "-(number)". For
example, if the second VRU Script Parameter is set to "-4", it plays the audio
file specified in Call.PeripheralVariable4. This functionality is added for
Play Media, Menu, and Get Digits micro-applications.
Note
When A is specified as the Media Library, it means CVP looks for the media file under the C:\inetpub\wwwroot\en-us\app folder by default and when S is specified, it looks under the C:\inetpub\wwwroot\en-us\sys folder by default.
Second VRU Script
Parameter
Corresponding Call
Variable
-1
to -10
Call.PeripheralVariable (1 to
10)
For an example of how to
use a dynamic audio file, see the following table.
VRU Script Parameter
Example
Definition
PM, -3,A
PM - Uses the Play Media
micro-application.
-3 - Plays the file specified
in Call.PeripheralVariable3.
A - Acquires the
file from the application media files folder (for example, C:\inetpub\wwwroot\en-us\app).
Notes
If you do not specify a file extension for the file name in the
Call.PeripheralVariable, the default media file extension is
applied (for example, .wav for audio files).
If you set the second VRU script parameter to a
value prefixed with a dash and don’t specify a file name in the corresponding
Call.PeripheralVariable, the CVP Service creates a VoiceXML that does not
contain a media prompt.
You can only specify the name of a
single file in the Peripheral Variable. You cannot set this value to a
name/value pair.
For more information, refer to the
sections on individual micro-applications in this
chapter.
Default Media Server for Micro-Applications
In
prior releases (before Unified CVP 8.5), the only way to specify a media server
for a micro-application was to use the ECC variable
user.microapp.media_server. You can now use the
Operations Console to designate a default media server for the entire
deployment.
The global default media server can be specified in
the Operations Console by selecting Device Management > Media
Server. The default media server is used by the
micro-applications if the ECC variable
user.microapp.media_server is missing or empty in
the Packaged CCE script.
The following list specifies the order in
which the micro-application tries to resolve which media server to use:
Media server is specified by the ECC variable:
user.microapp.media_server
Global default media server is specified
The first
non-empty media server value encountered in the above order is used by the
micro-application. This applies to all micro-applications including
Play Media (PM)
Play Data (PD)
Get Digits (PD)
Menu (M)
The
following screen shot shows the Packaged CCE script where Play Media
micro-application plays a media file using the ECC variable
user.microapp.media_server.
Figure 58. Packaged CCE Script with Play Media using ECC Variable
The following screen
shot shows the Packaged CCE script where Play Media micro-application plays a media file using a default media server configured in the Operations
Console.
Figure 59. Packaged CCE Script with Play Media Using Default Media Server
Capture Micro-Application
The Capture (CAP) micro-application allows you to trigger the storage of
current call data at multiple points in the Packaged CCE routing script. The CAP
micro-application must be configured as a VRU script, and it is executed using
a RunExternalScript node, just as with any other Unified CVP micro-application.
The VRU Script Name value is "CAP" or "CAP,xxx," where "xxx" is any arbitrary
string to be used if necessary for uniqueness purposes. There is no VRU Script
Config string.
Executing a Capture micro-application causes the
Packaged CCE PG to produce an intermediate termination record. Specifically, it writes a
record in the Termination_Call_Detail (TCD) table which includes all current
call variables (not the VRUProgress variable), router call keys, date and
time, and caller entered digits. Together with the TCD record, the
Capture micro-application writes a set of records to the
Termination_Call_Variable (TCV) table which includes the current values of all
ECC variables.
Packaged CCE provides no
standard reporting templates for TCD and TCV records. These tables are large and minimally indexed, and are optimized for writing rather than
querying, to minimally impact call handling throughput. If you plan to
report on this data, create off-hours extract processes which copy rows in
their raw format into a database which is external to Packaged CCE . From there you can
organize the tables in the way that best supports your querying
requirements.
Information you need about these records includes:
TCD records for a given call may be
identified because they contain the same RouterCallKeyDay and RouterCallKey.
Successive TCD records are ordered by incrementing
RouterCallKeySequenceNumber.
Intermediate TCD records may
be identified because they contain a CallDisposition of 53, "PartialCall". Only
the last TCD record for the call contains the actual disposition.
TCV records corresponding to a particular TCD record may be obtained
by joining on TCV.TCDRecoveryKey. This key matches the RecoveryKey value in the
TCD record.
As of Packaged CCE 6.0(0),
the TCD record’s CallTypeId is also populated for VRU peripherals. This means
you can determine the call’s current CallType at each Capture
micro-application invocation, and at the end of the call.
In Unified CVP Comprehensive call flow models, these records are
associated with the VRU leg peripheral. If you are doing VRU application
reporting, you can filter for TCD records which contain the
PeripheralID of the CVP VRU leg.
The Capture
micro-application places a heavy demand on Packaged CCE resources.
Each time you use it, Packaged CCE writes one TCD record and multiple TCV records.
Though it can conveniently capture the information you need, it can also capture extra information which you do not require. If you
overuse this micro-application, it can place a heavy load on Packaged CCE in terms of processing time and disk space, which despite the minimal indexing,
may impact Packaged CCE ’s ability to handle the expected call load. Carefully choose where you need to capture information in your scripts. Spread data items into as many call variables as possible to maximize the usefulness of each invocation.
Play Media Micro-Application
The Play Media (PM) micro-application can be configured to play a
message that is contained in a media file or streaming audio file.
Use Packaged CCE Administration’s Network VRU Scripts tool
to specify parameters.
Procedure
Step 1
Configure VRU Script
field parameters:
Micro-application type. For Play Media, valid options
are: PM or pm.
Media File Name. Name of the media file to be played
(that is, the prompt file) or the name of the external VoiceXML file.
The valid options are:
A file name (for instance, a .wav file).
null
- (default) If this field is empty, no prompt
is played.
-(number 1-10) -
Unified CVP plays the file in the corresponding Call.PeripheralVariable file.
For example, a value of 2 instructs Unified CVP to look at
Call.PeripheralVariable2.
-a - Unified CVP automatically generates the media
file name for agent greeting when this option is specified. The file name is
based on GED-125 parameters received from Packaged CCE .
Media
Library Type. Flag indicating the location of the media files to be
played.
The valid options are:
A - (default) Application
S - System
Uniqueness value. Optional. A string identifying a
VRU Script Name as unique.
Step 2
Configure the Configuration Param field parameters:
Barge-in Allowed.
Specifies whether barge-in (digit entry to interrupt media playback) is
allowed.
The valid options are:
Y - (default) barge-in allowed
N - barge-in not
allowed
Note
Voice barge-in is not supported by Play Media and Play Data
micro-applications. However, Dual Tone Multifrequency
(DTMF) barge-in is supported for these
micro-applications.
RTSP Timeout. Specifies the Real-time Streaming
Protocol (RTSP) timeout - in seconds - when RTSP is used.
The valid
range is 0 - 43200 seconds (default is 10 seconds). If the value is set to 0 or
a timeout value is not provided, the stream does not end.
See
How to Configure the Play Media Micro-Application to Use Streaming Audio for more
details.
Type-ahead Buffer Flush. The
Cisco VoiceXML implementation includes a type-ahead buffer that holds DTMF
digits collected from the caller. When the VoiceXML form interpretation
algorithm collects user DTMF input, it uses the digits from this buffer before
waiting for further input. This parameter controls whether the type-ahead
buffer is flushed after the prompt plays out. A false value (default) means
that the type-ahead buffer is not flushed after the prompt plays out. If the
prompt allows barge-in, the digit that barges in is not flushed.
The valid options are
Y - flush the type-ahead buffer
N - (default) do not flush the type-ahead
buffer
Note
This parameter is normally used when two or more PM and/or PD
microapps are used in a loop in the CCE script (such as while in queue for an
agent). If the PM and/or PD microapps are enabled for barge-in, one would set
this parameter to Y to prevent an uncontrolled looping in the
CCE script when the user barges
in.
How Unified CVP Handles Barge-In
Unified CVP deals with barge-in as follows:
If barge-in is not allowed, the gateway continues prompt play when a caller starts entering digits.
If barge-in is allowed, the gateway discontinues prompt play when the caller starts entering digits. See Get Speech and External VoiceXML
Configure Play Media Micro-Application to Use Streaming Audio
Use
the CCE Script Editor to configure Play Media (PM) micro-application to play
.wav files from a streaming audio server.
Cisco does not sell,
OEM, or support any Media Servers. The IOS gateway only supports
µ-law wav files in 8-bit format. Media Servers such as RealNetwork's Helix
Server will serve RTSP broadcast audio streams in the µ-Law format.
Note
The IOS gateway only supports µ-law wav files
in 8-bit format.
You must enclose the stream URL and stream name
values in quotation marks.
Procedure
Step 1
Add a
Set Node in the script to configure the media_server ECC variable.
On the Set Variable tab of
the Set Properties dialog box, select Call from the Object
Type drop down and then set the Variable to
user.microapp.media.server.
In the Value
field, specify the URL up to, but not including, the stream name.
Note
The URL must begin with an rtsp:// prefix (Real-time
Streaming Protocol) to stream audio over the network. A trailing forward slash
is not permitted in the URL.
Click OK.
Step 2
Add another Set Node in the
script to configure the stream name.
On the Set Variable tab of the Set
Properties dialog box, select Call from the Object Type drop down and set the
Variable to PeripheralVariable<1>.
The
range for standard CCE Peripheral Variables is PeripheralVariable1 through
PeripheralVariables10.
In the Value field,
specify the stream name and click OK.
Note
Stream
names are case-sensitive.
Step 3
Add a
Run External Script node to the workspace and double-click Run External Script.
The Run External Script Properties dialog box
lists all of the Network VRU scripts that are currently configured.
Note
In the example above,
the CVP_RTSPStream_Forever script's external script name contains four
parameters: PM, -1, A, 5. The second parameter, -1, instructs
CVP to play the stream name declared in PeripheralVariable1
(shown in Step 2). It is recommended that you configure streaming audio
following the steps outlined so that you may easily change the stream name
within the Script Editor, if necessary.
You can also use the Run
External Script node in the CCE Script Editor to configure CCE to failover to a
new streaming server. For example, if you want to point to an alternate
streaming server (IP address), use the X-path out of the Run External
Script node to redefine the media_server ECC variable. In a failover situation,
the script executes and the stream plays from the targeted streaming server and
proceeds normally.
Step 4
From the Run
VRU Script tab, select the CCE Script Name desired and click
OK.
Step 5
Optionally, you can use the Packaged CCE Administration's Network VRU Scripts tool to
configure the timeout value for the stream.
Configure the Configuration Param field parameter:
In
the RTSP Timeout field, enter a timeout value (in seconds).
The valid range is 0 - 43200
seconds.
If the value is set to 0 or a
timeout value is not provided the stream does not
end.
Step 6
Access
the IOS device in global configuration mode and use the
rtsp client
timeout connect
command to set the number of seconds the router waits
before it reports an error to the Real-time Streaming Protocol (RTSP) server.
The range is 1 to 20. The recommended value is 10
seconds.
If the SIP Call with CVP
Service is Terminated with Reason Code: Q.850;Cause=38 then be
sure that the network interface configuration is as follows:
ip route-cache same-interface
ip route-cache cef
ip route-cache
ip mroute-cache
no cdp enable
If specified, remove the following line from the network
interface:
keepalive 1800
This issue arises if the Unified CVP loses network
connectivity, then the VXML Server Gateway is not able to get information from
the CVP Service, and as a result a code 38 rejection is generated in the
Gateway logs.
You can configure custom ringtone patterns that enable you to
play an audio stream to a caller in place of the usual ringtone. Customized
streaming ringtones are based on the dialed number destination and, when
configured, play an in-progress broadcast stream to the caller while the call
is transferred an agent.
Play Media Examples: Play Welcome Message
The following table shows some Network VRU Script configuration
examples for Play Media.
Table 4 Network VRU Script configuration
examples
Example
Field Name
Field
Contents
Tells Unified
CVP...
1
VRU Script Name
PM,Welcome
To
use the Play Media (PM) micro-application to play the "Welcome.wav" Media file
and accept the defaults for remaining settings.
Note
If no file
extension is specified, .wav is assumed.
Configuration Param
N
That Barge-in is not
allowed.
2
VRU Script Name
pm,July,S
To use the Play Media (PM) micro-application to
play the "July.wav" Media file, using the System (S) Media
library.
Configuration
Param
Null (Accept
default.)
That Barge-in
is allowed.
3
VRU Script Name
PM,WebSite,,0
To use the Play Media (PM) micro-application to play the "Website.wav"
Media file, using the default Media Type (Application library), and setting
0 as the Uniqueness value.
Note
A
,
(comma) indicates a skipped parameter. When a parameter is skipped,
Unified CVP applies its default.
Configuration Param
Null (Accept
default.)
That Barge-in
is allowed.
4
VRU Script Name
PM,WebSite,,1
To use the Play Media (PM) micro-application to
play the "Website.wav" Media file, using the default Media Type (Application
library), and setting 1 as the Uniqueness
value.
Configuration
Param
N
That
Barge-in is not allowed.
5
VRU Script Name
PM, -3, A
To use the Play Media (PM) micro-application, using
the file listed in Call.PeripheralVariable3, acquiring the file from the
Application (A) media library.
Configuration Param
N
That Barge-in is not allowed.
6
VRU Script Name
PM, stream.rm
To use the Play Media (PM) micro-application to
play "stream.rm" from a streaming audio server and accept the defaults for
remaining settings.
Configuration Param
N, 30
That
Barge-in is not allowed, and the stream is configured to
stop playing in 30 seconds.
Note
Play Media sets the ECC variable
user.microapp.error_code to zero, indicating success, if
control proceeds out the Checkmark (success) branch of the Run External Script
node. If control proceeds out the X (failure) branch, Play Media typically sets
this variable to one of the codes listed in
Unified CVP Script Error Checking.
Play Data Micro-Application
The Play Data micro-application retrieves data from a storage area
and plays it to the caller in a specific format, called a data play
back type.
Some possible sources of the
data to be played back:
Before this micro-application can be called, you must specify the
location of the play back data. You do this with a Script Editor Set node that
points to one of the following storage areas:
One of the standard Packaged CCE Peripheral Variables (PeripheralVariable1
through PeripheralVariables10).
The
user.microapp.play_data
elements.
Configure Network VRU Script Settings for Play Data Micro-Application
Use
the CCE Configuration Manager’s Network VRU Script rtool’s Attributes tab
to specify parameters.
Note
Voice
barge-in is not supported by Play Media and Play Data micro-applications.
However, DTMF barge-in is supported for these micro-applications.
If you are using integers that are larger than nine digits, enclose the
value in quotation marks, so it will be treated as a
string.
Procedure
Step 1
Configure VRU Script
field parameters:
Micro-application type. For Play Data, valid options
are: PD or pd.
Data Playback Type. The type of the data to be returned
("played") to the caller. The valid options are:
Number
Char (character)
Date
Etime
(elapsed time)
TOD
(Time of Day)
24TOD (24-hour Time of Day)
DOW (Day of Week)
Currency
Note
24TOD and DOW data play back types are not supported when using TTS.
Currency other than US dollar (USD) is not supported.
For
more information about each of these playback types, including input format and
output examples, see Play Back Types for Voice Data.
Uniqueness value.
Optional. A string identifying a VRU Script Name as
unique.
Step 2
Configure the
Configuration Param field parameters:
Location of the data to be
played
. The valid options are:
null (default) - If you leave this option
empty, uses the ECC variable user.microapp.play_data.
A number representing a
Call Peripheral Variable number (for example, a 1 to represent
Call.PeripheralVariable1).
Time
Format
Valid only for the time Data Playback types
(Etime, TOD, 24TOD).
The available formats
are:
null - leave this
option empty for non-time formats
HHMM - default for time formats
HHMMSS - includes seconds
HHMMAP - includes am or pm; valid only for
TOD
Type-ahead Buffer
Flush
. The Cisco VoiceXML implementation includes a type-ahead buffer
that holds DTMF digits collected from the caller. When the VoiceXML form
interpretation algorithm collects user DTMF input, it uses the digits from this
buffer before waiting for further input. This parameter controls whether the
type-ahead buffer is flushed after the prompt plays out. A false value
(default) means that the type-ahead buffer is not flushed after the prompt
plays out. If the prompt allows barge-in, the digit that barges in is not
flushed.
The valid options are:
Y - flush the type-ahead buffer
N - (default) do not flush
the type-ahead buffer
Note
This parameter is only applicable when using
the Cisco IOS gateway with DTMF barge-in. This parameter is normally used when two or more PM and/or
PD microapps are used in a loop in the CCE script (such as while in queue for
an agent). If the PM and/or PD microapps are enabled for barge-in, one would
set this parameter to Y to prevent an uncontrolled looping in
the CCE script when the user barges in.
Play Back Types for Voice Data
Configuring how voice data is presented to a caller is an important part
of setting up your Unified CVP. The "Data Play Back Types" table below
describes each type, along with sample valid values and formats for the
supported locales when not using TTS:
en-us. English (United States)
en-gb. English (Great Britain)
es-mx. Spanish (Mexico)
es-es. Spanish (Spain)
Locale is
selected by setting the user.microapp.locale variable.
Any string of characters
typically used in the language may need to be spoken back character by
character (this includes special keyboard symbols and numbers). If a particular
symbol is not used by a particular language, a string containing that symbol may be spelled out with a Play Data with
Char data type.
For example, assume that an CVP application in the
US (a locale of en-us) queries a database for an account
owner’s name and spells the name back to the caller. If the name pulled from
the database was "Hänschen Walther," the media files that would need to be
pulled from the Media Server would have been derived from a URL including the
en-us locale. The symbol ä has a decimal
value of 228, which is different than the symbol a which has a value of 97. It
is the translator’s task to record the proper word(s) for each symbol to be
supported. For detailed information on character translation, refer to
"System Media Files."
Table 5
Data Play Back Types
Data Play Back
Type
Description
Input
Format
Output Examples
(When Not Using TTS)
Number
Play the stored data as a
number.
-###############.######
The leading minus (-) is optional
and is played as "minus."
The whole number portion of the string
can contain a maximum of 15 digits (for a maximum value of 999 trillion, 999
billion and so on).
The decimal point is represented as a period
(.) and played as "point." It is optional if there is no floating portion.
The floating point portion of the number is optional and can
contain a maximum of six digits.
Trailing zeros are
played.
en-us and
en-gb typical spoken form:
-123 = "minus one hundred twenty three"
35.67
= "thirty five point six seven"
1234.0 = "one thousand,
two hundred, thirty four point zero"
es-mx and es-es typical spoken form:
-120 = "menos ciento veinte"
10.60 = "diez
coma seis cero"
1,100 = "mil
cien"
Char
Play the
stored data as individual characters.
All printable American National
Standards Institute (ANSI) characters are supported.
Note
Code Page
1252 is ANSI standard. It contains ASCII (characters 0-127) and extended
characters from 128 to 255
en-us and en-gb typical spoken form:
abc123= "A, B, C, one, two, three"
es-mx and es-es typical spoken form:
abc123 = "A, B, C, uno, dos, tres"
Date
Play the stored data as a
date.
YYYYMMDD,
regardless of locale.
YYYY options: the range of
1800 through 9999.
MM options: the range of 01
through 12.
DD options: the range of 01 through
31.
Note
The software does not validate the date (for example, 20000231
is valid and played accordingly). However, a failure occurs if any bounds are
broken (for example, 34 for month).
en-us typical spoken form:
MMDDYYYY format: 20000114 = "January fourteenth, two thousand"
en-gb typical spoken form:
DDMMYYYY format: 20000114 = "Fourteenth of January, two thousand"
es-mx and es-es
typical spoken form:
DDMMYYYY format: 20001012 = "doce octubre dos mil"
Note
All spoken forms use the proper grammar for the
locale.
Etime
(elapsed time)
Play the
stored data as an amount of elapsed time.
The following tables describe the English System Media Files
installed by Unified CVP. These system media files are intended as samples
only. It is the Customer/Media Administrator’s responsibility to record all the
system prompts for all the locales.
The table that follows lists
the System Media File information for cardinal numbers.
Table 6
System Media Files, Cardinal
Numbers
Symbol (where applicable)
Decimal Value
Media File Name
Media File Content
Data Play Back Types / When Media
File Is Used
point
point
Number
minus
minus
Number
0
48
0
zero
All except
DOW
1
49
1
one (masculine version), uno
(es-mx and es-es)
All except
DOW
2
50
2
two
All except DOW
3
51
3
three
All
except DOW
4
52
4
four
All except
DOW
5
53
5
five
All except DOW
6
54
6
six
All
except DOW
7
55
7
seven
All except
DOW
8
56
8
eight
All except DOW
9
57
9
nine
All
except DOW
10
ten
Same
for the rest of all the numbers
11
eleven
12
twelve
13
thirteen
14
fourteen
15
fifteen
16
sixteen
17
seventeen
18
eighteen
19
nineteen
20
twenty
21
twenty-one
22
twenty-two
23
twenty-three
24
twenty-four
25
twenty-five
26
twenty-six
27
twenty-seven
28
twenty-eight
29
twenty-nine
30
thirty
31
thirty-one
32
thirty-two
33
thirty-three
34
thirty-four
35
thirty-five
36
thirty-six
37
thirty-seven
38
thirty-eight
39
thirty-nine
40
forty
41
forty-one
42
forty-two
43
forty-three
44
forty-four
45
forty-five
46
forty-six
47
forty-seven
48
forty-eight
49
forty-nine
50
fifty
51
fifty-one
52
fifty-two
53
fifty-three
54
fifty-four
55
fifty-five
56
fifty-six
57
fifty-seven
58
fifty-eight
59
fifty-nine
60
sixty
61
sixty-one
62
sixty-two
63
sixty-three
64
sixty-four
65
sixty-five
66
sixty-six
67
sixty-seven
68
sixty-eight
69
sixty-nine
70
seventy
71
seventy-one
72
seventy-two
73
seventy-three
74
seventy-four
75
seventy-five
76
seventy-six
77
seventy-seven
78
seventy-eight
79
seventy-nine
80
eighty
81
eighty-one
82
eighty-two
83
eighty-three
84
eighty-four
85
eighty-five
86
eighty-six
87
eighty-seven
88
eighty-eight
89
eighty-nine
90
ninety
91
ninety-one
92
ninety-two
93
ninety-three
94
ninety-four
95
ninety-five
96
ninety-six
97
ninety-seven
98
ninety-eight
99
ninety-nine
oh
oh
24TOD, Date
hundred
hundred
Number, 24TOD, Date, Currency
thousand
thousand
Number, Date,
Currency
million
million
Number, Currency
billion
billion
Number, Date, Currency
trillion
trillion
Number, Currency
The
table that follows lists the System Media File information for ordinal
numbers.
Note
If ordinal system prompts are to be used in a script for a
purpose other than dates, they should be recorded as application prompts with
the true ordinal values.
Table 7
System Media Files, Ordinal Numbers
Symbol (where
applicable)
Decimal Value
Media File Name
Media File Content
Data Play Back Types / When Media
File Is Used
1ord
first
Date
2ord
second
Date for all ordinal
numbers
3ord
third
4ord
fourth
5ord
fifth
6ord
sixth
7ord
seventh
8ord
eighth
9ord
nineth
10ord
tenth
11ord
eleventh
12ord
twelveth
13ord
thirteenth
14ord
fourteenth
15ord
fifteenth
16ord
sixteenth
17ord
seventeenth
18ord
eighteenth
19ord
nineteenth
20ord
twentieth
21ord
twenty-first
22ord
twenty-second
23ord
twenty-third
24ord
twenty-fourth
25ord
twenty-fifth
26ord
twenty-sixth
27ord
twenty-seventh
28ord
twenty-eight
29ord
twenty-nineth
30ord
thirtieth
31ord
thirty-first
The table that
follows lists the System Media File information for measurements.
Table 8
System Media Files,
Measurements
Symbol (where applicable)
Decimal Value
Media File Name
Media File Content
Data Play Back Types / When Media
File Is Used
½
189
one_half
one half
Char
¼
188
one_quarter
one quarter
Char
¾
190
three_quarters
three quarters
Char
A,
a
65,97
a
A
Char
B,b
66,98
b
B
Char
C,
c
67,99
c
C
Char
D, d
68,100
d
D
Char
E,
e
69,101
e
E
Char
F, f
70,102
f
F
Char
G,
g
71,103
g
G
Char
H, h
72,104
h
H
Char
I,
I
73,105
I
I
Char
J, j
74,106
j
J
Char
K,
k
75,107
k
K
Char
L, l
76,108
l
L
Char
M,
m
77,109
m
M
Char
N, n
78,110
n
N
Char
O,
o
79,111
o
O
Char
P, p
80,112
p
P
Char
Q,
q
81,113
q
Q
Char
R, r
82,114
r
R
Char
S,
s
83,115
s
S
Char
T, t
84,116
t
T
Char
U,
u
85,117
u
U
Char
V, v
86,118
v
V
Char
W,
w
87,119
w
W
Char
X, x
88,120
x
X
Char
Y,
y
89,121
y
Y
Char
Z, z
90,122
z
Z
Char
Œ, œ
140,156
oe_140_156
Ligature
OE
Char
À,à
192,224
a_192_224
A
grave
Char
Á,á
193,225
a_193_225
A acute
Char
Â,â
194,226
a_194_226
A
circumflex
Char
Ã,ã
195,227
a_195_227
A
tilde
Char
Ä,ä
196,228
a_196_228
A
umlaut
Char
Å,å
197,229
a_197_229
A with ring
above
Char
Æ,æ
198,230
ae_198_230
Ligature AE
Char
È,è
200,232
e_200_232
E
grave
Char
É,é
201,233
e_201_233
E acute
Char
Ê,ê
202,234
e_202_234
E
circumflex
Char
Ë,ë
203,235
e_203_235
E
umlaut
Ì,ì
204,236
i_204_236
I
grave
Char
Í, í
205,237
i_205
I acute
Char
Î,î
206,238
i_206
I circumflex
Char
Ï,ï
207,239
i_207
I
umlaut
Char
Ð
208
char_208
character 208
Char
ð
240
char_240
character 240
Ò,ò
210,242
o_210_242
O
grave
Char
Ó,ó
211,243
o_211_243
O
acute
Char
Ô,ô
212,244
o_212_244
O
circumflex
Char
Õ,õ
213,245
o_213_245
O
tilde
Char
Ö,ö
214,246
o_214_246
O
umlaut
Char
x
215
multiply
multiplication sign
Char
Ø,ø
216,248
o_216_248
oh
stroke
Char
Ù,ù
217,249
u_217_249
U
grave
Char
Ú,ú
218,250
u_218_250
U
acute
Char
Û,û
219,251
u_219_251
U
circumflex
Char
Ü,ü
220,252
u_220_252
U
umlaut
Char
Ý,ý
221,253
y_221_253
Y
acute
Char
Þ
222
char_222
character 222
Char
ß
223
ss
double s
Char
÷
247
divide
division sign
Char
þ
254
char_254
character 254
Char
Ÿ,ÿ
159,255
y_159_255
character 159 or 255
Char
The table that
follows lists the System Media File information for month values.
Table 9
System Media Files,
Months
Symbol (where applicable)
Decimal Value
Media File Name
Media File Content
Data Play Back Types / When Media
File Is Used
January
January
Date
February
February
Date
March
March
Date
April
April
Date
May
May
Date
June
June
Date
July
July
Date
August
August
Date
September
September
Date
October
October
Date
November
November
Date
December
December
Date
The table that follows lists the System Media File information for month
values.
Table 10
System Media
Files, Days
Symbol (where
applicable)
Decimal Value
Media File Name
Media File Content
Data Play Back Types / When Media
File Is Used
Sunday
Sunday
DOW
Monday
Monday
DOW
Tuesday
Tuesday
DOW
Wednesday
Wednesday
DOW
Thursday
Thursday
DOW
Friday
Friday
DOW
Saturday
Saturday
DOW
The table that follows lists the System Media File information for month
values.
Table 11
System Media Files,
Time
Symbol (where applicable)
Decimal Value
Media File Name
Media File Content
Data Play Back Types / When Media
File Is Used
hour
hour
Etime, 24TOD per locale, TOD per
locale
hours
hours
Etime,24TOD per locale,TOD per locale
minute
minute
Etime
minutes
minutes
Etime
second
second
Etime,24TOD
seconds
seconds
Etime,24TOD
on
on
per locale(unused for en-us)
at
at
per
locale(unused for en-us)
am
am
TOD
pm
pm
TOD
oclock
oclock
TOD
The table that
follows lists the System Media File information for currency values.
Note
The customer’s Media Administrator may prefer to replace the contents of
"currency_minus" (for the negative amount) and "currency_and" (the latter can
even be changed to contain silence).
Table 12
System Media Files,
Currency
Symbol (where applicable)
Decimal Value
Media File Name
Media File Content
Data Play Back Types / When Media
File Is Used
currency_ minus
minus
Currency
currency_and
and
Currency
$
36
USD_dollar
dollar
Currency
USD_dollars
dollars
Currency
Note
Unified CVP uses the USD_dollar.wav
and USD_dollars.wav media files; the dollar.wav and dollars.wav used by ISN
Version 1.0 are no longer installed.
$
36
CAD_dollar
dollar
Currency
CAD_dollars
dollars
Currency
HKD_dollar
dollar
Currency
HKD_dollars
dollars
Currency
¢
162
cent
cent
Currency
cents
cents
Currency
euro
euro
Currency
£
163
GBP_pound
pound
Currency
GBP_pounds
pounds
Currency
penny
penny
Currency
pence
pence
Currency
MXN_peso
peso
Currency
MXN_pesos
pesos
Currency
centavo
centavo
Currency
centavos
centavos
Currency
The table
that follows lists the System Media File information for gaps of silence and
miscellaneous phrases.
Table 13 System Media Files, Silence and Miscellaneous Phrases
Symbol (where applicable)
Decimal Value
Media File Name
Media File Content
Data Play Back Types / When Media File Is Used
silence_.1_ sec
(.1 second of silence)
Used for pauses where
needed
silence_.25_ sec
(.25 second of silence)
Used for pauses where needed
silence_.5_ sec
(.5 second of
silence)
Used for pauses where
needed
silence_1_sec
(1 second of silence)
Used for pauses where needed
and
and
Etime,TOD,25TOD
The
table that follows lists the System Media File information for ANSI
characters.
HHMM - Play the time in HHMM format (for example, 8
hours, 30 minutes).
PD,Date
PD - Use the Play Data micro-app.
Date - Play back the data as a
Date.
1,N
1 - Play the data in Call Variable 1 as a date.
N - No barge-in allowed.
PD,Currency
PD - Use the Play Data micro-app.
Currency - Play back the data as a
Currency.
4,N
4 - Play the data in Call Variable 4 s currency.
N - No barge-in
allowed.
Note
Play Data sets the
ECC variable user.microapp.error_code to zero, indicating
success, if control proceeds out the Checkmark (success) branch of the Run
External Script node. If control proceeds out the X (failure) branch, Play Data
typically sets this variable to one of the codes listed in
Unified CVP Script Error Checking.
Get Digits Micro-Application
The Get Digits (GD) micro-application plays a media file and
retrieves digits. For example, you could use Get Digits in an application that
prompts a caller to enter a password.
Unified Customer Voice
Portal passes the retrieved digits back to Packaged CCE for
further processing using the Caller-Entered Digits (CED) field in the CCE/CVP
Messaging interface. (This is available in the Packaged CCE script through the
variable Call.CallerEnteredDigits).
Configure Network VRU Script Settings for Get Digits Micro-Application
Use the Packaged CCE Administration’s Network VRU Script tool to specify parameters.
Procedure
Step 1
Configure VRU Script field parameters:
Micro-application
type. For Get Digits, valid options are: GD or
gd.
Media File Name.
Name of the media file to be played (that is, the prompt
file). The valid options are:
A file name (for instance, a .wav file).
Note
The file
name is case-sensitive.
null - (default) If this field is empty, no prompt is played.
-(number 1-10) - Unified CVP plays the file in the
corresponding Call.PeripheralVariable file. For example, entering -2 causes
Unified CVP to look at
Call.PeripheralVariable2.
Media Library Type
. Flag indicating the location of the media files to
be played. The valid options are:
A - (default) Application
S - System
Uniqueness value. Optional. A string identifying a VRU
Script Name as unique.
Step 2
Configure
the Configuration Param field parameters:
Minimum Field Length.
Minimum number of digits expected from the caller. The valid options are:
1-32 (the default is 1)
Maximum Field Length. Maximum number of digits expected
from the caller. The valid options are: 1-32 (the default is
1).
Unified CVP deals with barge-in as
follows: If barge-in is not allowed, the SIP/Gateway
continues prompt play when a caller starts entering digits. If barge-in
is allowed, the Gateway discontinues prompt play when the
caller starts entering digits. See Get Speech and External VoiceXML.
Inter-digit
Timeout
. The number of seconds the caller is allowed between entering
digits. If exceeded, the system times-out. The valid options are:
1-99 (the default is 3).
No Entry
Timeout
. The number of seconds a caller is allowed to begin entering
digits. If exceeded, the system times-out. The valid options are:
0-99 (the default is 5).
Number of No Entry Tries. Unified CVP repeats the "Get
Digits" cycle when the caller does not enter any data after the prompt has been
played. (Total includes the first cycle.) The valid options are:
1-9 (the default is 3).
Number of Invalid Tries. Unified CVP repeats the "Get
digits" cycle when the caller enters invalid data (total includes the first
cycle). The valid options are: 1-9 (default is
3).
Timeout Message
Override
. The valid options are:
Y - override the system default with a
pre-recorded Application Media Library file
N - (default) do not override the system
default
Invalid Entry Message Override. The
valid options are:
Y - override the system default with a
pre-recorded Application Media Library file.
N - (default) do not override the system
default
Note
For more information about Timeout and Invalid Entry Messages,
see System Media Files.
DTMF Termination
Key. A single character that, when entered by the caller, indicates
that the digit entry is complete. The valid options are:
Incomplete Timeout. The amount of
time after a caller stops speaking to generate an invalid entry error because
the caller input does not match the defined grammar. The valid options are:
0-99 (the default is 3).
Note
If the value is set to 0, the CVP Service
treats the NoEntry Timeout as NoError.
Get Digits Configuration Examples
The following table shows several configuration examples
for Get Digits for an application that prompts using .wav files and retrieves
input through DTMF.
Table 16
Get
Digits configuration examples
for .wav files
If the VRU Script Name field setting is…
It means…
If the Configuration Param field setting
is…
It
means…
GD,Password,A,0
GD - Use the Get Digits micro-app.
Password - Play the Media file named
"Password.wav."
A - Application Media Library.
0 - Uniqueness value.
6,12
6 - Minimum field
length
12 - Maximum field length
Accept defaults for all other settings.
GD,Password,A,1
gd - Use the Get
Digits micro-app.
Password - Play the Media file
named "Password.wav."
A - Application Media
Library.
1 - Uniqueness value.
6,12,N,3,5,2,2,N,Y,#
6 - Minimum field length
12 - Maximum field length
N - No barge-in allowed
3
- Inter-digit Timeout (seconds)
5 - No Entry
Timeout (seconds)
2 - Number of no entry tries
2 - Number of invalid tries
N - Timeout Msg Override
Y - Invalid Entry Msg Override
# - DTMF Termination key
Note
The two examples above both play the
Password.wav file ("Please enter your password followed by the pound sign.")
and collect digits. They differ in that the first example accepts most of the
default settings available through the Configuration Param field; the second
field does not.
GD,ssn
GD -
Use the Get Digits micro-app.
ssn - Play the
Media file named "ssn.wav."
9,9,
9 -
Minimum field length
9 - Maximum field length
Accept defaults for all other settings.
Note
Type-ahead can only be used with the
Get Digits micro-application when user.microapp.input_type is
set to D. See Get Speech and External VoiceXML.
GD, -4, S
gd - Use the Get Digits
micro-app
-4 - Calls the file specified in
Call.PeripheralVariable4
S - Acquires the file
from the System media library
You can use the Get Speech micro-application to pass information to and
from an external VoiceXML file. The following table describes how to set the
Get Speech script to use external VoiceXML.
To set up the Get
Speech micro-application to use external VoiceXML, set the Media Library
Type to "V". The CVP Service creates VoiceXML that calls the external VoiceXML
that is specified in the external VoiceXML file name. The URL to the external
VoiceXML is formed from a combination of the media_server, locale,
App_Media_Lib and external VoiceXML file name. If the VoiceXML file name does
not contain a file extension, the default "*.VoiceXML" is used.
If the external VoiceXML is used, the only GetSpeech VRU Script
parameters that are used are:
"Number of Invalid
Entry" errors, and
"Number of No Entry"
errors.
The CVP Service "NoEntry" and "InvalidEntry"
retry logic are used if the external VoiceXML returns a <noinput> or
<nomatch> event.
Error handling
Error handling
The error handling for an external VoiceXML called
from the Get Speech micro-application includes the following:
If you set the "Media Library Type" to "V" and you do not set an
"External VoiceXML Name" parameter, an "Invalid VRU Script Name" error is
returned to Packaged CCE
.
Get Digits and Digit Entry Completion
Unified
CVP tests GD digit entry input against several conditions to determine whether
digit entry is complete.
Unified CVP considers digit
entry to be complete if the caller enters any of the following:
The maximum allowable number of digits (when terminator key is not
used).
The maximum number of digits, excluding a
terminator key.
Less than
the maximum number of digits, followed by the terminator key.
Less than the maximum number of digits and exceeding the inter-digit
timeout.
Nothing and reaching the no entry
timeout.
Caution
It is important that you set up your
Packaged CCE script to test for all the scenarios mentioned
below.
If Digit Entry Input is Complete
After digit-entry input is complete, Unified CVP
validates the digit string to determine if it is >= (greater than or equal
to) the minimum length and <= (less than or equal to) the maximum length.
In variable-length data entry, the Maximum Field Length value does
not accommodate the termination key. For example, if a GD micro-application is
configured to accept a password that is between 6 and 12 digits long and
digit-entry completion is indicated through a termination key (or a timeout),
the Minimum Field Length setting would be 6, the Maximum Field
Length setting would be 12, and the DTMF Termination Key is defined as a single character.
Before passing the result back
to the CVP Service, SIP Service discards the termination key (only the password digits are included in the CED returned to
Packaged CCE ).
Note
In this example, if the 13th
digit is entered without reaching the interdigit timeout and the 13th digit is
not the terminator key, the extra digits are buffered by the gateway VXML
browser and will be consumed by the next digit collecting node (for example: GD
or Menu micro-app).
After validating the digit string, Unified CVP
does the following:
If the string is valid, Unified
CVP stores the digit string (not including the terminator key) in the
Call.CallerEnteredDigits variable, exits the node through the Checkmark
(success) branch, and returns control to Packaged CCE
software.
If the string is not valid, Unified CVP
considers it an invalid entry and does the following:
If the Number of Invalid Entry Tries value is not
reached, Unified CVP plays an error message and re-plays the original
prompt.
If the Number of Invalid Entry Tries
value is reached, Unified CVP stores the last-entered digit string in the
Call.CallerEnteredDigits variable, exits the node through the X (failure)
branch, sets the user.microapp.error_code ECC variable to
16 (Reached Maximum Invalid Tries), and returns control to
Packaged CCE .
If No Entry Timeout Occurs
If the
caller does not enter input and No Entry Timeout period is exceeded, the
following happens:
If the Number of No Entry Tries value has not been reached, Unified
CVP plays the "no entry" error message and re-plays the original
prompt.
If the Number of No Entry Tries value has been
reached, Unified CVP exits the node through the X (failure) branch, sets the
Call.CallerEnteredDigits variable to NULL, the
user.microapp.error_code ECC variable to 17
(Reached Maximum No Entry Tries), and returns control to Packaged CCE .
Menu Micro-Application
This micro-application plays a menu media file and retrieves a defined
digit. (Menu is similar to the Get Digit micro-application except that it only
accepts one digit, which it checks for validity.)
Unified CVP
passes the retrieved digit back to Packaged CCE for further
processing using the Caller-Entered Digits (CED) field in the Packaged CCE / CVP Messaging
interface.
Configure Network VRU Script Settings for the Menu Micro-Application
Use the Packaged CCE Administration Network VRU Script tool to specify parameters.
Procedure
Step 1
Configure VRU Script field parameters:
Micro-application
type
. For Menu, valid options are: M or
m.
Media File Name.
Name of the media file to be played (that is, the prompt
file). The valid options are
A file name (for instance, a .wav file)
Note
The file
name is case-sensitive.
null - (default) If this field is empty, Unified CVP
examines the contents of the user.microapp.inline_tts ECC
variable. If this ECC variable contains a value, Unified CVP prompts using TTS.
If the ECC is empty, no prompt is played.
-(number 1-10) - Unified CVP plays the file in the
corresponding Call.PeripheralVariable file. For example, entering -2 causes
Unified CVP to look at
Call.PeripheralVariable2.
Media Library Type
. Flag indicating the location of the media files to
be played. The valid options are:
A - (default) Application
S - System
Uniqueness value. Optional. A string identifying a VRU
Script Name as unique.
Step 2
Configure
the Configuration Param field parameters:
A list of
menu
choices
. The valid options are:
0-9
* (asterisk)
# (pound sign)
Formats allowed include:
Individual options delimited by a / (forward slash)
Ranges delimited by a - (hyphen) with no
space
Barge-in
Allowed
. Specifies whether barge-in (digit entry to interrupt media
playback) is allowed.
The valid options
are:
No Entry
Timeout
. The number of seconds a caller is allowed to begin entering
digits. If exceeded, the system times-out. The valid options are:
0-99 (the default is 5).
Number of No Entry Tries. Unified CVP repeats the "Menu"
cycle when the caller does not enter any data after the prompt has been played.
(Total includes the first cycle.) The valid options are: 1-9
(the default is 3).
Number of
Invalid Tries
. Unified CVP repeats the prompt cycle when the caller
enters invalid data. (Total includes the first cycle.) The valid options are:
1-9 (the default is 3).
Timeout Message Override. The valid options are:
Y - override the system default with a
pre-recorded Application Media Library file
N - (default) do not override the system
default
Invalid Entry
Message Override
. The valid options are:
Y - override the system default with a
pre-recorded Application Media Library file
N - (default) do not override the system
default
Note
For more information about Timeout
and Invalid Entry Messages, refer to "System Media Files."
Menu Configuration Examples
The
following table shows several configuration examples for Menu for use in an
application where input type is DTMF.
Table 17
Menu Configuration Example - DTMF
Application
If the VRU
Script Name field setting is…
It
means...
If the Config Param setting
is...
It
means...
M,Banking
M - Use the Menu micro-app.
Banking - Play the Media file named "Banking.wav."
Note
This file may contain a message such as: "For Checking, press 1. For
Savings, press 2. For Money Market, press 3."
1-3
1-3 - Accept numbers 1, 2, 3. Accept all other defaults
(No Entry Timeout, Number of no entry tries, Number of invalid tries, Timeout
Msg Override, Invalid Entry Msg Override).
M,Main_Menu
M - Use the Menu micro-app.
Main_Menu - Play the Media file called
"Main_Menu.wav."
Note
This file may contain a message such as: "For
information or transactions on checking, press 1. For savings or club accounts,
press 2. For other information, press 0. If you know your party’s extension,
press 9."
0-2/9,,4,2,2
0-2/9 - Accept numbers 0, 1, 2, and 9.
, (Skipped parameter) - Accept the default barge-in
setting (Y).
4 - No Entry Timeout value (in
seconds).
2 - Number of no entry tries
allowed.
2 - Number of invalid tries allowed.
Accept all other defaults (Timeout Msg Override, Invalid Entry Msg
Override).
M,-2,S
M -
Use the Menu micro-app.
-2 - Plays the file
specified in Call.PeripheralVariable2.
S -
Acquires the file from the System media library.
1-3
1-3 - Accept numbers 1, 2, 3. Accept all other defaults
(No Entry Timeout, Number of no entry tries, Number of invalid tries, Timeout
Msg Override, Invalid Entry Msg
Override).
Note
Menu sets the ECC
variable user.microapp.error_code to zero, indicating success,
if control proceeds out the Checkmark (success) branch of the Run External
Script node. If control proceeds out the X (failure) branch, Menu typically
sets this variable to one of the codes listed in
Unified CVP Script Error Checking.
Menu and Digit Entry Completion
Unified CVP tests Menu digit entry input against two
conditions to determine whether digit entry is complete:
If a caller enters a digit, Unified CVP checks whether the digit is
within the set of valid digits for this menu.
If a caller
does not enter a digit, Unified CVP checks whether the No
Entry Timeout value has been reached.
Caution
It is
important that you set up your Packaged CCE script to test
for all the scenarios mentioned below.
Digit Entry Completion
After a caller enters a digit, Unified CVP validates the
digit against the list of valid menu options that were defined through CCE
Configuration Manager. Then Unified CVP does the following:
If the digit is valid, Unified CVP stores the digit in the
Call.CallerEnteredDigits variable, exits the node through the Checkmark
(success) branch, and returns control to
Packaged CCE .
If the digit is not
valid, Unified CVP considers it an invalid entry and does the following:
If the Number of
Invalid Entry Tries value has not been reached, Unified
CVP plays the "invalid message" file and re-plays the menu
prompt.
If the Number of Invalid Entry
Tries value has been reached, Unified CVP stores the last-entered invalid digit
in the user.microapp.caller_input variable, exits the node
through the X (failure) branch, sets the
user.microapp.error_code ECC variable to 16
(Reached Maximum Invalid Tries), and returns control to Packaged CCE .
If No Entry Timeout Occurs
If the caller does not enter a digit within the No Entry
Timeout period:
If the Number of No Entry Tries value is reached, Unified CVP plays the "no entry"
error message and re-plays the menu prompt.
If the Number
of No Entry Tries value has been reached, Unified CVP exits the node through
the X (failure) branch, sets the Call.CallerEnteredDigits variable to NULL, the
user.microapp.error_code ECC variable to 17
(Reached Maximum No Entry Tries), and returns control to Packaged CCE .
Get Speech Micro-Application
The Get Speech (GS) micro-application is used to execute a Call Studio script on VXML Server.
Configure Network VRU Script Settings for the Get Speech Micro-Application
Use the Packaged CCE Administration’s Network VRU Script tool to specify
parameters.
Note
By default a pre-configured network VRU script called VXML_Server has already been configured in Packaged CCE. This should be used in all Run External Script nodes that intend to execute a Call Studio script. When using an optional feature like Courtesy Callback, you must configure additional GS network VRU scripts.
Procedure
Step 1
Configure VRU
Script field parameters:
Micro-application type. For Get Speech, valid options
are: GS or gs.
Media File Name. Only the value Server is supported for this field for GS.
Media Library Type. Only the value V is supported for this field for GS.
Uniqueness value. Optional.
A string identifying a VRU script name as
unique.
Step 2
Configure the
Configuration Param field parameters:
Note
Configuration parameters 1-10 are only for non-Packaged CCE deployments with CVP where GS is supported with external VXML. Only the Pass FTP Information parameter (parameter 11) is configurable when using the Agent Greeting recording feature.
Pass FTP Information Specifies
whether to pass FTP server information to the VXML Server. This option is only
useful if the VXML Server application uses the FTP_Client Element and the FTP
server information is already configured using the Operations Console. Valid
options are:
Y - Pass FTP server information to the VXML Server as
VXML Server session variables.
N
- (default) Do not pass FTP server information.
If the Pass FTP Information
parameter is set, the following information is passed:
ftpServer - A
space separated string of FTP servers. For example,
ftp_host1|21|username|password ftp_host2. Everything
is optional except the host name. See FTP_Client Element settings located
in the
Elements Specifications for Cisco Unified CVP VXML Server and
Cisco Unified Call Studio
guide for more
information.
ftpPath -
A path on the FTP server. By default, this path is formed from the content of the
ECC variable user.microapp.locale concatenated with
path separator (/) and the content of the ECC
variable user.microapp.app_media_lib. One exception
is if the value of user.microapp.app_media_lib is
.., then app is used
instead. An example of a path is:
en-us/app
Passing Information to the Call Studio Scripts Executing on VXML Server
You can pass up to 1050
characters to the Call Studio scripts executing on VXML server by using an ECC Variable array.
Table 18
To External VoiceXML ECC Variable
Array
ECC
Variable Name
Type
Max. Number of Elements
Max. Size of Each
Element
user.microapp.ToExtVXML
Array
5
210
This variable
array contains a list of semicolon delimited name/value pairs. The following is
an example of the syntax:
Table 19 Sample Array Definition
Variable
Name
Values
user.microapp.ToExtVXML[0]
"Company=Cisco;Job=technical writer"
user.microapp.ToExtVXML[1]
"Location=Boxborough;Street=Main"
user.microapp.ToExtVXML[2]
"FirstName=Gerrard;LastName=Thock"
user.microapp.ToExtVXML[3]
"Commute=1hour;Car=Isuzu"
Unified CVP sends each name/value pair as a session variable on the call to VXML server (for example, a session variable named Company with a value of Cisco). The session variables are accessible in the Call Studio scripts.
Passing Data Back to Packaged CCE from the VXML Server
Unified CVP can return 840 characters from the VXML server.
The
following ECC Variable array is added:
Table 20
From External
VoiceXML ECC Variable Array
ECC Variable Name
Type
Max. Number of Elements
Max. Size of Each
Element
user.microapp.FromExtVXML
Array
4
210
The Get Speech
micro-app returns up to 840 characters by populating the
user.microapp.caller_input variable and each element of the
user.microapp.FromExtVXML array.
Note
By default user.microapp.FromExtVXML ECC variable is pre-defined for Packaged CCE but not enabled. You can use the pre-defined ECC variable or update the length based on your needs.
Scripting for Unified CVP with Call Studio
You can use Call
Studio to build sophisticated CVP applications which can then be loaded onto a
VXML Server machine for execution.
To invoke a VXML
Server application, create a Packaged CCE routing script that
Includes a user.microapp.ToExtVXML[0] ECC variable
instructing the VoiceXML Gateway to interact with the VXML Server directly to
execute the application
Instructs the application to
pass back results to Packaged CCE
This
section describes
Call Studio and how to use it to
pass data to Packaged CCE
How to
integrate Call Studio scripts with Packaged CCE
scripts
Call
Studio is an Eclipse-based service creation environment whose output is an
intermediary file which describes the application flow.
Among its many features, the Call Studio scripting environment
Has a drag-and-drop interface with a palette of CVP
functions
Can perform database queries
Can be extended with Java code written to perform any task a Java
application can perform
The following figure shows a
Call Studio application that can be used with the Unified CVP Standalone with
Packaged CCE Lookup call flow model.
See Configuration Overview.
Figure 60. Call Studio Application Used with Unified CVP Standalone
This chapter presents a set of high-level instructions
for configuring many of the Unified CVP call flow models (deployment
models).
Each set of call flow model instructions
contains:
A brief overview of that call flow
model
High-level instructions for configuring the
components in that call flow model
References to detailed
instructions (elsewhere in this guide, in online help, or in other documents)
for performing each high-level task
This chapter also
includes information, or pointers to information, for configuring the Gateway, Packaged CCE VRU handling and Unified CVP Call Server (including
the SIP Service, Packaged CCE service, and CVP Service).
Call Studio ReqICMLabel Element to Pass Data
The ReqICMLabel element allows a Call Studio script to pass caller
input, Call Peripheral variables, and Expanded Call Context (ECC) variables to
a Packaged CCE script. The ReqICMLabel must be inserted into
a Call Studio script as a decision element. In Call Studio, the returned
Packaged CCE label result can be used by
other elements in the same application, such as the Transfer or Audio element.
The Transfer element sends instructions to the IOS Voice Browser to transfer
the caller to the desired location.
After the ReqICMLabel exits
its path, you can retrieve the values set by the Packaged CCE script by
selecting the Element Data tab for the ReqICMLabel element. The element data
value is {Data.Element.ReqICMLabelElement.result}. ReqICMLabelElement is the
name of the ReqICMLabel element in the Call Studio script. The default name for
this element is ReqICMLabel_<n>. For example, if you changed ReqICMLabel
to GetICMLabel, the value returned from Packaged CCE is {Data.Element.GetICMLabel.result}, where result is the
variable of the ReqICMLabel element that contains the Packaged CCE label.
Call Peripheral variables passed by the Call Studio
script to thePackaged CCE server. This setting can be a
maximum of 40 characters. The Packaged CCE server
returns a name-value pair for up to 10 Call Peripheral Variables in a result.
Any value that is placed in callvar<n> from a Call Studio script is
returned unchanged, if the Packaged CCE script does not
change it.
Call Peripheral variables created upon the return
of the Packaged CCE Label request, regardless of whether or
not these variables are filled by the Packaged CCE script.
You need two sets of these variables to keep reporting to the Packaged CCE Call
Peripheral Variables separate from what is returned from
Packaged CCE .
External Call Context (ECC) variables passed by the
Call Studio script to the Packaged CCEPackaged CCE server. Each variable
is a string of name-value pairs, separated by semicolons, for up to four external
VoiceXML variables. This setting can be a maximum of 210 characters.
External Call Context (ECC) variables received from
the Packaged CCE script. The Packaged CCE erver returns a string of name-value pairs, separated by semicolons, for up to
five external VoiceXML variables.
Timeout
Integer
Yes
Yes
Yes
3000 (ms)
The number of milliseconds that the transfer request waits for a response from
the Packaged CCE server before timing out.
Note
This value is increased or decreased by increments of 500
ms.
caller_input (Caller
Input)
String
No
Yes
Yes
This setting can be a maximum of 210
characters. The caller_input is only passed to Packaged CCE
from Call Studio.
Table 22 Element Data
Name
Type
Notes
result
String
Packaged CCE label returned from
a Packaged CCE server. You can use this result as input to
other Call Studio elements, such as Transfer or Audio. The element data value
is {Data.Element.ReqICMLabelElement.result}.
callvar<n>
String
Call Peripheral variables that the Call Studio
scripts passes to the Packaged CCE server. Valid Call
Peripheral Variables are callvar1 - callvar10.
callvarReturn<n>
String
Call Peripheral variables that the
Packaged CCE script returns to the VXML Server. Valid Call
Peripheral Variables are callvarReturn1 - callvarReturn10.
For
example, if a Packaged CCE script contains Call Peripheral
variable 3 with the string value "CompanyName=Cisco Systems, Inc", you can
access the value of CompanyName that is returned by the
Packaged CCE script by using
Data.Element.ReqICMLabelElement.callvarReturn3
The returned value is "Cisco Systems,
Inc."
Table 23 Session Data
Name
Type
Notes
name
String
Value for a name-value pair contained in a
ToExtVXML variable returned in the Packaged CCE label. You
must know which name-value pairs are set in the Packaged CCE
script to retrieve the correct value from the Call Studio script.
For example, if a Packaged CCE script contains a
user.microapp.ToExtVXML0 variable with the string value "CustomerName=Mantle",
specify Data.Session.CustomerName. If the same Packaged CCE
script contains a user.microapp.ToExtVXML0 variable with the string value
"BusinessType=Manufacturing", you can access the customer business type
returned by the Packaged CCE script by using
Data.Session.BusinessType.
Table 24 Exit States
Name
Notes
done
The element execution is
complete and the value is successfully retrieved.
Integrate Call Studio Scripts with Unified CCE Scripts - Traditional Method
This
section describes how to integrate the VXML Server into the Unified CVP
solution in the traditional way. This process involves
Creating a Unified CCE script with ECC variables
configured for VXML Server
Creating a VRU Script to run
in the Packaged CCE script
Integrate Call Studio Scripts with Packaged CCE Scripts
The following steps describe how to integrate Call Studio scripts with Packaged CCE :
Procedure
Step 1
Set
the user.microapp.ToExtVXML[0] ECC variable to
application=HelloWorld.
Note
This
example indicates that the VXML Server executes the "HelloWorld"
application. To execute a different application, change the value of
user.microapp.ToExtVXML[0] accordingly.
Step 2
Create a Run External Script node within the
Packaged CCE script with a VRU Script Name value of
GS,Server,V.
Configure the timeout setting in the Network VRU Script to a value
greater than the timeout value in the VXML Server
application. (This timeout is only used for recovery from a failed VXML
Server.)
Always leave the Interruptible
checkbox in the Network VRU Script Attributes checked. Otherwise, calls queued
to a VXML Server application may stay in the queue when an agent becomes
available.
Step 3
After you configure the
Packaged CCE script, configure a corresponding
VXML Server script with Call Studio. The VXML Server script must
Begin with a Unified CVP Subdialog_Start element (immediately after
the Call Start element)
Contain a Unified CVP
Subdialog_Return element on all return points (script must end with a
Subdialog_Return element)
Must include a value for the call input for the Unified CVP Subdialog_Return element
Must add Data Feed/SNMP
loggers to enable reporting
Outbound Option Scripting
Outbound Option uses Packaged CCE Enterprise scripting configured on the Administrative Workstation to
manage campaigns.
Outbound Option administrative scripts enable, disable, or throttle campaign skill groups for
outbound campaigns. The scripts can also automatically close out
a skill group for a specific campaign based on time or any other conditional factor that the
admin script can access. This scripting is performed at the skill group level to provide more
flexibility when managing larger campaigns that are distributed across multiple skill
groups.
Enable a campaign skill group by setting the campaign mode to one of the available
modes: Preview, Direct Preview, Progressive or Predictive. (For more information about these modes, refer to this section: Dialing Modes.) Schedule an administrative script to run at regular intervals. Disable the campaign skill group by the administrative script, using a script node to change the campaign mode to inbound for
that skill group.
This script also provides the ability to control the percentage of agents to be used in a campaign skill group and whether this skill group is used for other campaigns or inbound
calls.
Note
An administrative script controls a campaign skill group. A campaign skill group can be
mapped only to one campaign at a time. A skill group can be reused if new campaigns are added.
If a campaign skill group is recycled, its administrative scripting should be reused as well. However, note that although it is
possible to have two administrative scripts controlling the same skill group, conflicting campaign mode requests for Outbound Option can result.
Outbound Option Agent Routing Scripts
Two types of routing scripts are described later in this document. One is for Agent Campaign and one is for IVR Campaign. For instructions on creating them, refer to Set Up Routing Scripts.
Call Type Reporting and Outbound Option Campaigns
The call type is an Unified Contact Center
concept that maps a route point dialed number to a routing script. It is also a
very useful reporting object for the enterprise to describe all calls that
traversed a specific routing script. The call type mostly applies to inbound
traffic in the call center because the dialer does not use the routing script
when placing outbound calls. However, Outbound Option does use routing scripts
to reserve agents and to transfer calls to the Unified CVP, so that it can provide some
insight into how calls are being routed.
Because Outbound Option uses
a routing script to reserve agents, the Call Type
real-time and half-hour reports contain data for Outbound Option reservation
calls. It is important to note that this call type data pertains only to
reservation calls and does not include reporting information for any outbound
calls. To eliminate any confusion regarding Call Type reporting, create a
separate call type for Outbound Option routing scripts.
Call Studio Scripts in Unified CVP
Call Studio scripts can
be deployed in one of the following ways:
In Call
Studio, create and deploy the Call Studio scripts to the local machine using
the Archive option.
In Call
Studio, use the Deploy Remotely option to deploy the scripts to an FTP Server.
In the Operations
Console, upload the archived Call Studio script file from the local machine to
the Operations Server and deploy it to other VXML Server
machines.
Create or modify one or more VoiceXML application
scripts.
Step 2
Use Call Studio to set up the
loggers using the ActivityLogger, ErrorLogger, and Admin Logger tools. Set up
the Unified CVP Datafeed logger for each application.
Note
Call Studio also includes CVPDatafeedLogger and CVPSNMPLogger.
Call Studio lets you change other parameters for these loggers, such
as log file size, log lever, et cetera.
See the Call Studio documentation for more
information.
Step 3
Deploy one or more VoiceXML application
scripts to the local machine using the archive option. The archived scripts are
saved as a zipped file under a user-specified directory, for example:
C:\Program Files\Cisco\CallStudio
Note
The sample folder is C:\Cisco\CallStudio, which is also the default
folder.
Deploy Call Studio Scripts Using the Operations Console
Procedure
Step 1
From the web browser, enter the following URL:
https://ServerIP:9443/oamp or
http://ServerIP:9000/oamp
Step 2
Enter your user ID in the User Name field.
Note
The
first time you log in after installing Unified CVP, enter
Administrator, the default user account.
Step 3
In the Password field, enter your password, as follows:
If you are logging in to the default Administrator account, enter the
password that was set for this account during installation.
If the user ID or password is invalid, the Operations server displays the
message, "Invalid Username or password." Click the link, enter your user ID and
password again, and click OK.
The Operations Console Welcome window
appears.
Step 4
Select Bulk
Administration > File Transfer > Scripts and Media.
Step 5
From the Device Association drop-down menu, select
Gateway.
Step 6
In the Available pane,
select one or more archived script files to deploy.
Step 7
Click the arrow icon to move the file from
Available to Selected.
Step 8
Click Transfer to transfer the selected
archived scripts file(s) to the selected device.