What are DNS SRV records for SIP?
Let’s say your name is Al and you work for a company called Acme Corp. Your company has recently signed up for a corporate VoIP phone system and you’re given a SIP address, Al@acme.com. In an ideal world, your friends and colleagues who are also familiar with VoIP know that they can dial Al@acme.com to reach you wherever you have a device registered.
How does this work?
Dialing by domain names allows you to have a public SIP address that follows you much like your email address would. It doesn’t really matter where you are or what device you use; as long as you’re ‘logged in’ (registered), SIP communications will be redirected to your current location.
A Domain Name Server (DNS) SRV record for SIP does the same thing as a mail exchanger record for email. When your friends call you at Al@acme.com, the SRV record tells their SIP phones to do so by connecting to a completely different domain being used by your VoIP phone system (SIP) provider.
This does two things for SIP providers and SIP users:
Greater stability.
From the RFC:
“The SRV RR allows administrators to use several servers for a single domain, to move services from host to host with little fuss, and to designate some hosts as primary servers for a service and others as backups.”
If for some reason the ‘host’ with the highest priority cannot be reached, the SIP phone or proxy trying to reach the user within the domain will attempt to reach the next host defined within the SRV record.
Allows SIP users to get their own domains for their SIP addresses, regardless of the domain of their SIP provider.
We refer to this as SIP hosting, and it’s a service that we offer free of charge. A SIP proxy can handle SIP users in multiple domains just like a mail server handles e-mail for multiple domains. To set this up, the zone file in the DNS SRV records of the user’s domain (acme.com) needs to point to a SIP proxy that is located elsewhere (sip.onsip.com). Calls to the user domain will then be automatically redirected to the SIP proxy.
The following is an SRV DNS Lookup of sip.voice.google.com. As you can see below, the query returns 5 hostnames for inbound SIP traffic to that domain.
Google Voice UDP Record
$ dig _sip._udp.sip.voice.google.com SRV ; <<>> DiG 9.6.0-APPLE-P2 <<>> _sip._udp.sip.voice.google.com SRV ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 8463 ;; flags: qr rd ra; QUERY: 1, ANSWER: 5, AUTHORITY: 4, ADDITIONAL: 9 ;; QUESTION SECTION: ;_sip._udp.sip.voice.google.com. IN SRV ;; ANSWER SECTION: _sip._udp.sip.voice.google.com. 86400 IN SRV 20 1 5060 alt1.voice-sip.l.google.com. _sip._udp.sip.voice.google.com. 86400 IN SRV 10 1 5060 voice-sip.l.google.com. _sip._udp.sip.voice.google.com. 86400 IN SRV 50 1 5060 alt4.voice-sip.l.google.com. _sip._udp.sip.voice.google.com. 86400 IN SRV 30 1 5060 alt2.voice-sip.l.google.com. _sip._udp.sip.voice.google.com. 86400 IN SRV 40 1 5060 alt3.voice-sip.l.google.com. ;; AUTHORITY SECTION: google.com. 146471 IN NS ns3.google.com. google.com. 146471 IN NS ns2.google.com. google.com. 146471 IN NS ns1.google.com. google.com. 146471 IN NS ns4.google.com. ;; ADDITIONAL SECTION: alt1.voice-sip.l.google.com. 300 IN A 74.125.95.192 voice-sip.l.google.com. 300 IN A 74.125.95.192 alt4.voice-sip.l.google.com. 300 IN A 74.125.95.192 alt2.voice-sip.l.google.com. 300 IN A 74.125.95.192 alt3.voice-sip.l.google.com. 300 IN A 74.125.95.192 ns1.google.com. 342957 IN A 216.239.32.10 ns2.google.com. 342957 IN A 216.239.34.10 ns3.google.com. 319271 IN A 216.239.36.10 ns4.google.com. 342957 IN A 216.239.38.10 ;; Query time: 18 msec ;; SERVER: 207.172.3.8#53(207.172.3.8) ;; WHEN: Fri Mar 11 18:01:49 2011 ;; MSG SIZE rcvd: 494