Cisco Cisco Computer Telephony Integration Option 8.5 Developer's Guide

Page of 278
C H A P T E R
2-1
CTI Server Message Reference Guide (Protocol Version 9) Release 7.0(0)
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.