High availability for BroadWorks SIPREC recording

High availability and automatic failover for SIPREC interface is based on two technologies:

How it works

BroadWorks platform supports DNS SRV records for SIPREC interface. This allows building of the following configurations:

  • Multiple recording servers and split SIPREC traffic between them (load balancing)
  • Multiple recording servers with automatic failover from a primary server to a secondary one.
  • A combination of above two variants.

MiaRec supports automatic call replication between two or more recording servers. Audio file and call metadata is automatically uploaded to replication target server(s) upon call completion or by schedule (for example, at night).

Broadworks SIPREC redundant recorder

Example of DNS SVR records

# _service._proto.name.  TTL    class   SRV   priority  weight    port   target.
_sip._tcp.example.com.   86400  IN      SRV   10        40        5060   miarec1.example.com.
_sip._tcp.example.com.   86400  IN      SRV   10        30        5060   miarec2.example.com.
_sip._tcp.example.com.   86400  IN      SRV   10        30        5060   miarec3.example.com.
_sip._tcp.example.com.   86400  IN      SRV   20        0         5060   miarec4.example.com.

The first three records share a priority of 10, so the weight field’s value will be used by BroadWorks to determine which recording server to contact. The sum of all three values is 100, so “miarec1” will be used 40% of the time. The remaining two hosts “miarec2” and “miarec3” will be used for 30% of requests each. If “miarec1” is unavailable, these two remaining servers will share the load equally, since they will each be selected 50% of the time.

If all three servers with a priority of 10 are unavailable, the records with the next lowest priority value will be chosen, which is “miarec4”. This might be a machine in another physical location, presumably not vulnerable to anything that would cause the first three servers to become unavailable.

Limitations:

  • The load balancing provided by SRV records is inherently limited, since the information is essentially static. Current load of servers is not taken into account.
  • In case of failover from one server to another, the currently active recordings on the failed server are interrupted. A new recording server will handle only new SIPREC requests.

Check also: MiaRec automatic replication