VOIP DNS SRV configuration examples

Unanswered Question
Apr 29th, 2010


We would like to configure DNS SRV to provide high availability in a complex VOIP scenario (CallManager, Presence, Unity Connection, IPCC, ...).

Can you provide some configuration examples (both DNS and appliance side)?

Moreover, we would like to get high availability for some VOIP services, such as CallManger URL directory access.

Is there a way to get that without a load balancer, but only with the use of DNS?

Thanks and regards!

I have this problem too.
0 votes
  • 1
  • 2
  • 3
  • 4
  • 5
Overall Rating: 5 (4 ratings)
William Bell Thu, 04/29/2010 - 07:27

I have used DNS SRV records for CUPS and CUCM integration. In my opinion it is the only way to provide real redundancy with this integration. I did a write up on it here:


If you are using CUCM 7.x, services like corporate directory have redundancy built-in. Unless you are using external provisioning (i.e. a custom corporate directory app). For other applications you must define the SLA you wish to provide for the app in questions. As you may already know, an application like Web Dialer has redundancy built into the backend but if you do not have redundancy built-in for the user interface portion, the backend redundancy is useless.

You have two options. Option 1 is to use a SLB (like Cisco ACE). This is more preferred because it can provide more predictable behavior and can give you near real-time failover. Option 2 is to use DNS. In DNS you can create multiple A records whereby the DNS name points to different hosts in the cluster. The DNS server will send back all IP addresses associated with the DNS record. The Cisco IP phones can handle this DNS response just fine.

Option 2 has some drawbacks. The obvious one is delay. If the first IP address the phone tries to use is associated to a machine that is off line, the HTTP request to that server must timeout first before the phone tries the second IP address in its DNS cache. This timeout is something like 30 - 45 seconds (my tests have shown 30 to be the average, but that is just my testing). But, the phone will "failover" as it were.

Expanding on option 2 behavior, in my lab I found that phones running firmware 8.5(3) and later 8.x trains actually have a slick feature. With 8.5(2) phones (for example) when a phone makes a HTTP request for a service on a server that is offline you have to waith 30+ seconds for the phone to try the second server in the DNS cache. Further, every subsequent request takes another 30+ seconds. That basically makes some services unusable. With 8.5(3), my tests showes that 7941/61, 7942/62, 7945/65, and 7906 phones will actually stop using the primary (i.e. failed) server IP address for the particular DNS name. Meaning, the first request is 30+ due to the timeout of connecting to the first server IP address. However, all subsequent requests are direct to the secondary server and instantaneous. I believe that 8.5(3) included the fix to defect CSCsz94878. I believe that accounts for the performance improvement I saw in the lab. I have not tested 9.x code nore have I tested 99xx, 89xx series phones.




raziel78kain Thu, 04/29/2010 - 08:08

Dear William,

thanks for the link about SRV!

About your phrase "If you are using CUCM 7.x, services like corporate directory have redundancy built-in", if we have for example a publisher (ciscocm1, and a subscriber (ciscocm2, do we have to add some DNS records like these ones:

ciscocm     IN     A

ciscocm     IN     A

and then update URL Directories setting from




I suppose that, if we don't touch the URL (so that it remains http://ciscocm1:8080/ccmcip/xmldirectory.jsp), if the publisher goe down the directories don't work anymore, is it right?


William Bell Thu, 04/29/2010 - 08:25

What version of CUCM are you running?

By "built-in" I am saying that in 7.x the corporate directory is an enterprise enabled IP phone service.  So, phones will use the Call Manager server they are registered with to submit the directory query.  If the CallManager drops off line, the phone will automatically submit the request to the secondary CallManager (since it will now be registered to that particular server).  So, you don't need to monkey with DNS for corporate directory.  Unless, you are using a custom (purchased or home brewed) corp directory application.

Again, this is a 7.x feature.  So, the version you are running is important.

Now if you are running a non-7.x feature or you are running a custom corp directory app OR we are talking about another application like Extension Mobility THEN a config like the one you provided makes sense. Except that you may need the ttl timer.



Please remember to rate helpful posts.

raziel78kain Thu, 04/29/2010 - 08:57

Dear William,

we have 7.x CMs.

What do you mena when you write "you may need the ttl timer"?

Do you mean that TTL timer has to be set low (for example, 10 seconds)?


William Bell Thu, 04/29/2010 - 12:47

No, I don't mean you have to set it to a lower value than the default. I am just use to seeing it set on the A record line entry. Sorry for the confusion.




This Discussion