RFC 3968
The Internet Assigned Number Authority (IANA) Header Field Parameter Registry for the Session Initiation Protocol (SIP)
RFC 3968: The Internet Assigned Number Authority (IANA) Header Field Parameter Registry for the Session Initiation Protocol (SIP) π
- Network Working Group πΈ
- Author: G. Camarillo, Ericsson π
- Date: December 2004 π
- BCP: 98 π
- Category: Best Current Practice β¨
- Updates: RFC 3427 π₯
Status of This Memo π
okay so this doc is a Best Current Practice for the Internet Community, and it's basically asking everyone for discussion and suggestions for improvements π«Ά Distribution of this memo is unlimited, so share it with your bestie π
Copyright Notice β
Copyright (C) The Internet Society (2004).
Abstract π¦
this doc creates an Internet Assigned Number Authority (IANA) registry for the Session Initiation Protocol (SIP) header field parameters and parameter values π it also lists the parameters and parameter values that already exist, which become the initial entries in this registry π§
Table of Contents π
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 2
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 2
3. Use of the Registry . . . . . . . . . . . . . . . . . . . . . 2
4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 3
4.1. Header Field Parameters Sub-Registry . . . . . . . . . . 3
4.2. Registration Policy for SIP Header Field Parameters. . . 6
5. Security Considerations . . . . . . . . . . . . . . . . . . . 7
6. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 7
7. Normative References . . . . . . . . . . . . . . . . . . . . . 7
Author's Address . . . . . . . . . . . . . . . . . . . . . . . 7
Full Copyright Statement . . . . . . . . . . . . . . . . . . . 8
1. Introduction π§
okay so RFC 3261 [3] lets you define new header field parameters and new parameter values π but the catch is that RFC 3261 never had an IANA registry for them π this document creates that registry β¨
RFC 3427 [4] documents the process for extending SIP π this document updates RFC 3427 by spelling out how to define and register new SIP header field parameters and parameter values π¦
2. Terminology π
in this document, the key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" are to be interpreted as described in BCP 14, RFC 2119 [1], and they show the requirement levels for compliant implementations π«Ά
3. Use of the Registry π
SIP header field parameters and parameter values MUST be documented in an RFC before IANA can register them π that documentation MUST fully explain the syntax, intended usage, and semantics of the parameter or parameter value π the whole point is interoperability between independent implementations, plus stopping accidental namespace collisions between implementations of dissimilar features π
Note: unlike other protocol registries, this one only deals with parameters and parameter values defined in RFCs, so it has no vendor-extension tree π RFC 3427 [4] documents concerns about new SIP extensions that could damage security, greatly increase the complexity of the protocol, or both π that's why new parameters and parameter values need to be documented in RFCs.
RFCs defining SIP header field parameters or parameter values MUST register them with IANA as described below π₯
Registered SIP header field parameters and parameter values count as "reserved words" π to keep interoperability intact, registered parameters and parameter values MUST be used in a manner consistent with the one described in their defining RFC π Implementations MUST NOT utilize "private" or "locally defined" SIP header field parameters or parameter values that conflict with registered ones π«
Note: unregistered SIP header field parameters and parameter values can still be used in implementations, but developers are warned that using them is risky π new ones can be registered at any time, and there's no guarantee they won't clash with unregistered parameters already in use π
Some SIP header field parameters only accept a set of predefined values π for example, a parameter that indicates the transport protocol in use can only accept the predefined tokens TCP, UDP, and SCTP as valid values π¦ registering every parameter value for every SIP header field parameter of this type would take a huge pile of subregistries π© so instead, we register parameter values by reference π
the registry entry for a given header field parameter contains references to the RFCs that define new values of that parameter π those RFC references appear in double brackets in the registry β¨
so the header field parameter registry has a column showing whether each parameter only accepts a set of predefined values π implementers of parameters with a "yes" in that column need to find all the valid parameter values in the RFCs listed as references π«Ά
4. IANA Considerations π
Section 27 of RFC 3261 [3] creates an IANA registry for method names, header field names, warning codes, status codes, and option tags π§ this specification creates a new sub-registry for header field parameters under the SIP Parameters registry π
4.1. Header Field Parameters Sub-Registry β¨
okay so most SIP header fields can be extended by adding new parameters π and IANA is the one who registers those new parameters π¦ when you're adding a parameter for a header field or a new value for a parameter, you MUST provide the following info:
- The header field the parameter can appear in.
- The name of the header field parameter you're registering.
- Whether the parameter only accepts a set of predefined values.
- A reference to the RFC that defines the parameter, plus any RFC that defines new values for it. References to RFCs defining parameter values go in double brackets in the registry π
Parameters in different header fields MAY share the same name πΈ but parameters in the same header field MUST have different names, no exceptions bestie π
Here are the starting values for this sub-registry π
Header Field Parameter Name Predefined Reference
Values
_____________________________________________________________________
Accept q No [RFC 3261]
Accept-Encoding q No [RFC 3261]
Accept-Language q No [RFC 3261]
Authorization algorithm Yes [RFC 3261]
[[RFC 3310]]
Authorization auts No [RFC 3310]
Authorization cnonce No [RFC 3261]
Authorization nc No [RFC 3261]
Authorization nonce No [RFC 3261]
Authorization opaque No [RFC 3261]
Authorization qop Yes [RFC 3261]
Authorization realm No [RFC 3261]
Authorization response No [RFC 3261]
Authorization uri No [RFC 3261]
Authorization username No [RFC 3261]
Authentication-Info cnonce No [RFC 3261]
Authentication-Info nc No [RFC 3261]
Authentication-Info nextnonce No [RFC 3261]
Authentication-Info qop Yes [RFC 3261]
Authentication-Info rspauth No [RFC 3261]
Call-Info purpose Yes [RFC 3261]
Contact expires No [RFC 3261]
Contact q No [RFC 3261]
Content-Disposition handling Yes [RFC 3261]
Event id No [RFC 3265]
From tag No [RFC 3261]
P-Access-Network-Info cgi-3gpp No [RFC 3455]
P-Access-Network-Info utran-cell-id-3gpp No [RFC 3455]
P-Charging-Function-Addresses ccf No [RFC 3455]
P-Charging-Function-Addresses ecf No [RFC 3455]
P-Charging-Vector icid-value No [RFC 3455]
P-Charging-Vector icid-generated-at No [RFC 3455]
P-Charging-Vector orig-ioi No [RFC 3455]
P-Charging-Vector term-ioi No [RFC 3455]
P-DCS-Billing-Info called No [RFC 3603]
P-DCS-Billing-Info calling No [RFC 3603]
P-DCS-Billing-Info charge No [RFC 3603]
P-DCS-Billing-Info locroute No [RFC 3603]
P-DCS-Billing-Info rksgroup No [RFC 3603]
P-DCS-Billing-Info routing No [RFC 3603]
P-DCS-LAES content No [RFC 3603]
P-DCS-LAES key No [RFC 3603]
P-DCS-Redirect count No [RFC 3603]
P-DCS-Redirect redirector-uri No [RFC 3603]
Proxy-Authenticate algorithm Yes [RFC 3261]
[[RFC 3310]]
Proxy-Authenticate domain No [RFC 3261]
Proxy-Authenticate nonce No [RFC 3261]
Proxy-Authenticate opaque No [RFC 3261]
Proxy-Authenticate qop Yes [RFC 3261]
Proxy-Authenticate realm No [RFC 3261]
Proxy-Authenticate stale Yes [RFC 3261]
Proxy-Authorization algorithm Yes [RFC 3261]
[[RFC 3310]]
Proxy-Authorization auts No [RFC 3310]
Proxy-Authorization cnonce No [RFC 3261]
Proxy-Authorization nc No [RFC 3261]
Proxy-Authorization nonce No [RFC 3261]
Proxy-Authorization opaque No [RFC 3261]
Proxy-Authorization qop Yes [RFC 3261]
Proxy-Authorization realm No [RFC 3261]
Proxy-Authorization response No [RFC 3261]
Proxy-Authorization uri No [RFC 3261]
Proxy-Authorization username No [RFC 3261]
Reason cause Yes [RFC 3326]
Reason text No [RFC 3326]
Retry-After duration No [RFC 3261]
Security-Client alg Yes [RFC 3329]
Security-Client ealg Yes [RFC 3329]
Security-Client d-alg Yes [RFC 3329]
Security-Client d-qop Yes [RFC 3329]
Security-Client d-ver No [RFC 3329]
Security-Client mod Yes [RFC 3329]
Security-Client port1 No [RFC 3329]
Security-Client port2 No [RFC 3329]
Security-Client prot Yes [RFC 3329]
Security-Client q No [RFC 3329]
Security-Client spi No [RFC 3329]
Security-Server alg Yes [RFC 3329]
Security-Server ealg Yes [RFC 3329]
Security-Server d-alg Yes [RFC 3329]
Security-Server d-qop Yes [RFC 3329]
Security-Server d-ver No [RFC 3329]
Security-Server mod Yes [RFC 3329]
Security-Server port1 No [RFC 3329]
Security-Server port2 No [RFC 3329]
Security-Server prot Yes [RFC 3329]
Security-Server q No [RFC 3329]
Security-Server spi No [RFC 3329]
Security-Verify alg Yes [RFC 3329]
Security-Verify ealg Yes [RFC 3329]
Security-Verify d-alg Yes [RFC 3329]
Security-Verify d-qop Yes [RFC 3329]
Security-Verify d-ver No [RFC 3329]
Security-Verify mod Yes [RFC 3329]
Security-Verify port1 No [RFC 3329]
Security-Verify port2 No [RFC 3329]
Security-Verify prot Yes [RFC 3329]
Security-Verify q No [RFC 3329]
Security-Verify spi No [RFC 3329]
Subscription-State expires No [RFC 3265]
Subscription-State reason Yes [RFC 3265]
Subscription-State retry-after No [RFC 3265]
To tag No [RFC 3261]
Via branch No [RFC 3261]
Via comp Yes [RFC 3486]
Via maddr No [RFC 3261]
Via received No [RFC 3261]
Via rport No [RFC 3581]
Via ttl No [RFC 3261]
WWW-Authenticate algorithm Yes [RFC 3261]
[[RFC 3310]]
WWW-Authenticate domain Yes [RFC 3261]
WWW-Authenticate nonce No [RFC 3261]
WWW-Authenticate opaque No [RFC 3261]
WWW-Authenticate qop Yes [RFC 3261]
WWW-Authenticate realm No [RFC 3261]
WWW-Authenticate stale Yes [RFC 3261]
4.2. Registration Policy for SIP Header Field Parameters π₯
Per the terminology in RFC 2434 [2], the registration policy for SIP header field parameters and parameter values shall be "IETF Consensus."
For this registry, the parameter or parameter value you want IANA to register MUST be defined by an RFC π and that RFC doesn't have to be standards-track, so no pressure π
5. Security Considerations π
Okay, serious moment, bestie π The registry in this document doesn't have security considerations by itself. BUT, as RFC 3427 points out, a big reason the IETF manages SIP extensions is to make sure every extension and parameter can be used securely π The supporting RFC publications for parameter registrations described in this specification MUST provide detailed security considerations. No skipping this part, periodt π
6. Acknowledgements π«Ά
Jonathan Rosenberg, Henning Schulzrinne, Rohan Mahy, Dean Willis, Aki Niemi, Bill Marshall, Miguel A. Garcia-Martin, Jean Francois Mule, and Allison Mankin gave useful comments on this document, and we love them for it π
7. Normative References π
[1] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997.
[2] Narten, T. and H. Alvestrand, "Guidelines for Writing an IANA Considerations Section in RFCs", BCP 26, RFC 2434, October 1998.
[3] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, A., Peterson, J., Sparks, R., Handley, M., and E. Schooler, "SIP: Session Initiation Protocol", RFC 3261, June 2002.
[4] Mankin, A., Bradner, S., Mahy, R., Willis, D., Ott, J., and B. Rosen, "Change Process for the Session Initiation Protocol (SIP)", BCP 67, RFC 3427, December 2002.
Author's Address π¦
Gonzalo Camarillo
Ericsson
Hirsalantie 11
Jorvas 02420
Finland
EMail: Gonzalo.Camarillo@ericsson.com
Full Copyright Statement β¨
Okay bestie, legal time, but make it cute π The Internet Society owns the copyright here (2004) π This document is subject to the rights, licenses and restrictions in BCP 78, and except as set forth there, the authors keep all their rights π«Ά
The whole document is provided on an "AS IS" basis, and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM 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. π Yes, it's all caps, and yes, it's giving serious lawyer energy π
Intellectual Property π¦
Okay so the IETF is not picking a side on who owns what π It takes no position on whether any Intellectual Property Rights (or other rights) that someone might claim over the tech in this document are valid, or how far they reach. It also won't tell you if a license for those rights is available, and it hasn't done any independent digging to find any such rights either π§ If you want the rules on IETF rights stuff, check out BCP 78 and BCP 79 π
Copies of IPR disclosures sent to the IETF Secretariat are a thing, and so are any assurances of licenses that might be offered. You can also get the result of an attempt to score a general license or permission for implementers or users of this spec. All of that lives on the IETF online IPR repository at http://www.ietf.org/ipr πΈ
The IETF also invites anyone to flag any copyrights, patents, patent applications, or other proprietary rights that might cover tech needed to implement this standard. Send that info to the IETF at ietf-ipr@ietf.org π Honestly, this is the IETF being a good friend and asking for the tea before anyone gets sued π
Acknowledgement π
Last but not least, the RFC Editor function is currently funded by the Internet Society π Thank you, Internet Society, you're the real MVP π«Άβ¨
π¦ where this page comes from
- ietf: rfc3968 2004-12
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms