SIPCORE Working Group                                        C. Holmberg
Internet-Draft                                               I. Sedlacek
Intended status: Standards Track                                Ericsson
Expires: September 2, 2012                                     H. Kaplan
                                                             Acme Packet
                                                           March 1, 2012


               Indication of features supported by proxy
                draft-ietf-sipcore-proxy-feature-00.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 September 2, 2012.

Copyright Notice

   Copyright (c) 2012 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 September 2, 2012               [Page 1]


Internet-Draft                proxy feature                   March 2012


   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 September 2, 2012               [Page 2]


Internet-Draft                proxy feature                   March 2012


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 September 2, 2012               [Page 3]


Internet-Draft                proxy feature                   March 2012


   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 September 2, 2012               [Page 4]


Internet-Draft                proxy feature                   March 2012


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 September 2, 2012               [Page 5]


Internet-Draft                proxy feature                   March 2012


   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 September 2, 2012               [Page 6]


Internet-Draft                proxy feature                   March 2012


           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 September 2, 2012               [Page 7]


Internet-Draft                proxy feature                   March 2012


   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 September 2, 2012               [Page 8]


Internet-Draft                proxy feature                   March 2012


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 September 2, 2012               [Page 9]


Internet-Draft                proxy feature                   March 2012


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 September 2, 2012              [Page 10]


Internet-Draft                proxy feature                   March 2012


   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.8.0, December 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 September 2, 2012              [Page 11]


Internet-Draft                proxy feature                   March 2012


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 September 2, 2012              [Page 12]