summaryrefslogtreecommitdiff
path: root/doc/rfc/rfc8873.txt
blob: 215590f685fe4df93de71eb55e962b484e8438cc (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
Internet Engineering Task Force (IETF)                    JM. Recio, Ed.
Request for Comments: 8873                                  Unaffiliated
Updates: 4975                                                C. Holmberg
Category: Standards Track                                       Ericsson
ISSN: 2070-1721                                             January 2021


        Message Session Relay Protocol (MSRP) over Data Channels

Abstract

   This document specifies how a Web Real-Time Communication (WebRTC)
   data channel can be used as a transport mechanism for the Message
   Session Relay Protocol (MSRP) and how the Session Description
   Protocol (SDP) offer/answer mechanism can be used to negotiate such a
   data channel, referred to as an MSRP data channel.  Two network
   configurations are supported: the connection of two MSRP data channel
   endpoints; and a gateway configuration, which connects an MSRP data
   channel endpoint with an MSRP endpoint that uses either TCP or TLS.
   This document updates RFC 4975.

Status of This Memo

   This is an Internet Standards Track document.

   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.

   Information about the current status of this document, any errata,
   and how to provide feedback on it may be obtained at
   https://www.rfc-editor.org/info/rfc8873.

Copyright Notice

   Copyright (c) 2021 IETF Trust and the persons identified as the
   document authors.  All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents
   (https://trustee.ietf.org/license-info) 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.

Table of Contents

   1.  Introduction
   2.  Conventions
   3.  WebRTC Data Channel Considerations
     3.1.  MSRP Data Channel
   4.  SDP Considerations
     4.1.  MSRP URI
     4.2.  MSRP URI msrp-scheme
     4.3.  Use of the 'dcmap' Attribute
     4.4.  Use of the 'dcsa' Attribute
     4.5.  Use of the DCSA-Embedded 'setup' Attribute
     4.6.  Session Closing
     4.7.  Support for MSRP File Transfer Function
     4.8.  Example
   5.  MSRP Considerations
     5.1.  Session Mapping
     5.2.  Session Opening
     5.3.  Session Closing
     5.4.  Data Framing
     5.5.  Data Sending, Receiving, and Reporting
     5.6.  Support for MSRP File Transfer Function
   6.  Gateway Considerations
   7.  Updates to RFC 4975
   8.  Security Considerations
   9.  IANA Considerations
     9.1.  "msrps" URI scheme
     9.2.  Subprotocol Identifier "msrp"
     9.3.  SDP Attributes
   10. References
     10.1.  Normative References
     10.2.  Informative References
   Acknowledgments
   Authors' Addresses

1.  Introduction

   The Message Session Relay Protocol (MSRP) [RFC4975] is a protocol for
   transmitting a series of related instant messages in the context of a
   session.  In addition to instant messaging, MSRP can also be used for
   image sharing or file transfer.  MSRP was initially defined in
   [RFC4975] to work over TCP and TLS connections, and over a WebSocket
   subprotocol specified by [RFC7977].

   This document specifies how a Web Real-Time Communication (WebRTC)
   data channel [RFC8831] can be used as a transport mechanism for MSRP
   without the TCP and TLS layers, and how the Session Description
   Protocol (SDP) offer/answer mechanism for data channels [RFC8864] can
   be used to negotiate such a data channel.

   In this document, an MSRP data channel refers to a WebRTC data
   channel for which the instantiated subprotocol is "msrp" and the data
   channel is negotiated using the SDP offer/answer mechanism [RFC8864].

   Defining MSRP as a data channel subprotocol has many benefits:

   *  provides to applications a proven protocol enabling instant
      messaging, file transfer, image sharing

   *  integrates those features with other WebRTC voice, video, and data
      features

   *  leverages the SDP-based negotiation already defined for MSRP

   *  allows the interworking with MSRP endpoints running on a TCP or
      TLS connection

   Compared to the WebSocket protocol, which provides a message-passing
   protocol to applications with no direct access to TCP or TLS sockets,
   data channels provide a low-latency transport and leverage NAT-aware
   connectivity and the security features of WebRTC.

   This document defines an MSRP data channel endpoint as an MSRP
   application that uses a WebRTC data channel for MSRP transport.  This
   document describes configurations for connecting such endpoint to
   another MSRP data channel endpoint, or to an MSRP endpoint that uses
   either TCP or TLS transport.

   This document updates [RFC4975] as described in Section 7.

2.  Conventions

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
   "OPTIONAL" in this document are to be interpreted as described in BCP
   14 [RFC2119] [RFC8174] when, and only when, they appear in all
   capitals, as shown here.

3.  WebRTC Data Channel Considerations

3.1.  MSRP Data Channel

   The following WebRTC data channel property values [RFC8831] apply to
   an MSRP data channel:

              +==========================+=================+
              | Property                 | Value           |
              +==========================+=================+
              | Subprotocol Identifier   | msrp            |
              +--------------------------+-----------------+
              | Transmission reliability | reliable        |
              +--------------------------+-----------------+
              | Transmission order       | in-order        |
              +--------------------------+-----------------+
              | Label                    | See Section 4.3 |
              +--------------------------+-----------------+

                                 Table 1

4.  SDP Considerations

   The generic SDP considerations, including the SDP offer/answer
   procedures [RFC3264], for negotiating a WebRTC data channel are
   defined in [RFC8864].  This section and its subsections define the
   SDP considerations that are specific to an MSRP data channel,
   identified by the "subprotocol" attribute parameter, with an "msrp"
   parameter value in the 'dcmap' attribute.

4.1.  MSRP URI

   This document extends the MSRP URI syntax [RFC4975] by defining the
   new transport parameter value "dc" (an abbreviation of data channel):

       transport  /= "dc"
       ; Add "dc" to existing transports per Section 9 of [RFC4975]

   MSRP design provides for new transport bindings (see Section 6 of
   [RFC4975]).  MSRP implementations are expected to allow unrecognized
   transports for which there is no need to establish a connection to
   the resource described by the URI, as is the case of data channels
   (Section 4.4).

4.2.  MSRP URI msrp-scheme

   The msrp-scheme portion of the MSRP URI that represents an MSRP data
   channel endpoint (used in the SDP 'path' attribute and in the MSRP
   message headers) is always "msrps", which indicates that the MSRP
   data channel is always secured using DTLS as described in [RFC8831].

4.3.  Use of the 'dcmap' Attribute

   An offerer and answerer SHALL, in each offer and answer, include a
   'dcmap' attribute [RFC8864] in the SDP media description ("m="
   section) [RFC4566] describing the SCTP association [RFC4960] used to
   realize the MSRP data channel.

   The attribute includes the following data channel parameters:

   *  "label=" labelstring

   *  "subprotocol=" "msrp"

   The labelstring is set by the MSRP application according to
   [RFC8864].

   The offerer and answerer SHALL NOT include the "max-retr" and the
   "max-time" attribute parameters in the 'dcmap' attribute.

   The offerer and answerer MAY include the "ordered" attribute
   parameter in the 'dcmap' attribute.  If included, the attribute
   parameter value SHALL be set to "true".

   Below is an example of a 'dcmap' attribute for an MSRP session to be
   negotiated with the "dcmap-stream-id" parameter set to 2 and the
   "label" parameter set to "chat":

   a=dcmap:2 label="chat";subprotocol="msrp"

4.4.  Use of the 'dcsa' Attribute

   An offerer and answerer can, in each offer and answer, include one or
   more data channel subprotocol attributes ('dcsa' attributes)
   [RFC8864] in the "m=" section describing the SCTP association used to
   realize the MSRP data channel.  An SDP attribute included in a 'dcsa'
   attribute is referred to as a DCSA-embedded attribute.

   If an offerer or answerer receives a 'dcsa' attribute that contains
   an SDP attribute for which usage has not been defined for an MSRP
   data channel, the offerer or answerer should ignore the 'dcsa'
   attribute, following the rules in Section 6.7 of [RFC8864].

   An offerer and answerer SHALL include a 'dcsa' attribute for each of
   the following MSRP-specific SDP attributes:

   *  defined in [RFC4975]: 'path'.

   *  defined in [RFC6714]: 'msrp-cema'.

   *  defined in [RFC6135]: 'setup'.  See Section 4.5.

   It is considered a protocol error if one or more of the DCSA-embedded
   attributes listed above are not included in an offer or answer.

   An offerer and answerer MAY include a 'dcsa' attribute for any of the
   following MSRP-specific SDP attributes, following the procedures
   defined for each attribute:

   *  defined in [RFC4975]: 'accept-types', 'accept-wrapped-types', and
      'max-size'.

   *  defined in [RFC4566]: 'sendonly', 'recvonly', 'inactive', and
      'sendrecv'.

   *  defined in [RFC5547]: all the parameters related to MSRP file
      transfer.  See Section 4.7.

   A subsequent offer or answer MAY update the previously negotiated
   MSRP subprotocol attributes while keeping the 'dcmap' attribute
   associated with the MSRP data channel unchanged.  The semantics for
   newly negotiated MSRP subprotocol attributes are per [RFC4975].

   When MSRP messages are transported on a data channel, the 'path'
   attribute is not used for the routing of the messages.  The MSRP data
   channel is established using the SDP offer/answer procedures defined
   in [RFC8864], and the MSRP messages are then transported on that data
   channel.  This is different from legacy MSRP [RFC4975] but similar to
   MSRP Connection Establishment for Media Anchoring (MSRP CEMA)
   [RFC6714].  Because of this, a DCSA-embedded 'msrp-cema' attribute is
   mandated for MSRP sessions over data channels.  However, when an
   endpoint receives an MSRP message over a data channel, it MUST still
   perform the MSRP URI comparison procedures defined in [RFC4975].

4.5.  Use of the DCSA-Embedded 'setup' Attribute

   As described in Section 4.4, the usage of a DCSA-embedded 'setup'
   attribute is mandated for MSRP sessions over data channels.  It is
   used to negotiate which MSRP data channel endpoint assumes the active
   role as per Section 4.2.2 of [RFC6135] and Section 5.4 of [RFC4975].
   It has no relationship with the DTLS connection establishment roles
   [RFC8841].

   The DCSA-embedded 'setup' attribute is of the form "a=dcsa:x
   setup:<role>", with x being the data channel's SCTP stream
   identifier, so that the 'setup' attribute is explicitly associated
   with an MSRP session over a specific data channel.

4.6.  Session Closing

   An MSRP session is closed by closing the associated data channel
   following the procedures in [RFC8864].

   The port value for the "m=" line SHOULD NOT be changed (e.g., to
   zero) when closing an MSRP session (unless all data channels are
   being closed and the SCTP association is no longer needed) since this
   would close the SCTP association and impact all of the data channels.
   In all cases in [RFC4975] where the procedure calls for setting the
   port to zero in the MSRP "m=" line in an SDP offer for TCP transport,
   the SDP offerer of an MSRP session with data channel transport SHALL
   remove the corresponding 'dcmap' and 'dcsa' attributes.

4.7.  Support for MSRP File Transfer Function

   SDP attributes specified in [RFC5547] for a file transfer "m=" line
   are embedded as subprotocol-specific attributes using the syntax
   defined in [RFC8864].

4.8.  Example

   Below is an example of an offer and an answer that include the
   attributes needed to establish two MSRP sessions: one for chat and
   one for file transfer.  The example is derived from a combination of
   examples in [RFC4975] and [RFC5547].

   Offer:

      m=application 54111 UDP/DTLS/SCTP webrtc-datachannel
      c=IN IP6 2001:db8::3
      a=max-message-size:100000
      a=sctp-port:5000
      a=setup:actpass
      a=fingerprint:SHA-256 12:DF:3E:5D:49:6B:19:E5:7C:AB:4A:AD:B9:B1:\
         3F:82:18:3B:54:02:12:DF:3E:5D:49:6B:19:E5:7C:AB:4A:AD
      a=tls-id:4a756565cddef001be82
      a=dcmap:0 label="chat";subprotocol="msrp"
      a=dcsa:0 msrp-cema
      a=dcsa:0 setup:active
      a=dcsa:0 accept-types:message/cpim text/plain
      a=dcsa:0 path:msrps://2001:db8::3:54111/si438dsaodes;dc
      a=dcmap:2 label="file transfer";subprotocol="msrp"
      a=dcsa:2 sendonly
      a=dcsa:2 msrp-cema
      a=dcsa:2 setup:active
      a=dcsa:2 accept-types:message/cpim
      a=dcsa:2 accept-wrapped-types:*
      a=dcsa:2 path:msrps://2001:db8::3:54111/jshA7we;dc
      a=dcsa:2 file-selector:name:"picture1.jpg" type:image/jpeg \
         size:1463440 hash:sha-256:7C:DF:3E:5D:49:6B:19:E5:12:AB:4A:AD:\
         4A:B1:3F:82:3E:3B:54:12:02:5D:18:DF:49:6B:19:E5:7C:AB:B9:AD
      a=dcsa:2 file-transfer-id:rjEtHAcYVZ7xKwGYpGGwyn5gqsSaU7Ep
      a=dcsa:2 file-disposition:attachment
      a=dcsa:2 file-date:creation:"Tue, 11 Aug 2020 19:05:30 +0200"
      a=dcsa:2 file-icon:cid:id2@bob.example.com
      a=dcsa:2 file-range:1-1463440

   Answer:

      m=application 51444 UDP/DTLS/SCTP webrtc-datachannel
      c=IN IP6 IP6 2001:db8::1
      a=max-message-size:100000
      a=sctp-port:6000
      a=setup:passive
      a=fingerprint:SHA-256 5D:02:3E:AD:49:6B:19:E5:7C:AB:4A:AD:B9:\
         B1:3F:82:18:3B:54:DF:12:6B:3E:5D:49:DF:19:E5:7C:AB:4A:5D
      a=tls-id:65cd4a7565debe82f100
      a=dcmap:0 label="chat";subprotocol="msrp"
      a=dcsa:0 msrp-cema
      a=dcsa:0 setup:passive
      a=dcsa:0 accept-types:message/cpim text/plain
      a=dcsa:0 path:msrps://2001:db8::1:51444/di551fsaodes;dc
      a=dcmap:2 label="file transfer";subprotocol="msrp"
      a=dcsa:2 recvonly
      a=dcsa:2 msrp-cema
      a=dcsa:2 setup:passive
      a=dcsa:2 accept-types:message/cpim
      a=dcsa:2 accept-wrapped-types:*
      a=dcsa:2 path:msrps://2001:db8::1:51444/jksh7Bwc;dc
      a=dcsa:2 file-selector:name:"picture1.jpg" type:image/jpeg \
         size:1463440
      a=dcsa:2 file-transfer-id:rjEtHAcYVZ7xKwGYpGGwyn5gqsSaU7Ep
      a=dcsa:2 file-range:1-1463440

   Note that due to RFC formatting conventions, this document splits SDP
   content that exceeds 72 characters across lines, marking this line
   folding with a backslash character.  This backslash and its trailing
   CRLF and whitespace would not appear in actual SDP content.

5.  MSRP Considerations

   The procedures specified in [RFC4975] apply except when this document
   specifies otherwise.  This section describes the MSRP considerations
   specific to an MSRP data channel.

5.1.  Session Mapping

   In this document, each MSRP session maps to one data channel exactly.

5.2.  Session Opening

   Section 4.5 describes how the active MSRP data channel endpoint role
   is negotiated.  The active MSRP data channel endpoint uses the data
   channel established for this MSRP session by the generic data channel
   opening procedure defined in [RFC8864].

   As soon as the WebRTC data channel is opened, the MSRP session is
   actually opened by the active MSRP data channel endpoint.  In order
   to do this, the active MSRP data channel endpoint sends an MSRP SEND
   message (empty or not) to the peer (passive) MSRP data channel
   endpoint.

5.3.  Session Closing

   The closure of an MSRP session SHALL be signaled via SDP following
   the requirements in Section 4.6.

   If the data channel used to transport the MSRP session fails and is
   torn down, the MSRP data channel endpoints SHALL consider the MSRP
   session failed.  An MSRP data channel endpoint MAY, based on local
   policy, try to negotiate a new MSRP data channel.

5.4.  Data Framing

   Each text-based MSRP message is sent on the corresponding data
   channel using standard MSRP framing and chunking procedures, as
   defined in [RFC4975], with each MSRP chunk delivered in a single SCTP
   user message.  Therefore all sent MSRP chunks SHALL have lengths of
   less than or equal to the value of the peer's 'max-message-size'
   attribute [RFC8841] associated with the SCTP association.

5.5.  Data Sending, Receiving, and Reporting

   Data sending, receiving, and reporting procedures SHALL conform to
   [RFC4975].

5.6.  Support for MSRP File Transfer Function

   [RFC5547] defines an end-to-end file transfer method based on MSRP
   and the SDP offer/answer mechanism.  This file transfer method is
   also usable by MSRP data channel endpoints with the following
   considerations:

   *  As an MSRP session maps to one data channel, a file transfer
      session maps also to one data channel.

   *  SDP attributes are negotiated as specified in Section 4.7.

   *  Once the file transfer is complete, the same data channel MAY be
      reused for another file transfer.

6.  Gateway Considerations

   This section describes the network configuration where one MSRP
   endpoint uses an MSRP data channel as MSRP transport, the other MSRP
   endpoint uses TLS/TCP connections as MSRP transport, and the two MSRP
   endpoints interwork via a gateway.

   Specifically, a gateway can be configured to interwork an MSRP
   session over a data channel with a peer that does not support data
   channel transport in one of two ways.

   In one model, the gateway performs as an MSRP Back-to-Back User Agent
   (B2BUA) to interwork all the procedures as necessary between the
   endpoints.  No further specification is needed for this model.

   Alternately, the gateway can provide transport-level interworking
   between MSRP endpoints using different transport protocols.  In
   accordance with Section 4.4, 'path' attributes SHALL NOT be used for
   transport-level interworking.

   When the gateway performs transport-level interworking between MSRP
   endpoints, all of the procedures in Section 4 and Section 5 apply to
   each peer, with the following additions:

   *  The gateway SHALL use the MSRP CEMA mechanism [RFC6714] towards
      the non-data channel endpoint.

   *  If the non-data channel endpoint does not support MSRP CEMA,
      transport-level interworking mode is not possible, and the gateway
      needs to act as an MSRP B2BUA.

   *  The gateway SHALL NOT modify the 'path' attribute received from
      data channel or from non-data channel endpoints.

   *  The gateway SHALL NOT modify the 'setup' value received from data
      channel or from non-data channel endpoints.

   *  The endpoint establishing an MSRP session using data channel
      transport SHALL NOT request inclusion of any relays, although it
      MAY interoperate with a peer that signals the use of relays.

7.  Updates to RFC 4975

   This document updates [RFC4975] by allowing the usage of the "msrps"
   scheme when the underlying connection is protected with DTLS.

8.  Security Considerations

   MSRP traffic over data channels, including confidentiality,
   integrity, and source authentication, is secured as specified by
   [RFC8831].  However, [RFC4975] allows transport of MSRP traffic over
   nonsecured TCP connections and does not provide a mechanism to
   guarantee usage of TLS end to end.  As described in [RFC4975], even
   if TLS is used between some hops, TCP might still be used between
   other hops.  Operators need to establish proper policies in order to
   ensure that the MSRP traffic is protected between endpoints.

   [RFC5547] specifies security considerations related to the usage of
   MSRP for file transfer.

   [RFC7092] specifies security considerations related to B2BUAs.

   Note that the discussion in Section 14.5 of [RFC4975] on MSRP message
   attribution to remote identities applies to data channel transport.

   If the Session Initiation Protocol (SIP) [RFC3261] is used to
   implement the offer/answer transactions for establishing the MSRP
   data channel, the SIP security considerations specified in [RFC3261]
   apply.

9.  IANA Considerations

9.1.  "msrps" URI scheme

   This document modifies the usage of the "msrps" URI scheme,
   registered by [RFC4975], by adding DTLS as a protected transport
   indicated by the URI scheme.

   A reference to RFC 8873 has been added to the URI scheme "msrps" in
   the "Uniform Resource Identifier (URI) Schemes" registry.

9.2.  Subprotocol Identifier "msrp"

   A reference to RFC 8873 has been added to the subprotocol identifier
   "msrp" in the "WebSocket Subprotocol Name Registry".

9.3.  SDP Attributes

   This document modifies the usage of a set of SDP attributes if any of
   those attributes is included in an SDP 'dcsa' attribute associated
   with an MSRP data channel.  The modified usage of the SDP 'setup'
   attribute is described in Section 4.5.  The usage of the other SDP
   attributes is described in Section 4.4.

   *  'accept-types'

   *  'accept-wrapped-types'

   *  'file-date'

   *  'file-disposition'

   *  'file-icon'

   *  'file-range'

   *  'file-selector'

   *  'file-transfer-id'

   *  'inactive'

   *  'max-size'

   *  'msrp-cema'

   *  'path'

   *  'recvonly'

   *  'sendonly'

   *  'sendrecv'

   The usage level "dcsa (msrp)" has been added to the registration of
   the SDP 'accept-types' attribute in the Session Description Protocol
   (SDP) Parameters "att-field" subregistry as follows:

   Contact name:     IESG
   Contact email:    iesg@ietf.org
   Attribute name:   accept-types
   Usage level:      dcsa (msrp)
   Purpose:          Contain the list of media types that the endpoint
                     is willing to receive.
   Reference:        RFC 8873

   The usage level "dcsa (msrp)" has been added to the registration of
   the SDP 'accept-wrapped-types' attribute in the Session Description
   Protocol (SDP) Parameters "att-field" subregistry as follows:

   Contact name:     IESG
   Contact email:    iesg@ietf.org
   Attribute name:   accept-wrapped-types
   Usage level:      dcsa (msrp)
   Purpose:          Contain the list of media types that the endpoint
                     is willing to receive in an MSRP message with
                     multipart content.
   Reference:        RFC 8873

   The usage level "dcsa (msrp)" has been added to the registration of
   the SDP 'file-date' attribute in the Session Description Protocol
   (SDP) Parameters "att-field" subregistry as follows:

   Contact name:     IESG
   Contact email:    iesg@ietf.org
   Attribute name:   file-date
   Usage level:      dcsa (msrp)
   Purpose:          Indicate one or more dates related to the file in
                     an MSRP file transfer negotiation.
   Reference:        RFC 8873

   The usage level "dcsa (msrp)" has been added to the registration of
   the SDP 'file-disposition' attribute in the Session Description
   Protocol (SDP) Parameters "att-field" subregistry as follows:

   Contact name:     IESG
   Contact email:    iesg@ietf.org
   Attribute name:   file-disposition
   Usage level:      dcsa (msrp)
   Purpose:          Provide a suggestion to the other endpoint about
                     the intended disposition of the file in an MSRP
                     file transfer negotiation.
   Reference:        RFC 8873

   The usage level "dcsa (msrp)" has been added to the registration of
   the SDP 'file-icon' attribute in the Session Description Protocol
   (SDP) Parameters "att-field" subregistry as follows:

   Contact name:     IESG
   Contact email:    iesg@ietf.org
   Attribute name:   file-icon
   Usage level:      dcsa (msrp)
   Purpose:          Contain a pointer to a small preview icon
                     representing the contents of the file in an MSRP
                     file transfer negotiation.
   Reference:        RFC 8873

   The usage level "dcsa (msrp)" has been added to the registration of
   the SDP 'file-range' attribute in the Session Description Protocol
   (SDP) Parameters "att-field" subregistry as follows:

   Contact name:     IESG
   Contact email:    iesg@ietf.org
   Attribute name:   file-range
   Usage level:      dcsa (msrp)
   Purpose:          Contain the range of transferred octets of the file
                     in an MSRP file transfer negotiation.
   Reference:        RFC 8873

   The usage level "dcsa (msrp)" has been added to the registration of
   the SDP 'file-selector' attribute in the Session Description Protocol
   (SDP) Parameters "att-field" subregistry as follows:

   Contact name:     IESG
   Contact email:    iesg@ietf.org
   Attribute name:   file-selector
   Usage level:      dcsa (msrp)
   Purpose:          Indicate a file in an MSRP file transfer
                     negotiation.
   Reference:        RFC 8873

   The usage level "dcsa (msrp)" has been added to the registration of
   the SDP 'file-transfer-id' attribute in the Session Description
   Protocol (SDP) Parameters "att-field" subregistry as follows:

   Contact name:     IESG
   Contact email:    iesg@ietf.org
   Attribute name:   file-transfer-id
   Usage level:      dcsa (msrp)
   Purpose:          Indicate a unique identifier of the file transfer
                     operation in an MSRP file transfer negotiation.
   Reference:        RFC 8873

   The usage level "dcsa (msrp)" has been added to the registration of
   the SDP 'inactive' attribute in the Session Description Protocol
   (SDP) Parameters "att-field" subregistry as follows:

   Contact name:     IESG
   Contact email:    iesg@ietf.org
   Attribute name:   inactive
   Usage level:      dcsa (msrp)
   Purpose:          Negotiate the direction of the media flow on an
                     MSRP data channel.
   Reference:        RFC 8873

   The usage level "dcsa (msrp)" has been added to the registration of
   the SDP 'max-size' attribute in the Session Description Protocol
   (SDP) Parameters "att-field" subregistry as follows:

   Contact name:     IESG
   Contact email:    iesg@ietf.org
   Attribute name:   max-size
   Usage level:      dcsa (msrp)
   Purpose:          Indicate the largest message an MSRP endpoint
                     wishes to accept.
   Reference:        RFC 8873

   The usage level "dcsa (msrp)" has been added to the registration of
   the SDP 'msrp-cema' attribute in the Session Description Protocol
   (SDP) Parameters "att-field" subregistry as follows:

   Contact name:     IESG
   Contact email:    iesg@ietf.org
   Attribute name:   msrp-cema
   Usage level:      dcsa (msrp)
   Purpose:          Indicate that the routing of MSRP messages
                     transported on a data channel is more similar to
                     the MSRP CEMA mechanism than the legacy MSRP
                     routing mechanism.
   Reference:        RFC 8873

   The usage level "dcsa (msrp)" has been added to the registration of
   the SDP 'path' attribute in the Session Description Protocol (SDP)
   Parameters "att-field" subregistry as follows:

   Contact name:     IESG
   Contact email:    iesg@ietf.org
   Attribute name:   path
   Usage level:      dcsa (msrp)
   Purpose:          Indicate an endpoint, but not used for routing, as
                     described in Section 4.4.
   Reference:        RFC 8873

   The usage level "dcsa (msrp)" has been added to the registration of
   the SDP 'recvonly' attribute in the Session Description Protocol
   (SDP) Parameters "att-field" subregistry as follows:

   Contact name:     IESG
   Contact email:    iesg@ietf.org
   Attribute name:   recvonly
   Usage level:      dcsa (msrp)
   Purpose:          Negotiate the direction of the media flow on an
                     MSRP data channel.
   Reference:        RFC 8873

   The usage level "dcsa (msrp)" has been added to the registration of
   the SDP 'sendonly' attribute in the Session Description Protocol
   (SDP) Parameters "att-field" subregistry as follows:

   Contact name:     IESG
   Contact email:    iesg@ietf.org
   Attribute name:   sendonly
   Usage level:      dcsa (msrp)
   Purpose:          Negotiate the direction of the media flow on an
                     MSRP data channel.
   Reference:        RFC 8873

   The usage level "dcsa (msrp)" has been added to the registration of
   the SDP 'setup' attribute in the "att-field" subregistry as follows:

   Contact name:     IESG
   Contact email:    iesg@ietf.org
   Attribute name:   setup
   Usage level:      dcsa (msrp)
   Purpose:          Negotiate the active role of an MSRP session over a
                     data channel as per Section 4.5.
   Reference:        RFC 8873

   The usage level "dcsa (msrp)" has been added to the registration of
   the SDP 'sendrecv' attribute in the Session Description Protocol
   (SDP) Parameters "att-field" subregistry as follows:

   Contact name:     IESG
   Contact email:    iesg@ietf.org
   Attribute name:   sendrecv
   Usage level:      dcsa (msrp)
   Purpose:          Negotiate the direction of the media flow on an
                     MSRP data channel.
   Reference:        RFC 8873

10.  References

10.1.  Normative References

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119,
              DOI 10.17487/RFC2119, March 1997,
              <https://www.rfc-editor.org/info/rfc2119>.

   [RFC3264]  Rosenberg, J. and H. Schulzrinne, "An Offer/Answer Model
              with Session Description Protocol (SDP)", RFC 3264,
              DOI 10.17487/RFC3264, June 2002,
              <https://www.rfc-editor.org/info/rfc3264>.

   [RFC4566]  Handley, M., Jacobson, V., and C. Perkins, "SDP: Session
              Description Protocol", RFC 4566, DOI 10.17487/RFC4566,
              July 2006, <https://www.rfc-editor.org/info/rfc4566>.

   [RFC4960]  Stewart, R., Ed., "Stream Control Transmission Protocol",
              RFC 4960, DOI 10.17487/RFC4960, September 2007,
              <https://www.rfc-editor.org/info/rfc4960>.

   [RFC4975]  Campbell, B., Ed., Mahy, R., Ed., and C. Jennings, Ed.,
              "The Message Session Relay Protocol (MSRP)", RFC 4975,
              DOI 10.17487/RFC4975, September 2007,
              <https://www.rfc-editor.org/info/rfc4975>.

   [RFC5547]  Garcia-Martin, M., Isomaki, M., Camarillo, G., Loreto, S.,
              and P. Kyzivat, "A Session Description Protocol (SDP)
              Offer/Answer Mechanism to Enable File Transfer", RFC 5547,
              DOI 10.17487/RFC5547, May 2009,
              <https://www.rfc-editor.org/info/rfc5547>.

   [RFC6135]  Holmberg, C. and S. Blau, "An Alternative Connection Model
              for the Message Session Relay Protocol (MSRP)", RFC 6135,
              DOI 10.17487/RFC6135, February 2011,
              <https://www.rfc-editor.org/info/rfc6135>.

   [RFC6714]  Holmberg, C., Blau, S., and E. Burger, "Connection
              Establishment for Media Anchoring (CEMA) for the Message
              Session Relay Protocol (MSRP)", RFC 6714,
              DOI 10.17487/RFC6714, August 2012,
              <https://www.rfc-editor.org/info/rfc6714>.

   [RFC7977]  Dunkley, P., Llewellyn, G., Pascual, V., Salgueiro, G.,
              and R. Ravindranath, "The WebSocket Protocol as a
              Transport for the Message Session Relay Protocol (MSRP)",
              RFC 7977, DOI 10.17487/RFC7977, September 2016,
              <https://www.rfc-editor.org/info/rfc7977>.

   [RFC8174]  Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
              2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
              May 2017, <https://www.rfc-editor.org/info/rfc8174>.

   [RFC8831]  Jesup, R., Loreto, S., and M. Tüxen, "WebRTC Data
              Channels", RFC 8831, DOI 10.17487/RFC8831, January 2021,
              <https://www.rfc-editor.org/info/rfc8831>.

   [RFC8841]  Holmberg, C., Shpount, R., Loreto, S., and G. Camarillo,
              "Session Description Protocol (SDP) Offer/Answer
              Procedures for Stream Control Transmission Protocol (SCTP)
              over Datagram Transport Layer Security (DTLS) Transport",
              RFC 8841, DOI 10.17487/RFC8841, January 2021,
              <https://www.rfc-editor.org/info/rfc8841>.

   [RFC8864]  Drage, K., Makaraju, M., Ejzak, R., Marcon, J., and R.
              Even, Ed., "Negotiation Data Channels Using the Session
              Description Protocol (SDP)", RFC 8864,
              DOI 10.17487/RFC8864, January 2021,
              <https://www.rfc-editor.org/info/rfc8864>.

10.2.  Informative References

   [RFC3261]  Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston,
              A., Peterson, J., Sparks, R., Handley, M., and E.
              Schooler, "SIP: Session Initiation Protocol", RFC 3261,
              DOI 10.17487/RFC3261, June 2002,
              <https://www.rfc-editor.org/info/rfc3261>.

   [RFC7092]  Kaplan, H. and V. Pascual, "A Taxonomy of Session
              Initiation Protocol (SIP) Back-to-Back User Agents",
              RFC 7092, DOI 10.17487/RFC7092, December 2013,
              <https://www.rfc-editor.org/info/rfc7092>.

Acknowledgments

   The authors wish to acknowledge the borrowing of ideas from another
   Internet-Draft by Peter Dunkley and Gavin Llewellyn, and to thank
   Flemming Andreasen, Christian Groves, Paul Kyzivat, Jonathan Lennox,
   Uwe Rauschenbach, Albrecht Schwarz, and Keith Drage for their
   invaluable comments.

   Richard Ejzak, Keith Drage, and Juergen Stoetzer-Bradler contributed
   to an earlier draft version of this document before the draft was
   readopted.

   Julien Maisonneuve helped with the readoption of this document, and
   Maridi R. Makaraju (Raju) contributed valuable comments after the
   document was readopted.

Authors' Addresses

   Jose M. Recio (editor)
   Unaffiliated

   Email: jose@ch3m4.com


   Christer Holmberg
   Ericsson
   Hirsalantie 11
   FI-02420 Jorvas
   Finland

   Email: christer.holmberg@ericsson.com