Difference between revisions of "RFC3968"

From RFC-Wiki
 
Line 9: Line 9:
 
               the Session Initiation Protocol (SIP)
 
               the Session Initiation Protocol (SIP)
  
Status of This Memo
+
'''Status of This Memo'''
  
 
This document specifies an Internet Best Current Practices for the
 
This document specifies an Internet Best Current Practices for the
Line 15: Line 15:
 
improvements.  Distribution of this memo is unlimited.
 
improvements.  Distribution of this memo is unlimited.
  
Copyright Notice
+
'''Copyright Notice'''
  
 
Copyright (C) The Internet Society (2004).
 
Copyright (C) The Internet Society (2004).
  
Abstract
+
'''Abstract'''
  
 
This document creates an Internet Assigned Number Authority (IANA)
 
This document creates an Internet Assigned Number Authority (IANA)
Line 27: Line 27:
 
this registry.
 
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
 
     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
 
  
 
== Introduction ==
 
== Introduction ==
  
RFC 3261 [3] allows new header field parameters and new parameter
+
[[RFC3261|RFC 3261]] [3] allows new header field parameters and new parameter
values to be defined.  However, RFC 3261 omitted an IANA registry for
+
values to be defined.  However, [[RFC3261|RFC 3261]] omitted an IANA registry for
 
them.  This document creates such a registry.
 
them.  This document creates such a registry.
  
RFC 3427 [4] documents the process to extend SIP.  This document
+
[[RFC3427|RFC 3427]] [4] documents the process to extend SIP.  This document
updates RFC 3427 by specifying how to define and register new SIP
+
updates [[RFC3427|RFC 3427]] by specifying how to define and register new SIP
 
header field parameters and parameter values.
 
header field parameters and parameter values.
  
Line 56: Line 44:
 
"SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT
 
"SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT
 
RECOMMENDED", "MAY", and "OPTIONAL" are to be interpreted as
 
RECOMMENDED", "MAY", and "OPTIONAL" are to be interpreted as
described in BCP 14, RFC 2119 [1] and indicate requirement levels for
+
described in [[BCP14|BCP 14]], [[RFC2119|RFC 2119]] [1] and indicate requirement levels for
 
compliant implementations.
 
compliant implementations.
  
Line 71: Line 59:
 
   Note that this registry, unlike other protocol registries, only
 
   Note that this registry, unlike other protocol registries, only
 
   deals with parameters and parameter values defined in RFCs (i.e.,
 
   deals with parameters and parameter values defined in RFCs (i.e.,
   it lacks a vendor-extension tree).  RFC 3427 [4] documents
+
   it lacks a vendor-extension tree).  [[RFC3427|RFC 3427]] [4] documents
 
   concerns with regards to new SIP extensions which may damage
 
   concerns with regards to new SIP extensions which may damage
 
   security, greatly increase the complexity of the protocol, or
 
   security, greatly increase the complexity of the protocol, or
Line 115: Line 103:
 
== IANA Considerations ==
 
== IANA Considerations ==
  
Section 27 of RFC 3261 [3] creates an IANA registry for method names,
+
Section 27 of [[RFC3261|RFC 3261]] [3] creates an IANA registry for method names,
 
header field names, warning codes, status codes, and option tags.
 
header field names, warning codes, status codes, and option tags.
 
This specification creates a new sub-registry for header field
 
This specification creates a new sub-registry for header field
Line 147: Line 135:
 
                                                 Values
 
                                                 Values
 
_____________________________________________________________________
 
_____________________________________________________________________
Accept                        q                    No    [RFC 3261]
+
Accept                        q                    No    [[[RFC3261|RFC 3261]]]
Accept-Encoding              q                    No    [RFC 3261]
+
Accept-Encoding              q                    No    [[[RFC3261|RFC 3261]]]
Accept-Language              q                    No    [RFC 3261]
+
Accept-Language              q                    No    [[[RFC3261|RFC 3261]]]
Authorization                algorithm          Yes    [RFC 3261]
+
Authorization                algorithm          Yes    [[[RFC3261|RFC 3261]]]
                                                         [[RFC 3310]]
+
                                                         [[[[RFC3310|RFC 3310]]]]
Authorization                auts                No    [RFC 3310]
+
Authorization                auts                No    [[[RFC3310|RFC 3310]]]
Authorization                cnonce              No    [RFC 3261]
+
Authorization                cnonce              No    [[[RFC3261|RFC 3261]]]
Authorization                nc                  No    [RFC 3261]
+
Authorization                nc                  No    [[[RFC3261|RFC 3261]]]
Authorization                nonce                No    [RFC 3261]
+
Authorization                nonce                No    [[[RFC3261|RFC 3261]]]
Authorization                opaque              No    [RFC 3261]
+
Authorization                opaque              No    [[[RFC3261|RFC 3261]]]
Authorization                qop                Yes    [RFC 3261]
+
Authorization                qop                Yes    [[[RFC3261|RFC 3261]]]
Authorization                realm                No    [RFC 3261]
+
Authorization                realm                No    [[[RFC3261|RFC 3261]]]
Authorization                response            No    [RFC 3261]
+
Authorization                response            No    [[[RFC3261|RFC 3261]]]
Authorization                uri                  No    [RFC 3261]
+
Authorization                uri                  No    [[[RFC3261|RFC 3261]]]
Authorization                username            No    [RFC 3261]
+
Authorization                username            No    [[[RFC3261|RFC 3261]]]
Authentication-Info          cnonce              No    [RFC 3261]
+
Authentication-Info          cnonce              No    [[[RFC3261|RFC 3261]]]
Authentication-Info          nc                  No    [RFC 3261]
+
Authentication-Info          nc                  No    [[[RFC3261|RFC 3261]]]
Authentication-Info          nextnonce            No    [RFC 3261]
+
Authentication-Info          nextnonce            No    [[[RFC3261|RFC 3261]]]
Authentication-Info          qop                Yes    [RFC 3261]
+
Authentication-Info          qop                Yes    [[[RFC3261|RFC 3261]]]
Authentication-Info          rspauth              No    [RFC 3261]
+
Authentication-Info          rspauth              No    [[[RFC3261|RFC 3261]]]
Call-Info                    purpose            Yes    [RFC 3261]
+
Call-Info                    purpose            Yes    [[[RFC3261|RFC 3261]]]
Contact                      expires              No    [RFC 3261]
+
Contact                      expires              No    [[[RFC3261|RFC 3261]]]
Contact                      q                    No    [RFC 3261]
+
Contact                      q                    No    [[[RFC3261|RFC 3261]]]
Content-Disposition          handling            Yes    [RFC 3261]
+
Content-Disposition          handling            Yes    [[[RFC3261|RFC 3261]]]
Event                        id                  No    [RFC 3265]
+
Event                        id                  No    [[[RFC3265|RFC 3265]]]
From                          tag                  No    [RFC 3261]
+
From                          tag                  No    [[[RFC3261|RFC 3261]]]
P-Access-Network-Info        cgi-3gpp            No    [RFC 3455]
+
P-Access-Network-Info        cgi-3gpp            No    [[[RFC3455|RFC 3455]]]
P-Access-Network-Info        utran-cell-id-3gpp  No    [RFC 3455]
+
P-Access-Network-Info        utran-cell-id-3gpp  No    [[[RFC3455|RFC 3455]]]
P-Charging-Function-Addresses ccf                  No    [RFC 3455]
+
P-Charging-Function-Addresses ccf                  No    [[[RFC3455|RFC 3455]]]
P-Charging-Function-Addresses ecf                  No    [RFC 3455]
+
P-Charging-Function-Addresses ecf                  No    [[[RFC3455|RFC 3455]]]
P-Charging-Vector            icid-value          No    [RFC 3455]
+
P-Charging-Vector            icid-value          No    [[[RFC3455|RFC 3455]]]
P-Charging-Vector            icid-generated-at    No    [RFC 3455]
+
P-Charging-Vector            icid-generated-at    No    [[[RFC3455|RFC 3455]]]
P-Charging-Vector            orig-ioi            No    [RFC 3455]
+
P-Charging-Vector            orig-ioi            No    [[[RFC3455|RFC 3455]]]
P-Charging-Vector            term-ioi            No    [RFC 3455]
+
P-Charging-Vector            term-ioi            No    [[[RFC3455|RFC 3455]]]
  
P-DCS-Billing-Info            called              No    [RFC 3603]
+
P-DCS-Billing-Info            called              No    [[[RFC3603|RFC 3603]]]
P-DCS-Billing-Info            calling              No    [RFC 3603]
+
P-DCS-Billing-Info            calling              No    [[[RFC3603|RFC 3603]]]
P-DCS-Billing-Info            charge              No    [RFC 3603]
+
P-DCS-Billing-Info            charge              No    [[[RFC3603|RFC 3603]]]
P-DCS-Billing-Info            locroute            No    [RFC 3603]
+
P-DCS-Billing-Info            locroute            No    [[[RFC3603|RFC 3603]]]
P-DCS-Billing-Info            rksgroup            No    [RFC 3603]
+
P-DCS-Billing-Info            rksgroup            No    [[[RFC3603|RFC 3603]]]
P-DCS-Billing-Info            routing              No    [RFC 3603]
+
P-DCS-Billing-Info            routing              No    [[[RFC3603|RFC 3603]]]
P-DCS-LAES                    content              No    [RFC 3603]
+
P-DCS-LAES                    content              No    [[[RFC3603|RFC 3603]]]
P-DCS-LAES                    key                  No    [RFC 3603]
+
P-DCS-LAES                    key                  No    [[[RFC3603|RFC 3603]]]
P-DCS-Redirect                count                No    [RFC 3603]
+
P-DCS-Redirect                count                No    [[[RFC3603|RFC 3603]]]
P-DCS-Redirect                redirector-uri      No    [RFC 3603]
+
P-DCS-Redirect                redirector-uri      No    [[[RFC3603|RFC 3603]]]
Proxy-Authenticate            algorithm          Yes    [RFC 3261]
+
Proxy-Authenticate            algorithm          Yes    [[[RFC3261|RFC 3261]]]
                                                         [[RFC 3310]]
+
                                                         [[[[RFC3310|RFC 3310]]]]
Proxy-Authenticate            domain              No    [RFC 3261]
+
Proxy-Authenticate            domain              No    [[[RFC3261|RFC 3261]]]
Proxy-Authenticate            nonce                No    [RFC 3261]
+
Proxy-Authenticate            nonce                No    [[[RFC3261|RFC 3261]]]
Proxy-Authenticate            opaque              No    [RFC 3261]
+
Proxy-Authenticate            opaque              No    [[[RFC3261|RFC 3261]]]
Proxy-Authenticate            qop                Yes    [RFC 3261]
+
Proxy-Authenticate            qop                Yes    [[[RFC3261|RFC 3261]]]
Proxy-Authenticate            realm                No    [RFC 3261]
+
Proxy-Authenticate            realm                No    [[[RFC3261|RFC 3261]]]
Proxy-Authenticate            stale              Yes    [RFC 3261]
+
Proxy-Authenticate            stale              Yes    [[[RFC3261|RFC 3261]]]
Proxy-Authorization          algorithm          Yes    [RFC 3261]
+
Proxy-Authorization          algorithm          Yes    [[[RFC3261|RFC 3261]]]
                                                         [[RFC 3310]]
+
                                                         [[[[RFC3310|RFC 3310]]]]
Proxy-Authorization          auts                No    [RFC 3310]
+
Proxy-Authorization          auts                No    [[[RFC3310|RFC 3310]]]
Proxy-Authorization          cnonce              No    [RFC 3261]
+
Proxy-Authorization          cnonce              No    [[[RFC3261|RFC 3261]]]
Proxy-Authorization          nc                  No    [RFC 3261]
+
Proxy-Authorization          nc                  No    [[[RFC3261|RFC 3261]]]
Proxy-Authorization          nonce                No    [RFC 3261]
+
Proxy-Authorization          nonce                No    [[[RFC3261|RFC 3261]]]
Proxy-Authorization          opaque              No    [RFC 3261]
+
Proxy-Authorization          opaque              No    [[[RFC3261|RFC 3261]]]
Proxy-Authorization          qop                Yes    [RFC 3261]
+
Proxy-Authorization          qop                Yes    [[[RFC3261|RFC 3261]]]
Proxy-Authorization          realm                No    [RFC 3261]
+
Proxy-Authorization          realm                No    [[[RFC3261|RFC 3261]]]
Proxy-Authorization          response            No    [RFC 3261]
+
Proxy-Authorization          response            No    [[[RFC3261|RFC 3261]]]
Proxy-Authorization          uri                  No    [RFC 3261]
+
Proxy-Authorization          uri                  No    [[[RFC3261|RFC 3261]]]
Proxy-Authorization          username            No    [RFC 3261]
+
Proxy-Authorization          username            No    [[[RFC3261|RFC 3261]]]
Reason                        cause              Yes    [RFC 3326]
+
Reason                        cause              Yes    [[[RFC3326|RFC 3326]]]
Reason                        text                No    [RFC 3326]
+
Reason                        text                No    [[[RFC3326|RFC 3326]]]
Retry-After                  duration            No    [RFC 3261]
+
Retry-After                  duration            No    [[[RFC3261|RFC 3261]]]
Security-Client              alg                Yes    [RFC 3329]
+
Security-Client              alg                Yes    [[[RFC3329|RFC 3329]]]
Security-Client              ealg                Yes    [RFC 3329]
+
Security-Client              ealg                Yes    [[[RFC3329|RFC 3329]]]
Security-Client              d-alg              Yes    [RFC 3329]
+
Security-Client              d-alg              Yes    [[[RFC3329|RFC 3329]]]
Security-Client              d-qop              Yes    [RFC 3329]
+
Security-Client              d-qop              Yes    [[[RFC3329|RFC 3329]]]
Security-Client              d-ver                No    [RFC 3329]
+
Security-Client              d-ver                No    [[[RFC3329|RFC 3329]]]
Security-Client              mod                Yes    [RFC 3329]
+
Security-Client              mod                Yes    [[[RFC3329|RFC 3329]]]
Security-Client              port1                No    [RFC 3329]
+
Security-Client              port1                No    [[[RFC3329|RFC 3329]]]
Security-Client              port2                No    [RFC 3329]
+
Security-Client              port2                No    [[[RFC3329|RFC 3329]]]
Security-Client              prot                Yes    [RFC 3329]
+
Security-Client              prot                Yes    [[[RFC3329|RFC 3329]]]
Security-Client              q                    No    [RFC 3329]
+
Security-Client              q                    No    [[[RFC3329|RFC 3329]]]
Security-Client              spi                  No    [RFC 3329]
+
Security-Client              spi                  No    [[[RFC3329|RFC 3329]]]
Security-Server              alg                Yes    [RFC 3329]
+
Security-Server              alg                Yes    [[[RFC3329|RFC 3329]]]
Security-Server              ealg                Yes    [RFC 3329]
+
Security-Server              ealg                Yes    [[[RFC3329|RFC 3329]]]
Security-Server              d-alg              Yes    [RFC 3329]
+
Security-Server              d-alg              Yes    [[[RFC3329|RFC 3329]]]
Security-Server              d-qop              Yes    [RFC 3329]
+
Security-Server              d-qop              Yes    [[[RFC3329|RFC 3329]]]
  
Security-Server              d-ver                No    [RFC 3329]
+
Security-Server              d-ver                No    [[[RFC3329|RFC 3329]]]
Security-Server              mod                Yes    [RFC 3329]
+
Security-Server              mod                Yes    [[[RFC3329|RFC 3329]]]
Security-Server              port1                No    [RFC 3329]
+
Security-Server              port1                No    [[[RFC3329|RFC 3329]]]
Security-Server              port2                No    [RFC 3329]
+
Security-Server              port2                No    [[[RFC3329|RFC 3329]]]
Security-Server              prot                Yes    [RFC 3329]
+
Security-Server              prot                Yes    [[[RFC3329|RFC 3329]]]
Security-Server              q                    No    [RFC 3329]
+
Security-Server              q                    No    [[[RFC3329|RFC 3329]]]
Security-Server              spi                  No    [RFC 3329]
+
Security-Server              spi                  No    [[[RFC3329|RFC 3329]]]
Security-Verify              alg                Yes    [RFC 3329]
+
Security-Verify              alg                Yes    [[[RFC3329|RFC 3329]]]
Security-Verify              ealg                Yes    [RFC 3329]
+
Security-Verify              ealg                Yes    [[[RFC3329|RFC 3329]]]
Security-Verify              d-alg              Yes    [RFC 3329]
+
Security-Verify              d-alg              Yes    [[[RFC3329|RFC 3329]]]
Security-Verify              d-qop              Yes    [RFC 3329]
+
Security-Verify              d-qop              Yes    [[[RFC3329|RFC 3329]]]
Security-Verify              d-ver                No    [RFC 3329]
+
Security-Verify              d-ver                No    [[[RFC3329|RFC 3329]]]
Security-Verify              mod                Yes    [RFC 3329]
+
Security-Verify              mod                Yes    [[[RFC3329|RFC 3329]]]
Security-Verify              port1                No    [RFC 3329]
+
Security-Verify              port1                No    [[[RFC3329|RFC 3329]]]
Security-Verify              port2                No    [RFC 3329]
+
Security-Verify              port2                No    [[[RFC3329|RFC 3329]]]
Security-Verify              prot                Yes    [RFC 3329]
+
Security-Verify              prot                Yes    [[[RFC3329|RFC 3329]]]
Security-Verify              q                    No    [RFC 3329]
+
Security-Verify              q                    No    [[[RFC3329|RFC 3329]]]
Security-Verify              spi                  No    [RFC 3329]
+
Security-Verify              spi                  No    [[[RFC3329|RFC 3329]]]
Subscription-State            expires              No    [RFC 3265]
+
Subscription-State            expires              No    [[[RFC3265|RFC 3265]]]
Subscription-State            reason              Yes    [RFC 3265]
+
Subscription-State            reason              Yes    [[[RFC3265|RFC 3265]]]
Subscription-State            retry-after          No    [RFC 3265]
+
Subscription-State            retry-after          No    [[[RFC3265|RFC 3265]]]
To                            tag                  No    [RFC 3261]
+
To                            tag                  No    [[[RFC3261|RFC 3261]]]
Via                          branch              No    [RFC 3261]
+
Via                          branch              No    [[[RFC3261|RFC 3261]]]
Via                          comp                Yes    [RFC 3486]
+
Via                          comp                Yes    [[[RFC3486|RFC 3486]]]
Via                          maddr                No    [RFC 3261]
+
Via                          maddr                No    [[[RFC3261|RFC 3261]]]
Via                          received            No    [RFC 3261]
+
Via                          received            No    [[[RFC3261|RFC 3261]]]
Via                          rport                No    [RFC 3581]
+
Via                          rport                No    [[[RFC3581|RFC 3581]]]
Via                          ttl                  No    [RFC 3261]
+
Via                          ttl                  No    [[[RFC3261|RFC 3261]]]
WWW-Authenticate              algorithm          Yes    [RFC 3261]
+
WWW-Authenticate              algorithm          Yes    [[[RFC3261|RFC 3261]]]
                                                         [[RFC 3310]]
+
                                                         [[[[RFC3310|RFC 3310]]]]
WWW-Authenticate              domain              Yes    [RFC 3261]
+
WWW-Authenticate              domain              Yes    [[[RFC3261|RFC 3261]]]
WWW-Authenticate              nonce                No    [RFC 3261]
+
WWW-Authenticate              nonce                No    [[[RFC3261|RFC 3261]]]
WWW-Authenticate              opaque              No    [RFC 3261]
+
WWW-Authenticate              opaque              No    [[[RFC3261|RFC 3261]]]
WWW-Authenticate              qop                Yes    [RFC 3261]
+
WWW-Authenticate              qop                Yes    [[[RFC3261|RFC 3261]]]
WWW-Authenticate              realm                No    [RFC 3261]
+
WWW-Authenticate              realm                No    [[[RFC3261|RFC 3261]]]
WWW-Authenticate              stale              Yes    [RFC 3261]
+
WWW-Authenticate              stale              Yes    [[[RFC3261|RFC 3261]]]
  
 
=== Registration Policy for SIP Header Field Parameters ===
 
=== Registration Policy for SIP Header Field Parameters ===
  
As per the terminology in RFC 2434 [2], the registration policy for
+
As per the terminology in [[RFC2434|RFC 2434]] [2], the registration policy for
 
SIP header field parameters and parameter values shall be "IETF
 
SIP header field parameters and parameter values shall be "IETF
 
Consensus."
 
Consensus."
Line 281: Line 269:
  
 
The registry in this document does not in itself have security
 
The registry in this document does not in itself have security
considerations.  However, as mentioned in RFC 3427, an important
+
considerations.  However, as mentioned in [[RFC3427|RFC 3427]], an important
 
reason for the IETF to manage the extensions of SIP is to ensure that
 
reason for the IETF to manage the extensions of SIP is to ensure that
 
all extensions and parameters are able to provide secure usage.  The
 
all extensions and parameters are able to provide secure usage.  The
Line 297: Line 285:
  
 
[1] Bradner, S., "Key words for use in RFCs to Indicate Requirement
 
[1] Bradner, S., "Key words for use in RFCs to Indicate Requirement
     Levels", BCP 14, RFC 2119, March 1997.
+
     Levels", [[BCP14|BCP 14]], [[RFC2119|RFC 2119]], March 1997.
  
 
[2] Narten, T. and H. Alvestrand, "Guidelines for Writing an IANA
 
[2] Narten, T. and H. Alvestrand, "Guidelines for Writing an IANA
     Considerations Section in RFCs", BCP 26, RFC 2434, October 1998.
+
     Considerations Section in RFCs", [[BCP26|BCP 26]], [[RFC2434|RFC 2434]], October 1998.
  
 
[3] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, A.,
 
[3] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, A.,
 
     Peterson, J., Sparks, R., Handley, M., and E. Schooler, "SIP:
 
     Peterson, J., Sparks, R., Handley, M., and E. Schooler, "SIP:
     Session Initiation Protocol", RFC 3261, June 2002.
+
     Session Initiation Protocol", [[RFC3261|RFC 3261]], June 2002.
  
 
[4] Mankin, A., Bradner, S., Mahy, R., Willis, D., Ott, J., and B.
 
[4] Mankin, A., Bradner, S., Mahy, R., Willis, D., Ott, J., and B.
 
     Rosen, "Change Process for the Session Initiation Protocol
 
     Rosen, "Change Process for the Session Initiation Protocol
     (SIP)", BCP 67, RFC 3427, December 2002.
+
     (SIP)", [[BCP67|BCP 67]], [[RFC3427|RFC 3427]], December 2002.
  
 
Author's Address
 
Author's Address
Line 325: Line 313:
  
 
This document is subject to the rights, licenses and restrictions
 
This document is subject to the rights, licenses and restrictions
contained in BCP 78, and except as set forth therein, the authors
+
contained in [[BCP78|BCP 78]], and except as set forth therein, the authors
 
retain all their rights.
 
retain all their rights.
  
Line 345: Line 333:
 
made any independent effort to identify any such rights.  Information
 
made any independent effort to identify any such rights.  Information
 
on the IETF's procedures with respect to rights in IETF Documents can
 
on the IETF's procedures with respect to rights in IETF Documents can
be found in BCP 78 and BCP 79.
+
be found in [[BCP78|BCP 78]] and [[BCP79|BCP 79]].
  
 
Copies of IPR disclosures made to the IETF Secretariat and any
 
Copies of IPR disclosures made to the IETF Secretariat and any
Line 364: Line 352:
 
Funding for the RFC Editor function is currently provided by the
 
Funding for the RFC Editor function is currently provided by the
 
Internet Society.
 
Internet Society.
 +
 +
[[Category:Best Current Practice]]

Latest revision as of 12:28, 4 October 2020

Network Working Group G. Camarillo Request for Comments: 3968 Ericsson Updates: 3427 December 2004 BCP: 98 Category: Best Current Practice

         The Internet Assigned Number Authority (IANA)
              Header Field Parameter Registry for
             the Session Initiation Protocol (SIP)

Status of This Memo

This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements. Distribution of this memo is unlimited.

Copyright Notice

Copyright (C) The Internet Society (2004).

Abstract

This document creates an Internet Assigned Number Authority (IANA) registry for the Session Initiation Protocol (SIP) header field parameters and parameter values. It also lists the already existing parameters and parameter values to be used as the initial entries for this registry.

   4.2.  Registration Policy for SIP Header Field Parameters. . .  6

Introduction

RFC 3261 [3] allows new header field parameters and new parameter values to be defined. However, RFC 3261 omitted an IANA registry for them. This document creates such a registry.

RFC 3427 [4] documents the process to extend SIP. This document updates RFC 3427 by specifying how to define and register new SIP header field parameters and parameter values.

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 indicate requirement levels for compliant implementations.

Use of the Registry

SIP header field parameters and parameter values MUST be documented in an RFC in order to be registered by IANA. This documentation MUST fully explain the syntax, intended usage, and semantics of the parameter or parameter value. The intent of this requirement is to assure interoperability between independent implementations, and to prevent accidental namespace collisions between implementations of dissimilar features.

  Note that this registry, unlike other protocol registries, only
  deals with parameters and parameter values defined in RFCs (i.e.,
  it lacks a vendor-extension tree).  RFC 3427 [4] documents
  concerns with regards to new SIP extensions which may damage
  security, greatly increase the complexity of the protocol, or
  both.  New parameters and parameter values need to be documented
  in RFCs as a result of these concerns.

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 are to be considered "reserved words". In order to preserve interoperability, registered parameters and parameter values MUST be used in a manner consistent with that described in their defining RFC. Implementations MUST NOT utilize "private" or "locally defined" SIP header field parameters or parameter values that conflict with registered parameters.

  Note that although unregistered SIP header field parameters and
  parameter values may be used in implementations, developers are
  cautioned that usage of such parameters is risky.  New SIP header
  field parameters and parameter values may be registered at any
  time, and there is no assurance that these new registered
  parameters or parameter values will not conflict with unregistered
  parameters currently in use.

Some SIP header field parameters only accept a set of predefined parameter values. For example, a parameter indicating the transport protocol in use may only accept the predefined tokens TCP, UDP, and SCTP as valid values. Registering all parameter values for all SIP header field parameters of this type would require a large number of subregistries. Instead, we have chosen to register parameter values by reference. That is, the entry in the parameter registry for a given header field parameter contains references to the RFCs defining new values of the parameter. References to RFCs defining parameter values appear in double brackets in the registry.

So, the header field parameter registry contains a column that indicates whether or not 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 provided as references.

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.

Header Field Parameters Sub-Registry

The majority of the SIP header fields can be extended by defining new parameters. New SIP header field parameters are registered by the IANA. When registering a new parameter for a header field or a new value for a parameter, the following information MUST be provided.

o Header field in which the parameter can appear.

o Name of the header field parameter being registered.

o Whether the parameter only accepts a set of predefined values.

o A reference to the RFC where the parameter is defined and to any

  RFC that defines new values for the parameter.  References to RFCs
  defining parameter values appear in double brackets in the
  registry.

Parameters that can appear in different header fields MAY have the same name. However, parameters that can appear in the same header field MUST have different names.

The following are the initial values for this sub-registry.

Header Field Parameter Name Predefined Reference

                                                Values

_____________________________________________________________________ Accept q No [[[RFC3261|RFC 3261]]] Accept-Encoding q No [[[RFC3261|RFC 3261]]] Accept-Language q No [[[RFC3261|RFC 3261]]] Authorization algorithm Yes [[[RFC3261|RFC 3261]]]

                                                        [[RFC 3310]]

Authorization auts No [[[RFC3310|RFC 3310]]] Authorization cnonce No [[[RFC3261|RFC 3261]]] Authorization nc No [[[RFC3261|RFC 3261]]] Authorization nonce No [[[RFC3261|RFC 3261]]] Authorization opaque No [[[RFC3261|RFC 3261]]] Authorization qop Yes [[[RFC3261|RFC 3261]]] Authorization realm No [[[RFC3261|RFC 3261]]] Authorization response No [[[RFC3261|RFC 3261]]] Authorization uri No [[[RFC3261|RFC 3261]]] Authorization username No [[[RFC3261|RFC 3261]]] Authentication-Info cnonce No [[[RFC3261|RFC 3261]]] Authentication-Info nc No [[[RFC3261|RFC 3261]]] Authentication-Info nextnonce No [[[RFC3261|RFC 3261]]] Authentication-Info qop Yes [[[RFC3261|RFC 3261]]] Authentication-Info rspauth No [[[RFC3261|RFC 3261]]] Call-Info purpose Yes [[[RFC3261|RFC 3261]]] Contact expires No [[[RFC3261|RFC 3261]]] Contact q No [[[RFC3261|RFC 3261]]] Content-Disposition handling Yes [[[RFC3261|RFC 3261]]] Event id No [[[RFC3265|RFC 3265]]] From tag No [[[RFC3261|RFC 3261]]] P-Access-Network-Info cgi-3gpp No [[[RFC3455|RFC 3455]]] P-Access-Network-Info utran-cell-id-3gpp No [[[RFC3455|RFC 3455]]] P-Charging-Function-Addresses ccf No [[[RFC3455|RFC 3455]]] P-Charging-Function-Addresses ecf No [[[RFC3455|RFC 3455]]] P-Charging-Vector icid-value No [[[RFC3455|RFC 3455]]] P-Charging-Vector icid-generated-at No [[[RFC3455|RFC 3455]]] P-Charging-Vector orig-ioi No [[[RFC3455|RFC 3455]]] P-Charging-Vector term-ioi No [[[RFC3455|RFC 3455]]]

P-DCS-Billing-Info called No [[[RFC3603|RFC 3603]]] P-DCS-Billing-Info calling No [[[RFC3603|RFC 3603]]] P-DCS-Billing-Info charge No [[[RFC3603|RFC 3603]]] P-DCS-Billing-Info locroute No [[[RFC3603|RFC 3603]]] P-DCS-Billing-Info rksgroup No [[[RFC3603|RFC 3603]]] P-DCS-Billing-Info routing No [[[RFC3603|RFC 3603]]] P-DCS-LAES content No [[[RFC3603|RFC 3603]]] P-DCS-LAES key No [[[RFC3603|RFC 3603]]] P-DCS-Redirect count No [[[RFC3603|RFC 3603]]] P-DCS-Redirect redirector-uri No [[[RFC3603|RFC 3603]]] Proxy-Authenticate algorithm Yes [[[RFC3261|RFC 3261]]]

                                                        [[RFC 3310]]

Proxy-Authenticate domain No [[[RFC3261|RFC 3261]]] Proxy-Authenticate nonce No [[[RFC3261|RFC 3261]]] Proxy-Authenticate opaque No [[[RFC3261|RFC 3261]]] Proxy-Authenticate qop Yes [[[RFC3261|RFC 3261]]] Proxy-Authenticate realm No [[[RFC3261|RFC 3261]]] Proxy-Authenticate stale Yes [[[RFC3261|RFC 3261]]] Proxy-Authorization algorithm Yes [[[RFC3261|RFC 3261]]]

                                                        [[RFC 3310]]

Proxy-Authorization auts No [[[RFC3310|RFC 3310]]] Proxy-Authorization cnonce No [[[RFC3261|RFC 3261]]] Proxy-Authorization nc No [[[RFC3261|RFC 3261]]] Proxy-Authorization nonce No [[[RFC3261|RFC 3261]]] Proxy-Authorization opaque No [[[RFC3261|RFC 3261]]] Proxy-Authorization qop Yes [[[RFC3261|RFC 3261]]] Proxy-Authorization realm No [[[RFC3261|RFC 3261]]] Proxy-Authorization response No [[[RFC3261|RFC 3261]]] Proxy-Authorization uri No [[[RFC3261|RFC 3261]]] Proxy-Authorization username No [[[RFC3261|RFC 3261]]] Reason cause Yes [[[RFC3326|RFC 3326]]] Reason text No [[[RFC3326|RFC 3326]]] Retry-After duration No [[[RFC3261|RFC 3261]]] Security-Client alg Yes [[[RFC3329|RFC 3329]]] Security-Client ealg Yes [[[RFC3329|RFC 3329]]] Security-Client d-alg Yes [[[RFC3329|RFC 3329]]] Security-Client d-qop Yes [[[RFC3329|RFC 3329]]] Security-Client d-ver No [[[RFC3329|RFC 3329]]] Security-Client mod Yes [[[RFC3329|RFC 3329]]] Security-Client port1 No [[[RFC3329|RFC 3329]]] Security-Client port2 No [[[RFC3329|RFC 3329]]] Security-Client prot Yes [[[RFC3329|RFC 3329]]] Security-Client q No [[[RFC3329|RFC 3329]]] Security-Client spi No [[[RFC3329|RFC 3329]]] Security-Server alg Yes [[[RFC3329|RFC 3329]]] Security-Server ealg Yes [[[RFC3329|RFC 3329]]] Security-Server d-alg Yes [[[RFC3329|RFC 3329]]] Security-Server d-qop Yes [[[RFC3329|RFC 3329]]]

Security-Server d-ver No [[[RFC3329|RFC 3329]]] Security-Server mod Yes [[[RFC3329|RFC 3329]]] Security-Server port1 No [[[RFC3329|RFC 3329]]] Security-Server port2 No [[[RFC3329|RFC 3329]]] Security-Server prot Yes [[[RFC3329|RFC 3329]]] Security-Server q No [[[RFC3329|RFC 3329]]] Security-Server spi No [[[RFC3329|RFC 3329]]] Security-Verify alg Yes [[[RFC3329|RFC 3329]]] Security-Verify ealg Yes [[[RFC3329|RFC 3329]]] Security-Verify d-alg Yes [[[RFC3329|RFC 3329]]] Security-Verify d-qop Yes [[[RFC3329|RFC 3329]]] Security-Verify d-ver No [[[RFC3329|RFC 3329]]] Security-Verify mod Yes [[[RFC3329|RFC 3329]]] Security-Verify port1 No [[[RFC3329|RFC 3329]]] Security-Verify port2 No [[[RFC3329|RFC 3329]]] Security-Verify prot Yes [[[RFC3329|RFC 3329]]] Security-Verify q No [[[RFC3329|RFC 3329]]] Security-Verify spi No [[[RFC3329|RFC 3329]]] Subscription-State expires No [[[RFC3265|RFC 3265]]] Subscription-State reason Yes [[[RFC3265|RFC 3265]]] Subscription-State retry-after No [[[RFC3265|RFC 3265]]] To tag No [[[RFC3261|RFC 3261]]] Via branch No [[[RFC3261|RFC 3261]]] Via comp Yes [[[RFC3486|RFC 3486]]] Via maddr No [[[RFC3261|RFC 3261]]] Via received No [[[RFC3261|RFC 3261]]] Via rport No [[[RFC3581|RFC 3581]]] Via ttl No [[[RFC3261|RFC 3261]]] WWW-Authenticate algorithm Yes [[[RFC3261|RFC 3261]]]

                                                        [[RFC 3310]]

WWW-Authenticate domain Yes [[[RFC3261|RFC 3261]]] WWW-Authenticate nonce No [[[RFC3261|RFC 3261]]] WWW-Authenticate opaque No [[[RFC3261|RFC 3261]]] WWW-Authenticate qop Yes [[[RFC3261|RFC 3261]]] WWW-Authenticate realm No [[[RFC3261|RFC 3261]]] WWW-Authenticate stale Yes [[[RFC3261|RFC 3261]]]

Registration Policy for SIP Header Field Parameters

As per the terminology in RFC 2434 [2], the registration policy for SIP header field parameters and parameter values shall be "IETF Consensus."

For the purposes of this registry, the parameter or the parameter value for which IANA registration is requested MUST be defined by an RFC. There is no requirement that this RFC be standards-track.

Security Considerations

The registry in this document does not in itself have security considerations. However, as mentioned in RFC 3427, an important reason for the IETF to manage the extensions of SIP is to ensure that all extensions and parameters are able to provide secure usage. The supporting RFC publications for parameter registrations described this specification MUST provide detailed security considerations for them.

Acknowledgements

Jonathan Rosenberg, Henning Schulzrinne, Rohan Mahy, Dean Willis, Aki Niemi, Bill Marshall, Miguel A. Garcia-Martin, Jean Francois Mule, and Allison Mankin provided useful comments on this document.

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: [email protected]

Full Copyright Statement

Copyright (C) The Internet Society (2004).

This document is subject to the rights, licenses and restrictions contained in BCP 78, and except as set forth therein, the authors retain all their rights.

This document and the information contained herein are 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.

Intellectual Property

The IETF takes no position regarding the validity or scope of any Intellectual Property Rights or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; nor does it represent that it has made any independent effort to identify any such rights. Information on the IETF's procedures with respect to rights in IETF Documents can be found in BCP 78 and BCP 79.

Copies of IPR disclosures made to the IETF Secretariat and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementers or users of this specification can be obtained from the IETF on-line IPR repository at http://www.ietf.org/ipr.

The IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights that may cover technology that may be required to implement this standard. Please address the information to the IETF at ietf- [email protected].

Acknowledgement

Funding for the RFC Editor function is currently provided by the Internet Society.