Developer's Guide
4-10
CTI Server Message Reference Guide (Protocol Version 15) for Cisco Unified Contact Center Enterprise
Release 8.5(1)
Chapter 4 Session Management
Session Maintenance
Session Maintenance
Compared to some other protocols, TCP/IP is relatively slow at detecting and recovering from
communication path failures. If an IP packet is dropped within the network, retransmission does not
occur until the sender notices a time-out. This time-out period is usually long enough to allow for
worst-case round-trip delays and network congestion. If you need more rapid error detection, you may
send an optional HEARTBEAT_REQ message to the CTI Server whenever no messages have been sent
for the heartbeat interval. Upon receipt of a HEARTBEAT_REQ message, the CTI Server should
immediately respond with a HEARTBEAT_CONF message. If three heartbeats go unconfirmed, the CTI
client should declare a session failure and reset the TCP connection.
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. A Heartbeat Interval of –1 disables heartbeats. The default and
recommended setting for application developers is –1. 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.
Figure 4-2 depicts the heartbeat message flow. Table 4-6 and Table 4-7 define the HEARTBEAT_REQ
and HEARTBEAT_CONF messages, respectively.