Expanded Call Context Variables
Expanded Call Context (ECC) variables are variables that you define and enable in the Configuration Manager to store values for a call. You can specify the variable name and data type. The name must begin with the string "user." ECC variables are in addition to the variables the system software defines for each call (PeripheralVariable1 through PeripheralVariable10, CallerEnteredDigits, CallingLineID, and so on).
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:
user.<CompanyName>.<VariableDescription>
In this syntax:
-
<CompanyName> is the name of your company.
-
<VariableDescription> is a descriptive tag for the variable.
For example:
user.Cisco.AcctNum
Using this naming convention prevents naming conflicts with any third-party applications that interface with the system software.
Note |
For a large corporation, you can break <VariableDescription> down to include the Business Unit, Division, or other organizational entities. |
ECC variables follow these size rules:
-
An ECC variable can be either a scalar variable or an array element, each with a maximum length of 210 bytes.
Note
Array types are not supported for an agent request.
-
The maximum number of elements in an array is 255.
-
The maximum buffer size for each scalar variable = 5 + the maximum variable length. 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 an array element) * (the maximum elements in the array). There is a null terminator for each element, and a null terminator for the array as a whole.
-
You pass ECC variables in an ECC payload which has a 2000-byte limit. The total sum of all the maximum buffer sizes for each variable and each array in one ECC payload cannot exceed 2000 bytes.
For example, if you intended to use the following:
-
A scalar ECC variable with a maximum length of 100 bytes
-
A scalar ECC variable with a maximum length of 80 bytes
-
An ECC array with a maximum of 9 elements with each element having a maximum length of 200 bytes
Totaled the buffer size is: (5+100) + (5+80) + (5 + (1+200)*9) = 2004. Because this size is too large, you must change the length of one of the scalar ECC variables or the length of the array ECC variables.
-
ECC Payloads
You can define as many ECC variables as necessary. But, you can only pass 2000 bytes of ECC variables on a specific interface at any one time. To aid you in organizing ECC variables for specific purposes, the solution has ECC payloads.
An ECC payload is a defined set of ECC variables with a maximum size of 2000 bytes. You can create ECC payloads to suit the necessary information for a given operation. You can include a specific ECC variable in multiple ECC payloads.The particular ECC variables in a given ECC payload are called its members.
Note |
For ECC payloads to a CTI client, the size limit is 2000 bytes plus an extra 500 bytes for the ECC variable names. Unlike other interfaces, the CTI message includes ECC variable names. In certain cases, mainly when using APIs, you might create an ECC payload that exceeds the CTI Server message size limit. If you use such an ECC payload in a client request, the CTI Server rejects the request. For an OPC message with such an ECC payload, the CTI Server sends the message without the ECC data. In this case, the following event is logged, “CTI Server was unable to forward ECC variables due to an overflow condition.” |
You can use several ECC payloads in the same call flow, but only one ECC payload has scope at a given moment. TCDs and RCDs record the ID of the ECC payload that had scope during that leg of the call. The Call.ECCPayloadID variable contains the ID of the ECC payload which currently has scope.
For VRU and media routing leg of the call, the TCD contains the VRU PayloadID setting associated with the peripheral. If not, TCD contains the default payload ID. The Termination Call Variables are persisted only based on this payload setting.
In solutions that only use the default ECC payload, the system doesn’t create an ECC variable that exceeds the 2000-byte limit for an ECC payload or the 2500-byte CTI Message Size limit. The system does this because it automatically adds all ECC variables to the default ECC payload if that is the only ECC payload.
If you create another ECC payload, the system no longer checks the 2000-byte limit when creating ECC variables. The system creates the ECC variables without assigning them to an ECC payload. Assign the new ECC variable to an appropriate ECC payload yourself through the ECC Payload Tool.
You can create and modify ECC payloads in the
tool.Default ECC Payload
The solution includes an ECC payload named "Default" for backward compatibility. If your solution does not require more ECC variable space, you only need the Default payload. The solution uses the Default payload unless you override it.
If your solution only has the Default payload, the solution automatically adds any new ECC variables to the Default payload until it reaches the 2000-byte limit.
Note |
You cannot delete the Default payload. But, you can change its members. |
Important |
During upgrades, when the system first migrates your existing ECC variables to the Default payload, it does not check the CTI message size limit. The member names might exceed the extra 500 bytes that is allocated for ECC payloads to a CTI client. Manually check the CTI Message Size counter in the Expanded Call Variable Payload List tool to ensure that the Default payload does not exceed the limit. If the Default payload exceeds the limit, modify it to meet the limit. |
In a fresh install, the Default payload includes the predefined system ECC variables. In an upgrade, the Default payload's contents depend on whether the starting release supports ECC payloads:
-
ECC payloads not supported—During the upgrade, a script adds your existing ECC variables to the Default payload.
-
ECC payloads are supported—The upgrade brings forward the existing definition of your Default payload.
Note |
If your solution includes PGs from a previous release that does not support ECC payloads, the Router always sends the Default payload to those PGs. Those PGs can properly handle the Default payload. |
ECC Payload Node
The ECC Payload node is available from the General tab on the Object Palette:
Use this node to change the ECC payload that has scope for the following part of your script. Once you select an ECC payload, it has scope for all non-VRU operations until changed. You can select the ECC payload either statically or dynamically by the payload's EnterpriseName or ID.
ECC Payload Use by Interface
This table summarizes the use of ECC payloads in various operations:
Condition |
ECC Payload That Is Used |
---|---|
Routing to VRU |
Default payload If an ECC payload is specified in the configuration of that VRU, it overrides the Default payload. |
Routing to Application Gateway |
ECC payload that currently has scope in the script |
Routing to Agent PG (including the Unified CM PG and Avaya PG) |
ECC payload that currently has scope in the script |
Routing to Media Routing PG |
Default payload If an ECC payload is specified in the configuration of the VRU for that MR PG, it overrides the Default payload. |
Routing to pre-12.0 PG |
Always Default payload |
Routing to System PG (Agent or VRU) |
Always Default payload |
Routing to Avaya Aura Symposium PG |
Always Default payload |
Routing to Aspect PG |
Always Default payload |
Contact Director to target Unified CCE |
ECC payload that currently has scope in the script |
Routing to INCRP NIC |
ECC payload that currently has scope in the script |
Pre-route to Gateway PG on Parent in Parent/Child |
Always Default payload |
Note |
If you do not create another ECC payload, the solution uses the Default payload for everything. |
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:
-
user.cisco.cmb
-
user.cisco.cmb.callclass
-
user.ece.activity.id
-
user.ece.customer.name
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. |