draft-ietf-mmusic-t140-usage-data-channel-08.txt   draft-ietf-mmusic-t140-usage-data-channel-09.txt 
MMUSIC Working Group C. Holmberg MMUSIC Working Group C. Holmberg
Internet-Draft Ericsson Internet-Draft Ericsson
Updates: 8373 (if approved) November 19, 2019 Updates: 8373 (if approved) November 29, 2019
Intended status: Standards Track Intended status: Standards Track
Expires: May 22, 2020 Expires: June 1, 2020
T.140 Real-time Text Conversation over WebRTC Data Channels T.140 Real-time Text Conversation over WebRTC Data Channels
draft-ietf-mmusic-t140-usage-data-channel-08 draft-ietf-mmusic-t140-usage-data-channel-09
Abstract Abstract
This document specifies how a WebRTC data channel can be used as a This document specifies how a WebRTC data channel can be used as a
transport mechanism for Real-time text using the ITU-T Protocol for transport mechanism for Real-time text using the ITU-T Protocol for
multimedia application text conversation (Recommendation ITU-T multimedia application text conversation (Recommendation ITU-T
T.140), and how the SDP offer/answer mechanism can be used to T.140), and how the SDP offer/answer mechanism can be used to
negotiate such data channel, referred to as T.140 data channel. The negotiate such data channel, referred to as T.140 data channel. The
document updates RFC 8373. document updates RFC 8373.
skipping to change at page 1, line 36 skipping to change at page 1, line 36
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/. Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on May 22, 2020. This Internet-Draft will expire on June 1, 2020.
Copyright Notice Copyright Notice
Copyright (c) 2019 IETF Trust and the persons identified as the Copyright (c) 2019 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of (http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
skipping to change at page 2, line 19 skipping to change at page 2, line 19
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
2. Conventions . . . . . . . . . . . . . . . . . . . . . . . . . 3 2. Conventions . . . . . . . . . . . . . . . . . . . . . . . . . 3
3. WebRTC Data Channel Considerations . . . . . . . . . . . . . 3 3. WebRTC Data Channel Considerations . . . . . . . . . . . . . 3
4. SDP Considerations . . . . . . . . . . . . . . . . . . . . . 4 4. SDP Considerations . . . . . . . . . . . . . . . . . . . . . 4
4.1. Use of dcmap Attribute . . . . . . . . . . . . . . . . . 4 4.1. Use of dcmap Attribute . . . . . . . . . . . . . . . . . 4
4.2. Use of dcsa Attribute . . . . . . . . . . . . . . . . . . 5 4.2. Use of dcsa Attribute . . . . . . . . . . . . . . . . . . 5
4.2.1. Maximum Character Transmission Rate . . . . . . . . . 5 4.2.1. Maximum Character Transmission Rate . . . . . . . . . 5
4.2.2. Real-time Text Conversation Languages . . . . . . . . 6 4.2.2. Real-time Text Conversation Languages . . . . . . . . 6
4.2.3. Real-time Text Direction . . . . . . . . . . . . . . 6 4.2.3. Real-time Text Direction . . . . . . . . . . . . . . 6
4.3. Examples . . . . . . . . . . . . . . . . . . . . . . . . 8 4.3. Examples . . . . . . . . . . . . . . . . . . . . . . . . 8
5. T.140 Considerations . . . . . . . . . . . . . . . . . . . . 9 5. T.140 Considerations . . . . . . . . . . . . . . . . . . . . 10
5.1. Session Layer Functions . . . . . . . . . . . . . . . . . 9 5.1. Session Layer Functions . . . . . . . . . . . . . . . . . 10
5.2. Data Encoding and Sending . . . . . . . . . . . . . . . . 10 5.2. Data Encoding and Sending . . . . . . . . . . . . . . . . 11
5.3. Data Buffering . . . . . . . . . . . . . . . . . . . . . 10 5.3. Data Buffering . . . . . . . . . . . . . . . . . . . . . 11
5.4. Loss of T140blocks . . . . . . . . . . . . . . . . . . . 10 5.4. Loss of T140blocks . . . . . . . . . . . . . . . . . . . 11
5.5. Multi-party Considerations . . . . . . . . . . . . . . . 11 5.5. Multi-party Considerations . . . . . . . . . . . . . . . 12
6. Gateway Considerations . . . . . . . . . . . . . . . . . . . 11 6. Gateway Considerations . . . . . . . . . . . . . . . . . . . 12
7. Update to RFC 8373 . . . . . . . . . . . . . . . . . . . . . 13 7. Update to RFC 8373 . . . . . . . . . . . . . . . . . . . . . 13
8. Security Considerations . . . . . . . . . . . . . . . . . . . 13 8. Security Considerations . . . . . . . . . . . . . . . . . . . 14
9. IANA considerations . . . . . . . . . . . . . . . . . . . . . 13 9. IANA considerations . . . . . . . . . . . . . . . . . . . . . 14
9.1. Subprotocol Identifier t140 . . . . . . . . . . . . . . . 13 9.1. Subprotocol Identifier t140 . . . . . . . . . . . . . . . 14
9.2. SDP fmtp Attribute . . . . . . . . . . . . . . . . . . . 14 9.2. SDP fmtp Attribute . . . . . . . . . . . . . . . . . . . 14
9.3. SDP Language Attributes . . . . . . . . . . . . . . . . . 14 9.3. SDP Language Attributes . . . . . . . . . . . . . . . . . 15
9.4. SDP Media Direction Attributes . . . . . . . . . . . . . 15 9.4. SDP Media Direction Attributes . . . . . . . . . . . . . 16
10. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 16 10. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 17
11. References . . . . . . . . . . . . . . . . . . . . . . . . . 16 11. References . . . . . . . . . . . . . . . . . . . . . . . . . 17
11.1. Normative References . . . . . . . . . . . . . . . . . . 16 11.1. Normative References . . . . . . . . . . . . . . . . . . 17
11.2. Informative References . . . . . . . . . . . . . . . . . 17 11.2. Informative References . . . . . . . . . . . . . . . . . 18
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 18 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 19
1. Introduction 1. Introduction
The ITU-T Protocol for multimedia application text conversation The ITU-T Protocol for multimedia application text conversation
(Recommendation ITU-T T.140) [T140] defines a protocol for text (Recommendation ITU-T T.140) [T140] defines a protocol for text
conversation, also known as real-time text. The native transport for conversation, also known as real-time text. The transport used for
IP networks is the "RTP Payload for Text Conversation" [RFC4103] IP networks is the "RTP Payload for Text Conversation" [RFC4103]
mechanism, based on the Real-time Transport Protocol (RTP) [RFC3550]. mechanism, based on the Real-time Transport Protocol (RTP) [RFC3550].
This document specifies how a WebRTC data channel This document specifies how a WebRTC data channel
[I-D.ietf-rtcweb-data-channel] can be used as a transport mechanism [I-D.ietf-rtcweb-data-channel] can be used as a transport mechanism
for T.140, and how the SDP offer/answer mechanism for T.140, and how the SDP offer/answer mechanism
[I-D.ietf-mmusic-data-channel-sdpneg] can be used to negotiate such [I-D.ietf-mmusic-data-channel-sdpneg] can be used to negotiate such
data channel. data channel.
In this document, a T.140 data channel refers to a WebRTC data In this document, a T.140 data channel refers to a WebRTC data
channel for which the instantiated sub-protocol is "t140", and where channel for which the instantiated sub-protocol is "t140", and where
the channel is negotiated using the SDP-based external negotiation the channel is negotiated using the SDP-based external negotiation
method [I-D.ietf-mmusic-data-channel-sdpneg]. method [I-D.ietf-mmusic-data-channel-sdpneg].
NOTE: The decision to transport real-time text using a WebRTC data NOTE: The decision to transport real-time text using a WebRTC data
channel, instead of using RTP based transport [RFC4103], is motivated channel, instead of using RTP based transport [RFC4103], is motivated
by use-case "U-C 5: Real-time text chat during an audio and/or video 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 conference", see call with an individual or with multiple people in a conference", see
Section 3.2 of [I-D.ietf-rtcweb-data-channel]. Section 3.2 of [I-D.ietf-rtcweb-data-channel].
The brief notation "T.140" is used as a synonym for the text The brief notation "T.140" is used as a name for the text
conversation protocol according to [T140]. conversation protocol according to [T140].
Section 3 defines the generic data channel properties for a T.140 Section 3 defines the generic data channel properties for a T.140
data channel, and Section 4 defines how they are conveyed in an SDP data channel, and Section 4 defines how they are conveyed in an SDP
dcmap attribute. While this document defines how to establish a dcmap attribute. While this document defines how to establish a
T.140 data channel using the SDP-based external negotiation method T.140 data channel using the SDP-based external negotiation method
[I-D.ietf-mmusic-data-channel-sdpneg], the generic T.140 and gateway [I-D.ietf-mmusic-data-channel-sdpneg], the generic T.140 and gateway
considerations defined in Section 3, Section 5 and Section 6 of this considerations defined in Section 3, Section 5 and Section 6 of this
document can also be applied when a T.140 data channel is established document can also be applied when a T.140 data channel is established
using another mechanism (e.g., the mechanism defined in using another mechanism (e.g., the mechanism defined in
skipping to change at page 4, line 22 skipping to change at page 4, line 22
NOTE: T.140 requires the transport channel to provide transmission of NOTE: T.140 requires the transport channel to provide transmission of
real-time text without duplication and in original order. Therefore, real-time text without duplication and in original order. Therefore,
T.140 does not specify reliable and ordered transmission of T.140 T.140 does not specify reliable and ordered transmission of T.140
data on the application layer. Instead, when RTP based transport is data on the application layer. Instead, when RTP based transport is
used, the RTP sequence number is used to detect packet loss and out- used, the RTP sequence number is used to detect packet loss and out-
of-order packets, and a redundancy mechanism is used to achieve of-order packets, and a redundancy mechanism is used to achieve
reliable delivery of T.140 data. By using the WebRTC data channel reliable delivery of T.140 data. By using the WebRTC data channel
reliable and in-order transmission features reliable and in-order transmission features
[I-D.ietf-rtcweb-data-channel] for the T.140 data channel, there is [I-D.ietf-rtcweb-data-channel] for the T.140 data channel, there is
no need for a redundancy mechanism or a mechanism to detect data loss no need for a redundancy mechanism or a mechanism to detect data loss
and out-of-order delivery on the application level. The latency and out-of-order delivery at the application level. The latency
characteristics of the T.140 data channel is also regarded to be characteristics of the T.140 data channel is also regarded to be
sufficient to meet the application requirements of T.140. sufficient to meet the application requirements of T.140.
4. SDP Considerations 4. SDP Considerations
The generic SDP considerations, including the SDP Offer/Answer The generic SDP considerations, including the SDP Offer/Answer
procedures, for negotiating a WebRTC data channel are defined in procedures, for negotiating a WebRTC data channel are defined in
[I-D.ietf-mmusic-data-channel-sdpneg]. This section defines the SDP [I-D.ietf-mmusic-data-channel-sdpneg]. This section defines the SDP
considerations that are specific to a T.140 data channel. considerations that are specific to a T.140 data channel.
skipping to change at page 6, line 4 skipping to change at page 6, line 4
MUST be set to "-". MUST be set to "-".
If the 'fmtp' attribute is not included, the default value of 30 If the 'fmtp' attribute is not included, the default value of 30
applies [RFC4103]. applies [RFC4103].
The offerer and answerer MAY modify the 'cps' attribute parameter The offerer and answerer MAY modify the 'cps' attribute parameter
value in subsequent offers and answers. value in subsequent offers and answers.
This document does not define any other usage of the 'fmtp' attribute This document does not define any other usage of the 'fmtp' attribute
for a T.140 channel. If an offerer or answerer receives a 'dcsa' for a T.140 channel. If an offerer or answerer receives a 'dcsa'
attribute that contains 'fmtp' attribute that is not according to the attribute that contains an 'fmtp' attribute that is not according to
procedure above the offerer or answerer MUST discard the 'dcsa' the procedure above, the offerer or answerer MUST ignore the 'dcsa'
attribute. attribute.
NOTE: The 'cps' attribute parameter is especially useful when a T.140 NOTE: The 'cps' attribute parameter is especially useful when a T.140
data channel endpoint is acting as a gateway (Section 6) and is data channel endpoint is acting as a gateway (Section 6) and is
interworking with a T.140 transport mechanism that have restrictions interworking with a T.140 transport mechanism that have restrictions
on how many characters can be sent per second. on how many characters can be sent per second.
4.2.2. Real-time Text Conversation Languages 4.2.2. Real-time Text Conversation Languages
'dcsa' attributes can contain the SDP 'hlang-send' and 'hlang-recv' 'dcsa' attributes can contain the SDP 'hlang-send' and 'hlang-recv'
skipping to change at page 6, line 44 skipping to change at page 6, line 44
Note that the rules only apply to the direction attributes. Note that the rules only apply to the direction attributes.
Session level direction attributes [I-D.ietf-mmusic-rfc4566bis] have Session level direction attributes [I-D.ietf-mmusic-rfc4566bis] have
no impact on a T.140 data channel. no impact on a T.140 data channel.
4.2.3.1. Generating an Offer 4.2.3.1. Generating an Offer
If the offerer wishes to both send and receive text on a T.140 data If the offerer wishes to both send and receive text on a T.140 data
channel, it SHOULD mark the data channel as sendrecv with a channel, it SHOULD mark the data channel as sendrecv with a
'sendrecv' attribute inside a 'dcsa' attribute. If the offerer does 'sendrecv' attribute inside a 'dcsa' attribute. If the offerer does
not explicitly mark the data channel, a 'sendrecv' attribute inside a not explicitly mark the data channel, an implicit 'sendrecv'
'dcsa' attribute is implicitly applied. attribute inside a 'dcsa' attribute is applied by default.
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' attribute MUST mark the data channel as sendonly with a 'sendonly' attribute
inside a 'dcsa' attribute. inside a 'dcsa' attribute.
If the offerer wishes to only receive text on a T.140 data channel, If the offerer wishes to only receive text on a T.140 data channel,
it MUST mark the data channel as recvonly with a 'recvonly' attribute it MUST mark the data channel as recvonly with a 'recvonly' attribute
inside a 'dcsa' attribute. inside a 'dcsa' attribute.
If the offerer wishes to neither send nor receive text on a T.140 If the offerer wishes to neither send nor receive text on a T.140
data channel, it MUST mark the data channel as inactive with an data channel, it MUST mark the data channel as inactive with an
'inactive' attribute inside a 'dcsa' attribute. 'inactive' attribute inside a 'dcsa' attribute.
If the offerer has marked a data channel as sendrecv (implicit or If the offerer has marked a data channel as sendrecv (or if the
explicit) or recvonly, it MUST be prepared to receive T.140 data as offerer did not explicitly mark the data channel) or recvonly, it
soon as the state of the T.140 data channel allows it. MUST be prepared to receive T.140 data as soon as the state of the
T.140 data channel allows it.
4.2.3.2. Generating an Answer 4.2.3.2. Generating an Answer
When the answerer accepts an offer, and marks the direction of the When the answerer accepts an offer, and marks the direction of the
text in the corresponding answer, the marking is based on the marking text in the corresponding answer, the direction is based on the
(explicit or implicit) in the offer. marking (or the lack of explicit marking) in the offer.
If the offerer marked the data channel as sendrecv (implicitly or If the offerer explicitly marked the data channel as sendrecv, or if
explicitly), the answerer MUST mark the data channel as sendrecv the offerer did not mark the data channel, the answerer SHOULD mark
(implicitly or explicitly), sendonly, recvonly or inactive with a the data channel as sendrecv, sendonly, recvonly or inactive with a
'sendrecv', 'sendonly', 'recvonly' respective 'inactive' attribute 'sendrecv', 'sendonly', 'recvonly' or 'inactive' attribute
inside a 'dcsa' attribute. respectively inside a 'dcsa' attribute. If the answerer does not
explicitly mark the data channel, an implicit 'sendrecv' attribute
inside a 'dcsa' attribute is applied by default.
If the offerer marked the data channel as sendonly, the answerer MUST If the offerer marked the data channel as sendonly, the answerer MUST
mark the data channel as recvonly or inactive with a 'recvonly' mark the data channel as recvonly or inactive with a 'recvonly' or
respective 'inactive' attribute inside a 'dcsa' attribute. 'inactive' attribute respectively inside a 'dcsa' attribute.
If the offerer marked the data channel as recvonly, the answerer MUST If the offerer marked the data channel as recvonly, the answerer MUST
mark the data channel as sendonly or inactive with a 'sendonly' mark the data channel as sendonly or inactive with a 'sendonly' or
respective 'inactive' attribute inside a 'dcsa' attribute. 'inactive' attribute respectively inside a 'dcsa' attribute.
If the offerer marked the data channel as inactive, the answerer MUST If the offerer marked the data channel as inactive, the answerer MUST
mark the data channel as inactive with an 'inactive' attribute inside mark the data channel as inactive with an 'inactive' attribute inside
a 'dcsa' attribute. a 'dcsa' attribute.
If the answerer has marked a data channel as sendrecv or recvonly, it If the answerer has marked a data channel as sendrecv or recvonly, it
MUST be prepared to receive data as soon as the state of the T.140 MUST be prepared to receive data as soon as the state of the T.140
data channel allows transmission of data. data channel allows transmission of data.
4.2.3.3. Offerer Receiving an Answer 4.2.3.3. Offerer Receiving an Answer
When the offerer receives an answer to the offer, if the answerer has When the offerer receives an answer to the offer and the answerer has
marked a data channel as sendrecv (implicit or explicit) or recvonly marked a data channel as sendrecv (or the answerer did not mark the
in the answer, the offerer can start sending T.140 data as soon as data channel) or recvonly in the answer, the offerer can start
the state of the T.140 data channel allows it. If the answerer has sending T.140 data as soon as the state of the T.140 data channel
marked the data channel as inactive or sendonly, the offerer MUST NOT allows it. If the answerer has marked the data channel as inactive
send any T.140 data. or sendonly, the offerer MUST NOT send any T.140 data.
As the answerer implementation might not support the direction If the answerer has not marked the direction of a T.140 data channel
procedures in this section, if the answerer has not marked the in accordance with the procedures above, it is RECOMMENDED that the
direction of a T.140 data channel in accordance with the procedures offerer does not process that as an error situation, but rather
above, it is RECOMMENDED that the offerer does not process that as an assume that the answerer might both send and receive T.140 data on
error situation, but rather assume that the answerer might both send the data channel.
and receive T.140 data on the data channel.
4.2.3.4. Modify Text Direction 4.2.3.4. Modify Text Direction
If an endpoint wishes to modify a previously negotiated text If an endpoint wishes to modify a previously negotiated text
direction in an ongoing session, it MUST initiate an offer that direction in an ongoing session, it MUST initiate an offer that
indicates the new direction, following the rules in Section 4.2.3.1. indicates the new direction, following the rules in 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
Section 4.2.3.2. Section 4.2.3.2.
4.3. Examples 4.3. Examples
Below is an example of an m= section of an offer for a T.140 data Below is an example of an m= section of an offer for a T.140 data
channel offering real-time text conversation in Spanish and channel offering real-time text conversation in Spanish and
Esperanto, and an m= section in the associated answer accepting Esperanto, and an m= section in the associated answer accepting
Esperanto. The maximum character transmission rate is set to 20 and Esperanto. The maximum character transmission rate is set to 20. As
the default text transmission direction "sendrecv" applies. the offerer and answerer have not explicitly indicated the real-time
text direction, the default direction "sendrecv" applies.
Offer: 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=dcmap:2 label="ACME customer service";subprotocol="t140" a=dcmap:2 label="ACME customer service";subprotocol="t140"
a=dcsa:2 fmtp:- cps=20 a=dcsa:2 fmtp:- cps=20
a=dcsa:2 hlang-send:es eo a=dcsa:2 hlang-send:es eo
skipping to change at page 9, line 35 skipping to change at page 10, line 28
a=max-message-size:1000 a=max-message-size:1000
a=sctp-port 6000 a=sctp-port 6000
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
5. T.140 Considerations 5. T.140 Considerations
5.1. Session Layer Functions 5.1. Session Layer Functions
Section 6.1 of [T140] describes the generic T.140 session control Section 6.1 of [T140] describes the generic T.140 session control
functions at high-level and a signalling protocol independent manner. functions at a high-level in a signalling protocol independent
The list below describes how the functions are realized when using a manner. The list below describes how the functions are realized when
T.140 data channel. using a T.140 data channel.
o Prepare session: An endpoint can indicate its support of T.140 o Prepare session: An endpoint can indicate its support of T.140
data channels using signalling specific means (e.g., using SIP data channels using signalling specific means (e.g., using SIP
OPTIONS [RFC3261]), or by indicating the support in an offer or OPTIONS [RFC3261]), or by indicating the support in an offer or
answer (Section 4) answer (Section 4)
o Initiate session: An offer used to request the establishment of a o Initiate session: An offer used to request the establishment of a
T.140 data channel (Section 4) T.140 data channel (Section 4)
o Accept session: An answer used to accept a request to establish a o Accept session: An answer used to accept a request to establish a
T.140 data channel (Section 4) T.140 data channel (Section 4)
o Deny session: An answer used to reject a request to establish a o Deny session: An answer used to reject a request to establish a
skipping to change at page 10, line 51 skipping to change at page 11, line 45
An implementation needs to take the user requirements for smooth flow An implementation needs to take the user requirements for smooth flow
and low latency in real-time text conversation into consideration and low latency in real-time text conversation into consideration
when assigning a buffer time. It is RECOMMENDED to use the default when assigning a buffer time. It is RECOMMENDED to use the default
transmission interval of 300 milliseconds [RFC4103], or lower, for transmission interval of 300 milliseconds [RFC4103], or lower, for
T.140 data channels. T.140 data channels.
5.4. Loss of T140blocks 5.4. Loss of T140blocks
In case of network failure or congestion, T.140 data channels might In case of network failure or congestion, T.140 data channels might
fail and get torn down. If this happens but the session sustains, it fail and get torn down. If this happens but the session sustains, it
is RECOMMENDED that a low number of retries are made to reestablish is RECOMMENDED that implementations tries to reestablish the T.140
the T.140 data channels. If reestablishment of the T.140 data data channels. If reestablishment of the T.140 data channel is
channel is successful, an implementation MUST evaluate if any successful, an implementation MUST evaluate if any T140blocks were
T140blocks were lost. Retransmission of already successfully lost. Retransmission of already successfully transmitted T140blocks
transmitted T140blocks MUST be avoided, and missing text markers MUST be avoided, and missing text markers [T140ad1] SHOULD be
[T140ad1] SHOULD be inserted in the received data stream where loss inserted in the received data stream where loss is detected or
is detected or suspected. suspected.
NOTE: If the SCTP association [RFC4960] used to realize the T.140 NOTE: If the SCTP association [RFC4960] used to realize the T.140
data channel fails and get torn down, it needs to be re-established data channel fails and gets torn down, it needs to be re-established
before the T.140 data channel can be reestablished. The procedure before the T.140 data channel can be reestablished. The procedure
after the reestablishment of the T.140 data channel defined in this after the reestablishment of the T.140 data channel defined in this
section apply no matter if only the T.140 data channel, or the whole section apply no matter if only the T.140 data channel, or the whole
SCTP association, got torn down. SCTP association, got torn down.
5.5. Multi-party Considerations 5.5. Multi-party Considerations
If an implementation needs to support multi-party scenarios, the If an implementation needs to support multi-party scenarios, the
implementation needs to support multiple simultaneous T.140 data implementation needs to support multiple simultaneous T.140 data
channels, one for each remote party. At the time of writing this channels, one for each remote party. At the time of writing this
document, this is true even in scenarios where each participant document, this is true even in scenarios where each participant
communicate via a centralized conference server. The reason is that, communicates via a centralized conference server. The reason is
unlike RTP media, WebRTC data channels and the T.140 protocol do not that, unlike RTP media, WebRTC data channels and the T.140 protocol
support the indication of the source of T.140 data. The SDP 'dcmap' do not support the indication of the source of T.140 data. The SDP
attribute label attribute parameter (Section 4.1) can be used by the 'dcmap' attribute label attribute parameter (Section 4.1) can be used
offerer to provide additional information about each T.140 data by the offerer to provide additional information about each T.140
channel, and help implementations to distinguish between them. data channel, and help implementations to distinguish between them.
NOTE: Future extensions to T.140, or to the T140block, might allow NOTE: Future extensions to T.140, or to the T140block, might allow
indicating the source of T.140 data, in which case it might be indicating the source of T.140 data, in which case it might be
possible to use a single T.140 data channel to transport data from 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, multiple remote sources. The usage of a single T.140 data channel,
without any protocol extensions, would require the conference server without any protocol extensions, would require the conference server
to only forward real-time text from one source at any given time, and to only forward real-time text from one source at any given time, and
e.g., include human readable text labels in the real-time text stream e.g., include human readable text labels in the real-time text stream
that indicates the source whenever the conference server switches the that indicates the source whenever the conference server switches the
source. This would allow the receiver to present real-time text from source. This would allow the receiver to present real-time text from
skipping to change at page 12, line 16 skipping to change at page 13, line 8
time text in other transports and protocols, a number of factors need time text in other transports and protocols, a number of factors need
to be considered. At the time of writing this document, the most to be considered. At the time of writing this document, the most
common IP-based real-time text transport is the RTP based mechanism common IP-based real-time text transport is the RTP based mechanism
defined in [RFC4103]. While this document does not define a complete defined in [RFC4103]. While this document does not define a complete
interworking solution, this list below provides some guidance and interworking solution, this list below provides some guidance and
considerations to take into account when designing a gateway for considerations to take into account when designing a gateway for
interworking between T.140 data channels and RTP-based T.140 interworking between T.140 data channels and RTP-based T.140
transport: transport:
o For each T.140 data channel there is an RTP stream for real-time o For each T.140 data channel there is an RTP stream for real-time
text [RFC4103] . Redundancy is by default declared and used on text [RFC4103]. Redundancy is by default declared and used on the
RTP stream. On the T.140 data channel there is no redundancy, but RTP stream. There is no redundancy on the T.140 data channel, but
the reliable property [I-D.ietf-mmusic-data-channel-sdpneg] of the reliable property [I-D.ietf-mmusic-data-channel-sdpneg] is set
T.140 the data channel is set. on it.
o During a normal text flow, T140blocks received from one network o During a normal text flow, T140blocks received from one network
are forwarded towards the other network. Keep-alive traffic is are forwarded towards the other network. Keep-alive traffic is
implicit on the T.140 data channel. A gateway might have to implicit on the T.140 data channel. A gateway might have to
extract keep-alives from incoming RTP streams, and MAY generate extract keep-alives from incoming RTP streams, and MAY generate
keep-alives on outgoing RTP streams. keep-alives on outgoing RTP streams.
o If the gateway detects or suspects loss of data on the RTP stream, o If the gateway detects or suspects loss of data on the RTP stream,
and the lost data has not been retrieved using a redundancy and the lost data has not been retrieved using a redundancy
mechanism, the gateway SHOULD insert the T.140 missing text marker mechanism, the gateway SHOULD insert the T.140 missing text marker
[T140ad1] in the data sent on the outgoing T.140 data channel. [T140ad1] in the data sent on the outgoing T.140 data channel.
o If the gateway detects that the T.140 data channel has failed and o If the gateway detects that the T.140 data channel has failed and
got torn down, once the data channel has been reestablished the got torn down, once the data channel has been reestablished the
gateway SHOULD insert the T.140 missing text marker [T140ad1] in gateway SHOULD insert the T.140 missing text marker [T140ad1] in
the data sent on the outgoing RTP stream if it detects or suspects the data sent on the outgoing RTP stream if it detects or suspects
that data sent by the remote T.140 data channel endpoint was lost that data sent by the remote T.140 data channel endpoint was lost.
due to the data channel failure.
o If the gateway detects that the T.140 data channel has failed and o If the gateway detects that the T.140 data channel has failed and
got torn down, once the data channel has been reestablished the got torn down, once the data channel has been reestablished the
gateway SHOULD insert the T.140 missing text marker [T140ad1] in gateway SHOULD insert the T.140 missing text marker [T140ad1] in
the data sent on the outgoing T.140 data channel if it detects or the data sent on the outgoing T.140 data channel if it detects or
suspects that data sent or to be sent on the T.140 data channel suspects that data sent or to be sent on the T.140 data channel
was lost during the failure. was lost during the failure.
o The gateway MUST indicate the same text transmission direction o The gateway MUST indicate the same text transmission direction
(Section 4.2.3) on the T.140 data channel and the RTP stream. (Section 4.2.3) on the T.140 data channel and the RTP stream.
NOTE: In order for the gateway to insert a missing text marker, or to NOTE: In order for the gateway to insert a missing text marker, or to
 End of changes. 26 change blocks. 
79 lines changed or deleted 81 lines changed or added

This html diff was produced by rfcdiff 1.47. The latest version is available from http://tools.ietf.org/tools/rfcdiff/