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