<?xml version="1.0" encoding="US-ASCII"?>
<!-- This template is for creating an Internet Draft using xml2rfc,
  which is available here: http://xml.resource.org. -->
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!-- One method to get references from the online citation libraries.
     There has to be one entity for each item to be referenced.
     An alternate method (rfc include) is described in the references. -->

<!ENTITY DATAREQ     SYSTEM "reference.I-D.ietf-rtcweb-data-channel.xml">
<!ENTITY DATAPROTO   SYSTEM "reference.I-D.ietf-rtcweb-data-protocol.xml">
<!ENTITY DCSDPNEG    SYSTEM "reference.I-D.ietf-mmusic-data-channel-sdpneg.xml">
<!ENTITY SDPSCTP     SYSTEM "reference.I-D.ietf-mmusic-sctp-sdp.xml">
<!ENTITY JSEP        SYSTEM "reference.I-D.ietf-rtcweb-jsep.xml">
<!ENTITY RFC2119     SYSTEM "reference.RFC.2119.xml">
<!ENTITY RFC3264     SYSTEM "reference.RFC.3264.xml">
<!ENTITY RFC3758     SYSTEM "reference.RFC.3758.xml">
<!ENTITY RFC4145     SYSTEM "reference.RFC.4145.xml">
<!ENTITY RFC4960     SYSTEM "reference.RFC.4960.xml">
<!ENTITY RFC4566     SYSTEM "reference.RFC.4566.xml">
<!ENTITY RFC4566bis SYSTEM "reference.I-D.draft-ietf-mmusic-rfc4566bis-17.xml">
<!ENTITY RFC4975     SYSTEM "reference.RFC.4975.xml">
<!--  <!ENTITY RFC4976     SYSTEM "reference.RFC.4976.xml">  -->
<!ENTITY RFC5547     SYSTEM "reference.RFC.5547.xml">
<!ENTITY RFC6135     SYSTEM "reference.RFC.6135.xml">
<!ENTITY RFC6714     SYSTEM "reference.RFC.6714.xml">
]>

<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<!-- used by XSLT processors -->
<!-- For a complete list and description of processing instructions (PIs),
  please see http://xml.resource.org/authoring/README.html. -->
<!-- Below are generally applicable Processing Instructions (PIs) that most I-Ds might want to use.
  (Here they are set differently than their defaults in xml2rfc v1.32) -->
<?rfc strict="yes" ?>
<!-- give errors regarding ID-nits and DTD validation -->
<!-- control the table of contents (ToC) -->
<?rfc toc="yes"?>
<!-- generate a ToC -->
<?rfc tocdepth="4"?>
<!-- the number of levels of subsections in ToC. default: 3 -->
<!-- control references -->
<?rfc symrefs="yes"?>
<!-- use symbolic references tags, i.e, [RFC2119] instead of [1] -->
<?rfc sortrefs="no" ?>
<!-- sort the reference entries alphabetically -->
<!-- control vertical white space
     (using these PIs as follows is recommended by the RFC Editor) -->
<?rfc compact="yes" ?>
<!-- do not start each main section on a new page -->
<?rfc subcompact="no" ?>
<!-- keep one blank line between list items -->
<!-- end of list of popular I-D processing instructions -->

<rfc category="std" docName="draft-ietf-mmusic-msrp-usage-data-channel-05"  
     ipr="trust200902">
  <!-- category values: std, bcp, info, exp, and historic
  ipr values: trust200902, noModificationTrust200902, noDerivativesTrust200902,
  or pre5378Trust200902
  you can add the attributes updates="NNNN" and obsoletes="NNNN"
  they will automatically be output with "(if approved)" -->

  <!-- ***** FRONT MATTER ***** -->

 <front>
  <!-- The abbreviated title is used in the page header - it is only necessary if the
       full title is longer than 39 characters -->

  <title abbrev="MSRP over Data Channels">
                 MSRP over Data Channels
  </title>

  <!-- add 'role="editor"' below for the editors if appropriate -->

  <!-- Another author who claims to be an editor -->

  <author initials="K. E." surname="Drage" fullname="Keith Drage" role="editor">
   <organization>Nokia</organization>
   <address>
    <postal>
     <street>Quadrant, Stonehill Green, Westlea</street>
     <city>Swindon</city>
     <country>UK</country> 
    </postal>
    <email>Keith.Drage@nokia.com
    </email>
   </address>
  </author>

  <author initials="M. R." surname="Makaraju" fullname="Maridi R. Makaraju (Raju)">
   <organization>Nokia</organization>
   <address>
    <postal>
     <street>2000 Lucent Lane</street>
     <city>Naperville</city>
     <region>Illinois</region>
     <country>US</country> 
    </postal>
    <email>Raju.Makaraju@nokia.com
    </email>
   </address>
  </author>

  <author initials="J." surname="Stoetzer-Bradler" 
          fullname="Juergen Stoetzer-Bradler">
   <organization>Nokia</organization>
   <address>
    <postal>
     <street> Lorenzstrasse 10</street>
     <city>D-70435 Stuttgart</city>
     <region></region>
     <country>Germany</country> 
    </postal>
    <email> Juergen.Stoetzer-Bradler@nokia.com</email>
   </address>
  </author>

  <author fullname="Richard Ejzak" initials="R.P." surname="Ejzak">
   <organization>Unaffiliated</organization>
   <address>
    <email>richard.ejzak@gmail.com</email>
    <!-- uri and facsimile elements may also be added -->
   </address>
  </author>

  <author fullname="Jerome Marcon" initials="J.M." surname="Marcon">
   <organization>Unaffiliated</organization>
  </author>

  <date year="2016" />

  <!-- If the month and year are both specified and are the current ones, 
   xml2rfc will fill
   in the current day for you. If only the current year is specified, xml2rfc will fill
   in the current day and month for you. If the year is not the current one, it is
   necessary to specify at least a month (xml2rfc assumes day="1" if not specified for 
   the purpose of calculating the expiry date).  With drafts it is normally sufficient 
   to specify just the year. -->

  <!-- Meta-data Declarations -->

  <area>RAI</area>

  <workgroup>MMUSIC</workgroup>

  <!-- WG name at the upperleft corner of the doc,
    IETF is fine for individual submissions.
    If this element is not present, the default is "Network Working Group",
    which is used by the RFC Editor as a nod to the history of the IETF. -->


  <!-- Keywords will be incorporated into HTML output
    files in a meta tag but they have no effect on text or nroff
    output. If you submit your draft to the RFC Editor, the
    keywords will be used for the search engine. -->

  <abstract>

   <t>This document specifies how the Message Session Relay Protocol (MSRP) can be instantiated as a data channel sub-protocol, using the SDP offer/answer exchange-based generic data channel negotiation framework. Two network configurations are documented: a WebRTC end-to-end configuration (connecting two MSRP over data channel endpoints), and a gateway configuration (connecting an MSRP over data channel endpoint with an MSRP over TCP endpoint).</t>

  </abstract>
 </front>

 <middle>
  <section title="Introduction" anchor="introduction">

   <t>The Message Session Relay Protocol (MSRP) <xref target="RFC4975"></xref> 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 is currently defined to work over TCP and TLS connections.</t>

   <t>This document defines the negotiation and transport of this MSRP protocol over data channels, where a data channel is a bi-directional communication channel running on top of SCTP/DTLS (as per <xref target="I-D.ietf-rtcweb-data-channel"/>) and where MSRP is instantiated as a sub-protocol of this data channel.
The MSRP protocol negotiation defined in this document is based on the generic SDP offer/answer exchange based data channel negotiation as specified in <xref target="I-D.ietf-mmusic-data-channel-sdpneg"/>.
</t>

   <t>Defining MSRP as a data channel sub-protocol has many benefits:
    <list style='symbols'>
     <t>provides to applications a proven protocol enabling instant messaging, file transfer, image sharing</t>
     <t>integrates those features with other RTCWeb voice, video and data features</t>
     <t>leverages the SDP-based negotiation already defined for MSRP</t>
     <t>allows the interworking with MSRP endpoints running on a TCP or TLS connection</t>
    </list>
   </t>

   <t>Considering an MSRP endpoint being an MSRP application that uses data channel from WebRTC specifications <xref target="I-D.ietf-rtcweb-data-channel"/>, this document describes two configurations where the other endpoint is respectively either another MSRP over data channel endpoint (e.g., a WebRTC application) or an MSRP endpoint using either TCP or TLS transport.</t>

  </section>


  <section title="Conventions">
   <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in <xref target="RFC2119"></xref>.</t>
 </section>

  <section title="Terminology" anchor="terminology">
   <t>This document uses the following terms:
    <list style='hanging'>
     <t>Data channel: A WebRTC data channel as specified in 
        <xref target="I-D.ietf-rtcweb-data-channel"/>.</t>

     <t>MSRP data channel: A data channel specifically used 
        to transport the messages of one MSRP session.</t>

     <t>External negotiation: Data channel negotiation based 
        on out-of-band or in-band mechanisms other than the Data 
        Channel Establishment Protocol specified in 
        <xref target="I-D.ietf-rtcweb-data-protocol"/>.</t>

     <t>In-band: Transmission through the peer-to-peer SCTP 
        association.</t>

     <t>Out-of-band: Transmission through the call control signaling 
        path, e.g., using 
        <xref target="I-D.ietf-rtcweb-jsep">JSEP</xref> 
        and the SDP Offer/Answer model 
        <xref target="RFC3264"></xref>.</t>

     <t>Peer: From the perspective of one of the agents in a session, 
        its peer is the other agent. Specifically, from the perspective 
        of the SDP offerer, the peer is the SDP answerer. From the 
        perspective of the SDP answerer, the peer is the SDP offerer.</t>
    </list>
   </t>
  </section>

  <section title="Principles">

   <section title="MSRP Data Channel" anchor="msrp-data-channel">
    <t>In this document, an MSRP data channel is a data channel for which the instantiated sub-protocol is "MSRP", and where the MSRP-related negotiation is done as part of the SDP-based external negotiation method defined in <xref target="I-D.ietf-mmusic-data-channel-sdpneg"/>.</t>
   </section>

   <section title="Session Mapping">
    <t>In this design, the MSRP session maps to the SCTP association and the "SCTP stream pair" assigned to the data channel, and each MSRP session maps to one data channel exactly.</t>
   </section>

   <section title="MSRP URI">
    <t>This document extends the MSRP URI syntax <xref target="RFC4975"/> by defining the new transport parameter value "dc":</t>

     <figure align="left" title="">
      <artwork align="left"><![CDATA[
transport  /= "dc" / 1*ALPHANUM
              ; Add "dc" to existing transports per [RFC4975]
]]></artwork>
     </figure>

   </section>

   <section title="msrp-scheme">
    <t>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.</t>
   </section>

  </section>

  <section title="End-to-End Configuration" anchor="end_to_end">

   <t>This section describes the network configuration where each MSRP endpoint is running MSRP over a data channel.</t>

   <section title="Basic MSRP Support">

    <section title="Session Negotiation">

     <section title="Use of the dcmap Attribute" anchor="use-of-dcmap-attribute">

      <t>The SDP offer SHALL include a dcmap attribute line (defined in <xref target="I-D.ietf-mmusic-data-channel-sdpneg"/>), within the media description for the SCTP association for each MSRP data channel session to be negotiated.</t>

      <t>The attribute includes the following data channel parameters:
       <list style='symbols'>
        <t>"label=" labelstring</t>
        <t>"subprotocol=" "MSRP"</t>
       </list>
      </t>

      <t>The labelstring is set by the MSRP application according to <xref target="I-D.ietf-mmusic-data-channel-sdpneg"/>. Ordered and reliable data channels MUST always be used, such that the "max-retr" and "max-time" parameters SHALL NOT be used. If the "ordered" parameter is used, then its value MUST be equal to "true".</t>

      <t> Rest of the SDP offer/answer procedures are per <xref target="I-D.ietf-mmusic-data-channel-sdpneg"/>.</t>

      <t>The following is an example of the dcmap attribute for an MSRP session to be negotiated with stream=2 and label="chat":</t>

      <figure align="left" title="">
       <artwork align="left"><![CDATA[
a=dcmap:2 label="chat";subprotocol="MSRP"
]]></artwork>
      </figure>

     </section>

     <section title="Use of the dcsa Attribute" anchor="use-of-dcsa-attribute">

      <t>The SDP offer SHALL also include within the media description for the SCTP association a dcsa attribute line (defined in <xref target="I-D.ietf-mmusic-data-channel-sdpneg"/>) for each MSRP-specific SDP attribute to be negotiated for each MSRP data channel being negotiated.</t>

      <t>The MSRP-specific items that can be negotiated include at least all of the following well-known attributes:
       <list style='symbols'>
        <t>defined in <xref target="RFC4975"/>: "path", "accept-types", 
           "accept-wrapped-types", "max-size"</t>
        <t>defined in <xref target="RFC4566"/>: "sendonly", "recvonly", 
           "inactive", and "sendrecv"</t>
        <t>defined in <xref target="RFC6135"/>: "setup"</t>
        <t>defined in <xref target="RFC6714"/>: "msrp-cema"</t>
        <t>defined in <xref target="RFC5547"/>: all the parameters related to 
           MSRP file transfer. See <xref target="file_transfer"/>.</t>
       </list>
      </t>

      <t>The msrp-cema attribute SHALL be assumed to be present for every MSRP session using data channel transport, so the inclusion of the msrp-cema attribute is OPTIONAL.  This ensures that the data channel transport for the MSRP session is established without using the path attribute.</t>

      <t>The SDP answer SHALL include zero or more corresponding dcsa attribute lines for each negotiated MSRP session, according to the MSRP-specific attribute negotiation rules in the corresponding specifications.</t>

      <t>A new SDP offer/answer MAY update the MSRP subprotocol attributes while keeping the same subprotocol a=dcmap description. The semantics for newly negotiated MSRP subprotocol attributes are per <xref target="RFC4975"/>.</t>
     </section>


     <section title="Use of the setup Attribute" anchor="use-of-setup-attribute">

      <t>The SDP setup attribute, as introduced in <xref target="RFC4145"/>, can be used in WebRTC data channel related SDP media descriptions as a media level attribute, which is associated with the corresponding UDP/DTLS/SCTP or TCP/DTLS/SCTP "m" line. In this case the setup attribute is of the form "a=setup:&lt;role&gt;", where &lt;role&gt; assumes values as defined in <xref target="RFC4145"/>. Such a setup attribute is used as specified in <xref target="I-D.ietf-mmusic-sctp-sdp"/> in order to negotiate the establishment roles of the DTLS connection. If an MSRP session is negotiated over a data channel, then such an "a=setup" attribute has no relationship with the MSRP session.
      </t>

      <t>Additionally, the setup attribute can be embedded in a dcsa attribute and hence can explicitly be associated with an MSRP session over a specific data channel.
In such a case it is of the form "a=dcsa:x setup:&lt;role&gt;", with x being the data channel's SCTP stream identifier.
Such a dcsa embedded setup attribute has no relationship with the DTLS connection establishment roles.
      </t>

      <t>A dcsa embedded setup attribute MUST be used for MSRP sessions over data channels.
      </t>

      <t>The dcsa embedded setup attribute in an MSRP over data channel description is used to negotiate, which MSRP session endpoint assumes the active role as per Section 4.2.2 of <xref target="RFC6135"/> and Section 5.4 of <xref target="RFC4975"/>.
      </t>

      <t>It is considered an error if an MSRP over data channel description does not contain a dcsa embedded setup attribute.
      </t>

     </section>

     <section title="Example SDP Negotiation" anchor="example-sdp-negotiation">

      <t>The following is an example of an "m" line for data channels in an SDP offer that includes 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 <xref target="RFC4975"/> and <xref target="RFC5547"/>.</t>

      <figure align="left" title="">
       <artwork align="left"><![CDATA[
   m=application 54111 UDP/DTLS/SCTP webrtc-datachannel
   c=IN IP4 79.97.215.79
   a=max-message-size:100000
   a=sctp-port:5000
   a=setup:actpass
   a=connection:new
   a=fingerprint:SHA-256 \
        4A:AD:B9:B1:3F:82:18:3B:54:02:12:DF:3E:5D:49:6B:19:E5:7C:AB
   a=dcmap:0 label="chat";subprotocol="MSRP"
   a=dcsa:0 setup:active
   a=dcsa:0 accept-types:message/cpim text/plain
   a=dcsa:0 path:msrps://bob.example.com:54111/si438dsaodes;dc
   a=dcmap:2 label="file transfer";subprotocol="MSRP"
   a=dcsa:2 sendonly
   a=dcsa:2 setup:active
   a=dcsa:2 accept-types:message/cpim
   a=dcsa:2 accept-wrapped-types:*
   a=dcsa:2 path:msrps://bob.example.com:54111/jshA7we;dc
   a=dcsa:2 file-selector:name:"My cool picture.jpg" \
        type:image/jpeg size:32349 hash:sha-1: \
        72:24:5F:E8:65:3D:DA:F3:71:36:2F:86:D4:71:91:3E:E4:A2:CE:2E
   a=dcsa:2 file-transfer-id:vBnG916bdberum2fFEABR1FR3ExZMUrd
   a=dcsa:2 file-disposition:attachment
   a=dcsa:2 file-date:creation:"Mon, 15 May 2006 15:01:31 +0300"
   a=dcsa:2 file-icon:cid:id2@bob.example.com
   a=dcsa:2 file-range:1-32349
]]></artwork>
      </figure>

     </section>
    </section>

    <section title="Session Opening" anchor="session-opening">

     <t><xref target="use-of-setup-attribute"/> describes how the active MSRP session endpoint role is negotiated.
The active MSRP session endpoint does not use the path attribute to open a transport connection to its peer. Instead, it uses the data channel established for this MSRP session by the generic data channel opening procedure defined in <xref target="I-D.ietf-mmusic-data-channel-sdpneg"/>.</t>

     <t>As soon as this data channel is opened, the MSRP session is actually opened by the active MSRP session endpoint. In order to do this the active MSRP endpoint sends an MSRP SEND message (empty or not) to the other MSRP endpoint. The msrp-cema attribute is implicitly associated with every MSRP session using data channel transport.</t>

    </section>

    <section title="Data Framing" anchor="data-framing">

     <t>Each text-based MSRP message is sent on the corresponding SCTP stream using standard MSRP framing and chunking procedures, as defined in <xref target="RFC4975"/>, with each MSRP chunk delivered in a single SCTP user message. Therefore all sent MSRP chunks including the MSRP chunk header MUST have lengths of less than or equal to the value of the peer's "a=max-message-size" attribute, which is associated with the data channel's SCTP association.</t>

    </section>

    <section title="Data Sending and Reporting">

     <t>Data sending and reporting procedures SHALL conform to RFC 4975.</t>

    </section>

    <section title="Session Closing" anchor="session-closing">

     <t> The closure of an MSRP session MUST be signaled via an SDP offer/answer exchange which removes the "a=dcmap:" and "a=dcsa:" attribute lines associated with the MSRP session from the associated DTLS/SCTP based media description. This results in the associated data channel being closed as well as per <xref target="I-D.ietf-mmusic-data-channel-sdpneg"/>, where the actual data channel closure procedure is typically initiated by the SDP answerer right after having accepted the SDP offer.</t>

     <t>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 <xref target="RFC4975"/> where the procedure calls for setting the port to zero for 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.</t>

     <t>The SDP answerer must ensure that no dcmap or dcsa attributes are present in the SDP answer if no corresponding attributes are present in the received SDP offer.</t>

    </section>
   </section>

   <section title="Support for MSRP File Transfer Function" anchor="file_transfer">

    <t><xref target="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 endpoints using data channels, with the following considerations:

     <list style='symbols'>
      <t>As an MSRP session maps to one data channel, a file transfer session maps also to one data channel.</t>

      <t>SDP attributes specified in <xref target="RFC5547"/> for a file transfer "m" line are embedded as subprotocol-specific attributes using the syntax defined in <xref target="I-D.ietf-mmusic-data-channel-sdpneg"/>.</t>

      <t>Once the file transfer is complete, the same data channel MAY be reused for another file transfer.</t>
     </list>
    </t>

   </section>

  </section>

  <section title="Gateway Configuration" anchor="gateway-config">

   <t>This section describes the network configuration where one MSRP endpoint uses data channels as MSRP transport, the other MSRP endpoint uses TLS/TCP connections as MSRP transport, and the two MSRP endpoints interwork via an MSRP gateway.</t>

   <t>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 a MSRP B2BUA to interwork all the procedures as necessary between the endpoints.  No further specification is needed for this model.</t>

   <t>Alternately, the gateway can use CEMA procedures to provide transport level interworking between MSRP endpoints using different transport protocols as follows.</t>

   <t>When the gateway performs transport level interworking between MSRP endpoints, all of the procedures in <xref target="end_to_end"/> apply to each peer, with the following additions:

    <list style='symbols'>
     <t>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.</t>

     <t>The gateway receiving an SDP offer that includes a request to negotiate an MSRP session on a data channel can provide transport level interworking in the same manner as a CEMA SBC by forwarding TCP or TLS transport parameters in a new "m" line with the appropriate attributes within the forwarded SDP offer.

      <list style="symbols">
       <t>Especially, the gateway interworks the received MSRP over data channel associated dcsa embedded setup attribute with the media description level "a=setup" attribute of the MSRP over TCP or TLS "m" line within its forwarded SDP offer.
       </t>
      </list>
     </t>

     <t>Similarly, a gateway receiving an SDP offer to negotiate an MSRP session using TCP or TLS transport with an endpoint that only supports data channel transport for MSRP can provide transport level interworking in the same manner as a CEMA SBC by establishing a new data channel for the MSRP session with the target endpoint.

      <list style="symbols">
       <t>In this case the gateway interworks the received MSRP over TCP or TLS associated "a=setup" attribute with the dcsa embedded setup attribute of the generated MSRP over data channel description.
       </t>
      </list>
     </t>
    </list>
   </t>

  </section>

  <section anchor="Security" title="Security Considerations">

   <t>To be completed.</t>

  </section>

  <section anchor="IANA" title="IANA Considerations">

   <section title="Subprotocol Identifier MSRP" anchor="IANA-reg-MSRP">

      <t>NOTE to RFC Editor: Please replace "XXXX" with the number of this RFC.
    </t>

    <t>This document adds the subprotocol identifier "MSRP" to the "WebSocket Subprotocol Name Registry" as follows:
    </t>

     <texttable title="">
       <ttcol align='left' width='30%'/>
       <ttcol align='left'/>

       <c>Subprotocol Identifier:</c>
       <c>MSRP</c>

       <c>Subprotocol Common Name:</c>
       <c>MSRP</c>

       <c>Subprotocol Definition:</c>
       <c>RFCXXXX</c>

       <c>Reference:</c>
       <c>RFCXXXX</c>
     </texttable>

   </section>

   <section title="setup Attribute" anchor="IANA-reg-setup">

       <t>NOTE to RFC Editor: Please replace "XXXX" with the number of this RFC.
     </t>

     <t>This document modifies the usage of the SDP setup attribute, if this attribute is embedded in a dcsa attribute and associated with an MSRP session over a data channel. The modified usage is described in <xref target="use-of-setup-attribute"/>.
     </t>

     <t>Usage level "dcsa(MSRP)" should be added to the IANA registration of the SDP setup attribute as follows:
     </t>

     <texttable title="">
       <ttcol align='left' width='35%'/>
       <ttcol align='left' width='65%'/>

       <c>Contact name:</c>
       <c>MMUSIC Chairs</c>

       <c>Contact email:</c>
       <c>mmusic-chairs@ietf.org</c>

       <c>Attribute name:</c>
       <c>setup</c>

       <!--
       <c>Attribute syntax:</c>
       <c>unchanged</c>
       -->

       <!--
       <c>Attribute semantics:</c>
       <c>unchanged</c>
       -->

       <c>Usage level:</c>
       <c>dcsa(MSRP)</c>

       <!--
       <c>Charset dependent:</c>
       <c>unchanged</c>
       -->

       <c>Purpose:</c>
       <c> Negotiate the active role of an MSRP session over a data channel as per 
       <xref target="use-of-setup-attribute"/>
       </c>

       <!--
       <c>Appropriate values:</c>
       <c>unchanged</c>
       -->

       <!--
       <c>O/A procedures:</c>
       <c>unchanged</c>
       -->

       <!--
       <c>Mux category:</c>
       <c>unchanged</c>
       -->

       <c>Reference:</c>
       <c>RFCXXXX</c>
     </texttable>

   </section>
  </section>

  <section title="Acknowledgments">

   <t>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, Christer Holmberg, Paul Kyzivat, Jonathan Lennox, Uwe Rauschenbach, Albrecht Schwarz and Keith Drage for their invaluable comments.</t>

  </section>

 <section title="CHANGE LOG">

  <section title="Changes against 'draft-ietf-mmusic-msrp-usage-data-channel-04'">
   <t>
    <list style="symbols">

     <t>Addition of <xref target="I-D.ietf-mmusic-rfc4566bis"/>
     to list of normative references.
     </t>

     <t>Addition of <xref target="IANA-reg-setup"/> as per section 8.2.4 
     of <xref target="I-D.ietf-mmusic-rfc4566bis"/>.
     </t>

    </list>
   </t>
  </section>

  <section title="Changes against 'draft-ietf-mmusic-msrp-usage-data-channel-03'">
   <t>
    <list style="symbols">

     <t>Addition of IANA registration related <xref target="IANA-reg-MSRP"/>.
     </t>

    </list>
   </t>
  </section>

  <section title="Changes against 'draft-ietf-mmusic-msrp-usage-data-channel-02'">
   <t>
    <list style="symbols">

     <t>Addition of "a=setup:actpass", "a=connection:new", "a=fingerprint:..." and "a=dcsa:x setup=active" SDP attributes to the SDP example in <xref target="example-sdp-negotiation"/>.
     </t>

     <t>Addition of <xref target="RFC4145"/> and <xref target="I-D.ietf-mmusic-sctp-sdp"/> to list of normative references.
     </t>

     <t>Addition of new <xref target="use-of-setup-attribute"/> describing how the active MSRP session endpoint role is negotiated.
     </t>

     <t>Extension of first paragraph of <xref target="session-opening"/> with new first sentence "<xref target="use-of-setup-attribute"/> describes how the active MSRP session endpoint role is negotiated.".
     </t>

     <t>First sentence of second paragraph in <xref target="session-opening"/> was "As soon as this data channel is opened, the MSRP session is actually opened by the active MSRP endpoint which sends an MSRP SEND message (empty or not) to the other MSRP endpoint." Replacement of this sentence with "As soon as this data channel is opened, the MSRP session is actually opened by the active MSRP endpoint. In order to do this the active MSRP endpoint sends an MSRP SEND message (empty or not) to the other MSRP endpoint."
     </t>

     <t>Addition of setup attribute specific behavior descriptions of data channel to TCP or TLS interworking gateways in <xref target="gateway-config"/>.
     </t>

    </list>
   </t>
  </section>

  <section title="Changes against 'draft-ietf-mmusic-msrp-usage-data-channel-01'">
   <t>
    <list style="symbols">

     <t>In the abstract replacement of the first sentence "This document specifies how the Message Session Relay Protocol (MSRP) can be instantiated as a data channel sub-protocol, using the SDP offer/answer exchange-based external negotiation defined in <xref target="I-D.ietf-mmusic-data-channel-sdpneg"/>" with "This document specifies how the Message Session Relay Protocol (MSRP) can be instantiated as a data channel sub-protocol, using the SDP offer/answer exchange-based generic data channel negotiation framework" in order to remove the reference from the abstract text.
     </t>

     <t>Addition of following sentence to the second paragraph in <xref target="introduction"/>: "The MSRP protocol negotiation defined in this document is based on the generic SDP offer/answer exchange based data channel negotiation as specified in <xref target="I-D.ietf-mmusic-data-channel-sdpneg"/>".
     </t>

     <t>In <xref target="msrp-data-channel"/> replacement of sub-protocol identifier "msrp" with "MSRP" in order to make this consistent with the formal specification in 
<xref target="use-of-dcmap-attribute"/>.
     </t>

     <t>Throughout the text replacement of "shall" with "SHALL" etc where appropriate as per <xref target="RFC2119"/>.
     </t>

     <t>In <xref target="use-of-dcmap-attribute"/> replacement of sentence 'The max-retr, max-time and ordered parameters shall not be used.' with 'Ordered and reliable data channels MUST always be used, such that the "max-retr" and "max-time" parameters SHALL NOT be used. If the "ordered" parameter is used, then its value MUST be equal to "true".'.
     </t>

     <t>In <xref target=" use-of-dcmap-attribute"/> removal of "(on default SCTP port 5000)" from the sentence preceding the example "a=dcmap" attribute line.
     </t>

     <t>In <xref target="use-of-dcsa-attribute"/> first paragraph was "The SDP offer shall also include a dcsa attribute line (defined in <xref target="I-D.ietf-mmusic-data-channel-sdpneg"/>) within the media description for the SCTP association for each MSRP-specific SDP attribute to be negotiated for each MSRP data channel being negotiated.". Replacement of this paragraph with "The SDP offer SHALL also include within the media description for the SCTP association a dcsa attribute line (defined in <xref target="I-D.ietf-mmusic-data-channel-sdpneg"/>) for each MSRP-specific SDP attribute to be negotiated for each MSRP data channel being negotiated.".
     </t>

     <t>Appended following sentence at the end of the first paragraph of <xref target="data-framing"/>: "Therefore all sent MSRP chunks MUST have lengths of less than or equal to the value of the peer's "a=max-message-size" attribute, which is associated with the data channel's SCTP association.".
     </t>

     <t>Addition of the previously missing colon to the "a=sctp-port" attribute line in <xref target="example-sdp-negotiation"/>.
     </t>

     <t>In <xref target="session-closing"/> replacement of the first paragraph "Closing of an MSRP session is done using the generic data channel closing procedure defined in <xref target="I-D.ietf-mmusic-data-channel-sdpneg"/>." with 'The closure of an MSRP session MUST be signaled via an SDP offer/answer exchange which removes the "a=dcmap:" and "a=dcsa:" attribute lines associated with the MSRP session from the associated DTLS/SCTP based media description. This results in the associated data channel being closed as well as per <xref target="I-D.ietf-mmusic-data-channel-sdpneg"/>, where the actual data channel closure procedure is typically initiated by the SDP answerer right after having accepted the SDP offer.'.
     </t>

    </list>
   </t>
  </section>

  <section title="Changes against 'draft-ietf-mmusic-msrp-usage-data-channel-00'">
   <t>
    <list style="symbols">

     <t>Additional reference to <xref target="I-D.ietf-mmusic-data-channel-sdpneg"/> in list of normative references.</t>

     <t>Replacement of previous document title "MSRP over SCTP/DTLS data channels" with "MSRP over Data Channels" in order to align with the terminology used in <xref target="I-D.ietf-mmusic-data-channel-sdpneg"/>.</t>

     <t>In <xref target="terminology"/> "WebRTC data channel" was defined as "A bidirectional channel consisting of paired SCTP outbound and inbound streams." Replacement of this definition with "Data channel: A WebRTC data channel as specified in <xref target="I-D.ietf-rtcweb-data-channel"/>", and consistent usage of either "data channel" or "MSRP data channel" in the remainder of the document."</t>

     <t>In the introduction replacement of references to <xref target="I-D.ietf-rtcweb-data-protocol"/> with a reference to <xref target="I-D.ietf-rtcweb-data-channel"/>.</t>

     <t>Consistent usage of '"m" line' in whole document as per <xref target="RFC4566"/>.</t>

     <t>In the <xref target="gateway-config">gateway configuration section</xref> replacement of the first sentence "This section describes the network configuration where one endpoint runs MSRP over a WebRTC SCTP/DTLS connection, the other MSRP endpoint runs MSRP over one or more  TLS/TCP connections, and the two endpoints interwork via an MSRP gateway" with "This section describes the network configuration where one MSRP endpoint uses data channels as MSRP transport, the other MSRP endpoint uses TLS/TCP connections as MSRP transport, and the two MSRP endpoints interwork via an MSRP gateway".</t>

    </list>
   </t>
  </section>

  <section title="Changes against 'draft-ejzak-mmusic-msrp-usage-data-channel-01'">
   <t>
    <list style="symbols">
     <t>Removed empty spaces after ";" in the examples' "a=dcmap" attribute lines.</t>

     <t>In all examples, the "m" line proto value "DTLS/SCTP" was replaced with "UDP/DTLS/SCTP" and the "a=fmtp" attribute lines were replaced with "a=max-message-size" attribute lines, as per draft-ietf-mmusic-sctp-sdp-12.</t>
    </list>
   </t>
  </section>

  <section title="Changes against '-00'">
   <t>
    <list style="symbols">
     <t> Transport parameter change for MSRP to allow MSRP RFC transports.</t>

     <t> Clarification on SDP offer/answer and removing duplicated procedures and refer them to draft-ejzak-mmusic-data-channel-sdpneg-02.</t>

    </list>
   </t>

  </section>

 </section>

</middle>

<!--  *****BACK MATTER ***** -->

<back>
 <!-- References split into informative and normative -->

 <!-- There are 2 ways to insert reference entries from the citation libraries:
  1. define an ENTITY at the top, and use "ampersand character"RFC2629; here (as shown)
  2. simply use a PI "less than character"?rfc include="reference.RFC.2119.xml"?> here
  (for I-Ds: include="reference.I-D.narten-iana-considerations-rfc2434bis.xml")

  Both are cited textually in the same manner: by using xref elements.
  If you use the PI option, xml2rfc will, by default, try to find included files in the same
  directory as the including file. You can also define the XML_LIBRARY environment variable
  with a value containing a set of directories to search.  These can be either in the local
  filing system or remote ones accessed by http (http://domain/dir/... ).-->


 <references title="Normative References">

   &RFC2119;
   &JSEP;
   &RFC3264;
   &DATAPROTO;
   &DATAREQ;
   &DCSDPNEG;
   &SDPSCTP;
   &RFC4145;
   &RFC4566;
   &RFC4566bis;
   &RFC4975;
   <!--  &RFC4976;  -->
   &RFC5547;
   &RFC6135;
   &RFC6714;

 </references>

 <!--
 <references title="Informative References">
 -->

  <!--
  <reference anchor='WebRtcAPI' target='http://www.w3.org/TR/2012/WD-webrtc-20120821'>
   <front>
    <title>WebRTC 1.0: Real-time Communication Between Browsers</title>

    <author initials='A.' surname='Bergkvist' fullname='Adam Bergkvist'>
    <organization />
    </author>

    <author initials='D.' surname='Burnett' fullname='Daniel C. Burnett'>
    <organization />
    </author>

    <author initials='A.' surname='Narayanan' fullname='Anant Narayanan'>
    <organization />
    </author>

    <author initials='C.' surname='Jennings' fullname='Cullen Jennings'>
    <organization />
    </author>

    <date month='August' day='21' year='2012' />
   </front>
   <seriesInfo name='World Wide Web Consortium WD' value='WD-webrtc-20120821' />
   <format type='HTML' target='http://www.w3.org/TR/2012/WD-webrtc-20120821' />
  </reference>
  -->

 <!--
 </references>
 -->

</back>

</rfc>
