-
Notifications
You must be signed in to change notification settings - Fork 115
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
"Hold" unspecified #142
Comments
Something is needed, otherwise a simple hold/unhold process becomes really hard. Let's suppose an established audio/video session between Alice and Bob using SIP/XMPP over HTTP/WebSocket. Alice wants to put Bob on hold.
This becomes really complex and manual, even more when we have to manuall mangle and parse an SDP. I strongly expect that, given that SDP is the "WebRTC information exchange unit" it should offer some kind of API to deal with hold/unhold SDP features. Otherwise the usage of SDP seems a bad choice (IMHO). |
From Inaki Baz Castillo, on the list:"Putting a peer on hold" means:
or:
2) but I could send media to the remote. |
By Randell Jesus in public-webrtc maillist: Let's avoid the term "hold". We need:
From those, an application can compose whatever they want.IMHO notifications in 4) could be replaced with JS attributes in mediaStream instances (this is: instead of firing events let the developer inspect those mediaStream attributes when a new SDP is received and passed to the local PeerConnection. |
Muting a track (ceasing to send data) is a local event, and will be covered by the RTPSender proposal. Using SDP to cause the other party to cease sending data isn't clear about how it is done today, or should be done; this can likely be done in the RTPReceiver API, but this is a post-1.0 feature. Bug will be marked as "later" once RTPSender muting lands. |
Right now we have a way to tell the stream to only send "black" or "silence" via the mute, but we need a way to tell a stream to not send RTP packets (but keep doing keep alive , RTCP, etc) so that when the app wants to start sending packets again it can instantly start sending them with no signaling delay |
I don't think this is an enhancement - this was one of the reason we were going to do doohickeys and was discussed at the W3C meeting that was in China |
Isn't this an optimization? Is there a use-case for "I want to mute my video but waste my bandwidth"? |
Well if we had defined the baseline for mute to be not waste bandwidth, I'd be fine with it, but we seemed to make the default be wasted bandwidth with no way to not waste bandwidth. |
Doesn't the UA know that a stream is muted vs. black content? Is so, then can't it optimize it out? I know it can't today, but whatever we'd invent for hold couldn't we apply it to mute and fake the black on the receiving end? |
I think the "active" attribute on the RTPSender was supposed to do this (stop sending RTP, but keep RTCP going), see slide 11 https://www.w3.org/2011/04/webrtc/wiki/images/6/6c/WebRTC_RTCSender-Receiver%2C_TPAC_2014.pdf I think there is no API to ask the other end to stop sending RTP to you, but I don't really see the need for it. |
Intersting - that version of active makes sense to me but I think @juberti might have been thinking of something different. Regardless of what we decide it means - we need to make the spec super clear on what it means. |
Agreed, the spec must be clear. |
Bernard will query the list to see if this is OK. |
The following PRs provide functionality relating to this issue: An example of "hold" usage is provided in RFC 4317 Section 3.1, where Alice sends an Offer to Bob who responds with a=sendonly (putting Alice on Hold). To resume, Bob sends an Offer to Alice and Alice Answers. Here is how this can be implemented:
|
@aboba Can you please create a PR for this in the form of a sample in the examples section of the draft, if you think it's appropriate? |
Will write a PR once we decide what to do with PR #466 |
Now that #466 is near merged, Bernard will create PR |
Assuming that setDirection() lands (see PR #620) we will have all the basics:
Solution: (optionally) Mute on a stream level (Mute all tracks)
Solution: replaceTrack()
Solution: transceiver.setDirection(direction)
Solution: signaling |
Partial fix for Issue #142 Work-in-progress (do not merge yet)
The WebRTC draft and its normative references do not define a mechanism for applications for placing a session on hold. Similarly, no mechanism is defined for receivers to use in requesting that a sender stop the transmission of a specific stream for the purposes of muting that stream.
The text was updated successfully, but these errors were encountered: