Address Resolution
Address resolution is one of the most important functions of the SIP protocol.
The SIP address resolution process usually begins with a URI and ends with a
username at an IP address. This resolution from a general name to an actual
user at a host is extremely powerful in that various types of mobility and
portability are automatically implemented. Address resolution can be per-
formed by both user agents and servers.
The address resolution process can involve the following steps:
■■ DNS NAPTR lookup to determine transport protocol (UDP, TCP, SCTP)
as described in RFC 3263
■■ DNS SRV [9] lookup to determine the server host name and port num-
ber as described in RFC 3263
■■ DNS A lookup to determine the IP address of the host
■■ ENUM [10] lookup if a telephone number
■■ When routed to a proxy server in the domain of the user, a location ser-
vice lookup, as described in RFC 3261
While it is possible that a SIP user agent may have access to a location ser-
vice, this lookup is usually performed by a proxy or redirect server on behalf
of a user agent.
In general, the address resolution process involves multiple steps and mul-
tiple SIP message hops. This allows user agents and proxies to perform request
routing on a hop-by-hop basis. Each proxy consults DNS or a routing table,
then forwards the request to the next hop. This process continues until the
request is delivered to the destination. Note that routing of the responses in SIP
does not involve address resolution; all responses are routed back through the
same set of proxies as the request. This is possible because of the Viaheader
chain in the request message.
Consider the request routing example of Figure 6.2. This example does not
show outgoing and incoming proxy servers, but just one proxy server in the
middle. Such a simple network configuration may apply for routing calls
within a small private IP network. The SIP user agent A wishes to send a gen-
eral SIP request to another user agent B identified by the SIP URI sip:userb@
there.com. The SIP Telephone A first performs a DNS Naming Authority
Pointer (NAPTR) and then a Service Record (SRV) query to determine the
transport protocol and to locate the proxy server for the there.comdomain
(which is TCP and sipproxy.there.comusing port 5060 in steps 1 and 2).
The SIP request 3 is then sent to the IP address of sipproxy.there.com.
This proxy then consults a location service in step 5, which locates the current
registration URI for user B, which is tel:+65123456789. The proxy then
108 Chapter 6