-
Notifications
You must be signed in to change notification settings - Fork 65
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
Bowser ICE offer SDP cannot be parsed by server? #51
Comments
Some more digging into the code of mentioned "webrtcsdp.cc" shows that the empty string is passed like that in the source, it's not something taken from the SDP contents. See line 2190 here: https://chromium.googlesource.com/external/webrtc/stable/talk/+/master/app/webrtc/webrtcsdp.cc This actually occurs because "AddTransportInfo" returns false, and that seems to happen because it's already present. See the method comment for this in the source: // Adds a TransportInfo to this description. All this indicates to me that the problem is that Bowser's ICE offer SDP contains two audio and two video blocks for some reason, which doesn't happen on other browsers. |
In my Javascript I have the following code:
I would then pass this in as constraints when I create the offer. It seems that this is the source of my problem; when I remove this I don't get any errors and the offer only has one respective audio and video section. |
Good. I guess we could close this issue then? |
I'm off work now, tomorrow morning I need to test if this version works for other systems/browsers or not. |
I agree. I think it should work as a workaround, but I think bowser does On Tue, Sep 15, 2015 at 2:30 PM, pantaoran notifications@github.com wrote:
|
Like I feared: omitting the mentioned constraints makes Bowser work but breaks Chrome, it doesn't include audio/video in the offer anymore. Edit: But since I have no choice for now, this is what I'm using |
I'll let someone else respond about detecting Bowser (not sure) but would The SDP you attached indicate that you have one audio and one video track But what puzzles me is that Chrome does not work if you omit the On Wed, Sep 16, 2015 at 4:17 AM, pantaoran notifications@github.com wrote:
|
s/two m-lines/two m-lines per media type (i.e. two audio lines and two On Wed, Sep 16, 2015 at 7:46 AM, stefan hakansson stefhak@gmail.com wrote:
|
Sure. Showing client's offers such as logged by the server. Chrome on my Ubuntu Desktop (no webcam) WITH the explicit audio/video offers (works) Chrome on my Ubuntu Desktop (no webcam) WITHOUT the explicit audio/video offers (fails, works on Bowser) Chrome on my Android Nexus 5 WITH the explicit audio/video offers (works) Chrome on my Android Nexus 5 WITHOUT the explicit audio/video offers (fails, works on Bowser) |
Hi, interesting. I understand why your ubuntu computer only creates an audio m-line since it On Wed, Sep 16, 2015 at 11:43 AM, pantaoran notifications@github.com
|
This might be a follow up problem caused by the above: Edit: I now tried to work around onaddstream by calling getRemoteStreams on the connection repeatedly, but that always returns an empty array with no streams inside :-( |
We are building a server that does some video processing on the video that clients send to it via WebRTC. It works well with Chrome on desktops and on Android, but we can't get it to work on Bowser...
The server side webrtc implementation complains when receiving the first ICE offer:
[000:943] Ignored line: c=IN IP4 0.0.0.0
[000:944] Ignored line: c=IN IP4 192.168.0.124
[000:944] Ignored line: c=IN IP4 192.168.0.124
[000:945] Error(webrtcsdp.cc:371): Failed to parse: "". Reason: Failed to AddTransportInfo with content name: audio
This is running on an iPad Air 2 which is a 64bit device. I installed Bowser from the App store, I don't have access to an ios development environment so I cannot build it myself...
When looking over the offer I can't see anything that might trigger this, have you guys ever seen something like this before? It fails to parse an empty string, but where, how, why? For completeness here is the offer SDP (with empty lines between blocks for readability):
v=0
o=- 1442288273838514200 1 IN IP4 127.0.0.1
s=-
t=0 0
a=msid-semantic:WMS 0bUMqllvZ+38dekVJb9fOu/YyeMlSpOf+SLC
m=audio 1 RTP/SAVPF 111 8 0
c=IN IP4 0.0.0.0
a=rtcp-mux
a=sendrecv
a=rtpmap:111 OPUS/48000/2
a=rtpmap:8 PCMA/8000
a=rtpmap:0 PCMU/8000
a=ssrc:76579041 cname:user2965996170@host-17fe929f
a=ssrc:76579041 msid:0bUMqllvZ+38dekVJb9fOu/YyeMlSpOf+SLC WtrAwG2WrzvMpe+xmPNkSGcErzI2Q7q7xzVV
a=ice-ufrag:Pw3J
a=ice-pwd:aViTPywUvC8FiK7tmZcfrv
a=candidate:37 1 UDP 2013266431 fe80::e864:66ff:fe5c:5f54 57970 typ host
a=fingerprint:sha-256 1D:67:82:2E:1D:35:12:1C:CC:47:F0:A6:35:44:F6:F2:26:34:93:5B:95:98:25:2C:35:44:9A:5F:7E:7F:05:37
a=setup:actpass
m=video 59119 RTP/SAVPF 103 100 120
c=IN IP4 192.168.0.124
a=rtcp:57967 IN IP4 192.168.0.124
a=rtcp-mux
a=sendrecv
a=rtpmap:103 H264/90000
a=rtpmap:100 VP8/90000
a=rtpmap:120 RTX/90000
a=fmtp:103 packetization-mode=1
a=fmtp:120 apt=100;rtx-time=200
a=rtcp-fb:100 nack
a=rtcp-fb:103 nack pli
a=rtcp-fb:100 nack pli
a=rtcp-fb:103 ccm fir
a=rtcp-fb:100 ccm fir
a=ssrc:4154056881 cname:user2965996170@host-17fe929f
a=ssrc:4154056881 msid:0bUMqllvZ+38dekVJb9fOu/YyeMlSpOf+SLC o/3Q6yktomtKq9Uns+4vi0JukCwPk5506HxT
a=ice-ufrag:9XcU
a=ice-pwd:HAmvUFKb78nWxjso2GaHtG
a=candidate:28 1 UDP 2013266431 fe80::e864:66ff:fe5c:5f54 52997 typ host
a=candidate:29 1 TCP 1019216383 fe80::e864:66ff:fe5c:5f54 9 typ host tcptype active
a=candidate:30 1 TCP 1015022079 fe80::e864:66ff:fe5c:5f54 63721 typ host tcptype passive
a=candidate:31 1 UDP 2013266431 192.168.0.124 59119 typ host
a=candidate:32 1 TCP 1019216383 192.168.0.124 9 typ host tcptype active
a=candidate:33 1 TCP 1015022079 192.168.0.124 63723 typ host tcptype passive
a=candidate:34 1 UDP 2013266431 fe80::886:2c8a:72d3:b27e 57968 typ host
a=candidate:35 1 TCP 1019216383 fe80::886:2c8a:72d3:b27e 9 typ host tcptype active
a=candidate:36 1 TCP 1015022079 fe80::886:2c8a:72d3:b27e 63725 typ host tcptype passive
a=candidate:28 2 UDP 2013266430 fe80::e864:66ff:fe5c:5f54 52998 typ host
a=candidate:29 2 TCP 1019216382 fe80::e864:66ff:fe5c:5f54 9 typ host tcptype active
a=candidate:30 2 TCP 1015022078 fe80::e864:66ff:fe5c:5f54 63722 typ host tcptype passive
a=candidate:31 2 UDP 2013266430 192.168.0.124 57967 typ host
a=candidate:32 2 TCP 1019216382 192.168.0.124 9 typ host tcptype active
a=candidate:33 2 TCP 1015022078 192.168.0.124 63724 typ host tcptype passive
a=candidate:34 2 UDP 2013266430 fe80::886:2c8a:72d3:b27e 57969 typ host
a=candidate:35 2 TCP 1019216382 fe80::886:2c8a:72d3:b27e 9 typ host tcptype active
a=candidate:36 2 TCP 1015022078 fe80::886:2c8a:72d3:b27e 63726 typ host tcptype passive
a=fingerprint:sha-256 1D:67:82:2E:1D:35:12:1C:CC:47:F0:A6:35:44:F6:F2:26:34:93:5B:95:98:25:2C:35:44:9A:5F:7E:7F:05:37
a=setup:actpass
m=audio 60502 RTP/SAVPF 111 8 0
c=IN IP4 192.168.0.124
a=rtcp:52994 IN IP4 192.168.0.124
a=rtcp-mux
a=recvonly
a=rtpmap:111 OPUS/48000/2
a=rtpmap:8 PCMA/8000
a=rtpmap:0 PCMU/8000
a=ssrc:2025735048 cname:user2965996170@host-17fe929f
a=ice-ufrag:Zhfy
a=ice-pwd:T3PIjicvPuz14iBOosmbTF
a=candidate:19 1 UDP 2013266431 fe80::e864:66ff:fe5c:5f54 63127 typ host
a=candidate:20 1 TCP 1019216383 fe80::e864:66ff:fe5c:5f54 9 typ host tcptype active
a=candidate:21 1 TCP 1015022079 fe80::e864:66ff:fe5c:5f54 63715 typ host tcptype passive
a=candidate:22 1 UDP 2013266431 192.168.0.124 60502 typ host
a=candidate:23 1 TCP 1019216383 192.168.0.124 9 typ host tcptype active
a=candidate:24 1 TCP 1015022079 192.168.0.124 63717 typ host tcptype passive
a=candidate:25 1 UDP 2013266431 fe80::886:2c8a:72d3:b27e 52995 typ host
a=candidate:26 1 TCP 1019216383 fe80::886:2c8a:72d3:b27e 9 typ host tcptype active
a=candidate:27 1 TCP 1015022079 fe80::886:2c8a:72d3:b27e 63719 typ host tcptype passive
a=candidate:19 2 UDP 2013266430 fe80::e864:66ff:fe5c:5f54 63128 typ host
a=candidate:20 2 TCP 1019216382 fe80::e864:66ff:fe5c:5f54 9 typ host tcptype active
a=candidate:21 2 TCP 1015022078 fe80::e864:66ff:fe5c:5f54 63716 typ host tcptype passive
a=candidate:22 2 UDP 2013266430 192.168.0.124 52994 typ host
a=candidate:23 2 TCP 1019216382 192.168.0.124 9 typ host tcptype active
a=candidate:24 2 TCP 1015022078 192.168.0.124 63718 typ host tcptype passive
a=candidate:25 2 UDP 2013266430 fe80::886:2c8a:72d3:b27e 52996 typ host
a=candidate:26 2 TCP 1019216382 fe80::886:2c8a:72d3:b27e 9 typ host tcptype active
a=candidate:27 2 TCP 1015022078 fe80::886:2c8a:72d3:b27e 63720 typ host tcptype passive
a=fingerprint:sha-256 1D:67:82:2E:1D:35:12:1C:CC:47:F0:A6:35:44:F6:F2:26:34:93:5B:95:98:25:2C:35:44:9A:5F:7E:7F:05:37
a=setup:actpass
m=video 62024 RTP/SAVPF 103 100 120
c=IN IP4 192.168.0.124
a=rtcp:63124 IN IP4 192.168.0.124
a=rtcp-mux
a=recvonly
a=rtpmap:103 H264/90000
a=rtpmap:100 VP8/90000
a=rtpmap:120 RTX/90000
a=fmtp:103 packetization-mode=1
a=fmtp:120 apt=100;rtx-time=200
a=rtcp-fb:100 nack
a=rtcp-fb:103 nack pli
a=rtcp-fb:100 nack pli
a=rtcp-fb:103 ccm fir
a=rtcp-fb:100 ccm fir
a=ssrc:608919872 cname:user2965996170@host-17fe929f
a=ice-ufrag:kTRX
a=ice-pwd:eBqB/vmye8ly/Xnt1ItgjD
a=candidate:10 1 UDP 2013266431 fe80::e864:66ff:fe5c:5f54 54108 typ host
a=candidate:11 1 TCP 1019216383 fe80::e864:66ff:fe5c:5f54 9 typ host tcptype active
a=candidate:12 1 TCP 1015022079 fe80::e864:66ff:fe5c:5f54 63709 typ host tcptype passive
a=candidate:13 1 UDP 2013266431 192.168.0.124 62024 typ host
a=candidate:14 1 TCP 1019216383 192.168.0.124 9 typ host tcptype active
a=candidate:15 1 TCP 1015022079 192.168.0.124 63711 typ host tcptype passive
a=candidate:16 1 UDP 2013266431 fe80::886:2c8a:72d3:b27e 63125 typ host
a=candidate:17 1 TCP 1019216383 fe80::886:2c8a:72d3:b27e 9 typ host tcptype active
a=candidate:18 1 TCP 1015022079 fe80::886:2c8a:72d3:b27e 63713 typ host tcptype passive
a=candidate:10 2 UDP 2013266430 fe80::e864:66ff:fe5c:5f54 54109 typ host
a=candidate:11 2 TCP 1019216382 fe80::e864:66ff:fe5c:5f54 9 typ host tcptype active
a=candidate:12 2 TCP 1015022078 fe80::e864:66ff:fe5c:5f54 63710 typ host tcptype passive
a=candidate:13 2 UDP 2013266430 192.168.0.124 63124 typ host
a=candidate:14 2 TCP 1019216382 192.168.0.124 9 typ host tcptype active
a=candidate:15 2 TCP 1015022078 192.168.0.124 63712 typ host tcptype passive
a=candidate:16 2 UDP 2013266430 fe80::886:2c8a:72d3:b27e 63126 typ host
a=candidate:17 2 TCP 1019216382 fe80::886:2c8a:72d3:b27e 9 typ host tcptype active
a=candidate:18 2 TCP 1015022078 fe80::886:2c8a:72d3:b27e 63714 typ host tcptype passive
a=fingerprint:sha-256 1D:67:82:2E:1D:35:12:1C:CC:47:F0:A6:35:44:F6:F2:26:34:93:5B:95:98:25:2C:35:44:9A:5F:7E:7F:05:37
a=setup:actpass
m=application 54106 DTLS/SCTP 5000
c=IN IP4 192.168.0.124
a=sendrecv
a=ice-ufrag:h55z
a=ice-pwd:LT2SfJ9lrsrYD6XfjFe5gJ
a=candidate:1 1 UDP 2013266431 fe80::e864:66ff:fe5c:5f54 65164 typ host
a=candidate:2 1 TCP 1019216383 fe80::e864:66ff:fe5c:5f54 9 typ host tcptype active
a=candidate:3 1 TCP 1015022079 fe80::e864:66ff:fe5c:5f54 63706 typ host tcptype passive
a=candidate:4 1 UDP 2013266431 192.168.0.124 54106 typ host
a=candidate:5 1 TCP 1019216383 192.168.0.124 9 typ host tcptype active
a=candidate:6 1 TCP 1015022079 192.168.0.124 63707 typ host tcptype passive
a=candidate:7 1 UDP 2013266431 fe80::886:2c8a:72d3:b27e 54107 typ host
a=candidate:8 1 TCP 1019216383 fe80::886:2c8a:72d3:b27e 9 typ host tcptype active
a=candidate:9 1 TCP 1015022079 fe80::886:2c8a:72d3:b27e 63708 typ host tcptype passive
a=fingerprint:sha-256 1D:67:82:2E:1D:35:12:1C:CC:47:F0:A6:35:44:F6:F2:26:34:93:5B:95:98:25:2C:35:44:9A:5F:7E:7F:05:37
a=setup:actpass
a=sctpmap:5000 webrtc-datachannel 1024
The text was updated successfully, but these errors were encountered: