Cisco Cisco Computer Telephony Integration Option 8.5 Developer's Guide

Page of 506
   
10-2
CTI OS Developer’s Guide for Cisco Unified Contact Center Enterprise
Release 8.5(1)
Chapter 10      Call Object
Accessing ECC Variables
Accessing ECC Variables
The Unified ICM provides a customer-defined data layout for sending call context data with a call. This 
mechanism is called Expanded Call Context, or ECC. ECC variables are defined in the Unified ICM 
Configuration Manager, and are sent between Unified ICM servers as a key-value structure. The 
mechanism for accessing ECC variables from CTI OS is similar to accessing all other call variables. 
To simplify the organization of properties on the Call object, the ECC variables are stored in their own 
Arguments structure which is nested in the Call object Arguments structure. 
Considerations for Passing Call Variables
A consultative transfer is one in which the transferring or forwarding party either connects the caller 
to a ringing phone or speaks with the third party before connecting the caller to the third party. In a 
consultative transfer on the same peripheral gateway, if a variable is updated with data during the 
primary call, and the same variable is then updated with data during the transferred call, the call data 
from the initial call takes precedence and replaces the call data from the transferred call.
For calls that are transferred between peripheral gateways, update call variables on the primary call 
before transferring the call. Only call variable information from the primary call is included in the 
route request to the other peripheral gateway. Any call variable information that you change after 
the call is transferred is lost because the call variable information was not included in the route 
request when the call was transferred.
The Unified ICM call control variable map is a string that describes the mappings of a peripheral’s 
call control variables to Unified ICM call control variables. You can edit this string to identify the 
call variables that an agent can change.
Retrieving ECC Variable Values
To retrieve an ECC variable from the Call object, first retrieve the ECC (Arguments) structure from the 
Call object using GetValueArray with keyword ECC. Then, retrieve the specific ECC variable required 
by using its name as the keyword to GetValueInt, GetValueArray, or GetValueString, depending on its 
type. The following is some sample code for C++ without COM:
Arguments * pECCData = NULL;
string sMyECCVariable;
int nMyECCArrayVariable;
if (pCall->IsValid(CTIOS_ECC))
{
pCall->GetValueArray(CTIOS_ECC, &pECCData);
if (pECCData)
{
if (pECCData->IsValid("user.MyECC"))
pECCData->GetValueString->("user.MyECC", &sMyECCVariable);
if(pECCData->IsValid("user.MyArray[2]"))
pECCData->GetValueInt("user.MyArray[2]", &nMyECCArrayVariable);
pECCData->Release();
pECCData = NULL;
}
}