cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
2190
Views
5
Helpful
0
Comments
Reena Mundary
Level 1
Level 1

Contents

 

1. Connection profiles

2. Heartbeating mechanism

3. How the heart beating mechanism works on the CTI OS client before failover.

4. Lab and Log Analysis

 

Connection Profile 

The ConnectionProfiles key contains an organized list of the connection information of all configured CTIOS Servers present in the corporate network that you can access by a client application.

The connection profiles are defined in the registry of each server at the following location:

 

HKEY_LOCAL_MACHINE\SOFTWARE\Cisco Systems Inc.\CtiOs\<CTIOS InstanceName>\ <CTIOSServerName>\ EnterpriseDesktopSettings\All Desktops\Login\ConnectionProfiles\Name

 

While Agent login, it’s connect to the same profile (ex:UCCE)and download all information.

 

Heartbeat Mechanism

The heartbeating mechanism uses the MaxHeartbeats and Heartbeat values in registry together to determine when a client must send heartbeat requests to the server and when the client must connect to the other server.

 

MaxHeartbeats (Default = 3): It is the max number of missed heartbeats before failover.

Heartbeat (Default = 5): It is the time interval between consecutive heartbeats.

 

How the heart beating mechanism works on the CTI OS client before failover

  • After 5 seconds, if the client does not receive a response from the server, it sends a heartbeat request 1.
  • After 5 seconds, if the client does not receive a response from the server, it sends a heartbeat request 2.
  • After another 5 seconds, if the client does not receive a response from the server, it sends a heartbeat request 3.
  • After yet another 5 seconds, if the client does not receive any response from the server, it connects to an alternative server.

 

LAB and Log Analysis

  • CTIOS Client Connects to SideB CTIOS.

  • Now disabled the CTIOS Side B network connection , after sometime the Client failback to Side A

  • The heartbeat parameters above are only a factor if the TCP/IP socket is not broken. For example, if you disconnect the network cable to the CTI OS Server, TCP/IP does not break the socket. In this case, the client uses the heartbeating mechanism listed above to detect the failure.

.

//1st heartbeat missing

01/21/15 13:24:36.707  3176  CTIOSSoftphone  Thd(3172)  CCtiOsSession::OnEvent, (MsgID:eOnMissingHeartbeat EvtTime:11676707 HBIntv:5000 MissedHBs:1)

01/21/15 13:24:36.707  3176  CTIOSSoftphone  Thd(3172)  CObjectManager::GetTarget( eOnMissingHeartbeat )

01/21/15 13:24:36.707  3176  CTIOSSoftphone  Thd(3172)  CSessionManager::OnEvent( eOnMissingHeartbeat )

01/21/15 13:24:36.707  3176  CTIOSSoftphone  Thd(3172)  CCtiOsSession::OnMissingHeartbeat()

01/21/15 13:24:36.707  3176  CTIOSSoftphone  Thd(3172)     EventTime ---------[11676707]

01/21/15 13:24:36.707  3176  CTIOSSoftphone  Thd(3172)     MissedHeartbeats --[1]

01/21/15 13:24:36.707  3176  CTIOSSoftphone  Thd(3172)     HeartbeatInterval -[5000]

01/21/15 13:24:36.707  3176  CTIOSSoftphone  Thd(3172)  CCtiOsSession::FireEvent( Type(0), Evt(eOnMissingHeartbeat), EnablementMask = -1 )

01/21/15 13:24:36.707  3176  CTIOSSoftphone  Thd(3172)  CCtiOsSession::FireEvent( Type(0), Evt(eOnMissingHeartbeat), EnablementMaskExtension = -1 )

01/21/15 13:24:36.707  3176  CTIOSSoftphone  Thd(3172)  CCtiOsSession::FireEvent, (EvtTime:11676707 HBIntv:5000 MissedHBs:1)

01/21/15 13:24:36.707  3176  CTIOSSoftphone  Thd(3172)  CEventPublisher::FireSessionEvent( eOnMissingHeartbeat )

 

 

 

 

//2nd heartbeat missing after 5sec

01/21/15 13:24:41.707  3176  CTIOSSoftphone  Thd(3172)  CCtiOsSession::OnEvent( eOnMissingHeartbeat ), EnablementMask = ffffffff

01/21/15 13:24:41.707  3176  CTIOSSoftphone  Thd(3172)  CCtiOsSession::OnEvent, (MsgID:eOnMissingHeartbeat EvtTime:11681707 HBIntv:5000 MissedHBs:2)

01/21/15 13:24:41.707  3176  CTIOSSoftphone  Thd(3172)  CObjectManager::GetTarget( eOnMissingHeartbeat )

01/21/15 13:24:41.707  3176  CTIOSSoftphone  Thd(3172)  CSessionManager::OnEvent( eOnMissingHeartbeat )

01/21/15 13:24:41.707  3176  CTIOSSoftphone  Thd(3172)  CCtiOsSession::OnMissingHeartbeat()

01/21/15 13:24:41.707  3176  CTIOSSoftphone  Thd(3172)     EventTime ---------[11681707]

01/21/15 13:24:41.707  3176  CTIOSSoftphone  Thd(3172)     MissedHeartbeats --[2]

01/21/15 13:24:41.707  3176  CTIOSSoftphone  Thd(3172)     HeartbeatInterval -[5000]

01/21/15 13:24:41.707  3176  CTIOSSoftphone  Thd(3172)  CCtiOsSession::FireEvent( Type(0), Evt(eOnMissingHeartbeat), EnablementMask = -1 )

01/21/15 13:24:41.707  3176  CTIOSSoftphone  Thd(3172)  CCtiOsSession::FireEvent( Type(0), Evt(eOnMissingHeartbeat), EnablementMaskExtension = -1 )

01/21/15 13:24:41.707  3176  CTIOSSoftphone  Thd(3172)  CCtiOsSession::FireEvent, (EvtTime:11681707 HBIntv:5000 MissedHBs:2)

01/21/15 13:24:41.707  3176  CTIOSSoftphone  Thd(3172)  CEventPublisher::FireSessionEvent( eOnMissingHeartbeat )

 

 

//3rd and the final heartbeat missing

01/21/15 13:24:46.707  3176  CTIOSSoftphone  Thd(3756)  CCilConnection(05534C78)::WatchdogThread, FAILED all heartbeat retry attempts, closing connection

 

// 4th time Client reports that connection to CTIOS server B fails and connect to CTIOS Side A.

01/21/15 13:24:51.410  3176  CTIOSSoftphone  Thd(3172)  CCtiOsSession::OnEvent( eOnConnectionFailure ), EnablementMask = ffffffff

01/21/15 13:24:51.410  3176  CTIOSSoftphone  Thd(3172)  CCtiOsSession::OnEvent, (MsgID:eOnConnectionFailure EvtTime:11686707 RsnCode:1 FailedSvr:10.104.209.84)

01/21/15 13:24:51.410  3176  CTIOSSoftphone  Thd(3172)  CObjectManager::GetTarget( eOnConnectionFailure )

01/21/15 13:24:51.410  3176  CTIOSSoftphone  Thd(3172)  CSessionManager::OnEvent( eOnConnectionFailure )

01/21/15 13:24:51.410  3176  CTIOSSoftphone  Thd(3172)  CCtiOsSession::OnConnectionFailure()

01/21/15 13:24:51.410  3176  CTIOSSoftphone  Thd(3172)     EventTime --------[11686707]

01/21/15 13:24:51.410  3176  CTIOSSoftphone  Thd(3172)     FailedServer -----[10.104.209.84]

01/21/15 13:24:51.410  3176  CTIOSSoftphone  Thd(3172)     ReasonCode -------[1]

 

 

01/21/15 13:24:51.442  3176  CTIOSSoftphone  Thd(3172)  ** Attempting to connect to server [pga9 (10.104.209.129) port:42028] **

01/21/15 13:24:51.442  3176  CTIOSSoftphone  Thd(3172)  CCtiOsSession::OnEvent( eOnConnection ), EnablementMask = ffffffff

01/21/15 13:24:51.442  3176  CTIOSSoftphone  Thd(3172)  CCtiOsSession::OnEvent, (MsgID:eOnConnection EvtTime:11691442 CurSvr:pga9 CurPort:42028 SecConn:0)

01/21/15 13:24:51.442  3176  CTIOSSoftphone  Thd(3172)  CObjectManager::GetTarget( eOnConnection )

01/21/15 13:24:51.442  3176  CTIOSSoftphone  Thd(3172)  CSessionManager::OnEvent( eOnConnection )

01/21/15 13:24:51.442  3176  CTIOSSoftphone  Thd(3172)  CCtiOsSession::OnConnection()

01/21/15 13:24:51.442  3176  CTIOSSoftphone  Thd(3172)     EventTime --------[11691442]

01/21/15 13:24:51.442  3176  CTIOSSoftphone  Thd(3172)     CurrentServer ----[pga9]

01/21/15 13:24:51.442  3176  CTIOSSoftphone  Thd(3172)     CurrentPort ------[42028]

01/21/15 13:24:51.442  3176  CTIOSSoftphone  Thd(3172)     SecureConnection -[0]

 

 

Note: CTI OS Server process crashes or the machine is turned off, the socket breaks and the client immediately knows that the connection has failed. In this case, the client directly connects to the other server without heartbeat attempts.

 

Refer Design guide for UCCE for more information

Getting Started

Find answers to your questions by entering keywords or phrases in the Search bar above. New here? Use these resources to familiarize yourself with the community: