
Document ID: 116729
Updated: Nov 22, 2013
Contributed by Kristof Van Coillie, Cisco TAC Engineer.
Introduction
In deployments where endpoints are registered on the Cisco Unified Communications Manager (CUCM) and calls are routed through a Video Communication Server (VCS), intercompany calls or calls to a different domain might not be routed properly.
This document describes how the problem of sending a call out to a wrong destination address can occur, as well as how the problem can be resolved if you strip the port from the invite.
Cisco recommends that you have knowledge of these topics:
- Cisco Unified Communications Manager
- Domain Name System (DNS) zone
Problem
In this example, the call flow is an outgoing call from an endpoint registered on a CUCM cluster to a DNS zone on the VCS Expressway:
There is a neighbor zone configured between the VCS Control and the CUCM cluster, and a traversal zone configured between the VCS Control and the VCS Expressway. When the CUCM sends a call out over a Session Initiation Protocol (SIP) trunk, it adds the port number to the Uniform Resource Identifier (URI):
Module="network.sip" Level="DEBUG": Src-ip="10.48.79.189" Src-port="25018"
SIPMSG:
|INVITE sip:user@company.com:5060 SIP/2.0
The VCS Control has a search rule that sends the call to the VCS Expressway. The VCS Expressway is configured so the search rule sends this call to a DNS zone. If there are no modifications on the URI, the VCS Expressway does an A-record lookup:
Module="network.dns" Level="DEBUG": Detail="Sending DNS query"
Name="company.com" Type="A and AAAA"
Module="network.dns" Level="DEBUG": Detail="Resolved hostname to:
['IPv4''TCP''10.10.10.10'] (A/AAAA) Number of relevant records
retrieved: 1"
The VCS Expressway also does a DNS server (SRV) lookup for the domain:
Module="network.dns" Level="DEBUG": Detail="Sending DNS query"
Name="_sips._tcp.company.com" Type="SRV (IPv4 and IPv6)"
Module="network.dns" Level="DEBUG": Detail="Resolved hostname to:
['IPv4''TCP''10.10.10.10:5061'] (A/AAAA) Number of relevant records
retrieved: 1"
When the invite is sent, the result of the A-record lookup is used:
Event="Request Sent" Service="SIP" Src-ip="10.48.79.123" Src-port="5060"
Dst-ip="10.10.10.10" Dst-port="5060"
Call-serial-number="617a2b3a-407b-11e3-882a-000c291377f3"
Tag="617331f4-407b-11e3-b012-000c29f5e10e" Protocol="UDP"
Method="INVITE" Request-URI="sip:user@company.com:5060"
To="sip:user@10.48.79.189" Level="2" UTCTime="2013-10-29 09:20:41,210"
This is not the desired behavior, because the address is not that of the VCS Expressway, but of the web server that is hosting www.company.com.
Solution
Use transform rules either on the VCS Control or the VCS Expressway in order to strip the port from the invite. This allows the VCS Expressway to use Naming Authority Pointer (NAPTR) and SRV lookups.
For an example of how to strip the port, see "Enabling endpoints registered on Unified CM to call endpoints registered on VCS" section on page 24 of the Cisco Telepresence Cisco Unified Communications Manager with Cisco VCS (SIP Trunk) Deployment Guide.
Once the port is stripped, the VCS Expressway does a NAPTR and SRV lookup:
Module="network.dns" Level="DEBUG": Detail="Sending DNS query"
Name="company.com" Type="NAPTR (IPv4 and IPv6)"
Module="network.dns" Level="DEBUG": Detail="Could not resolve hostname"
Module="network.dns" Level="DEBUG": Detail="Sending DNS query"
Name="_sips._tcp.company.com" Type="SRV (IPv4 and IPv6)"
Module="network.dns" Level="DEBUG": Detail="Resolved hostname to:
['IPv4''TCP''10.10.10.20:5061'] (A/AAAA) Number of relevant records
retrieved: 1"
Module="network.dns" Level="DEBUG": Detail="Sending DNS query"
Name="_sip._tcp.company.com" Type="SRV (IPv4 and IPv6)"
Module="network.dns" Level="DEBUG": Detail="Resolved hostname to:
['IPv4''TCP''10.10.10.20:5060'] (A/AAAA) Number of relevant records
retrieved: 1"
Module="network.dns" Level="DEBUG": Detail="Sending DNS query"
Name="_sip._udp.company.com" Type="SRV (IPv4 and IPv6)"
Module="network.dns" Level="DEBUG": Detail="Could not resolve hostname"
The VCS Expressway uses the result from the SRV (rather than the A-record lookup) in order to establish the call. This is the desired behavior, and the call succeeds:
Module="network.tcp" Level="DEBUG": Src-ip="10.48.79.123" Src-port="25005"
Dst-ip="10.10.10.20" Dst-port="5061" Detail="TCP Connecting"
Related Information
- Cisco TelePresence Cisco Unified Communications Manager with Cisco VCS (SIP Trunk) Deployment Guide
- Cisco TelePresence Video Communication Server Basic Configuration (Control with Expressway) Deployment Guide
- Cisco TelePresence Video Communication Server Administrator Guide
- Technical Support & Documentation - Cisco Systems
Open a Support Case (Requires a Cisco Service Contract.)
Related Cisco Support Community Discussions
The Cisco Support Community is a forum for you to ask and answer questions, share suggestions, and collaborate with your peers.
Refer to Cisco Technical Tips Conventions for information on conventions used in this document.