I have a working Janus WebRTC server setup running in my LAN (streaming only
live Opus audio). With direct connections -- while connected to the LAN -- it
works perfectly every time with Firefox, Chrome, Chromium and the mobile
browsers.
However, when I connect to the LAN from the public Internet via OpenVPN,
Firefox states that ICE fails and does not output any audio, but Chrome and
Chromium (latest versions) _do work_ always.
I'm not using a STUN or TURN server, because WebRTC should work fine inside LAN.
Also, There are no firewalls on traffic restrictions in place inside my LAN or
the connecting workstation.
Here are the about:webrtc SDP details from Firefox:
SDP
Local SDP
v=0
o=mozilla...THIS_IS_SDPARTA-57.0 1746241924783914147 0 IN IP4 0.0.0.0
s=-
t=0 0
a=sendrecv
a=fingerprint:sha-256
A5:C9:2F:26:99:CF:7A:1E:6B:39:F9:56:4D:A7:6C:44:6A:C6:C7:B8:90:9D:17:E7:E3:BA:4E:CE:AB:DB:18:0E
a=group:BUNDLE audio
a=ice-options:trickle
a=msid-semantic:WMS *
m=audio 4187 RTP/SAVPF 101
c=IN IP4 85.76.X.X
a=candidate:0 1 UDP 2122252543 192.168.43.135 39927 typ host
a=candidate:2 1 TCP 2105524479 192.168.43.135 9 typ host tcptype active
a=candidate:1 1 UDP 1686052863 85.76.X.X 4187 typ srflx raddr 192.168.43.135
rport 39927
a=recvonly
a=end-of-candidates
a=fmtp:101 maxplaybackrate=48000;stereo=1;useinbandfec=1
a=ice-pwd:8ce147a6798654432b88ded1a0441e99
a=ice-ufrag:b273b366
a=mid:audio
a=rtcp-mux
a=rtpmap:101 opus/48000/2
a=setup:active
a=ssrc:675509201 cname:{5784c74c-8d73-4877-b111-0ff72b1bb6d0}
Remote SDP
v=0
o=- 1512977090487910 1512977090487910 IN IP4 192.168.0.114
s=-
t=0 0
a=sendrecv
a=group:BUNDLE audio
a=msid-semantic:WMS janus
m=audio 9 RTP/SAVPF 101
c=IN IP4 192.168.0.114
a=candidate:1 1 udp 2013266431 192.168.0.114 51415 typ host
a=sendonly
a=end-of-candidates
a=fingerprint:sha-256
A8:A2:A0:A6:36:95:6F:17:02:B7:B9:02:61:06:DC:FA:65:14:F4:3C:1E:C5:60:72:97:10:11:F5:0C:A2:00:6A
a=ice-options:trickle
a=ice-pwd:hy7+LKuhl8w3q3oLRYja+R
a=ice-ufrag:d/gM
a=mid:audio
a=rtcp-mux
a=rtpmap:101 opus/48000/2
a=setup:actpass
a=ssrc:3533275855 cname:janusaudio
a=ssrc:3533275855 msid:janus janusa0
a=ssrc:3533275855 mslabel:janus
a=ssrc:3533275855 label:janusa0
RTP Stats
inbound_rtp_audio_0
Local: 09:24:57 GMT+0200 (EET) inbound-rtp SSRC: 0
Here are the Firefox trickle candidates when connecting via VPN:
candidate:0 1 UDP 2122252543 192.168.43.135 39927 typ host
candidate:2 1 TCP 2105524479 192.168.43.135 9 typ host tcptype active
candidate:1 1 UDP 1686052863 85.76.X.X 4187 typ srflx raddr 192.168.43.135
rport 39927
192.168.43.135 is the address provided by mobile phone WiFi tethering network.
85.76.X.X is the public IP address of the phone (which shouldn't really be
needed here, as traffic should flow through OpenVPN).
After the trickle candidates have been sent, Janus sends back response:
{
janus: "hangup"
reason: "ICE failed"
...
}
And Janus logs state the same:
[8217140053462936] ICE failed for component 1 in stream 1, but let's give it
some time... (trickle received, answer received, alert not set)
For comparison, here are the offer and answer SDPs and the only trickle
candidate from Chromium, where the WebRTC audio stream works:
SDP offer (Chromium):
v=0
o=- 1512977894982229 1512977894982229 IN IP4 192.168.0.114
s=Mountpoint 101
t=0 0
a=group:BUNDLE audio
a=msid-semantic: WMS janus
m=audio 9 RTP/SAVPF 101
c=IN IP4 192.168.0.114
a=sendonly
a=mid:audio
a=rtcp-mux
a=ice-ufrag:UF1c
a=ice-pwd:AEcwbtUvOOlWmHrqxMNvs9
a=ice-options:trickle
a=fingerprint:sha-256
A8:A2:A0:A6:36:95:6F:17:02:B7:B9:02:61:06:DC:FA:65:14:F4:3C:1E:C5:60:72:97:10:11:F5:0C:A2:00:6A
a=setup:actpass
a=rtpmap:101 opus/48000/2
a=ssrc:1652840103 cname:janusaudio
a=ssrc:1652840103 msid:janus janusa0
a=ssrc:1652840103 mslabel:janus
a=ssrc:1652840103 label:janusa0
a=candidate:1 1 udp 2013266431 192.168.0.114 50486 typ host
a=end-of-candidates
SDP answer (Chromium):
v=0
o=- 4097746442121410971 2 IN IP4 127.0.0.1
s=-
t=0 0
a=group:BUNDLE audio
a=msid-semantic: WMS
m=audio 9 RTP/SAVPF 101
c=IN IP4 0.0.0.0
a=rtcp:9 IN IP4 0.0.0.0
a=ice-ufrag:PKJx
a=ice-pwd:C5y8JjI9BeP5eM3hnstDVAiC
a=ice-options:trickle
a=fingerprint:sha-256
86:EC:9A:2A:9D:28:3E:63:19:2E:DB:0B:BA:55:4E:57:DC:AF:4E:82:70:E4:CE:85:28:D6:13:C2:F1:20:D0:E0
a=setup:active
a=mid:audio
a=recvonly
a=rtcp-mux
a=rtpmap:101 opus/48000/2
a=fmtp:101 minptime=10;useinbandfec=1
The only trickle candidate in Chromium:
candidate:4279861495 1 udp 2113937151 192.168.43.135 57620 typ host generation
0 ufrag PKJx network-cost 50
_______________________________________________
dev-media mailing list
[email protected]
https://lists.mozilla.org/listinfo/dev-media