I was thinking of using bind nameserver and SVR dns record to make a high availability SIP system (two or more SIP servers interconnected and share the same configuration).
Why use DNS SRV records for SIP?
Dialling by domain names lets a SIP user have a single public “SIP address” which can be redirected at will to their current location. SRV records maintain stability and also opens up the possibility to use your own domain, regardless of the domain of the SIP service you are using.
A Domain Name Server (DNS) SRV record helps connecting to a SIP user in a similar way that an MX record helps email delivery.
In a DNS zone, you can specify multiple SIP proxies. If the proxy with the highest priority is not reachable, the SIP ua or proxy that tries to reach a user within the domain tries the next proxy defined in the zone with a SRV record (round robin).
Each device listed in a DNS SRV record has an associated weight and priority. By adjusting the weight and priority of routes, system administrators can tailor the capacity and redundancy behavior of the SIP proxy server to their routing needs.
It is important to verify that a SIP client specifically supports DNS SRV records.
DNS configuration example for mysipdomain.com:
@ SOA ns1.mysipdomain.com. root.mysipdomain.com. (
1995032001 3600 3600 604800 86400 )
; sample dns configuration by pilovis
; Section for authoritative nameservers
; Section for load balancing
; in this example for service sip give 3 requests to main.mysipdomain.com for each 1 given
; to secondary.mysipdomain.com
; note you can use SRV 0 1 for both to have 50% load balancing
_sip._udp.mysipdomain.com SRV 0 1 5060 main.mysipdomain.com. SRV 0 1 5060 main.mysipdomain.com.
SRV 0 3 5060 secondary.mysipdomain.com.
; Section for redundancy
; if any of the above main servers don’t answer, failover to backup voip server
SRV 1 0 5060 backup.mysipdomain.com.
; note the svr record format is
; _service._proto.name TTL class SRV priority weight port target
; you may also use as target your external SIP provider domain
; - notes -
; TTL is time to live of the record in client dns cache and could be omitted
; when TTL expire the client purges the local dns cache and makes another dns query to the
; authoritative DNS server so if the main server is up again it will restart handling the SIP service
; class field is always IN
; priority is the the priority of the target host, lower value means more preferred
; weight is A relative weight for records with the same priority
; port is the TCP or UDP port on which the service is to be found
; target is the the canonical hostname of the machine providing the service
; section for A records - name to IP address resolution
; please note you need an A record for each host you set an SRV for
; except for external domains that are already resolved by their nameservers
ns1.mysipdomain.com. IN A 10.0.0.1
main.mysipdomain.com. IN A 10.0.0.3
secondary.mysipdomain.com. IN A 10.0.0.4
backup.mysipdomain.com. IN A 10.0.0.5
; in this specific example you do not need an A record for ns2.nselsewhere.com.
; since it’s an external domain already resolved
; but if the secondary dns it is within your domain then you need the A record here
An option with a specific module in a future FreePBX release would be a very nice feature.
P.S.: sorry if my technical English is not perfect, I’m Italian.
I hope you can understand.