rfc8865xml2.original.xml   rfc8865.xml 
<?xml version="1.0" encoding="windows-1252"?> <?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" []> <rfc xmlns:xi="http://www.w3.org/2001/XInclude" version="3" category="std" conse
<?rfc toc="yes" ?> nsus="true" docName="draft-ietf-mmusic-t140-usage-data-channel-14" indexInclude=
<?rfc compact="yes" ?> "true" ipr="trust200902" number="8865" prepTime="2021-01-18T23:00:08" scripts="C
<?rfc subcompact="yes" ?> ommon,Latin" sortRefs="true" submissionType="IETF" symRefs="true" tocDepth="3" t
<?rfc sortrefs="no" ?> ocInclude="true" updates="8373" xml:lang="en">
<?rfc strict="yes" ?> <link href="https://datatracker.ietf.org/doc/draft-ietf-mmusic-t140-usage-data
<rfc ipr="trust200902" category="std" docName="draft-ietf-mmusic-t140-usage-data -channel-14" rel="prev"/>
-channel-14" obsoletes="" updates="8373" submissionType="IETF" xml:lang="en"> <link href="https://dx.doi.org/10.17487/rfc8865" rel="alternate"/>
<link href="urn:issn:2070-1721" rel="alternate"/>
<front> <front>
<title abbrev="T.140 Data Channel"> <title abbrev="T.140 Data Channel">T.140 Real-Time Text Conversation over We
T.140 Real-time Text Conversation over WebRTC Data Channels bRTC Data Channels</title>
</title> <seriesInfo name="RFC" value="8865" stream="IETF"/>
<author initials="C.H." surname="Holmberg" fullname="Christer Holmberg"> <author initials="C." surname="Holmberg" fullname="Christer Holmberg">
<organization>Ericsson</organization> <organization showOnFrontPage="true">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 showOnFrontPage="true">Gunnar Hellström Accessible Communica
tion</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="01" year="2021"/>
<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 pn="section-abstract">
<t> <t indent="0" pn="section-abstract-1">
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>
<boilerplate>
<section anchor="status-of-memo" numbered="false" removeInRFC="false" toc=
"exclude" pn="section-boilerplate.1">
<name slugifiedName="name-status-of-this-memo">Status of This Memo</name
>
<t indent="0" pn="section-boilerplate.1-1">
This is an Internet Standards Track document.
</t>
<t indent="0" pn="section-boilerplate.1-2">
This document is a product of the Internet Engineering Task Force
(IETF). It represents the consensus of the IETF community. It has
received public review and has been approved for publication by
the Internet Engineering Steering Group (IESG). Further
information on Internet Standards is available in Section 2 of
RFC 7841.
</t>
<t indent="0" pn="section-boilerplate.1-3">
Information about the current status of this document, any
errata, and how to provide feedback on it may be obtained at
<eref target="https://www.rfc-editor.org/info/rfc8865" brackets="non
e"/>.
</t>
</section>
<section anchor="copyright" numbered="false" removeInRFC="false" toc="excl
ude" pn="section-boilerplate.2">
<name slugifiedName="name-copyright-notice">Copyright Notice</name>
<t indent="0" pn="section-boilerplate.2-1">
Copyright (c) 2021 IETF Trust and the persons identified as the
document authors. All rights reserved.
</t>
<t indent="0" pn="section-boilerplate.2-2">
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents
(<eref target="https://trustee.ietf.org/license-info" brackets="none
"/>) in effect on the date of
publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with
respect to this document. Code Components extracted from this
document must include Simplified BSD License text as described in
Section 4.e of the Trust Legal Provisions and are provided without
warranty as described in the Simplified BSD License.
</t>
</section>
</boilerplate>
<toc>
<section anchor="toc" numbered="false" removeInRFC="false" toc="exclude" p
n="section-toc.1">
<name slugifiedName="name-table-of-contents">Table of Contents</name>
<ul bare="true" empty="true" indent="2" spacing="compact" pn="section-to
c.1-1">
<li pn="section-toc.1-1.1">
<t indent="0" keepWithNext="true" pn="section-toc.1-1.1.1"><xref der
ivedContent="1" format="counter" sectionFormat="of" target="section-1"/>.  <xref
derivedContent="" format="title" sectionFormat="of" target="name-introduction">
Introduction</xref></t>
</li>
<li pn="section-toc.1-1.2">
<t indent="0" keepWithNext="true" pn="section-toc.1-1.2.1"><xref der
ivedContent="2" format="counter" sectionFormat="of" target="section-2"/>.  <xref
derivedContent="" format="title" sectionFormat="of" target="name-conventions">C
onventions</xref></t>
</li>
<li pn="section-toc.1-1.3">
<t indent="0" keepWithNext="true" pn="section-toc.1-1.3.1"><xref der
ivedContent="3" format="counter" sectionFormat="of" target="section-3"/>.  <xref
derivedContent="" format="title" sectionFormat="of" target="name-webrtc-data-ch
annel-conside">WebRTC Data Channel Considerations</xref></t>
</li>
<li pn="section-toc.1-1.4">
<t indent="0" pn="section-toc.1-1.4.1"><xref derivedContent="4" form
at="counter" sectionFormat="of" target="section-4"/>.  <xref derivedContent="" f
ormat="title" sectionFormat="of" target="name-sdp-considerations">SDP Considerat
ions</xref></t>
<ul bare="true" empty="true" indent="2" spacing="compact" pn="sectio
n-toc.1-1.4.2">
<li pn="section-toc.1-1.4.2.1">
<t indent="0" pn="section-toc.1-1.4.2.1.1"><xref derivedContent=
"4.1" format="counter" sectionFormat="of" target="section-4.1"/>.  <xref derived
Content="" format="title" sectionFormat="of" target="name-use-of-the-dcmap-attri
bute">Use of the 'dcmap' Attribute</xref></t>
</li>
<li pn="section-toc.1-1.4.2.2">
<t indent="0" pn="section-toc.1-1.4.2.2.1"><xref derivedContent=
"4.2" format="counter" sectionFormat="of" target="section-4.2"/>.  <xref derived
Content="" format="title" sectionFormat="of" target="name-use-of-the-dcsa-attrib
ute">Use of the 'dcsa' Attribute</xref></t>
<ul bare="true" empty="true" indent="2" spacing="compact" pn="se
ction-toc.1-1.4.2.2.2">
<li pn="section-toc.1-1.4.2.2.2.1">
<t indent="0" pn="section-toc.1-1.4.2.2.2.1.1"><xref derived
Content="4.2.1" format="counter" sectionFormat="of" target="section-4.2.1"/>.  <
xref derivedContent="" format="title" sectionFormat="of" target="name-maximum-ch
aracter-transmiss">Maximum Character Transmission Rate</xref></t>
</li>
<li pn="section-toc.1-1.4.2.2.2.2">
<t indent="0" pn="section-toc.1-1.4.2.2.2.2.1"><xref derived
Content="4.2.2" format="counter" sectionFormat="of" target="section-4.2.2"/>.  <
xref derivedContent="" format="title" sectionFormat="of" target="name-real-time-
text-conversation">Real-Time Text Conversation Languages</xref></t>
</li>
<li pn="section-toc.1-1.4.2.2.2.3">
<t indent="0" pn="section-toc.1-1.4.2.2.2.3.1"><xref derived
Content="4.2.3" format="counter" sectionFormat="of" target="section-4.2.3"/>.  <
xref derivedContent="" format="title" sectionFormat="of" target="name-real-time-
text-direction">Real-Time Text Direction</xref></t>
</li>
</ul>
</li>
<li pn="section-toc.1-1.4.2.3">
<t indent="0" pn="section-toc.1-1.4.2.3.1"><xref derivedContent=
"4.3" format="counter" sectionFormat="of" target="section-4.3"/>.  <xref derived
Content="" format="title" sectionFormat="of" target="name-examples">Examples</xr
ef></t>
</li>
</ul>
</li>
<li pn="section-toc.1-1.5">
<t indent="0" pn="section-toc.1-1.5.1"><xref derivedContent="5" form
at="counter" sectionFormat="of" target="section-5"/>.  <xref derivedContent="" f
ormat="title" sectionFormat="of" target="name-t140-considerations">T.140 Conside
rations</xref></t>
<ul bare="true" empty="true" indent="2" spacing="compact" pn="sectio
n-toc.1-1.5.2">
<li pn="section-toc.1-1.5.2.1">
<t indent="0" pn="section-toc.1-1.5.2.1.1"><xref derivedContent=
"5.1" format="counter" sectionFormat="of" target="section-5.1"/>.  <xref derived
Content="" format="title" sectionFormat="of" target="name-session-layer-function
s">Session-Layer Functions</xref></t>
</li>
<li pn="section-toc.1-1.5.2.2">
<t indent="0" pn="section-toc.1-1.5.2.2.1"><xref derivedContent=
"5.2" format="counter" sectionFormat="of" target="section-5.2"/>.  <xref derived
Content="" format="title" sectionFormat="of" target="name-data-encoding-and-send
ing">Data Encoding and Sending</xref></t>
</li>
<li pn="section-toc.1-1.5.2.3">
<t indent="0" pn="section-toc.1-1.5.2.3.1"><xref derivedContent=
"5.3" format="counter" sectionFormat="of" target="section-5.3"/>.  <xref derived
Content="" format="title" sectionFormat="of" target="name-data-buffering">Data B
uffering</xref></t>
</li>
<li pn="section-toc.1-1.5.2.4">
<t indent="0" pn="section-toc.1-1.5.2.4.1"><xref derivedContent=
"5.4" format="counter" sectionFormat="of" target="section-5.4"/>.  <xref derived
Content="" format="title" sectionFormat="of" target="name-loss-of-t140blocks">Lo
ss of T140blocks</xref></t>
</li>
<li pn="section-toc.1-1.5.2.5">
<t indent="0" pn="section-toc.1-1.5.2.5.1"><xref derivedContent=
"5.5" format="counter" sectionFormat="of" target="section-5.5"/>.  <xref derived
Content="" format="title" sectionFormat="of" target="name-multi-party-considerat
ions">Multi-party Considerations</xref></t>
</li>
</ul>
</li>
<li pn="section-toc.1-1.6">
<t indent="0" pn="section-toc.1-1.6.1"><xref derivedContent="6" form
at="counter" sectionFormat="of" target="section-6"/>.  <xref derivedContent="" f
ormat="title" sectionFormat="of" target="name-gateway-considerations">Gateway Co
nsiderations</xref></t>
</li>
<li pn="section-toc.1-1.7">
<t indent="0" pn="section-toc.1-1.7.1"><xref derivedContent="7" form
at="counter" sectionFormat="of" target="section-7"/>.  <xref derivedContent="" f
ormat="title" sectionFormat="of" target="name-update-to-rfc-8373">Update to RFC
8373</xref></t>
</li>
<li pn="section-toc.1-1.8">
<t indent="0" pn="section-toc.1-1.8.1"><xref derivedContent="8" form
at="counter" sectionFormat="of" target="section-8"/>.  <xref derivedContent="" f
ormat="title" sectionFormat="of" target="name-security-considerations">Security
Considerations</xref></t>
</li>
<li pn="section-toc.1-1.9">
<t indent="0" pn="section-toc.1-1.9.1"><xref derivedContent="9" form
at="counter" sectionFormat="of" target="section-9"/>.  <xref derivedContent="" f
ormat="title" sectionFormat="of" target="name-iana-considerations">IANA Consider
ations</xref></t>
<ul bare="true" empty="true" indent="2" spacing="compact" pn="sectio
n-toc.1-1.9.2">
<li pn="section-toc.1-1.9.2.1">
<t indent="0" pn="section-toc.1-1.9.2.1.1"><xref derivedContent=
"9.1" format="counter" sectionFormat="of" target="section-9.1"/>.  <xref derived
Content="" format="title" sectionFormat="of" target="name-subprotocol-identifier
-t140">Subprotocol Identifier "t140"</xref></t>
</li>
<li pn="section-toc.1-1.9.2.2">
<t indent="0" pn="section-toc.1-1.9.2.2.1"><xref derivedContent=
"9.2" format="counter" sectionFormat="of" target="section-9.2"/>.  <xref derived
Content="" format="title" sectionFormat="of" target="name-sdp-fmtp-attribute">SD
P 'fmtp' Attribute</xref></t>
</li>
<li pn="section-toc.1-1.9.2.3">
<t indent="0" pn="section-toc.1-1.9.2.3.1"><xref derivedContent=
"9.3" format="counter" sectionFormat="of" target="section-9.3"/>.  <xref derived
Content="" format="title" sectionFormat="of" target="name-sdp-language-attribute
s">SDP Language Attributes</xref></t>
</li>
<li pn="section-toc.1-1.9.2.4">
<t indent="0" pn="section-toc.1-1.9.2.4.1"><xref derivedContent=
"9.4" format="counter" sectionFormat="of" target="section-9.4"/>.  <xref derived
Content="" format="title" sectionFormat="of" target="name-sdp-media-direction-at
tribu">SDP Media Direction Attributes</xref></t>
</li>
</ul>
</li>
<li pn="section-toc.1-1.10">
<t indent="0" pn="section-toc.1-1.10.1"><xref derivedContent="10" fo
rmat="counter" sectionFormat="of" target="section-10"/>. <xref derivedContent=""
format="title" sectionFormat="of" target="name-references">References</xref></t
>
<ul bare="true" empty="true" indent="2" spacing="compact" pn="sectio
n-toc.1-1.10.2">
<li pn="section-toc.1-1.10.2.1">
<t indent="0" pn="section-toc.1-1.10.2.1.1"><xref derivedContent
="10.1" format="counter" sectionFormat="of" target="section-10.1"/>.  <xref deri
vedContent="" format="title" sectionFormat="of" target="name-normative-reference
s">Normative References</xref></t>
</li>
<li pn="section-toc.1-1.10.2.2">
<t indent="0" pn="section-toc.1-1.10.2.2.1"><xref derivedContent
="10.2" format="counter" sectionFormat="of" target="section-10.2"/>.  <xref deri
vedContent="" format="title" sectionFormat="of" target="name-informative-referen
ces">Informative References</xref></t>
</li>
</ul>
</li>
<li pn="section-toc.1-1.11">
<t indent="0" pn="section-toc.1-1.11.1"><xref derivedContent="" form
at="none" sectionFormat="of" target="section-appendix.a"/><xref derivedContent="
" format="title" sectionFormat="of" target="name-acknowledgements">Acknowledgeme
nts</xref></t>
</li>
<li pn="section-toc.1-1.12">
<t indent="0" pn="section-toc.1-1.12.1"><xref derivedContent="" form
at="none" sectionFormat="of" target="section-appendix.b"/><xref derivedContent="
" format="title" sectionFormat="of" target="name-authors-addresses">Authors' Add
resses</xref></t>
</li>
</ul>
</section>
</toc>
</front> </front>
<middle> <middle>
<section title="Introduction" toc="default"> <section toc="include" numbered="true" removeInRFC="false" pn="section-1">
<t> <name slugifiedName="name-introduction">Introduction</name>
<t indent="0" pn="section-1-1">
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" sectionFormat="of" derivedContent="
wn as T140"/> defines a protocol for text conversation, 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 sectionFormat="of" derivedContent="RFC4103"/>, based on the Real-time Transport
tocol (RTP) <xref target="RFC3550"/>. Protocol (RTP) <xref target="RFC3550" format="default" sectionFormat="of" deriv
edContent="RFC3550"/>.
</t> </t>
<t> <t indent="0" pn="section-1-2">
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" format="default" sectionFormat="of" derivedConten
can be used as a transport mechanism for T.140, and how the SDP offer/an t="RFC8831"/>
swer mechanism can be used as a transport mechanism for T.140 and how the Session
for data channels <xref target="I-D.ietf-mmusic-data-channel-sdpneg"/> c Description Protocol (SDP) offer/answer mechanism
an be used to negotiate such a data channel. for data channels <xref target="RFC8864" format="default" sectionFormat=
"of" derivedContent="RFC8864"/> can be used to negotiate such a data channel.
</t> </t>
<t> <t indent="0" pn="section-1-3">
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 target="RFC8864" format="defa
music-data-channel-sdpneg"/>. ult" sectionFormat="of" derivedContent="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>
<t> <aside pn="section-1-4">
<t indent="0" pn="section-1-4.1">
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" sectionFormat="of" derivedContent="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 <xref target="RFC8831" sectionFormat="of" section="3.2" format="defa
ult" derivedLink="https://rfc-editor.org/rfc/rfc8831#section-3.2" derivedContent
="RFC8831"/>.
</t>
</aside>
<t indent="0" pn="section-1-5">
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" sectionFormat="of" derivedContent="T140"/>.
</t> </t>
<t> <t indent="0" pn="section-1-6">
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 indent="0" pn="section-1-7">
<xref target="sec.webrtc.cons"/> defines the generic data channel proper <xref target="sec.webrtc.cons" format="default" sectionFormat="of" deriv
ties for edContent="Section 3"/> defines the generic data 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" sectio
conveyed nFormat="of" derivedContent="Section 4"/> defines 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" format="default" sectionFormat="of" derivedConten
and gateway t="RFC8864"/>, the generic T.140 and gateway
considerations defined in <xref target="sec.webrtc.cons"/>, <xref target considerations defined in Sections <xref target="sec.webrtc.cons" format
="sec.t140"/> ="counter" sectionFormat="of" derivedContent="3"/>, <xref target="sec.t140" form
and <xref target="sec.gw"/> of this document can also be applied when a at="counter" sectionFormat="of" derivedContent="5"/>,
T.140 data channel and <xref target="sec.gw" format="counter" sectionFormat="of" derivedCon
tent="6"/> of this document can also be applied when a 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" format="default" sectionFormat="of" derivedConten
<xref target="I-D.ietf-mmusic-data-channel-sdpneg"/> defines the mapping t="RFC8832"/>). <xref target="RFC8864" sectionFormat="of" section="5" format="de
between the fault" derivedLink="https://rfc-editor.org/rfc/rfc8864#section-5" derivedContent
SDP dcmap attribute parameters and the protocol parameters used in ="RFC8864"/>
<xref target="I-D.ietf-rtcweb-data-protocol"/>. defines the mapping between the
SDP 'dcmap' attribute parameters and the protocol parameters used in
<xref target="RFC8832" format="default" sectionFormat="of" derivedConten
t="RFC8832"/>.
</t> </t>
<t> <t indent="0" pn="section-1-8">
This document updates <xref target="RFC8373"/>, by defining how the SDP This document updates <xref target="RFC8373" format="default" sectionFor
hlang-send and hlang-recv attributes are used for the "application/webrt mat="of" derivedContent="RFC8373"/> by defining 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="include" removeInRFC="false" pn="section-2">
<section title="Conventions"> <name slugifiedName="name-conventions">Conventions</name>
<t> <t indent="0" pn="section-2-1">The key words "<bcp14>MUST</bcp14>", "<bcp1
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL 4>MUST NOT</bcp14>",
NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>",
"MAY", and "OPTIONAL" in this document are to be interpreted as "<bcp14>SHALL NOT</bcp14>", "<bcp14>SHOULD</bcp14>",
described in BCP 14 <xref target="RFC2119"></xref> <xref target="RFC8174 "<bcp14>SHOULD NOT</bcp14>",
"></xref> "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
when, and only when, they appear in all capitals, as shown here. "<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document
</t> are to be interpreted as described in BCP 14
<xref target="RFC2119" format="default" sectionFormat="of" derivedContent
="RFC2119"/> <xref target="RFC8174" format="default" sectionFormat="of" derivedC
ontent="RFC8174"/> when, and only
when, they appear in all capitals, as shown here.</t>
</section> </section>
<section anchor="sec.webrtc.cons" numbered="true" toc="include" removeInRFC=
<section anchor="sec.webrtc.cons" title="WebRTC Data Channel Considerations" "false" pn="section-3">
> <name slugifiedName="name-webrtc-data-channel-conside">WebRTC Data Channel
<t> Considerations</name>
The following WebRTC data channel property values <xref target="I-D.ietf <t indent="0" pn="section-3-1">
-rtcweb-data-channel"/> The following WebRTC data channel property values <xref target="RFC8831"
format="default" sectionFormat="of" derivedContent="RFC8831"/>
apply to a T.140 data channel: apply to a T.140 data channel:
</t> </t>
<texttable title=""> <table align="center" pn="table-1">
<ttcol align='left' width='30%'/> <tbody>
<ttcol align='left'/> <tr>
<td align="left" colspan="1" rowspan="1">Subprotocol Identifier</td>
<c>Subprotocol Identifier</c> <td align="left" colspan="1" rowspan="1">t140</td>
<c>t140</c> </tr>
<tr>
<c>Transmission reliability</c> <td align="left" colspan="1" rowspan="1">Transmission reliability</t
<c>reliable</c> d>
<td align="left" colspan="1" rowspan="1">reliable</td>
<c>Transmission order</c> </tr>
<c>in-order</c> <tr>
<td align="left" colspan="1" rowspan="1">Transmission order</td>
<c>Label</c> <td align="left" colspan="1" rowspan="1">in-order</td>
<c>See <xref target="sec.sdp.dcmap"/> and <xref target="sec.gw"/></c> </tr>
</texttable> <tr>
<t> <td align="left" colspan="1" rowspan="1">Label</td>
<td align="left" colspan="1" rowspan="1">See <xref target="sec.sdp.d
cmap" format="default" sectionFormat="of" derivedContent="Section 4.1"/></td>
</tr>
</tbody>
</table>
<aside pn="section-3-3">
<t indent="0" pn="section-3-3.1">
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" format="default" sectionFormat="of" derivedContent="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="include" removeInRFC="false"
<section anchor="sec.sdp" title="SDP Considerations"> pn="section-4">
<t> <name slugifiedName="name-sdp-considerations">SDP Considerations</name>
The generic SDP considerations, including the SDP Offer/Answer procedure <t indent="0" pn="section-4-1">
s <xref target="RFC3264"/>, for The generic SDP considerations, including the SDP offer/answer procedure
negotiating a WebRTC data channel are defined in <xref target="I-D.ietf- s <xref target="RFC3264" format="default" sectionFormat="of" derivedContent="RFC
mmusic-data-channel-sdpneg"/>. 3264"/>, for
negotiating a WebRTC data channel are defined in <xref target="RFC8864"
format="default" sectionFormat="of" derivedContent="RFC8864"/>.
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="include" removeInRFC=
<t> "false" pn="section-4.1">
An offerer and answerer MUST, in each offer and answer, include an SD <name slugifiedName="name-use-of-the-dcmap-attribute">Use of the 'dcmap'
P 'dcmap' Attribute</name>
attribute <xref target="I-D.ietf-mmusic-data-channel-sdpneg"/> in the <t indent="0" pn="section-4.1-1">
SDP media An offerer and answerer <bcp14>MUST</bcp14>, in each offer and answer
description (m= section) <xref target="I-D.ietf-mmusic-rfc4566bis"/> , include an SDP 'dcmap'
describing the SCTP association attribute <xref target="RFC8864" format="default" sectionFormat="of"
<xref target="RFC4960"/> used to realize the T.140 data channel. derivedContent="RFC8864"/> in the SDP media
description ("m=" section) <xref target="RFC4566" format="default" se
ctionFormat="of" derivedContent="RFC4566"/> describing
the Stream Control Transmission Protocol (SCTP) association
<xref target="RFC4960" format="default" sectionFormat="of" derivedCon
tent="RFC4960"/> used to realize the T.140
data channel.
</t> </t>
<t> <t indent="0" pn="section-4.1-2">
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 indent="0" pn="section-4.1-3">
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" format="default" sectionFormat="of
" derivedContent="RFC8864"/>.
</t> </t>
<t> <aside pn="section-4.1-4">
NOTE: As specified in <xref target="I-D.ietf-rtcweb-data-channel"/>, <t indent="0" pn="section-4.1-4.1">
when a data channel is negotiated using the mechanism defined in <xref NOTE: As specified in <xref target="RFC8831" format="default" sectionF
target="I-D.ietf-rtcweb-data-protocol"/>, ormat="of" derivedContent="RFC8831"/>,
the label attribute parameter value has to be the same in both directi when a data channel is negotiated using the mechanism defined in <xref
ons. That rule also target="RFC8832" format="default" sectionFormat="of" derivedContent="RFC8832"/>
,
the 'label' attribute parameter value has to be the same in both direc
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>
<t> </aside>
The offerer and answerer MUST NOT include the max-retr or the max-time <t indent="0" pn="section-4.1-5">
attribute parameters in the 'dcmap' attribute. If either of those The offerer and answerer <bcp14>MUST NOT</bcp14> include the 'max-retr
' 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 indent="0" pn="section-4.1-6">
If the ordered attribute parameter is included in the 'dcmap' attribut If the 'ordered' attribute parameter is included in the 'dcmap' attrib
e, it MUST ute, it <bcp14>MUST</bcp14>
be assigned the value 'true'. be assigned the value 'true'.
</t> </t>
<t> <t indent="0" pn="section-4.1-7">
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 indent="0" pn="section-4.1-8">
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="include" removeInRFC="
<t> false" pn="section-4.2">
<name slugifiedName="name-use-of-the-dcsa-attribute">Use of the 'dcsa' A
ttribute</name>
<t indent="0" pn="section-4.2-1">
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" format="default" section
eg"/> Format="of" derivedContent="RFC8864"/>
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 indent="0" pn="section-4.2-2">
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" f ormat="default" derivedLink="https://rfc-editor.org/rfc/rfc8864#section-6.7" der ivedContent="RFC8864"/>.
</t> </t>
<section anchor="sec.sdp.dcsa.trans" title="Maximum Character Transmissi <section anchor="sec.sdp.dcsa.trans" numbered="true" toc="include" remov
on Rate"> eInRFC="false" pn="section-4.2.1">
<t> <name slugifiedName="name-maximum-character-transmiss">Maximum Charact
A 'dcsa' attribute can contain the SDP 'fmtp' attribute used to indi er Transmission Rate</name>
cate <t indent="0" pn="section-4.2.1-1">
a maximum character transmission rate <xref target="RFC4103"/>. The A 'dcsa' attribute can contain the SDP 'fmtp' attribute, which is us
'cps' ed to indicate
a maximum character transmission rate <xref target="RFC4103" format=
"default" sectionFormat="of" derivedContent="RFC4103"/>. 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 indent="0" pn="section-4.2.1-2">
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 indent="0" pn="section-4.2.1-3">
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" sectionFormat="of " derivedContent="RFC4103"/>.
</t> </t>
<t> <t indent="0" pn="section-4.2.1-4">
The offerer and answerer MAY modify the 'cps' attribute parameter va The offerer and answerer <bcp14>MAY</bcp14> modify the 'cps' attribu
lue in subsequent te parameter value in subsequent
offers and answers. offers and answers.
</t> </t>
<t> <t indent="0" pn="section-4.2.1-5">
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 pn="section-4.2.1-6">
<t indent="0" pn="section-4.2.1-6.1">
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" sectionFormat="of" derivedContent="Section 6"/>) 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>
<t> </aside>
<t indent="0" pn="section-4.2.1-7">
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 endpoint
indicate to the sending endpoint that it is not willing to receive m 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" sectionFormat="of" derivedContent="Section 4.2.3"/>) or (2) use a flow-co
a flow control ntrol
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" sectionFormat= "of" derivedContent="T140ad1"/>, and continue to process the received text as
soon as possible. soon as possible.
</t> </t>
<t> <aside pn="section-4.2.1-8">
<t indent="0" pn="section-4.2.1-8.1">
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="include" removeI
nguages"> nRFC="false" pn="section-4.2.2">
<t> <name slugifiedName="name-real-time-text-conversation">Real-Time Text
Conversation Languages</name>
<t indent="0" pn="section-4.2.2-1">
'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" sectionFormat="of" derivedCo ntent="RFC8373"/> to negotiate the language to be used for the real-time
text conversation. text conversation.
</t> </t>
<t> <t indent="0" pn="section-4.2.2-2">
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" sectionFormat="of" derivedContent="RFC8373"/>.
</t> </t>
</section> </section>
<section anchor="sec.sdp.dcsa.dir" title="Real-time Text Direction"> <section anchor="sec.sdp.dcsa.dir" numbered="true" toc="include" removeI
<t> nRFC="false" pn="section-4.2.3">
'dcsa' attributes can contain the SDP 'sendonly', 'recvonly', 'sendr <name slugifiedName="name-real-time-text-direction">Real-Time Text Dir
ecv' and ection</name>
'inactive' attributes <xref target="I-D.ietf-mmusic-rfc4566bis"/> to <t indent="0" pn="section-4.2.3-1">
negotiate the direction in 'dcsa' attributes can contain the SDP 'sendonly', 'recvonly', 'sendr
ecv', and
'inactive' attributes <xref target="RFC4566" format="default" sectio
nFormat="of" derivedContent="RFC4566"/> to negotiate the direction 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 pn="section-4.2.3-2">
NOTE: A WebRTC data channel is always bi-directional. The usage of t <t indent="0" pn="section-4.2.3-2.1">
he 'dcsa' NOTE: A WebRTC data channel is always bidirectional. The usage of th
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>
<t> </aside>
<t indent="0" pn="section-4.2.3-3">
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" sectionFormat="of" derivedContent="RFC3264"/>, 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 indent="0" pn="section-4.2.3-4">
Session-level direction attributes <xref target="I-D.ietf-mmusic-rfc Session-level direction attributes <xref target="RFC4566" format="de
4566bis"/> have no impact fault" sectionFormat="of" derivedContent="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="exclud
> e" removeInRFC="false" pn="section-4.2.3.1">
<t> <name slugifiedName="name-generating-an-offer">Generating an Offer</
name>
<t indent="0" pn="section-4.2.3.1-1">
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 indent="0" pn="section-4.2.3.1-2">
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 indent="0" pn="section-4.2.3.1-3">
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 indent="0" pn="section-4.2.3.1-4">
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 indent="0" pn="section-4.2.3.1-5">
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="exclud
"> e" removeInRFC="false" pn="section-4.2.3.2">
<t> <name slugifiedName="name-generating-an-answer">Generating an Answer
When the answerer accepts an offer, and marks the direction of t </name>
he text <t indent="0" pn="section-4.2.3.2-1">
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 indent="0" pn="section-4.2.3.2-2">
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 indent="0" pn="section-4.2.3.2-3">
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 indent="0" pn="section-4.2.3.2-4">
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 indent="0" pn="section-4.2.3.2-5">
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 indent="0" pn="section-4.2.3.2-6">
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="exclud
Answer"> e" removeInRFC="false" pn="section-4.2.3.3">
<t> <name slugifiedName="name-offerer-receiving-an-answer">Offerer Recei
ving an Answer</name>
<t indent="0" pn="section-4.2.3.3-1">
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 indent="0" pn="section-4.2.3.3-2">
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="exclude" r
<t> emoveInRFC="false" pn="section-4.2.3.4">
<name slugifiedName="name-modifying-the-text-directio">Modifying the
Text Direction</name>
<t indent="0" pn="section-4.2.3.4-1">
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" sectionFormat="of" derivedContent="Section 4.2.3.1"/>.
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" sectionFo
rmat="of" derivedContent="Section 4.2.3.2"/>.
</t> </t>
</section> </section>
</section> </section>
</section> </section>
<section anchor="sec.sdp.ex" title="Examples"> <section anchor="sec.sdp.ex" numbered="true" toc="include" removeInRFC="fa
<t> lse" pn="section-4.3">
Below is an example of an m= section of an offer <name slugifiedName="name-examples">Examples</name>
<t indent="0" pn="section-4.3-1">
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" markers="false" pn="section-4.3-2">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 indent="0" pn="section-4.3-3">
]]></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" markers="false" pn="section-4.3-4">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="include" removeInRFC="false"
<section anchor="sec.t140" title="T.140 Considerations"> pn="section-5">
<section anchor="sec.t140.slf" title="Session Layer Functions"> <name slugifiedName="name-t140-considerations">T.140 Considerations</name>
<t> <section anchor="sec.t140.slf" numbered="true" toc="include" removeInRFC="
Section 6.1 of <xref target="T140"/> describes the generic T.140 ses false" pn="section-5.1">
sion <name slugifiedName="name-session-layer-functions">Session-Layer Functio
control functions at a high-level in a signalling protocol ns</name>
independent manner. The list below describes how the functions <t indent="0" pn="section-5.1-1">
Section 6.1 of <xref target="T140" format="default" sectionFormat="o
f" derivedContent="T140"/> describes the generic T.140 session
control functions at a high level, in a manner that is independent
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" indent="3" pn="section-5.1-2">
data channels <dt pn="section-5.1-2.1">Prepare session:</dt>
using signalling specific means (e.g., using SIP OPTIONS <xref t <dd pn="section-5.1-2.2">An endpoint can indicate its support of T.140
arget="RFC3261"/>), or by indicating the support in an data channels
offer or answer (<xref target="sec.sdp"/>)</t> using signaling-specific means (e.g., using SIP OPTIONS <xref target="R
<t>Initiate session: An offer used to request the establishment of FC3261" format="default" sectionFormat="of" derivedContent="RFC3261"/>) or by in
a dicating the support in an
T.140 data channel (<xref target="sec.sdp"/>)</t> offer or answer (<xref target="sec.sdp" format="default" sectionFormat=
<t>Accept session: An answer used to accept a request to establish "of" derivedContent="Section 4"/>).</dd>
a <dt pn="section-5.1-2.3">Initiate session:</dt>
T.140 data channel (<xref target="sec.sdp"/>)</t> <dd pn="section-5.1-2.4">An offer is used to request the establishment
<t>Deny session: An answer used to reject a request to establish of a
a T.140 data channel, using the generic procedures for rejecting T.140 data channel (<xref target="sec.sdp" format="default" sectionForm
a data channel <xref target="I-D.ietf-mmusic-data-channel-sdpneg at="of" derivedContent="Section 4"/>).</dd>
"/></t> <dt pn="section-5.1-2.5">Accept session:</dt>
<t>Disconnect session: An offer or answer used to disable a previo <dd pn="section-5.1-2.6">An answer is used to accept a request to esta
usly blish a
established T.140 data channel, using the generic procedures for T.140 data channel (<xref target="sec.sdp" format="default" sectionForma
closing t="of" derivedContent="Section 4"/>).</dd>
a data channel <xref target="I-D.ietf-mmusic-data-channel-sdpneg <dt pn="section-5.1-2.7">Deny session:</dt>
"/></t> <dd pn="section-5.1-2.8">An answer is used to reject a request to esta
<t>Data: Data sent on an established T.140 data channel (<xref tar blish
get="sec.t140.send"/>)</t> a T.140 data channel, using the generic procedures for rejecting
</list> a data channel <xref target="RFC8864" format="default" sectionFormat="of
</t> " derivedContent="RFC8864"/>.</dd>
</section> <dt pn="section-5.1-2.9">Disconnect session:</dt>
<section anchor="sec.t140.send" title="Data Encoding and Sending"> <dd pn="section-5.1-2.10">An offer or answer is used to disable a prev
<t> iously
T.140 text is encoded and framed as T140blocks <xref target="RFC4103 established T.140 data channel, using the generic procedures for closin
"/>. g
</t> a data channel <xref target="RFC8864" format="default" sectionFormat="o
<t> f" derivedContent="RFC8864"/>.</dd>
Each T140block is sent on the SCTP stream <xref target="RFC4960"/> u <dt pn="section-5.1-2.11">Data:</dt>
sed to <dd pn="section-5.1-2.12">Data is sent on an established T.140 data ch
annel (<xref target="sec.t140.send" format="default" sectionFormat="of" derivedC
ontent="Section 5.2"/>).</dd>
</dl>
</section>
<section anchor="sec.t140.send" numbered="true" toc="include" removeInRFC=
"false" pn="section-5.2">
<name slugifiedName="name-data-encoding-and-sending">Data Encoding and S
ending</name>
<t indent="0" pn="section-5.2-1">
T.140 text is encoded and framed as T140blocks <xref target="RFC4103
" format="default" sectionFormat="of" derivedContent="RFC4103"/>.
</t>
<t indent="0" pn="section-5.2-2">
Each T140block is sent on the SCTP stream <xref target="RFC4960" for
mat="default" sectionFormat="of" derivedContent="RFC4960"/> 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" sectionFormat="of" derivedConte
e nt="T140"/>. One or more T140blocks can be sent in a single
SCTP user message <xref target="RFC4960"/>. Unlike RTP based transpo SCTP user message <xref target="RFC4960" format="default" sectionFor
rt for mat="of" derivedContent="RFC4960"/>. Unlike RTP-based transport for
real-time text <xref target="RFC4103"/>, T.140 data channels do not real-time text <xref target="RFC4103" format="default" sectionFormat
use redundant ="of" derivedContent="RFC4103"/>, T.140 data 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 indent="0" pn="section-5.2-3">
Data sending procedures conform to <xref target="T140"/>. Data-sending procedures conform to <xref target="T140" format="defau
</t> lt" sectionFormat="of" derivedContent="T140"/>.
<t> </t>
See Section 8 of <xref target="T140"/> for coding details. <t indent="0" pn="section-5.2-4">
</t> See Section 8 of <xref target="T140" format="default" sectionFormat=
<t> "of" derivedContent="T140"/> for coding details.
</t>
<aside pn="section-5.2-5">
<t indent="0" pn="section-5.2-5.1">
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 is not supported. (e.g., ignore and skip them) even if their effect on the presentatio n is not supported.
</t> </t>
</section> </aside>
<section anchor="sec.t140.buff" title="Data Buffering"> </section>
<t> <section anchor="sec.t140.buff" numbered="true" toc="include" removeInRFC=
As described in <xref target="T140"/>, buffering can be used to redu "false" pn="section-5.3">
ce <name slugifiedName="name-data-buffering">Data Buffering</name>
<t indent="0" pn="section-5.3-1">
As described in <xref target="T140" format="default" sectionFormat="
of" derivedContent="T140"/>, buffering can 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 indent="0" pn="section-5.3-2">
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" sect
<t> ionFormat="of" derivedContent="Section 4.2"/>).
</t>
<t indent="0" pn="section-5.3-3">
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" sectionFo
a channels. rmat="of" derivedContent="RFC4103"/>, for T.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="include" removeInRFC=
<t> "false" pn="section-5.4">
In case of network failure or congestion, T.140 data channels might <name slugifiedName="name-loss-of-t140blocks">Loss of T140blocks</name>
fail and get torn down. If this happens but the session sustains, i <t indent="0" pn="section-5.4-1">
t In the case of network failure or congestion, T.140 data channels mi
is RECOMMENDED that implementations try to reestablish the T.140 ght
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" sectionFormat="of" derivedContent="T14
0ad1"/>
or in any other way evident to the user. or in any other way evident to the user.
</t>
<aside pn="section-5.4-2">
<t indent="0" pn="section-5.4-2.1">
NOTE: If the SCTP association <xref target="RFC4960" format="default
" sectionFormat="of" derivedContent="RFC4960"/> used to realize the T.140 data c
hannel
fails and gets torn down, it needs to be reestablished before the T.
140 data channel can be
reestablished. After the T.140 data channel is reestablished, the
procedures defined in this section apply, regardless of whether only
the T.140
data channel or the whole SCTP association got torn down.
</t> </t>
<t> </aside>
NOTE: If the SCTP association <xref target="RFC4960"/> used to reali </section>
ze the T.140 data channel <section anchor="sec.t140.mul" numbered="true" toc="include" removeInRFC="
fails and gets torn down, it needs to be re-established before the T false" pn="section-5.5">
.140 data channel can be <name slugifiedName="name-multi-party-considerations">Multi-party Consid
reestablished. The procedures after the reestablishment of the T.140 erations</name>
data channel defined in <t indent="0" pn="section-5.5-1">
this section apply no matter if only the T.140 data channel, or the
whole SCTP association,
got torn down.
</t>
</section>
<section anchor="sec.t140.mul" title="Multi-party Considerations">
<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" sectionFormat="of" derive
can be used by the offerer to provide additional information about e dContent="Section 4.1"/>)
ach T.140 data channel, and help can be used by the offerer to provide additional information about e
ach T.140 data channel and help
implementations to distinguish between them. implementations to distinguish between them.
</t> </t>
<t> <aside pn="section-5.5-2">
NOTE: Future extensions to T.140, or to the T140block, might allow i <t indent="0" pn="section-5.5-2.1">
ndicating the source NOTE: Future extensions to T.140 or the T140block might permit 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 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 scope of this document. sources separately. The procedures for such a mechanism are outside the scope of this document.
</t> </t>
</section> </aside>
</section>
</section> </section>
<section anchor="sec.gw" numbered="true" toc="include" removeInRFC="false" p
<section anchor="sec.gw" title="Gateway Considerations"> n="section-6">
<t> <name slugifiedName="name-gateway-considerations">Gateway Considerations</
name>
<t indent="0" pn="section-6-1">
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" sectionFormat="of" derivedContent="T140"/>.
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 indent="0" pn="section-6-2">
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" sectionFormat="of" derivedContent="RFC4103"/>. 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" bare="false" empty="false" indent="3" pn="section-6-3
For each T.140 data channel there is an RTP stream for real-time tex ">
t <xref target="RFC4103"/>. <li pn="section-6-3.1">
For each T.140 data channel, there is an RTP stream for real-time te
xt <xref target="RFC4103" format="default" sectionFormat="of" derivedContent="RF
C4103"/>.
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" format="default" sectionFormat="of" derivedContent="RFC8864"/>
is set on it. is set on it.
</t> </li>
<t> <li pn="section-6-3.2">
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 pn="section-6-3.3">
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" sectionFormat="of" de
40 data channel. rivedContent="T140ad1"/> in the data sent on the outgoing T.140 data channel.
</t> </li>
<t> <li pn="section-6-3.4">
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" sectionFormat="of" derivedContent="T1 40ad1"/> in the data sent on the outgoing RTP 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 pn="section-6-3.5">
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" sectionFormat= "of" derivedContent="T140ad1"/> 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 pn="section-6-3.6">
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" sectionFormat="of" d
erivedContent="Section 4.2.3"/>) on the T.140 data channel
and the RTP stream. and the RTP stream.
</t> </li>
</list> </ul>
</t> <aside pn="section-6-4">
<t> <t indent="0" pn="section-6-4.1">
NOTE: In order for the gateway to insert a missing text marker, or to pe NOTE: In order for the gateway to insert a missing text marker or perfor
rform other actions that require that the m other actions that require that the
gateway has access to the T.140 data, the T.140 data cannot be encrypted gateway have access to the T.140 data, the T.140 data cannot be
end-to-end between the T.140 data channel endpoint encrypted 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 pn="section-6-5">
<t indent="0" pn="section-6-5.1">NOTE: The guidance and considerations a
bove 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="include" removeInRFC="false"
<t> pn="section-7">
This document updates RFC 8373 <xref target="RFC8373"/>, by defining h <name slugifiedName="name-update-to-rfc-8373">Update to RFC 8373</name>
ow the SDP hlang-send and hlang-recv attributes are used for <t indent="0" pn="section-7-1">
This document updates <xref target="RFC8373" format="default" sectionF
ormat="of" derivedContent="RFC8373"/> by defining 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 indent="0" pn="section-7-2">
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="include" removeInRFC="false"
<t> pn="section-8">
<name slugifiedName="name-security-considerations">Security Considerations
</name>
<t indent="0" pn="section-8-1">
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" format="default" sectionFormat="of" derivedCont
<xref target="I-D.ietf-rtcweb-security"/>. ent="RFC8826"/> and <xref target="RFC8827" format="default" sectionFormat="of" d
</t> erivedContent="RFC8827"/>.
<t> </t>
<t indent="0" pn="section-8-2">
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" format="default" sectionFormat=" of" derivedContent="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>
<t> <t indent="0" pn="section-8-3">
The generic security considerations for the SDP-based external The generic security considerations for negotiating data channels
negotiation method are defined in <xref target="I-D.ietf-mmusic-data-c using the SDP offer/answer mechanism are defined in <xref target="RFC8
hannel-sdpneg"/>. 864" format="default" sectionFormat="of" derivedContent="RFC8864"/>.
There are no additional T.140 data channel specific security considera There are no additional security considerations specific to T.140 data
tions. channels.
</t> </t>
<t> <t indent="0" pn="section-8-4">
When performing interworking between T.140 data channels and real-time When performing interworking between T.140 data channels and
text and RTP-based T.140 transport <xref target="RFC4103" format="default" sect
the RTP based mechanism defined in <xref target="RFC4103"/>, in order ionFormat="of" derivedContent="RFC4103"/>, in order for a gateway to
for a gateway to insert a missing text marker or perform other actions that require tha
insert a missing text marker, or to perform other actions that require t the
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 encrypt encrypted end to end
ed end-to-end
between the T.140 data channel endpoint and the RTP endpoint. between the T.140 data channel endpoint and the RTP endpoint.
</t> </t>
</section> </section>
<section anchor="sec.iana" title="IANA considerations"> <section anchor="sec.iana" numbered="true" toc="include" removeInRFC="false"
<t> pn="section-9">
[RFC EDITOR NOTE: Please replace all instances of RFCXXXX with the RFC n <name slugifiedName="name-iana-considerations">IANA Considerations</name>
umber of this document.] <section anchor="sec.iana.sub" numbered="true" toc="include" removeInRFC="
</t> false" pn="section-9.1">
<section anchor="sec.iana.sub" title="Subprotocol Identifier t140"> <name slugifiedName="name-subprotocol-identifier-t140">Subprotocol Ident
<t> ifier "t140"</name>
This document adds the subprotocol identifier "t140" to the "WebSocket <t indent="0" pn="section-9.1-1">
Subprotocol Name Registry" as follows: Per this document, the subprotocol identifier "t140" has been added
to the "WebSocket Subprotocol Name Registry" as follows:
</t> </t>
<texttable title=""> <dl newline="false" spacing="normal" indent="3" pn="section-9.1-2">
<ttcol align='left' width='30%'/> <dt pn="section-9.1-2.1">Subprotocol Identifier:</dt>
<ttcol align='left'/> <dd pn="section-9.1-2.2">t140</dd>
<dt pn="section-9.1-2.3">Subprotocol Common Name:</dt>
<c>Subprotocol Identifier:</c> <dd pn="section-9.1-2.4">ITU-T T.140 Real-Time Text</dd>
<c>t140</c> <dt pn="section-9.1-2.5">Subprotocol Definition:</dt>
<dd pn="section-9.1-2.6">RFC 8865</dd>
<c>Subprotocol Common Name:</c> <dt pn="section-9.1-2.7">Reference:</dt>
<c>ITU-T T.140 Real-Time Text</c> <dd pn="section-9.1-2.8">RFC 8865</dd>
</dl>
<c>Subprotocol Definition:</c>
<c>RFCXXXX</c>
<c>Reference:</c>
<c>RFCXXXX</c>
</texttable>
</section> </section>
<section anchor="sec.iana.dcsa.fmtp" numbered="true" toc="include" removeI
<section title="SDP fmtp Attribute" anchor="sec.iana.dcsa.fmtp"> nRFC="false" pn="section-9.2">
<t> <name slugifiedName="name-sdp-fmtp-attribute">SDP 'fmtp' Attribute</name
>
<t indent="0" pn="section-9.2-1">
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" sect
ionFormat="of" derivedContent="Section 4.2.1"/>.
</t> </t>
<t> <t indent="0" pn="section-9.2-2">
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 th
fmtp' attribute in the Session Description e 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" indent="3" pn="section-9.2-3">
<ttcol align='left' width='35%'/> <dt pn="section-9.2-3.1">Contact name:</dt>
<ttcol align='left' width='65%'/> <dd pn="section-9.2-3.2">IESG</dd>
<dt pn="section-9.2-3.3">Contact email:</dt>
<c>Contact name:</c> <dd pn="section-9.2-3.4">iesg@ietf.org</dd>
<c>IESG</c> <dt pn="section-9.2-3.5">Attribute name:</dt>
<dd pn="section-9.2-3.6">fmtp</dd>
<c>Contact email:</c> <dt pn="section-9.2-3.7">Usage level:</dt>
<c>iesg@ietf.org</c> <dd pn="section-9.2-3.8">dcsa (t140)</dd>
<dt pn="section-9.2-3.9">Purpose:</dt>
<c>Attribute name:</c> <dd pn="section-9.2-3.10">Indicate format parameters for a T.140 data
<c>fmtp</c> channel, such as maximum character transmission rates.</dd>
<dt pn="section-9.2-3.11">Reference:</dt>
<c>Usage level:</c> <dd pn="section-9.2-3.12">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="include" remove
<section title="SDP Language Attributes" anchor="sec.iana.dcsa.hlang"> InRFC="false" pn="section-9.3">
<t> <name slugifiedName="name-sdp-language-attributes">SDP Language Attribut
es</name>
<t indent="0" pn="section-9.3-1">
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" sectionFormat="of" derivedContent="Section 4.2.2"/>.
</t> </t>
<t> <t indent="0" pn="section-9.3-2">
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 th
hland-send' attribute in the Session Description e 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" indent="3" pn="section-9.3-3">
<ttcol align='left' width='35%'/> <dt pn="section-9.3-3.1">Contact name:</dt>
<ttcol align='left' width='65%'/> <dd pn="section-9.3-3.2">IESG</dd>
<dt pn="section-9.3-3.3">Contact email:</dt>
<c>Contact name:</c> <dd pn="section-9.3-3.4">iesg@ietf.org</dd>
<c>IESG</c> <dt pn="section-9.3-3.5">Attribute name:</dt>
<dd pn="section-9.3-3.6">hlang-send</dd>
<c>Contact email:</c> <dt pn="section-9.3-3.7">Usage level:</dt>
<c>iesg@ietf.org</c> <dd pn="section-9.3-3.8">dcsa (t140)</dd>
<dt pn="section-9.3-3.9">Purpose:</dt>
<c>Attribute name:</c> <dd pn="section-9.3-3.10">Negotiate the language to be used on a T.140
<c>hlang-send</c> data channel.</dd>
<dt pn="section-9.3-3.11">Reference:</dt>
<c>Usage level:</c> <dd pn="section-9.3-3.12">RFC 8865</dd>
<c>dcsa(t140)</c> </dl>
<t indent="0" pn="section-9.3-4">
<c>Purpose:</c> The usage level "dcsa (t140)" has been added to the registration of th
<c> e SDP 'hlang-recv' attribute in the "Session Description
Negotiate the language to be used on a T.140 data channel. Protocol (SDP) Parameters" registry as follows:
</c>
<c>Reference:</c>
<c>RFCXXXX</c>
</texttable>
<t>
The usage level "dcsa(t140)" is added to the registration of the SDP '
hland-recv' attribute in the Session Description
Protocol (SDP) Parameters registry as follows:
</t> </t>
<texttable title=""> <dl newline="false" spacing="normal" indent="3" pn="section-9.3-5">
<ttcol align='left' width='35%'/> <dt pn="section-9.3-5.1">Contact name:</dt>
<ttcol align='left' width='65%'/> <dd pn="section-9.3-5.2">IESG</dd>
<dt pn="section-9.3-5.3">Contact email:</dt>
<c>Contact name:</c> <dd pn="section-9.3-5.4">iesg@ietf.org</dd>
<c>IESG</c> <dt pn="section-9.3-5.5">Attribute name:</dt>
<dd pn="section-9.3-5.6">hlang-recv</dd>
<c>Contact email:</c> <dt pn="section-9.3-5.7">Usage level:</dt>
<c>iesg@ietf.org</c> <dd pn="section-9.3-5.8">dcsa (t140)</dd>
<dt pn="section-9.3-5.9">Purpose:</dt>
<c>Attribute name:</c> <dd pn="section-9.3-5.10">Negotiate the language to be used on a T.140
<c>hlang-recv</c> data channel.</dd>
<dt pn="section-9.3-5.11">Reference:</dt>
<c>Usage level:</c> <dd pn="section-9.3-5.12">RFC 8865</dd>
<c>dcsa(t140)</c> </dl>
<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="include" re
<section title="SDP Media Direction Attributes" anchor="sec.iana.dcsa.dire moveInRFC="false" pn="section-9.4">
ction"> <name slugifiedName="name-sdp-media-direction-attribu">SDP Media Directi
<t> on Attributes</name>
This document modifies the usage of the SDP 'sendonly', 'recvonly', 's <t indent="0" pn="section-9.4-1">
endrecv' and 'inactive' attributes, This document modifies the usage of the SDP 'sendonly', 'recvonly', 's
if these attributes are included in SDP 'dcsa' attributes associated T endrecv', and 'inactive' attributes,
.140 data channel. The modified usage if these attributes are included in SDP 'dcsa' attributes associated
is described in <xref target="sec.sdp.dcsa.dir"/>. with a T.140 data channel. The modified usage
is described in <xref target="sec.sdp.dcsa.dir" format="default" secti
onFormat="of" derivedContent="Section 4.2.3"/>.
</t> </t>
<t> <t indent="0" pn="section-9.4-2">
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 th
sendonly' attribute in the Session Description e 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" indent="3" pn="section-9.4-3">
<ttcol align='left' width='35%'/> <dt pn="section-9.4-3.1">Contact name:</dt>
<ttcol align='left' width='65%'/> <dd pn="section-9.4-3.2">IESG</dd>
<dt pn="section-9.4-3.3">Contact email:</dt>
<c>Contact name:</c> <dd pn="section-9.4-3.4">iesg@ietf.org</dd>
<c>IESG</c> <dt pn="section-9.4-3.5">Attribute name:</dt>
<dd pn="section-9.4-3.6">sendonly</dd>
<c>Contact email:</c> <dt pn="section-9.4-3.7">Usage level:</dt>
<c>iesg@ietf.org</c> <dd pn="section-9.4-3.8">dcsa (t140)</dd>
<dt pn="section-9.4-3.9">Purpose:</dt>
<c>Attribute name:</c> <dd pn="section-9.4-3.10">Negotiate the direction in which real-time t
<c>sendonly</c> ext can be sent on a T.140 data channel.</dd>
<dt pn="section-9.4-3.11">Reference:</dt>
<c>Usage level:</c> <dd pn="section-9.4-3.12">RFC 8865</dd>
<c>dcsa(t140)</c> </dl>
<t indent="0" pn="section-9.4-4">
<c>Purpose:</c> The usage level "dcsa (t140)" has been added to the registration of th
<c> e SDP 'recvonly' attribute in the "Session Description
Negotiate the direction in which real-time text can be sent on a T.1 Protocol (SDP) Parameters" registry as follows:
40 data channel.
</c>
<c>Reference:</c>
<c>RFCXXXX</c>
</texttable>
<t>
The usage level "dcsa(t140)" is added to the registration of the SDP '
recvonly' attribute in the Session Description
Protocol (SDP) Parameters registry as follows:
</t> </t>
<texttable title=""> <dl newline="false" spacing="normal" indent="3" pn="section-9.4-5">
<ttcol align='left' width='35%'/> <dt pn="section-9.4-5.1">Contact name:</dt>
<ttcol align='left' width='65%'/> <dd pn="section-9.4-5.2">IESG</dd>
<dt pn="section-9.4-5.3">Contact email:</dt>
<c>Contact name:</c> <dd pn="section-9.4-5.4">iesg@ietf.org</dd>
<c>IESG</c> <dt pn="section-9.4-5.5">Attribute name:</dt>
<dd pn="section-9.4-5.6">recvonly</dd>
<c>Contact email:</c> <dt pn="section-9.4-5.7">Usage level:</dt>
<c>iesg@ietf.org</c> <dd pn="section-9.4-5.8">dcsa (t140)</dd>
<dt pn="section-9.4-5.9">Purpose:</dt>
<c>Attribute name:</c> <dd pn="section-9.4-5.10">Negotiate the direction in which real-time t
<c>recvonly</c> ext can be sent on a T.140 data channel.</dd>
<dt pn="section-9.4-5.11">Reference:</dt>
<c>Usage level:</c> <dd pn="section-9.4-5.12">RFC 8865</dd>
<c>dcsa(t140)</c> </dl>
<t indent="0" pn="section-9.4-6">
<c>Purpose:</c> The usage level "dcsa (t140)" has been added to the registration of th
<c> e SDP 'sendrecv' attribute in the "Session Description
Negotiate the direction in which real-time text can be sent on a T.1 Protocol (SDP) Parameters" registry as follows:
40 data channel.
</c>
<c>Reference:</c>
<c>RFCXXXX</c>
</texttable>
<t>
The usage level "dcsa(t140)" is added to the registration of the SDP '
sendrecv' attribute in the Session Description
Protocol (SDP) Parameters registry as follows:
</t> </t>
<texttable title=""> <dl newline="false" spacing="normal" indent="3" pn="section-9.4-7">
<ttcol align='left' width='35%'/> <dt pn="section-9.4-7.1">Contact name:</dt>
<ttcol align='left' width='65%'/> <dd pn="section-9.4-7.2">IESG</dd>
<dt pn="section-9.4-7.3">Contact email:</dt>
<c>Contact name:</c> <dd pn="section-9.4-7.4">iesg@ietf.org</dd>
<c>IESG</c> <dt pn="section-9.4-7.5">Attribute name:</dt>
<dd pn="section-9.4-7.6">sendrecv</dd>
<c>Contact email:</c> <dt pn="section-9.4-7.7">Usage level:</dt>
<c>iesg@ietf.org</c> <dd pn="section-9.4-7.8">dcsa (t140)</dd>
<dt pn="section-9.4-7.9">Purpose:</dt>
<c>Attribute name:</c> <dd pn="section-9.4-7.10">Negotiate the direction in which real-time t
<c>sendrecv</c> ext can be sent on a T.140 data channel.</dd>
<dt pn="section-9.4-7.11">Reference:</dt>
<c>Usage level:</c> <dd pn="section-9.4-7.12">RFC 8865</dd>
<c>dcsa(t140)</c> </dl>
<t indent="0" pn="section-9.4-8">
<c>Purpose:</c> The usage level "dcsa (t140)" has been added to the registration of th
<c> e SDP 'inactive' attribute in the "Session Description
Negotiate the direction in which real-time text can be sent on a T.1 Protocol (SDP) Parameters" registry as follows:
40 data channel.
</c>
<c>Reference:</c>
<c>RFCXXXX</c>
</texttable>
<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> </t>
<texttable title=""> <dl newline="false" spacing="normal" indent="3" pn="section-9.4-9">
<ttcol align='left' width='35%'/> <dt pn="section-9.4-9.1">Contact name:</dt>
<ttcol align='left' width='65%'/> <dd pn="section-9.4-9.2">IESG</dd>
<dt pn="section-9.4-9.3">Contact email:</dt>
<c>Contact name:</c> <dd pn="section-9.4-9.4">iesg@ietf.org</dd>
<c>IESG</c> <dt pn="section-9.4-9.5">Attribute name:</dt>
<dd pn="section-9.4-9.6">inactive</dd>
<c>Contact email:</c> <dt pn="section-9.4-9.7">Usage level:</dt>
<c>iesg@ietf.org</c> <dd pn="section-9.4-9.8">dcsa (t140)</dd>
<dt pn="section-9.4-9.9">Purpose:</dt>
<c>Attribute name:</c> <dd pn="section-9.4-9.10">Negotiate the direction in which real-time t
<c>inactive</c> ext can be sent on a T.140 data channel.</dd>
<dt pn="section-9.4-9.11">Reference:</dt>
<c>Usage level:</c> <dd pn="section-9.4-9.12">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>
</section> </section>
</section> </section>
<section anchor="sec.acks" title="Acknowledgements" toc="default">
<t>
This document is based on an earlier Internet draft edited by Keith Drag
e,
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 dr
aft.
</t>
</section>
</middle> </middle>
<back> <back>
<references title="Normative References"> <references pn="section-10">
<?rfc include="reference.RFC.2119"?> <name slugifiedName="name-references">References</name>
<?rfc include="reference.RFC.3264"?> <references pn="section-10.1">
<?rfc include="reference.RFC.4103"?> <name slugifiedName="name-normative-references">Normative References</na
<?rfc include="reference.RFC.4960"?> me>
<?rfc include="reference.RFC.8174"?> <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2
<?rfc include="reference.RFC.8373"?> 119" quoteTitle="true" derivedAnchor="RFC2119">
<?rfc include='reference.I-D.ietf-mmusic-rfc4566bis'?> <front>
<?rfc include='reference.I-D.ietf-rtcweb-data-channel'?> <title>Key words for use in RFCs to Indicate Requirement Levels</tit
<?rfc include='reference.I-D.ietf-mmusic-data-channel-sdpneg'?> le>
<?rfc include='reference.I-D.ietf-rtcweb-security-arch'?> <author initials="S." surname="Bradner" fullname="S. Bradner">
<?rfc include='reference.I-D.ietf-rtcweb-security'?> <organization showOnFrontPage="true"/>
<reference anchor="T140"> </author>
<front> <date year="1997" month="March"/>
<title>Recommendation ITU-T T.140 (02/1998), Protocol for <abstract>
multimedia application text conversation</title> <t indent="0">In many standards track documents several words are
<author><organization>ITU-T</organization></author> used to signify the requirements in the specification. These words are often ca
<date year="1998" month="February"/> pitalized. This document defines these words as they should be interpreted in IE
</front> TF documents. This document specifies an Internet Best Current Practices for th
<format type="HTML" target="https://www.itu.int/rec/T-REC-T.140-199802-I e Internet Community, and requests discussion and suggestions for improvements.<
/en"/> /t>
</reference> </abstract>
<reference anchor="T140ad1"> </front>
<front> <seriesInfo name="BCP" value="14"/>
<title>Recommendation ITU-T.140 Addendum 1 - (02/2000), Protocol for <seriesInfo name="RFC" value="2119"/>
multimedia application text conversation</title> <seriesInfo name="DOI" value="10.17487/RFC2119"/>
<author><organization>ITU-T</organization></author> </reference>
<date year="2000" month="February"/> <reference anchor="RFC3264" target="https://www.rfc-editor.org/info/rfc3
</front> 264" quoteTitle="true" derivedAnchor="RFC3264">
<format type="HTML" target="https://www.itu.int/rec/T-REC-T.140-200002-I <front>
!Add1/en"/> <title>An Offer/Answer Model with Session Description Protocol (SDP)
</reference> </title>
</references> <author initials="J." surname="Rosenberg" fullname="J. Rosenberg">
<references title="Informative References"> <organization showOnFrontPage="true"/>
<?rfc include="reference.RFC.3261"?> </author>
<?rfc include="reference.RFC.3550"?> <author initials="H." surname="Schulzrinne" fullname="H. Schulzrinne
<?rfc include='reference.I-D.ietf-rtcweb-data-protocol'?> ">
<organization showOnFrontPage="true"/>
</author>
<date year="2002" month="June"/>
<abstract>
<t indent="0">This document defines a mechanism by which two entit
ies can make use of the Session Description Protocol (SDP) to arrive at a common
view of a multimedia session between them. In the model, one participant offer
s the other a description of the desired session from their perspective, and the
other participant answers with the desired session from their perspective. Thi
s offer/answer model is most useful in unicast sessions where information from b
oth participants is needed for the complete view of the session. The offer/answ
er model is used by protocols like the Session Initiation Protocol (SIP). [STAN
DARDS-TRACK]</t>
</abstract>
</front>
<seriesInfo name="RFC" value="3264"/>
<seriesInfo name="DOI" value="10.17487/RFC3264"/>
</reference>
<reference anchor="RFC4103" target="https://www.rfc-editor.org/info/rfc4
103" quoteTitle="true" derivedAnchor="RFC4103">
<front>
<title>RTP Payload for Text Conversation</title>
<author initials="G." surname="Hellstrom" fullname="G. Hellstrom">
<organization showOnFrontPage="true"/>
</author>
<author initials="P." surname="Jones" fullname="P. Jones">
<organization showOnFrontPage="true"/>
</author>
<date year="2005" month="June"/>
<abstract>
<t indent="0">This memo obsoletes RFC 2793; it describes how to ca
rry real-time text conversation session contents in RTP packets. Text conversat
ion session contents are specified in ITU-T Recommendation T.140.</t>
<t indent="0">One payload format is described for transmitting tex
t on a separate RTP session dedicated for the transmission of text.</t>
<t indent="0">This RTP payload description recommends a method to
include redundant text from already transmitted packets in order to reduce the r
isk of text loss caused by packet loss. [STANDARDS-TRACK]</t>
</abstract>
</front>
<seriesInfo name="RFC" value="4103"/>
<seriesInfo name="DOI" value="10.17487/RFC4103"/>
</reference>
<reference anchor="RFC4566" target="https://www.rfc-editor.org/info/rfc4
566" quoteTitle="true" derivedAnchor="RFC4566">
<front>
<title>SDP: Session Description Protocol</title>
<author initials="M." surname="Handley" fullname="M. Handley">
<organization showOnFrontPage="true"/>
</author>
<author initials="V." surname="Jacobson" fullname="V. Jacobson">
<organization showOnFrontPage="true"/>
</author>
<author initials="C." surname="Perkins" fullname="C. Perkins">
<organization showOnFrontPage="true"/>
</author>
<date year="2006" month="July"/>
<abstract>
<t indent="0">This memo defines the Session Description Protocol (
SDP). SDP is intended for describing multimedia sessions for the purposes of se
ssion announcement, session invitation, and other forms of multimedia session in
itiation. [STANDARDS-TRACK]</t>
</abstract>
</front>
<seriesInfo name="RFC" value="4566"/>
<seriesInfo name="DOI" value="10.17487/RFC4566"/>
</reference>
<reference anchor="RFC4960" target="https://www.rfc-editor.org/info/rfc4
960" quoteTitle="true" derivedAnchor="RFC4960">
<front>
<title>Stream Control Transmission Protocol</title>
<author initials="R." surname="Stewart" fullname="R. Stewart" role="
editor">
<organization showOnFrontPage="true"/>
</author>
<date year="2007" month="September"/>
<abstract>
<t indent="0">This document obsoletes RFC 2960 and RFC 3309. It d
escribes the Stream Control Transmission Protocol (SCTP). SCTP is designed to t
ransport Public Switched Telephone Network (PSTN) signaling messages over IP net
works, but is capable of broader applications.</t>
<t indent="0">SCTP is a reliable transport protocol operating on t
op of a connectionless packet network such as IP. It offers the following servi
ces to its users:</t>
<t indent="0">-- acknowledged error-free non-duplicated transfer
of user data,</t>
<t indent="0">-- data fragmentation to conform to discovered path
MTU size,</t>
<t indent="0">-- sequenced delivery of user messages within multi
ple streams, with an option for order-of-arrival delivery of individual user mes
sages,</t>
<t indent="0">-- optional bundling of multiple user messages into
a single SCTP packet, and</t>
<t indent="0">-- network-level fault tolerance through supporting
of multi-homing at either or both ends of an association.</t>
<t indent="0"> The design of SCTP includes appropriate congestion
avoidance behavior and resistance to flooding and masquerade attacks. [STANDARD
S-TRACK]</t>
</abstract>
</front>
<seriesInfo name="RFC" value="4960"/>
<seriesInfo name="DOI" value="10.17487/RFC4960"/>
</reference>
<reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8
174" quoteTitle="true" derivedAnchor="RFC8174">
<front>
<title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</ti
tle>
<author initials="B." surname="Leiba" fullname="B. Leiba">
<organization showOnFrontPage="true"/>
</author>
<date year="2017" month="May"/>
<abstract>
<t indent="0">RFC 2119 specifies common key words that may be used
in protocol specifications. This document aims to reduce the ambiguity by cla
rifying that only UPPERCASE usage of the key words have the defined special mea
nings.</t>
</abstract>
</front>
<seriesInfo name="BCP" value="14"/>
<seriesInfo name="RFC" value="8174"/>
<seriesInfo name="DOI" value="10.17487/RFC8174"/>
</reference>
<reference anchor="RFC8373" target="https://www.rfc-editor.org/info/rfc8
373" quoteTitle="true" derivedAnchor="RFC8373">
<front>
<title>Negotiating Human Language in Real-Time Communications</title
>
<author initials="R." surname="Gellens" fullname="R. Gellens">
<organization showOnFrontPage="true"/>
</author>
<date year="2018" month="May"/>
<abstract>
<t indent="0">Users have various human (i.e., natural) language ne
eds, abilities, and preferences regarding spoken, written, and signed languages.
This document defines new Session Description Protocol (SDP) media- level attri
butes so that when establishing interactive communication sessions ("calls"), it
is possible to negotiate (i.e., communicate and match) the caller's language an
d media needs with the capabilities of the called party. This is especially imp
ortant for emergency calls, because it allows for a call to be handled by a call
taker capable of communicating with the user or for a translator or relay opera
tor to be bridged into the call during setup. However, this also applies to non
-emergency calls (for example, calls to a company call center).</t>
<t indent="0">This document describes the need as well as a soluti
on that uses new SDP media attributes.</t>
</abstract>
</front>
<seriesInfo name="RFC" value="8373"/>
<seriesInfo name="DOI" value="10.17487/RFC8373"/>
</reference>
<reference anchor="RFC8826" target="https://www.rfc-editor.org/info/rfc8
826" quoteTitle="true" derivedAnchor="RFC8826">
<front>
<title>Security Considerations for WebRTC</title>
<author initials="E." surname="Rescorla" fullname="Eric Rescorla">
<organization showOnFrontPage="true"/>
</author>
<date month="January" year="2021"/>
</front>
<seriesInfo name="RFC" value="8826"/>
<seriesInfo name="DOI" value="10.17487/RFC8826"/>
</reference>
<reference anchor="RFC8827" target="https://www.rfc-editor.org/info/rfc8
827" quoteTitle="true" derivedAnchor="RFC8827">
<front>
<title>WebRTC Security Architecture</title>
<author initials="E." surname="Rescorla" fullname="Eric Rescorla">
<organization showOnFrontPage="true"/>
</author>
<date month="January" year="2021"/>
</front>
<seriesInfo name="RFC" value="8827"/>
<seriesInfo name="DOI" value="10.17487/RFC8827"/>
</reference>
<reference anchor="RFC8831" target="https://www.rfc-editor.org/info/rfc8
831" quoteTitle="true" derivedAnchor="RFC8831">
<front>
<title>WebRTC Data Channels</title>
<author initials="R" surname="Jesup" fullname="Randell Jesup">
<organization showOnFrontPage="true"/>
</author>
<author initials="S" surname="Loreto" fullname="Salvatore Loreto">
<organization showOnFrontPage="true"/>
</author>
<author initials="M" surname="Tüxen" fullname="Michael Tüxen">
<organization showOnFrontPage="true"/>
</author>
<date month="January" year="2021"/>
</front>
<seriesInfo name="RFC" value="8831"/>
<seriesInfo name="DOI" value="10.17487/RFC8831"/>
</reference>
<reference anchor="RFC8864" target="https://www.rfc-editor.org/info/rfc8
864" quoteTitle="true" derivedAnchor="RFC8864">
<front>
<title>Negotiation Data Channels Using the Session Description Proto
col (SDP)</title>
<author fullname="Keith Drage" initials="K." surname="Drage">
<organization showOnFrontPage="true">Unaffiliated</organization>
</author>
<author fullname="Raju Makaraju" initials="M." surname="Makaraju">
<organization showOnFrontPage="true">Nokia</organization>
</author>
<author fullname="Richard Ejzak" initials="R." surname="Ejzak">
<organization showOnFrontPage="true">Unaffiliated</organization>
</author>
<author fullname="Jerome Marcon" initials="J." surname="Marcon">
<organization showOnFrontPage="true">Unaffiliated</organization>
</author>
<author fullname="Roni Even" initials="R." surname="Even" role="edit
or">
<organization showOnFrontPage="true">Huawei</organization>
</author>
<date month="January" year="2021"/>
</front>
<seriesInfo name="RFC" value="8864"/>
<seriesInfo name="DOI" value="10.17487/RFC8864"/>
</reference>
<reference anchor="T140" target="https://www.itu.int/rec/T-REC-T.140-199
802-I/en" quoteTitle="true" derivedAnchor="T140">
<front>
<title>Protocol for multimedia application text conversation</title>
<author>
<organization showOnFrontPage="true">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" quoteTitle="true" derivedAnchor="T140ad1">
<front>
<title>Recommendation ITU-T.140 Addendum 1 (02/2000), Protocol for m
ultimedia application text conversation</title>
<author>
<organization showOnFrontPage="true">ITU-T</organization>
</author>
<date year="2000" month="February"/>
</front>
</reference>
</references>
<references pn="section-10.2">
<name slugifiedName="name-informative-references">Informative References
</name>
<reference anchor="RFC3261" target="https://www.rfc-editor.org/info/rfc3
261" quoteTitle="true" derivedAnchor="RFC3261">
<front>
<title>SIP: Session Initiation Protocol</title>
<author initials="J." surname="Rosenberg" fullname="J. Rosenberg">
<organization showOnFrontPage="true"/>
</author>
<author initials="H." surname="Schulzrinne" fullname="H. Schulzrinne
">
<organization showOnFrontPage="true"/>
</author>
<author initials="G." surname="Camarillo" fullname="G. Camarillo">
<organization showOnFrontPage="true"/>
</author>
<author initials="A." surname="Johnston" fullname="A. Johnston">
<organization showOnFrontPage="true"/>
</author>
<author initials="J." surname="Peterson" fullname="J. Peterson">
<organization showOnFrontPage="true"/>
</author>
<author initials="R." surname="Sparks" fullname="R. Sparks">
<organization showOnFrontPage="true"/>
</author>
<author initials="M." surname="Handley" fullname="M. Handley">
<organization showOnFrontPage="true"/>
</author>
<author initials="E." surname="Schooler" fullname="E. Schooler">
<organization showOnFrontPage="true"/>
</author>
<date year="2002" month="June"/>
<abstract>
<t indent="0">This document describes Session Initiation Protocol
(SIP), an application-layer control (signaling) protocol for creating, modifying
, and terminating sessions with one or more participants. These sessions includ
e Internet telephone calls, multimedia distribution, and multimedia conferences.
[STANDARDS-TRACK]</t>
</abstract>
</front>
<seriesInfo name="RFC" value="3261"/>
<seriesInfo name="DOI" value="10.17487/RFC3261"/>
</reference>
<reference anchor="RFC3550" target="https://www.rfc-editor.org/info/rfc3
550" quoteTitle="true" derivedAnchor="RFC3550">
<front>
<title>RTP: A Transport Protocol for Real-Time Applications</title>
<author initials="H." surname="Schulzrinne" fullname="H. Schulzrinne
">
<organization showOnFrontPage="true"/>
</author>
<author initials="S." surname="Casner" fullname="S. Casner">
<organization showOnFrontPage="true"/>
</author>
<author initials="R." surname="Frederick" fullname="R. Frederick">
<organization showOnFrontPage="true"/>
</author>
<author initials="V." surname="Jacobson" fullname="V. Jacobson">
<organization showOnFrontPage="true"/>
</author>
<date year="2003" month="July"/>
<abstract>
<t indent="0">This memorandum describes RTP, the real-time transpo
rt protocol. RTP provides end-to-end network transport functions suitable for a
pplications transmitting real-time data, such as audio, video or simulation data
, over multicast or unicast network services. RTP does not address resource res
ervation and does not guarantee quality-of- service for real-time services. The
data transport is augmented by a control protocol (RTCP) to allow monitoring of
the data delivery in a manner scalable to large multicast networks, and to prov
ide minimal control and identification functionality. RTP and RTCP are designed
to be independent of the underlying transport and network layers. The protocol
supports the use of RTP-level translators and mixers. Most of the text in this
memorandum is identical to RFC 1889 which it obsoletes. There are no changes in
the packet formats on the wire, only changes to the rules and algorithms govern
ing how the protocol is used. The biggest change is an enhancement to the scalab
le timer algorithm for calculating when to send RTCP packets in order to minimiz
e transmission in excess of the intended rate when many participants join a sess
ion simultaneously. [STANDARDS-TRACK]</t>
</abstract>
</front>
<seriesInfo name="STD" value="64"/>
<seriesInfo name="RFC" value="3550"/>
<seriesInfo name="DOI" value="10.17487/RFC3550"/>
</reference>
<reference anchor="RFC8832" target="https://www.rfc-editor.org/info/rfc8
832" quoteTitle="true" derivedAnchor="RFC8832">
<front>
<title>WebRTC Data Channel Establishment Protocol</title>
<author initials="R." surname="Jesup" fullname="Randell Jesup">
<organization showOnFrontPage="true"/>
</author>
<author initials="S." surname="Loreto" fullname="Salvatore Loreto">
<organization showOnFrontPage="true"/>
</author>
<author initials="M" surname="Tüxen" fullname="Michael Tüxen">
<organization showOnFrontPage="true"/>
</author>
<date month="January" year="2021"/>
</front>
<seriesInfo name="RFC" value="8832"/>
<seriesInfo name="DOI" value="10.17487/RFC8832"/>
</reference>
</references>
</references> </references>
<section anchor="sec.acks" toc="include" numbered="false" removeInRFC="false
" pn="section-appendix.a">
<name slugifiedName="name-acknowledgements">Acknowledgements</name>
<t indent="0" pn="section-appendix.a-1">
This document is based on an earlier Internet-Draft edited by <contact f
ullname="Keith Drage"/>,
<contact fullname="Juergen Stoetzer-Bradler"/>, and <contact fullname="A
lbrecht Schwarz"/>.
</t>
<t indent="0" pn="section-appendix.a-2">
<contact fullname="Thomas Belling"/> provided useful comments on the ini
tial (pre‑submission) version
of the current document. <contact fullname="Paul Kyzivat"/> and <contact
fullname="Bernard Aboba"/> provided comments on the document.
</t>
</section>
<section anchor="authors-addresses" numbered="false" removeInRFC="false" toc
="include" pn="section-appendix.b">
<name slugifiedName="name-authors-addresses">Authors' Addresses</name>
<author initials="C." surname="Holmberg" fullname="Christer Holmberg">
<organization showOnFrontPage="true">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>
<author initials="G." surname="Hellström" fullname="Gunnar Hellström">
<organization showOnFrontPage="true">Gunnar Hellström Accessible Communi
cation</organization>
<address>
<postal>
<street>Esplanaden 30</street>
<code>136 70</code>
<city>Vendelsö</city>
<country>Sweden</country>
</postal>
<email>gunnar.hellstrom@ghaccess.se</email>
</address>
</author>
</section>
</back> </back>
</rfc> </rfc>
 End of changes. 159 change blocks. 
871 lines changed or deleted 1537 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/