Skip to main content

SIP: Session Initiation Protocol
draft-ietf-mmusic-sip-12

The information below is for an old version of the document that is already published as an RFC.
Document Type
This is an older version of an Internet-Draft that was ultimately published as RFC 2543.
Authors Henning Schulzrinne , Eve Schooler , Jonathan Rosenberg , Mark J. Handley
Last updated 2022-08-03 (Latest revision 1999-01-18)
RFC stream Internet Engineering Task Force (IETF)
Intended RFC status Proposed Standard
Formats
Additional resources Mailing list discussion
Stream WG state (None)
Document shepherd (None)
IESG IESG state Became RFC 2543 (Proposed Standard)
Consensus boilerplate Unknown
Telechat date (None)
Responsible AD (None)
Send notices to (None)
draft-ietf-mmusic-sip-12
quot; | "r" |
                     "s" | "t" | "u" | "v" | "w" | "x" | "y" | "z"
        alpha     =  lowalpha | upalpha
        digit     =  "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" |
                     "8" | "9"
        alphanum  =  alpha | digit
        CTL       =  <any US-ASCII control character
                     (octets 0 -- 31) and DEL (127)>
        CR        =  %d13 ; US-ASCII CR, carriage return character

Handley/Schulzrinne/Schooler/Rosenberg                      [Page 135]
Internet Draft                    SIP                   January 15, 1999

        LF        =  %d10 ; US-ASCII LF, line feed character
        SP        =  %d32 ; US-ASCII SP, space character
        HT        =  %d09 ; US-ASCII HT, horizontal tab character
        CRLF      =  CR LF ; typically the end of a line

   The following are defined in RFC 2396 [12] for the SIP URI:

        unreserved  =  alphanum | mark
        mark        =  "-" | "_" | "." | "!" | "~" | "*" | "'"
                   |   "(" | ")"
        escaped     =  "%" hex hex

   SIP header field values can be folded onto multiple lines if the
   continuation line begins with a space or horizontal tab. All linear
   white space, including folding, has the same semantics as SP. A
   recipient MAY replace any linear white space with a single SP before
   interpreting the field value or forwarding the message downstream.

        LWS  =  [CRLF] 1*( SP | HT ) ; linear whitespace

   The TEXT-UTF8 rule is only used for descriptive field contents and
   values that are not intended to be interpreted by the message parser.
   Words of *TEXT-UTF8 contain characters from the UTF-8 character set
   (RFC 2279 [21]). In this regard, SIP differs from HTTP, which uses
   the ISO 8859-1 character set.

        TEXT-UTF8  =  <any UTF-8 character encoding, except CTLs,
                      but including LWS>

   A CRLF is allowed in the definition of TEXT-UTF8 only as part of a
   header field continuation. It is expected that the folding LWS will
   be replaced with a single SP before interpretation of the TEXT-UTF8
   value.

   Hexadecimal numeric characters are used in several protocol elements.

        hex  =  "A" | "B" | "C" | "D" | "E" | "F"

Handley/Schulzrinne/Schooler/Rosenberg                      [Page 136]
Internet Draft                    SIP                   January 15, 1999

                | "a" | "b" | "c" | "d" | "e" | "f" | digit

   Many SIP header field values consist of words separated by LWS or
   special characters. These special characters MUST be in a quoted
   string to be used within a parameter value.

        token       =  1*< any CHAR  except CTL's  or separators>
        separators  =  "(" | ")" | "<" | ">" | "@" |
                       "," | ";" | ":" | "\" | <"> |
                       "/" | "[" | "]" | "?" | "=" |
                       "{" | "}" | SP | HT

   Comments can be included in some SIP header fields by surrounding the
   comment text with parentheses. Comments are only allowed in fields
   containing "comment" as part of their field value definition. In all
   other fields, parentheses are considered part of the field value.

        comment  =  "(" *(ctext | quoted-pair | comment) ")"
        ctext    =  < any TEXT-UTF8  excluding "("  and ")">

   A string of text is parsed as a single word if it is quoted using
   double-quote marks.

        quoted-string  =  ( <"> *(qdtext | quoted-pair ) <"> )
        qdtext         =  <any TEXT-UTF8 except <">>

   The backslash character ("\") MAY be used as a single-character
   quoting mechanism only within quoted-string and comment constructs.

        quoted-pair  =  " \ " CHAR

D Using SRV DNS Records

   The following procedure is experimental and relies on DNS SRV records
   (RFC 2052 [14]). The steps listed below are used in place of the two

Handley/Schulzrinne/Schooler/Rosenberg                      [Page 137]
Internet Draft                    SIP                   January 15, 1999

   steps in section 1.4.2.

   If a step elicits no addresses, the client continues to the next
   step.  However if a step elicits one or more addresses, but no SIP
   server at any of those addresses responds, then the client concludes
   the server is down and doesn't continue on to the next step.

   When SRV records are to be used, the protocol to use when querying
   for the SRV record is "sip". SRV records contain port numbers for
   servers, in addition to IP addresses; the client always uses this
   port number when contacting the SIP server. Otherwise, the port
   number in the SIP URI is used, if present. If there is no port in the
   URI, the default port, 5060, is used.

        1.   If the host portion of the Request-URI is an IP address,
             the client contacts the server at the given address. If the
             host portion of the Request-URI is not an IP address, the
             client proceeds to the next step.

        2.   The Request-URI is examined. If it contains an explicit
             port number, the next two steps are skipped.

        3.   The Request-URI is examined. If it does not specify a
             protocol (TCP or UDP), the client queries the name server
             for SRV records for both UDP (if supported by the client)
             and TCP (if supported by the client) SIP servers. The
             format of these queries is defined in RFC 2052 [14]. The
             results of the query or queries are merged together and
             ordered based on priority. Then, the searching technique
             outlined in RFC 2052 [14] is used to select servers in
             order. If DNS doesn't return any records, the user goes to
             the last step. Otherwise, the user attempts to contact each
             server in the order listed. If no server is contacted, the
             user gives up.

        4.   If the Request-URI specifies a protocol (TCP or UDP) that
             is supported by the client, the client queries the name
             server for SRV records for SIP servers of that protocol
             type only. If the client does not support the protocol
             specified in the Request-URI, it gives up. The searching
             technique outlined in RFC 2052 [14] is used to select
             servers from the DNS response in order. If DNS doesn't
             return any records, the user goes to the last step.
             Otherwise, the user attempts to contact each server in the
             order listed. If no server is contacted, the user gives up.

        5.   The client queries the name server for address records for
             the host portion of the Request-URI. If there were no

Handley/Schulzrinne/Schooler/Rosenberg                      [Page 138]
Internet Draft                    SIP                   January 15, 1999

             address records, the client stops, as it has been unable to
             locate a server. By address record, we mean A RR's, AAAA
             RR's, or their most modern equivalent.

   A client MAY cache a successful DNS query result. A successful query
   is one which contained records in the answer, and a server was
   contacted at one of the addresses from the answer. When the client
   wishes to send a request to the same host, it starts the search as if
   it had just received this answer from the name server. The server
   uses the procedures specified in RFC1035 [15] regarding cache
   invalidation when the time-to-live of the DNS result expires. If the
   client does not find a SIP server among the addresses listed in the
   cached answer, it starts the search at the beginning of the sequence
   described above.

   For example, consider a client that wishes to send a SIP request. The
   Request-URI for the destination is sip:user@company.com.  The client
   only supports UDP. It would follow these steps:

        1.   The host portion is not an IP address, so the client goes
             to step 2 above.

        2.   The client does a DNS query of QNAME="sip.udp.company.com",
             QCLASS=IN, QTYPE=SRV. Since it doesn't support TCP, it
             omits the TCP query.  There were no addresses in the DNS
             response, so the client goes to the next step.

        3.   The client does a DNS query for A records for
             "company.com". An address is found, so that client attempts
             to contact a server at that address at port 5060.

E IANA Considerations

   Section 4.4 describes a name space and mechanism for registering SIP
   options.

   Section 6.41 describes the name space for registering SIP warn-codes.

F Changes in Version -12

   Since version -11, the following changes have been made. These
   changes reflect IESG comments.

        o Section 16.3  was missing Content-Type header.

        o The DNS search procedure has  changed. Reference to CNAME
          lookups has been removed since their usage is implicit in
          normal DNS procedures. Also, automatically appending a sip. to

Handley/Schulzrinne/Schooler/Rosenberg                      [Page 139]
Internet Draft                    SIP                   January 15, 1999

          the domain name in the URL before lookup has been removed. A
          note has been added discussing the creating of SIP URL's from
          email addresses and encourages the usage of rfc2219.

        o Semicolon removed from user and password BNF  in SIP URL.

        o An email address for  IANA registrations is now listed.

        o For the Moved Temporarily redirect response,  no default value
          for the expiration of this address is specified. This has been
          clarified; the redirected address is only valid for the
          duration of the call. This is consistent with exising text
          under the Contact header description which indicates that the
          values should not be cached.

        o Clarification that CANCEL and ACK's should have the same Via
          branch parameter as the request they cancel or acknowledge.

G Acknowledgments

   We wish to thank the members of the IETF MMUSIC WG for their comments
   and suggestions. Detailed comments were provided by Anders
   Kristensen, Jim Buller, Dave Devanathan, Yaron Goland, Christian
   Huitema, Gadi Karmi, Jonathan Lennox, Keith Moore, Vern Paxson, Moshe
   J. Sambol, and Eric Tremblay.

   This work is based, inter alia, on [37,38].

H Authors' Addresses

   Mark Handley
   USC Information Sciences Institute
   c/o MIT Laboratory for Computer Science
   545 Technology Square
   Cambridge, MA 02139
   USA
   electronic mail:  mjh@isi.edu

   Henning Schulzrinne
   Dept. of Computer Science
   Columbia University
   1214 Amsterdam Avenue
   New York, NY 10027
   USA
   electronic mail:  schulzrinne@cs.columbia.edu

   Eve Schooler
   Computer Science Department 256-80

Handley/Schulzrinne/Schooler/Rosenberg                      [Page 140]
Internet Draft                    SIP                   January 15, 1999

   California Institute of Technology
   Pasadena, CA 91125
   USA
   electronic mail:  schooler@cs.caltech.edu

   Jonathan Rosenberg
   Lucent Technologies, Bell Laboratories
   Rm. 4C-526
   101 Crawfords Corner Road
   Holmdel, NJ 07733
   USA
   electronic mail:  jdrosen@bell-labs.com

I Bibliography

   [1] R. Pandya, "Emerging mobile and personal communication systems,"
   IEEE Communications Magazine , vol. 33, pp. 44--52, June 1995.

   [2] B. Braden, L. Zhang, S. Berson, S. Herzog, and S. Jamin,
   "Resource ReSerVation protocol (RSVP) -- version 1 functional
   specification," RFC 2205, Internet Engineering Task Force, Oct. 1997.

   [3] H. Schulzrinne, S. Casner, R. Frederick, and V. Jacobson, "RTP: a
   transport protocol for real-time applications," RFC 1889, Internet
   Engineering Task Force, Jan. 1996.

   [4] H. Schulzrinne, R. Lanphier, and A. Rao, "Real time streaming
   protocol (RTSP)," RFC 2326, Internet Engineering Task Force, Apr.
   1998.

   [5] M. Handley, "SAP: Session announcement protocol," Internet Draft,
   Internet Engineering Task Force, Nov. 1996.  Work in progress.

   [6] M. Handley and V. Jacobson, "SDP: session description protocol,"
   RFC 2327, Internet Engineering Task Force, Apr. 1998.

   [7] International Telecommunication Union, "Visual telephone systems
   and equipment for local area networks which provide a non-guaranteed
   quality of service," Recommendation H.323, Telecommunication
   Standardization Sector of ITU, Geneva, Switzerland, May 1996.

   [8] International Telecommunication Union, "Control protocol for
   multimedia communication," Recommendation H.245, Telecommunication
   Standardization Sector of ITU, Geneva, Switzerland, Feb. 1998.

   [9] International Telecommunication Union, "Media stream
   packetization and synchronization on non-guaranteed quality of
   service LANs," Recommendation H.225.0, Telecommunication

Handley/Schulzrinne/Schooler/Rosenberg                      [Page 141]
Internet Draft                    SIP                   January 15, 1999

   Standardization Sector of ITU, Geneva, Switzerland, Nov. 1996.

   [10] S. Bradner, "Key words for use in RFCs to indicate requirement
   levels," RFC 2119, Internet Engineering Task Force, Mar. 1997.

   [11] R. Fielding, J. Gettys, J. Mogul, H. Nielsen, and T. Berners-
   Lee, "Hypertext transfer protocol -- HTTP/1.1," RFC 2068, Internet
   Engineering Task Force, Jan. 1997.

   [12] T. Berners-Lee, R. Fielding, and L. Masinter, "Uniform resource
   identifiers (URI): generic syntax," RFC 2396, Internet Engineering
   Task Force, Aug.  1998.

   [13] T. Berners-Lee, L. Masinter, and M. McCahill, "Uniform resource
   locators (URL)," RFC 1738, Internet Engineering Task Force, Dec.
   1994.

   [14] A. Gulbrandsen and P. Vixie, "A DNS RR for specifying the
   location of services (DNS SRV)," RFC 2052, Internet Engineering Task
   Force, Oct.  1996.

   [15] P. Mockapetris, "Domain names - implementation and
   specification," RFC STD 13, 1035, Internet Engineering Task Force,
   Nov. 1987.

   [16] M. Hamilton and R. Wright, "Use of DNS aliases for network
   services," RFC 2219, Internet Engineering Task Force, Oct. 1997.

   [17] D. Zimmerman, "The finger user information protocol," RFC 1288,
   Internet Engineering Task Force, Dec. 1991.

   [18] S. Williamson, M. Kosters, D. Blacka, J. Singh, and K. Zeilstra,
   "Referral whois (rwhois) protocol V1.5," RFC 2167, Internet
   Engineering Task Force, June 1997.

   [19] W. Yeong, T. Howes, and S. Kille, "Lightweight directory access
   protocol," RFC 1777, Internet Engineering Task Force, Mar. 1995.

   [20] E. M. Schooler, "A multicast user directory service for
   synchronous rendezvous," Master's Thesis CS-TR-96-18, Department of
   Computer Science, California Institute of Technology, Pasadena,
   California, Aug. 1996.

   [21] F. Yergeau, "UTF-8, a transformation format of ISO 10646," RFC
   2279, Internet Engineering Task Force, Jan. 1998.

   [22] W. R. Stevens, TCP/IP illustrated: the protocols , vol. 1.
   Reading, Massachusetts: Addison-Wesley, 1994.

Handley/Schulzrinne/Schooler/Rosenberg                      [Page 142]
Internet Draft                    SIP                   January 15, 1999

   [23] J. Mogul and S. Deering, "Path MTU discovery," RFC 1191,
   Internet Engineering Task Force, Nov. 1990.

   [24] D. Crocker, "Standard for the format of ARPA internet text
   messages," RFC STD 11, 822, Internet Engineering Task Force, Aug.
   1982.

   [25] D. Meyer, "Administratively scoped IP multicast," RFC 2365,
   Internet Engineering Task Force, July 1998.

   [26] H. Schulzrinne, "RTP profile for audio and video conferences
   with minimal control," RFC 1890, Internet Engineering Task Force,
   Jan. 1996.

   [27] D. Eastlake, S. Crocker, and J. Schiller, "Randomness
   recommendations for security," RFC 1750, Internet Engineering Task
   Force, Dec. 1994.

   [28] P. Hoffman, L. Masinter, and J. Zawinski, "The mailto URL
   scheme," RFC 2368, Internet Engineering Task Force, July 1998.

   [29] B. Braden, "Requirements for internet hosts - application and
   support," RFC STD 3, 1123, Internet Engineering Task Force, Oct.
   1989.

   [30] J. Palme, "Common internet message headers," RFC 2076, Internet
   Engineering Task Force, Feb. 1997.

   [31] H. Alvestrand, "IETF policy on character sets and languages,"
   RFC 2277, Internet Engineering Task Force, Jan. 1998.

   [32] M. Elkins, "MIME security with pretty good privacy (PGP)," RFC
   2015, Internet Engineering Task Force, Oct. 1996.

   [33] D. Atkins, W. Stallings, and P. Zimmermann, "PGP message
   exchange formats," RFC 1991, Internet Engineering Task Force, Aug.
   1996.

   [34] R. Atkinson, "Security architecture for the internet protocol,"
   RFC 1825, Internet Engineering Task Force, Aug. 1995.

   [35] C. Allen and T. Dierks, "The TLS protocol version 1.0," Internet
   Draft, Internet Engineering Task Force, Nov. 1997.  Work in progress.

   [36] J. Franks, P. Hallam-Baker, J. Hostetler, S. Lawrence, P. Leach,
   A. Luotonen, and L. Stewart, "HTTP authentication: Basic and digest
   access authentication," Internet Draft, Internet Engineering Task
   Force, Sept.  1998.  Work in progress.

Handley/Schulzrinne/Schooler/Rosenberg                      [Page 143]
Internet Draft                    SIP                   January 15, 1999

   [37] E. M. Schooler, "Case study: multimedia conference control in a
   packet-switched teleconferencing system," Journal of Internetworking:
   Research and Experience      , vol. 4, pp. 99--120, June 1993.  ISI
   reprint series ISI/RS-93-359.

   [38] H. Schulzrinne, "Personal mobility for multimedia services in
   the Internet," in European Workshop on Interactive Distributed
   Multimedia   Systems and Services (IDMS) , (Berlin, Germany), Mar.
   1996.

   Full Copyright Statement

   Copyright (c) The Internet Society (1999). All Rights Reserved.

   This document and translations of it may be copied and furnished to
   others, and derivative works that comment on or otherwise explain it
   or assist in its implementation may be prepared, copied, published
   and distributed, in whole or in part, without restriction of any
   kind, provided that the above copyright notice and this paragraph are
   included on all such copies and derivative works. However, this
   document itself may not be modified in any way, such as by removing
   the copyright notice or references to the Internet Society or other
   Internet organizations, except as needed for the purpose of
   developing Internet standards in which case the procedures for
   copyrights defined in the Internet Standards process must be
   followed, or as required to translate it into languages other than
   English.

   The limited permissions granted above are perpetual and will not be
   revoked by the Internet Society or its successors or assigns.

   This document and the information contained herein is provided on an
   "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
   TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
   BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
   HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
   MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

                           Table        of Contents

   1          Introduction ........................................    2
   1.1        Overview of SIP Functionality .......................    2

Handley/Schulzrinne/Schooler/Rosenberg                      [Page 144]
Internet Draft                    SIP                   January 15, 1999

   1.2        Terminology .........................................    4
   1.3        Definitions .........................................    4
   1.4        Overview of SIP Operation ...........................    7
   1.4.1      SIP Addressing ......................................    7
   1.4.2      Locating a SIP Server ...............................    8
   1.4.3      SIP Transaction .....................................    9
   1.4.4      SIP Invitation ......................................   10
   1.4.5      Locating a User .....................................   12
   1.4.6      Changing an Existing Session ........................   13
   1.4.7      Registration Services ...............................   13
   1.5        Protocol Properties .................................   13
   1.5.1      Minimal State .......................................   13
   1.5.2      Lower-Layer-Protocol Neutral ........................   13
   1.5.3      Text-Based ..........................................   15
   2          SIP Uniform Resource Locators .......................   15
   3          SIP Message Overview ................................   19
   4          Request .............................................   21
   4.1        Request-Line ........................................   21
   4.2        Methods .............................................   21
   4.2.1      INVITE ..............................................   22
   4.2.2      ACK .................................................   23
   4.2.3      OPTIONS .............................................   24
   4.2.4      BYE .................................................   24
   4.2.5      CANCEL ..............................................   25
   4.2.6      REGISTER ............................................   26
   4.3        Request-URI .........................................   28
   4.3.1      SIP Version .........................................   29
   4.4        Option Tags .........................................   29
   4.4.1      Registering New Option Tags with IANA ...............   30
   5          Response ............................................   31
   5.1        Status-Line .........................................   31
   5.1.1      Status Codes and Reason Phrases .....................   31
   6          Header Field Definitions ............................   33
   6.1        General Header Fields ...............................   35
   6.2        Entity Header Fields ................................   36
   6.3        Request Header Fields ...............................   37
   6.4        Response Header Fields ..............................   38
   6.5        End-to-end and Hop-by-hop Headers ...................   38
   6.6        Header Field Format .................................   38
   6.7        Accept ..............................................   39
   6.8        Accept-Encoding .....................................   39
   6.9        Accept-Language .....................................   39
   6.10       Allow ...............................................   40
   6.11       Authorization .......................................   40
   6.12       Call-ID .............................................   40
   6.13       Contact .............................................   42
   6.14       Content-Encoding ....................................   45
   6.15       Content-Length ......................................   45

Handley/Schulzrinne/Schooler/Rosenberg                      [Page 145]
Internet Draft                    SIP                   January 15, 1999

   6.16       Content-Type ........................................   46
   6.17       CSeq ................................................   47
   6.18       Date ................................................   48
   6.19       Encryption ..........................................   49
   6.20       Expires .............................................   50
   6.21       From ................................................   51
   6.22       Hide ................................................   52
   6.23       Max-Forwards ........................................   53
   6.24       Organization ........................................   54
   6.25       Priority ............................................   54
   6.26       Proxy-Authenticate ..................................   55
   6.27       Proxy-Authorization .................................   56
   6.28       Proxy-Require .......................................   56
   6.29       Record-Route ........................................   56
   6.30       Require .............................................   57
   6.31       Response-Key ........................................   58
   6.32       Retry-After .........................................   59
   6.33       Route ...............................................   59
   6.34       Server ..............................................   60
   6.35       Subject .............................................   60
   6.36       Timestamp ...........................................   60
   6.37       To ..................................................   61
   6.38       Unsupported .........................................   62
   6.39       User-Agent ..........................................   63
   6.40       Via .................................................   63
   6.40.1     Requests ............................................   63
   6.40.2     Receiver-tagged Via Header Fields ...................   64
   6.40.3     Responses ...........................................   64
   6.40.4     User Agent and Redirect Servers .....................   65
   6.40.5     Syntax ..............................................   66
   6.41       Warning .............................................   67
   6.42       WWW-Authenticate ....................................   69
   7          Status Code Definitions .............................   69
   7.1        Informational 1xx ...................................   70
   7.1.1      100 Trying ..........................................   70
   7.1.2      180 Ringing .........................................   70
   7.1.3      181 Call Is Being Forwarded .........................   70
   7.1.4      182 Queued ..........................................   70
   7.2        Successful 2xx ......................................   70
   7.2.1      200 OK ..............................................   71
   7.3        Redirection 3xx .....................................   71
   7.3.1      300 Multiple Choices ................................   71
   7.3.2      301 Moved Permanently ...............................   72
   7.3.3      302 Moved Temporarily ...............................   72
   7.3.4      305 Use Proxy .......................................   72
   7.3.5      380 Alternative Service .............................   72
   7.4        Request Failure 4xx .................................   72
   7.4.1      400 Bad Request .....................................   72

Handley/Schulzrinne/Schooler/Rosenberg                      [Page 146]
Internet Draft                    SIP                   January 15, 1999

   7.4.2      401 Unauthorized ....................................   73
   7.4.3      402 Payment Required ................................   73
   7.4.4      403 Forbidden .......................................   73
   7.4.5      404 Not Found .......................................   73
   7.4.6      405 Method Not Allowed ..............................   73
   7.4.7      406 Not Acceptable ..................................   73
   7.4.8      407 Proxy Authentication Required ...................   73
   7.4.9      408 Request Timeout .................................   74
   7.4.10     409 Conflict ........................................   74
   7.4.11     410 Gone ............................................   74
   7.4.12     411 Length Required .................................   74
   7.4.13     413 Request Entity Too Large ........................   74
   7.4.14     414 Request-URI Too Long ............................   74
   7.4.15     415 Unsupported Media Type ..........................   74
   7.4.16     420 Bad Extension ...................................   75
   7.4.17     480 Temporarily Unavailable .........................   75
   7.4.18     481 Call Leg/Transaction Does Not Exist .............   75
   7.4.19     482 Loop Detected ...................................   75
   7.4.20     483 Too Many Hops ...................................   75
   7.4.21     484 Address Incomplete ..............................   75
   7.4.22     485 Ambiguous .......................................   76
   7.4.23     486 Busy Here .......................................   76
   7.5        Server Failure 5xx ..................................   77
   7.5.1      500 Server Internal Error ...........................   77
   7.5.2      501 Not Implemented .................................   77
   7.5.3      502 Bad Gateway .....................................   77
   7.5.4      503 Service Unavailable .............................   77
   7.5.5      504 Gateway Time-out ................................   77
   7.5.6      505 Version Not Supported ...........................   77
   7.6        Global Failures 6xx .................................   78
   7.6.1      600 Busy Everywhere .................................   78
   7.6.2      603 Decline .........................................   78
   7.6.3      604 Does Not Exist Anywhere .........................   78
   7.6.4      606 Not Acceptable ..................................   78
   8          SIP Message Body ....................................   79
   8.1        Body Inclusion ......................................   79
   8.2        Message Body Type ...................................   79
   8.3        Message Body Length .................................   79
   9          Compact Form ........................................   80
   10         Behavior of SIP Clients and Servers .................   81
   10.1       General Remarks .....................................   81
   10.1.1     Requests ............................................   81
   10.1.2     Responses ...........................................   81
   10.2       Source Addresses, Destination Addresses and
   Connections ....................................................   82
   10.2.1     Unicast UDP .........................................   82
   10.2.2     Multicast UDP .......................................   82
   10.3       TCP .................................................   83

Handley/Schulzrinne/Schooler/Rosenberg                      [Page 147]
Internet Draft                    SIP                   January 15, 1999

   10.4       Reliability for BYE, CANCEL, OPTIONS, REGISTER
   Requests .......................................................   84
   10.4.1     UDP .................................................   84
   10.4.2     TCP .................................................   85
   10.5       Reliability for INVITE Requests .....................   85
   10.5.1     UDP .................................................   86
   10.5.2     TCP .................................................   87
   10.6       Reliability for ACK Requests ........................   87
   10.7       ICMP Handling .......................................   90
   11         Behavior of SIP User Agents .........................   90
   11.1       Caller Issues Initial INVITE Request ................   90
   11.2       Callee Issues Response ..............................   90
   11.3       Caller Receives Response to Initial Request .........   90
   11.4       Caller or Callee Generate Subsequent Requests .......   91
   11.5       Receiving Subsequent Requests .......................   91
   12         Behavior of SIP Proxy and Redirect Servers ..........   92
   12.1       Redirect Server .....................................   92
   12.2       User Agent Server ...................................   92
   12.3       Proxy Server ........................................   92
   12.3.1     Proxying Requests ...................................   93
   12.3.2     Proxying Responses ..................................   93
   12.3.3     Stateless Proxy: Proxying Responses .................   93
   12.3.4     Stateful Proxy: Receiving Requests ..................   93
   12.3.5     Stateful Proxy: Receiving ACKs ......................   93
   12.3.6     Stateful Proxy: Receiving Responses .................   94
   12.3.7     Stateless, Non-Forking Proxy ........................   94
   12.4       Forking Proxy .......................................   95
   13         Security Considerations .............................   98
   13.1       Confidentiality and Privacy: Encryption .............   99
   13.1.1     End-to-End Encryption ...............................   99
   13.1.2     Privacy of SIP Responses ............................  101
   13.1.3     Encryption by Proxies ...............................  102
   13.1.4     Hop-by-Hop Encryption ...............................  102
   13.1.5     Via field encryption ................................  102
   13.2       Message Integrity and Access Control:
   Authentication .................................................  103
   13.2.1     Trusting responses ..................................  106
   13.3       Callee Privacy ......................................  107
   13.4       Known Security Problems .............................  107
   14         SIP Authentication using HTTP Basic and Digest
   Schemes ........................................................  107
   14.1       Framework ...........................................  107
   14.2       Basic Authentication ................................  108
   14.3       Digest Authentication ...............................  108
   14.4       Proxy-Authentication ................................  109
   15         SIP Security Using PGP ..............................  109
   15.1       PGP Authentication Scheme ...........................  109
   15.1.1     The WWW-Authenticate Response Header ................  110

Handley/Schulzrinne/Schooler/Rosenberg                      [Page 148]
Internet Draft                    SIP                   January 15, 1999

   15.1.2     The Authorization Request Header ....................  111
   15.2       PGP Encryption Scheme ...............................  112
   15.3       Response-Key Header Field for PGP ...................  113
   16         Examples ............................................  113
   16.1       Registration ........................................  113
   16.2       Invitation to a Multicast Conference ................  115
   16.2.1     Request .............................................  115
   16.2.2     Response ............................................  116
   16.3       Two-party Call ......................................  117
   16.4       Terminating a Call ..................................  119
   16.5       Forking Proxy .......................................  119
   16.6       Redirects ...........................................  123
   16.7       Negotiation .........................................  125
   16.8       OPTIONS Request .....................................  126
   A          Minimal Implementation ..............................  127
   A.1        Client ..............................................  127
   A.2        Server ..............................................  128
   A.3        Header Processing ...................................  128
   B          Usage of the Session Description Protocol (SDP)
   ................................................................  128
   B.1        Configuring Media Streams ...........................  128
   B.2        Setting SDP Values for Unicast ......................  130
   B.3        Multicast Operation .................................  131
   B.4        Delayed Media Streams ...............................  132
   B.5        Putting Media Streams on Hold .......................  132
   B.6        Subject and SDP "s=" Line ...........................  132
   B.7        The SDP "o=" Line ...................................  133
   C          Summary of Augmented BNF ............................  133
   C.1        Basic Rules .........................................  135
   D          Using SRV DNS Records ...............................  137
   E          IANA Considerations .................................  139
   F          Changes in Version -12 ..............................  139
   G          Acknowledgments .....................................  140
   H          Authors' Addresses ..................................  140
   I          Bibliography ........................................  141

Handley/Schulzrinne/Schooler/Rosenberg                      [Page 149]