Cisco Cisco Computer Telephony Integration Option 8.5 Developer's Guide

Page of 490
C H A P T E R
   
10-1
CTI OS Developer’s Guide for Cisco Unified Contact Center Enterprise
Release 8.5(3)
10
Call Object
The Call object provides developers using the CTI OS Client Interface Library with an interface to Call 
behavior and control. The Call object enables you to perform all call behaviors, such as answering, 
hanging up, or transferring a call. The Call object represents one call connection of a call. For a call 
between two parties there are two call connections, and thus there are two distinct CIL Call objects. 
The object stores specific call information as properties, including the ICMEnterpriseUniqueID, ANI, 
DNIS, Call variables, and ExpandedCallContext variables. The Call object is created in response to call 
events received at the CIL. The Call object’s properties and state are updated throughout the lifetime of 
the call connection.
See 
 for an explanation of accessing Call and ECC variables via 
the GetValue mechanism. 
Current Call Concept
The Client Interface Library uses the concept of a Current Call. The CTI OS Toolkit uses the Current 
Call concept as a way for the controls and the application to communicate with each other regarding 
which call is currently selected and is the one to act on. For example, if an agent has a call and receives 
a new Ringing call, he might select the Talking call on the grid. At this click, CallAppearanceMgr control 
calls SetCurrentCall() to make this call the Current Call. When the agent clicks the Hold control, this 
control calls GetCurrentCall() to obtain a call pointer through which to call the Hold() method. The agent 
can then select the Ringing call, which again causes the CallAppearanceMgr control to call 
SetCurrentCall() to make this new call the current call. Then, when the agent clicks the Answer control, 
this control again calls 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 need to use SetCurrentCall() and 
GetCurrentCall() 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 work on any call object that is available 
at the CIL, even if it is not the CurrentCall.