Cisco Cisco Computer Telephony Integration Option 9.0 Developer's Guide

Page of 490
   
2-5
CTI OS Developer’s Guide for Cisco Unified Contact Center Enterprise
Release 8.5(3)
Chapter 2      CTI OS Client Interface Library Architecture
CIL Object Model
Agent Object
The Agent object provides an interface to Agent functionality, including changing agent states and 
making calls. The agent object also provides access to many properties, including agent statistics. 
Depending on the Session Mode, a CIL application can have zero to many agent objects.
For the complete interface specification of the Agent object, see 
Call Object
The Call object provides an interface to Call functionality, including call control and accessing call data 
properties. Depending on the Session Mode, a CIL application can have any number of call objects. 
For the complete interface specification of the Call object, see 
SkillGroup Object
The SkillGroup object provides an interface to SkillGroup properties, specifically skill group statistics. 
Depending on the Session Mode, a CIL application can have zero to many SkillGroup objects.
For the complete interface specification of the SkillGroup object, see 
Object Creation and Lifetime
The Session object maintains a collection for each class of objects it manages (e.g. Agents, Calls, 
SkillGroups). 
Objects are created either by the programmer or by the Session object as required to support the event 
flow received from the CTI OS Server. In Agent Mode, the programmer creates a single Agent object 
with which to login; in Monitor Mode, Agent objects are created as required by the event flow. Call and 
SkillGroup objects are always created by the Session object.
An Agent, Call or SkillGroup object is created (by the Session) when the Session receives an event for 
an object (identified by its UniqueObjectID) that is not yet present at the CIL. This ensures that the CIL 
always has the appropriate collection of proxy objects, one for each object on the CTI OS Server that it 
is using. When a new object is created, it is added to the Session object’s collection, and is accessible 
from the Session via the GetValue mechanism. See 
Reference Counting
Object lifetime is controlled using reference counting. Reference counts determine if an object is still in 
use; that is, if a pointer or reference to it still exists in some collection or member variable. When all 
references to the object are released, the object is deleted. 
An application or object that holds a reference to a CIL object must use the AddRef method to add to its 
reference count. When the reference is no longer required, the application or object holding that 
reference must use the Release() method to decrement the reference count. Reference counting is 
discussed further in