Subject: [rtcweb] BUNDLE: Change is order to align with JSEP

From: Christer Holmberg <[email-masked]>
Date: Sat, 13 Mar 2021 19:42:40 +0000

Hi,

I had a look at BUNDLE, trying to identify the sections that would be impacted by the assumption that the JSEP/BUNDLE alignment will be solved by aligning BUNDLE with JSEP.

If you search for "bundle-only", you will get quite many hits. However, in most cases the alignment would not impact the current text where "bundle-only" is mentioned. But, please let me know if you think I have missed some text that would have to be modified.

Note that the purpose of this e-mail is not to agree on the exact wording, but rather to give a hint of how the changes would look like.

Regards,

Christer

------

*Section: 6.  SDP 'bundle-only' Attribute

OLD:

   Once the offerer-tagged "m=" section and the answerer-tagged "m="
   section have been selected, an offerer and answerer will include an
   SDP 'bundle-only' attribute in, and assign a zero port value to,
   every other bundled "m=" section.

   The usage of the 'bundle-only' attribute is only defined for a
   bundled "m=" section with a zero port value.  Other usage is
   unspecified.

   Section 7 defines the detailed SDP offer/answer procedures for the
   'bundle-only' attribute.

NEW:

   The usage of the 'bundle-only' attribute is only defined for a
   bundled "m=" section with a zero port value.  Other usage is
   unspecified. If an offerer or answerer receives a 'bundle-only'
   attribute in a non-bundled "m=" section the offerer or answerer
   MUST discard the attribute.

   Section 7 defines the detailed SDP offer/answer procedures for the
   'bundle-only' attribute.

------

*Section: 7.3 Generating the SDP Answer

OLD:

   *  Assign the answerer BUNDLE address:port to the answerer-tagged
      "m=" section;

   *  Include an SDP 'bundle-only' attribute in, and assign a zero port
      value to, every other bundled "m=" section within the BUNDLE
      group;

NEW:

   *  Assign the answerer BUNDLE address:port to the answerer-tagged
      "m=" section, and to every other bundled "m=" section within the BUNDLE
      group;

OLD:

-

NEW:

   NOTE: In a previous version of the specification, instead of assigning
   the offerer BUNDLE address:port to each  "m=" section within the BUNDLE group when
   modifying the session [ref-to-section-7.5], the offerer only assigned the offerer
   BUNDLE address:port to the offerer-tagged "m=" section. For every other  "m=" section
   within the BUNDLE group, the offerer included an SDP 'bundle-only' attribute in, and
   assigned a zero port value to, the "m=" section. In order to be backward compatible
   with offerers that implement that version of the specification, an answerer needs to accept such offers.

------

*Section: 7.3.4 Example: SDP Answer

OLD:

SDP Answer

     v=0
     o=bob 2808844564 2808844564 IN IP6 2001:db8::1
     s=
     c=IN IP6 2001:db8::1
     t=0 0
     a=group:BUNDLE foo bar

     m=audio 20000 RTP/AVP 0
     b=AS:200
     a=mid:foo
     a=rtcp-mux
     a=rtpmap:0 PCMU/8000
     a=extmap:1 urn:ietf:params:rtp-hdrext:sdes:mid

     m=video 0 RTP/AVP 32
     b=AS:1000
     a=mid:bar
     a=bundle-only
     a=rtpmap:32 MPV/90000
     a=extmap:1 urn:ietf:params:rtp-hdrext:sdes:mid

NEW:

SDP Answer

     v=0
     o=bob 2808844564 2808844564 IN IP6 2001:db8::1
     s=
     c=IN IP6 2001:db8::1
     t=0 0
     a=group:BUNDLE foo bar

     m=audio 20000 RTP/AVP 0
     b=AS:200
     a=mid:foo
     a=rtcp-mux
     a=rtpmap:0 PCMU/8000
     a=extmap:1 urn:ietf:params:rtp-hdrext:sdes:mid

     m=video 20000 RTP/AVP 32
     b=AS:1000
     a=mid:bar
     a=rtpmap:32 MPV/90000
     a=extmap:1 urn:ietf:params:rtp-hdrext:sdes:mid

------

Section: 7.4.  Offerer Processing of the SDP Answer

OLD:

-

NEW:

   NOTE: In a previous version of the specification, instead of assigning
   the answerer BUNDLE address:port to each  "m=" section within the BUNDLE group when
   generating the answer [ref-to-section-7.3], the answerer only assigned the answerer
   BUNDLE address:port to the answerer-tagged  "m=" section. For every other  "m=" section
   within the BUNDLE group, the answerer included an SDP 'bundle-only' attribute in, and
   assigned a zero port value to, the "m=" section. In order to be backward compatible with
   answerers that implement that version of the specification, an offerer needs to accept such answers.

-----

Section: 7.5.  Modifying the Session

OLD:

   *  Assign a BUNDLE address:port (previously negotiated or newly
      suggested) to the offerer-tagged "m=" section;

   *  Include an SDP 'bundle-only' attribute in, and assign a zero port
      value to, every other bundled "m=" section within the BUNDLE
      group;

NEW:

   *  Assign a BUNDLE address:port (previously negotiated or newly
      suggested) to the offerer-tagged "m=" section, and to every other
      bundled "m=" section within the BUNDLE group;

------

*Section: 18.  Examples

The examples in Section 18 will be updated accordingly.

------

Regards,

Christer