Expanded Call Context (ECC) variables are variables that you define and enable in the Configuration Manager to store values associated with the call. You can specify the variable name and data type. The name must begin with the string user. These are in addition to the variables the system software defines for each call (PeripheralVariable1 through PeripheralVariable10, CallerEnteredDigits, CallingLineID, etc.).
An ECC variable name can be up to 33 bytes long (1–32 usable characters ). Use the following naming convention when creating an ECC variable:
In this syntax:
<CompanyName> is the name of your company
<VariableDescription> is a descriptive tag for the variable.
For example, you could use the following name for an ECC variable created for Cisco account numbers:
Using this naming convention will prevent naming conflicts with any third-party applications that interface with the system software.
If your corporation is large, you may even want to break <VariableDescription> down to include the Business Unit, Division, or other organizational entity that exists in your company.
An ECC variable can be either a scalar variable or an array element, each with a maximum length of 210 bytes.
The maximum number of elements in an array can be 255.
The maximum buffer size for each scalar variable = 5 + the maximum length of the variable where the 5 bytes includes 4 bytes to tag the variable and 1 byte for the null terminator.
The maximum buffer size for each array = 5 + (1 + the maximum length of array element) * (the maximum number of elements in the array).
There is a null terminator for each element, as well as a null terminator for the array as a whole.
Since the total size of the buffer used to store the variables internally is 2000 bytes, the total sum of all the maximum buffer sizes for each variable and each array must be no greater than 2000. For example, if you intended to use one scalar ECC variable with a maximum length of 100 bytes, one scalar ECC variable with a maximum length of 80 bytes, and an ECC array with a maximum of 9 elements with each element having a maximum length of 200 bytes, the buffer size would be: (5+100) + (5+80) + (5 + (1+200)*9) = 2004. As this buffer size is too large, the length of one of the scalar ECC variables or the length of the array ECC variable would need to be adjusted.
ECC variables for blended collaboration or voice MRDs with collaboration
ECC variables must be configured in Configuration Manager's Expanded Call Variable List tool (for each integrated application) to route requests using the voice Media Routing Domain.
For Cisco Blended Collaboration or Voice MRDs with Collaboration, the ECC variables are:
Important: While their default size is 40 characters, use the Expanded Call Variable List tool in the Configuration Manager to limit the user.cisco.cmb variable to 8 bytes and the user.cisco.cmb.callclass variable to 10 bytes to prevent ECC space limitation issues.
Refer to Configuration Manager's online help for detailed information about the Expanded Call Variable List tool.
Expanded call context variable configuration
Expanded call context variable configuration consists of two steps:
Setting the Expanded call context enabled option in the System Information dialog
Defining the variable through the Expanded Call Variable List in the Configuration Manager
For Web Callback and Delayed Callback to work properly, an ECC variable (also known as a named variable) must be defined. The Cisco CTI driver supports the use of ECC variables in addition to the standard call variables associated with a call. Before an ECC variable can be used, it must be defined in the Unified ICM ECC variable database table.
For more information, refer to the Database Schema Guide for Cisco Unified ICM/Contact Center Enterprise & Hosted.
How to Set the Expanded Call Context Enabled Option
To set the expanded call context enabled option:
Within the Configuration Manager, select Tools > Miscellaneous Tools > System Information.
The System Information window appears.
Select Expanded call context enabled.
For additional information refer to the online Help.
Click Save to apply your changes.
How to Define an Expanded Call Context (ECC) Variable
To define an expanded call context (ECC) variable:
Within the Configuration Manager, select Tools > List Tools > Expanded Call Variable List.
The Expanded Call Variable List window appears.
In the Expanded Call Variable List window, enable Add by clicking Retrieve.
The Attributes property tab appears.
Complete the Attributes property tab:
The enterprise name of the expanded call variable. This name must start with the string user and must be unique among all expanded call variables in the system (an enterprise name).
Use the following syntax to prevent naming conflicts: user.company.name where company is your company name and name describes the expanded call variable.
Maximum length (required)
Specifies the maximum number of characters (1–210) allowed in the extended call variable value (the size of the variable string). For a numeric value, the number of digits is specified.
The maximum amount of space that all the ECC variables together can take up in the Unified ICM system is no more than 2000 bytes (not 2K or 2048 bytes) and sometimes less, depending on your combination of scalar and array variables and their sizes. Each ECC variable takes up space based on the following formula: For scalar: 5 + Maximum_Length For array: 5 + (1 + Maximum_Length) * (Maximum_Array_Size)
The number of characters or digits does not indicate the number of bytes. For example, a scalar ECC variable of 10 characters could take up 15 bytes of space.
When selected, indicates the expanded call variable is an array, not a scalar. Maximum array size If the expanded call variable is an array, this indicates the maximum number of elements (1–255) in that array. See also the note under the Maximum length description.
When selected, indicates the generation of the expanded call variable for each call is enabled.
When selected, ECC variables will be written to the Logger database.
Non-persistent variables can be used in routing scripts, but will not be written to the database.
Cisco provided (checkbox)
When selected, indicates that the system software predefines the selected expanded call variable.
Provides additional information about the ECC variable.
Click Save to apply your changes.
Validating ECC Variables for Use by the CTI Server
Before entering ECC variables using the configuration tool, validate the total size of the ECC variables against the following rules and limits:
Because the total size of the buffer used to store the variables in CTI Server internally is 2500 bytes, the total sum of all the maximum buffer sizes for each scalar variable and arrays must be no greater than 2500.
The maximum buffer size for each scalar variable = 4 + length of the ECC name + the maximum length of the variable where the 4 bytes includes a 1 byte tag, 1 byte to define the length, and 2 terminating NULL characters.
The maximum buffer size for each array = (5 + length of the ECC name + the maximum length of array element) * (the maximum number of elements in the array) where the 5 bytes includes a 1 byte tag, 1 byte to define the length, 1 byte for the array index, and 2 terminating NULL characters.
For example, if you intended to use one scalar ECC variable with a maximum length of 100 bytes named user.var, one scalar ECC variable with a maximum length of 80 bytes named user.vartwo, and an ECC array named user.varthree with a maximum of 9 elements with each element having a maximum length of 200 bytes, the buffer size would be: (4+8+100) + (4+11+80) + ((5 + 13 + 200)*9)) = 2169 where 8 is the length of user.var, 11 is the length of user.vartwo and 13 is the length of user.varthree.
You can also create global user variables; 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.
Each user variable must:
Have a name that begins with user.
This name cannot contain the dot/period (.) character.
Be associated with an object type, for example, Service. (This enables the system software 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.
A user variable can store a value up to 40 characters long.
After you have defined a variable, you can then use the Script Editor Formula Editor to access the variable and reference it in expressions, just as you would with a "built-in" variable.
Define a user variable
To define a user variable:
Within the Configuration Manager, select Tools > List Tools > User Variable List.
The User Variable List window appears.
In the User Variable List window, enable Add by clicking Retrieve.
The Attributes property tab appears.
Complete the Attributes property tab.
The Variable name, Object type, and Data type fields are required. All other fields are optional. For additional information refer to the online Help.