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]