Closed Bug 1196701 Opened 10 years ago Closed 10 years ago

setLocalDescription/setRemoteDescription with modified SDP doesn't work for Hold, Unhold(v38+)

Categories

(Core :: WebRTC: Signaling, defect, P2)

39 Branch
All
Unspecified
defect

Tracking

()

RESOLVED INVALID

People

(Reporter: rajkumaradass, Unassigned)

Details

Attachments

(1 file)

User Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.46 Safari/537.36 Steps to reproduce: Steps to reproduce: 1. Make webRTC - webRTC audio+video call . 2. Call connected and two way media path is successful 3. If user tries hold by modifiying the initial generated offer SDP to have "a=inactive" for audio & video media types and applies with setLocalDescription. 4. Remote SDP is modified to have "a=inactive" for audio & video media types and applied with setRemoteDescription. Actual results: Steps 3 fails with below error( from nspr.log) 2015-08-20 11:15:47.708000 UTC - 0[2911140]: [main|PeerConnectionImpl] PeerConnectionImpl.cpp:1527: mozilla::PeerConnectionImpl::SetLocalDescription: pc = cdfd30188083d84e, error = Calling SetLocal without first calling CreateOffer/Answer is not supported. Steps 3 fails with below error( from nspr.log) 2015-08-20 09:30:22.606000 UTC - 0[2911140]: [main|PeerConnectionImpl] PeerConnectionImpl.cpp:1626: mozilla::PeerConnectionImpl::SetRemoteDescription: pc = b04b4ad38477b65a, error = Cannot set remote answer in state stable Expected results: Both step3 and step4 should be successful.
Severity: normal → major
Component: Untriaged → WebRTC
Priority: -- → P2
Product: Firefox → Core
Hardware: Unspecified → All
Version: 40 Branch → 39 Branch
Summary: setLocalDescription with modified SDP doesn't work for Hold, Unhold → setLocalDescription/setRemoteDescription with modified SDP doesn't work for Hold, Unhold(v38+)
Component: WebRTC → WebRTC: Networking
You cannot reuse SDP on a subsequent offer/answer exchange. You must create a new SDP using CreateOffer/CreateAnswer as appropriate. Also, you cannot modify the direction attribute like this. You can, however, remove the track and renegotiate to stop sending. I am not aware of a way to force the other side to do the same under the current JSEP spec, since it requires the offerer to always offer to receive on m-sections that were receiving before.
Status: UNCONFIRMED → RESOLVED
Closed: 10 years ago
Component: WebRTC: Networking → WebRTC: Signaling
Resolution: --- → INVALID
This appears to be different from how it is in chrome currently. Chrome does allow SDP mangling and re-apply regardless of createOffer/CreateAnswer sequence. Also i remember Firefox does not have removeTrack support yet in it? Could you please confirm
Flags: needinfo?(docfaraday)
We support this: http://w3c.github.io/webrtc-pc/#widl-RTCPeerConnection-removeTrack-void-RTCRtpSender-sender We support some amount of SDP mangling, but not mangling of direction really (it _might_ work, but I would not bet on it, since this is not something we ever intended to support, nor did the working group as far as I know). What SDP mangling is supposed to be supported is not really defined at all right now, and there isn't even an issue open on the tracker (http://w3c.github.io/webrtc-pc/#widl-RTCPeerConnection-setLocalDescription-Promise-void--RTCSessionDescription-description) According to the w3c spec, an SDP generated by createOffer/Answer is only guaranteed to be valid until the success callback returns, meaning that you should probably be using it immediately. In Firefox it currently remains valid until offer/answer concludes. This could shorten in the future due to things like codec reservation. Lastly, there is an issue open for hold that maybe you can watch for developments, but I don't know if that's in scope for 1.0: https://github.com/w3c/webrtc-pc/issues/142
Flags: needinfo?(docfaraday)
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: