summaryrefslogtreecommitdiff
path: root/doc/rfc/rfc8217.txt
diff options
context:
space:
mode:
Diffstat (limited to 'doc/rfc/rfc8217.txt')
-rw-r--r--doc/rfc/rfc8217.txt339
1 files changed, 339 insertions, 0 deletions
diff --git a/doc/rfc/rfc8217.txt b/doc/rfc/rfc8217.txt
new file mode 100644
index 0000000..21c69f8
--- /dev/null
+++ b/doc/rfc/rfc8217.txt
@@ -0,0 +1,339 @@
+
+
+
+
+
+
+Internet Engineering Task Force (IETF) R. Sparks
+Request for Comments: 8217 Oracle
+Updates: 3261, 3325, 3515, 3892, 4508, August 2017
+ 5002, 5318, 5360, 5502
+Category: Standards Track
+ISSN: 2070-1721
+
+
+Clarifications for When to Use the name-addr Production in SIP Messages
+
+Abstract
+
+ RFC 3261 constrained several SIP header fields whose grammar contains
+ the "name-addr / addr-spec" alternative to use name-addr when certain
+ characters appear. Unfortunately, it expressed the constraints with
+ prose copied into each header field definition, and at least one
+ header field was missed. Further, the constraint has not been copied
+ into documents defining extension headers whose grammar contains the
+ alternative.
+
+ This document updates RFC 3261 to state the constraint generically
+ and clarifies that the constraint applies to all SIP header fields
+ where there is a choice between using name-addr or addr-spec. It
+ also updates the RFCs that define extension SIP header fields using
+ the alternative to clarify that the constraint applies (RFCs 3325,
+ 3515, 3892, 4508, 5002, 5318, 5360, and 5502).
+
+Status of This Memo
+
+ This is an Internet Standards Track document.
+
+ This document is a product of the Internet Engineering Task Force
+ (IETF). It represents the consensus of the IETF community. It has
+ received public review and has been approved for publication by the
+ Internet Engineering Steering Group (IESG). Further information on
+ Internet Standards is available in Section 2 of RFC 7841.
+
+ Information about the current status of this document, any errata,
+ and how to provide feedback on it may be obtained at
+ http://www.rfc-editor.org/info/rfc8217.
+
+
+
+
+
+
+
+
+
+
+
+Sparks Standards Track [Page 1]
+
+RFC 8217 name-addr Clarifications August 2017
+
+
+Copyright Notice
+
+ Copyright (c) 2017 IETF Trust and the persons identified as the
+ document authors. All rights reserved.
+
+ This document is subject to BCP 78 and the IETF Trust's Legal
+ Provisions Relating to IETF Documents
+
+ (http://trustee.ietf.org/license-info) in effect on the date of
+ publication of this document. Please review these documents
+ carefully, as they describe your rights and restrictions with respect
+ to this document. Code Components extracted from this document must
+ include Simplified BSD License text as described in Section 4.e of
+ the Trust Legal Provisions and are provided without warranty as
+ described in the Simplified BSD License.
+
+Table of Contents
+
+ 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
+ 2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 3
+ 3. Updates to RFC 3261 . . . . . . . . . . . . . . . . . . . . . 4
+ 4. Updates to RFCs Defining SIP Extension Header Fields . . . . 4
+ 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 5
+ 6. Security Considerations . . . . . . . . . . . . . . . . . . . 5
+ 7. Normative References . . . . . . . . . . . . . . . . . . . . 5
+ Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . 6
+ Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 6
+
+1. Introduction
+
+ [RFC3261] defines several header fields that contain URIs to allow
+ both a form that contains the bare URI (addr-spec) and one that
+ provides a name and the URI (name-addr). This subset, taken from the
+ ABNF [RFC5234] specified in [RFC3261], shows the relevant part of the
+ definition of the syntax of the "From" header field:
+
+ From = ( "From" / "f" ) HCOLON from-spec
+ from-spec = ( name-addr / addr-spec )
+ *( SEMI from-param )
+ name-addr = [ display-name ] LAQUOT addr-spec RAQUOT
+ addr-spec = SIP-URI / SIPS-URI / absoluteURI
+
+ The prose in Section 20.20 of [RFC3261], which discusses the "From"
+ header field, constrains how the production may be used by saying:
+
+ Even if the "display-name" is empty, the "name-addr" form
+ MUST be used if the "addr-spec" contains a comma, question
+ mark, or semicolon.
+
+
+
+Sparks Standards Track [Page 2]
+
+RFC 8217 name-addr Clarifications August 2017
+
+
+ Section 20.39 of [RFC3261], which discusses the "To" header field,
+ contains no such constraining text.
+
+ This constraint is specified slightly differently, but with the same
+ intent, in the introduction to Section 20 of [RFC3261]:
+
+ The Contact, From, and To header fields contain a URI. If the URI
+ contains a comma, question mark or semicolon, the URI MUST be
+ enclosed in angle brackets (< and >).
+
+ Unfortunately, this can be read to only apply to the Contact, From,
+ and To header fields, making it necessary to provide the constraint
+ explicitly in the prose discussing any other header field using the
+ name-addr or addr-spec alternative.
+
+ As extension header fields were standardized, the specifications
+ sometimes failed to include the constraint. Many errata have been
+ entered to correct this omission. When the constraint has been
+ included, the requirement to use the name-addr form has not been
+ consistently stated.
+
+ This memo updates the specifications of SIP and its extensions to
+ clarify that the constraint to use the name-addr form applies
+ anywhere there is a choice between the name-addr and addr-spec
+ production rules in the grammar for SIP header fields.
+
+ It is important to note that a message formed without honoring the
+ constraint will still be syntactically valid, but it would very
+ likely be interpreted differently. The characters after the comma,
+ question mark, or semicolon will, in most cases, be interpreted as
+ header field parameters or additional header field values as
+ discussed in Section 7.3.1 of [RFC3261]. (An exception is the
+ degenerate case of a URL like sip:10.0.0.1,@10.0.0.0 where it is
+ possible to parse the comma via the 'user' production).
+
+2. Terminology
+
+ The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
+ "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
+ "OPTIONAL" in this document are to be interpreted as described in
+ BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all
+ capitals, as shown here.
+
+
+
+
+
+
+
+
+
+Sparks Standards Track [Page 3]
+
+RFC 8217 name-addr Clarifications August 2017
+
+
+3. Updates to RFC 3261
+
+ This text from introduction to Section 20 of [RFC3261]:
+
+ The Contact, From, and To header fields contain a URI. If the URI
+ contains a comma, question mark or semicolon, the URI MUST be
+ enclosed in angle brackets (< and >). Any URI parameters are
+ contained within these brackets. If the URI is not enclosed in
+ angle brackets, any semicolon-delimited parameters are
+ header-parameters, not URI parameters.
+
+ is replaced with:
+
+ When constructing the value of any SIP header field whose grammar
+ allows choosing between name-addr and addr-spec, such as those
+ that use the form '(name-addr / addr-spec)', the addr-spec form
+ MUST NOT be used if its value would contain a comma, semicolon,
+ or question mark.
+
+ When a URI appears in such a header field, any URI parameters MUST
+ be contained within angle brackets (< and >). If the URI is not
+ enclosed in angle brackets, any semicolon-delimited parameters are
+ header-parameters, not URI parameters.
+
+ The header fields defined in this specification that allow this
+ choice are "To", "From", "Contact", and "Reply-To".
+
+4. Updates to RFCs Defining SIP Extension Header Fields
+
+ The following Standards Track RFCs: [RFC3515], [RFC3892], [RFC4508],
+ and [RFC5360]
+
+ and the following Informational RFCs: [RFC3325], [RFC5002],
+ [RFC5318], and [RFC5502]
+
+ are updated to include:
+
+ This RFC contains the definition of one or more SIP header fields
+ that allow choosing between addr-spec and name-addr when
+ constructing header field values. As specified in RFC 8217,
+ the "addr-spec" form MUST NOT be used if its value would contain
+ a comma, semicolon, or question mark.
+
+ The status of these RFCs remains unchanged. In particular the status
+ of the Informational RFCs remains Informational.
+
+
+
+
+
+
+Sparks Standards Track [Page 4]
+
+RFC 8217 name-addr Clarifications August 2017
+
+
+5. IANA Considerations
+
+ This document does not require any IANA actions.
+
+6. Security Considerations
+
+ The updates specified in this memo clarify a constraint on the
+ grammar for producing SIP messages. It introduces no new security
+ considerations. One pre-existing consideration is worth reiterating:
+ messages produced without honoring the constraint will very likely be
+ misinterpreted by the receiving element.
+
+7. Normative References
+
+ [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
+ Requirement Levels", BCP 14, RFC 2119,
+ DOI 10.17487/RFC2119, March 1997,
+ <http://www.rfc-editor.org/info/rfc2119>.
+
+ [RFC3261] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston,
+ A., Peterson, J., Sparks, R., Handley, M., and E.
+ Schooler, "SIP: Session Initiation Protocol", RFC 3261,
+ DOI 10.17487/RFC3261, June 2002,
+ <http://www.rfc-editor.org/info/rfc3261>.
+
+ [RFC3325] Jennings, C., Peterson, J., and M. Watson, "Private
+ Extensions to the Session Initiation Protocol (SIP) for
+ Asserted Identity within Trusted Networks", RFC 3325,
+ DOI 10.17487/RFC3325, November 2002,
+ <http://www.rfc-editor.org/info/rfc3325>.
+
+ [RFC3515] Sparks, R., "The Session Initiation Protocol (SIP) Refer
+ Method", RFC 3515, DOI 10.17487/RFC3515, April 2003,
+ <http://www.rfc-editor.org/info/rfc3515>.
+
+ [RFC3892] Sparks, R., "The Session Initiation Protocol (SIP)
+ Referred-By Mechanism", RFC 3892, DOI 10.17487/RFC3892,
+ September 2004, <http://www.rfc-editor.org/info/rfc3892>.
+
+ [RFC4508] Levin, O. and A. Johnston, "Conveying Feature Tags with
+ the Session Initiation Protocol (SIP) REFER Method",
+ RFC 4508, DOI 10.17487/RFC4508, May 2006,
+ <http://www.rfc-editor.org/info/rfc4508>.
+
+ [RFC5002] Camarillo, G. and G. Blanco, "The Session Initiation
+ Protocol (SIP) P-Profile-Key Private Header (P-Header)",
+ RFC 5002, DOI 10.17487/RFC5002, August 2007,
+ <http://www.rfc-editor.org/info/rfc5002>.
+
+
+
+Sparks Standards Track [Page 5]
+
+RFC 8217 name-addr Clarifications August 2017
+
+
+ [RFC5234] Crocker, D., Ed. and P. Overell, "Augmented BNF for Syntax
+ Specifications: ABNF", STD 68, RFC 5234,
+ DOI 10.17487/RFC5234, January 2008,
+ <http://www.rfc-editor.org/info/rfc5234>.
+
+ [RFC5318] Hautakorpi, J. and G. Camarillo, "The Session Initiation
+ Protocol (SIP) P-Refused-URI-List Private-Header
+ (P-Header)", RFC 5318, DOI 10.17487/RFC5318, December
+ 2008, <http://www.rfc-editor.org/info/rfc5318>.
+
+ [RFC5360] Rosenberg, J., Camarillo, G., Ed., and D. Willis, "A
+ Framework for Consent-Based Communications in the Session
+ Initiation Protocol (SIP)", RFC 5360,
+ DOI 10.17487/RFC5360, October 2008,
+ <http://www.rfc-editor.org/info/rfc5360>.
+
+ [RFC5502] van Elburg, J., "The SIP P-Served-User Private-Header
+ (P-Header) for the 3GPP IP Multimedia (IM) Core Network
+ (CN) Subsystem", RFC 5502, DOI 10.17487/RFC5502, April
+ 2009, <http://www.rfc-editor.org/info/rfc5502>.
+
+ [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
+ 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
+ May 2017, <http://www.rfc-editor.org/info/rfc8174>.
+
+Acknowledgments
+
+ Brett Tate identified this issue in several extension documents,
+ submitted several corresponding errata, and drove the discussion that
+ led to this memo. Substantive comments leading to this text were
+ provided by Paul Kyzivat, Gonzalo Camarillo, Dale Worley, and
+ Yehoshua Gev.
+
+Author's Address
+
+ Robert Sparks
+ Oracle
+
+ Email: rjsparks@nostrum.com
+
+
+
+
+
+
+
+
+
+
+
+
+Sparks Standards Track [Page 6]
+