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