Cisco Cisco Computer Telephony Integration Option 8.5 Developer's Guide

Page of 262
C H A P T E R
   
2-1
CTI Server Message Reference Guide (Protocol Version 15) for Cisco Unified Contact Center Enterprise
Release 8.5(1)
2
CTI Client Application Guidelines
This chapter discusses some considerations to keep in mind when you are writing CTI client applications 
that will make use of CTI Server data. Topics discussed in this chapter include:
Invoke IDs
Heartbeat messages
ACD-specific considerations
Message masks
Message order
Symbolic constants definition file
TCP/IP connections
Data element alignment
InvokeIDs
The CTI protocol provides an integer InvokeID field in each request message. This field is always 
returned in the corresponding response message. You can set the Invoke ID to a unique value for each 
request you sent to the server. This allows you to have multiple requests outstanding and to correctly 
determine which request’s response has been received. For example, you can implement a simple counter 
that is incremented with each request.
Heartbeat Messages
The Heartbeat Interval designates the time in seconds between sending heartbeat messages to the CTI 
Server. A Heartbeat Interval of -1 disables heartbeats. The default and recommended setting for 
application developers is -1. You must determine the appropriate heartbeat interval for a production 
environment -- it depends on the application and the environment. It should represent a reasonable 
balance between the speed of failure detection and the network bandwidth consumed by heartbeat 
messages and their corresponding confirmations. In cases where there are very few CTI clients, such as 
a CTI Bridge, the minimum heartbeat interval of 5 seconds should suffice. Workstation (desktop) clients 
should use a much larger heartbeat interval (at least 90 seconds is recommended), since these clients 
typically number into the hundreds and possibly thousands. However, if the TCP/IP time-out period is 
adequate, or if there is nothing the application can do even if it is aware that something is wrong, it may 
be appropriate to disable heartbeats even in a production environment.