RFC 3263 (rfc3263) - Page 2 of 17


Session Initiation Protocol (SIP): Locating SIP Servers



Alternative Format: Original Text Document



RFC 3263               SIP: Locating SIP Servers               June 2002


   13         Authors' Addresses ..................................   16
   14         Full Copyright Statement ............................   17

1 Introduction

   The Session Initiation Protocol (SIP) (RFC 3261 [1]) is a client-
   server protocol used for the initiation and management of
   communications sessions between users.  SIP end systems are called
   user agents, and intermediate elements are known as proxy servers.  A
   typical SIP configuration, referred to as the SIP "trapezoid", is
   shown in Figure 1.  In this diagram, a caller in domain A (UA1)
   wishes to call Joe in domain B (joe@B).  To do so, it communicates
   with proxy 1 in its domain (domain A).  Proxy 1 forwards the request
   to the proxy for the domain of the called party (domain B), which is
   proxy 2.  Proxy 2 forwards the call to the called party, UA 2.

   As part of this call flow, proxy 1 needs to determine a SIP server
   for domain B.  To do this, proxy 1 makes use of DNS procedures, using
   both SRV [2] and NAPTR [3] records.  This document describes the
   specific problems that SIP uses DNS to help solve, and provides a
   solution.

2 Problems DNS is Needed to Solve

   DNS is needed to help solve two aspects of the general call flow
   described in the Introduction.  The first is for proxy 1 to discover
   the SIP server in domain B, in order to forward the call for joe@B.
   The second is for proxy 2 to identify a backup for proxy 1 in the
   event it fails after forwarding the request.

   For the first aspect, proxy 1 specifically needs to determine the IP
   address, port, and transport protocol for the server in domain B.
   The choice of transport protocol is particularly noteworthy.  Unlike
   many other protocols, SIP can run over a variety of transport
   protocols, including TCP, UDP, and SCTP.  SIP can also use TLS.
   Currently, use of TLS is defined for TCP only.  Thus, clients need to
   be able to automatically determine which transport protocols are
   available.  The proxy sending the request has a particular set of
   transport protocols it supports and a preference for using those
   transport protocols.  Proxy 2 has its own set of transport protocols
   it supports, and relative preferences for those transport protocols.
   All proxies must implement both UDP and TCP, along with TLS over TCP,
   so that there is always an intersection of capabilities.  Some form
   of DNS procedures are needed for proxy 1 to discover the available
   transport protocols for SIP services at domain B, and the relative
   preferences of those transport protocols.  Proxy 1 intersects its
   list of supported transport protocols with those of proxy 2 and then
   chooses the protocol preferred by proxy 2.



Rosenberg & Schulzrinne     Standards Track