Cisco Cisco Computer Telephony Integration Option 9.0 Developer's Guide
1-5
CTI OS Developer’s Guide for Cisco ICM/IPCC Enterprise & Hosted Editions
Cisco CTI OS Release 7.2(1)
Chapter 1 Introduction
Overview of CTI OS
•
Complex solutions made simple. CTI OS enables complex server-to-server integrations and
multiple agent monitoring-type applications. The CIL provides a single object-oriented interface
that can be used in two modes: agent mode and monitor mode. See
multiple agent monitoring-type applications. The CIL provides a single object-oriented interface
that can be used in two modes: agent mode and monitor mode. See
for an explanation of these two modes.
•
Fault tolerant. CTI OS is built upon the ICM NodeManager fault-tolerance platform,
whichautomatically detects process failure and restarts the process, enabling work to continue.
Upon recovery from a failure, CTI OS initiates a complete, system-wide snapshot of all agents, calls,
and supervisors and propagates updates to all client-side objects.
whichautomatically detects process failure and restarts the process, enabling work to continue.
Upon recovery from a failure, CTI OS initiates a complete, system-wide snapshot of all agents, calls,
and supervisors and propagates updates to all client-side objects.
Key Benefits of CTI OS for CTI Application Developers
The CTI OS Client Interface Library (CIL) provides programmers with the tools required to rapidly
develop high-quality CTI –enabled applications, taking advantage of the rich features of the CTI OS
server. Every feature of CTI OS was designed with ease of integration in mind, to remove the traditional
barriers to entry for CTI integrations.
develop high-quality CTI –enabled applications, taking advantage of the rich features of the CTI OS
server. Every feature of CTI OS was designed with ease of integration in mind, to remove the traditional
barriers to entry for CTI integrations.
•
Object-oriented interactions. CTI OS provides an object-oriented CTI interface by defining
objects for all call center interactions. Programmers interface directly with Session, Agent,
SkillGroup, and Call objects to perform all functions. CIL objects are thin proxies for the server-side
objects, where all the ‘heavy-lifting’ is done. The Session object manages all objects within the CIL.
A UniqueObjectID identifies each object. Programmers can access an object by its UniqueObjectID
or by iterating through the object collections.
objects for all call center interactions. Programmers interface directly with Session, Agent,
SkillGroup, and Call objects to perform all functions. CIL objects are thin proxies for the server-side
objects, where all the ‘heavy-lifting’ is done. The Session object manages all objects within the CIL.
A UniqueObjectID identifies each object. Programmers can access an object by its UniqueObjectID
or by iterating through the object collections.
•
Connection and session management. The CTI OS CIL provides out-of-the-box connection and
session management with the CTI OS Server, hiding all of the details of the TCP/IP sockets
connection. The CIL also provides out-of-the-box failover recovery: upon recovery from a failure,
the CIL will automatically reconnect to another CTI OS (or reconnect to the same CTI OS after
restart), reestablish the session, and recover all objects for that session.
session management with the CTI OS Server, hiding all of the details of the TCP/IP sockets
connection. The CIL also provides out-of-the-box failover recovery: upon recovery from a failure,
the CIL will automatically reconnect to another CTI OS (or reconnect to the same CTI OS after
restart), reestablish the session, and recover all objects for that session.
•
All parameters are key-value pairs. The CTI OS CIL provides helper classes to treat all event and
request parameters as simply a set of key-value pairs. All properties on the CTI OS objects are
accessible by name via a simple Value = GetValue(“key”) mechanism. Client programmers can add
values of any type to the CTI OS Arguments structure, using the enumerated CTI OS keywords, or
their own string keywords (for example, AddItem(“DialedNumber”, “1234”)). This provides for
future enhancement of the interface without requiring any changes to the method signatures.
request parameters as simply a set of key-value pairs. All properties on the CTI OS objects are
accessible by name via a simple Value = GetValue(“key”) mechanism. Client programmers can add
values of any type to the CTI OS Arguments structure, using the enumerated CTI OS keywords, or
their own string keywords (for example, AddItem(“DialedNumber”, “1234”)). This provides for
future enhancement of the interface without requiring any changes to the method signatures.
•
Simple event subscription model. The CTI OS CIL implements a publisher-subscriber design
pattern to enable easy subscription to event interfaces. Programmers can subscribe to the appropriate
event interface that suits their needs, or use the IAllInOne interface to subscribe for all events. C++
and COM contain subclassable event adapter classes. These classes enable programmers to
subscribe to event interfaces; they only add minimal custom code for the events they use and no code
at all for events they do not use.
pattern to enable easy subscription to event interfaces. Programmers can subscribe to the appropriate
event interface that suits their needs, or use the IAllInOne interface to subscribe for all events. C++
and COM contain subclassable event adapter classes. These classes enable programmers to
subscribe to event interfaces; they only add minimal custom code for the events they use and no code
at all for events they do not use.
Illustrative Code Fragments
Throughout this manual, illustrative code fragments are provided both to clarify usage and as examples.
These fragments are written in several languages, including C++ and Visual Basic (VB). Although .NET
(and therefore VB .NET) is supported, note that the VB code fragments are written using VB 6 syntax.
These fragments are written in several languages, including C++ and Visual Basic (VB). Although .NET
(and therefore VB .NET) is supported, note that the VB code fragments are written using VB 6 syntax.