- From: Stefan Håkansson LK <stefan.lk.hakansson@ericsson.com>
- Date: Thu, 12 Jul 2018 08:24:52 +0000
- To: Bernard Aboba <Bernard.Aboba@microsoft.com>, "public-webrtc@w3.org" <public-webrtc@w3.org>
On 2018-07-10 22:19, Bernard Aboba wrote: > As noted in Issue 1858, calling transceiver.stop() when using bundled “m=” > sections can have unexpected side effects. For example, BUNDLE Section 7.3.3 > suggests that an Answerer cannot reject an offerer tagged “m=” section on its > own, but instead must reject other “m=” sections. This implies that if > transceiver.stop() does not throw, it will have the side effect of “stopping” > all transceivers in the BUNDLE group. > > Currently the WebRTC 1.0 API provides no mechanism allowing the application to > designate which transceiver corresponds to the tagged “m=” section, nor to > determine which “m=” section has been tagged (aside from parsing the SDP). > Therefore, the application cannot easily anticipate either potential behavior > - throwing or stopping all transceivers in the BUNDLE group. > > What are the potential alternatives? > > 1. Document the issue but do not fix it. This approach would effectively > relegate use of transceiver.stop() to scenarios where stopping all > transceivers in the BUNDLE group is a desired outcome. If that is not the > desired outcome, then causing transceiver.direction to transition to > “inactive” might be better choice, since that causes transceiver.receiver > and transceiver.sender to stop sending while not affecting the operation of > other transceivers. > 2. Add a mechanism by which the application can determine which transceiver is > offerer-tagged, but cannot set this attribute. > 3. Add mechanisms by which an application can set which transceiver is > offerer-tagged. > > Discuss. I guess that to some extent this depends on the intended use cases for transceiver.stop(). What use of it do we envision? Another question that pops to mind: would the use cases for trx.stop() be compatible with the "max-compat" bundle policy? If so that could be a way to handle this. If not we probably need to look into 2. or 3. above. > > The BUNDLE specification states: > > *7.2.1*<https://tools.ietf.org/html/draft-ietf-mmusic-sdp-bundle-negotiation-52#section-7.2.1>*. > Suggesting the Offerer tagged 'm=' section* > > In the initial BUNDLE offer, the bundled "m=" section indicated by > > the offerer BUNDLE-tag is the suggested offerer tagged "m=" section. > > The address:port combination associated with the "m=" section will be > > used by the offerer for sending and receiving bundled media if the > > answerer selects the "m=" section as the offerer tagged "m=" section > > [Section 7.3.1 > <https://tools.ietf.org/html/draft-ietf-mmusic-sdp-bundle-negotiation-52#section-7.3.1>]. > In addition, if the answerer selects the "m=" > > section as the offerer tagged "m=" section, the BUNDLE attributes > > included in the "m=" section will be applied to each "m=" section > > within the negotiated BUNDLE group. > > The offerer MUST NOT suggest a bundle-only "m=" section as the > > offerer tagged "m=" section. > > It is RECOMMENDED that the suggested offerer tagged "m=" section is a > > bundled "m=" section that the offerer believes it is unlikely that > > the answerer will reject, or move out of the BUNDLE group. How such > > assumption is made is outside the scope of this document. > > *7.3.3*<https://tools.ietf.org/html/draft-ietf-mmusic-sdp-bundle-negotiation-52#section-7.3.3>*. > Rejecting a Media Description in a BUNDLE Group* > > When an answerer wants to reject a bundled "m=" section in an answer, > > it MUST first check the following criterion: > > o In the corresponding offer, the "m=" section is the offerer tagged > > "m=" section. > > If the criterium above is fulfilled the answerer can not reject the > > "m=" section in the answer. The answerer can either reject the whole > > offer, reject each bundled "m=" section within the BUNDLE group, or > > keep the "m=" section within the BUNDLE group in the answer and later > > create an offer where the "m=" section is disabled within the BUNDLE > > group [Section 7.5.3 > <https://tools.ietf.org/html/draft-ietf-mmusic-sdp-bundle-negotiation-52#section-7.5.3>]. > > When an answerer generates an answer, in which it rejects a bundled > > "m=" section, the answerer: > > o MUST assign a zero port value to the "m=" section, according to > > the procedures in [RFC3264 <https://tools.ietf.org/html/rfc3264>]; and > > o MUST NOT place the identification-tag associated with the "m=" > > section in the SDP 'group:BUNDLE' attribute identification-tag > > list associated with the BUNDLE group; and > > o MUST NOT include an SDP 'bundle-only' attribute in the "m=" > > section. > > Reference: https://github.com/w3c/webrtc-pc/issues/1858 > > https://avatars0.githubusercontent.com/u/14118599?s=400&v=4 > <https://github.com/w3c/webrtc-pc/issues/1858> > > > > What happens when an answerer stops a transceiver that ... > <https://github.com/w3c/webrtc-pc/issues/1858> > > github.com > > The BUNDLE spec says: When an answerer wants to reject a bundled "m=" section in > an answer, it MUST first check the following criterium: -In the corresponding > offer, an offerer BUNDLE address:port (previously selected [Section 8.3.1] or ... >
Received on Thursday, 12 July 2018 08:25:26 UTC