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/ |