Introduction

Deskphones support SIP Failover and Load balancing via DNS (SRV+NAPTR).

  • When the phone needs to send a SIP request, it gets a list of servers from DNS.
  • Then, the phone chooses a server in the list depending on the NAPTR and SRV priority and weight.
  • If the chosen server refuses the connection or does not reply within 32 seconds, the request is sent to the next server and so on.
  • The 32 seconds time can be reduced by reducing parameter sip_retry_t1.



How do you make sure that DNS-SRV is used

  • It uses Outbound Proxy field to control DNS-SRV
  • Even the server does not require outbound proxy, you still have to add the same FQDN in Outbound Proxy field and Registrar field
  • In Outbound Proxy field:
    • Phone uses NAPTR -> SRV -> A if Outbound Proxy field has only FQDN (such as "sbc.gigaset.com")
    • Phone uses SRV -> A if Outbound Proxy field has FQDN + transport (such as "sbc.gigaset.com;transport=udp")
    • Phone uses A-Only if if Outbound Proxy field has FQDN +port + transport (such as "sbc.gigaset.com:5060;transport=udp")



How does Failover work?

  • Failover/failback is based on the priority in DNS-SRV response
  • Always send subscription following failover/failback registration

  • Does not failback if there is an active call (XQI-6002)

Broadsoft failover plan

This setting determines which release of BroadWorks SIP Phone Interoperability Test Plan to be used as the failover/failback requirements.

Provisioning parameter: <broadsoft_failover_plan perm="">VALIDVALUE</broadsoft_failover_plan>

Valid Values

R22 - meets Broadsoft R22 Failover requirements

R23 - meets Broadsoft R23 Failover requirements

Please note:

For a full failover and recover / fall back experience under Broadsoft R23 Failover requirements & conditions its adviced to adjust the following settings to:

  1. sip_failover_response = 503 Service Unavailable
  2. broadsoft_failover_plan = R23 (See this page)
  3. sip_request_timeout1 = 24 (for failover time = 11.5sec, 32 for failover time = 15.5sec)
  4. dirty_host_ttl = 300 (for failback time = 5min)

This should provide a good start line, but of course environment specific adjustment of these settings might be required.