jitsi-meet: ICE connectivity check failures

Description


In a two-server environment, one host is running jitsi-meet (from a recently jitsi nightly deb package), with some small configuration modifications detailed below, and another host is running webrtc-streamer (with a small fix applied as per #688).

The streamer client appears to join the room and the browser client expands a full black screen to commence video output, but connectivity from the streamer client drops out, reproducibly.

There are some existing reports (both in the Jitsi community forum, and under the https://github.com/jitsi repo issue trackers) of similar issues and most of them point towards issues with NAT and ICE configuration - in this case the server is configured with near-default settings. The modifications from default are:

  • /etc/apache2/sites-enabled/localhost.conf: Header set Access-Control-Allow-Origin "*" added to allow cross-domain JS requests
  • /etc/prosody/prosody.cfg.lua: cross_domain_bosh = true added to allow cross-domain JS requests
  • /etc/jitsi/meet/localhost-config.js - config.p2p.enabled: false - configured since the environment is intended for a minimum of three participants (streamer and at least two human discussion partners)

No firewalling is present on the jitsi-meet server. Attempts to use each of the following configuration keys (often in combination) in /etc/jitsi/videobridge/sip-communicator.properties have been attempted but without any success so far:

  • org.jitsi.videobridge.TCP_HARVESTER_PORT
  • org.jitsi.videobridge.TCP_HARVESTER_MAPPED_PORT
  • org.ice4j.ice.harvest.NAT_HARVESTER_LOCAL_ADDRESS
  • org.ice4j.ice.harvest.NAT_HARVESTER_PUBLIC_ADDRESS

The following similar reading references have been found:

Current behavior


  • Human client joins channel test
  • Streamer client joins channel test for stream named Example
  • Human client observes participant named Example joining the room
  • Human client observes connectivity issues (see screenshot) for participant Example, without receiving any video/audio from them

connectivity-issues

Expected Behavior


  • Participant Example is able to join and maintain a connection to the room

Possible Solution


This seems potentially related to ICE and client connectivity checks. The following warnings appear in the videobridge logs:

JVB 2018-12-26 01:05:46.475 INFO: [266] org.ice4j.ice.ConnectivityCheckClient.log() Error response for pair: 192.168.2.126:10000/udp/host -> 192.168.2.126:41487/udp/prflx (stream.RTP), failing.  Code = 401(class=4; number=1)

The error code 401 from these logs appears to be retrieved in ice4 and documented in RFC 3489.

In the client, which builds upon the Google webrtc project, warnings of the following format appear:

[042:060] [12565] (port.cc:614): Port[e807f890:video:1:0:local:Net[wlan0:192.168.2.x/24:Unknown:id=3]]: Received STUN request with bad local username gZhD from 192.168.2.x:10000

Steps to reproduce


  • Configure two hosts; one jitsi-meet, one webrtc-streamer with packages and versions documented here
  • Apply documented configuration changes from this issue
  • Join a channel as a human client
  • Begin streaming to the same channel via xmppvideostream.html in webrtc-streamer

NB: This same behavior can be observed by running webrtc-streamer locally against the cloud-hosted https://meet.jit.si instance - however server logs are not available in that case.

Environment details


About this issue

  • Original URL
  • State: closed
  • Created 6 years ago
  • Comments: 21 (7 by maintainers)

Most upvoted comments

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.