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:

  1. 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.

  2. 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

;_sip._udp.sip.voice.google.com.        IN      SRV

_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.

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.

alt1.voice-sip.l.google.com. 300 IN     A
voice-sip.l.google.com. 300     IN      A
alt4.voice-sip.l.google.com. 300 IN     A
alt2.voice-sip.l.google.com. 300 IN     A
alt3.voice-sip.l.google.com. 300 IN     A
ns1.google.com.         342957  IN      A
ns2.google.com.         342957  IN      A
ns3.google.com.         319271  IN      A
ns4.google.com.         342957  IN      A

;; Query time: 18 msec
;; WHEN: Fri Mar 11 18:01:49 2011
;; MSG SIZE  rcvd: 494

Topics: About VoIP