rfc8864v11.txt   rfc8864.txt 
skipping to change at line 299 skipping to change at line 299
a=dcmap:2 subprotocol="msrp";ordered=true;label="msrp" a=dcmap:2 subprotocol="msrp";ordered=true;label="msrp"
a=dcmap:3 label="Label 1";ordered=false;max-retr=5;priority=128 a=dcmap:3 label="Label 1";ordered=false;max-retr=5;priority=128
a=dcmap:4 label="foo%09bar";ordered=true;max-time=15000 a=dcmap:4 label="foo%09bar";ordered=true;max-time=15000
| Note: The last example (a=dcmap:4) shows a 'label' parameter | Note: The last example (a=dcmap:4) shows a 'label' parameter
| value that contains one nonprintable 'escaped-char' character | value that contains one nonprintable 'escaped-char' character
| (the tabulator character). | (the tabulator character).
Within an "a=dcmap:" attribute line's 'dcmap-opt' value, only one Within an "a=dcmap:" attribute line's 'dcmap-opt' value, only one
'maxretr-opt' parameter or one 'maxtime-opt' parameter may be 'maxretr-opt' parameter or one 'maxtime-opt' parameter may be
present. Both MUST NOT be present. present. Both parameters MUST NOT be present.
5.1.2. 'dcmap-stream-id' Parameter 5.1.2. 'dcmap-stream-id' Parameter
The 'dcmap-stream-id' parameter indicates the SCTP stream identifier The 'dcmap-stream-id' parameter indicates the SCTP stream identifier
within the SCTP association used to form the data channel. within the SCTP association used to form the data channel.
5.1.3. 'label' Parameter 5.1.3. 'label' Parameter
The 'label' parameter indicates the name of the channel. It The 'label' parameter indicates the name of the channel. It
represents a label that can be used to distinguish, in the context of represents a label that can be used to distinguish, in the context of
skipping to change at line 328 skipping to change at line 328
* Serialize the WebRTC label as a UTF-8 string [RFC3629]. * Serialize the WebRTC label as a UTF-8 string [RFC3629].
* Treat the UTF-8 serialization as a series of bytes. * Treat the UTF-8 serialization as a series of bytes.
* For each byte in the serialization, * For each byte in the serialization,
- If the byte can be expressed as a 'quoted-char', do so. - If the byte can be expressed as a 'quoted-char', do so.
- Otherwise, express the byte as an 'escaped-char'. - Otherwise, express the byte as an 'escaped-char'.
| Note: The empty string MAY also be explicitly used as a 'label' | Note: The empty string can also be explicitly used as a 'label'
| value, such that 'label=""' is equivalent to the 'label' | value, such that 'label=""' is equivalent to the 'label'
| parameter not being present at all. [RFC8832] allows the | parameter not being present at all. [RFC8832] allows the
| DATA_CHANNEL_OPEN message's 'Label' value to be an empty | DATA_CHANNEL_OPEN message's 'Label' value to be an empty
| string. | string.
5.1.4. 'subprotocol' Parameter 5.1.4. 'subprotocol' Parameter
The 'subprotocol' parameter indicates which protocol the client The 'subprotocol' parameter indicates which protocol the client
expects to exchange via the channel. This parameter maps to the expects to exchange via the channel. This parameter maps to the
'Protocol' parameter defined in [RFC8832]. Section 9.1 specifies how 'Protocol' parameter defined in [RFC8832]. Section 9.1 specifies how
values for new subprotocol parameters are registered. 'subprotocol' values for new subprotocol parameters are registered. 'subprotocol'
is an optional parameter. If the 'subprotocol' parameter is not is an optional parameter. If the 'subprotocol' parameter is not
present, then its value defaults to an empty string. present, then its value defaults to an empty string.
| Note: The empty string MAY also be explicitly used as a | Note: The empty string can also be explicitly used as a
| 'subprotocol' value, such that 'subprotocol=""' is equivalent | 'subprotocol' value, such that 'subprotocol=""' is equivalent
| to the 'subprotocol' parameter not being present at all. | to the 'subprotocol' parameter not being present at all.
| [RFC8832] allows the DATA_CHANNEL_OPEN message's 'Protocol' | [RFC8832] allows the DATA_CHANNEL_OPEN message's 'Protocol'
| value to be an empty string. | value to be an empty string.
5.1.5. 'max-retr' Parameter 5.1.5. 'max-retr' Parameter
This parameter indicates that the data channel is partially reliable. This parameter indicates that the data channel is partially reliable.
The 'max-retr' parameter indicates the maximal number of times a user The 'max-retr' parameter indicates the maximal number of times a user
message will be retransmitted. The 'max-retr' parameter is optional. message will be retransmitted. The 'max-retr' parameter is optional.
skipping to change at line 477 skipping to change at line 477
dcsa-value = stream-id SP attribute dcsa-value = stream-id SP attribute
stream-id = 1*5DIGIT stream-id = 1*5DIGIT
attribute = <from RFC 8866> attribute = <from RFC 8866>
Example: Example:
a=dcmap:2 subprotocol="msrp";ordered=true;label="msrp" a=dcmap:2 subprotocol="msrp";ordered=true;label="msrp"
a=dcsa:2 accept-types:text/plain a=dcsa:2 accept-types:text/plain
Note that the reference to [RFC8866] defines where the attribute The reference to [RFC8866] defines where the attribute definition can
definition can be found; it does not provide any limitations on be found; it does not provide any limitations on support of
support of attributes defined in other documents in accordance with attributes defined in other documents in accordance with this
this attribute definition. Note, however, that not all SDP attribute definition. However, not all SDP attributes are suitable
attributes are suitable as an "a=dcsa:" parameter. The registry of as an "a=dcsa:" parameter. The registry of IANA SDP parameters
IANA SDP parameters contains the lists of IANA-registered session- contains the lists of IANA-registered session-level and media-level
level and media-level or media-level-only SDP attributes. or media-level-only SDP attributes.
Thus, in the example above, the original attribute line Thus, in the example above, the original attribute line
"a=accept-types:text/plain" is represented by the attribute line "a=accept-types:text/plain" is represented by the attribute line
"a=dcsa:2 accept-types:text/plain", which specifies that this "a=dcsa:2 accept-types:text/plain", which specifies that this
instance of the MSRP subprotocol being transported on the SCTP instance of the MSRP subprotocol being transported on the SCTP
association using the data channel with stream id 2 accepts plaintext association using the data channel with stream id 2 accepts plaintext
files. files.
As opposed to the data channel "a=dcmap:" attribute parameters, these As opposed to the data channel "a=dcmap:" attribute parameters, these
parameters are subject to offer/answer negotiation, following the parameters are subject to offer/answer negotiation, following the
skipping to change at line 813 skipping to change at line 813
This document specifies new SDP attributes used in the negotiation of This document specifies new SDP attributes used in the negotiation of
data channel parameters. data channel parameters.
These parameters are negotiated as part of opening an SCTP channel These parameters are negotiated as part of opening an SCTP channel
over DTLS as specified in [RFC8841]. Each subprotocol may come with over DTLS as specified in [RFC8841]. Each subprotocol may come with
its own security considerations that need to be documented as part of its own security considerations that need to be documented as part of
the subprotocol definition. Otherwise, this document does not add the subprotocol definition. Otherwise, this document does not add
any security considerations to those specified in [RFC8841]. any security considerations to those specified in [RFC8841].
Such error cases as the use of unknown parameter values or violations Error cases such as the use of unknown parameter values or violations
of the odd/even rule (Section 6.1) MUST be handled by closing the of the odd/even rule (Section 6.1) MUST be handled by closing the
corresponding data channel. corresponding data channel.
9. IANA Considerations 9. IANA Considerations
9.1. Subprotocol Identifiers 9.1. Subprotocol Identifiers
Registration of new subprotocol identifiers is performed using the Registration of new subprotocol identifiers is performed using the
existing IANA "WebSocket Subprotocol Name Registry" table. existing IANA "WebSocket Subprotocol Name Registry" table.
skipping to change at line 1026 skipping to change at line 1026
DOI 10.17487/RFC8873, January 2021, DOI 10.17487/RFC8873, January 2021,
<https://www.rfc-editor.org/info/rfc8873>. <https://www.rfc-editor.org/info/rfc8873>.
[T38] International Telecommunication Union, "Procedures for [T38] International Telecommunication Union, "Procedures for
real-time Group 3 facsimile communication over IP real-time Group 3 facsimile communication over IP
networks", ITU-T Recommendation T.38, November 2015, networks", ITU-T Recommendation T.38, November 2015,
<https://www.itu.int/rec/T-REC-T.38-201511-I/en>. <https://www.itu.int/rec/T-REC-T.38-201511-I/en>.
[WebRtcAPI] [WebRtcAPI]
Jennings, C., Boström, H., and J-I. Bruaroey, "WebRTC 1.0: Jennings, C., Boström, H., and J-I. Bruaroey, "WebRTC 1.0:
Real-time Communication Between Browsers", W3C Candidate Real-time Communication Between Browsers", W3C Proposed
Recommendation, <https://www.w3.org/TR/webrtc/>. Recommendation, <https://www.w3.org/TR/webrtc/>.
Appendix A. Generic Data Channel Negotiation Aspects when Not Using Appendix A. Generic Data Channel Negotiation Aspects when Not Using
DCEP DCEP
This appendix summarizes how data channels work in general and This appendix summarizes how data channels work in general and
discusses some key aspects that should be considered for the out-of- discusses some key aspects that should be considered for the out-of-
band negotiation of data channels if DCEP is not used. band negotiation of data channels if DCEP is not used.
A WebRTC application creates a data channel by providing a number of A WebRTC application creates a data channel by providing a number of
 End of changes. 6 change blocks. 
12 lines changed or deleted 12 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/