Sunday, 27 September 2015

CUCM SIP Trunk Failover


CUCM Server Group Redundancy

CUCM SIP trunks are having DPs which can contain up to three CUCM servers for cluster redundancy purpose. The selection of CUCM node which will source SIP messages over the trunk is controlled by Route Local Service and depends on:

Without 'Run on All Active Nodes'

In this mode, we have two sub-divisions:

  1. If Route-Pattern is pointing to Route-List/Route-Group
RL will be active ONLY on the CUCM server which it is registered with. Also, CUCM will consider the RL as the calling device. Accordingly,
  1. If the calling device (Route List) isn't registered with any of the servers in the outgoing SIP Trunk CUCM Server Group, CUCM will distribute the outgoing calls signaling in round-robin mode across all the servers in the SIP trunk CUCM Server Group
  2. If the calling device (Route List) is registered to a server in the outgoing SIP trunk CUCM Server Group, this server will be used to initiate the outbound calls (i.e. the server where the RL is registered to)
  1. If Route-Pattern is pointing to SIP Trunk Directly   
    1. If the calling endpoint is registered to the same CUCM server that is part of the CUCM group assigned to the sip trunk, then use the server the phone/endpoint is registered to for initiating the outbound SIP call
    2. If the calling endpoint is registered to a CUCM server that is not part of the CUCM group assigned to the sip trunk, then cucm will distribute the call across the servers in the trunk’s CUCM group using round-robin

With 'Run on All Active Nodes'

Similarly, we have two sub-divisions:

  1. If enabled on Route-List
This feature will enable RL on all CUCM nodes instead of primary CUCM. Outbound Trunk calls originate from the same node that the inbound call arrives on
  1. If enabled on SIP Trunk
This feature will enable up to 16 nodes on CUCM cluster to originate SIP signaling instead of 3 nodes associated with CUCM Server Group. Outbound Trunk calls originate from the same node that the inbound call arrives on

CUCM SIP Trunk Destination

Prior to CUCM 8.5, SIP trunks can point to one remote destination ONLY. Therefore redundancy across multiple destinations can't be done. BUT pointing the trunk to domain name instead of IP address will provide redundancy at DNS level. The domain-name can be associated with multiple IPs with different resolving priorities (preferences) for redundancy. It’s always preferred to keep the number of IPs mapped to domain-name equal to number of servers in UCM Group assigned to the trunk.

Starting from CUCM 8.5, SIP trunk can point to 16 destination IPs or single DNS record (by checking Destination Address is an SRV).

Route-List & Route-Group Redundancy

Another level of redundancy can be provided using CUCM Call Routing Route-Groups/Route-Lists as mentioned in Call Routing section. Multiple trunks can be assigned to Route-Group with configurable distribution algorithm. Also, Route-Groups can be placed in Priority Order in Route-List.

However, similar to IOS SIP, timers at CUCM level should be tuned properly to achieve failover between trunks before call disconnect. This can be tuned as follow: