Cisco Cisco Computer Telephony Integration Option 9.0 Developer's Guide
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.
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.
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.
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).
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.
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
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.
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
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