<?xmlversion="1.0" encoding="windows-1252"?>version='1.0' encoding='utf-8'?> <!DOCTYPE rfc SYSTEM"rfc2629.dtd" []> <?rfc toc="yes" ?> <?rfc compact="yes" ?> <?rfc subcompact="yes" ?> <?rfc sortrefs="no" ?> <?rfc strict="yes" ?>"rfc2629-xhtml.ent"> <rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" category="std" docName="draft-ietf-mmusic-t140-usage-data-channel-14" number="8865" obsoletes="" updates="8373" submissionType="IETF"xml:lang="en">consensus="true" xml:lang="en" tocInclude="true" sortRefs="true" version="3"> <!-- xml2rfc v2v3 conversion 2.45.2 --> <front> <title abbrev="T.140 Data Channel"> T.140Real-timeReal-Time Text Conversation over WebRTC Data Channels </title> <seriesInfo name="RFC" value="8865"/> <authorinitials="C.H."initials="C." surname="Holmberg" fullname="Christer Holmberg"> <organization>Ericsson</organization> <address> <postal> <street>Hirsalantie 11</street> <code>02420</code> <city>Jorvas</city> <country>Finland</country> </postal> <email>christer.holmberg@ericsson.com</email> </address> </author> <authorinitials="G.H." surname="Hellstrom"initials="G." surname="Hellström" fullname="GunnarHellstrom">Hellström"> <organization>GunnarHellstromHellström Accessible Communication</organization> <address> <postal> <street>Esplanaden 30</street> <code>136 70</code><city>Vendelso</city><city>Vendelsö</city> <country>Sweden</country> </postal> <email>gunnar.hellstrom@ghaccess.se</email> </address> </author> <date month="September" year="2020"/><area>Transport</area> <workgroup>MMUSIC Working Group</workgroup><keyword>SDP</keyword> <keyword>ITU-T</keyword> <keyword>T.140</keyword> <keyword>Data Channel</keyword> <keyword>WebRTC</keyword> <keyword>real-time text</keyword> <abstract> <t> This document specifies how aWebRTCWeb Real-Time Communication (WebRTC) data channel can be used as a transport mechanism forReal-timereal-time text using the ITU-T Protocol for multimedia application text conversation (Recommendation ITU-TT.140),T.140) and how theSDPSession Description Protocol (SDP) offer/answer mechanism can be used to negotiate such a data channel, referred to as a T.140 data channel. This document updates RFC 8373 to specify its use with WebRTC data channels. </t> </abstract> </front> <middle> <sectiontitle="Introduction" toc="default">toc="default" numbered="true"> <name>Introduction</name> <t> The ITU-T Protocol for multimedia application text conversation (Recommendation ITU-T T.140) <xreftarget="T140"/>target="T140" format="default"/> defines a protocol for text conversation, also known as real-time text. The transport used for IP networks is the "RTP Payload for Text Conversation" mechanism <xreftarget="RFC4103"/> mechanism,target="RFC4103" format="default"/>, based on the Real-time Transport Protocol (RTP) <xreftarget="RFC3550"/>.target="RFC3550" format="default"/>. </t> <t> This document specifies how aWebRTCWeb Real-Time Communication (WebRTC) data channel <xreftarget="I-D.ietf-rtcweb-data-channel"/>target="RFC8831"/> can be used as a transport mechanism forT.140,T.140 and how theSDPSession Description Protocol (SDP) offer/answer mechanism for data channels <xreftarget="I-D.ietf-mmusic-data-channel-sdpneg"/>target="RFC8864"/> can be used to negotiate such a data channel. </t> <t> In this document, a T.140 data channel refers to a WebRTC data channel for which the instantiatedsub-protocolsubprotocol is"t140","t140" and where the channel is negotiated using theSDP-based external negotiation methodSDP offer/answer mechanism <xreftarget="I-D.ietf-mmusic-data-channel-sdpneg"/>.target="RFC8864"/>. </t><t><!-- The "U-C 5" text is DNE. --> <aside><t> NOTE: The decision to transport real-time text using a WebRTC datachannel,channel instead of usingRTP basedRTP-based transport <xreftarget="RFC4103"/>,target="RFC4103" format="default"/> is motivated byuse-caseuse case "U-C 5: Real-time text chat during an audio and/or video call with an individual or with multiple people in aconference",conference"; seeSection 3.2 of<xreftarget="I-D.ietf-rtcweb-data-channel"/>. </t>target="RFC8831" sectionFormat="of" section="3.2"/>. </t></aside> <t> The brief notation "T.140" is used as a name for the text conversation protocol according to <xreftarget="T140"/>.target="T140" format="default"/>. </t> <t> Real-time text is intended to be entered by human usersfromvia a keyboard, handwriting recognition, voicerecognitionrecognition, or any other input method. The rate of character entry is usually at a level of a few characters per second or less. </t> <t> <xreftarget="sec.webrtc.cons"/>target="sec.webrtc.cons" format="default"/> defines the generic data channel properties for a T.140 data channel, and <xreftarget="sec.sdp"/>target="sec.sdp" format="default"/> defines how they are conveyed in an SDPdcmap'dcmap' attribute. While this document defines how toestablishnegotiate a T.140 data channel using theSDP-based external negotiation methodSDP offer/answer mechanism <xreftarget="I-D.ietf-mmusic-data-channel-sdpneg"/>,target="RFC8864"/>, the generic T.140 and gateway considerations defined in Sections <xref target="sec.webrtc.cons" format="counter"/>, <xreftarget="sec.webrtc.cons"/>, <xref target="sec.t140"/>target="sec.t140" format="counter"/>, and <xreftarget="sec.gw"/>target="sec.gw" format="counter"/> of this document can also be applied when a T.140 data channel is established using another mechanism (e.g., the mechanism defined in <xreftarget="I-D.ietf-rtcweb-data-protocol"/>). Section 5 oftarget="RFC8832"/>). <xreftarget="I-D.ietf-mmusic-data-channel-sdpneg"/>target="RFC8864" sectionFormat="of" section="5"/> defines the mapping between the SDPdcmap'dcmap' attribute parameters and the protocol parameters used in <xreftarget="I-D.ietf-rtcweb-data-protocol"/>.target="RFC8832"/>. </t> <t> This document updates <xreftarget="RFC8373"/>,target="RFC8373" format="default"/> by defining how the SDPhlang-send'hlang-send' andhlang-recv'hlang-recv' attributes are used for the "application/webrtc-datachannel" media type. </t> </section> <sectiontitle="Conventions"> <t> Thenumbered="true" toc="default"> <name>Conventions</name> <t>The key words"MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY","<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>", "<bcp14>MAY</bcp14>", and"OPTIONAL""<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as described inBCP 14BCP 14 <xreftarget="RFC2119"></xref>target="RFC2119"/> <xreftarget="RFC8174"></xref>target="RFC8174"/> when, and only when, they appear in all capitals, as shownhere. </t>here.</t> </section> <section anchor="sec.webrtc.cons"title="WebRTCnumbered="true" toc="default"> <name>WebRTC Data ChannelConsiderations">Considerations</name> <t> The following WebRTC data channel property values <xreftarget="I-D.ietf-rtcweb-data-channel"/>target="RFC8831"/> apply to a T.140 data channel: </t><texttable title=""> <ttcol align='left' width='30%'/> <ttcol align='left'/> <c>Subprotocol Identifier</c> <c>t140</c> <c>Transmission reliability</c> <c>reliable</c> <c>Transmission order</c> <c>in-order</c> <c>Label</c> <c>See <xref target="sec.sdp.dcmap"/> and <xref target="sec.gw"/></c> </texttable> <t><table align="center"> <tbody> <tr> <td align="left">Subprotocol Identifier</td> <td align="left">t140</td> </tr> <tr> <td align="left">Transmission reliability</td> <td align="left">reliable</td> </tr> <tr> <td align="left">Transmission order</td> <td align="left">in-order</td> </tr> <tr> <td align="left">Label</td> <td align="left">See <xref target="sec.sdp.dcmap"/></td> </tr> </tbody> </table> <aside><t> NOTE: T.140 requires the transport channel to provide transmission of real-time text without duplication and in original order. Therefore, T.140 does not specify reliable and ordered transmission of T.140 data on the application layer. Instead, whenRTP basedRTP-based transport is used, the RTP sequence number is used to detect packet loss and out-of-order packets, and a redundancy mechanism is used to achieve reliable delivery of T.140 data. By using the WebRTC datachannelchannel's reliable and in-order transmission features <xreftarget="I-D.ietf-rtcweb-data-channel"/>target="RFC8831"/> for the T.140 data channel, there is no need for a redundancy mechanism or a mechanism to detect data loss and out-of-order delivery at the application level. The latency characteristics of the T.140 data channelisare also regardedto beas sufficient to meet the application requirements of T.140.</t></t></aside> </section> <section anchor="sec.sdp"title="SDP Considerations">numbered="true" toc="default"> <name>SDP Considerations</name> <t> The generic SDP considerations, including the SDPOffer/Answeroffer/answer procedures <xreftarget="RFC3264"/>,target="RFC3264" format="default"/>, for negotiating a WebRTC data channel are defined in <xreftarget="I-D.ietf-mmusic-data-channel-sdpneg"/>.target="RFC8864"/>. This section, and its subsections, define the SDP considerations that are specific to a T.140 data channel, identified byan SDP 'dcmap'the 'subprotocol' attribute<xref target="I-D.ietf-mmusic-data-channel-sdpneg"/>parameter, with a "t140"attributeparametervalue.value, in the 'dcmap' attribute. </t> <section anchor="sec.sdp.dcmap"title="Usenumbered="true" toc="default"> <name>Use ofdcmap Attribute">the 'dcmap' Attribute</name> <t> An offerer and answererMUST,<bcp14>MUST</bcp14>, in each offer and answer, include an SDP 'dcmap' attribute <xreftarget="I-D.ietf-mmusic-data-channel-sdpneg"/>target="RFC8864"/> in the SDP media description(m= section)("m=" section) <xreftarget="I-D.ietf-mmusic-rfc4566bis"/>target="RFC4566"/> describing theSCTPStream Control Transmission Protocol (SCTP) association <xreftarget="RFC4960"/>target="RFC4960" format="default"/> used to realize the T.140 data channel. </t> <t> The offerer and answererMUST<bcp14>MUST</bcp14> include thesubprotocol'subprotocol' attribute parameter, with a "t140" parameter value, in the 'dcmap'attribute value.attribute. </t> <t> The offerer and answererMAY<bcp14>MAY</bcp14> include thepriority'priority' attribute parameter and thelabel'label' attribute parameter in the 'dcmap' attribute value, as specified in <xreftarget="I-D.ietf-mmusic-data-channel-sdpneg"/>.target="RFC8864"/>. </t><t><aside><t> NOTE: As specified in <xreftarget="I-D.ietf-rtcweb-data-channel"/>,target="RFC8831"/>, when a data channel is negotiated using the mechanism defined in <xreftarget="I-D.ietf-rtcweb-data-protocol"/>,target="RFC8832"/>, thelabel'label' attribute parameter value has to be the same in both directions. That rule also applies to data channels negotiated using the mechanism defined in this document.</t></t></aside> <t> The offerer and answererMUST NOT<bcp14>MUST NOT</bcp14> include themax-retr'max-retr' orthe max-time'max-time' attributeparametersparameter in the 'dcmap' attribute. If either of those attribute parameters is received in an offer, the answererMUST<bcp14>MUST</bcp14> reject the offer. If either of those attribute parameters is received in anansweranswer, the offererMUST NOT<bcp14>MUST NOT</bcp14> accept the answer. Instead, the answererMUST<bcp14>MUST</bcp14> take appropriate actions, e.g., by sending a new offer without a T.140 datachannel,channel or by terminating the session. </t> <t> If theordered'ordered' attribute parameter is included in the 'dcmap' attribute, itMUST<bcp14>MUST</bcp14> be assigned the value 'true'. </t> <t> Below is an example of the 'dcmap' attribute for a T.140 data channel with stream id=3 and without any label: </t> <t> a=dcmap:3 subprotocol="t140" </t> </section> <section anchor="sec.sdp.dcsa"title="Usenumbered="true" toc="default"> <name>Use ofdcsa Attribute">the 'dcsa' Attribute</name> <t> An offerer and answerer can, in each offer and answer, include one or more SDP 'dcsa' attributes <xreftarget="I-D.ietf-mmusic-data-channel-sdpneg"/>target="RFC8864"/> in them="m=" section describing the SCTP association used to realize the T.140 data channel. </t> <t> If an offerer or answerer receives a 'dcsa' attribute that contains an SDP attributewhichwhose usage has not been defined for a T.140 data channel, the offerer or answerer should ignore the 'dcsa' attribute, following the rules inSection 6.7 of<xreftarget="I-D.ietf-mmusic-data-channel-sdpneg"/>.target="RFC8864" sectionFormat="of" section="6.7"/>. </t> <section anchor="sec.sdp.dcsa.trans"title="Maximumnumbered="true" toc="default"> <name>Maximum Character TransmissionRate">Rate</name> <t> A 'dcsa' attribute can contain the SDP 'fmtp'attributeattribute, which is used to indicate a maximum character transmission rate <xreftarget="RFC4103"/>.target="RFC4103" format="default"/>. The 'cps' attribute parameter is used to indicate the maximum character transmission rate that the endpoint that includes the attribute is able to receive, and the value is used as a mean value in characters per second over any 10-second interval. </t> <t> If the 'fmtp' attribute is included, the 'format' attribute parameterMUSTvalue <bcp14>MUST</bcp14> be set to"t140".'t140'. </t> <t> If no 'fmtp' attribute with a 'cps' attribute parameter is included, the default value of 30 applies <xreftarget="RFC4103"/>.target="RFC4103" format="default"/>. </t> <t> The offerer and answererMAY<bcp14>MAY</bcp14> modify the 'cps' attribute parameter value in subsequent offers and answers. </t> <t> This document does not define any other usage of the 'fmtp' attribute for a T.140 channel. If an offerer or answerer receives a 'dcsa' attribute that contains an 'fmtp' attribute that is not set according to the procedure above, the offerer or answererMUST<bcp14>MUST</bcp14> ignore the 'dcsa' attribute. </t><t><aside><t> NOTE: The 'cps' attribute parameter is especially useful when a T.140 data channel endpoint is acting as a gateway (<xreftarget="sec.gw"/>)target="sec.gw" format="default"/>) and is interworking with a T.140 transport mechanism thathavehas restrictions on how many characters can be sent per second.</t></t></aside> <t> If an endpoint receives text at a higher rate than it can handle, e.g., because the sending endpoint does not support the 'cps' attribute parameter, itSHOULD<bcp14>SHOULD</bcp14> eitherindicate(1) indicate to the sending endpoint that it is not willing to receive more text, using the direction attributes (<xreftarget="sec.sdp.dcsa.dir"/>),target="sec.sdp.dcsa.dir" format="default"/>) oruse(2) use aflow controlflow-control mechanism to reduce the rate. However, in certain applications,e.g.e.g., emergency services, it is important to regain human interaction as soon as possible, and it might therefore be more appropriate to simply discard the received overflow, insert a mark for loss <xreftarget="T140ad1"/>,target="T140ad1" format="default"/>, and continue to process the received text as soon as possible. </t><t><aside><t> NOTE: At the time of writing this specification, the standardized API for WebRTC data channels does not support flow control. Should such support be available at some point, a receiving endpoint might use it in order to slow down the rate of text received from the sending endpoint.</t></t></aside> </section> <section anchor="sec.sdp.dcsa.lan"title="Real-timenumbered="true" toc="default"> <name>Real-Time Text ConversationLanguages">Languages</name> <t> 'dcsa' attributes can contain the SDP 'hlang-send' and 'hlang-recv' attributes <xreftarget="RFC8373"/>target="RFC8373" format="default"/> to negotiate the language to be used for the real-time text conversation. </t> <t> For a T.140 data channel, the modality is "written" <xreftarget="RFC8373"/>.target="RFC8373" format="default"/>. </t> </section> <section anchor="sec.sdp.dcsa.dir"title="Real-timenumbered="true" toc="default"> <name>Real-Time TextDirection">Direction</name> <t> 'dcsa' attributes can contain the SDP 'sendonly', 'recvonly','sendrecv''sendrecv', and 'inactive' attributes <xreftarget="I-D.ietf-mmusic-rfc4566bis"/>target="RFC4566"/> to negotiate the direction in which text can be transmitted in a real-time text conversation. </t><t><aside><t> NOTE: A WebRTC data channel is alwaysbi-directional.bidirectional. The usage of the 'dcsa' attribute only affects the direction in which implementations are allowed to transmit text on a T.140 data channel.</t></t></aside> <t> The offer/answer rules for the direction attributes are based on the rules for unicast streams defined in <xreftarget="RFC3264"/>,target="RFC3264" format="default"/>, as described below. Note that the rules only apply to the direction attributes. </t> <t> Session-level direction attributes <xreftarget="I-D.ietf-mmusic-rfc4566bis"/>target="RFC4566"/> have no impact on a T.140 data channel. </t> <section anchor="sec.sdp.dcsa.dir.neg.off"title="Generatingnumbered="true" toc="default"> <name>Generating anOffer">Offer</name> <t> If the offerer wishes to both send and receive text on a T.140 data channel, itSHOULD<bcp14>SHOULD</bcp14> mark the data channel as sendrecv with a 'sendrecv' attribute inside a 'dcsa' attribute. If the offerer does not explicitly mark the data channel, an implicit 'sendrecv' attribute inside a 'dcsa' attribute is applied by default. </t> <t> If the offerer wishes to only send text on a T.140 data channel, itMUST<bcp14>MUST</bcp14> mark the data channel as sendonly with a 'sendonly' attribute inside a 'dcsa' attribute. </t> <t> If the offerer wishes to only receive text on a T.140 data channel, itMUST<bcp14>MUST</bcp14> mark the data channel as recvonly with a 'recvonly' attribute inside a 'dcsa' attribute. </t> <t> If the offerer wishes to neither send nor receive text on a T.140 data channel, itMUST<bcp14>MUST</bcp14> mark the data channel as inactive with an 'inactive' attribute inside a 'dcsa' attribute. </t> <t> If the offerer has marked a data channel as sendrecv (or if the offerer did not explicitly mark the data channel) or recvonly, itMUST<bcp14>MUST</bcp14> be prepared to receive T.140 data as soon as the state of the T.140 data channel allows it. </t> </section> <section anchor="sec.sdp.dcsa.dir.neg.ans"title="Generatingnumbered="true" toc="default"> <name>Generating anAnswer">Answer</name> <t> When the answerer accepts anoffer,offer and marks the direction of the text in the corresponding answer, the direction is based on the marking (or the lack of explicit marking) in the offer. </t> <t> If the offerer either explicitly marked the data channel assendrecv,sendrecv orif the offererdid not mark the data channel, the answererSHOULD<bcp14>SHOULD</bcp14> mark the data channel as sendrecv, sendonly,recvonlyrecvonly, or inactive with a 'sendrecv', 'sendonly','recvonly''recvonly', or 'inactive'attribute respectivelyattribute, respectively, inside a 'dcsa' attribute. If the answerer does not explicitly mark the data channel, an implicit 'sendrecv' attribute inside a 'dcsa' attribute is applied by default. </t> <t> If the offerer marked the data channel as sendonly, the answererMUST<bcp14>MUST</bcp14> mark the data channel as recvonly or inactive with a 'recvonly' or 'inactive'attribute respectivelyattribute, respectively, inside a 'dcsa' attribute. </t> <t> If the offerer marked the data channel as recvonly, the answererMUST<bcp14>MUST</bcp14> mark the data channel as sendonly or inactive with a 'sendonly' or 'inactive'attribute respectivelyattribute, respectively, inside a 'dcsa' attribute. </t> <t> If the offerer marked the data channel as inactive, the answererMUST<bcp14>MUST</bcp14> mark the data channel as inactive with an 'inactive' attribute inside a 'dcsa' attribute. </t> <t> If the answerer has marked a data channel as sendrecv or recvonly, itMUST<bcp14>MUST</bcp14> be prepared to receive data as soon as the state of the T.140 data channel allows transmission of data. </t> </section> <section anchor="sec.sdp.dcsa.dir.neg.rec"title="Offerernumbered="true" toc="default"> <name>Offerer Receiving anAnswer">Answer</name> <t> When the offerer receives an answer to the offer and the answerer has marked a data channel as sendrecv (or the answerer did not mark the data channel) or recvonly in the answer, the offerer can start sending T.140 data as soon as the state of the T.140 data channel allows it. If the answerer has marked the data channel as inactive or sendonly, the offererMUST NOT<bcp14>MUST NOT</bcp14> send any T.140 data. </t> <t> If the answerer has not marked the direction of a T.140 data channel in accordance with the procedures above, it isRECOMMENDED<bcp14>RECOMMENDED</bcp14> that the offererdoesnot process that scenario as an errorsituation,situation but rather assume that the answerer might both send and receive T.140 data on the data channel. </t> </section> <section anchor="sec.sdp.dcsa.dir.mod"title="Modifynumbered="true" toc="default"> <name>Modifying the TextDirection">Direction</name> <t> If an endpoint wishes to modify a previously negotiated text direction in an ongoing session, itMUST<bcp14>MUST</bcp14> initiate an offer that indicates the new direction, following the rules in <xreftarget="sec.sdp.dcsa.dir.neg.off"/>.target="sec.sdp.dcsa.dir.neg.off" format="default"/>. If the answerer accepts theofferoffer, it follows the procedures in <xreftarget="sec.sdp.dcsa.dir.neg.ans"/>.target="sec.sdp.dcsa.dir.neg.ans" format="default"/>. </t> </section> </section> </section> <section anchor="sec.sdp.ex"title="Examples">numbered="true" toc="default"> <name>Examples</name> <t> Below is an example of anm="m=" section of an offer for a T.140 data channel offering real-time text conversation in Spanish and Esperanto, and anm="m=" section in the associated answer accepting Esperanto. The maximum character transmission rate is set to 20. As the offerer and answerer have not explicitly indicated the real-time text direction, the default direction "sendrecv" applies. </t><figure> <preamble></preamble> <artwork><![CDATA[ Offer:<sourcecode name="" type="sdp"><![CDATA[Offer: m=application 911 UDP/DTLS/SCTP webrtc-datachannel c=IN IP6 2001:db8::3 a=max-message-size:1000 a=sctp-port 5000 a=setup:actpass a=dcmap:2 label="ACME customer service";subprotocol="t140" a=dcsa:2 fmtp:t140 cps=20 a=dcsa:2 hlang-send:es eo a=dcsa:2 hlang-recv:es eo Answer: m=application 2004 UDP/DTLS/SCTP webrtc-datachannel c=IN IP6 2001:db8::1 a=max-message-size:1000 a=sctp-port 6000 a=setup:passive a=dcmap:2 label="ACME customer service";subprotocol="t140" a=dcsa:2 fmtp:t140 cps=20 a=dcsa:2 hlang-send:eo a=dcsa:2hlang-recv:eo ]]></artwork> </figure>hlang-recv:eo]]></sourcecode> <t> Below is an example of anm="m=" section of an offer for a T.140 data channel where the offerer wishes to only receive real-time text, and anm="m=" section in the associated answer indicating that the answerer will only send real-time text. No maximum character transmission rate is indicated. No preference for the language to be used for the real-time text conversation is indicated. </t><figure> <preamble></preamble> <artwork><![CDATA[ Offer:<sourcecode name="" type="sdp"><![CDATA[Offer: m=application 1400 UDP/DTLS/SCTP webrtc-datachannel c=IN IP6 2001:db8::3 a=max-message-size:1000 a=sctp-port 5000 a=setup:actpass a=dcmap:2 label="ACME customer service";subprotocol="t140" a=dcsa:2 recvonly Answer: m=application 2400 UDP/DTLS/SCTP webrtc-datachannel c=IN IP6 2001:db8::1 a=max-message-size:1000 a=sctp-port 6000 a=setup:passive a=dcmap:2 label="ACME customer service";subprotocol="t140" a=dcsa:2sendonly ]]></artwork> </figure>sendonly]]></sourcecode> </section> </section> <section anchor="sec.t140"title="T.140 Considerations">numbered="true" toc="default"> <name>T.140 Considerations</name> <section anchor="sec.t140.slf"title="Session Layer Functions">numbered="true" toc="default"> <name>Session-Layer Functions</name> <t> Section 6.1 of <xref target="T140"/> describes the generic T.140 session control functions at ahigh-levelhigh level, in asignalling protocolmanner that is independentmanner.of the signaling protocol. The list below describes how the functions are realized when using a T.140 data channel.<list style="symbols"> <t>Prepare session: An</t> <dl newline="false" spacing="normal"> <dt>Prepare session:</dt> <dd>An endpoint can indicate its support of T.140 data channels usingsignalling specificsignaling-specific means (e.g., using SIP OPTIONS <xreftarget="RFC3261"/>),target="RFC3261" format="default"/>) or by indicating the support in an offer or answer (<xreftarget="sec.sdp"/>)</t> <t>Initiate session: Antarget="sec.sdp" format="default"/>).</dd> <dt>Initiate session:</dt> <dd>An offer is used to request the establishment of a T.140 data channel (<xreftarget="sec.sdp"/>)</t> <t>Accept session: Antarget="sec.sdp" format="default"/>).</dd> <dt>Accept session:</dt> <dd>An answer is used to accept a request to establish a T.140 data channel (<xreftarget="sec.sdp"/>)</t> <t>Deny session: Antarget="sec.sdp" format="default"/>).</dd> <dt>Deny session:</dt> <dd>An answer is used to reject a request to establish a T.140 data channel, using the generic procedures for rejecting a data channel <xreftarget="I-D.ietf-mmusic-data-channel-sdpneg"/></t> <t>Disconnect session: Antarget="RFC8864"/>.</dd> <dt>Disconnect session:</dt> <dd>An offer or answer is used to disable a previously established T.140 data channel, using the generic procedures for closing a data channel <xreftarget="I-D.ietf-mmusic-data-channel-sdpneg"/></t> <t>Data: Datatarget="RFC8864"/>.</dd> <dt>Data:</dt> <dd>Data is sent on an established T.140 data channel (<xreftarget="sec.t140.send"/>)</t> </list> </t>target="sec.t140.send" format="default"/>).</dd> </dl> </section> <section anchor="sec.t140.send"title="Datanumbered="true" toc="default"> <name>Data Encoding andSending">Sending</name> <t> T.140 text is encoded and framed as T140blocks <xreftarget="RFC4103"/>.target="RFC4103" format="default"/>. </t> <t> Each T140block is sent on the SCTP stream <xreftarget="RFC4960"/>target="RFC4960" format="default"/> used to realize the T.140 data channel using standard T.140 transmission procedures <xreftarget="T140"/>.target="T140" format="default"/>. One or more T140blocks can be sent in a single SCTP user message <xreftarget="RFC4960"/>.target="RFC4960" format="default"/>. UnlikeRTP basedRTP-based transport for real-time text <xreftarget="RFC4103"/>,target="RFC4103" format="default"/>, T.140 data channels do not use redundant transmission oftext. The reason fortext; this isthatbecause the T.140 data channel achieves robust transmission by using the "reliable" mode of the data channel. </t> <t>Data sendingData-sending procedures conform to <xreftarget="T140"/>.target="T140" format="default"/>. </t> <t> See Section 8 of <xref target="T140"/> for coding details. </t><t><aside><t> NOTE: The T.140 coding details contain information on optional control codes for controlling thepresentation whichpresentation; these control codes may not be supported by the presentation level of the receiving application. The receiving application is expected to handle reception of such T.140 control codes appropriately(e.g.(e.g., ignore and skip them) even if their effect on the presentation is not supported.</t></t></aside> </section> <section anchor="sec.t140.buff"title="Data Buffering">numbered="true" toc="default"> <name>Data Buffering</name> <t> As described in <xreftarget="T140"/>,target="T140" format="default"/>, buffering can be used to reduce overhead, with the maximum assigned transmission interval of T140blocks from the buffer being 500 ms as long as there is text to send. </t> <t> BufferingMAY<bcp14>MAY</bcp14> also be used for staying within the maximum character transmission rate (<xreftarget="sec.sdp.dcsa"/>).target="sec.sdp.dcsa" format="default"/>). </t> <t> An implementation needs to take the user requirements for smooth flow and low latency in real-time text conversation into consideration when assigning a transmission interval. It isRECOMMENDED<bcp14>RECOMMENDED</bcp14> to use the default transmission interval of 300millisecondsms <xreftarget="RFC4103"/>,target="RFC4103" format="default"/>, for T.140 data channels. Implementers might also use lower values for specific applications requiring low latency, taking the increased overheadininto consideration. </t> </section> <section anchor="sec.t140.loss"title="Lossnumbered="true" toc="default"> <name>Loss ofT140blocks">T140blocks</name> <t> In the case of network failure or congestion, T.140 data channels might fail and get torn down. If this happens but the sessionsustains,is sustained, it isRECOMMENDED<bcp14>RECOMMENDED</bcp14> that implementations try to reestablish the T.140 data channels. As a T.140 data channel does not provide a mechanism for the receiver to identify retransmitted T140blocks after channel reestablishment, the sending endpointMUST NOT<bcp14>MUST NOT</bcp14> retransmit T140blocks. Similarly, a receiverSHOULD<bcp14>SHOULD</bcp14> indicate to the user thatthere has beena channelreestablishment,has been reestablished andthattext might have been lost. ThisMAY<bcp14>MAY</bcp14> be done by inserting the missing text markers <xreftarget="T140ad1"/>target="T140ad1" format="default"/> or in any other way evident to the user. </t><t><aside><t> NOTE: If the SCTP association <xreftarget="RFC4960"/>target="RFC4960" format="default"/> used to realize the T.140 data channel fails and gets torn down, it needs to bere-establishedreestablished before the T.140 data channel can be reestablished.The procedures after the reestablishment ofAfter the T.140 data channel is reestablished, the procedures defined in this sectionapply no matter ifapply, regardless of whether only the T.140 datachannel,channel or the whole SCTPassociation,association got torn down.</t></t></aside> </section> <section anchor="sec.t140.mul"title="Multi-party Considerations">numbered="true" toc="default"> <name>Multi-party Considerations</name> <t> If an implementation needs to support multi-party scenarios, the implementation needs to support multiple simultaneous T.140 data channels, one for each remote party. At the time of writing this document, this is true even in scenarios where each participant communicates via a centralized conference server.The reasonThis isthat,because, unlike RTP media, WebRTC data channels and the T.140 protocol do not support the indication of the source of T.140 data. The 'label' attribute parameter in the SDP 'dcmap' attributelabel attribute parameter(<xreftarget="sec.sdp.dcmap"/>)target="sec.sdp.dcmap" format="default"/>) can be used by the offerer to provide additional information about each T.140 datachannel,channel and help implementations to distinguish between them. </t><t><aside><t> NOTE: Future extensions toT.140,T.140 ortotheT140block,T140block mightallow indicatingpermit the indication of the source of T.140 data, in which case it might be possible to use a single T.140 data channel to transport data from multiple remote sources. The usage of a single T.140 data channel, without any protocol extensions, would require the conference server to only forward real-time text from one source at any giventime, and e.g.,time and, for example, includehuman readablehuman-readable text labels in the real-time text stream that indicate the source whenever the conference server switches the source. This would allow the receiver to present real-time text from different sources separately. The proceduresoffor such a mechanism are outside the scope of this document.</t></t></aside> </section> </section> <section anchor="sec.gw"title="Gateway Considerations">numbered="true" toc="default"> <name>Gateway Considerations</name> <t> A number of real-time text transports and protocols have been defined for both packet-switched and circuit-switched networks. Many are based on the ITU-T T.140 protocolonat the application and presentationlevellevels <xreftarget="T140"/>.target="T140" format="default"/>. At the time of writing this document, some mechanisms are no longer used, as the technologies they use have been obsoleted, while others are still in use. </t> <t> When performing interworking between T.140 data channels and real-time text in other transports and protocols, a number of factors need to be considered. At the time of writing this document, the most common IP-based real-time text transport is theRTP basedRTP-based mechanism defined in <xreftarget="RFC4103"/>.target="RFC4103" format="default"/>. While this document does not define a complete interworking solution,thisthe list below provides some guidance and considerations to take into account when designing a gateway for interworking between T.140 data channels and RTP-based T.140 transport:<list style="symbols"> <t></t> <ul spacing="normal"> <li> For each T.140 datachannelchannel, there is an RTP stream for real-time text <xreftarget="RFC4103"/>.target="RFC4103" format="default"/>. Redundancy is by default declared and used on the RTP stream. There is no redundancy on the T.140 data channel, but the reliable property <xreftarget="I-D.ietf-mmusic-data-channel-sdpneg"/>target="RFC8864"/> is set on it.</t> <t></li> <li> During a normal text flow, T140blocks received from one network are forwarded towards the other network.Keep-aliveKeepalive traffic is handled by lower layers on the T.140 data channel. A gateway might have to extractkeep-aliveskeepalives from incoming RTPstreams,streams andMAY<bcp14>MAY</bcp14> generatekeep-aliveskeepalives on outgoing RTP streams.</t> <t></li> <li> If the gateway detects or suspects loss of data on the RTPstream,stream and the lost data has not been retrieved using a redundancy mechanism, the gatewaySHOULD<bcp14>SHOULD</bcp14> insert the T.140 missing text marker <xreftarget="T140ad1"/>target="T140ad1" format="default"/> in the data sent on the outgoing T.140 data channel.</t> <t></li> <li> If the gateway detects that the T.140 data channel has failed and got torn down, once the data channel has been reestablished the gatewaySHOULD<bcp14>SHOULD</bcp14> insert the T.140 missing text marker <xreftarget="T140ad1"/>target="T140ad1" format="default"/> in the data sent on the outgoing RTP stream if it detects or suspects that data sent by the remote T.140 data channel endpoint was lost.</t> <t></li> <li> If the gateway detects that the T.140 data channel has failed and got torn down, once the data channel has been reestablished the gatewaySHOULD<bcp14>SHOULD</bcp14> insert the T.140 missing text marker <xreftarget="T140ad1"/>target="T140ad1" format="default"/> in the data sent on the outgoing T.140 data channel if it detects or suspects that data sent or to be sent on the T.140 data channel was lost during the failure.</t> <t></li> <li> The gatewayMUST<bcp14>MUST</bcp14> indicate the same text transmission direction (<xreftarget="sec.sdp.dcsa.dir"/>)target="sec.sdp.dcsa.dir" format="default"/>) on the T.140 data channel and the RTP stream.</t> </list> </t> <t></li> </ul> <aside><t> NOTE: In order for the gateway to insert a missing textmarker,marker ortoperform other actions that require that the gatewayhashave access to the T.140 data, the T.140 data cannot be encryptedend-to-endend to end between the T.140 data channel endpoint and the RTP endpoint. At the time of writing this document, no mechanism to provide such end-to-end encryption is defined.</t></t></aside> <aside><t>NOTE: The guidance and considerations above are for two-party connections. At the time of writing this specification, a multi-party solution for RTP-based T.140 transport had not yet been specified. Once such a solution is specified, it might have an impact on the above interworking guidance and considerations.</t></aside> </section> <section anchor="sec.8373"title="Updatenumbered="true" toc="default"> <name>Update to RFC8373">8373</name> <t> This document updatesRFC 8373<xreftarget="RFC8373"/>,target="RFC8373" format="default"/> by defining how the SDPhlang-send'hlang-send' andhlang-recv'hlang-recv' attributes are used for the "application/webrtc-datachannel" media type. </t> <t> SDP offerers and answerersMUST NOT<bcp14>MUST NOT</bcp14> include the attributes directly in them="m=" section associated with the'application/webrtc-datachannel'"application/webrtc-datachannel" media type. Instead, the attributesMUST<bcp14>MUST</bcp14> be associated with individual data channels, using the SDP 'dcsa' attribute. A specification that defines a subprotocol that uses the attributesMUST<bcp14>MUST</bcp14> specify the modality for that subprotocol, or how to retrieve the modality if the subprotocol supports multiple modalities. The subprotocol is indicated using the SDP 'dcmap' attribute. </t> </section> <section anchor="sec.sec"title="Security Considerations">numbered="true" toc="default"> <name>Security Considerations</name> <t> The generic WebRTC security considerations are defined in <xreftarget="I-D.ietf-rtcweb-security-arch"/>target="RFC8826"/> and <xreftarget="I-D.ietf-rtcweb-security"/>.target="RFC8827"/>. </t> <t> The generic security considerations for WebRTC data channels are defined in <xreftarget="I-D.ietf-rtcweb-data-channel"/>.target="RFC8831"/>. As data channels are always encrypted by design, the T.140 data channels will also be encrypted. </t> <t> The generic security considerations for negotiating data channels using theSDP-based external negotiation methodSDP offer/answer mechanism are defined in <xreftarget="I-D.ietf-mmusic-data-channel-sdpneg"/>.target="RFC8864"/>. There are no additional security considerations specific to T.140 datachannel specific security considerations.channels. </t> <t> When performing interworking between T.140 data channels andreal-time text and the RTP based mechanism defined inRTP-based T.140 transport <xreftarget="RFC4103"/>,target="RFC4103" format="default"/>, in order for a gateway to insert a missing textmarker,marker ortoperform other actions that require that the gatewayhashave access to the T.140 data, the T.140 data cannot be encryptedend-to-endend to end between the T.140 data channel endpoint and the RTP endpoint. </t> </section> <section anchor="sec.iana"title="IANA considerations"> <t> [RFC EDITOR NOTE: Please replace all instances of RFCXXXX with the RFC number of this document.] </t>numbered="true" toc="default"> <name>IANA Considerations</name> <section anchor="sec.iana.sub"title="Subprotocolnumbered="true" toc="default"> <name>Subprotocol Identifiert140">"t140"</name> <t>This document addsPer this document, the subprotocol identifier "t140" has been added to the "WebSocket Subprotocol Name Registry" as follows: </t><texttable title=""> <ttcol align='left' width='30%'/> <ttcol align='left'/> <c>Subprotocol Identifier:</c> <c>t140</c> <c>Subprotocol<dl newline="false" spacing="normal"> <dt>Subprotocol Identifier:</dt> <dd>t140</dd> <dt>Subprotocol CommonName:</c> <c>ITU-TName:</dt> <dd>ITU-T T.140 Real-TimeText</c> <c>Subprotocol Definition:</c> <c>RFCXXXX</c> <c>Reference:</c> <c>RFCXXXX</c> </texttable>Text</dd> <dt>Subprotocol Definition:</dt> <dd>RFC 8865</dd> <dt>Reference:</dt> <dd>RFC 8865</dd> </dl> </section> <sectiontitle="SDP fmtp Attribute" anchor="sec.iana.dcsa.fmtp">anchor="sec.iana.dcsa.fmtp" numbered="true" toc="default"> <name>SDP 'fmtp' Attribute</name> <t> This document defines the usage of the SDP 'fmtp' attribute, if this attribute is included in an SDP 'dcsa' attributeandassociated withana T.140 real-time text session over a WebRTC data channel. The usage is defined in <xreftarget="sec.sdp.dcsa.trans"/>.target="sec.sdp.dcsa.trans" format="default"/>. </t> <t> The usage level "dcsa(t140)"ishas been added to the registration of the SDP 'fmtp' attribute in theSession"Session Description Protocol (SDP)ParametersParameters" registry as follows: </t><texttable title=""> <ttcol align='left' width='35%'/> <ttcol align='left' width='65%'/> <c>Contact name:</c> <c>IESG</c> <c>Contact email:</c> <c>iesg@ietf.org</c> <c>Attribute name:</c> <c>fmtp</c> <c>Usage level:</c> <c>dcsa(t140)</c> <c>Purpose:</c> <c> Indicate<dl newline="false" spacing="normal"> <dt>Contact name:</dt> <dd>IESG</dd> <dt>Contact email:</dt> <dd>iesg@ietf.org</dd> <dt>Attribute name:</dt> <dd>fmtp</dd> <dt>Usage level:</dt> <dd>dcsa(t140)</dd> <dt>Purpose:</dt> <dd>Indicate format parameters for a T.140 data channel, such as maximum character transmissionrates. </c> <c>Reference:</c> <c>RFCXXXX</c> </texttable>rates.</dd> <dt>Reference:</dt> <dd>RFC 8865</dd> </dl> </section> <sectiontitle="SDPanchor="sec.iana.dcsa.hlang" numbered="true" toc="default"> <name>SDP LanguageAttributes" anchor="sec.iana.dcsa.hlang">Attributes</name> <t> This document modifies the usage of the SDP 'hlang-send' and 'hlang-recv' attributes, if these attributes are included in SDP 'dcsa' attributes associated withana T.140 data channel. The modified usage is described in <xreftarget="sec.sdp.dcsa.lan"/>.target="sec.sdp.dcsa.lan" format="default"/>. </t> <t> The usage level "dcsa(t140)"ishas been added to the registration of the SDP'hland-send''hlang-send' attribute in theSession"Session Description Protocol (SDP)ParametersParameters" registry as follows: </t><texttable title=""> <ttcol align='left' width='35%'/> <ttcol align='left' width='65%'/> <c>Contact name:</c> <c>IESG</c> <c>Contact email:</c> <c>iesg@ietf.org</c> <c>Attribute name:</c> <c>hlang-send</c> <c>Usage level:</c> <c>dcsa(t140)</c> <c>Purpose:</c> <c> Negotiate<dl newline="false" spacing="normal"> <dt>Contact name:</dt> <dd>IESG</dd> <dt>Contact email:</dt> <dd>iesg@ietf.org</dd> <dt>Attribute name:</dt> <dd>hlang-send</dd> <dt>Usage level:</dt> <dd>dcsa(t140)</dd> <dt>Purpose:</dt> <dd>Negotiate the language to be used on a T.140 datachannel. </c> <c>Reference:</c> <c>RFCXXXX</c> </texttable>channel.</dd> <dt>Reference:</dt> <dd>RFC 8865</dd> </dl> <t> The usage level "dcsa(t140)"ishas been added to the registration of the SDP'hland-recv''hlang-recv' attribute in theSession"Session Description Protocol (SDP)ParametersParameters" registry as follows: </t><texttable title=""> <ttcol align='left' width='35%'/> <ttcol align='left' width='65%'/> <c>Contact name:</c> <c>IESG</c> <c>Contact email:</c> <c>iesg@ietf.org</c> <c>Attribute name:</c> <c>hlang-recv</c> <c>Usage level:</c> <c>dcsa(t140)</c> <c>Purpose:</c> <c> Negotiate<dl newline="false" spacing="normal"> <dt>Contact name:</dt> <dd>IESG</dd> <dt>Contact email:</dt> <dd>iesg@ietf.org</dd> <dt>Attribute name:</dt> <dd>hlang-recv</dd> <dt>Usage level:</dt> <dd>dcsa(t140)</dd> <dt>Purpose:</dt> <dd>Negotiate the language to be used on a T.140 datachannel. </c> <c>Reference:</c> <c>RFCXXXX</c> </texttable>channel.</dd> <dt>Reference:</dt> <dd>RFC 8865</dd> </dl> </section> <sectiontitle="SDPanchor="sec.iana.dcsa.direction" numbered="true" toc="default"> <name>SDP Media DirectionAttributes" anchor="sec.iana.dcsa.direction">Attributes</name> <t> This document modifies the usage of the SDP 'sendonly', 'recvonly','sendrecv''sendrecv', and 'inactive' attributes, if these attributes are included in SDP 'dcsa' attributes associated with a T.140 data channel. The modified usage is described in <xreftarget="sec.sdp.dcsa.dir"/>.target="sec.sdp.dcsa.dir" format="default"/>. </t> <t> The usage level "dcsa(t140)"ishas been added to the registration of the SDP 'sendonly' attribute in theSession"Session Description Protocol (SDP)ParametersParameters" registry as follows: </t><texttable title=""> <ttcol align='left' width='35%'/> <ttcol align='left' width='65%'/> <c>Contact name:</c> <c>IESG</c> <c>Contact email:</c> <c>iesg@ietf.org</c> <c>Attribute name:</c> <c>sendonly</c> <c>Usage level:</c> <c>dcsa(t140)</c> <c>Purpose:</c> <c> Negotiate<dl newline="false" spacing="normal"> <dt>Contact name:</dt> <dd>IESG</dd> <dt>Contact email:</dt> <dd>iesg@ietf.org</dd> <dt>Attribute name:</dt> <dd>sendonly</dd> <dt>Usage level:</dt> <dd>dcsa(t140)</dd> <dt>Purpose:</dt> <dd>Negotiate the direction in which real-time text can be sent on a T.140 datachannel. </c> <c>Reference:</c> <c>RFCXXXX</c> </texttable>channel.</dd> <dt>Reference:</dt> <dd>RFC 8865</dd> </dl> <t> The usage level "dcsa(t140)"ishas been added to the registration of the SDP 'recvonly' attribute in theSession"Session Description Protocol (SDP)ParametersParameters" registry as follows: </t><texttable title=""> <ttcol align='left' width='35%'/> <ttcol align='left' width='65%'/> <c>Contact name:</c> <c>IESG</c> <c>Contact email:</c> <c>iesg@ietf.org</c> <c>Attribute name:</c> <c>recvonly</c> <c>Usage level:</c> <c>dcsa(t140)</c> <c>Purpose:</c> <c> Negotiate<dl newline="false" spacing="normal"> <dt>Contact name:</dt> <dd>IESG</dd> <dt>Contact email:</dt> <dd>iesg@ietf.org</dd> <dt>Attribute name:</dt> <dd>recvonly</dd> <dt>Usage level:</dt> <dd>dcsa(t140)</dd> <dt>Purpose:</dt> <dd>Negotiate the direction in which real-time text can be sent on a T.140 datachannel. </c> <c>Reference:</c> <c>RFCXXXX</c> </texttable>channel.</dd> <dt>Reference:</dt> <dd>RFC 8865</dd> </dl> <t> The usage level "dcsa(t140)"ishas been added to the registration of the SDP 'sendrecv' attribute in theSession"Session Description Protocol (SDP)ParametersParameters" registry as follows: </t><texttable title=""> <ttcol align='left' width='35%'/> <ttcol align='left' width='65%'/> <c>Contact name:</c> <c>IESG</c> <c>Contact email:</c> <c>iesg@ietf.org</c> <c>Attribute name:</c> <c>sendrecv</c> <c>Usage level:</c> <c>dcsa(t140)</c> <c>Purpose:</c> <c> Negotiate<dl newline="false" spacing="normal"> <dt>Contact name:</dt> <dd>IESG</dd> <dt>Contact email:</dt> <dd>iesg@ietf.org</dd> <dt>Attribute name:</dt> <dd>sendrecv</dd> <dt>Usage level:</dt> <dd>dcsa(t140)</dd> <dt>Purpose:</dt> <dd>Negotiate the direction in which real-time text can be sent on a T.140 datachannel. </c> <c>Reference:</c> <c>RFCXXXX</c> </texttable>channel.</dd> <dt>Reference:</dt> <dd>RFC 8865</dd> </dl> <t> The usage level "dcsa(t140)"ishas been added to the registration of the SDP 'inactive' attribute in theSession"Session Description Protocol (SDP)ParametersParameters" registry as follows: </t><texttable title=""> <ttcol align='left' width='35%'/> <ttcol align='left' width='65%'/> <c>Contact name:</c> <c>IESG</c> <c>Contact email:</c> <c>iesg@ietf.org</c> <c>Attribute name:</c> <c>inactive</c> <c>Usage level:</c> <c>dcsa(t140)</c> <c>Purpose:</c> <c> Negotiate<dl newline="false" spacing="normal"> <dt>Contact name:</dt> <dd>IESG</dd> <dt>Contact email:</dt> <dd>iesg@ietf.org</dd> <dt>Attribute name:</dt> <dd>inactive</dd> <dt>Usage level:</dt> <dd>dcsa(t140)</dd> <dt>Purpose:</dt> <dd>Negotiate the direction in which real-time text can be sent on a T.140 datachannel. </c> <c>Reference:</c> <c>RFCXXXX</c> </texttable>channel.</dd> <dt>Reference:</dt> <dd>RFC 8865</dd> </dl> </section> </section><section anchor="sec.acks" title="Acknowledgements" toc="default"> <t> This document is based on an earlier Internet draft edited by Keith Drage, Juergen Stoetzer-Bradler and Albrecht Schwarz. </t> <t> Thomas Belling provided useful comments on the initial (pre-submission) version of the draft. Paul Kyzivat and Bernard Aboba provided comments on the draft. </t> </section></middle> <back><references title="Normative References"> <?rfc include="reference.RFC.2119"?> <?rfc include="reference.RFC.3264"?> <?rfc include="reference.RFC.4103"?> <?rfc include="reference.RFC.4960"?> <?rfc include="reference.RFC.8174"?> <?rfc include="reference.RFC.8373"?> <?rfc include='reference.I-D.ietf-mmusic-rfc4566bis'?> <?rfc include='reference.I-D.ietf-rtcweb-data-channel'?> <?rfc include='reference.I-D.ietf-mmusic-data-channel-sdpneg'?> <?rfc include='reference.I-D.ietf-rtcweb-security-arch'?> <?rfc include='reference.I-D.ietf-rtcweb-security'?><references> <name>References</name> <references> <name>Normative References</name> <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml"/> <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.3264.xml"/> <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.4103.xml"/> <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.4960.xml"/> <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml"/> <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8373.xml"/> <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.4566.xml"/> <!-- draft-ietf-rtcweb-data-channel (RFC 8831) --> <referenceanchor="T140">anchor="RFC8831" target="https://www.rfc-editor.org/info/rfc8831"> <front><title>Recommendation ITU-T T.140 (02/1998),<title>WebRTC Data Channels</title> <author initials="R." surname="Jesup" fullname="Randell Jesup"> <organization/> </author> <author initials="S." surname="Loreto" fullname="Salvatore Loreto"> <organization/> </author> <author initials="M." surname="Tüxen" fullname="Michael Tüxen"> <organization/> </author> <date month='September' year='2020'/> </front> <seriesInfo name="RFC" value="8831"/> <seriesInfo name="DOI" value="10.17487/RFC8831"/> </reference> <!-- draft-ietf-mmusic-data-channel-sdpneg (RFC 8864) --> <reference anchor='RFC8864' target="https://www.rfc-editor.org/info/rfc8864"> <front> <title>Negotiation Data Channels Using the Session Description Protocol (SDP)</title> <author initials='K' surname='Drage' fullname='Keith Drage'> <organization /> </author> <author initials='M' surname='Makaraju' fullname='Maridi Makaraju'> <organization /> </author> <author initials='R' surname='Ejzak' fullname='Richard Ejzak'> <organization /> </author> <author initials='J' surname='Marcon' fullname='Jerome Marcon'> <organization /> </author> <author initials='R' surname='Even' fullname='Roni Even'> <organization /> </author> <date month='September' year='2020' /> </front> <seriesInfo name="RFC" value="8864"/> <seriesInfo name="DOI" value="10.17487/RFC8864"/> </reference> <!--draft-ietf-rtcweb-security (RFC 8826) --> <reference anchor="RFC8826" target="https://www.rfc-editor.org/info/rfc8826"> <front> <title>Security Considerations for WebRTC</title> <author initials='E.' surname='Rescorla' fullname='Eric Rescorla'> <organization/> </author> <date month='September' year='2020'/> </front> <seriesInfo name="RFC" value="8826"/> <seriesInfo name="DOI" value="10.17487/RFC8826"/> </reference> <!--draft-ietf-rtcweb-security-arch (RFC 8827) --> <reference anchor="RFC8827" target="https://www.rfc-editor.org/info/rfc8827"> <front> <title>WebRTC Security Architecture</title> <author initials='E.' surname='Rescorla' fullname='Eric Rescorla'> <organization/> </author> <date month='September' year='2020'/> </front> <seriesInfo name="RFC" value="8827"/> <seriesInfo name="DOI" value="10.17487/RFC8827"/> </reference> <reference anchor="T140" target="https://www.itu.int/rec/T-REC-T.140-199802-I/en"> <front> <title>Protocol for multimedia application text conversation</title><author><organization>ITU-T</organization></author><author> <organization>ITU-T</organization> </author> <date year="1998" month="February"/> </front><format type="HTML" target="https://www.itu.int/rec/T-REC-T.140-199802-I/en"/><refcontent>Recommendation ITU-T T.140</refcontent> </reference> <referenceanchor="T140ad1">anchor="T140ad1" target="https://www.itu.int/rec/T-REC-T.140-200002-I!Add1/en"> <front> <title>Recommendation ITU-T.140 Addendum 1-(02/2000), Protocol for multimedia application text conversation</title><author><organization>ITU-T</organization></author><author> <organization>ITU-T</organization> </author> <date year="2000" month="February"/> </front><format type="HTML" target="https://www.itu.int/rec/T-REC-T.140-200002-I!Add1/en"/></reference> </references><references title="Informative References"> <?rfc include="reference.RFC.3261"?> <?rfc include="reference.RFC.3550"?> <?rfc include='reference.I-D.ietf-rtcweb-data-protocol'?><references> <name>Informative References</name> <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.3261.xml"/> <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.3550.xml"/> <!-- draft-ietf-rtcweb-data-protocol (RFC 8832) --> <reference anchor="RFC8832" target="https://www.rfc-editor.org/info/rfc8832"> <front> <title>WebRTC Data Channel Establishment Protocol</title> <author initials='R.' surname='Jesup' fullname='Randell Jesup'> <organization/> </author> <author initials='S.' surname='Loreto' fullname='Salvatore Loreto'> <organization/> </author> <author initials='M' surname='Tüxen' fullname='Michael Tüxen'> <organization/> </author> <date month='September' year='2020'/> </front> <seriesInfo name="RFC" value="8832"/> <seriesInfo name="DOI" value="10.17487/RFC8832"/> </reference> </references> </references> <section anchor="sec.acks" toc="default" numbered="false"> <name>Acknowledgements</name> <t> This document is based on an earlier Internet-Draft edited by <contact fullname="Keith Drage"/>, <contact fullname="Juergen Stoetzer-Bradler"/>, and <contact fullname="Albrecht Schwarz"/>. </t> <t> <contact fullname="Thomas Belling"/> provided useful comments on the initial (pre&nbhy;submission) version of the current document. <contact fullname="Paul Kyzivat"/> and <contact fullname="Bernard Aboba"/> provided comments on the document. </t> </section> </back> </rfc>