rfc8865xml2.original.xml | rfc8865.xml | |||
---|---|---|---|---|
<?xml version="1.0" encoding="windows-1252"?> | <?xml version='1.0' encoding='utf-8'?> | |||
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" []> | <!DOCTYPE rfc SYSTEM "rfc2629-xhtml.ent"> | |||
<?rfc toc="yes" ?> | ||||
<?rfc compact="yes" ?> | <rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" | |||
<?rfc subcompact="yes" ?> | category="std" docName="draft-ietf-mmusic-t140-usage-data-channel-14" | |||
<?rfc sortrefs="no" ?> | number="8865" obsoletes="" updates="8373" submissionType="IETF" | |||
<?rfc strict="yes" ?> | consensus="true" xml:lang="en" tocInclude="true" sortRefs="true" version="3 | |||
<rfc ipr="trust200902" category="std" docName="draft-ietf-mmusic-t140-usage-data | "> | |||
-channel-14" obsoletes="" updates="8373" submissionType="IETF" xml:lang="en"> | <!-- xml2rfc v2v3 conversion 2.45.2 --> | |||
<front> | <front> | |||
<title abbrev="T.140 Data Channel"> | <title abbrev="T.140 Data Channel"> | |||
T.140 Real-time Text Conversation over WebRTC Data Channels | T.140 Real-Time Text Conversation over WebRTC Data Channels | |||
</title> | </title> | |||
<author initials="C.H." surname="Holmberg" fullname="Christer Holmberg"> | ||||
<seriesInfo name="RFC" value="8865"/> | ||||
<author initials="C." surname="Holmberg" fullname="Christer Holmberg"> | ||||
<organization>Ericsson</organization> | <organization>Ericsson</organization> | |||
<address> | <address> | |||
<postal> | <postal> | |||
<street>Hirsalantie 11</street> | <street>Hirsalantie 11</street> | |||
<code>02420</code> | <code>02420</code> | |||
<city>Jorvas</city> | <city>Jorvas</city> | |||
<country>Finland</country> | <country>Finland</country> | |||
</postal> | </postal> | |||
<email>christer.holmberg@ericsson.com</email> | <email>christer.holmberg@ericsson.com</email> | |||
</address> | </address> | |||
</author> | </author> | |||
<author initials="G.H." surname="Hellstrom" fullname="Gunnar Hellstrom"> | <author initials="G." surname="Hellström" fullname="Gunnar Hellström"> | |||
<organization>Gunnar Hellstrom Accessible Communication</organization> | <organization>Gunnar Hellström Accessible Communication</organization> | |||
<address> | <address> | |||
<postal> | <postal> | |||
<street>Esplanaden 30</street> | <street>Esplanaden 30</street> | |||
<code>136 70</code> | <code>136 70</code> | |||
<city>Vendelso</city> | <city>Vendelsö</city> | |||
<country>Sweden</country> | <country>Sweden</country> | |||
</postal> | </postal> | |||
<email>gunnar.hellstrom@ghaccess.se</email> | <email>gunnar.hellstrom@ghaccess.se</email> | |||
</address> | </address> | |||
</author> | </author> | |||
<date month="September" year="2020"/> | ||||
<date year="2020"/> | ||||
<area>Transport</area> | ||||
<workgroup>MMUSIC Working Group</workgroup> | ||||
<keyword>SDP</keyword> | <keyword>SDP</keyword> | |||
<keyword>ITU-T</keyword> | <keyword>ITU-T</keyword> | |||
<keyword>T.140</keyword> | <keyword>T.140</keyword> | |||
<keyword>Data Channel</keyword> | <keyword>Data Channel</keyword> | |||
<keyword>WebRTC</keyword> | <keyword>WebRTC</keyword> | |||
<keyword>real-time text</keyword> | <keyword>real-time text</keyword> | |||
<abstract> | <abstract> | |||
<t> | <t> | |||
This document specifies how a WebRTC data channel can be used as a | This document specifies how a Web Real-Time Communication (WebRTC) data | |||
transport mechanism for Real-time text using the ITU-T Protocol for mult | channel can be used as a | |||
imedia | transport mechanism for real-time text using the ITU-T Protocol for mult | |||
application text conversation (Recommendation ITU-T T.140), and | imedia | |||
how the SDP offer/answer mechanism can be used to negotiate | application text conversation (Recommendation ITU-T T.140) and | |||
such data channel, referred to as T.140 data channel. This document upda | how the Session Description Protocol (SDP) offer/answer mechanism can be | |||
tes | 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. | RFC 8373 to specify its use with WebRTC data channels. | |||
</t> | </t> | |||
</abstract> | </abstract> | |||
</front> | </front> | |||
<middle> | <middle> | |||
<section title="Introduction" toc="default"> | <section toc="default" numbered="true"> | |||
<name>Introduction</name> | ||||
<t> | <t> | |||
The ITU-T Protocol for multimedia application text conversation (Recomme ndation ITU-T T.140) | The ITU-T Protocol for multimedia application text conversation (Recomme ndation ITU-T T.140) | |||
<xref target="T140"/> defines a protocol for text conversation, also kno | <xref target="T140" format="default"/> defines a protocol for text conve | |||
wn as | rsation, also known as | |||
real-time text. The transport used for IP networks is the "RTP Payload f | real-time text. The transport used for IP networks is the "RTP Payload | |||
or Text Conversation" | for Text Conversation" mechanism <xref target="RFC4103" format="default" | |||
<xref target="RFC4103"/> mechanism, based on the Real-time Transport Pro | />, based on the Real-time Transport Protocol (RTP) <xref target="RFC3550" forma | |||
tocol (RTP) <xref target="RFC3550"/>. | t="default"/>. | |||
</t> | </t> | |||
<t> | <t> | |||
This document specifies how a WebRTC data channel <xref target="I-D.ietf | This document specifies how a Web Real-Time Communication (WebRTC) data | |||
-rtcweb-data-channel"/> | channel <xref target="RFC8831"/> | |||
can be used as a transport mechanism for T.140, and how the SDP offer/an | can be used as a transport mechanism for T.140 and how the Session | |||
swer mechanism | Description Protocol (SDP) offer/answer mechanism | |||
for data channels <xref target="I-D.ietf-mmusic-data-channel-sdpneg"/> c | for data channels <xref target="RFC8864"/> can be used to negotiate such | |||
an be used to negotiate such a data channel. | a data channel. | |||
</t> | </t> | |||
<t> | <t> | |||
In this document, a T.140 data channel refers to a WebRTC data channel f or which | In this document, a T.140 data channel refers to a WebRTC data channel f or which | |||
the instantiated sub-protocol is "t140", and where the channel is negoti | the instantiated subprotocol is "t140" and where the channel is negotiat | |||
ated | ed | |||
using the SDP-based external negotiation method <xref target="I-D.ietf-m | using the SDP offer/answer mechanism <xref | |||
music-data-channel-sdpneg"/>. | target="RFC8864"/>. | |||
</t> | ||||
<t> | ||||
NOTE: The decision to transport real-time text using a WebRTC data chann | ||||
el, | ||||
instead of using RTP based transport <xref target="RFC4103"/>, | ||||
is motivated by use-case "U-C 5: Real-time text chat during an audio | ||||
and/or video call with an individual or with multiple people in a confer | ||||
ence", | ||||
see Section 3.2 of <xref target="I-D.ietf-rtcweb-data-channel"/>. | ||||
</t> | </t> | |||
<!-- The "U-C 5" text is DNE. --> | ||||
<aside><t> | ||||
NOTE: The decision to transport real-time text using a WebRTC data chann | ||||
el | ||||
instead of using RTP-based transport <xref target="RFC4103" format="defa | ||||
ult"/> | ||||
is motivated by use case "U-C 5: Real-time text chat during an audio | ||||
and/or video call with an individual or with multiple people in a confer | ||||
ence"; | ||||
see <xref target="RFC8831" sectionFormat="of" section="3.2"/>. | ||||
</t></aside> | ||||
<t> | <t> | |||
The brief notation "T.140" is used as a name for the text | The brief notation "T.140" is used as a name for the text | |||
conversation protocol according to <xref target="T140"/>. | conversation protocol according to <xref target="T140" format="default"/ >. | |||
</t> | </t> | |||
<t> | <t> | |||
Real-time text is intended to be entered by human users from a keyboard, | Real-time text is intended to be entered by human users via a keyboard, | |||
handwriting recognition, voice recognition or any other input method. | handwriting recognition, voice recognition, or any other input method. | |||
The rate of character entry is usually at a level of a few characters | The rate of character entry is usually at a level of a few characters | |||
per second or less. | per second or less. | |||
</t> | </t> | |||
<t> | <t> | |||
<xref target="sec.webrtc.cons"/> defines the generic data channel proper | <xref target="sec.webrtc.cons" format="default"/> defines the generic da | |||
ties for | ta channel properties for | |||
a T.140 data channel, and <xref target="sec.sdp"/> defines how they are | a T.140 data channel, and <xref target="sec.sdp" format="default"/> defi | |||
conveyed | nes how they are conveyed | |||
in an SDP dcmap attribute. While this document defines how to establish | in an SDP 'dcmap' attribute. While this document defines how to negotiat | |||
a | e a | |||
T.140 data channel using the SDP-based external negotiation method | T.140 data channel using the SDP offer/answer mechanism | |||
<xref target="I-D.ietf-mmusic-data-channel-sdpneg"/>, the generic T.140 | <xref target="RFC8864"/>, the generic T.140 and gateway | |||
and gateway | considerations defined in Sections <xref target="sec.webrtc.cons" f | |||
considerations defined in <xref target="sec.webrtc.cons"/>, <xref target | ormat="counter"/>, <xref target="sec.t140" format="counter"/>, | |||
="sec.t140"/> | and <xref target="sec.gw" format="counter"/> of this document can also b | |||
and <xref target="sec.gw"/> of this document can also be applied when a | e applied when a T.140 data channel | |||
T.140 data channel | ||||
is established using another mechanism (e.g., the mechanism defined in | is established using another mechanism (e.g., the mechanism defined in | |||
<xref target="I-D.ietf-rtcweb-data-protocol"/>). Section 5 of | <xref target="RFC8832"/>). <xref target="RFC8864" sectionFormat="of" sec | |||
<xref target="I-D.ietf-mmusic-data-channel-sdpneg"/> defines the mapping | tion="5"/> | |||
between the | defines the mapping between the | |||
SDP dcmap attribute parameters and the protocol parameters used in | SDP 'dcmap' attribute parameters and the protocol parameters used in | |||
<xref target="I-D.ietf-rtcweb-data-protocol"/>. | <xref target="RFC8832"/>. | |||
</t> | </t> | |||
<t> | <t> | |||
This document updates <xref target="RFC8373"/>, by defining how the SDP | This document updates <xref target="RFC8373" format="default"/> by defin | |||
hlang-send and hlang-recv attributes are used for the "application/webrt | ing how the SDP | |||
c-datachannel" | 'hlang-send' and 'hlang-recv' attributes are used for the "application/w | |||
ebrtc-datachannel" | ||||
media type. | media type. | |||
</t> | </t> | |||
</section> | </section> | |||
<section numbered="true" toc="default"> | ||||
<section title="Conventions"> | <name>Conventions</name> | |||
<t> | <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", | |||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL | "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", | |||
NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", | "<bcp14>SHALL NOT</bcp14>", "<bcp14>SHOULD</bcp14>", | |||
"MAY", and "OPTIONAL" in this document are to be interpreted as | "<bcp14>SHOULD NOT</bcp14>", | |||
described in BCP 14 <xref target="RFC2119"></xref> <xref target="RFC8174 | "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>", | |||
"></xref> | "<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document | |||
when, and only when, they appear in all capitals, as shown here. | are to be interpreted as described in BCP 14 | |||
</t> | <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only | |||
when, they appear in all capitals, as shown here.</t> | ||||
</section> | </section> | |||
<section anchor="sec.webrtc.cons" numbered="true" toc="default"> | ||||
<section anchor="sec.webrtc.cons" title="WebRTC Data Channel Considerations" | <name>WebRTC Data Channel Considerations</name> | |||
> | ||||
<t> | <t> | |||
The following WebRTC data channel property values <xref target="I-D.ietf -rtcweb-data-channel"/> | The following WebRTC data channel property values <xref target="RFC8831" /> | |||
apply to a T.140 data channel: | apply to a T.140 data channel: | |||
</t> | </t> | |||
<texttable title=""> | <table align="center"> | |||
<ttcol align='left' width='30%'/> | <tbody> | |||
<ttcol align='left'/> | <tr> | |||
<td align="left">Subprotocol Identifier</td> | ||||
<c>Subprotocol Identifier</c> | <td align="left">t140</td> | |||
<c>t140</c> | </tr> | |||
<tr> | ||||
<c>Transmission reliability</c> | <td align="left">Transmission reliability</td> | |||
<c>reliable</c> | <td align="left">reliable</td> | |||
</tr> | ||||
<c>Transmission order</c> | <tr> | |||
<c>in-order</c> | <td align="left">Transmission order</td> | |||
<td align="left">in-order</td> | ||||
<c>Label</c> | </tr> | |||
<c>See <xref target="sec.sdp.dcmap"/> and <xref target="sec.gw"/></c> | <tr> | |||
</texttable> | <td align="left">Label</td> | |||
<t> | <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 re al-time text without | NOTE: T.140 requires the transport channel to provide transmission of re al-time text without | |||
duplication and in original order. Therefore, T.140 does not specify rel iable and ordered | duplication and in original order. Therefore, T.140 does not specify rel iable and ordered | |||
transmission of T.140 data on the application layer. Instead, when RTP b ased transport is used, | transmission of T.140 data on the application layer. Instead, when RTP-b ased transport is used, | |||
the RTP sequence number is used to detect packet loss and out-of-order p ackets, and a redundancy | the RTP sequence number is used to detect packet loss and out-of-order p ackets, and a redundancy | |||
mechanism is used to achieve reliable delivery of T.140 data. By using | mechanism is used to achieve reliable delivery of T.140 data. By using | |||
the WebRTC data channel reliable and in-order transmission features <xre f target="I-D.ietf-rtcweb-data-channel"/> | the WebRTC data channel's reliable and in-order transmission features <x ref target="RFC8831"/> | |||
for the T.140 data channel, there is no need for a redundancy mechanism or a mechanism to detect | 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 latenc y characteristics of the | data loss and out-of-order delivery at the application level. The latenc y characteristics of the | |||
T.140 data channel is also regarded to be sufficient to meet the applica | T.140 data channel are also regarded as sufficient to meet the applicati | |||
tion requirements of T.140. | on requirements of T.140. | |||
</t> | </t></aside> | |||
</section> | </section> | |||
<section anchor="sec.sdp" numbered="true" toc="default"> | ||||
<section anchor="sec.sdp" title="SDP Considerations"> | <name>SDP Considerations</name> | |||
<t> | <t> | |||
The generic SDP considerations, including the SDP Offer/Answer procedure | The generic SDP considerations, including the SDP offer/answer procedure | |||
s <xref target="RFC3264"/>, for | s <xref target="RFC3264" format="default"/>, for | |||
negotiating a WebRTC data channel are defined in <xref target="I-D.ietf- | negotiating a WebRTC data channel are defined in <xref target="RFC8864"/ | |||
mmusic-data-channel-sdpneg"/>. | >. | |||
This section, and its subsections, define the SDP considerations that ar e specific to a T.140 data channel, | This section, and its subsections, define the SDP considerations that ar e specific to a T.140 data channel, | |||
identified by an SDP 'dcmap' attribute <xref target="I-D.ietf-mmusic-dat | identified by the 'subprotocol' attribute parameter, with a "t140" | |||
a-channel-sdpneg"/> with a "t140" | parameter value, in the 'dcmap' attribute. | |||
attribute parameter value. | ||||
</t> | </t> | |||
<section anchor="sec.sdp.dcmap" title="Use of dcmap Attribute"> | <section anchor="sec.sdp.dcmap" numbered="true" toc="default"> | |||
<name>Use of the 'dcmap' Attribute</name> | ||||
<t> | <t> | |||
An offerer and answerer MUST, in each offer and answer, include an SD | An offerer and answerer <bcp14>MUST</bcp14>, in each offer and answer | |||
P 'dcmap' | , include an SDP 'dcmap' | |||
attribute <xref target="I-D.ietf-mmusic-data-channel-sdpneg"/> in the | attribute <xref target="RFC8864"/> in the SDP media | |||
SDP media | description ("m=" section) <xref target="RFC4566"/> describing | |||
description (m= section) <xref target="I-D.ietf-mmusic-rfc4566bis"/> | the Stream Control Transmission Protocol (SCTP) association | |||
describing the SCTP association | <xref target="RFC4960" format="default"/> used to realize the T.140 | |||
<xref target="RFC4960"/> used to realize the T.140 data channel. | data channel. | |||
</t> | </t> | |||
<t> | <t> | |||
The offerer and answerer MUST include the subprotocol attribute parame | The offerer and answerer <bcp14>MUST</bcp14> include the 'subprotocol' | |||
ter, | attribute parameter, | |||
with a "t140" parameter value, in the 'dcmap' attribute value. | with a "t140" parameter value, in the 'dcmap' attribute. | |||
</t> | </t> | |||
<t> | <t> | |||
The offerer and answerer MAY include the priority attribute parameter | The offerer and answerer <bcp14>MAY</bcp14> include the 'priority' att | |||
and the label attribute parameter in the 'dcmap' attribute value, as | ribute parameter | |||
specified in <xref target="I-D.ietf-mmusic-data-channel-sdpneg"/>. | and the 'label' attribute parameter in the 'dcmap' attribute value, as | |||
specified in <xref target="RFC8864"/>. | ||||
</t> | </t> | |||
<t> | <aside><t> | |||
NOTE: As specified in <xref target="I-D.ietf-rtcweb-data-channel"/>, | NOTE: As specified in <xref target="RFC8831"/>, | |||
when a data channel is negotiated using the mechanism defined in <xref | when a data channel is negotiated using the mechanism defined in <xref | |||
target="I-D.ietf-rtcweb-data-protocol"/>, | target="RFC8832"/>, | |||
the label attribute parameter value has to be the same in both directi | the 'label' attribute parameter value has to be the same in both direc | |||
ons. That rule also | tions. That rule also | |||
applies to data channels negotiated using the mechanism defined in thi s document. | applies to data channels negotiated using the mechanism defined in thi s document. | |||
</t> | </t></aside> | |||
<t> | <t> | |||
The offerer and answerer MUST NOT include the max-retr or the max-time | The offerer and answerer <bcp14>MUST NOT</bcp14> include the 'max-retr | |||
attribute parameters in the 'dcmap' attribute. If either of those | ' or 'max-time' | |||
attribute parameter in the 'dcmap' attribute. If either of those | ||||
attribute parameters is received in an offer, the answerer | attribute parameters is received in an offer, the answerer | |||
MUST reject the offer. If either of those attribute parameters is rece | <bcp14>MUST</bcp14> reject the offer. If either of those attribute par | |||
ived | ameters is received | |||
in an answer the offerer MUST NOT accept the answer. Instead, the answ | in an answer, the offerer <bcp14>MUST NOT</bcp14> accept the answer. I | |||
erer | nstead, the answerer | |||
MUST take appropriate actions, e.g., by sending a new offer without a | <bcp14>MUST</bcp14> take appropriate actions, e.g., by sending a new o | |||
T.140 data channel, or by terminating the session. | ffer without a | |||
T.140 data channel or by terminating the session. | ||||
</t> | </t> | |||
<t> | <t> | |||
If the ordered attribute parameter is included in the 'dcmap' attribut e, it MUST | If the 'ordered' attribute parameter is included in the 'dcmap' attrib ute, it <bcp14>MUST</bcp14> | |||
be assigned the value 'true'. | be assigned the value 'true'. | |||
</t> | </t> | |||
<t> | <t> | |||
Below is an example of the 'dcmap' attribute for a T.140 | Below is an example of the 'dcmap' attribute for a T.140 | |||
data channel with stream id=3 and without any label: | data channel with stream id=3 and without any label: | |||
</t> | </t> | |||
<t> | <t> | |||
a=dcmap:3 subprotocol="t140" | a=dcmap:3 subprotocol="t140" | |||
</t> | </t> | |||
</section> | </section> | |||
<section anchor="sec.sdp.dcsa" title="Use of dcsa Attribute"> | <section anchor="sec.sdp.dcsa" numbered="true" toc="default"> | |||
<name>Use of the 'dcsa' Attribute</name> | ||||
<t> | <t> | |||
An offerer and answerer can, in each offer and answer, include one or more | An offerer and answerer can, in each offer and answer, include one or more | |||
SDP 'dcsa' attributes <xref target="I-D.ietf-mmusic-data-channel-sdpn | SDP 'dcsa' attributes <xref target="RFC8864"/> | |||
eg"/> | in the "m=" section describing the SCTP association used | |||
in the m= section describing the SCTP association used | ||||
to realize the T.140 data channel. | to realize the T.140 data channel. | |||
</t> | </t> | |||
<t> | <t> | |||
If an offerer or answerer receives a 'dcsa' attribute that contains an | If an offerer or answerer receives a 'dcsa' attribute that contains an | |||
SDP attribute which usage has not been defined for a T.140 data channe l, | SDP attribute whose usage has not been defined for a T.140 data channe l, | |||
the offerer or answerer should ignore the 'dcsa' attribute, following | the offerer or answerer should ignore the 'dcsa' attribute, following | |||
the rules in Section 6.7 of <xref target="I-D.ietf-mmusic-data-channel -sdpneg"/>. | the rules in <xref target="RFC8864" sectionFormat="of" section="6.7"/> . | |||
</t> | </t> | |||
<section anchor="sec.sdp.dcsa.trans" title="Maximum Character Transmissi | <section anchor="sec.sdp.dcsa.trans" numbered="true" toc="default"> | |||
on Rate"> | <name>Maximum Character Transmission Rate</name> | |||
<t> | <t> | |||
A 'dcsa' attribute can contain the SDP 'fmtp' attribute used to indi | A 'dcsa' attribute can contain the SDP 'fmtp' attribute, which is us | |||
cate | ed to indicate | |||
a maximum character transmission rate <xref target="RFC4103"/>. The | a maximum character transmission rate <xref target="RFC4103" | |||
'cps' | format="default"/>. The 'cps' | |||
attribute parameter is used to indicate the maximum character transm ission rate | attribute parameter is used to indicate the maximum character transm ission rate | |||
that the endpoint that includes the attribute is able to receive, an d the value | that the endpoint that includes the attribute is able to receive, an d the value | |||
is used as a mean value in characters per second over any 10-second interval. | is used as a mean value in characters per second over any 10-second interval. | |||
</t> | </t> | |||
<t> | <t> | |||
If the 'fmtp' attribute is included, the 'format' attribute paramete | If the 'fmtp' attribute is included, the 'format' attribute | |||
r MUST be set to "t140". | parameter value <bcp14>MUST</bcp14> be set to 't140'. | |||
</t> | </t> | |||
<t> | <t> | |||
If no 'fmtp' attribute with a 'cps' attribute parameter is included, the default value of | If no 'fmtp' attribute with a 'cps' attribute parameter is included, the default value of | |||
30 applies <xref target="RFC4103"/>. | 30 applies <xref target="RFC4103" format="default"/>. | |||
</t> | </t> | |||
<t> | <t> | |||
The offerer and answerer MAY modify the 'cps' attribute parameter va lue in subsequent | The offerer and answerer <bcp14>MAY</bcp14> modify the 'cps' attribu te parameter value in subsequent | |||
offers and answers. | offers and answers. | |||
</t> | </t> | |||
<t> | <t> | |||
This document does not define any other usage of the 'fmtp' attribut e for a T.140 channel. | This document does not define any other usage of the 'fmtp' attribut e for a T.140 channel. | |||
If an offerer or answerer receives a 'dcsa' attribute that contains an 'fmtp' attribute that | If an offerer or answerer receives a 'dcsa' attribute that contains an 'fmtp' attribute that | |||
is not according to the procedure above, the offerer or answerer MUS T ignore the 'dcsa' | is not set according to the procedure above, the offerer or answerer <bcp14>MUST</bcp14> ignore the 'dcsa' | |||
attribute. | attribute. | |||
</t> | </t> | |||
<t> | <aside><t> | |||
NOTE: The 'cps' attribute parameter is especially useful when a T.14 0 data channel | NOTE: The 'cps' attribute parameter is especially useful when a T.14 0 data channel | |||
endpoint is acting as a gateway (<xref target="sec.gw"/>) and is int | endpoint is acting as a gateway (<xref target="sec.gw" format="defau | |||
erworking with | lt"/>) and is interworking with | |||
a T.140 transport mechanism that have restrictions on how many chara | a T.140 transport mechanism that has restrictions on how many charac | |||
cters can be sent | ters can be sent | |||
per second. | per second. | |||
</t> | </t></aside> | |||
<t> | <t> | |||
If an endpoint receives text at a higher rate than it can handle, e. g., because the | 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, it | sending endpoint does not support the 'cps' attribute parameter, | |||
SHOULD either | it <bcp14>SHOULD</bcp14> either (1) indicate to the sending end | |||
indicate to the sending endpoint that it is not willing to receive m | point that it is not willing to receive more text, using | |||
ore text, using | the direction attributes (<xref target="sec.sdp.dcsa.dir" format="de | |||
the direction attributes (<xref target="sec.sdp.dcsa.dir"/>), or use | fault"/>) or (2) use a flow-control | |||
a flow control | mechanism to reduce the rate. However, in certain applications, e.g. | |||
mechanism to reduce the rate. However, in certain applications, e.g. | , emergency services, | |||
emergency services, | ||||
it is important to regain human interaction as soon as possible, and it might | it is important to regain human interaction as soon as possible, and it might | |||
therefore be more appropriate to simply discard the received overflo w, insert a | therefore be more appropriate to simply discard the received overflo w, insert a | |||
mark for loss <xref target="T140ad1"/>, and continue to process the received text as | mark for loss <xref target="T140ad1" format="default"/>, and continu e to process the received text as | |||
soon as possible. | soon as possible. | |||
</t> | </t> | |||
<t> | <aside><t> | |||
NOTE: At the time of writing this specification, the standardized AP I for WebRTC data channels | NOTE: At the time of writing this specification, the standardized AP I for WebRTC data channels | |||
does not support flow control. Should such be available at some poin t, a receiving endpoint | does not support flow control. Should such support be available at s ome point, a receiving endpoint | |||
might use it in order to slow down the rate of text received from th e sending endpoint. | might use it in order to slow down the rate of text received from th e sending endpoint. | |||
</t> | </t></aside> | |||
</section> | </section> | |||
<section anchor="sec.sdp.dcsa.lan" title="Real-time Text Conversation La | <section anchor="sec.sdp.dcsa.lan" numbered="true" toc="default"> | |||
nguages"> | <name>Real-Time Text Conversation Languages</name> | |||
<t> | <t> | |||
'dcsa' attributes can contain the SDP 'hlang-send' and 'hlang-recv' attributes | 'dcsa' attributes can contain the SDP 'hlang-send' and 'hlang-recv' attributes | |||
<xref target="RFC8373"/> to negotiate the language to be used for th e real-time | <xref target="RFC8373" format="default"/> to negotiate the language to be used for the real-time | |||
text conversation. | text conversation. | |||
</t> | </t> | |||
<t> | <t> | |||
For a T.140 data channel, the modality is "written" <xref target="RF | For a T.140 data channel, the modality is "written" <xref target="RF | |||
C8373"/>. | C8373" format="default"/>. | |||
</t> | </t> | |||
</section> | </section> | |||
<section anchor="sec.sdp.dcsa.dir" title="Real-time Text Direction"> | <section anchor="sec.sdp.dcsa.dir" numbered="true" toc="default"> | |||
<name>Real-Time Text Direction</name> | ||||
<t> | <t> | |||
'dcsa' attributes can contain the SDP 'sendonly', 'recvonly', 'sendr | 'dcsa' attributes can contain the SDP 'sendonly', 'recvonly', 'sendr | |||
ecv' and | ecv', and | |||
'inactive' attributes <xref target="I-D.ietf-mmusic-rfc4566bis"/> to | 'inactive' attributes <xref target="RFC4566"/> to negotiate the dire | |||
negotiate the direction in | ction in | |||
which text can be transmitted in a real-time text conversation. | which text can be transmitted in a real-time text conversation. | |||
</t> | </t> | |||
<t> | <aside><t> | |||
NOTE: A WebRTC data channel is always bi-directional. The usage of t | NOTE: A WebRTC data channel is always bidirectional. The usage of th | |||
he 'dcsa' | e 'dcsa' | |||
attribute only affects the direction in which implementations are al lowed to | attribute only affects the direction in which implementations are al lowed to | |||
transmit text on a T.140 data channel. | transmit text on a T.140 data channel. | |||
</t> | </t></aside> | |||
<t> | <t> | |||
The offer/answer rules for the direction attributes are based on the rules | The offer/answer rules for the direction attributes are based on the rules | |||
for unicast streams defined in <xref target="RFC3264"/>, as describe d below. | for unicast streams defined in <xref target="RFC3264" format="defaul t"/>, as described below. | |||
Note that the rules only apply to the direction attributes. | Note that the rules only apply to the direction attributes. | |||
</t> | </t> | |||
<t> | <t> | |||
Session-level direction attributes <xref target="I-D.ietf-mmusic-rfc 4566bis"/> have no impact | Session-level direction attributes <xref target="RFC4566"/> have no impact | |||
on a T.140 data channel. | on a T.140 data channel. | |||
</t> | </t> | |||
<section anchor="sec.sdp.dcsa.dir.neg.off" title="Generating an Offer" | <section anchor="sec.sdp.dcsa.dir.neg.off" numbered="true" toc="defaul | |||
> | t"> | |||
<t> | <name>Generating an Offer</name> | |||
<t> | ||||
If the offerer wishes to both send and receive text on a T.140 d ata channel, it | If the offerer wishes to both send and receive text on a T.140 d ata channel, it | |||
SHOULD mark the data channel as sendrecv with a 'sendrecv' attri bute inside a | <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 da ta channel, an | 'dcsa' attribute. If the offerer does not explicitly mark the da ta channel, an | |||
implicit 'sendrecv' attribute inside a 'dcsa' attribute is appli ed by default. | implicit 'sendrecv' attribute inside a 'dcsa' attribute is appli ed by default. | |||
</t> | </t> | |||
<t> | <t> | |||
If the offerer wishes to only send text on a T.140 data channel, it | If the offerer wishes to only send text on a T.140 data channel, it | |||
MUST mark the data channel as sendonly with a 'sendonly' attribu te inside a | <bcp14>MUST</bcp14> mark the data channel as sendonly with a 'se ndonly' attribute inside a | |||
'dcsa' attribute. | 'dcsa' attribute. | |||
</t> | </t> | |||
<t> | <t> | |||
If the offerer wishes to only receive text on a T.140 data chann el, it | If the offerer wishes to only receive text on a T.140 data chann el, it | |||
MUST mark the data channel as recvonly with a 'recvonly' attribu te inside a | <bcp14>MUST</bcp14> mark the data channel as recvonly with a 're cvonly' attribute inside a | |||
'dcsa' attribute. | 'dcsa' attribute. | |||
</t> | </t> | |||
<t> | <t> | |||
If the offerer wishes to neither send nor receive text on a T.14 0 data channel, it | If the offerer wishes to neither send nor receive text on a T.14 0 data channel, it | |||
MUST mark the data channel as inactive with an 'inactive' attrib ute inside a | <bcp14>MUST</bcp14> mark the data channel as inactive with an 'i nactive' attribute inside a | |||
'dcsa' attribute. | 'dcsa' attribute. | |||
</t> | </t> | |||
<t> | <t> | |||
If the offerer has marked a data channel as sendrecv (or if the offerer did not | If the offerer has marked a data channel as sendrecv (or if the offerer did not | |||
explicitly mark the data channel) or recvonly, it MUST be prepar ed to receive | explicitly mark the data channel) or recvonly, it <bcp14>MUST</b cp14> be prepared to receive | |||
T.140 data as soon as the state of the T.140 data channel allows it. | T.140 data as soon as the state of the T.140 data channel allows it. | |||
</t> | </t> | |||
</section> | </section> | |||
<section anchor="sec.sdp.dcsa.dir.neg.ans" title="Generating an Answer | <section anchor="sec.sdp.dcsa.dir.neg.ans" numbered="true" toc="defaul | |||
"> | t"> | |||
<t> | <name>Generating an Answer</name> | |||
When the answerer accepts an offer, and marks the direction of t | <t> | |||
he text | When the answerer accepts an offer and marks the direction of th | |||
e text | ||||
in the corresponding answer, the direction is based on the marki ng (or the lack | in the corresponding answer, the direction is based on the marki ng (or the lack | |||
of explicit marking) in the offer. | of explicit marking) in the offer. | |||
</t> | </t> | |||
<t> | <t> | |||
If the offerer explicitly marked the data channel as sendrecv, o | If the offerer either explicitly marked the data channel as send | |||
r if the offerer did not mark | recv or did not mark | |||
the data channel, the answerer SHOULD mark the data channel as s | the data channel, the answerer <bcp14>SHOULD</bcp14> mark the da | |||
endrecv, sendonly, recvonly or inactive | ta channel as sendrecv, sendonly, recvonly, or inactive | |||
with a 'sendrecv', 'sendonly', 'recvonly' or 'inactive' attribut | with a 'sendrecv', 'sendonly', 'recvonly', or 'inactive' attribu | |||
e respectively | te, respectively, | |||
inside a 'dcsa' attribute. If the answerer does not explicitly m ark the data channel, an | inside a 'dcsa' attribute. If the answerer does not explicitly m ark the data channel, an | |||
implicit 'sendrecv' attribute inside a 'dcsa' attribute is appli ed by default. | implicit 'sendrecv' attribute inside a 'dcsa' attribute is appli ed by default. | |||
</t> | </t> | |||
<t> | <t> | |||
If the offerer marked the data channel as sendonly, the answerer | If the offerer marked the data channel as sendonly, the answerer | |||
MUST | <bcp14>MUST</bcp14> | |||
mark the data channel as recvonly or inactive with a 'recvonly' or | mark the data channel as recvonly or inactive with a 'recvonly' or | |||
'inactive' attribute respectively inside a 'dcsa' attribute. | 'inactive' attribute, respectively, inside a 'dcsa' attribute. | |||
</t> | </t> | |||
<t> | <t> | |||
If the offerer marked the data channel as recvonly, the answerer | If the offerer marked the data channel as recvonly, the answerer | |||
MUST | <bcp14>MUST</bcp14> | |||
mark the data channel as sendonly or inactive with a 'sendonly' or | mark the data channel as sendonly or inactive with a 'sendonly' or | |||
'inactive' attribute respectively inside a 'dcsa' attribute. | 'inactive' attribute, respectively, inside a 'dcsa' attribute. | |||
</t> | </t> | |||
<t> | <t> | |||
If the offerer marked the data channel as inactive, the answerer | If the offerer marked the data channel as inactive, the answerer | |||
MUST | <bcp14>MUST</bcp14> | |||
mark the data channel as inactive with an 'inactive' attribute i nside a | mark the data channel as inactive with an 'inactive' attribute i nside a | |||
'dcsa' attribute. | 'dcsa' attribute. | |||
</t> | </t> | |||
<t> | <t> | |||
If the answerer has marked a data channel as sendrecv or recvonl | If the answerer has marked a data channel as sendrecv or recvonl | |||
y, it MUST be | y, it <bcp14>MUST</bcp14> be | |||
prepared to receive data as soon as the state of the T.140 data channel allows | prepared to receive data as soon as the state of the T.140 data channel allows | |||
transmission of data. | transmission of data. | |||
</t> | </t> | |||
</section> | </section> | |||
<section anchor="sec.sdp.dcsa.dir.neg.rec" title="Offerer Receiving an | <section anchor="sec.sdp.dcsa.dir.neg.rec" numbered="true" toc="defaul | |||
Answer"> | t"> | |||
<t> | <name>Offerer Receiving an Answer</name> | |||
<t> | ||||
When the offerer receives an answer to the offer and the answere r has marked a | When the offerer receives an answer to the offer and the answere r has marked a | |||
data channel as sendrecv (or the answerer did not mark the data channel) | 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 d ata as soon as | or recvonly in the answer, the offerer can start sending T.140 d ata as soon as | |||
the state of the T.140 data channel allows it. If the answerer h as marked the | the state of the T.140 data channel allows it. If the answerer h as marked the | |||
data channel as inactive or sendonly, the offerer MUST NOT send | data channel as inactive or sendonly, the offerer <bcp14>MUST NO | |||
any T.140 data. | T</bcp14> send any T.140 data. | |||
</t> | </t> | |||
<t> | <t> | |||
If the answerer has not marked the direction of a T.140 data cha nnel in accordance | If the answerer has not marked the direction of a T.140 data cha nnel in accordance | |||
with the procedures above, it is RECOMMENDED that the offerer do | with the procedures above, it is <bcp14>RECOMMENDED</bcp14> | |||
es not process that | that the offerer not process that scenario | |||
as an error situation, but rather assume that the answerer might | as an error situation but rather assume that the answerer might | |||
both send and | both send and | |||
receive T.140 data on the data channel. | receive T.140 data on the data channel. | |||
</t> | </t> | |||
</section> | </section> | |||
<section anchor="sec.sdp.dcsa.dir.mod" title="Modify Text Direction"> | <section anchor="sec.sdp.dcsa.dir.mod" numbered="true" toc="default"> | |||
<name>Modifying the Text Direction</name> | ||||
<t> | <t> | |||
If an endpoint wishes to modify a previously negotiated text direc tion | If an endpoint wishes to modify a previously negotiated text direc tion | |||
in an ongoing session, it MUST initiate an offer that indicates th | in an ongoing session, it <bcp14>MUST</bcp14> initiate an offer th | |||
e new | at indicates the new | |||
direction, following the rules in <xref target="sec.sdp.dcsa.dir.n | direction, following the rules in <xref target="sec.sdp.dcsa.dir.n | |||
eg.off"/>. | eg.off" format="default"/>. | |||
If the answerer accepts the offer it follows the procedures in | If the answerer accepts the offer, it follows the procedures in | |||
<xref target="sec.sdp.dcsa.dir.neg.ans"/>. | <xref target="sec.sdp.dcsa.dir.neg.ans" format="default"/>. | |||
</t> | </t> | |||
</section> | </section> | |||
</section> | </section> | |||
</section> | </section> | |||
<section anchor="sec.sdp.ex" title="Examples"> | <section anchor="sec.sdp.ex" numbered="true" toc="default"> | |||
<t> | <name>Examples</name> | |||
Below is an example of an m= section of an offer | <t> | |||
Below is an example of an "m=" section of an offer | ||||
for a T.140 data channel offering real-time text | for a T.140 data channel offering real-time text | |||
conversation in Spanish and Esperanto, and an m= section | conversation in Spanish and Esperanto, and an "m=" section | |||
in the associated answer accepting Esperanto. The maximum | in the associated answer accepting Esperanto. The maximum | |||
character transmission rate is set to 20. As the offerer and | character transmission rate is set to 20. As the offerer and | |||
answerer have not explicitly indicated the real-time text | answerer have not explicitly indicated the real-time text | |||
direction, the default direction "sendrecv" applies. | direction, the default direction "sendrecv" applies. | |||
</t> | </t> | |||
<figure> | <sourcecode name="" type="sdp"><![CDATA[Offer: | |||
<preamble></preamble> | ||||
<artwork><![CDATA[ | ||||
Offer: | ||||
m=application 911 UDP/DTLS/SCTP webrtc-datachannel | m=application 911 UDP/DTLS/SCTP webrtc-datachannel | |||
c=IN IP6 2001:db8::3 | c=IN IP6 2001:db8::3 | |||
a=max-message-size:1000 | a=max-message-size:1000 | |||
a=sctp-port 5000 | a=sctp-port 5000 | |||
a=setup:actpass | a=setup:actpass | |||
a=dcmap:2 label="ACME customer service";subprotocol="t140" | a=dcmap:2 label="ACME customer service";subprotocol="t140" | |||
a=dcsa:2 fmtp:t140 cps=20 | a=dcsa:2 fmtp:t140 cps=20 | |||
a=dcsa:2 hlang-send:es eo | a=dcsa:2 hlang-send:es eo | |||
a=dcsa:2 hlang-recv:es eo | a=dcsa:2 hlang-recv:es eo | |||
Answer: | Answer: | |||
m=application 2004 UDP/DTLS/SCTP webrtc-datachannel | m=application 2004 UDP/DTLS/SCTP webrtc-datachannel | |||
c=IN IP6 2001:db8::1 | c=IN IP6 2001:db8::1 | |||
a=max-message-size:1000 | a=max-message-size:1000 | |||
a=sctp-port 6000 | a=sctp-port 6000 | |||
a=setup:passive | a=setup:passive | |||
a=dcmap:2 label="ACME customer service";subprotocol="t140" | a=dcmap:2 label="ACME customer service";subprotocol="t140" | |||
a=dcsa:2 fmtp:t140 cps=20 | a=dcsa:2 fmtp:t140 cps=20 | |||
a=dcsa:2 hlang-send:eo | a=dcsa:2 hlang-send:eo | |||
a=dcsa:2 hlang-recv:eo | a=dcsa:2 hlang-recv:eo]]></sourcecode> | |||
<t> | ||||
]]></artwork> | Below is an example of an "m=" section of an offer | |||
</figure> | ||||
<t> | ||||
Below is an example of an m= section of an offer | ||||
for a T.140 data channel where the offerer wishes to | for a T.140 data channel where the offerer wishes to | |||
only receive real-time text, and an m= section | only receive real-time text, and an "m=" section | |||
in the associated answer indicating that the answerer | in the associated answer indicating that the answerer | |||
will only send real-time text. No maximum | will only send real-time text. No maximum | |||
character transmission rate is indicated. No preference for | character transmission rate is indicated. No preference for | |||
the language to be used for the real-time text conversation | the language to be used for the real-time text conversation | |||
is indicated. | is indicated. | |||
</t> | </t> | |||
<figure> | <sourcecode name="" type="sdp"><![CDATA[Offer: | |||
<preamble></preamble> | ||||
<artwork><![CDATA[ | ||||
Offer: | ||||
m=application 1400 UDP/DTLS/SCTP webrtc-datachannel | m=application 1400 UDP/DTLS/SCTP webrtc-datachannel | |||
c=IN IP6 2001:db8::3 | c=IN IP6 2001:db8::3 | |||
a=max-message-size:1000 | a=max-message-size:1000 | |||
a=sctp-port 5000 | a=sctp-port 5000 | |||
a=setup:actpass | a=setup:actpass | |||
a=dcmap:2 label="ACME customer service";subprotocol="t140" | a=dcmap:2 label="ACME customer service";subprotocol="t140" | |||
a=dcsa:2 recvonly | a=dcsa:2 recvonly | |||
Answer: | Answer: | |||
m=application 2400 UDP/DTLS/SCTP webrtc-datachannel | m=application 2400 UDP/DTLS/SCTP webrtc-datachannel | |||
c=IN IP6 2001:db8::1 | c=IN IP6 2001:db8::1 | |||
a=max-message-size:1000 | a=max-message-size:1000 | |||
a=sctp-port 6000 | a=sctp-port 6000 | |||
a=setup:passive | a=setup:passive | |||
a=dcmap:2 label="ACME customer service";subprotocol="t140" | a=dcmap:2 label="ACME customer service";subprotocol="t140" | |||
a=dcsa:2 sendonly | a=dcsa:2 sendonly]]></sourcecode> | |||
]]></artwork> | ||||
</figure> | ||||
</section> | </section> | |||
</section> | </section> | |||
<section anchor="sec.t140" numbered="true" toc="default"> | ||||
<section anchor="sec.t140" title="T.140 Considerations"> | <name>T.140 Considerations</name> | |||
<section anchor="sec.t140.slf" title="Session Layer Functions"> | <section anchor="sec.t140.slf" numbered="true" toc="default"> | |||
<t> | <name>Session-Layer Functions</name> | |||
<t> | ||||
Section 6.1 of <xref target="T140"/> describes the generic T.140 ses sion | Section 6.1 of <xref target="T140"/> describes the generic T.140 ses sion | |||
control functions at a high-level in a signalling protocol | control functions at a high level, in a manner that is independent | |||
independent manner. The list below describes how the functions | of the signaling protocol. The list below describes how the function | |||
s | ||||
are realized when using a T.140 data channel. | are realized when using a T.140 data channel. | |||
<list style="symbols"> | </t> | |||
<t>Prepare session: An endpoint can indicate its support of T.140 | <dl newline="false" spacing="normal"> | |||
data channels | <dt>Prepare session:</dt> | |||
using signalling specific means (e.g., using SIP OPTIONS <xref t | <dd>An endpoint can indicate its support of T.140 data channels | |||
arget="RFC3261"/>), or by indicating the support in an | using signaling-specific means (e.g., using SIP OPTIONS <xref target="R | |||
offer or answer (<xref target="sec.sdp"/>)</t> | FC3261" format="default"/>) or by indicating the support in an | |||
<t>Initiate session: An offer used to request the establishment of | offer or answer (<xref target="sec.sdp" format="default"/>).</dd> | |||
a | <dt>Initiate session:</dt> | |||
T.140 data channel (<xref target="sec.sdp"/>)</t> | <dd>An offer is used to request the establishment of a | |||
<t>Accept session: An answer used to accept a request to establish | T.140 data channel (<xref target="sec.sdp" format="default"/>).</dd> | |||
a | <dt>Accept session:</dt> | |||
T.140 data channel (<xref target="sec.sdp"/>)</t> | <dd>An answer is used to accept a request to establish a | |||
<t>Deny session: An answer used to reject a request to establish | T.140 data channel (<xref target="sec.sdp" format="default"/>).</dd> | |||
a T.140 data channel, using the generic procedures for rejecting | <dt>Deny session:</dt> | |||
a data channel <xref target="I-D.ietf-mmusic-data-channel-sdpneg | <dd>An answer is used to reject a request to establish | |||
"/></t> | a T.140 data channel, using the generic procedures for rejecting | |||
<t>Disconnect session: An offer or answer used to disable a previo | a data channel <xref target="RFC8864"/>.</dd> | |||
usly | <dt>Disconnect session:</dt> | |||
established T.140 data channel, using the generic procedures for | <dd>An offer or answer is used to disable a previously | |||
closing | established T.140 data channel, using the generic procedures for closin | |||
a data channel <xref target="I-D.ietf-mmusic-data-channel-sdpneg | g | |||
"/></t> | a data channel <xref target="RFC8864"/>.</dd> | |||
<t>Data: Data sent on an established T.140 data channel (<xref tar | <dt>Data:</dt> | |||
get="sec.t140.send"/>)</t> | <dd>Data is sent on an established T.140 data channel (<xref target="se | |||
</list> | c.t140.send" format="default"/>).</dd> | |||
</t> | </dl> | |||
</section> | </section> | |||
<section anchor="sec.t140.send" title="Data Encoding and Sending"> | <section anchor="sec.t140.send" numbered="true" toc="default"> | |||
<t> | <name>Data Encoding and Sending</name> | |||
T.140 text is encoded and framed as T140blocks <xref target="RFC4103 | <t> | |||
"/>. | T.140 text is encoded and framed as T140blocks <xref target="RFC4103 | |||
</t> | " format="default"/>. | |||
<t> | </t> | |||
Each T140block is sent on the SCTP stream <xref target="RFC4960"/> u | <t> | |||
sed to | Each T140block is sent on the SCTP stream <xref target="RFC4960" for | |||
mat="default"/> used to | ||||
realize the T.140 data channel using standard T.140 transmission pro cedures | realize the T.140 data channel using standard T.140 transmission pro cedures | |||
<xref target="T140"/>. One or more T140blocks can be sent in a singl | <xref target="T140" format="default"/>. One or more T140blocks can b | |||
e | e sent in a single | |||
SCTP user message <xref target="RFC4960"/>. Unlike RTP based transpo | SCTP user message <xref target="RFC4960" format="default"/>. Unlike | |||
rt for | RTP-based transport for | |||
real-time text <xref target="RFC4103"/>, T.140 data channels do not | real-time text <xref target="RFC4103" format="default"/>, T.140 data | |||
use redundant | channels do not use redundant | |||
transmission of text. The reason for this is that the T.140 data cha | transmission of text; this is because the T.140 data channel achieve | |||
nnel achieves | s | |||
robust transmission by using the "reliable" mode of the data channel . | robust transmission by using the "reliable" mode of the data channel . | |||
</t> | </t> | |||
<t> | <t> | |||
Data sending procedures conform to <xref target="T140"/>. | Data-sending procedures conform to <xref target="T140" format="defau | |||
</t> | lt"/>. | |||
<t> | </t> | |||
<t> | ||||
See Section 8 of <xref target="T140"/> for coding details. | See Section 8 of <xref target="T140"/> for coding details. | |||
</t> | </t> | |||
<t> | <aside><t> | |||
NOTE: The T.140 coding details contain information on optional contr ol | NOTE: The T.140 coding details contain information on optional contr ol | |||
codes for controlling the presentation which may not be supported by the | codes for controlling the presentation; these control codes may not be supported by the | |||
presentation level of the receiving application. The receiving appli cation | presentation level of the receiving application. The receiving appli cation | |||
is expected to handle reception of such T.140 control codes appropri ately | is expected to handle reception of such T.140 control codes appropri ately | |||
(e.g. ignore and skip them) even if their effect on the presentation | (e.g., ignore and skip them) even if their effect on the presentatio | |||
is not supported. | n is not supported. | |||
</t> | </t></aside> | |||
</section> | </section> | |||
<section anchor="sec.t140.buff" title="Data Buffering"> | <section anchor="sec.t140.buff" numbered="true" toc="default"> | |||
<t> | <name>Data Buffering</name> | |||
As described in <xref target="T140"/>, buffering can be used to redu | <t> | |||
ce | As described in <xref target="T140" format="default"/>, buffering ca | |||
n be used to reduce | ||||
overhead, with the maximum assigned transmission interval of T140blo cks | overhead, with the maximum assigned transmission interval of T140blo cks | |||
from the buffer being 500 ms as long as there is text to send. | from the buffer being 500 ms as long as there is text to send. | |||
</t> | </t> | |||
<t> | <t> | |||
Buffering MAY also be used for staying within the maximum character | Buffering <bcp14>MAY</bcp14> also be used for staying within the max | |||
transmission rate (<xref target="sec.sdp.dcsa"/>). | imum character | |||
</t> | transmission rate (<xref target="sec.sdp.dcsa" format="default"/>). | |||
<t> | </t> | |||
<t> | ||||
An implementation needs to take the user requirements for smooth | An implementation needs to take the user requirements for smooth | |||
flow and low latency in real-time text conversation into considerati on when | flow and low latency in real-time text conversation into considerati on when | |||
assigning a transmission interval. It is RECOMMENDED to use the defa | assigning a transmission interval. It is <bcp14>RECOMMENDED</bcp14> | |||
ult transmission | to use the default transmission | |||
interval of 300 milliseconds <xref target="RFC4103"/>, for T.140 dat | interval of 300 ms <xref target="RFC4103" format="default"/>, for T. | |||
a channels. | 140 data channels. | |||
Implementers might also use lower values for specific applications r equiring low latency, | Implementers might also use lower values for specific applications r equiring low latency, | |||
taking the increased overhead in consideration. | taking the increased overhead into consideration. | |||
</t> | </t> | |||
</section> | </section> | |||
<section anchor="sec.t140.loss" title="Loss of T140blocks"> | <section anchor="sec.t140.loss" numbered="true" toc="default"> | |||
<t> | <name>Loss of T140blocks</name> | |||
In case of network failure or congestion, T.140 data channels might | <t> | |||
fail and get torn down. If this happens but the session sustains, i | In the case of network failure or congestion, T.140 data channels mi | |||
t | ght | |||
is RECOMMENDED that implementations try to reestablish the T.140 | fail and get torn down. If this happens but the session is sustaine | |||
d, it | ||||
is <bcp14>RECOMMENDED</bcp14> that implementations try to reestablis | ||||
h the T.140 | ||||
data channels. As a T.140 data channel does not provide a mechanism for | data channels. As a T.140 data channel does not provide a mechanism for | |||
the receiver to identify retransmitted T140blocks after channel | the receiver to identify retransmitted T140blocks after channel | |||
reestablishment, the sending endpoint MUST NOT retransmit T140blocks | reestablishment, the sending endpoint <bcp14>MUST NOT</bcp14> retran | |||
. | smit T140blocks. | |||
Similarly, a receiver SHOULD indicate to the user that there has | Similarly, a receiver <bcp14>SHOULD</bcp14> indicate to the user | |||
been a channel reestablishment, and that text might have been lost. | that a channel has been reestablished and text might have been lost. | |||
This MAY be done by inserting the missing text markers <xref target= | This <bcp14>MAY</bcp14> be done by inserting the missing text marker | |||
"T140ad1"/> | s <xref target="T140ad1" format="default"/> | |||
or in any other way evident to the user. | or in any other way evident to the user. | |||
</t> | </t> | |||
<t> | <aside><t> | |||
NOTE: If the SCTP association <xref target="RFC4960"/> used to reali | NOTE: If the SCTP association <xref target="RFC4960" format="default | |||
ze the T.140 data channel | "/> used to realize the T.140 data channel | |||
fails and gets torn down, it needs to be re-established before the T | fails and gets torn down, it needs to be reestablished before the T. | |||
.140 data channel can be | 140 data channel can be | |||
reestablished. The procedures after the reestablishment of the T.140 | reestablished. After the T.140 data channel is reestablished, the | |||
data channel defined in | procedures defined in this section apply, regardless of whether only | |||
this section apply no matter if only the T.140 data channel, or the | the T.140 | |||
whole SCTP association, | data channel or the whole SCTP association got torn down. | |||
got torn down. | </t></aside> | |||
</t> | </section> | |||
</section> | <section anchor="sec.t140.mul" numbered="true" toc="default"> | |||
<section anchor="sec.t140.mul" title="Multi-party Considerations"> | <name>Multi-party Considerations</name> | |||
<t> | <t> | |||
If an implementation needs to support multi-party scenarios, the imp lementation needs | If an implementation needs to support multi-party scenarios, the imp lementation needs | |||
to support multiple simultaneous T.140 data channels, one for each r emote party. At | to support multiple simultaneous T.140 data channels, one for each r emote party. At | |||
the time of writing this document, this is true even in scenarios wh ere each participant | the time of writing this document, this is true even in scenarios wh ere each participant | |||
communicates via a centralized conference server. The reason is that , unlike RTP media, | communicates via a centralized conference server. This is because, u nlike RTP media, | |||
WebRTC data channels and the T.140 protocol do not support the indic ation of the source | WebRTC data channels and the T.140 protocol do not support the indic ation of the source | |||
of T.140 data. The SDP 'dcmap' attribute label attribute parameter ( | of T.140 data. The 'label' attribute parameter in the SDP 'dcmap' at | |||
<xref target="sec.sdp.dcmap"/>) | tribute (<xref target="sec.sdp.dcmap" format="default"/>) | |||
can be used by the offerer to provide additional information about e | can be used by the offerer to provide additional information about e | |||
ach T.140 data channel, and help | ach T.140 data channel and help | |||
implementations to distinguish between them. | implementations to distinguish between them. | |||
</t> | </t> | |||
<t> | <aside><t> | |||
NOTE: Future extensions to T.140, or to the T140block, might allow i | NOTE: Future extensions to T.140 or the T140block might permit the | |||
ndicating the source | indication of the source | |||
of T.140 data, in which case it might be possible to use a single T. 140 data channel to | 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, | 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 | without any protocol extensions, would require the conference server to only forward | |||
real-time text from one source at any given time, and e.g., include human readable text | real-time text from one source at any given time and, for example, i nclude human-readable text | |||
labels in the real-time text stream that indicate the source wheneve r the conference server | labels in the real-time text stream that indicate the source wheneve r the conference server | |||
switches the source. This would allow the receiver to present real-t ime text from different | switches the source. This would allow the receiver to present real-t ime text from different | |||
sources separately. The procedures of such mechanism are outside the | sources separately. The procedures for such a mechanism are outside | |||
scope of this document. | the scope of this document. | |||
</t> | </t></aside> | |||
</section> | </section> | |||
</section> | </section> | |||
<section anchor="sec.gw" numbered="true" toc="default"> | ||||
<section anchor="sec.gw" title="Gateway Considerations"> | <name>Gateway Considerations</name> | |||
<t> | <t> | |||
A number of real-time text transports and protocols have been defined fo r | A number of real-time text transports and protocols have been defined fo r | |||
both packet-switched and circuit-switched networks. Many are based on th e | both packet-switched and circuit-switched networks. Many are based on th e | |||
ITU-T T.140 protocol on application and presentation level <xref target= "T140"/>. | ITU-T T.140 protocol at the application and presentation levels <xref ta rget="T140" format="default"/>. | |||
At the time of writing this document, some mechanisms are no longer used , as | 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. | the technologies they use have been obsoleted, while others are still in use. | |||
</t> | </t> | |||
<t> | <t> | |||
When performing interworking between T.140 data channels and real-time t ext | When performing interworking between T.140 data channels and real-time t ext | |||
in other transports and protocols, a number of factors need to be consid ered. | in other transports and protocols, a number of factors need to be consid ered. | |||
At the time of writing this document, the most common IP-based real-time text transport | At the time of writing this document, the most common IP-based real-time text transport | |||
is the RTP based mechanism defined in <xref target="RFC4103"/>. While th | is the RTP-based mechanism defined in <xref target="RFC4103" format="def | |||
is document | ault"/>. While this document | |||
does not define a complete interworking solution, this list below provid | does not define a complete interworking solution, the list below provide | |||
es some guidance | s some guidance | |||
and considerations to take into account when designing a gateway for int erworking | and considerations to take into account when designing a gateway for int erworking | |||
between T.140 data channels and RTP-based T.140 transport: | between T.140 data channels and RTP-based T.140 transport: | |||
<list style="symbols"> | </t> | |||
<t> | <ul spacing="normal"> | |||
For each T.140 data channel there is an RTP stream for real-time tex | <li> | |||
t <xref target="RFC4103"/>. | For each T.140 data channel, there is an RTP stream for real-time te | |||
xt <xref target="RFC4103" format="default"/>. | ||||
Redundancy is by default declared and used on the RTP stream. There is no redundancy on the | 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 <xref target="I-D.ietf -mmusic-data-channel-sdpneg"/> | T.140 data channel, but the reliable property <xref target="RFC8864" /> | |||
is set on it. | is set on it. | |||
</t> | </li> | |||
<t> | <li> | |||
During a normal text flow, T140blocks received from one network are forwarded towards the other network. | During a normal text flow, T140blocks received from one network are forwarded towards the other network. | |||
Keep-alive traffic is handled by lower layers on the T.140 data chan | Keepalive traffic is handled by lower layers on the T.140 data chann | |||
nel. A gateway might have to extract keep-alives from | el. A gateway might have to extract keepalives from | |||
incoming RTP streams, and MAY generate keep-alives on outgoing RTP s | incoming RTP streams and <bcp14>MAY</bcp14> generate keepalives on o | |||
treams. | utgoing RTP streams. | |||
</t> | </li> | |||
<t> | <li> | |||
If the gateway detects or suspects loss of data on the RTP stream, a | If the gateway detects or suspects loss of data on the RTP stream an | |||
nd the lost data has not been | d the lost data has not been | |||
retrieved using a redundancy mechanism, the gateway SHOULD insert th | retrieved using a redundancy mechanism, the gateway <bcp14>SHOULD</b | |||
e T.140 missing text | cp14> insert the T.140 missing text | |||
marker <xref target="T140ad1"/> in the data sent on the outgoing T.1 | marker <xref target="T140ad1" format="default"/> in the data sent on | |||
40 data channel. | the outgoing T.140 data channel. | |||
</t> | </li> | |||
<t> | <li> | |||
If the gateway detects that the T.140 data channel has failed and go t torn down, once the data channel has been reestablished | If the gateway detects that the T.140 data channel has failed and go t torn down, once the data channel has been reestablished | |||
the gateway SHOULD insert the T.140 missing text marker <xref target ="T140ad1"/> in the data sent on the outgoing RTP stream | the gateway <bcp14>SHOULD</bcp14> insert the T.140 missing text mark er <xref target="T140ad1" format="default"/> in the data sent on the outgoing RT P stream | |||
if it detects or suspects that data sent by the remote T.140 data ch annel endpoint was lost. | if it detects or suspects that data sent by the remote T.140 data ch annel endpoint was lost. | |||
</t> | </li> | |||
<t> | <li> | |||
If the gateway detects that the T.140 data channel has failed and go t torn down, once the data channel | If the gateway detects that the T.140 data channel has failed and go t torn down, once the data channel | |||
has been reestablished the gateway SHOULD insert the T.140 missing t ext marker <xref target="T140ad1"/> in the data | has been reestablished the gateway <bcp14>SHOULD</bcp14> insert the T.140 missing text marker <xref target="T140ad1" format="default"/> in the data | |||
sent on the outgoing T.140 data channel if it detects or suspects th at data sent or to be sent on the | sent on the outgoing T.140 data channel if it detects or suspects th at data sent or to be sent on the | |||
T.140 data channel was lost during the failure. | T.140 data channel was lost during the failure. | |||
</t> | </li> | |||
<t> | <li> | |||
The gateway MUST indicate the same text transmission direction (<xre | The gateway <bcp14>MUST</bcp14> indicate the same text transmission | |||
f target="sec.sdp.dcsa.dir"/>) on the T.140 data channel | direction (<xref target="sec.sdp.dcsa.dir" format="default"/>) on the T.140 data | |||
channel | ||||
and the RTP stream. | and the RTP stream. | |||
</t> | </li> | |||
</list> | </ul> | |||
</t> | <aside><t> | |||
<t> | NOTE: In order for the gateway to insert a missing text marker or perfor | |||
NOTE: In order for the gateway to insert a missing text marker, or to pe | m other actions that require that the | |||
rform other actions that require that the | gateway have access to the T.140 data, the T.140 data cannot be | |||
gateway has access to the T.140 data, the T.140 data cannot be encrypted | encrypted end to end between the T.140 data channel endpoint | |||
end-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. | 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 con | ||||
siderations.</t></aside> | ||||
</section> | </section> | |||
<section anchor="sec.8373" title="Update to RFC 8373"> | <section anchor="sec.8373" numbered="true" toc="default"> | |||
<t> | <name>Update to RFC 8373</name> | |||
This document updates RFC 8373 <xref target="RFC8373"/>, by defining h | <t> | |||
ow the SDP hlang-send and hlang-recv attributes are used for | This document updates <xref target="RFC8373" format="default"/> by def | |||
ining how the SDP 'hlang-send' and 'hlang-recv' attributes are used for | ||||
the "application/webrtc-datachannel" media type. | the "application/webrtc-datachannel" media type. | |||
</t> | </t> | |||
<t> | <t> | |||
SDP offerers and answerers MUST NOT include the attributes directly in | SDP offerers and answerers <bcp14>MUST NOT</bcp14> include the attribu | |||
the m= section associated with the | tes directly in the "m=" section associated with the | |||
'application/webrtc-datachannel' media type. Instead, the attributes M | "application/webrtc-datachannel" media type. Instead, the attributes < | |||
UST be associated with | bcp14>MUST</bcp14> be associated with | |||
individual data channels, using the SDP 'dcsa' attribute. A specificat ion that defines a subprotocol | individual data channels, using the SDP 'dcsa' attribute. A specificat ion that defines a subprotocol | |||
that uses the attributes MUST specify the modality for that subprotoco l, or how to retrieve the | that uses the attributes <bcp14>MUST</bcp14> specify the modality for that subprotocol, or how to retrieve the | |||
modality if the subprotocol supports multiple modalities. The subproto col is indicated using the SDP | modality if the subprotocol supports multiple modalities. The subproto col is indicated using the SDP | |||
'dcmap' attribute. | 'dcmap' attribute. | |||
</t> | </t> | |||
</section> | </section> | |||
<section anchor="sec.sec" title="Security Considerations"> | <section anchor="sec.sec" numbered="true" toc="default"> | |||
<t> | <name>Security Considerations</name> | |||
<t> | ||||
The generic WebRTC security considerations are defined in | The generic WebRTC security considerations are defined in | |||
<xref target="I-D.ietf-rtcweb-security-arch"/> and | <xref target="RFC8826"/> and <xref target="RFC8827"/>. | |||
<xref target="I-D.ietf-rtcweb-security"/>. | </t> | |||
</t> | <t> | |||
<t> | ||||
The generic security considerations for WebRTC data channels | The generic security considerations for WebRTC data channels | |||
are defined in <xref target="I-D.ietf-rtcweb-data-channel"/>. As data channels | are defined in <xref target="RFC8831"/>. As data channels | |||
are always encrypted by design, the T.140 data channels will | are always encrypted by design, the T.140 data channels will | |||
also be encrypted. | also be encrypted. | |||
</t> | ||||
<t> | ||||
The generic security considerations for the SDP-based external | ||||
negotiation method are defined in <xref target="I-D.ietf-mmusic-data-c | ||||
hannel-sdpneg"/>. | ||||
There are no additional T.140 data channel specific security considera | ||||
tions. | ||||
</t> | ||||
<t> | ||||
When performing interworking between T.140 data channels and real-time | ||||
text and | ||||
the RTP based mechanism defined in <xref target="RFC4103"/>, in order | ||||
for a gateway to | ||||
insert a missing text marker, or to perform other actions that require | ||||
that the | ||||
gateway has access to the T.140 data, the T.140 data cannot be encrypt | ||||
ed end-to-end | ||||
between the T.140 data channel endpoint and the RTP endpoint. | ||||
</t> | </t> | |||
</section> | ||||
<section anchor="sec.iana" title="IANA considerations"> | ||||
<t> | <t> | |||
[RFC EDITOR NOTE: Please replace all instances of RFCXXXX with the RFC n | The generic security considerations for negotiating data channels | |||
umber of this document.] | using the SDP offer/answer mechanism are defined in <xref target="RFC8 | |||
864"/>. | ||||
There are no additional security considerations specific to T.140 data | ||||
channels. | ||||
</t> | </t> | |||
<section anchor="sec.iana.sub" title="Subprotocol Identifier t140"> | <t> | |||
When performing interworking between T.140 data channels and | ||||
RTP-based T.140 transport <xref target="RFC4103" format="default"/>, i | ||||
n order for a gateway to | ||||
insert a missing text marker or perform other actions that require tha | ||||
t the | ||||
gateway have access to the T.140 data, the T.140 data cannot be | ||||
encrypted end to end | ||||
between the T.140 data channel endpoint and the RTP endpoint. | ||||
</t> | ||||
</section> | ||||
<section anchor="sec.iana" numbered="true" toc="default"> | ||||
<name>IANA Considerations</name> | ||||
<section anchor="sec.iana.sub" numbered="true" toc="default"> | ||||
<name>Subprotocol Identifier "t140"</name> | ||||
<t> | <t> | |||
This document adds the subprotocol identifier "t140" to the "WebSocket | Per this document, the subprotocol identifier "t140" has been added | |||
Subprotocol Name Registry" as follows: | to the "WebSocket Subprotocol Name Registry" as follows: | |||
</t> | </t> | |||
<texttable title=""> | ||||
<ttcol align='left' width='30%'/> | ||||
<ttcol align='left'/> | ||||
<c>Subprotocol Identifier:</c> | ||||
<c>t140</c> | ||||
<c>Subprotocol Common Name:</c> | ||||
<c>ITU-T T.140 Real-Time Text</c> | ||||
<c>Subprotocol Definition:</c> | ||||
<c>RFCXXXX</c> | ||||
<c>Reference:</c> | <dl newline="false" spacing="normal"> | |||
<c>RFCXXXX</c> | <dt>Subprotocol Identifier:</dt> | |||
</texttable> | <dd>t140</dd> | |||
<dt>Subprotocol Common Name:</dt> | ||||
<dd>ITU-T T.140 Real-Time Text</dd> | ||||
<dt>Subprotocol Definition:</dt> | ||||
<dd>RFC 8865</dd> | ||||
<dt>Reference:</dt> | ||||
<dd>RFC 8865</dd> | ||||
</dl> | ||||
</section> | </section> | |||
<section anchor="sec.iana.dcsa.fmtp" numbered="true" toc="default"> | ||||
<section title="SDP fmtp Attribute" anchor="sec.iana.dcsa.fmtp"> | <name>SDP 'fmtp' Attribute</name> | |||
<t> | <t> | |||
This document defines the usage of the SDP 'fmtp' attribute, if this a ttribute is | This document defines the usage of the SDP 'fmtp' attribute, if this a ttribute is | |||
included in an SDP 'dcsa' attribute and associated with an T.140 real- | included in an SDP 'dcsa' attribute associated with a T.140 real-time | |||
time text session | text session | |||
over a WebRTC data channel. The usage is defined in <xref target="sec. | over a WebRTC data channel. | |||
sdp.dcsa.trans"/>. | The usage is defined in <xref target="sec.sdp.dcsa.trans" format="default"/>. | |||
</t> | </t> | |||
<t> | <t> | |||
The usage level "dcsa(t140)" is added to the registration of the SDP ' | The usage level "dcsa(t140)" has been added to the registration of the | |||
fmtp' attribute in the Session Description | SDP 'fmtp' attribute in the "Session Description | |||
Protocol (SDP) Parameters registry as follows: | Protocol (SDP) Parameters" registry as follows: | |||
</t> | </t> | |||
<texttable title=""> | <dl newline="false" spacing="normal"> | |||
<ttcol align='left' width='35%'/> | <dt>Contact name:</dt> | |||
<ttcol align='left' width='65%'/> | <dd>IESG</dd> | |||
<dt>Contact email:</dt> | ||||
<c>Contact name:</c> | <dd>iesg@ietf.org</dd> | |||
<c>IESG</c> | <dt>Attribute name:</dt> | |||
<dd>fmtp</dd> | ||||
<c>Contact email:</c> | <dt>Usage level:</dt> | |||
<c>iesg@ietf.org</c> | <dd>dcsa(t140)</dd> | |||
<dt>Purpose:</dt> | ||||
<c>Attribute name:</c> | <dd>Indicate format parameters for a T.140 data channel, such as maximum | |||
<c>fmtp</c> | character transmission rates.</dd> | |||
<dt>Reference:</dt> | ||||
<c>Usage level:</c> | <dd>RFC 8865</dd> | |||
<c>dcsa(t140)</c> | </dl> | |||
<c>Purpose:</c> | ||||
<c> | ||||
Indicate format parameters for a T.140 data channel, such as maximum | ||||
character transmission rates. | ||||
</c> | ||||
<c>Reference:</c> | ||||
<c>RFCXXXX</c> | ||||
</texttable> | ||||
</section> | </section> | |||
<section anchor="sec.iana.dcsa.hlang" numbered="true" toc="default"> | ||||
<section title="SDP Language Attributes" anchor="sec.iana.dcsa.hlang"> | <name>SDP Language Attributes</name> | |||
<t> | <t> | |||
This document modifies the usage of the SDP 'hlang-send' and 'hlang-re cv' attributes, if these attributes are | This document modifies the usage of the SDP 'hlang-send' and 'hlang-re cv' attributes, if these attributes are | |||
included in SDP 'dcsa' attributes associated with an T.140 data channe | included in SDP 'dcsa' attributes associated with a T.140 data channel | |||
l. | . | |||
The modified usage is described in <xref target="sec.sdp.dcsa.lan"/>. | The modified usage is described in <xref target="sec.sdp.dcsa.lan" for | |||
mat="default"/>. | ||||
</t> | </t> | |||
<t> | <t> | |||
The usage level "dcsa(t140)" is added to the registration of the SDP ' | The usage level "dcsa(t140)" has been added to the registration of the | |||
hland-send' attribute in the Session Description | SDP 'hlang-send' attribute in the "Session Description | |||
Protocol (SDP) Parameters registry as follows: | Protocol (SDP) Parameters" registry as follows: | |||
</t> | </t> | |||
<texttable title=""> | <dl newline="false" spacing="normal"> | |||
<ttcol align='left' width='35%'/> | <dt>Contact name:</dt> | |||
<ttcol align='left' width='65%'/> | <dd>IESG</dd> | |||
<dt>Contact email:</dt> | ||||
<c>Contact name:</c> | <dd>iesg@ietf.org</dd> | |||
<c>IESG</c> | <dt>Attribute name:</dt> | |||
<dd>hlang-send</dd> | ||||
<c>Contact email:</c> | <dt>Usage level:</dt> | |||
<c>iesg@ietf.org</c> | <dd>dcsa(t140)</dd> | |||
<dt>Purpose:</dt> | ||||
<c>Attribute name:</c> | <dd>Negotiate the language to be used on a T.140 data channel.</dd> | |||
<c>hlang-send</c> | <dt>Reference:</dt> | |||
<dd>RFC 8865</dd> | ||||
<c>Usage level:</c> | </dl> | |||
<c>dcsa(t140)</c> | ||||
<c>Purpose:</c> | ||||
<c> | ||||
Negotiate the language to be used on a T.140 data channel. | ||||
</c> | ||||
<c>Reference:</c> | ||||
<c>RFCXXXX</c> | ||||
</texttable> | ||||
<t> | <t> | |||
The usage level "dcsa(t140)" is added to the registration of the SDP ' | The usage level "dcsa(t140)" has been added to the registration of the | |||
hland-recv' attribute in the Session Description | SDP 'hlang-recv' attribute in the "Session Description | |||
Protocol (SDP) Parameters registry as follows: | Protocol (SDP) Parameters" registry as follows: | |||
</t> | </t> | |||
<texttable title=""> | <dl newline="false" spacing="normal"> | |||
<ttcol align='left' width='35%'/> | <dt>Contact name:</dt> | |||
<ttcol align='left' width='65%'/> | <dd>IESG</dd> | |||
<dt>Contact email:</dt> | ||||
<c>Contact name:</c> | <dd>iesg@ietf.org</dd> | |||
<c>IESG</c> | <dt>Attribute name:</dt> | |||
<dd>hlang-recv</dd> | ||||
<c>Contact email:</c> | <dt>Usage level:</dt> | |||
<c>iesg@ietf.org</c> | <dd>dcsa(t140)</dd> | |||
<dt>Purpose:</dt> | ||||
<c>Attribute name:</c> | <dd>Negotiate the language to be used on a T.140 data channel.</dd> | |||
<c>hlang-recv</c> | <dt>Reference:</dt> | |||
<dd>RFC 8865</dd> | ||||
<c>Usage level:</c> | </dl> | |||
<c>dcsa(t140)</c> | ||||
<c>Purpose:</c> | ||||
<c> | ||||
Negotiate the language to be used on a T.140 data channel. | ||||
</c> | ||||
<c>Reference:</c> | ||||
<c>RFCXXXX</c> | ||||
</texttable> | ||||
</section> | </section> | |||
<section anchor="sec.iana.dcsa.direction" numbered="true" toc="default"> | ||||
<section title="SDP Media Direction Attributes" anchor="sec.iana.dcsa.dire | <name>SDP Media Direction Attributes</name> | |||
ction"> | ||||
<t> | <t> | |||
This document modifies the usage of the SDP 'sendonly', 'recvonly', 's | This document modifies the usage of the SDP 'sendonly', 'recvonly', 's | |||
endrecv' and 'inactive' attributes, | endrecv', and 'inactive' attributes, | |||
if these attributes are included in SDP 'dcsa' attributes associated T | if these attributes are included in SDP 'dcsa' attributes associated | |||
.140 data channel. The modified usage | with a T.140 data channel. The modified usage | |||
is described in <xref target="sec.sdp.dcsa.dir"/>. | is described in <xref target="sec.sdp.dcsa.dir" format="default"/>. | |||
</t> | </t> | |||
<t> | <t> | |||
The usage level "dcsa(t140)" is added to the registration of the SDP ' | The usage level "dcsa(t140)" has been added to the registration of the | |||
sendonly' attribute in the Session Description | SDP 'sendonly' attribute in the "Session Description | |||
Protocol (SDP) Parameters registry as follows: | Protocol (SDP) Parameters" registry as follows: | |||
</t> | </t> | |||
<texttable title=""> | <dl newline="false" spacing="normal"> | |||
<ttcol align='left' width='35%'/> | <dt>Contact name:</dt> | |||
<ttcol align='left' width='65%'/> | <dd>IESG</dd> | |||
<dt>Contact email:</dt> | ||||
<c>Contact name:</c> | <dd>iesg@ietf.org</dd> | |||
<c>IESG</c> | <dt>Attribute name:</dt> | |||
<dd>sendonly</dd> | ||||
<c>Contact email:</c> | <dt>Usage level:</dt> | |||
<c>iesg@ietf.org</c> | <dd>dcsa(t140)</dd> | |||
<dt>Purpose:</dt> | ||||
<c>Attribute name:</c> | <dd>Negotiate the direction in which real-time text can be sent on a | |||
<c>sendonly</c> | T.140 data channel.</dd> | |||
<dt>Reference:</dt> | ||||
<c>Usage level:</c> | <dd>RFC 8865</dd> | |||
<c>dcsa(t140)</c> | </dl> | |||
<c>Purpose:</c> | ||||
<c> | ||||
Negotiate the direction in which real-time text can be sent on a T.1 | ||||
40 data channel. | ||||
</c> | ||||
<c>Reference:</c> | ||||
<c>RFCXXXX</c> | ||||
</texttable> | ||||
<t> | <t> | |||
The usage level "dcsa(t140)" is added to the registration of the SDP ' | The usage level "dcsa(t140)" has been added to the registration of the | |||
recvonly' attribute in the Session Description | SDP 'recvonly' attribute in the "Session Description | |||
Protocol (SDP) Parameters registry as follows: | Protocol (SDP) Parameters" registry as follows: | |||
</t> | </t> | |||
<texttable title=""> | <dl newline="false" spacing="normal"> | |||
<ttcol align='left' width='35%'/> | <dt>Contact name:</dt> | |||
<ttcol align='left' width='65%'/> | <dd>IESG</dd> | |||
<dt>Contact email:</dt> | ||||
<c>Contact name:</c> | <dd>iesg@ietf.org</dd> | |||
<c>IESG</c> | <dt>Attribute name:</dt> | |||
<dd>recvonly</dd> | ||||
<c>Contact email:</c> | <dt>Usage level:</dt> | |||
<c>iesg@ietf.org</c> | <dd>dcsa(t140)</dd> | |||
<dt>Purpose:</dt> | ||||
<c>Attribute name:</c> | <dd>Negotiate the direction in which real-time text can be sent on | |||
<c>recvonly</c> | a T.140 data channel.</dd> | |||
<dt>Reference:</dt> | ||||
<c>Usage level:</c> | <dd>RFC 8865</dd> | |||
<c>dcsa(t140)</c> | </dl> | |||
<c>Purpose:</c> | ||||
<c> | ||||
Negotiate the direction in which real-time text can be sent on a T.1 | ||||
40 data channel. | ||||
</c> | ||||
<c>Reference:</c> | ||||
<c>RFCXXXX</c> | ||||
</texttable> | ||||
<t> | <t> | |||
The usage level "dcsa(t140)" is added to the registration of the SDP ' | The usage level "dcsa(t140)" has been added to the registration of the | |||
sendrecv' attribute in the Session Description | SDP 'sendrecv' attribute in the "Session Description | |||
Protocol (SDP) Parameters registry as follows: | Protocol (SDP) Parameters" registry as follows: | |||
</t> | </t> | |||
<texttable title=""> | <dl newline="false" spacing="normal"> | |||
<ttcol align='left' width='35%'/> | <dt>Contact name:</dt> | |||
<ttcol align='left' width='65%'/> | <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 data channel.</dd> | ||||
<dt>Reference:</dt> | ||||
<dd>RFC 8865</dd> | ||||
</dl> | ||||
<t> | ||||
The usage level "dcsa(t140)" has been added to the registration of the | ||||
SDP 'inactive' attribute in the "Session Description | ||||
Protocol (SDP) Parameters" registry as follows: | ||||
</t> | ||||
<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 data channel.</dd> | ||||
<dt>Reference:</dt> | ||||
<dd>RFC 8865</dd> | ||||
</dl> | ||||
</section> | ||||
</section> | ||||
</middle> | ||||
<back> | ||||
<c>Contact name:</c> | <references> | |||
<c>IESG</c> | <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"/> | ||||
<c>Contact email:</c> | <!-- draft-ietf-rtcweb-data-channel (RFC 8831) --> | |||
<c>iesg@ietf.org</c> | <reference anchor="RFC8831" target="https://www.rfc-editor.org/info/rfc8831"> | |||
<front> | ||||
<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> | ||||
<c>Attribute name:</c> | <!-- draft-ietf-mmusic-data-channel-sdpneg (RFC 8864) --> | |||
<c>sendrecv</c> | <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> | ||||
<c>Usage level:</c> | <author initials='M' surname='Makaraju' fullname='Maridi Makaraju'> | |||
<c>dcsa(t140)</c> | <organization /> | |||
</author> | ||||
<c>Purpose:</c> | <author initials='R' surname='Ejzak' fullname='Richard Ejzak'> | |||
<c> | <organization /> | |||
Negotiate the direction in which real-time text can be sent on a T.1 | </author> | |||
40 data channel. | ||||
</c> | ||||
<c>Reference:</c> | <author initials='J' surname='Marcon' fullname='Jerome Marcon'> | |||
<c>RFCXXXX</c> | <organization /> | |||
</texttable> | </author> | |||
<t> | ||||
The usage level "dcsa(t140)" is added to the registration of the SDP ' | ||||
inactive' attribute in the Session Description | ||||
Protocol (SDP) Parameters registry as follows: | ||||
</t> | ||||
<texttable title=""> | ||||
<ttcol align='left' width='35%'/> | ||||
<ttcol align='left' width='65%'/> | ||||
<c>Contact name:</c> | <author initials='R' surname='Even' fullname='Roni Even'> | |||
<c>IESG</c> | <organization /> | |||
</author> | ||||
<c>Contact email:</c> | <date month='September' year='2020' /> | |||
<c>iesg@ietf.org</c> | ||||
<c>Attribute name:</c> | </front> | |||
<c>inactive</c> | <seriesInfo name="RFC" value="8864"/> | |||
<seriesInfo name="DOI" value="10.17487/RFC8864"/> | ||||
<c>Usage level:</c> | </reference> | |||
<c>dcsa(t140)</c> | ||||
<c>Purpose:</c> | <!--draft-ietf-rtcweb-security (RFC 8826) --> | |||
<c> | <reference anchor="RFC8826" target="https://www.rfc-editor.org/info/rfc8826"> | |||
Negotiate the direction in which real-time text can be sent on a T.1 | <front> | |||
40 data channel. | <title>Security Considerations for WebRTC</title> | |||
</c> | <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> | ||||
<c>Reference:</c> | <!--draft-ietf-rtcweb-security-arch (RFC 8827) --> | |||
<c>RFCXXXX</c> | <reference anchor="RFC8827" target="https://www.rfc-editor.org/info/rfc8827"> | |||
</texttable> | <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> | ||||
</section> | <reference anchor="T140" target="https://www.itu.int/rec/T-REC-T.140-199 | |||
</section> | 802-I/en"> | |||
<front> | ||||
<title>Protocol for multimedia application text conversation</title> | ||||
<author> | ||||
<organization>ITU-T</organization> | ||||
</author> | ||||
<date year="1998" month="February"/> | ||||
</front> | ||||
<refcontent>Recommendation ITU-T T.140</refcontent> | ||||
</reference> | ||||
<reference 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> | ||||
<date year="2000" month="February"/> | ||||
</front> | ||||
</reference> | ||||
</references> | ||||
<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"/> | ||||
<section anchor="sec.acks" title="Acknowledgements" toc="default"> | <!-- 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> | <t> | |||
This document is based on an earlier Internet draft edited by Keith Drag | This document is based on an earlier Internet-Draft edited by <contact f | |||
e, | ullname="Keith Drage"/>, | |||
Juergen Stoetzer-Bradler and Albrecht Schwarz. | <contact fullname="Juergen Stoetzer-Bradler"/>, and <contact fullname="A | |||
lbrecht Schwarz"/>. | ||||
</t> | </t> | |||
<t> | <t> | |||
Thomas Belling provided useful comments on the initial (pre-submission) | <contact fullname="Thomas Belling"/> provided useful comments on the ini | |||
version | tial (pre&nbhy;submission) version | |||
of the draft. Paul Kyzivat and Bernard Aboba provided comments on the dr | of the current document. <contact fullname="Paul Kyzivat"/> and <contact | |||
aft. | fullname="Bernard Aboba"/> provided comments on the document. | |||
</t> | </t> | |||
</section> | </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'?> | ||||
<reference anchor="T140"> | ||||
<front> | ||||
<title>Recommendation ITU-T T.140 (02/1998), Protocol for | ||||
multimedia application text conversation</title> | ||||
<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"/> | ||||
</reference> | ||||
<reference anchor="T140ad1"> | ||||
<front> | ||||
<title>Recommendation ITU-T.140 Addendum 1 - (02/2000), Protocol for | ||||
multimedia application text conversation</title> | ||||
<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> | ||||
</back> | </back> | |||
</rfc> | </rfc> | |||
End of changes. 178 change blocks. | ||||
809 lines changed or deleted | 859 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/ |