Internet DRAFT - draft-holmberg-sipcore-proxy-feature
draft-holmberg-sipcore-proxy-feature
SIPCORE Working Group C. Holmberg
Internet-Draft I. Sedlacek
Intended status: Standards Track Ericsson
Expires: June 15, 2012 H. Kaplan
Acme Packet
December 13, 2011
Indication of features supported by proxy
draft-holmberg-sipcore-proxy-feature-04.txt
Abstract
This document defines a new SIP header field, Feature-Caps, that can
be used by SIP entities to indicate support of features and
capabilities, in cases where the Contact header field contains a URI
that does not represent the SIP entity that wants to indicate support
of its features and capabilities.
Status of this Memo
This Internet-Draft is submitted to IETF in full conformance with the
provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
This Internet-Draft will expire on June 15, 2012.
Copyright Notice
Copyright (c) 2011 IETF Trust and the persons identified as the
document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of
Holmberg, et al. Expires June 15, 2012 [Page 1]
Internet-Draft proxy feature December 2011
the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License.
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Conventions . . . . . . . . . . . . . . . . . . . . . . . . . 3
3. Definitions . . . . . . . . . . . . . . . . . . . . . . . . . 3
4. User Agent (UA) Behavior . . . . . . . . . . . . . . . . . . . 3
4.1. General . . . . . . . . . . . . . . . . . . . . . . . . . 3
4.2. B2BUA Behavior . . . . . . . . . . . . . . . . . . . . . . 4
4.3. Registrar Behavior . . . . . . . . . . . . . . . . . . . . 4
5. Proxy behavior . . . . . . . . . . . . . . . . . . . . . . . . 5
6. Feature-Caps Header Field Definition . . . . . . . . . . . . . 5
6.1. General . . . . . . . . . . . . . . . . . . . . . . . . . 5
6.2. SIP Dialog . . . . . . . . . . . . . . . . . . . . . . . . 5
6.3. SIP Registration (REGISTER) . . . . . . . . . . . . . . . 6
6.4. SIP Stand-Alone Transactions . . . . . . . . . . . . . . . 6
6.5. SIP Capability Query (OPTIONS) . . . . . . . . . . . . . . 6
7. Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
7.1. General . . . . . . . . . . . . . . . . . . . . . . . . . 6
7.2. ABNF . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
8. Feature Tag Usage With Feature-Caps . . . . . . . . . . . . . 7
9. Feature Tag Requirements . . . . . . . . . . . . . . . . . . . 7
9.1. General . . . . . . . . . . . . . . . . . . . . . . . . . 7
9.2. Overall Description . . . . . . . . . . . . . . . . . . . 8
9.3. Applicability . . . . . . . . . . . . . . . . . . . . . . 8
9.4. Feature Tag Name . . . . . . . . . . . . . . . . . . . . . 8
9.5. Feature Tag Values . . . . . . . . . . . . . . . . . . . . 8
9.6. SIP Option Tags . . . . . . . . . . . . . . . . . . . . . 8
9.7. Feature Tag Usage Restrictions . . . . . . . . . . . . . . 9
9.8. Feature Tag Security Considerations . . . . . . . . . . . 9
9.9. Implementation Details . . . . . . . . . . . . . . . . . . 9
9.10. Examples . . . . . . . . . . . . . . . . . . . . . . . . . 9
10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 10
10.1. Registration of the Feature-Caps header field . . . . . . 10
11. Security Considerations . . . . . . . . . . . . . . . . . . . 10
12. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 10
13. Change Log . . . . . . . . . . . . . . . . . . . . . . . . . . 10
14. References . . . . . . . . . . . . . . . . . . . . . . . . . . 11
14.1. Normative References . . . . . . . . . . . . . . . . . . . 11
14.2. Informative References . . . . . . . . . . . . . . . . . . 11
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 11
Holmberg, et al. Expires June 15, 2012 [Page 2]
Internet-Draft proxy feature December 2011
1. Introduction
The Session Initiation Protocol (SIP) "Caller Preferences" extension,
defined in RFC 3840 [RFC3840], provides a mechanism that allows a SIP
message to convey information relating to the originator's features
and capabilities, using the Contact header field.
This document defines a new SIP header field, Feature-Caps, that can
be used by SIP entities to indicate support of features and
capabilities, in cases where the Contact header field contains a URI
that does not represent the SIP entity that wants to indicate support
of its features and capabilities. Such cases are:
o - The SIP entity acts as a SIP proxy.
o - The SIP entity acts as a SIP registrar.
o - The SIP entity acts as a B2BUA, where the Contact header field
URI represents another SIP entity.
2. Conventions
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in BCP 14, RFC 2119
[RFC2119].
3. Definitions
Downstream SIP entity: SIP entity in the direction towards which a
SIP request is sent.
Upstream SIP entity: SIP entity in the direction from which a SIP
request is received.
4. User Agent (UA) Behavior
4.1. General
If the URI in a Contact header field of a request or response
represents a UA, the UA MUST NOT indicate supported features and
capabilities using a Feature-Caps header field within that request or
response.
When a UA receives a SIP request, or response, that contains one or
more Feature-Caps header fields, the Feature Tags in the header field
inform the UA is about the features supported by the entities that
Holmberg, et al. Expires June 15, 2012 [Page 3]
Internet-Draft proxy feature December 2011
inserted the header fields. Procedures how features are invoked are
outside the scope of this specification, and MUST be described by
individual Feature Tag specifications.
When the UA receives the SIP request or the response, the feature
tags in the topmost Feature-Caps header field will represent the
supported features "closest" to the UA.
4.2. B2BUA Behavior
The procedures in this section applies to UAs that are part of
B2BUAs, but where the URI in the Contact header field does not
represent the UA, because the B2BUA is also acting as a proxy and
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
features towards its downstream SIP entities, it adds a Feature-Caps
header field to the request, together with one or more Feature Tags
associated with the supported features, before it forwards the
request.
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
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.
When a UA receives a SIP response, if the UA wants to indicate
support of features towards its upstream SIP entities, it adds a
Feature-Caps header field to the response, together with one or more
Feature Tags associated with the supported features, before it
forwards the response.
If the SIP response is triggered by another SIP response that the
B2BUA has received, the UA MAY forward those Feature-Caps header
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
response.
4.3. Registrar Behavior
If a SIP registrar wants to indicate support of features towards its
upstream SIP entities, it can insert a Feature-Caps header field,
together with Feature Tags associated with the supported features, in
a REGISTER response.
Holmberg, et al. Expires June 15, 2012 [Page 4]
Internet-Draft proxy feature December 2011
5. Proxy behavior
When a proxy receives a SIP request, if the proxy wants to indicate
support of features towards its downstream SIP entities, it adds a
Feature-Caps header field to the request, together with one or more
Feature Tags associated with the supported features, before it
forwards the request.
When a proxy adds a Feature-Caps header field to a SIP request, it
MUST place the header field before any existing Feature-Caps header
field in the request.
When a proxy receives a SIP response, if the proxy wants to indicate
support of features towards its upstream SIP entities, it adds a
Feature-Caps header field to the response, together with one or more
Feature Tags associated with the supported features, before it
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.
6. Feature-Caps Header Field Definition
6.1. General
This section describes how the Feature-Caps header field is used, and
the associated semantics, with different SIP methods and response
codes.
NOTE: Future specification can define usage semantics of the Feature-
Caps header fields for SIP methods, response codes and request types
not specified in this specification.
6.2. SIP Dialog
The Feature-Caps header field can be used within an initial SIP
request for a dialog, within a target refresh SIP request, and within
any 18x or 2xx response associated with such requests.
If a Feature Tag is inserted in a Feature-Caps header field of such
request or such response, the feature associated with the Feature Tag
MUST be supported for the dialog, until the next time the dialog
target is refreshed, or the dialog is terminated.
For a given dialog the entity MUST use the same Feature-Caps header
field value (if included) in all 18x and 2xx responses for the same
Holmberg, et al. Expires June 15, 2012 [Page 5]
Internet-Draft proxy feature December 2011
transaction.
6.3. SIP Registration (REGISTER)
The Feature-Caps header field can be used within a SIP REGISTER
request, and within the 200 (OK) response of such request.
If a Feature Tag is inserted in a Feature-Caps header field of a SIP
REGISTER request or response, the feature associated with the Feature
Tag MUST be supported for the registration, and all SIP transactions
associated with the registration, until the registration is re-
freshed or terminated.
6.4. SIP Stand-Alone Transactions
The Feature-Caps header field can be used within an request for
standalone SIP transaction, and within any 18x or 2xx response
associated with such request.
If a Feature Tag is inserted in a Feature-Caps header field of an
request or response for a standalone transaction, the feature
associated with the Feature Tag MUST be supported for the duration of
the standalone transaction.
6.5. SIP Capability Query (OPTIONS)
7. Syntax
7.1. General
Each value of a Feature-Caps header field MUST contain a "*" value,
followed by one or more Feature Tags, associated with the supported
features, separated by semicolon (";").
NOTE: A "*" value means that no information regarding which proxy, or
domain, that support the features associated with the Feature Tags,
is provided.
NOTE: When used in a Contact header field, a "*" value has an "any
URI" meaning. When used in a Feature-Caps header field, it simply
means that no URI information is provided.
7.2. ABNF
The ABNF for the Feature-Caps header fields is:
Holmberg, et al. Expires June 15, 2012 [Page 6]
Internet-Draft proxy feature December 2011
Feature-Caps = ("Feature-Caps" / "fc") HCOLON fc-value
*(COMMA fc-value)
fc-value = "*" *(SEMI feature-param)
;;feature-param from RFC 3840
Figure 1: ABNF
8. Feature Tag Usage With Feature-Caps
Feature tags inserted in a Feature-Caps header field indicate that
the SIP entity that inserted the header field supports the associated
features.
In order to use a Feature Tag in a Feature-Caps header field, the
Feature Tag specification MUST specify the semantics of the feature
tag when inserted in the Feature-Caps header field. Unless the
feature specification defines such semantics, a the Feature Tag MUST
NOT be used in a Feature-Caps header field.
Within a given Feature-Caps header field, Feature Tags are listed in
a non-priority order, and for a given header field any order of
listed Feature Tags have the same meaning. For example, "foo;bar"
and "bar;foo" have the same meaning (i.e. that the entity that
inserted the Feature Tags supports the features associated with the
"foo" and "bar" Feature Tags.
9. Feature Tag Requirements
9.1. General
This section provides guidance on how to define an Feature Tag, and
what information needs to exist in an Feature Tag specification.
It is bad practice for Feature Tag specifications to repeat
procedures defined in this document, unless needed for clarification
or emphasis purpose.
Feature Tag specifications MUST NOT weaken any behavior designated
with "SHOULD" or "MUST" in this specification. However, Feature Tags
specifications MAY strengthen "SHOULD", "MAY", or "RECOMMENDED"
requirements to "MUST" strength if features associated with the
Feature Tag require it.
Feature Tag specifications MUST address the issues defined in the
following subsections, or document why an issue is not applicable for
Holmberg, et al. Expires June 15, 2012 [Page 7]
Internet-Draft proxy feature December 2011
the specific Feature Tag.
9.2. Overall Description
The Feature Tag specification MUST contain an overall description of
the Feature Tag: a description of the feature associated with the
Feature Tag, and a description what information is carried in
associated Feature Tag values (if any).
9.3. Applicability
The Feature Tag specification MUST describe why the support of the
feature can not be indicated in a SIP Contact header field [RFC3261],
using the mechanism defined in RFC 3840. The reason is either that
the entity inserting the Feature Tag is acting as a SIP proxy, or SIP
registrar, or a B2BUA but is not represented by the URI in the
Contact header field.
9.4. Feature Tag Name
The Feature Tag specification MUST define an Feature Tag name, which
entities use as a header field value to identify the Feature Tag in
the Feature-Caps header field. The Feature Tag name MUST conform to
the ABNF defined in Section 7.2.
9.5. Feature Tag Values
The Feature Tag specification MAY define Feature Tag values,
associated with the Feature Tag. A Feature Tag value MUST conform to
the ABNF defined in Section 7.2.
The Feature Tag specification MUST define the syntax and semantics of
the values associated with the Feature Tag. In addition, the
specification MUST define whether there are restrictions regarding
the usage of specific values.
Feature Tags can share value defined for other Feature Tags, but the
value is Feature Tag specific, and the value semantics MUST be
defined for each Feature Tag tag uses the value.
9.6. SIP Option Tags
The Feature Tag specification MAY define SIP option tags, which can
be used as describe in RFC 3261.
The registration requirements for option tags are defined in RFC 5727
[RFC5727].
Holmberg, et al. Expires June 15, 2012 [Page 8]
Internet-Draft proxy feature December 2011
9.7. Feature Tag Usage Restrictions
If there are restrictions on how entities can insert a Feature Tag,
the Feature Tag specification MUST document such restrictions.
There can be restrictions related to whether entities are allowed to
insert Feature Tags in registration related messages, standalone
transaction messages, or dialog related messages, whether entities
are allowed to insert Feature Tags in requests or responses, whether
entities also need to support other features in order to insert a
Feature Tag, and whether entities are allowed to insert Feature Tags
togheter with other Feature Tags.
9.8. Feature Tag Security Considerations
If the information carried in a Feature Tag requires a certain level
of security, the Feature Tag specification MUST describe the
mechanisms that entities need to use in order to provide the required
security.
If the Feature Tag specification does not require any additional
security, other than what the underlying SIP protocol provides, this
MUST be stated in the Feature Tag specification.
9.9. Implementation Details
It is strongly RECOMMENDED that the Feature Tag specification defines
the procedure regarding how implementors shall implement and use the
Feature Tag, or refer to other locations where implementors can find
that information.
NOTE: Sometimes an Feature Tag designer might choose to not reveal
the details of an Feature Tag. However, in order to allow multiple
implementations to support the Feature Tag, Feature Tag designers are
strongly encouraged to provide the implementation details.
9.10. Examples
It is RECOMMENDED that the Feature Tag specification provide
demonstrative message flow diagrams, paired with complete messages
and message descriptions.
Note that example flows are by definition informative, and do not
replace normative text.
Holmberg, et al. Expires June 15, 2012 [Page 9]
Internet-Draft proxy feature December 2011
10. IANA Considerations
10.1. Registration of the Feature-Caps header field
This specification registers a new SIP header field, Feature-Caps,
according to the process of RFC 3261 [RFC3261].
The following is the registration for the Feature-Caps header field:
RFC Number: RFC XXX
Header Field Name: Feature-Caps
Compact Form: fc
11. Security Considerations
Feature tags can provide sensitive information about a SIP entity.
RFC 3840 cautions against providing sensitive information to another
party. Once this information is given out, any use may be made of
it.
12. Acknowledgements
13. Change Log
[RFC EDITOR NOTE: Please remove this section when publishing]
Changes from draft-holmberg-sipcore-proxy-feature-03
o Hadriel Kaplan added as co-author.
o Terminology change: instead of talking of proxies, talk about
entities which are not represented by the URI in a Contact header
field (http://www.ietf.org/mail-archive/web/sipcore/current/
msg04449.html).
o Clarification regarding the usage of the header field in 18x/2xx
responses (http://www.ietf.org/mail-archive/web/sipcore/current/
msg04449.html).
o Specifying that feature support can also be indicated in target
refresh requests (http://www.ietf.org/mail-archive/web/sipcore/
current/msg04454.html).
o Feature Tag specification registration information added.
Changes from draft-holmberg-sipcore-proxy-feature-02
Holmberg, et al. Expires June 15, 2012 [Page 10]
Internet-Draft proxy feature December 2011
o Definition, and usage of, a new header field, instead of Path,
Record-Route, Route and Service-Route.
Changes from draft-holmberg-sipcore-proxy-feature-01
o Requirement section added
o Use-cases and examples updated based on work in 3GPP
Changes from draft-holmberg-sipcore-proxy-feature-00
o Additional use-cases added
o Direction section added
14. References
14.1. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC3261] 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.
[RFC3840] Rosenberg, J., Schulzrinne, H., and P. Kyzivat,
"Indicating User Agent Capabilities in the Session
Initiation Protocol (SIP)", RFC 3840, August 2004.
[RFC5727] Peterson, J., Jennings, C., and R. Sparks, "Change Process
for the Session Initiation Protocol (SIP) and the Real-
time Applications and Infrastructure Area", BCP 67,
RFC 5727, March 2010.
14.2. Informative References
[3GPP.23.237]
3GPP, "IP Multimedia Subsystem (IMS) Service Continuity;
Stage 2", 3GPP TS 23.237 10.7.0, September 2011.
[3GPP.24.837]
3GPP, "IP Multimedia (IM) Core Network (CN) subsystem
inter-UE transfer enhancements; Stage 3", 3GPP TR 24.837
10.0.0, April 2011.
Holmberg, et al. Expires June 15, 2012 [Page 11]
Internet-Draft proxy feature December 2011
Authors' Addresses
Christer Holmberg
Ericsson
Hirsalantie 11
Jorvas 02420
Finland
Email: christer.holmberg@ericsson.com
Ivo Sedlacek
Ericsson
Scheelevaegen 19C
Lund 22363
Sweden
Email: ivo.sedlacek@ericsson.com
Hadriel Kaplan
Acme Packet
71 Third Ave.
Burlington, MA 01803
USA
Email: hkaplan@acmepacket.com
Holmberg, et al. Expires June 15, 2012 [Page 12]