draft-ietf-sipcore-proxy-feature-01.txt   draft-ietf-sipcore-proxy-feature-02.txt 
SIPCORE Working Group C. Holmberg SIPCORE Working Group C. Holmberg
Internet-Draft I. Sedlacek Internet-Draft I. Sedlacek
Intended status: Standards Track Ericsson Intended status: Standards Track Ericsson
Expires: October 19, 2012 H. Kaplan Expires: November 10, 2012 H. Kaplan
Acme Packet Acme Packet
April 17, 2012 May 9, 2012
Indication of features supported by proxy Indication of features supported by proxy
draft-ietf-sipcore-proxy-feature-01.txt draft-ietf-sipcore-proxy-feature-02.txt
Abstract Abstract
This specification creates a new IANA registry, "SIP Feature Cap This specification creates a new IANA registry, "SIP Feature Cap
Registry", which is used to register indicators, "SIP feature caps", Registry", which is used to register indicators, "SIP feature caps",
used by SIP entities to indicate support of features and used by SIP entities to indicate support of features and
capabilities, in cases where the Contact header field contains a URI capabilities, in cases where the Contact header field contains a URI
that does not represent the SIP entity that wants to indicate support that does not represent the SIP entity that wants to indicate support
of its features and capabilities. of its features and capabilities.
skipping to change at page 1, line 41 skipping to change at page 1, line 41
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/. Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on October 19, 2012. This Internet-Draft will expire on November 10, 2012.
Copyright Notice Copyright Notice
Copyright (c) 2012 IETF Trust and the persons identified as the Copyright (c) 2012 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of (http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
skipping to change at page 3, line 12 skipping to change at page 2, line 19
the Trust Legal Provisions and are provided without warranty as the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License. described in the Simplified BSD License.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4
2. Conventions . . . . . . . . . . . . . . . . . . . . . . . . . 4 2. Conventions . . . . . . . . . . . . . . . . . . . . . . . . . 4
3. Definitions . . . . . . . . . . . . . . . . . . . . . . . . . 4 3. Definitions . . . . . . . . . . . . . . . . . . . . . . . . . 4
4. SIP Feature Caps . . . . . . . . . . . . . . . . . . . . . . . 5 4. SIP Feature Caps . . . . . . . . . . . . . . . . . . . . . . . 5
4.1. Introduction . . . . . . . . . . . . . . . . . . . . . . . 5 4.1. Introduction . . . . . . . . . . . . . . . . . . . . . . . 5
4.2. Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . 5 4.2. Registration Trees . . . . . . . . . . . . . . . . . . . . 5
4.2.1. General . . . . . . . . . . . . . . . . . . . . . . . 5 4.2.1. General . . . . . . . . . . . . . . . . . . . . . . . 5
4.2.2. ABNF . . . . . . . . . . . . . . . . . . . . . . . . . 5 4.2.2. Global Tree . . . . . . . . . . . . . . . . . . . . . 5
4.3. Registration Trees . . . . . . . . . . . . . . . . . . . . 6 4.2.3. SIP Feature Cap Registration Tree . . . . . . . . . . 6
4.3.1. General . . . . . . . . . . . . . . . . . . . . . . . 6 4.3. Registration Template . . . . . . . . . . . . . . . . . . 6
4.3.2. Global Tree . . . . . . . . . . . . . . . . . . . . . 6 4.4. SIP Feature Cap Specification Requirements . . . . . . . . 8
4.3.3. SIP Feature Cap Registration Tree . . . . . . . . . . 7 4.4.1. General . . . . . . . . . . . . . . . . . . . . . . . 8
4.4. Registration Template . . . . . . . . . . . . . . . . . . 7 4.4.2. Overall Description . . . . . . . . . . . . . . . . . 8
4.5. SIP Feature Cap Specification Requirements . . . . . . . . 9 4.4.3. Feature Cap Values . . . . . . . . . . . . . . . . . . 8
4.5.1. General . . . . . . . . . . . . . . . . . . . . . . . 9 4.4.4. Usage Restrictions . . . . . . . . . . . . . . . . . . 9
4.5.2. Overall Description . . . . . . . . . . . . . . . . . 9 4.4.5. Examples . . . . . . . . . . . . . . . . . . . . . . . 9
4.5.3. Feature Cap Values . . . . . . . . . . . . . . . . . . 9 5. Feature-Caps Header Field . . . . . . . . . . . . . . . . . . 9
4.5.4. Usage Restrictions . . . . . . . . . . . . . . . . . . 10 5.1. Introduction . . . . . . . . . . . . . . . . . . . . . . . 9
4.5.5. Implementation Details . . . . . . . . . . . . . . . . 10 5.2. User Agent and Proxy Behavior . . . . . . . . . . . . . . 10
4.5.6. Examples . . . . . . . . . . . . . . . . . . . . . . . 10 5.2.1. General . . . . . . . . . . . . . . . . . . . . . . . 10
5. Feature-Caps Header Field . . . . . . . . . . . . . . . . . . 10 5.2.2. B2BUA Behavior . . . . . . . . . . . . . . . . . . . . 10
5.1. Introduction . . . . . . . . . . . . . . . . . . . . . . . 11 5.2.3. Registrar Behavior . . . . . . . . . . . . . . . . . . 11
5.2. User Agent and Proxy Behavior . . . . . . . . . . . . . . 11 5.2.4. Proxy behavior . . . . . . . . . . . . . . . . . . . . 11
5.2.1. General . . . . . . . . . . . . . . . . . . . . . . . 11 5.3. SIP Message Type and Response Code Semantics . . . . . . . 11
5.2.2. B2BUA Behavior . . . . . . . . . . . . . . . . . . . . 12 5.3.1. General . . . . . . . . . . . . . . . . . . . . . . . 11
5.2.3. Registrar Behavior . . . . . . . . . . . . . . . . . . 12 5.3.2. SIP Dialog . . . . . . . . . . . . . . . . . . . . . . 12
5.2.4. Proxy behavior . . . . . . . . . . . . . . . . . . . . 12 5.3.3. SIP Registration (REGISTER) . . . . . . . . . . . . . 12
5.3. SIP Message Type and Response Code Semantics . . . . . . . 13 5.3.4. SIP Stand-Alone Transactions . . . . . . . . . . . . . 13
5.3.1. General . . . . . . . . . . . . . . . . . . . . . . . 13 6. Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
5.3.2. SIP Dialog . . . . . . . . . . . . . . . . . . . . . . 13 6.1. General . . . . . . . . . . . . . . . . . . . . . . . . . 13
5.3.3. SIP Registration (REGISTER) . . . . . . . . . . . . . 14 6.2. Syntax: SIP feature cap . . . . . . . . . . . . . . . . . 13
5.3.4. SIP Stand-Alone Transactions . . . . . . . . . . . . . 14 6.2.1. General . . . . . . . . . . . . . . . . . . . . . . . 13
5.4. Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . 14 6.2.2. ABNF . . . . . . . . . . . . . . . . . . . . . . . . . 13
5.4.1. ABNF . . . . . . . . . . . . . . . . . . . . . . . . . 14 6.3. Syntax: Feature-Caps header field . . . . . . . . . . . . 14
6. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 15 6.3.1. ABNF . . . . . . . . . . . . . . . . . . . . . . . . . 14
6.1. Registration of the Feature-Caps header field . . . . . . 15 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 14
7. Security Considerations . . . . . . . . . . . . . . . . . . . 15 7.1. Registration of the Feature-Caps header field . . . . . . 14
8. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 15 7.2. Global Feature Cap Registration Tree . . . . . . . . . . . 14
9. Change Log . . . . . . . . . . . . . . . . . . . . . . . . . . 15 7.3. SIP Feature Cap Registration Tree . . . . . . . . . . . . 15
10. References . . . . . . . . . . . . . . . . . . . . . . . . . . 16 8. Security Considerations . . . . . . . . . . . . . . . . . . . 15
10.1. Normative References . . . . . . . . . . . . . . . . . . . 16 9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 15
10.2. Informative References . . . . . . . . . . . . . . . . . . 16 10. Change Log . . . . . . . . . . . . . . . . . . . . . . . . . . 15
11. References . . . . . . . . . . . . . . . . . . . . . . . . . . 16
11.1. Normative References . . . . . . . . . . . . . . . . . . . 16
11.2. Informative References . . . . . . . . . . . . . . . . . . 17
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 17 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 17
1. Introduction 1. Introduction
The Session Initiation Protocol (SIP) [RFC3261] "Caller Preferences" The Session Initiation Protocol (SIP) [RFC3261] "Caller Preferences"
extension, defined in RFC 3840 [RFC3840], provides a mechanism that extension, defined in RFC 3840 [RFC3840], provides a mechanism that
allows a SIP message to convey information relating to the allows a SIP message to convey information relating to the
originator's features and capabilities, using the Contact header originator's features and capabilities, using the Contact header
field. field.
skipping to change at page 5, line 18 skipping to change at page 5, line 18
A SIP feature cap can be used by SIP entities to indicate support of A SIP feature cap can be used by SIP entities to indicate support of
features and capabilities, in cases where media feature tags cannot features and capabilities, in cases where media feature tags cannot
be used, ie if the Contact header field contains a URI that does not be used, ie if the Contact header field contains a URI that does not
represent the SIP entity that wants to indicate support of its represent the SIP entity that wants to indicate support of its
features and capabilities. features and capabilities.
A value, or a list of values, can be associated with a SIP feature A value, or a list of values, can be associated with a SIP feature
cap. cap.
[ref-to-section] defines how SIP feature caps are conveyed using the Section 5 defines how SIP feature caps are conveyed using the SIP
SIP Feature-Caps header field. Feature-Caps header field.
4.2. Syntax
4.2.1. General
In a SIP feature cap name (ABNF: fcap-name), dots can be used to
implement a SIP feature cap tree hierarchy (e.g.
tree.feature.subfeature). The description of usage of such tree
hierarchy must be described when registered.
4.2.2. ABNF
The ABNF for the Feature-Caps header field is:
feature-cap = ["+"] fcap-name [EQUAL LDQUOT (fcap-value-list The SIP feature cap ABNF is defined in Section 6.2.2.
/ string-value ) RDQUOT]
fcap-name = ALPHA *( ALPHA / DIGIT / "!" / "'"
/ "." / "-" / "%" )
fcap-value-list = fcap-value *("," fcap-value)
fcap-value = ["!"] (token-nobang / boolean / numeric)
token-nobang = 1*(alphanum / "-" / "." / "%" / "*"
/ "_" / "+" / "`" / "'" / "~" )
boolean = "TRUE" / "FALSE"
numeric = "#" numeric-relation number
numeric-relation = ">=" / "<=" / "=" / (number ":")
number = [ "+" / "-" ] 1*DIGIT ["." 0*DIGIT]
string-value = "<" *(qdtext-no-abkt / quoted-pair ) ">"
qdtext-no-abkt = LWS / %x21 / %x23-3B / %x3D
/ %x3F-5B / %x5D-7E / UTF8-NONASCII
;;gdtext as defined in RFC 3261
Figure 1: ABNF
4.3. Registration Trees 4.2. Registration Trees
4.3.1. General 4.2.1. General
The following subsections define registration "trees", distinguished The following subsections define registration "trees", distinguished
by the use of faceted names (e.g., names of the form "tree.feature- by the use of faceted names (e.g., names of the form "tree.feature-
name"). name").
The tree definitions are based on the global tree and sip tree The trees defined herein are similar to the global tree and sip tree
defined for media feature tags, in RFC 2506 [RFC2506] and RFC 3841 defined for media feature tags, in RFC 2506 [RFC2506] and RFC 3841
[RFC3841]. [RFC3841]. Other registration trees are outside the scope of this
specification.
Additional feature caps trees can be created by IANA, following the
same rules and procedures as defined for media feature tags in
section 3.1.4 of RFC 2506 [RFC2506].
The acceptance of the proposed designation is at the discretion of NOTE: Compared to RFC 2506, this specification only defines a global
IANA. If IANA believes that additional information, or tree and a sip tree, as they are the only tree defined in RFC 2506
clarification, is needed, it can request an updated proposal from the that have been used for defining media feature tags for SIP.
proposing organization.
When a SIP feature cap is registered in any registration tree, no When a SIP feature cap is registered in any registration tree, no
leading "+" is used in the registration. leading "+" is used in the registration.
4.3.2. Global Tree 4.2.2. Global Tree
The SIP feature cap global tree is based on the media feature tag The SIP feature cap global tree is similar to the media feature tag
global tree defined in RFC 2506 [RFC2506]. global tree defined in RFC 2506 [RFC2506].
A SIP feature cap for the global tree will be registered by the IANA A SIP feature cap for the global tree will be registered by the IANA
after review by a designated expert. That review will serve to after review by a designated expert. That review will serve to
ensure that the SIP feature cap meets the technical requirements of ensure that the SIP feature cap meets the technical requirements of
this specification. this specification.
A SIP feature cap in the global tree will be distinguished by the A SIP feature cap in the global tree will be distinguished by the
leading facet "g.". An organization can propose either a designation leading facet "g.". An organization can propose either a designation
indicative of the feature, (e.g., "g.blinktags") or a faceted indicative of the feature, (e.g., "g.blinktags") or a faceted
designation including the organization name (e.g., designation including the organization name (e.g.,
"g.organization.blinktags"). "g.organization.blinktags").
When a SIP feature cap is registered in the global tree, it needs to When a SIP feature cap is registered in the global tree, it needs to
meet the "Expert Review" policies defined in RFC 5226 [RFC5226]. A meet the "Expert Review" policies defined in RFC 5226 [RFC5226]. A
designated area expert will review the proposed SIP feature cap, and designated area expert will review the proposed SIP feature cap, and
consult with members of related mailing lists. consult with members of related mailing lists.
4.3.3. SIP Feature Cap Registration Tree 4.2.3. SIP Feature Cap Registration Tree
The SIP feature cap sip tree is based on the media feature tag sip The SIP feature cap sip tree is similar to the media feature tag sip
tree defined in RFC 3840 [RFC3840]. tree defined in RFC 3840 [RFC3840].
A SIP feature cap in the sip tree will be distinguished by the A SIP feature cap in the sip tree will be distinguished by the
leading facet "sip.". leading facet "sip.".
When a SIP feature cap is registered in the sip tree, it needs to When a SIP feature cap is registered in the sip tree, it needs to
meet the "IETF Consensus" policies defined in RFC 5226 [RFC5226]. An meet the "IETF Consensus" policies defined in RFC 5226 [RFC5226]. An
RFC, which contains the registration of the SIP feature cap, must be RFC, which contains the registration of the SIP feature cap, must be
published. published.
4.4. Registration Template 4.3. Registration Template
To: sip-feature-caps@apps.ietf.org (SIP feature caps mailing list) To: sip-feature-caps@apps.ietf.org (SIP feature caps mailing list)
Subject: Registration of SIP feature cap XXXX Subject: Registration of SIP feature cap XXXX
| Instructions are preceded by `|'. Some fields are optional. | Instructions are preceded by `|'. Some fields are optional.
SIP feature cap name: SIP feature cap name:
Summary of feature indicated by this SIP feature cap: Summary of feature indicated by this SIP feature cap:
| The summary should be no longer than 4 lines. More | The summary should be no longer than 4 lines. More
| detailed information can be provided in the SIP feature | detailed information can be provided in the SIP feature
| cap specification | cap specification.
SIP feature cap specification reference: SIP feature cap specification reference:
| The reference MUST contain the information listed in | The referenced specification MUST contain the information
| section XX of XXXX (IANA: Replace XXXX with assigned | listed in section XX of XXXX (IANA: Replace XXXX with
| RFC number of this specification | assigned RFC number of this specification.
Values appropriate for use with this SIP feature cap: Values appropriate for use with this SIP feature cap:
| If no values are defined for the SIP feature cap, | If no values are defined for the SIP feature cap,
| indicate "N/A". Details about SIP feature cap values | indicate "N/A". Details about SIP feature cap values
| MUST be defined in the SIP feature cap specification. | MUST be defined in the SIP feature cap specification.
The SIP feature cap is intended primarily for The SIP feature cap is intended primarily for
use in the following applications, protocols, use in the following applications, protocols,
services, or negotiation mechanisms: [optional] services, or negotiation mechanisms: [optional]
| For applications, also specify the number of the | For applications, also specify the number of the
| first version which will use the SIP feature cap, | first version which will use the SIP feature cap,
| if applicable. | if applicable.
Examples of typical use: [optional] Examples of typical use: [optional]
Related standards or documents: [optional]
Considerations particular to use in individual Considerations particular to use in individual
applications, protocols, services, or negotiation applications, protocols, services, or negotiation
mechanisms: [optional] mechanisms: [optional]
Interoperability considerations: [optional] Interoperability considerations: [optional]
Security considerations: Security considerations:
Privacy concerns, related to exposure of personal Privacy concerns, related to exposure of personal
information: information:
skipping to change at page 8, line 41 skipping to change at page 7, line 50
Name(s) & email address(es) of person(s) to Name(s) & email address(es) of person(s) to
contact for further information: contact for further information:
Intended usage: Intended usage:
| one of COMMON, LIMITED USE or OBSOLETE | one of COMMON, LIMITED USE or OBSOLETE
Author/Change controller: Author/Change controller:
Requested IANA publication delay: [optional]
| A delay may only be requested for final placement
| in the global or IETF trees, with a maximum of two
| months. Organizations requesting a registration
| with a publication delay should note that this
| delays only the official publication of the SIP
| feature cap and does not prevent information on
| it from being disseminated by the members of the
| relevant mailing list.
Other information: [optional] Other information: [optional]
| Any other information that the author deems | Any other information that the author deems
| interesting may be added here. | interesting may be added here.
Figure 2: Registration Template Figure 1: Registration Template
4.5. SIP Feature Cap Specification Requirements 4.4. SIP Feature Cap Specification Requirements
4.5.1. General 4.4.1. General
A SIP feature cap specification MUST address the issues defined in A SIP feature cap specification MUST address the issues defined in
the following subsections, or document why an issue is not applicable the following subsections, or document why an issue is not applicable
for the specific SIP feature cap. A reference to the specification for the specific SIP feature cap. A reference to the specification
MUST be provided when the SIP feature cap is registered with IANA MUST be provided when the SIP feature cap is registered with IANA
(see [ref-to-temp]). (see Section 4.3).
It is bad practice for SIP feature cap specifications to repeat It is bad practice for SIP feature cap specifications to repeat
procedures defined in this specification, unless needed for procedures defined in this specification, unless needed for
clarification or emphasis purpose. clarification or emphasis purpose.
A SIP feature cap specification MUST NOT weaken any behavior A SIP feature cap specification MUST NOT weaken any behavior
designated with "SHOULD" or "MUST" in this specification. However, a designated with "SHOULD" or "MUST" in this specification. However, a
specification MAY strengthen "SHOULD", "MAY", or "RECOMMENDED" specification MAY strengthen "SHOULD", "MAY", or "RECOMMENDED"
requirements to "MUST" strength if features associated with the SIP requirements to "MUST" strength if features associated with the SIP
feature cap require it. feature cap require it.
4.5.2. Overall Description 4.4.2. Overall Description
The SIP feature cap specification MUST contain an overall description The SIP feature cap specification MUST contain an overall description
of the SIP feature cap: how it is used to indicate support of a of the SIP feature cap: how it is used to indicate support of a
feature, a description of the feature associated with the SIP feature feature, a description of the feature associated with the SIP feature
cap, and a description of any additional information (conveyed using cap, a description of any additional information (conveyed using one
one or more SIP feature cap values) that can be conveyed together or more SIP feature cap values) that can be conveyed together with
with the SIP feature cap. the SIP feature cap, and a description of how the associated feature
may be exercised/invoked.
4.5.3. Feature Cap Values 4.4.3. Feature Cap Values
A SIP feature cap can have an associated value, or a list of values. A SIP feature cap can have an associated value, or a list of values.
A SIP feature cap value MUST conform to the ABNF defined in A SIP feature cap value MUST conform to the ABNF defined in Section
Section 4.2.2. 6.2.2.
The SIP feature cap specification MUST define the syntax and The SIP feature cap specification MUST define the syntax and
semantics of any value defined for the SIP feature cap, including semantics of any value defined for the SIP feature cap, including
possible restrictions related to the usage of a specific value. possible restrictions related to the usage of a specific value.
A SIP feature cap value can share the name with a value defined for A SIP feature cap value is only applicable for the SIP feature cap
another SIP feature cap. However, a value defined for a SIP feature for which it has been defined. For other SIP feature caps, the value
cap is feature cap specific, and can only be used with a SIP feature has to be defined explicitly, even if the name or the semantics are
cap for which the value has explicitly been defined. identical.
It is STRONLY RECOMMENDED to not re-use a value name that already has It is STRONLY RECOMMENDED to not re-use a value name that already has
been defined for another SIP feature cap, unless the semantics of the been defined for another SIP feature cap, unless the semantics of the
values are the same. values are the same.
4.5.4. Usage Restrictions 4.4.4. Usage Restrictions
If there are restrictions on how SIP entities can insert a SIP If there are restrictions on how SIP entities can insert a SIP
feature cap, the SIP feature cap specification MUST document such feature cap, the SIP feature cap specification MUST document such
restrictions. restrictions.
There might be restrictions related to whether entities are allowed There might be restrictions related to whether entities are allowed
to insert a SIP feature cap in registration related messages, to insert a SIP feature cap in registration related messages,
standalone transaction messages, or dialog related messages, whether standalone transaction messages, or dialog related messages, whether
entities are allowed to insert a SIP feature cap in requests or entities are allowed to insert a SIP feature cap in requests or
responses, whether entities also need to support other features in responses, whether entities also need to support other features in
order to insert a SIP feature cap, and whether entities are allowed order to insert a SIP feature cap, and whether entities are allowed
to indicate support of a feature in conjunction with another feature. to indicate support of a feature in conjunction with another feature.
4.5.5. Implementation Details 4.4.5. Examples
The SIP feature cap specification SHOULD define the procedure
regarding how implementers shall implement and use the Feature Cap,
or refer to other locations where implementers can find that
information.
NOTE: Sometimes a SIP feature cap designer might choose to not reveal
the implementation details of a SIP feature cap. However, in order
to allow multiple implementations to support the SIP feature cap,
designers are strongly encouraged to provide the implementation
details.
4.5.6. Examples
It is RECOMMENDED that the SIP feature cap specification provide It is RECOMMENDED that the SIP feature cap specification provide
demonstrative message flow diagrams, paired with complete messages demonstrative message flow diagrams, paired with complete messages
and message descriptions. and message descriptions.
Note that example flows are by definition informative, and do not Note that example flows are by definition informative, and do not
replace normative text. replace normative text.
5. Feature-Caps Header Field 5. Feature-Caps Header Field
5.1. Introduction 5.1. Introduction
The Feature-Caps header field is used by SIP entities to convey The Feature-Caps header field is used by SIP entities to convey
support of features and capabilities, using SIP feature caps. SIP support of features and capabilities, using SIP feature caps. SIP
feature caps inserted in a Feature-Caps header field indicate that feature caps conveyed in a Feature-Caps header field indicate that
the SIP entity that inserted the header field supports the associated the SIP entity that inserted the header field supports the associated
features. features.
NOTE: It is not possible to convey the address of the SIP entity as a NOTE: It is not possible to convey the address of the SIP entity as a
Feature-Caps header field parameter. Each feature that requires Feature-Caps header field parameter. Each feature that requires
address information to be conveyed need to define a way to convey address information to be conveyed need to define a way to convey
that information as part of the associated SIP feature cap value. that information as part of the associated SIP feature cap value.
The SIP feature cap specification MUST specify for which SIP methods The SIP feature cap specification MUST specify for which SIP methods
and message types, and the associated semantics, the SIP feature cap and message types, and the associated semantics, the SIP feature cap
is applicable. See section [ref-to-reg-temp} for more information. is applicable. See Section 4 for more information. No semantics is
No semantics is defined for SIP feature caps present in SIP methods defined for SIP feature caps present in SIP methods and message types
and message types not covered by the associated SIP feature cap not covered by the associated SIP feature cap specification.
specification.
Within a given Feature-Caps header field, SIP feature caps are listed Within a given Feature-Caps header field, SIP feature caps are listed
in a non-priority order, and for a given header field any order of in a non-priority order, and for a given header field any order of
listed SIP feature caps have the same meaning. For example, listed SIP feature caps have the same meaning. For example,
"foo;bar" and "bar;foo" have the same meaning(i.e. that the SIP "foo;bar" and "bar;foo" have the same meaning(i.e. that the SIP
entity that inserted the feature caps supports the features entity that inserted the feature caps supports the features
associated with the "foo" and "bar" SIP feature caps. associated with the "foo" and "bar" SIP feature caps.
5.2. User Agent and Proxy Behavior 5.2. User Agent and Proxy Behavior
5.2.1. General 5.2.1. General
If the URI in a Contact header field of a request or response If the URI in a Contact header field of a request or response
represents a UA, the UA MUST NOT indicate supported features and represents a SIP entity, the entity MUST NOT indicate supported
capabilities using a Feature-Caps header field within that request or features and capabilities using a Feature-Caps header field within
response. that request or response.
When a UA receives a SIP request, or response, that contains one or When a SIP entity receives a SIP request, or response, that contains
more Feature-Caps header fields, the Feature Caps in the header field one or more Feature-Caps header fields, the SIP feature caps in the
inform the UA is about the features supported by the entities that header field inform the entity about the features supported by the
inserted the header fields. Procedures how features are invoked are entities that inserted the header fields. Procedures how features
outside the scope of this specification, and MUST be described by are invoked are outside the scope of this specification, and MUST be
individual Feature Cap specifications. described by individual SIP feature cap specifications.
When the UA receives the SIP request or the response, the SIP feature When a SIP entity adds a Feature-Caps header field to a SIP message,
caps in the topmost Feature-Caps header field will represent the it MUST place the header field before any existing Feature-Caps
supported features "closest" to the UA. header field in the message to be forwarded, so that the added header
field becomes the top-most one. Then, when another SIP entity
receives a SIP request or the response, the SIP feature caps in the
top-most Feature-Caps header field will represent the supported
features "closest" to the entity.
5.2.2. B2BUA Behavior 5.2.2. B2BUA Behavior
The procedures in this section applies to UAs that are part of The procedures in this Section applies to UAs that are part of B2BUAs
B2BUAs, but where the URI in the Contact header field does not that are referenced in the message by a Record-Route header field
represent the UA, because the B2BUA is also acting as a proxy and rather than by the URI of the Contact header field.
inserts its URI e.g. in a Record-Route header field.
When a UA sends a SIP request, if the UA wants to indicate support of When a UA sends a SIP request, if the UA wants to indicate support of
features towards its downstream SIP entities, it adds a Feature-Caps features towards its downstream SIP entities, it inserts a Feature-
header field to the request, together with one or more Feature Caps Caps header field to the request, containing one or more SIP feature
associated with the supported features, before it forwards the caps associated with the supported features, before it forwards the
request. request.
If the SIP request is triggered by another SIP request that the B2BUA If the SIP request is triggered by another SIP request that the B2BUA
has received, the UA MAY forward those Feature-Caps header field by has received, the UA MAY forward received Feature-Caps header fields
copying them to the outgoing SIP request, similar to a SIP proxy, by copying them to the outgoing SIP request, similar to a SIP proxy,
before it adds its own Feature-Caps header field to the SIP request. before it inserts its own Feature-Caps header field to the SIP
request.
When a UA receives a SIP response, if the UA wants to indicate When a UA receives a SIP response, if the UA wants to indicate
support of features towards its upstream SIP entities, it adds a support of features towards its upstream SIP entities, it inserts a
Feature-Caps header field to the response, together with one or more Feature-Caps header field to the response, containing one or more SIP
Feature Caps associated with the supported features, before it feature caps associated with the supported features, before it
forwards the response. forwards the response.
If the SIP response is triggered by another SIP response that the If the SIP response is triggered by another SIP response that the
B2BUA has received, the UA MAY forward those Feature-Caps header B2BUA has received, the UA MAY forward received Feature-Caps header
field by copying them to the outgoing SIP response, similar to a SIP field by copying them to the outgoing SIP response, similar to a SIP
proxy, before it adds its own Feature-Caps header field to the SIP proxy, before it inserts its own Feature-Caps header field to the SIP
response. response.
5.2.3. Registrar Behavior 5.2.3. Registrar Behavior
If a SIP registrar wants to indicate support of features towards its If a SIP registrar wants to indicate support of features towards its
upstream SIP entities, it can insert a Feature-Caps header field, upstream SIP entities, it inserts a Feature-Caps header field,
together with Feature Caps associated with the supported features, in containing one or more SIP feature caps associated with the supported
a REGISTER response. features, to a REGISTER response.
5.2.4. Proxy behavior 5.2.4. Proxy behavior
When a SIP proxy receives a SIP request, if the proxy wants to When a SIP proxy receives a SIP request, if the proxy wants to
indicate support of features towards its downstream SIP entities, it indicate support of features towards its downstream SIP entities, it
adds a Feature-Caps header field to the request, together with one or inserts a Feature-Caps header field to the request, containing one or
more SIP feature caps associated with the supported features, before more SIP feature caps associated with the supported features, before
it forwards the request. it forwards the request.
When a proxy adds a Feature-Caps header field to a SIP message, it
MUST place the header field before any existing Feature-Caps header
fields in the request.
When a proxy receives a SIP response, if the proxy wants to indicate When a proxy receives a SIP response, if the proxy wants to indicate
support of features towards its upstream SIP entities, it adds a support of features towards its upstream SIP entities, it inserts a
Feature-Caps header field to the response, together with one or more Feature-Caps header field to the response, containing one or more SIP
SIP feature caps associated with the supported features, before it feature caps associated with the supported features, before it
forwards the response. forwards the response.
When a proxy adds a Feature-Caps header field to a SIP response, it
MUST place the header field before any existing Feature-Caps header
field in the response.
5.3. SIP Message Type and Response Code Semantics 5.3. SIP Message Type and Response Code Semantics
5.3.1. General 5.3.1. General
This section describes the general usage and semantics of the This Section describes the general usage and semantics of the
Feature-Caps header field for different SIP message types and Feature-Caps header field for different SIP message types and
response codes. The usage and semantics of a specific SIP feature response codes. The usage and semantics of a specific SIP feature
cap MUST be described in the associated SIP feature cap cap MUST be described in the associated SIP feature cap
specification. specification.
NOTE: Future specifications can define usage and semantics of the NOTE: Future specifications can define usage and semantics of the
Feature-Caps header field for SIP methods, response codes and request Feature-Caps header field for SIP methods, response codes and request
types not specified in this specification. types not specified in this specification.
The Feature-Caps header field ABNF is defined in Section 6.3.1.
5.3.2. SIP Dialog 5.3.2. SIP Dialog
The Feature-Caps header field can be used within an initial SIP The Feature-Caps header field can be used within an initial SIP
request for a dialog, within a target refresh SIP request, and within request for a dialog, within a target refresh SIP request, and within
any 18x or 2xx response associated with such requests. any 18x or 2xx response associated with such requests.
If a SIP feature cap is inserted in a Feature-Caps header field of an If a SIP feature cap is inserted in a Feature-Caps header field of an
initial request for a dialog, or within a response of such request, initial request for a dialog, or within a response of such request,
it indicates to the receivers of the request (or response) that the it indicates to the receivers of the request (or response) that the
feature associated with the SIP feature cap is supported for the feature associated with the SIP feature cap is supported for the
skipping to change at page 14, line 11 skipping to change at page 12, line 36
For a given dialog a SIP entity MUST insert the same SIP feature caps For a given dialog a SIP entity MUST insert the same SIP feature caps
in all 18x and 2xx responses associated with a given transaction. in all 18x and 2xx responses associated with a given transaction.
5.3.3. SIP Registration (REGISTER) 5.3.3. SIP Registration (REGISTER)
The Feature-Caps header field can be used within a SIP REGISTER The Feature-Caps header field can be used within a SIP REGISTER
request, and within the 200 (OK) response associated with such request, and within the 200 (OK) response associated with such
request. request.
If a SIP feature cap is inserted in a Feature-Caps header field of a If a SIP feature cap is conveyed in a Feature-Caps header field of a
SIP REGISTER request, or within a response of such request, it REGISTER request, or within an associated response, it indicates to
indicates to the receivers of the request (or response) that the the receivers of the message that the feature associated with the SIP
feature associated with the SIP feature cap is supported for the feature cap is supported for the registration, until the registration
duration of the registration, and for all SIP transactions associated of the contact that was explicitly conveyed in the REGISTER request
with the registration, until the registration is re-freshed or expires, or until the registered contact is explicitly refreshed and
terminated. the refresh REGISTER request does not contain the SIP feature cap
associated with the feature.
Unless a SIP feature cap is inserted in a Feature-Caps header field NOTE: While a REGISTER response can contain contacts that have been
or a re-registration, or within a response of such request, it registered as part of other registration transactions, support of any
indicates to the receivers of the request (or response) that the indicated feature only applies to the contact(s) that were explicitly
feature is no long supported for the registration. conveyed in the associated REGISTER request.
This specification does not define any semantics for usage of the
Feature-Caps header field in pure registration binding fetching
messages (see Section 10.2.3 of RFC 3261), where the REGISTER request
does not contain a Contact header field. Unless such semantics is
defined in a future extension, fetching messages will not have any
impact on previously indicated support of features, and SIP entities
MUST NOT insert a Feature-Caps header field to such messages.
If SIP Outbound [RFC5626] is used, the rules above apply. However,
supported features only apply for the registration flow on which
support has been explicitly indicated.
5.3.4. SIP Stand-Alone Transactions 5.3.4. SIP Stand-Alone Transactions
The Feature-Caps header field can be used within a standalone SIP The Feature-Caps header field can be used within a standalone SIP
request, and within any 18x or 2xx response associated with such request, and within any 18x or 2xx response associated with such
request. request.
If a SIP feature cap is inserted in a Feature-Caps header field of a If a SIP feature cap is inserted in a Feature-Caps header field of a
standalone request, or within a response of such request, it standalone request, or within a response of such request, it
indicates to the receivers of the request (or response) that the indicates to the receivers of the request (or response) that the
feature associated with the SIP feature cap is supported for the feature associated with the SIP feature cap is supported for the
duration of the standalone transaction. duration of the standalone transaction.
5.4. Syntax 6. Syntax
5.4.1. ABNF 6.1. General
This Section defines the ABNF for Feature-Caps, and for the Feature-
Cap header field.
6.2. Syntax: SIP feature cap
6.2.1. General
In a SIP feature cap name (ABNF: fcap-name), dots can be used to
implement a SIP feature cap tree hierarchy (e.g.
tree.feature.subfeature). The description of usage of such tree
hierarchy must be described when registered.
6.2.2. ABNF
The ABNF for the SIP feature cap:
feature-cap = "+" fcap-name [EQUAL LDQUOT (fcap-value-list
/ fcap-string-value ) RDQUOT]
fcap-name = ftag-name
fcap-value-list = tag-value-list
fcap-string-value = string-value
;; ftag-name, tag-value-list, string-value defined in RFC3840
NOTE: In comparison with media feature tags, the "+" sign in front
of the feature cap name is mandatory.
Figure 2: ABNF
6.3. Syntax: Feature-Caps header field
6.3.1. ABNF
The ABNF for the Feature-Caps header fields is: The ABNF for the Feature-Caps header fields is:
Feature-Caps = ("Feature-Caps" / "fc") HCOLON fc-value Feature-Caps = "Feature-Caps" HCOLON fc-value
*(COMMA fc-value) *(COMMA fc-value)
fc-value = "*" *(SEMI feature-cap) fc-value = "*" *(SEMI feature-cap)
Figure 3: ABNF Figure 3: ABNF
NOTE: A "*" value means that no information regarding which SIP NOTE: A "*" value means that no information regarding which SIP
entity, or domain, that indicate support of features is provided. entity, or domain, that indicate support of features is provided.
6. IANA Considerations 7. IANA Considerations
6.1. Registration of the Feature-Caps header field 7.1. Registration of the Feature-Caps header field
This specification registers a new SIP header field, Feature-Caps, This specification registers a new SIP header field, Feature-Caps,
according to the process of RFC 3261 [RFC3261]. according to the process of RFC 3261 [RFC3261].
The following is the registration for the Feature-Caps header field: The following is the registration for the Feature-Caps header field:
RFC Number: RFC XXX RFC Number: RFC XXX
Header Field Name: Feature-Caps Header Field Name: Feature-Caps Header Field Name: Feature-Caps
Compact Form: fc 7.2. Global Feature Cap Registration Tree
7. Security Considerations This specification creates a new SIP feature cap tree. The name of
the tree is "Global Feature Cap Registration Tree", and its leading
facet is "g.". It is used for the registration of SIP feature caps.
The addition of entries into this registry occurs through the Expert
Review policies, as defined in RFC 5226 [RFC5226]. A designated area
expert will review the proposed SIP feature cap, and consult with
members of related mailing lists. The information required in the
registration is defined in Section 4.3 of RFC XXX.
Note that all SIP feature caps registered in the SIP tree will have
names with a leading facet "g.". No leading "+" is used in the
registrations in any of the media feature tag trees.
7.3. SIP Feature Cap Registration Tree
This specification creates a new SIP feature cap tree, per the
guidelines... The name of the tree is "SIP Feature Cap Registration
Tree", and its leading facet is "sip.". It is used for the
registration of SIP feature caps.
The addition of entries into this registry occurs through the IETF
Consensus, as defined in RFC 5226 [RFC5226]. This requires the
publication of an RFC that contains the registration. The
information required in the registration is defined in Section 4.3 of
RFC XXX.
Note that all SIP feature caps registered in the SIP tree will have
names with a leading facet "sip.". No leading "+" is used in the
registrations in any of the media feature tag trees.
8. Security Considerations
SIP feature caps can provide sensitive information about a SIP SIP feature caps can provide sensitive information about a SIP
entity. RFC 3840 cautions against providing sensitive information to entity. RFC 3840 cautions against providing sensitive information to
another party. Once this information is given out, any use may be another party. Once this information is given out, any use may be
made of it. made of it.
8. Acknowledgements 9. Acknowledgements
9. Change Log 10. Change Log
[RFC EDITOR NOTE: Please remove this section when publishing] [RFC EDITOR NOTE: Please remove this Section when publishing]
Changes from draft-ietf-sipcore-proxy-feature-01
o Changes based on comments from Paul Kyzivat.
o IANA Considerations text added.
Changes from draft-holmberg-sipcore-proxy-feature-04/ Changes from draft-holmberg-sipcore-proxy-feature-04/
draft-ietf-sipcore-proxy-feature-00 draft-ietf-sipcore-proxy-feature-00
o Media feature tags replaced with SIP feature caps, based on o Media feature tags replaced with SIP feature caps, based on
SIPCORE consensus at IETF#83 (Paris). SIPCORE consensus at IETF#83 (Paris).
o Editorial corrections and modifications. o Editorial corrections and modifications.
Changes from draft-holmberg-sipcore-proxy-feature-03 Changes from draft-holmberg-sipcore-proxy-feature-03
o Hadriel Kaplan added as co-author. o Hadriel Kaplan added as co-author.
o Terminology change: instead of talking of proxies, talk about o Terminology change: instead of talking of proxies, talk about
skipping to change at page 16, line 22 skipping to change at page 16, line 39
Record-Route, Route and Service-Route. Record-Route, Route and Service-Route.
Changes from draft-holmberg-sipcore-proxy-feature-01 Changes from draft-holmberg-sipcore-proxy-feature-01
o Requirement section added o Requirement section added
o Use-cases and examples updated based on work in 3GPP o Use-cases and examples updated based on work in 3GPP
Changes from draft-holmberg-sipcore-proxy-feature-00 Changes from draft-holmberg-sipcore-proxy-feature-00
o Additional use-cases added o Additional use-cases added
o Direction section added o Direction section added
10. References 11. References
10.1. Normative References 11.1. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997. Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC3261] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, [RFC3261] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston,
A., Peterson, J., Sparks, R., Handley, M., and E. A., Peterson, J., Sparks, R., Handley, M., and E.
Schooler, "SIP: Session Initiation Protocol", RFC 3261, Schooler, "SIP: Session Initiation Protocol", RFC 3261,
June 2002. June 2002.
10.2. Informative References 11.2. Informative References
[RFC2506] Holtman, K., Mutz, A., and T. Hardie, "Media Feature Tag [RFC2506] Holtman, K., Mutz, A., and T. Hardie, "Media Feature Tag
Registration Procedure", BCP 31, RFC 2506, March 1999. Registration Procedure", BCP 31, RFC 2506, March 1999.
[RFC3840] Rosenberg, J., Schulzrinne, H., and P. Kyzivat, [RFC3840] Rosenberg, J., Schulzrinne, H., and P. Kyzivat,
"Indicating User Agent Capabilities in the Session "Indicating User Agent Capabilities in the Session
Initiation Protocol (SIP)", RFC 3840, August 2004. Initiation Protocol (SIP)", RFC 3840, August 2004.
[RFC3841] Rosenberg, J., Schulzrinne, H., and P. Kyzivat, "Caller [RFC3841] Rosenberg, J., Schulzrinne, H., and P. Kyzivat, "Caller
Preferences for the Session Initiation Protocol (SIP)", Preferences for the Session Initiation Protocol (SIP)",
RFC 3841, August 2004. RFC 3841, August 2004.
[RFC5226] Narten, T. and H. Alvestrand, "Guidelines for Writing an [RFC5226] Narten, T. and H. Alvestrand, "Guidelines for Writing an
IANA Considerations Section in RFCs", BCP 26, RFC 5226, IANA Considerations Section in RFCs", BCP 26, RFC 5226,
May 2008. May 2008.
[RFC5626] Jennings, C., Mahy, R., and F. Audet, "Managing Client-
Initiated Connections in the Session Initiation Protocol
(SIP)", RFC 5626, October 2009.
[3GPP.23.237] [3GPP.23.237]
3GPP, "IP Multimedia Subsystem (IMS) Service Continuity; 3GPP, "IP Multimedia Subsystem (IMS) Service Continuity;
Stage 2", 3GPP TS 23.237 10.9.0, March 2012. Stage 2", 3GPP TS 23.237 10.9.0, March 2012.
[3GPP.24.837] [3GPP.24.837]
3GPP, "IP Multimedia (IM) Core Network (CN) subsystem 3GPP, "IP Multimedia (IM) Core Network (CN) subsystem
inter-UE transfer enhancements; Stage 3", 3GPP TR 24.837 inter-UE transfer enhancements; Stage 3", 3GPP TR 24.837
10.0.0, April 2011. 10.0.0, April 2011.
Authors' Addresses Authors' Addresses
 End of changes. 69 change blocks. 
209 lines changed or deleted 236 lines changed or added

This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/