rfc8839v5.txt   rfc8839.txt 
Internet Engineering Task Force (IETF) M. Petit-Huguenin Internet Engineering Task Force (IETF) M. Petit-Huguenin
Request for Comments: 8839 Impedance Mismatch Request for Comments: 8839 Impedance Mismatch
Obsoletes: 5245, 6336 S. Nandakumar Obsoletes: 5245, 6336 S. Nandakumar
Category: Standards Track Cisco Systems Category: Standards Track Cisco Systems
ISSN: 2070-1721 C. Holmberg ISSN: 2070-1721 C. Holmberg
A. Keränen A. Keränen
Ericsson Ericsson
R. Shpount R. Shpount
TurboBridge TurboBridge
June 2020 January 2021
Session Description Protocol (SDP) Offer/Answer Procedures for Session Description Protocol (SDP) Offer/Answer Procedures for
Interactive Connectivity Establishment (ICE) Interactive Connectivity Establishment (ICE)
Abstract Abstract
This document describes Session Description Protocol (SDP) Offer/ This document describes Session Description Protocol (SDP) Offer/
Answer procedures for carrying out Interactive Connectivity Answer procedures for carrying out Interactive Connectivity
Establishment (ICE) between the agents. Establishment (ICE) between the agents.
skipping to change at line 40 skipping to change at line 40
received public review and has been approved for publication by the received public review and has been approved for publication by the
Internet Engineering Steering Group (IESG). Further information on Internet Engineering Steering Group (IESG). Further information on
Internet Standards is available in Section 2 of RFC 7841. Internet Standards is available in Section 2 of RFC 7841.
Information about the current status of this document, any errata, Information about the current status of this document, any errata,
and how to provide feedback on it may be obtained at and how to provide feedback on it may be obtained at
https://www.rfc-editor.org/info/rfc8839. https://www.rfc-editor.org/info/rfc8839.
Copyright Notice Copyright Notice
Copyright (c) 2020 IETF Trust and the persons identified as the Copyright (c) 2021 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
(https://trustee.ietf.org/license-info) in effect on the date of (https://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
carefully, as they describe your rights and restrictions with respect carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as the Trust Legal Provisions and are provided without warranty as
skipping to change at line 313 skipping to change at line 313
This specification provides no guidance on how an agent should This specification provides no guidance on how an agent should
proceed in the cases where the above condition is not met with the proceed in the cases where the above condition is not met with the
few exceptions noted below: few exceptions noted below:
1. The presence of certain Application Layer Gateways might modify 1. The presence of certain Application Layer Gateways might modify
the transport address information as described in Section 8. The the transport address information as described in Section 8. The
behavior of the responding agent in such a situation is behavior of the responding agent in such a situation is
implementation dependent. Informally, the responding agent might implementation dependent. Informally, the responding agent might
consider the mismatched transport address information as a consider the mismatched transport address information as a
plausible new candidate learnt from the peer and continue its ICE plausible new candidate learned from the peer and continue its
processing with that transport address included. Alternatively, ICE processing with that transport address included.
the responding agent MAY include an "ice-mismatch" attribute in Alternatively, the responding agent MAY include an "ice-mismatch"
its answer for such data streams. If an agent chooses to include attribute in its answer for such data streams. If an agent
an "ice-mismatch" attribute in its answer for a data stream, then chooses to include an "ice-mismatch" attribute in its answer for
it MUST also omit "candidate" attributes, MUST terminate the a data stream, then it MUST also omit "candidate" attributes,
usage of ICE procedures, and [RFC3264] procedures MUST be used MUST terminate the usage of ICE procedures, and [RFC3264]
instead for this data stream. procedures MUST be used instead for this data stream.
2. The transport address from the peer for the default destination 2. The transport address from the peer for the default destination
is set to IPv4/IPv6 address values "0.0.0.0"/"::" and port value is set to IPv4/IPv6 address values "0.0.0.0"/"::" and port value
of "9". This MUST NOT be considered as a ICE failure by the peer of "9". This MUST NOT be considered as an ICE failure by the
agent, and the ICE processing MUST continue as usual. peer agent, and the ICE processing MUST continue as usual.
3. In some cases, the controlling/initiator agent may receive an SDP 3. In some cases, the controlling/initiator agent may receive an SDP
answer that may omit "candidate" attributes for the data stream, answer that may omit "candidate" attributes for the data stream,
and instead include a media-level "ice-mismatch" attribute. This and instead include a media-level "ice-mismatch" attribute. This
signals to the offerer that the answerer supports ICE, but that signals to the offerer that the answerer supports ICE, but that
ICE processing was not used for this data stream. In this case, ICE processing was not used for this data stream. In this case,
ICE processing MUST be terminated for this data stream, and ICE processing MUST be terminated for this data stream, and
[RFC3264] procedures MUST be followed instead. [RFC3264] procedures MUST be followed instead.
4. The transport address from the peer for the default destination 4. The transport address from the peer for the default destination
is an FQDN. Regardless of the procedures used to resolve FQDN or is an FQDN. Regardless of the procedures used to resolve FQDN or
the resolution result, this MUST NOT be considered as a ICE the resolution result, this MUST NOT be considered as an ICE
failure by the peer agent, and the ICE processing MUST continue failure by the peer agent, and the ICE processing MUST continue
as usual. as usual.
4.2.6. SDP Example 4.2.6. SDP Example
The following is an example SDP message that includes ICE attributes The following is an example SDP message that includes ICE attributes
(lines folded for readability): (lines folded for readability):
v=0 v=0
o=jdoe 2890844526 2890842807 IN IP4 203.0.113.141 o=jdoe 2890844526 2890842807 IN IP4 203.0.113.141
skipping to change at line 491 skipping to change at line 491
streams to zero (Section 4.4.1.1.2), even if the peer did indicate streams to zero (Section 4.4.1.1.2), even if the peer did indicate
support for the 'ice2' ice-option. If needed, such offer is used to support for the 'ice2' ice-option. If needed, such offer is used to
align the connection address, port, and transport protocol, as align the connection address, port, and transport protocol, as
described above. described above.
As described in [RFC8445], once the controlling agent has nominated a As described in [RFC8445], once the controlling agent has nominated a
candidate pair for a checklist, the agent MUST NOT nominate another candidate pair for a checklist, the agent MUST NOT nominate another
pair for that checklist during the lifetime of the ICE session (i.e., pair for that checklist during the lifetime of the ICE session (i.e.,
until ICE is restarted). until ICE is restarted).
[ICE-PAC] provides a mechanism for allowing the ICE process to run [RFC8863] provides a mechanism for allowing the ICE process to run
long enough in order to find working candidate pairs, by waiting for long enough in order to find working candidate pairs, by waiting for
potential peer-reflexive candidates, even though no candidate pairs potential peer-reflexive candidates, even though no candidate pairs
were received from the peer or all current candidate pairs associated were received from the peer or all current candidate pairs associated
with a checklist have either failed or been discarded. with a checklist have either failed or been discarded.
4.4. Subsequent Offer/Answer Exchanges 4.4. Subsequent Offer/Answer Exchanges
Either agent MAY generate a subsequent offer at any time allowed by Either agent MAY generate a subsequent offer at any time allowed by
[RFC3264]. This section defines rules for construction of subsequent [RFC3264]. This section defines rules for construction of subsequent
offers and answers. offers and answers.
skipping to change at line 1707 skipping to change at line 1707
May 2017, <https://www.rfc-editor.org/info/rfc8174>. May 2017, <https://www.rfc-editor.org/info/rfc8174>.
[RFC8445] Keranen, A., Holmberg, C., and J. Rosenberg, "Interactive [RFC8445] Keranen, A., Holmberg, C., and J. Rosenberg, "Interactive
Connectivity Establishment (ICE): A Protocol for Network Connectivity Establishment (ICE): A Protocol for Network
Address Translator (NAT) Traversal", RFC 8445, Address Translator (NAT) Traversal", RFC 8445,
DOI 10.17487/RFC8445, July 2018, DOI 10.17487/RFC8445, July 2018,
<https://www.rfc-editor.org/info/rfc8445>. <https://www.rfc-editor.org/info/rfc8445>.
12.2. Informative References 12.2. Informative References
[ICE-PAC] Holmberg, C. and J. Uberti, "Interactive Connectivity
Establishment Patiently Awaiting Connectivity (ICE PAC)",
Work in Progress, Internet-Draft, draft-ietf-ice-pac-06,
29 April 2020,
<https://tools.ietf.org/html/draft-ietf-ice-pac-06>.
[RFC3725] Rosenberg, J., Peterson, J., Schulzrinne, H., and G. [RFC3725] Rosenberg, J., Peterson, J., Schulzrinne, H., and G.
Camarillo, "Best Current Practices for Third Party Call Camarillo, "Best Current Practices for Third Party Call
Control (3pcc) in the Session Initiation Protocol (SIP)", Control (3pcc) in the Session Initiation Protocol (SIP)",
BCP 85, RFC 3725, DOI 10.17487/RFC3725, April 2004, BCP 85, RFC 3725, DOI 10.17487/RFC3725, April 2004,
<https://www.rfc-editor.org/info/rfc3725>. <https://www.rfc-editor.org/info/rfc3725>.
[RFC3960] Camarillo, G. and H. Schulzrinne, "Early Media and Ringing [RFC3960] Camarillo, G. and H. Schulzrinne, "Early Media and Ringing
Tone Generation in the Session Initiation Protocol (SIP)", Tone Generation in the Session Initiation Protocol (SIP)",
RFC 3960, DOI 10.17487/RFC3960, December 2004, RFC 3960, DOI 10.17487/RFC3960, December 2004,
<https://www.rfc-editor.org/info/rfc3960>. <https://www.rfc-editor.org/info/rfc3960>.
skipping to change at line 1759 skipping to change at line 1753
for Consent Freshness", RFC 7675, DOI 10.17487/RFC7675, for Consent Freshness", RFC 7675, DOI 10.17487/RFC7675,
October 2015, <https://www.rfc-editor.org/info/rfc7675>. October 2015, <https://www.rfc-editor.org/info/rfc7675>.
[RFC8126] Cotton, M., Leiba, B., and T. Narten, "Guidelines for [RFC8126] Cotton, M., Leiba, B., and T. Narten, "Guidelines for
Writing an IANA Considerations Section in RFCs", BCP 26, Writing an IANA Considerations Section in RFCs", BCP 26,
RFC 8126, DOI 10.17487/RFC8126, June 2017, RFC 8126, DOI 10.17487/RFC8126, June 2017,
<https://www.rfc-editor.org/info/rfc8126>. <https://www.rfc-editor.org/info/rfc8126>.
[RFC8859] Nandakumar, S., "A Framework for Session Description [RFC8859] Nandakumar, S., "A Framework for Session Description
Protocol (SDP) Attributes When Multiplexing", RFC 8859, Protocol (SDP) Attributes When Multiplexing", RFC 8859,
DOI 10.17487/RFC8859, June 2020, DOI 10.17487/RFC8859, January 2021,
<https://www.rfc-editor.org/info/rfc8859>. <https://www.rfc-editor.org/info/rfc8859>.
[RFC8863] Holmberg, C. and J. Uberti, "Interactive Connectivity
Establishment Patiently Awaiting Connectivity (ICE PAC)",
RFC 8863, DOI 10.17487/RFC8863, January 2021,
<https://www.rfc-editor.org/info/rfc8863>.
Appendix A. Examples Appendix A. Examples
For the example shown in Section 15 of [RFC8445], the resulting offer For the example shown in Section 15 of [RFC8445], the resulting offer
(message 5) encoded in SDP looks like (lines folded for clarity): (message 5) encoded in SDP looks like (lines folded for clarity):
v=0 v=0
o=jdoe 2890844526 2890842807 IN IP6 $L-PRIV-1.IP o=jdoe 2890844526 2890842807 IN IP6 $L-PRIV-1.IP
s= s=
c=IN IP6 $NAT-PUB-1.IP c=IN IP6 $NAT-PUB-1.IP
t=0 0 t=0 0
skipping to change at line 1800 skipping to change at line 1799
c=IN IP6 2001:db8:8101:3a55:4858:a2a9:22ff:99b9 c=IN IP6 2001:db8:8101:3a55:4858:a2a9:22ff:99b9
t=0 0 t=0 0
a=ice-options:ice2 a=ice-options:ice2
a=ice-pacing:50 a=ice-pacing:50
a=ice-pwd:asd88fgpdd777uzjYhagZg a=ice-pwd:asd88fgpdd777uzjYhagZg
a=ice-ufrag:8hhY a=ice-ufrag:8hhY
m=audio 45664 RTP/AVP 0 m=audio 45664 RTP/AVP 0
b=RS:0 b=RS:0
b=RR:0 b=RR:0
a=rtpmap:0 PCMU/8000 a=rtpmap:0 PCMU/8000
a=candidate:1 1 UDP 2130706431 fe80::6676:baff:fe9c:ee4a 8998 typ host a=candidate:1 1 UDP 2130706431 fe80::6676:baff:fe9c:ee4a 8998
typ host
a=candidate:2 1 UDP 1694498815 2001:db8:8101:3a55:4858:a2a9:22ff:99b9 a=candidate:2 1 UDP 1694498815 2001:db8:8101:3a55:4858:a2a9:22ff:99b9
45664 typ srflx raddr fe80::6676:baff:fe9c:ee4a rport 8998 45664 typ srflx raddr fe80::6676:baff:fe9c:ee4a rport 8998
The resulting answer looks like: The resulting answer looks like:
v=0 v=0
o=bob 2808844564 2808844564 IN IP4 $R-PUB-1.IP o=bob 2808844564 2808844564 IN IP4 $R-PUB-1.IP
s= s=
c=IN IP4 $R-PUB-1.IP c=IN IP4 $R-PUB-1.IP
t=0 0 t=0 0
 End of changes. 10 change blocks. 
22 lines changed or deleted 22 lines changed or added

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