Cisco Cisco Computer Telephony Integration Option 8.5 Developer's Guide

Page of 640
Chapter 10      Call Object
Accessing ECC Variables
10-2
CTI OS Developer’s Guide for Cisco ICM/IPCC Enterprise & Hosted Editions Release 7.0(0)
CallAppearanceMgr control to call SetCurrentCall() to make this new call the 
current call. Then, when the agent clicks the Answer control, this control would 
again call GetCurrentCall() to obtain a call pointer through which to call the 
Answer() method.
If your application uses Cisco’s out-of-the-box button controls (see 
), but not the CallAppearanceMgr grid control, you 
will need to use SetCurrentCall() and GetCurrentCall() in order for the button 
controls to enable and disable correctly when switching between multiple calls.
Note
The CurrentCall concept does not place any limitations on call control of 
non-current calls. All of the call behaviors implemented by method calls on the 
Call object will work on any call object that is available at the CIL, even if it is 
not the CurrentCall. 
Accessing ECC Variables
The Cisco ICM System 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 ICM Configuration Manager, and are sent 
between 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. 
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;