Cisco Cisco Computer Telephony Integration OS 8.5 Developer's Guide
4-38
CTI OS Developer’s Guide for Cisco Unified Contact Center Enterprise
Release 8.5(3)
Chapter 4 Building Your Application
Working with Calls
It is not necessary to maintain a set of Call Objects to do this. Instead, the application can store the string
UniqueObjectID of each call (keyword CTIOS_UNIQUEOBJECTID). CTIOS_UNIQUEOBJECTID is
always included in the args parameter for each call event. You can obtain the actual Call Object with the
Session object's GetObjectFromObjectID() method to make a method call.
UniqueObjectID of each call (keyword CTIOS_UNIQUEOBJECTID). CTIOS_UNIQUEOBJECTID is
always included in the args parameter for each call event. You can obtain the actual Call Object with the
Session object's GetObjectFromObjectID() method to make a method call.
What is the Current Call?
The CIL maintains a concept of a Current Call, which is the call for which the last
OnButtonEnablementChange() event was fired. Knowing which call is the Current Call is useful when
there are multiple components which set and act on the Current Call, such as telephony ActiveX
Controls.
OnButtonEnablementChange() event was fired. Knowing which call is the Current Call is useful when
there are multiple components which set and act on the Current Call, such as telephony ActiveX
Controls.
The CTI OS ActiveX controls included in the CTI OS Toolkit use the concept of the Current Call. The
CallAppearance grid control sets the Current Call when the user clicks on a particular call in the grid.
When the user clicks the Answer control, this control must get the Current Call in order to call the
Answer() method on the correct call.
CallAppearance grid control sets the Current Call when the user clicks on a particular call in the grid.
When the user clicks the Answer control, this control must get the Current Call in order to call the
Answer() method on the correct call.
The Current Call is set according to the following rules:
•
When there is only 1 call on a device, the CIL sets it to the Current Call.
•
When there are multiple calls on a device and an application wants to act on a call that is not the
Current Call, it sets a different call to the Current Call with the SetCurrentCall() method.
Current Call, it sets a different call to the Current Call with the SetCurrentCall() method.
•
When the call which is the Current Call ends, leaving multiple calls on the device, the application
must set another call to be the Current Call.
must set another call to be the Current Call.
•
Whenever the Current Call is set to a different call, OnCurrentCallChanged() event is fired as well
as an OnButtonEnablementChange() event.
as an OnButtonEnablementChange() event.
How to Get a Call Object
You can get the Call object from the session using the GetObjectFromObjectID() method.
The following code fragment, which assumes that existing Call Unique Identifiers are stored in an array
called UIDArray, shows how to get a specific Call object in Java:
called UIDArray, shows how to get a specific Call object in Java:
String sThisUID = UIDArray[Index];
Call ThisCall = (Call) m_Session.GetObjectFromObjectID(sThisUID);
How to Set the Current Call for the Session
To set the current call you use the SetCurrentCall() method for the Session. The following code
fragment, which assumes you retrieved the Call object as described in the previous section, shows how
to set the current call.
fragment, which assumes you retrieved the Call object as described in the previous section, shows how
to set the current call.
The following line shows this in Java:
m_Session.SetCurrentCall(ThisCall);