lynckia / licode

Open Source Communication Provider based on WebRTC and Cloud technologies
http://lynckia.com/licode
MIT License
3.1k stars 1.01k forks source link

Firefox 37 : unable to make call #283

Closed mccob closed 9 years ago

mccob commented 9 years ago

Since Firefox 37, unable to make call with old version of licode/basic example (legacy branch). Only error I have for the moment is

InvalidSessionDescriptionError: Answer changes mid for level, was 'sdparta_0', now 'audio'

mccob commented 9 years ago

additionnal info from debug : DEBUG: " "Ups! Something went wrong " DOMException [InternalError: "Cannot create an offer with no local tracks, no offerToReceiveAudio/Video, and no DataChannel.

mccob commented 9 years ago
"DEBUG: " "Creating offer" erizo-nomin.js:3105:68
"DEBUG: " "Changed" "v=0

o=mozilla...THIS_IS_SDPARTA-38.0a2 7266357635909547069 0 IN IP4 0.0.0.0

s=-

t=0 0

a=fingerprint:sha-256 E8:8B:1E:1E:05:87:26:BC:B4:4B:50:67:43:7A:DB:0A:98:43:73:E5:61:96:44:E0:57:EF:00:20:97:0A:7C:9D

a=group:BUNDLE sdparta_0 sdparta_1

a=ice-options:trickle

a=msid-semantic:WMS *

m=audio 9 RTP/SAVPF 109 9 0 8

c=IN IP4 0.0.0.0

a=sendrecv

a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level

a=ice-pwd:15652d6ecfacbf4a73fcba83948b2723

a=ice-ufrag:df6dc707

a=mid:sdparta_0

a=msid:{d259b9a5-16ec-4d90-af5f-278987931992} {6c9c2a1d-4257-492a-ba15-1aeb4590a80f}

a=rtcp-mux

a=rtpmap:109 opus/48000/2

a=rtpmap:9 G722/8000/1

a=rtpmap:0 PCMU/8000

a=rtpmap:8 PCMA/8000

a=setup:actpass

a=ssrc:43665722 cname:{a1422f36-827b-400a-9539-1894b51e3548}

m=video 9 RTP/SAVPF 120 126 97

c=IN IP4 0.0.0.0

a=sendrecv

a=fmtp:120 max-fs=12288;max-fr=60

a=fmtp:126 profile-level-id=42e01f;level-asymmetry-allowed=1;packetization-mode=1

a=fmtp:97 profile-level-id=42e01f;level-asymmetry-allowed=1

a=ice-pwd:15652d6ecfacbf4a73fcba83948b2723

a=ice-ufrag:df6dc707

a=mid:sdparta_1

a=msid:{d259b9a5-16ec-4d90-af5f-278987931992} {e74ed4bc-4b9b-4392-a01f-84c369b13d10}

a=rtcp-fb:120 nack

a=rtcp-fb:120 nack pli

a=rtcp-fb:120 ccm fir

a=rtcp-fb:126 nack

a=rtcp-fb:126 nack pli

a=rtcp-fb:126 ccm fir

a=rtcp-fb:97 nack

a=rtcp-fb:97 nack pli

a=rtcp-fb:97 ccm fir

a=rtcp-mux

a=rtpmap:120 VP8/90000

a=rtpmap:126 H264/90000

a=rtpmap:97 H264/90000

a=setup:actpass

a=ssrc:3355420137 cname:{a1422f36-827b-400a-9539-1894b51e3548}

" erizo-nomin.js:3105:68
"DEBUG: " "Changed" "v=0

o=mozilla...THIS_IS_SDPARTA-38.0a2 8741568097926390653 0 IN IP4 0.0.0.0

s=-

t=0 0

a=fingerprint:sha-256 29:5A:DE:4B:16:A3:4A:16:BE:D6:A4:E0:45:00:C7:97:D6:51:B5:E9:38:6B:F2:AA:C2:EC:71:07:31:CD:3B:EE

a=group:BUNDLE sdparta_0 sdparta_1

a=ice-options:trickle

a=msid-semantic:WMS *

m=audio 9 RTP/SAVPF 109 9 0 8

c=IN IP4 0.0.0.0

a=recvonly

a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level

a=ice-pwd:34921f7f03a970c8d81ac115963e66fe

a=ice-ufrag:da2d11df

a=mid:sdparta_0

a=rtcp-mux

a=rtpmap:109 opus/48000/2

a=rtpmap:9 G722/8000/1

a=rtpmap:0 PCMU/8000

a=rtpmap:8 PCMA/8000

a=setup:actpass

m=video 9 RTP/SAVPF 120 126 97

c=IN IP4 0.0.0.0

a=recvonly

a=fmtp:120 max-fs=12288;max-fr=60

a=fmtp:126 profile-level-id=42e01f;level-asymmetry-allowed=1;packetization-mode=1

a=fmtp:97 profile-level-id=42e01f;level-asymmetry-allowed=1

a=ice-pwd:34921f7f03a970c8d81ac115963e66fe

a=ice-ufrag:da2d11df

a=mid:sdparta_1

a=rtcp-fb:120 nack

a=rtcp-fb:120 nack pli

a=rtcp-fb:120 ccm fir

a=rtcp-fb:126 nack

a=rtcp-fb:126 nack pli

a=rtcp-fb:126 ccm fir

a=rtcp-fb:97 nack

a=rtcp-fb:97 nack pli

a=rtcp-fb:97 ccm fir

a=rtcp-mux

a=rtpmap:120 VP8/90000

a=rtpmap:126 H264/90000

a=rtpmap:97 H264/90000

a=setup:actpass

" erizo-nomin.js:3105:68
Mandatory/optional in createOffer options is deprecated! Use {"offerToReceiveAudio":true,"offerToReceiveVideo":true,"mozDontOfferDataChannel":true} instead (note the case difference)! <unknown>
"DEBUG: " "PeerConnection: " 104 erizo-nomin.js:3105:68
"DEBUG: " "PeerConnection: " 105 erizo-nomin.js:3105:68
"DEBUG: " "PeerConnection: " 104 erizo-nomin.js:3105:68
"DEBUG: " "PeerConnection: " 105 erizo-nomin.js:3105:68
"DEBUG: " "PeerConnection: " 104 erizo-nomin.js:3105:68
"DEBUG: " "PeerConnection: " 105 erizo-nomin.js:3105:68
"DEBUG: " "PeerConnection: " 104 erizo-nomin.js:3105:68
"DEBUG: " "PeerConnection: " 105 erizo-nomin.js:3105:68
"DEBUG: " "State: complete" erizo-nomin.js:3105:68
"DEBUG: " 1 erizo-nomin.js:3105:68
"DEBUG: " "PeerConnection: " 104 erizo-nomin.js:3105:68
"DEBUG: " "State: complete" erizo-nomin.js:3105:68
"DEBUG: " 1 erizo-nomin.js:3105:68
"DEBUG: " "Sending OFFER: " "v=0

o=mozilla...THIS_IS_SDPARTA-38.0a2 4294967295 0 IN IP4 0.0.0.0

s=-

t=0 0

a=sendrecv

a=fingerprint:sha-256 29:5A:DE:4B:16:A3:4A:16:BE:D6:A4:E0:45:00:C7:97:D6:51:B5:E9:38:6B:F2:AA:C2:EC:71:07:31:CD:3B:EE

a=group:BUNDLE sdparta_0 sdparta_1

a=ice-options:trickle

a=msid-semantic:WMS *

m=audio 54569 RTP/SAVPF 109 9 0 8

c=IN IP4 SERVERWEBRTCIPADDRESS

a=candidate:0 1 UDP 2128609535 192.168.11.141 54569 typ host

a=candidate:0 2 UDP 2128609534 192.168.11.141 54570 typ host

a=candidate:1 1 UDP 1692467199 SERVERWEBRTCIPADDRESS 54569 typ srflx raddr 192.168.11.141 rport 54569

a=candidate:1 2 UDP 1692467198 SERVERWEBRTCIPADDRESS 54570 typ srflx raddr 192.168.11.141 rport 54570

a=recvonly

a=end-of-candidates

a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level

a=ice-pwd:34921f7f03a970c8d81ac115963e66fe

a=ice-ufrag:da2d11df

a=mid:sdparta_0

a=rtcp-mux

a=rtpmap:109 opus/48000/2

a=rtpmap:9 G722/8000/1

a=rtpmap:0 PCMU/8000

a=rtpmap:8 PCMA/8000

a=setup:actpass

m=video 54571 RTP/SAVPF 120 126 97

c=IN IP4 SERVERWEBRTCIPADDRESS

a=candidate:0 1 UDP 2128609535 192.168.11.141 54571 typ host

a=candidate:0 2 UDP 2128609534 192.168.11.141 54572 typ host

a=candidate:1 1 UDP 1692467199 SERVERWEBRTCIPADDRESS 54571 typ srflx raddr 192.168.11.141 rport 54571

a=candidate:1 2 UDP 1692467198 SERVERWEBRTCIPADDRESS 54572 typ srflx raddr 192.168.11.141 rport 54572

a=recvonly

a=end-of-candidates

a=fmtp:120 max-fs=12288;max-fr=60

a=fmtp:126 profile-level-id=42e01f;level-asymmetry-allowed=1;packetization-mode=1

a=fmtp:97 profile-level-id=42e01f;level-asymmetry-allowed=1

a=ice-pwd:34921f7f03a970c8d81ac115963e66fe

a=ice-ufrag:da2d11df

a=mid:sdparta_1

a=rtcp-fb:120 nack

a=rtcp-fb:120 nack pli

a=rtcp-fb:120 ccm fir

a=rtcp-fb:126 nack

a=rtcp-fb:126 nack pli

a=rtcp-fb:126 ccm fir

a=rtcp-fb:97 nack

a=rtcp-fb:97 nack pli

a=rtcp-fb:97 ccm fir

a=rtcp-mux

a=rtpmap:120 VP8/90000

a=rtpmap:126 H264/90000

a=rtpmap:97 H264/90000

a=setup:actpass

" erizo-nomin.js:3105:68
"DEBUG: " "Sending OFFER: " "v=0

o=mozilla...THIS_IS_SDPARTA-38.0a2 4294967295 0 IN IP4 0.0.0.0

s=-

t=0 0

a=sendrecv

a=fingerprint:sha-256 E8:8B:1E:1E:05:87:26:BC:B4:4B:50:67:43:7A:DB:0A:98:43:73:E5:61:96:44:E0:57:EF:00:20:97:0A:7C:9D

a=group:BUNDLE sdparta_0 sdparta_1

a=ice-options:trickle

a=msid-semantic:WMS *

m=audio 53413 RTP/SAVPF 109 9 0 8

c=IN IP4 SERVERWEBRTCIPADDRESS

a=candidate:0 1 UDP 2128609535 192.168.11.141 53413 typ host

a=candidate:0 2 UDP 2128609534 192.168.11.141 53414 typ host

a=candidate:1 1 UDP 1692467199 SERVERWEBRTCIPADDRESS 53413 typ srflx raddr 192.168.11.141 rport 53413

a=candidate:1 2 UDP 1692467198 SERVERWEBRTCIPADDRESS 53414 typ srflx raddr 192.168.11.141 rport 53414

a=sendrecv

a=end-of-candidates

a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level

a=ice-pwd:15652d6ecfacbf4a73fcba83948b2723

a=ice-ufrag:df6dc707

a=mid:sdparta_0

a=msid:{d259b9a5-16ec-4d90-af5f-278987931992} {6c9c2a1d-4257-492a-ba15-1aeb4590a80f}

a=rtcp-mux

a=rtpmap:109 opus/48000/2

a=rtpmap:9 G722/8000/1

a=rtpmap:0 PCMU/8000

a=rtpmap:8 PCMA/8000

a=setup:actpass

a=ssrc:43665722 cname:{a1422f36-827b-400a-9539-1894b51e3548}

m=video 53415 RTP/SAVPF 120 126 97

c=IN IP4 SERVERWEBRTCIPADDRESS

a=candidate:0 1 UDP 2128609535 192.168.11.141 53415 typ host

a=candidate:0 2 UDP 2128609534 192.168.11.141 53416 typ host

a=candidate:1 1 UDP 1692467199 SERVERWEBRTCIPADDRESS 53415 typ srflx raddr 192.168.11.141 rport 53415

a=candidate:1 2 UDP 1692467198 SERVERWEBRTCIPADDRESS 53416 typ srflx raddr 192.168.11.141 rport 53416

a=sendrecv

a=end-of-candidates

a=fmtp:120 max-fs=12288;max-fr=60

a=fmtp:126 profile-level-id=42e01f;level-asymmetry-allowed=1;packetization-mode=1

a=fmtp:97 profile-level-id=42e01f;level-asymmetry-allowed=1

a=ice-pwd:15652d6ecfacbf4a73fcba83948b2723

a=ice-ufrag:df6dc707

a=mid:sdparta_1

a=msid:{d259b9a5-16ec-4d90-af5f-278987931992} {e74ed4bc-4b9b-4392-a01f-84c369b13d10}

a=rtcp-fb:120 nack

a=rtcp-fb:120 nack pli

a=rtcp-fb:120 ccm fir

a=rtcp-fb:126 nack

a=rtcp-fb:126 nack pli

a=rtcp-fb:126 ccm fir

a=rtcp-fb:97 nack

a=rtcp-fb:97 nack pli

a=rtcp-fb:97 ccm fir

a=rtcp-mux

a=rtpmap:120 VP8/90000

a=rtpmap:126 H264/90000

a=rtpmap:97 H264/90000

a=setup:actpass

a=ssrc:3355420137 cname:{a1422f36-827b-400a-9539-1894b51e3548}

" erizo-nomin.js:3105:68
"DEBUG: " "Activity on conn 104" erizo-nomin.js:3105:68
"DEBUG: " "Received ANSWER: " "v=0

o=- 0 0 IN IP4 127.0.0.1

s=LicodeMCU

t=0 0

a=group:BUNDLE audio video

a=msid-semantic: WMS p4PKK5kTBl

m=audio 20136 RTP/SAVPF 0 126 

c=IN IP4 WEBRTCSERVERIPADDRESS

a=rtcp:20136 IN IP4 WEBRTCSERVERIPADDRESS

a=candidate:137 1 UDP 2013266431 WEBRTCSERVERIPADDRESS 20136 typ host

a=candidate:137 2 UDP 2013266431 WEBRTCSERVERIPADDRESS 20136 typ host

a=candidate:274 1 UDP 2013266431 192.168.5.225 20136 typ host

a=candidate:274 2 UDP 2013266431 192.168.5.225 20136 typ host

a=candidate:411 1 UDP 2013266431 127.0.0.2 20136 typ host

a=candidate:411 2 UDP 2013266431 127.0.0.2 20136 typ host

a=ice-ufrag:K4ry

a=ice-pwd:wfX9Dfz/gJathjZds3lOIW

a=fingerprint:sha-256 52:C4:21:A3:CA:11:DF:FB:86:A1:41:35:46:B8:BD:F6:BB:97:0D:49:07:A3:17:B0:3B:44:0B:07:7C:1C:AD:E4

a=sendrecv

a=mid:audio

a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level

a=rtcp-mux

a=rtpmap:0 PCMU/8000

a=rtpmap:126 telephone-event/8000

a=maxptime:60

a=ssrc:2042683482 cname:o/i14u9pJrxRKAsu

a=ssrc:2042683482 msid:p4PKK5kTBl a0

a=ssrc:2042683482 mslabel:p4PKK5kTBl

a=ssrc:2042683482 label:p4PKK5kTBla0

m=video 20136 RTP/SAVPF 120 116 117 

c=IN IP4 WEBRTCSERVERIPADDRESS

a=rtcp:20136 IN IP4 WEBRTCSERVERIPADDRESS

a=candidate:137 1 UDP 2013266431 WEBRTCSERVERIPADDRESS 20136 typ host

a=candidate:137 2 UDP 2013266431 WEBRTCSERVERIPADDRESS 20136 typ host

a=candidate:274 1 UDP 2013266431 192.168.5.225 20136 typ host

a=candidate:274 2 UDP 2013266431 192.168.5.225 20136 typ host

a=candidate:411 1 UDP 2013266431 127.0.0.2 20136 typ host

a=candidate:411 2 UDP 2013266431 127.0.0.2 20136 typ host

a=ice-ufrag:K4ry

a=ice-pwd:wfX9Dfz/gJathjZds3lOIW

a=extmap:2 urn:ietf:params:rtp-hdrext:toffset

a=extmap:3 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time

a=fingerprint:sha-256 52:C4:21:A3:CA:11:DF:FB:86:A1:41:35:46:B8:BD:F6:BB:97:0D:49:07:A3:17:B0:3B:44:0B:07:7C:1C:AD:E4

a=sendrecv

a=mid:video

a=rtcp-mux

a=rtpmap:120 VP8/90000

a=rtcp-fb:120 ccm fir

a=rtcp-fb:120 nack

a=rtpmap:116 red/90000

a=rtpmap:117 ulpfec/90000

a=ssrc:3455884017 cname:o/i14u9pJrxRKAsu

a=ssrc:3455884017 msid:p4PKK5kTBl v0

a=ssrc:3455884017 mslabel:p4PKK5kTBl

a=ssrc:3455884017 label:p4PKK5kTBlv0

" erizo-nomin.js:3105:68
"DEBUG: " "Activity on conn 104" erizo-nomin.js:3105:68
"DEBUG: " "Received ANSWER: " "v=0

o=- 0 0 IN IP4 127.0.0.1

s=LicodeMCU

t=0 0

a=group:BUNDLE audio video

a=msid-semantic: WMS LHZbtLgvus

m=audio 20140 RTP/SAVPF 0 126 

c=IN IP4 WEBRTCSERVERIPADDRESS

a=rtcp:20140 IN IP4 WEBRTCSERVERIPADDRESS

a=candidate:141 1 UDP 2013266431 WEBRTCSERVERIPADDRESS 20140 typ host

a=candidate:141 2 UDP 2013266431 WEBRTCSERVERIPADDRESS 20140 typ host

a=candidate:282 1 UDP 2013266431 192.168.5.225 20140 typ host

a=candidate:282 2 UDP 2013266431 192.168.5.225 20140 typ host

a=candidate:423 1 UDP 2013266431 127.0.0.2 20140 typ host

a=candidate:423 2 UDP 2013266431 127.0.0.2 20140 typ host

a=ice-ufrag:TTWi

a=ice-pwd:pZx2/5ET7QrXYYWqjl+cJI

a=fingerprint:sha-256 52:C4:21:A3:CA:11:DF:FB:86:A1:41:35:46:B8:BD:F6:BB:97:0D:49:07:A3:17:B0:3B:44:0B:07:7C:1C:AD:E4

a=sendrecv

a=mid:audio

a=extmap:1 urn:ietf:params:rtp-hdrext:ssrc-audio-level

a=rtcp-mux

a=rtpmap:0 PCMU/8000

a=rtpmap:126 telephone-event/8000

a=maxptime:60

a=ssrc:44444 cname:o/i14u9pJrxRKAsu

a=ssrc:44444 msid:LHZbtLgvus a0

a=ssrc:44444 mslabel:LHZbtLgvus

a=ssrc:44444 label:LHZbtLgvusa0

m=video 20140 RTP/SAVPF 120 116 117 

c=IN IP4 WEBRTCSERVERIPADDRESS

a=rtcp:20140 IN IP4 WEBRTCSERVERIPADDRESS

a=candidate:141 1 UDP 2013266431 WEBRTCSERVERIPADDRESS 20140 typ host

a=candidate:141 2 UDP 2013266431 WEBRTCSERVERIPADDRESS 20140 typ host

a=candidate:282 1 UDP 2013266431 192.168.5.225 20140 typ host

a=candidate:282 2 UDP 2013266431 192.168.5.225 20140 typ host

a=candidate:423 1 UDP 2013266431 127.0.0.2 20140 typ host

a=candidate:423 2 UDP 2013266431 127.0.0.2 20140 typ host

a=ice-ufrag:TTWi

a=ice-pwd:pZx2/5ET7QrXYYWqjl+cJI

a=extmap:2 urn:ietf:params:rtp-hdrext:toffset

a=extmap:3 http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time

a=fingerprint:sha-256 52:C4:21:A3:CA:11:DF:FB:86:A1:41:35:46:B8:BD:F6:BB:97:0D:49:07:A3:17:B0:3B:44:0B:07:7C:1C:AD:E4

a=sendrecv

a=mid:video

a=rtcp-mux

a=rtpmap:120 VP8/90000

a=rtcp-fb:120 ccm fir

a=rtcp-fb:120 nack

a=rtpmap:116 red/90000

a=rtpmap:117 ulpfec/90000

a=ssrc:55543 cname:o/i14u9pJrxRKAsu

a=ssrc:55543 msid:LHZbtLgvus v0

a=ssrc:55543 mslabel:LHZbtLgvus

a=ssrc:55543 label:LHZbtLgvusv0

" erizo-nomin.js:3105:68
"INFO: " "Stream published" erizo-nomin.js:3105:68
InvalidSessionDescriptionError: Answer changes mid for level, was 'sdparta_0', now 'audio' <unknown>
InvalidSessionDescriptionError: Answer tried to set recv when offer did not set send <unknown>
mccob commented 9 years ago

issue is bundle support (at least in legacy version) We need a proper bundle support like http://tools.ietf.org/html/draft-ietf-mmusic-sdp-bundle-negotiation-19#section-8.3 and not just answer with Googles default IDs audio & video

mccob commented 9 years ago

may be corrected in last revisions

kaustavdm commented 9 years ago

Same here. Fails for me as well on latest master. Latest Chrome stable fails with no error thrown. @mccob This still remains an issue.

mccob commented 9 years ago

Ok thank you. No issue on legacy branch with latest Chrome stable.

nils-ohlmeier commented 9 years ago

The problem is caused by this code here: https://github.com/ging/licode/blob/master/erizo/src/erizo/SdpInfo.cpp#L265 The offerer can choose the bundle IDs, but the answerer needs to use the bundle IDs provided by the offere (in this case Firefox) and can not choose it's own IDs like erizo does here.

kaustavdm commented 9 years ago

@mccob Slightly out of context, but would appreciate if you put the logs in code blocks. Easier to read.

@nils-ohlmeier Yes. Had figured it out.

kaustavdm commented 9 years ago

Firefox sends the bundle name as sdparta_x for each track. It can be sdparta_0, sdparta_1 and such . So, need to put that check in. I am not a C++ guy, but I can read it. The best way to deal with this is if we can retrieve the bundle and mid names that the SDP offer had sent, and reuse those information while writing the answer.

lodoyun commented 9 years ago

I'm working on this, should have a fix soon. Thank you all for the accurate diagnose.

mccob commented 9 years ago

@kaustavdm corrected the logs with code blocks

kaustavdm commented 9 years ago

@lodoyun Thanks! Hoping to see a patch soon. Also, I was wondering if using webrtc/adapter.js would help in solving differences between the different stacks.

@mccob :smile: Thanks!

nils-ohlmeier commented 9 years ago

@kaustavdm I don't think that adapter.js is helping with differences in the SDP, which is what we are dealing with here.

kaustavdm commented 9 years ago

@nils-ohlmeier No. It shims the prefixes. You would still need the webrtc-stacks.

lodoyun commented 9 years ago

This should be fixed as of b3ff534a6aec868075cd7cbb0ee7a73b2eb57172 There is a new issue though, Firefox >=37 video takes a while to start, probably has something to do with PLIs, I'm taking a look at it now

kaustavdm commented 9 years ago

Excellent @lodoyun! Will build, test and let you know! Thanks a lot!

kaustavdm commented 9 years ago

Works!

lodoyun commented 9 years ago

The last commit should fix the sync problem (pli capabilities were not announced properly with Firefox >=37)

mccob commented 9 years ago

works well also ! thank you !