Cisco Cisco Computer Telephony Integration Option 8.5 Developer's Guide

Page of 668
 
3-15
CTI OS Developer’s Guide for Cisco ICM/IPCC Enterprise & Hosted Editions Release 7.1(1)
 
Chapter 3      CIL Coding Conventions
Obtaining Objects from UniqueObjectIDs
The ICMEnterpriseUniqueID in CTI OS takes the form of a variable-length string 
with the form
“icm.routercallkeyday.routercallkeycallid”
where routercallkeyday is the field Day in the ICM Route_Call_Detail and 
Termination_Call_Detail tables, and routercallkeycallid is the field 
RouterCallKey in the ICM Route_Call_Detail and Termination_Call_Detail 
tables.
The CTI OS server enables certain types of monitor mode applications that track 
the pre-call notification event (eTranslationRouteEvent or eAgentPrecallEvent) 
and seek to match the call data with the arrival of an eCallBeginEvent. 
To do so, the application will receive the pre-call notification (for calls routed by 
ICM (either pre-route, post-route, or translation route), and create a record 
(object) using the ICMEnterpriseUniqueID field as the with a unique key. Later, 
when the call arrives at the ACD, and is queued or targeted (by the ACD) for a 
specific agent, the application can match the saved record (object) with the 
incoming call by the ICMEnterpriseUniqueID field. The following events will 
contain the ICMEnterpriseUniqueID that can be used to associate a call with the 
saved call information:
  •
eCallBeginEvent 
  •
eCallDataUpdateEvent
  •
eSnapshotCallConf
  •
eCallEndEvent
Obtaining Objects from UniqueObjectIDs
Client applications written to take advantage of the CIL can use the 
UniqueObjectID to obtain a pointer (in C++ or COM for C++) or a reference (in 
other languages) to the underlying object.
The CIL Session object provides easy access to the object collections via several 
methods, including GetObjectFromObjectID. GetObjectFromObjectID takes as a 
parameter the string UniqueObjectID of the desired object, and returns a pointer 
to the object. Since this mechanism is generic, and does not contain specific 
information about the object type retrieved, the pointer (or reference) returned is 
a pointer or reference to the base class: a CCtiosObject* in C++, an Object in 
Visual Basic, an IDispatch* in COM for C++, or CtiOsObject in .NET and Java.