Cisco Cisco Computer Telephony Integration Option 8.5 Developer's Guide

Page of 490
   
4-21
CTI OS Developer’s Guide for Cisco Unified Contact Center Enterprise
Release 8.5(3)
Chapter 4      Building Your Application
Connecting to the CTI OS Server
Session Object Lifetime (C++ only)
In C++, you must create a Session object on the heap memory store so that it can exist beyond the scope of 
the method creating it. (In COM, VB, and Java, this is handled automatically.)
For example:
CCtiOsSession * m_pSession = NULL;
m_pSession = new CCtiOsSession();
The client application holds a reference to the Session object as long as it is in use, but the client 
programmer must release the last reference to the object to prevent a memory leak when the object is no 
longer needed.
During application cleanup, you must dispose the Session object only by invoking the 
CCtiOsSession::Release() method. This will ensure proper memory cleanup
.
For example:
m_pSession->Release();
How to Set the Event Listener and Subscribe to Events
Before making any method calls with the Session instance, you must set the session as an event listener 
for the desktop application and subscribe to events.
The following lines show this in 
Java:
rSession.AddEventListener(this, CtiOs_Enums.SubscriberList.eAllInOneList);
In this example, the session is adding the containing class, the desktop application as the listener, and 
using the eAllInOneList field in the CtiOs_Enums.SubscriberList class to subscribe to all events.
How to Set Connection Parameters for the Session
To set connection parameters:
Step 1
Create an instance of the Arguments class.
Step 2
Set values for the CTI OS servers, ports, and the heartbeat value.
Note
When setting values, use the String key fields in the CtiOs_IKeywordIDs interface, as shown in the 
example below.
The following example demonstrates this task in 
Java:
/* 1. Create Arguments object.*/
Arguments rArgs = new Arguments();
/* 2. Set Connection values.*/
rArgs.SetValue(CTIOS_enums.CTIOS_CTIOSA, “CTIOSServerA”);
rArgs.SetValue(CTIOS_enums.CTIOS_PORTA, 42408);
rArgs.SetValue(CTIOS_enums.CTIOS_CTIOSB, “CTIOSServerB”);
rArgs.SetValue(CTIOS_enums.CTIOS_PORTB, 42408);
rArgs.SetValue(CTIOS_enums.CTIOS_HEARTBEAT, 100);