EricssonResearch / EricssonResearch/bowser

onaddstream never called

Open
#53 29 comments 0 reactions 0 assignees View on GitHub
Dominant language
HTML
Stars
208
Forks
64
PR merge metrics
No merged PRs in 30d

Description

I've been debugging this for days now but can't figure it out. We are building a server that does some video processing on the video that clients send to it via WebRTC.

After the SDP offer and answer are exchanged and the setRemoteDescription was called on the client (Bowser), I expect an onaddstream event so that I can attach the remote stream to my video element, but that event is never called. I made sure that my handler is attached correctly and waiting, but it's never called. This happens only on Bowser, on FF and Chrome everything happens as expected.

Here are the SDP messages (I suppose it must have something to do with those). On Chrome for example they look different.

Bowser's offer:
v=0
o=- 1442807039473499600 1 IN IP4 127.0.0.1
s=-
t=0 0
a=msid-semantic:WMS F+fGCqttcKBXfUsLIdWML4xXyM8gGTGFpG01
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:3363789318 cname:user1957962398@host-8460443c
a=ssrc:3363789318 msid:F+fGCqttcKBXfUsLIdWML4xXyM8gGTGFpG01 pZvECFn0dXRZRT+BZzQ6ZfwQ9d+2ELO81S+Z
a=ice-ufrag:xVdc
a=ice-pwd:xc4CvnmGQqWBT2YjD5QgJz
a=candidate:19 1 UDP 2013266431 fe80::e864:66ff:fe5c:5f54 50283 typ host
a=fingerprint:sha-256 0F:05:9D:19:74:57:4C:A7:4C:1F:D1:A7:5B:95:F5:42:9C:19:D7:EA:C4:CC:72:34:49:A1:3C:94:E6:41:8C:76
a=setup:actpass
m=video 61126 RTP/SAVPF 103 100 120
c=IN IP4 192.168.0.128
a=rtcp:50280 IN IP4 192.168.0.128
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:2177512475 cname:user1957962398@host-8460443c
a=ssrc:2177512475 msid:F+fGCqttcKBXfUsLIdWML4xXyM8gGTGFpG01 jotyiYbInfwDlI31dQuwGs5RcHIuznTt+ggO
a=ice-ufrag:i93T
a=ice-pwd:1RTqS/xZ0F97gTehEbixct
a=candidate:10 1 UDP 2013266431 fe80::e864:66ff:fe5c:5f54 54152 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 63778 typ host tcptype passive
a=candidate:13 1 UDP 2013266431 192.168.0.128 61126 typ host
a=candidate:14 1 TCP 1019216383 192.168.0.128 9 typ host tcptype active
a=candidate:15 1 TCP 1015022079 192.168.0.128 63780 typ host tcptype passive
a=candidate:16 1 UDP 2013266431 fe80::886:2c8a:72d3:b27e 50281 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 63782 typ host tcptype passive
a=candidate:10 2 UDP 2013266430 fe80::e864:66ff:fe5c:5f54 54153 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 63779 typ host tcptype passive
a=candidate:13 2 UDP 2013266430 192.168.0.128 50280 typ host
a=candidate:14 2 TCP 1019216382 192.168.0.128 9 typ host tcptype active
a=candidate:15 2 TCP 1015022078 192.168.0.128 63781 typ host tcptype passive
a=candidate:16 2 UDP 2013266430 fe80::886:2c8a:72d3:b27e 50282 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 63783 typ host tcptype passive
a=fingerprint:sha-256 0F:05:9D:19:74:57:4C:A7:4C:1F:D1:A7:5B:95:F5:42:9C:19:D7:EA:C4:CC:72:34:49:A1:3C:94:E6:41:8C:76
a=setup:actpass
m=application 54150 DTLS/SCTP 5000
c=IN IP4 192.168.0.128
a=sendrecv
a=ice-ufrag:pNu8
a=ice-pwd:gcQrmt7D5o3g4NVzI08sos
a=candidate:1 1 UDP 2013266431 fe80::e864:66ff:fe5c:5f54 54308 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 63775 typ host tcptype passive
a=candidate:4 1 UDP 2013266431 192.168.0.128 54150 typ host
a=candidate:5 1 TCP 1019216383 192.168.0.128 9 typ host tcptype active
a=candidate:6 1 TCP 1015022079 192.168.0.128 63776 typ host tcptype passive
a=candidate:7 1 UDP 2013266431 fe80::886:2c8a:72d3:b27e 54151 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 63777 typ host tcptype passive
a=fingerprint:sha-256 0F:05:9D:19:74:57:4C:A7:4C:1F:D1:A7:5B:95:F5:42:9C:19:D7:EA:C4:CC:72:34:49:A1:3C:94:E6:41:8C:76
a=setup:actpass
a=sctpmap:5000 webrtc-datachannel 1024

Server answer:

v=0
o=- 6072310859396819853 2 IN IP4 127.0.0.1
s=-
t=0 0
a=msid-semantic: WMS stream
m=audio 9 RTP/SAVPF 111 8 0
c=IN IP4 0.0.0.0
a=rtcp:9 IN IP4 0.0.0.0
a=ice-ufrag:okovvEM0l16vrnz+
a=ice-pwd:S/krXmc+Z4lb/ymNUNI2zzNg
a=fingerprint:sha-256 5C:E6:6B:C6:5A:9A:E3:B1:63:0E:3C:A1:26:CE:CC:5B:92:0F:EF:6D:E1:2A:A9:E6:6E:71:67:E4:2E:B3:AD:CC
a=setup:active
a=mid:audio
a=recvonly
a=rtcp-mux
a=rtpmap:111 opus/48000/2
a=fmtp:111 minptime=10; useinbandfec=1
a=rtpmap:8 PCMA/8000
a=rtpmap:0 PCMU/8000
a=maxptime:60
m=video 9 RTP/SAVPF 100 120
c=IN IP4 0.0.0.0
a=rtcp:9 IN IP4 0.0.0.0
a=ice-ufrag:wUxPz7k7sbjNCSzA
a=ice-pwd:0P84nOudZszipWr24T0CtZNp
a=fingerprint:sha-256 5C:E6:6B:C6:5A:9A:E3:B1:63:0E:3C:A1:26:CE:CC:5B:92:0F:EF:6D:E1:2A:A9:E6:6E:71:67:E4:2E:B3:AD:CC
a=setup:active
a=mid:video
a=sendrecv
a=rtcp-mux
a=rtpmap:100 VP8/90000
a=rtcp-fb:100 ccm fir
a=rtcp-fb:100 nack
a=rtcp-fb:100 nack pli
a=rtpmap:120 rtx/90000
a=fmtp:120 apt=100
a=ssrc-group:FID 887725331 3859995201
a=ssrc:887725331 cname:yf6wM/0S+1bFCmDJ
a=ssrc:887725331 msid:stream video
a=ssrc:887725331 mslabel:stream
a=ssrc:887725331 label:video
a=ssrc:3859995201 cname:yf6wM/0S+1bFCmDJ
a=ssrc:3859995201 msid:stream video
a=ssrc:3859995201 mslabel:stream
a=ssrc:3859995201 label:video
m=application 9 DTLS/SCTP 5000
c=IN IP4 0.0.0.0
b=AS:30
a=ice-ufrag:EjZEUl43cdDDR12/
a=ice-pwd:HljuqfGkPplx/wynIEQPGrIz
a=fingerprint:sha-256 5C:E6:6B:C6:5A:9A:E3:B1:63:0E:3C:A1:26:CE:CC:5B:92:0F:EF:6D:E1:2A:A9:E6:6E:71:67:E4:2E:B3:AD:CC
a=setup:active
a=mid:data
a=sctpmap:5000 webrtc-datachannel 1024

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by reproducing the client offer/answer flow after setRemoteDescription in Bowser and compare the supplied SDP with the Chrome and Firefox behavior. Done means identifying why Bowser does not dispatch onaddstream and verifying that the remote stream reaches the video element; the payload names no source files or tests.

Written by the indexing model from the issue text.

Assessment

Domain
audio-video-rtc
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.