| rfc8845v5.txt | rfc8845.txt | |||
|---|---|---|---|---|
| Internet Engineering Task Force (IETF) M. Duckworth, Ed. | Internet Engineering Task Force (IETF) M. Duckworth, Ed. | |||
| Request for Comments: 8845 | Request for Comments: 8845 | |||
| Category: Standards Track A. Pepperell | Category: Standards Track A. Pepperell | |||
| ISSN: 2070-1721 Acano | ISSN: 2070-1721 Acano | |||
| S. Wenger | S. Wenger | |||
| Tencent | Tencent | |||
| November 2020 | January 2021 | |||
| Framework for Telepresence Multi-Streams | Framework for Telepresence Multi-Streams | |||
| Abstract | Abstract | |||
| This document defines a framework for a protocol to enable devices in | This document defines a framework for a protocol to enable devices in | |||
| a telepresence conference to interoperate. The protocol enables | a telepresence conference to interoperate. The protocol enables | |||
| communication of information about multiple media streams so a | communication of information about multiple media streams so a | |||
| sending system and receiving system can make reasonable decisions | sending system and receiving system can make reasonable decisions | |||
| about transmitting, selecting, and rendering the media streams. This | about transmitting, selecting, and rendering the media streams. This | |||
| skipping to change at line 38 ¶ | skipping to change at line 38 ¶ | |||
| 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/rfc8845. | https://www.rfc-editor.org/info/rfc8845. | |||
| 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 122 ¶ | skipping to change at line 122 ¶ | |||
| The framework is intended to support the use cases described in "Use | The framework is intended to support the use cases described in "Use | |||
| Cases for Telepresence Multistreams" [RFC7205] and to meet the | Cases for Telepresence Multistreams" [RFC7205] and to meet the | |||
| requirements in "Requirements for Telepresence Multistreams" | requirements in "Requirements for Telepresence Multistreams" | |||
| [RFC7262]. This includes cases using multiple media streams that are | [RFC7262]. This includes cases using multiple media streams that are | |||
| not necessarily telepresence. | not necessarily telepresence. | |||
| The basic session setup for the use cases is based on SIP [RFC3261] | The basic session setup for the use cases is based on SIP [RFC3261] | |||
| and SDP offer/answer [RFC3264]. In addition to basic SIP & SDP | and SDP offer/answer [RFC3264]. In addition to basic SIP & SDP | |||
| offer/answer, signaling that is ControLling mUltiple streams for | offer/answer, signaling that is ControLling mUltiple streams for | |||
| tElepresence (CLUE) specific is required to exchange the information | tElepresence (CLUE) specific is required to exchange the information | |||
| describing the multiple media streams. The motivation for this | describing the multiple Media Streams. The motivation for this | |||
| framework, an overview of the signaling, and the information required | framework, an overview of the signaling, and the information required | |||
| to be exchanged are described in subsequent sections of this | to be exchanged are described in subsequent sections of this | |||
| document. Companion documents describe the signaling details | document. Companion documents describe the signaling details | |||
| [RFC8848], the data model [RFC8846], and the protocol [RFC8847]. | [RFC8848], the data model [RFC8846], and the protocol [RFC8847]. | |||
| 2. Requirements Language | 2. Requirements Language | |||
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | |||
| "OPTIONAL" in this document are to be interpreted as described in | "OPTIONAL" in this document are to be interpreted as described in | |||
| skipping to change at line 153 ¶ | skipping to change at line 153 ¶ | |||
| Consumer describing specific aspects of the content of the Media | Consumer describing specific aspects of the content of the Media | |||
| and any restrictions it has in terms of being able to provide | and any restrictions it has in terms of being able to provide | |||
| certain Streams simultaneously. | certain Streams simultaneously. | |||
| Audio Capture (AC): Media Capture for audio. Denoted as "ACn" in | Audio Capture (AC): Media Capture for audio. Denoted as "ACn" in | |||
| the examples in this document. | the examples in this document. | |||
| Capture: Same as Media Capture. | Capture: Same as Media Capture. | |||
| Capture Device: A device that converts physical input, such as | Capture Device: A device that converts physical input, such as | |||
| audio, video or text, into an electrical signal, in most cases to | audio, video, or text, into an electrical signal, in most cases to | |||
| be fed into a Media encoder. | be fed into a Media encoder. | |||
| Capture Encoding: A specific Encoding of a Media Capture, to be sent | Capture Encoding: A specific Encoding of a Media Capture, to be sent | |||
| by a Media Provider to a Media Consumer via RTP. | by a Media Provider to a Media Consumer via RTP. | |||
| Capture Scene: A structure representing a spatial region captured by | Capture Scene: A structure representing a spatial region captured by | |||
| one or more Capture Devices, each capturing Media representing a | one or more Capture Devices, each capturing Media representing a | |||
| portion of the region. The spatial region represented by a | portion of the region. The spatial region represented by a | |||
| Capture Scene may correspond to a real region in physical space, | Capture Scene may correspond to a real region in physical space, | |||
| such as a room. A Capture Scene includes attributes and one or | such as a room. A Capture Scene includes attributes and one or | |||
| skipping to change at line 199 ¶ | skipping to change at line 199 ¶ | |||
| are not considered CLUE-enabled. | are not considered CLUE-enabled. | |||
| Conference: Used as defined in "A Framework for Conferencing within | Conference: Used as defined in "A Framework for Conferencing within | |||
| the Session Initiation Protocol (SIP)" [RFC4353]. | the Session Initiation Protocol (SIP)" [RFC4353]. | |||
| Configure Message: A CLUE message a Media Consumer sends to a Media | Configure Message: A CLUE message a Media Consumer sends to a Media | |||
| Provider specifying which content and Media Streams it wants to | Provider specifying which content and Media Streams it wants to | |||
| receive, based on the information in a corresponding Advertisement | receive, based on the information in a corresponding Advertisement | |||
| message. | message. | |||
| Consumer: short for Media Consumer. | Consumer: Short for Media Consumer. | |||
| Encoding: short for Individual Encoding. | Encoding: Short for Individual Encoding. | |||
| Encoding Group: A set of Encoding parameters representing a total | Encoding Group: A set of Encoding parameters representing a total | |||
| Media Encoding capability to be subdivided across potentially | Media Encoding capability to be subdivided across potentially | |||
| multiple Individual Encodings. | multiple Individual Encodings. | |||
| Endpoint: A CLUE-capable device that is the logical point of final | Endpoint: A CLUE-capable device that is the logical point of final | |||
| termination through receiving, decoding and Rendering, and/or | termination through receiving, decoding and Rendering, and/or | |||
| initiation through capturing, encoding, and sending of Media | initiation through capturing, encoding, and sending of Media | |||
| Streams. An Endpoint consists of one or more physical devices | Streams. An Endpoint consists of one or more physical devices | |||
| that source and sink Media Streams, and exactly one [RFC4353] | that source and sink Media Streams, and exactly one [RFC4353] | |||
| skipping to change at line 261 ¶ | skipping to change at line 261 ¶ | |||
| Denoted as "MCCn" in the example cases in this document. | Denoted as "MCCn" in the example cases in this document. | |||
| Plane of Interest: The spatial plane within a Scene containing the | Plane of Interest: The spatial plane within a Scene containing the | |||
| most-relevant subject matter. | most-relevant subject matter. | |||
| Provider: Same as a Media Provider. | Provider: Same as a Media Provider. | |||
| Render: The process of generating a representation from Media, such | Render: The process of generating a representation from Media, such | |||
| as displayed motion video or sound emitted from loudspeakers. | as displayed motion video or sound emitted from loudspeakers. | |||
| Scene: Same as a Capture Scene | Scene: Same as a Capture Scene. | |||
| Simultaneous Transmission Set: A set of Media Captures that can be | Simultaneous Transmission Set: A set of Media Captures that can be | |||
| transmitted simultaneously from a Media Provider. | transmitted simultaneously from a Media Provider. | |||
| Single Media Capture: A Capture that contains Media from a single | Single Media Capture: A Capture that contains Media from a single | |||
| source Capture Device, e.g., an Audio Capture from a single | source Capture Device, e.g., an Audio Capture from a single | |||
| microphone or a Video Capture from a single camera. | microphone or a Video Capture from a single camera. | |||
| Spatial Relation: The arrangement of two objects in space, in | Spatial Relation: The arrangement of two objects in space, in | |||
| contrast to relation in time or other relationships. | contrast to relation in time or other relationships. | |||
| Stream: A Capture Encoding sent from a Media Provider to a Media | Stream: A Capture Encoding sent from a Media Provider to a Media | |||
| Consumer via RTP [RFC3550]. | Consumer via RTP [RFC3550]. | |||
| Stream Characteristics: The Media stream attributes commonly used in | Stream Characteristics: The Media Stream attributes commonly used in | |||
| non-CLUE SIP/SDP environments (such as Media codec, bitrate, | non-CLUE SIP/SDP environments (such as Media codec, bitrate, | |||
| resolution, profile/level, etc.) as well as CLUE-specific | resolution, profile/level, etc.) as well as CLUE-specific | |||
| attributes, such as the Capture ID or a spatial location. | attributes, such as the Capture ID or a spatial location. | |||
| Video Capture (VC): Media Capture for video. Denoted as VCn in the | Video Capture (VC): Media Capture for video. Denoted as VCn in the | |||
| example cases in this document. | example cases in this document. | |||
| Video Composite: A single image that is formed, normally by an RTP | Video Composite: A single image that is formed, normally by an RTP | |||
| mixer inside an MCU, by combining visual elements from separate | mixer inside an MCU, by combining visual elements from separate | |||
| sources. | sources. | |||
| skipping to change at line 3118 ¶ | skipping to change at line 3118 ¶ | |||
| get the information it needs to construct MCC4, it has to send | get the information it needs to construct MCC4, it has to send | |||
| Configure Messages to Endpoints A and B asking to receive MCC1 from | Configure Messages to Endpoints A and B asking to receive MCC1 from | |||
| each of them, along with their AC1 audio. Now the MCU can use audio | each of them, along with their AC1 audio. Now the MCU can use audio | |||
| energy information from the two incoming audio Streams from Endpoints | energy information from the two incoming audio Streams from Endpoints | |||
| A and B to determine which of those alternatives is the current | A and B to determine which of those alternatives is the current | |||
| talker. Based on that, the MCU uses either MCC1 from A or MCC1 from | talker. Based on that, the MCU uses either MCC1 from A or MCC1 from | |||
| B as the source of MCC4 to send to Endpoint C. | B as the source of MCC4 to send to Endpoint C. | |||
| 13. IANA Considerations | 13. IANA Considerations | |||
| This document does not require any IANA actions. | This document has no IANA actions. | |||
| 14. Security Considerations | 14. Security Considerations | |||
| There are several potential attacks related to telepresence, | There are several potential attacks related to telepresence, | |||
| specifically the protocols used by CLUE. This is the case due to | specifically the protocols used by CLUE. This is the case due to | |||
| conferencing sessions, the natural involvement of multiple Endpoints, | conferencing sessions, the natural involvement of multiple Endpoints, | |||
| and the many, often user-invoked, capabilities provided by the | and the many, often user-invoked, capabilities provided by the | |||
| systems. | systems. | |||
| An MCU involved in a CLUE session can experience many of the same | An MCU involved in a CLUE session can experience many of the same | |||
| skipping to change at line 3267 ¶ | skipping to change at line 3267 ¶ | |||
| [RFC6351] Perreault, S., "xCard: vCard XML Representation", | [RFC6351] Perreault, S., "xCard: vCard XML Representation", | |||
| RFC 6351, DOI 10.17487/RFC6351, August 2011, | RFC 6351, DOI 10.17487/RFC6351, August 2011, | |||
| <https://www.rfc-editor.org/info/rfc6351>. | <https://www.rfc-editor.org/info/rfc6351>. | |||
| [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | |||
| 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | |||
| May 2017, <https://www.rfc-editor.org/info/rfc8174>. | May 2017, <https://www.rfc-editor.org/info/rfc8174>. | |||
| [RFC8846] Presta, R. and S P. Romano, "An XML Schema for the | [RFC8846] Presta, R. and S P. Romano, "An XML Schema for the | |||
| Controlling Multiple Streams for Telepresence (CLUE) Data | Controlling Multiple Streams for Telepresence (CLUE) Data | |||
| Model", DOI 10.17487/RFC8846, RFC 8846, November 2020, | Model", RFC 8846, DOI 10.17487/RFC8846, January 2021, | |||
| <http://www.rfc-editor.org/info/rfc8846>. | <http://www.rfc-editor.org/info/rfc8846>. | |||
| [RFC8847] Presta, R. and S P. Romano, "Protocol for Controlling | [RFC8847] Presta, R. and S P. Romano, "Protocol for Controlling | |||
| Multiple Streams for Telepresence (CLUE)", RFC 8847, | Multiple Streams for Telepresence (CLUE)", RFC 8847, | |||
| DOI 10.17487/RFC8847, November 2020, | DOI 10.17487/RFC8847, January 2021, | |||
| <https://www.rfc-editor.org/info/rfc8847>. | <https://www.rfc-editor.org/info/rfc8847>. | |||
| [RFC8848] Hanton, R., Kyzivat, P., Xiao, L., and C. Groves, "Session | [RFC8848] Hanton, R., Kyzivat, P., Xiao, L., and C. Groves, "Session | |||
| Signaling for Controlling Multiple Streams for | Signaling for Controlling Multiple Streams for | |||
| Telepresence (CLUE)", RFC 8848, DOI 10.17487/RFC8848, | Telepresence (CLUE)", RFC 8848, DOI 10.17487/RFC8848, | |||
| November 2020, <https://www.rfc-editor.org/info/rfc8848>. | January 2021, <https://www.rfc-editor.org/info/rfc8848>. | |||
| [RFC8850] Holmberg, C., "Controlling Multiple Streams for | [RFC8850] Holmberg, C., "Controlling Multiple Streams for | |||
| Telepresence (CLUE) Protocol Data Channel", RFC 8850, | Telepresence (CLUE) Protocol Data Channel", RFC 8850, | |||
| DOI 10.17487/RFC8850, November 2020, | DOI 10.17487/RFC8850, January 2021, | |||
| <https://www.rfc-editor.org/info/rfc8850>. | <https://www.rfc-editor.org/info/rfc8850>. | |||
| 15.2. Informative References | 15.2. Informative References | |||
| [RFC4353] Rosenberg, J., "A Framework for Conferencing with the | [RFC4353] Rosenberg, J., "A Framework for Conferencing with the | |||
| Session Initiation Protocol (SIP)", RFC 4353, | Session Initiation Protocol (SIP)", RFC 4353, | |||
| DOI 10.17487/RFC4353, February 2006, | DOI 10.17487/RFC4353, February 2006, | |||
| <https://www.rfc-editor.org/info/rfc4353>. | <https://www.rfc-editor.org/info/rfc4353>. | |||
| [RFC7201] Westerlund, M. and C. Perkins, "Options for Securing RTP | [RFC7201] Westerlund, M. and C. Perkins, "Options for Securing RTP | |||
| skipping to change at line 3317 ¶ | skipping to change at line 3317 ¶ | |||
| Telepresence Multistreams", RFC 7262, | Telepresence Multistreams", RFC 7262, | |||
| DOI 10.17487/RFC7262, June 2014, | DOI 10.17487/RFC7262, June 2014, | |||
| <https://www.rfc-editor.org/info/rfc7262>. | <https://www.rfc-editor.org/info/rfc7262>. | |||
| [RFC7667] Westerlund, M. and S. Wenger, "RTP Topologies", RFC 7667, | [RFC7667] Westerlund, M. and S. Wenger, "RTP Topologies", RFC 7667, | |||
| DOI 10.17487/RFC7667, November 2015, | DOI 10.17487/RFC7667, November 2015, | |||
| <https://www.rfc-editor.org/info/rfc7667>. | <https://www.rfc-editor.org/info/rfc7667>. | |||
| [RFC8849] Even, R. and J. Lennox, "Mapping RTP Streams to | [RFC8849] Even, R. and J. Lennox, "Mapping RTP Streams to | |||
| Controlling Multiple Streams for Telepresence (CLUE) Media | Controlling Multiple Streams for Telepresence (CLUE) Media | |||
| Captures", RFC 8849, DOI 10.17487/RFC8849, November 2020, | Captures", RFC 8849, DOI 10.17487/RFC8849, January 2021, | |||
| <https://www.rfc-editor.org/info/rfc8849>. | <https://www.rfc-editor.org/info/rfc8849>. | |||
| Acknowledgements | Acknowledgements | |||
| Allyn Romanow and Brian Baldino were authors of early draft versions. | Allyn Romanow and Brian Baldino were authors of early draft versions. | |||
| Mark Gorzynski also contributed much to the initial approach. Many | Mark Gorzynski also contributed much to the initial approach. Many | |||
| others also contributed, including Christian Groves, Jonathan Lennox, | others also contributed, including Christian Groves, Jonathan Lennox, | |||
| Paul Kyzivat, Rob Hanton, Roni Even, Christer Holmberg, Stephen | Paul Kyzivat, Rob Hanton, Roni Even, Christer Holmberg, Stephen | |||
| Botzko, Mary Barnes, John Leslie, and Paul Coverdale. | Botzko, Mary Barnes, John Leslie, and Paul Coverdale. | |||
| End of changes. 14 change blocks. | ||||
| 14 lines changed or deleted | 14 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/ | ||||