Internet Engineering Task Force (IETF) J. Rosenberg Request for Comments: 5768 jdrosen.net Category: Standards Track April 2010 ISSN: 2070-1721Indicating Support for Interactive Connectivity Establishment (ICE) in the Session Initiation Protocol (SIP)
Rosenberg Standards Track [Page 1]
RFC 5768 ICE Support April 2010
Table of Contents
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].
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. MotivationThere 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.
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.
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. 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.
Rosenberg Standards Track [Page 3]
RFC 5768 ICE Support April 2010 5. Option Tag DefinitionThis "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.
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. Name: ice
Rosenberg Standards Track [Page 4]
RFC 5768 ICE Support April 2010
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].8. References 8.1. Normative References[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Rosenberg Standards Track [Page 5]
RFC 5768 ICE Support April 2010
[RFC3264] Rosenberg, J. and H. Schulzrinne, "An Offer/Answer Model
8.2. Informative References
[RFC3235] Senie, D., "Network Address Translator (NAT)-Friendly