diff options
| author | Thomas Voss <mail@thomasvoss.com> | 2024-11-27 20:54:24 +0100 | 
|---|---|---|
| committer | Thomas Voss <mail@thomasvoss.com> | 2024-11-27 20:54:24 +0100 | 
| commit | 4bfd864f10b68b71482b35c818559068ef8d5797 (patch) | |
| tree | e3989f47a7994642eb325063d46e8f08ffa681dc /doc/rfc/rfc5768.txt | |
| parent | ea76e11061bda059ae9f9ad130a9895cc85607db (diff) | |
doc: Add RFC documents
Diffstat (limited to 'doc/rfc/rfc5768.txt')
| -rw-r--r-- | doc/rfc/rfc5768.txt | 339 | 
1 files changed, 339 insertions, 0 deletions
diff --git a/doc/rfc/rfc5768.txt b/doc/rfc/rfc5768.txt new file mode 100644 index 0000000..71cff71 --- /dev/null +++ b/doc/rfc/rfc5768.txt @@ -0,0 +1,339 @@ + + + + + + +Internet Engineering Task Force (IETF)                      J. Rosenberg +Request for Comments: 5768                                   jdrosen.net +Category: Standards Track                                     April 2010 +ISSN: 2070-1721 + + +  Indicating Support for Interactive Connectivity Establishment (ICE) +                in the Session Initiation Protocol (SIP) + +Abstract + +   This specification defines a media feature tag and an option tag for +   use with the Session Initiation Protocol (SIP).  The media feature +   tag allows a User Agent (UA) to communicate to its registrar that it +   supports ICE.  The option tag allows a UA to require support for ICE +   in order for a call to proceed. + +Status of This Memo + +   This is an Internet Standards Track document. + +   This document is a product of the Internet Engineering Task Force +   (IETF).  It represents the consensus of the IETF community.  It has +   received public review and has been approved for publication by the +   Internet Engineering Steering Group (IESG).  Further information on +   Internet Standards is available in Section 2 of RFC 5741. + +   Information about the current status of this document, any errata, +   and how to provide feedback on it may be obtained at +   http://www.rfc-editor.org/info/rfc5768. + +Copyright Notice + +   Copyright (c) 2010 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 +   the Trust Legal Provisions and are provided without warranty as +   described in the Simplified BSD License. + + + + + + +Rosenberg                    Standards Track                    [Page 1] + +RFC 5768                       ICE Support                    April 2010 + + +Table of Contents + +   1. Introduction ....................................................2 +   2. Terminology .....................................................2 +   3. Motivation ......................................................3 +      3.1. Gateways ...................................................3 +      3.2. Mandating Support for ICE ..................................3 +   4. Media Feature Tag Definition ....................................3 +   5. Option Tag Definition ...........................................4 +   6. Security Considerations .........................................4 +   7. IANA Considerations .............................................4 +      7.1. Option Tag .................................................4 +      7.2. Media Feature Tag ..........................................5 +   8. References ......................................................5 +      8.1. Normative References .......................................5 +      8.2. Informative References .....................................6 + +1.  Introduction + +   RFC 3264 [RFC3264] defines a two-phase exchange of Session +   Description Protocol (SDP) [RFC4566] messages for the purposes of +   establishment of multimedia sessions.  This offer/answer mechanism is +   used by protocols such as the Session Initiation Protocol (SIP) +   [RFC3261]. + +   Protocols using offer/answer are difficult to operate through Network +   Address Translators (NAT).  Because their purpose is to establish a +   flow of media packets, they tend to carry IP addresses within their +   messages, which is known to be problematic through NAT [RFC3235].  To +   remedy this, an extension to SDP, called Interactive Connectivity +   Establishment (ICE) has been defined [RFC5245].  ICE defines +   procedures by which agents gather a multiplicity of addresses, +   include all of them in an SDP offer or answer, and then use peer-to- +   peer Session Traversal Utilities for NAT (STUN) [RFC5389] +   connectivity checks to determine a valid address. + +   This specification defines a media feature tag, "sip.ice", and a SIP +   option tag, "ice", that can be used by SIP User Agents that make use +   of ICE.  Section 3 motivates the need for the media feature tag and +   option tag, and Section 4 and Section 5 formally define them. + +2.  Terminology + +   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 RFC 2119 [RFC2119]. + + + + + +Rosenberg                    Standards Track                    [Page 2] + +RFC 5768                       ICE Support                    April 2010 + + +3.  Motivation + +   There are two primary motivations for defining an option tag and a +   media feature tag.  They are support for gateways, and requiring ICE +   for a call. + +3.1.  Gateways + +   Unfortunately, ICE requires both endpoints to support it in order for +   it to be used.  Within a domain, there will typically be User Agents +   that do and do not support ICE.  In order to facilitate deployment of +   ICE, it is anticipated that domains will make use of gateways that +   act as ICE agents on one side, and non-ICE agents on the other side. +   This would allow a call from domain A into domain B to make use of +   ICE, even if the device in domain B does not itself yet support ICE. +   However, when domain B receives a call, it will need to know whether +   the call needs to pass through such a gateway, or whether it can go +   to the terminating UA directly. + +   In order to make such a determination, this specification defines a +   media feature tag, "sip.ice", which can be included in the Contact +   header field of a REGISTER request [RFC3840].  This allows the +   registrar to track whether or not a UA supports ICE.  This +   information can be accessed by a proxy in order to determine whether +   or not a call needs to route through a gateway. + +3.2.  Mandating Support for ICE + +   Although ICE provides a built in fall back to non-ICE operation when +   the answerer doesn't support it, there are cases where the offerer +   would rather abort the call rather than proceed without ICE. +   Typically, this is because they would like to choose a different m/c- +   line address for a non-ICE peer than they would for an ICE capable +   peer. + +   To do this, the "ice" SIP option tag can be included in the Require +   header field of an INVITE request. + +4.  Media Feature Tag Definition + +   The "sip.ice" media feature tag indicates support for ICE.  An agent +   supports ICE if it is either a lite or full implementation, and +   consequently, is capable of including candidate attributes in an SDP +   offer or answer for at least one transport protocol.  An agent that +   supports ICE SHOULD include this media feature tag in the Contact +   header field of its REGISTER requests and OPTION responses. + + + + + +Rosenberg                    Standards Track                    [Page 3] + +RFC 5768                       ICE Support                    April 2010 + + +   An agent MAY include the media feature tag in the Contact header +   field of an INVITE or INVITE response; however, doing so is redundant +   with ICE attributes in the SDP that indicate the same thing.  In +   cases where an INVITE omits an offer, the lack or presence of the +   media feature tag in the Contact header field cannot be used by the +   callee (which will be the offerer) to determine whether the caller +   supports ICE.  In cases of third-party call control [RFC3725], the +   caller may be a controller that does (or doesn't) support ICE, while +   the answerer may be an agent that does (or doesn't) support ICE. + +5.  Option Tag Definition + +   This "ice" OPTION tag SHOULD NOT be used in conjunction with the +   Supported header field (this SHOULD NOT include responses to OPTION +   requests).  The media feature tag is used as the one and only +   mechanism for indicating support for ICE.  The option tag is meant to +   be used only with the Require header field.  When placed in the +   Require header field of an INVITE request, it indicates that the User +   Agent Server (UAS) must support ICE in order to process the call.  An +   agent supports ICE if it is either a full or lite implementation, and +   consequently, is capable of including candidate attributes in an SDP +   offer or answer for at least one transport protocol. + +6.  Security Considerations + +   A malicious intermediary might attempt to modify a SIP message by +   inserting a Require header field containing the "ice" option tag.  If +   ICE were not supported on the UAS, this would cause the call to fail +   when it would otherwise succeed.  Of course, this attack is not +   specific to ICE, and can be done using any option tag.  This attack +   is prevented by usage of the SIPS mechanism as defined in RFC 3261. + +   Similarly, an intermediary might attempt to remove the media feature +   tag from a REGISTER request or OPTIONS request, which might cause a +   call to skip ICE processing when it otherwise might make use of it. +   This attack is also prevented using the SIPS mechanism. + +7.  IANA Considerations + +   This specification defines a new media feature tag and SIP option +   tag. + +7.1.  Option Tag + +   This section defines a new SIP option tag per the guidelines in +   Section 27.1 of RFC 3261. + + + + + +Rosenberg                    Standards Track                    [Page 4] + +RFC 5768                       ICE Support                    April 2010 + + +   Name:  ice + +   Description:  This option tag is used to identify the Interactive +      Connectivity Establishment (ICE) extension.  When present in a +      Require header field, it indicates that ICE is required by an +      agent. + +7.2.  Media Feature Tag + +   This section registers a new media feature tag in the SIP tree, +   defined in Section 12.1 of RFC 3840 [RFC3840]. + +   Media feature tag name:  sip.ice + +   ASN.1 Identifier:  1.3.6.1.8.4.22 + +   Summary of the media feature indicated by this tag:  This feature tag +      indicates that the device supports Interactive Connectivity +      Establishment (ICE). + +   Values appropriate for use with this feature tag:  Boolean. + +   The feature tag is intended primarily for use in the following +      applications, protocols, services, or negotiation mechanisms: +      This feature tag is most useful in a communications application, +      for describing the capabilities of a device, such as a phone or +      PDA. + +   Examples of typical use:  Routing a call to a phone that can support +      ICE. + +   Related standards or documents:  RFC 5768 + +   Security Considerations:  Security considerations for this media +      feature tag are discussed in Section 6 of this document. + +8.  References + +8.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. + + + + +Rosenberg                    Standards Track                    [Page 5] + +RFC 5768                       ICE Support                    April 2010 + + +   [RFC3264]  Rosenberg, J. and H. Schulzrinne, "An Offer/Answer Model +              with Session Description Protocol (SDP)", RFC 3264, +              June 2002. + +   [RFC3840]  Rosenberg, J., Schulzrinne, H., and P. Kyzivat, +              "Indicating User Agent Capabilities in the Session +              Initiation Protocol (SIP)", RFC 3840, August 2004. + +   [RFC4566]  Handley, M., Jacobson, V., and C. Perkins, "SDP: Session +              Description Protocol", RFC 4566, July 2006. + +   [RFC5245]  Rosenberg, J., "Interactive Connectivity Establishment +              (ICE): A Protocol for Network Address Translator (NAT) +              Traversal for Offer/Answer Protocols", RFC 5245, April +              2010. + +8.2.  Informative References + +   [RFC3235]  Senie, D., "Network Address Translator (NAT)-Friendly +              Application Design Guidelines", RFC 3235, January 2002. + +   [RFC3725]  Rosenberg, J., Peterson, J., Schulzrinne, H., and G. +              Camarillo, "Best Current Practices for Third Party Call +              Control (3pcc) in the Session Initiation Protocol (SIP)", +              BCP 85, RFC 3725, April 2004. + +   [RFC5389]  Rosenberg, J., Mahy, R., Matthews, P., and D. Wing, +              "Session Traversal Utilities for NAT (STUN)", RFC 5389, +              October 2008. + +Author's Address + +   Jonathan Rosenberg +   jdrosen.net +   Monmouth, NJ +   US + +   EMail: jdrosen@jdrosen.net +   URI:   http://www.jdrosen.net + + + + + + + + + + + + +Rosenberg                    Standards Track                    [Page 6] +  |