{"action":"created","issue":{"url":"https://api.github.com/repos/jitsi/jitsi-meet/issues/3738","repository_url":"https://api.github.com/repos/jitsi/jitsi-meet","labels_url":"https://api.github.com/repos/jitsi/jitsi-meet/issues/3738/labels{/name}","comments_url":"https://api.github.com/repos/jitsi/jitsi-meet/issues/3738/comments","events_url":"https://api.github.com/repos/jitsi/jitsi-meet/issues/3738/events","html_url":"https://github.com/jitsi/jitsi-meet/issues/3738","id":394128762,"node_id":"MDU6SXNzdWUzOTQxMjg3NjI=","number":3738,"title":"ICE connectivity check failures","user":{"login":"jayaddison","id":406005,"node_id":"MDQ6VXNlcjQwNjAwNQ==","avatar_url":"https://avatars2.githubusercontent.com/u/406005?v=4","gravatar_id":"","url":"https://api.github.com/users/jayaddison","html_url":"https://github.com/jayaddison","followers_url":"https://api.github.com/users/jayaddison/followers","following_url":"https://api.github.com/users/jayaddison/following{/other_user}","gists_url":"https://api.github.com/users/jayaddison/gists{/gist_id}","starred_url":"https://api.github.com/users/jayaddison/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jayaddison/subscriptions","organizations_url":"https://api.github.com/users/jayaddison/orgs","repos_url":"https://api.github.com/users/jayaddison/repos","events_url":"https://api.github.com/users/jayaddison/events{/privacy}","received_events_url":"https://api.github.com/users/jayaddison/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":11,"created_at":"2018-12-26T09:45:02Z","updated_at":"2018-12-27T16:59:04Z","closed_at":null,"author_association":"NONE","body":"## Description\r\n---\r\nIn 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).\r\n\r\nThe 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.\r\n\r\nThere _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:\r\n\r\n- `/etc/apache2/sites-enabled/localhost.conf`: `Header set Access-Control-Allow-Origin \"*\"` added to allow cross-domain JS requests\r\n- `/etc/prosody/prosody.cfg.lua`: `cross_domain_bosh = true` added to allow cross-domain JS requests\r\n- `/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)\r\n\r\nNo 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:\r\n\r\n- org.jitsi.videobridge.TCP_HARVESTER_PORT\r\n- org.jitsi.videobridge.TCP_HARVESTER_MAPPED_PORT\r\n- org.ice4j.ice.harvest.NAT_HARVESTER_LOCAL_ADDRESS\r\n- org.ice4j.ice.harvest.NAT_HARVESTER_PUBLIC_ADDRESS\r\n\r\nThe following similar reading references have been found:\r\n\r\n- https://git.fairkom.net/hosting/fairmeeting/issues/7\r\n- https://github.com/jitsi/ice4j/issues/116\r\n\r\n## Current behavior\r\n---\r\n* Human client joins channel `test`\r\n* Streamer client joins channel `test` for stream named `Example`\r\n* Human client observes participant named `Example` joining the room\r\n* Human client observes connectivity issues (see screenshot) for participant `Example`, without receiving any video/audio from them\r\n\r\n![connectivity-issues](https://user-images.githubusercontent.com/406005/50440760-79a89800-08ac-11e9-8cef-1349382be6f1.png)\r\n\r\n## Expected Behavior\r\n---\r\n* Participant `Example` is able to join and maintain a connection to the room\r\n\r\n## Possible Solution\r\n---\r\nThis seems potentially related to ICE and client connectivity checks.  The following warnings appear in the videobridge logs:\r\n\r\n```\r\nJVB 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)\r\n```\r\n\r\nThe error code `401` from these logs appears to be [retrieved in ice4](https://github.com/jitsi/ice4j/blob/3fe34dcb972eedda77d3abf8d4cfb9977443854a/src/main/java/org/ice4j/ice/ConnectivityCheckClient.java#L815-L820) and documented in [RFC 3489](https://datatracker.ietf.org/doc/rfc3489/?include_text=1).\r\n\r\nIn the client, which builds upon the Google `webrtc` project, warnings of the following format appear:\r\n\r\n```\r\n[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\r\n```\r\n\r\n## Steps to reproduce\r\n---\r\n* Configure two hosts; one `jitsi-meet`, one `webrtc-streamer` with packages and versions documented here\r\n* Apply documented configuration changes from this issue\r\n* Join a channel as a human client\r\n* Begin streaming to the same channel via `xmppvideostream.html` in `webrtc-streamer`\r\n\r\n**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.\r\n\r\n# Environment details\r\n---\r\n* [os](http://releases.ubuntu.com/18.04/): `18.04.1 LTS (Bionic Beaver)`\r\n* [jitsi-meet](https://download.jitsi.org/unstable/jitsi-meet_1.0.3444-1_all.deb): `1.0.3444-1 (nightly)`\r\n* [webrtc](https://webrtc.googlesource.com/src.git): `e121eb9`\r\n* [webrtc-streamer](https://github.com/mpromonet/webrtc-streamer/commit/b344d83a48a1b23f9e155f50334bc16849c93230): `b344d83`\r\n* [webrtc-streamer-html](https://github.com/mpromonet/webrtc-streamer-html/tree/7d905003e5e02797f13d644041a1f9e231bfb1ca): `7d90500`"},"comment":{"url":"https://api.github.com/repos/jitsi/jitsi-meet/issues/comments/450190973","html_url":"https://github.com/jitsi/jitsi-meet/issues/3738#issuecomment-450190973","issue_url":"https://api.github.com/repos/jitsi/jitsi-meet/issues/3738","id":450190973,"node_id":"MDEyOklzc3VlQ29tbWVudDQ1MDE5MDk3Mw==","user":{"login":"damencho","id":3263098,"node_id":"MDQ6VXNlcjMyNjMwOTg=","avatar_url":"https://avatars3.githubusercontent.com/u/3263098?v=4","gravatar_id":"","url":"https://api.github.com/users/damencho","html_url":"https://github.com/damencho","followers_url":"https://api.github.com/users/damencho/followers","following_url":"https://api.github.com/users/damencho/following{/other_user}","gists_url":"https://api.github.com/users/damencho/gists{/gist_id}","starred_url":"https://api.github.com/users/damencho/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/damencho/subscriptions","organizations_url":"https://api.github.com/users/damencho/orgs","repos_url":"https://api.github.com/users/damencho/repos","events_url":"https://api.github.com/users/damencho/events{/privacy}","received_events_url":"https://api.github.com/users/damencho/received_events","type":"User","site_admin":false},"created_at":"2018-12-27T16:59:04Z","updated_at":"2018-12-27T16:59:04Z","author_association":"MEMBER","body":"> org.ice4j.ice.harvest.NAT_HARVESTER_LOCAL_ADDRESS=192.168.2.126\r\norg.ice4j.ice.harvest.NAT_HARVESTER_PUBLIC_ADDRESS=192.168.2.126\r\n\r\nThis is not correct, remove those lines if you are not putting the public address there. From your words, I understand that you test everything in the same network and there is no public address. If this is the case you don't need any setting.\r\nSeems to me that the streamer thing is not able to connect and send media for some reason, maybe the warning/errors you pasted above I don't know. This needs more debugging. \r\n\r\nOpen chrome://webrtc-internals and find the streamer ssrc/streams and see is anything received at all."}}
{"actor":{"display_login":"damencho"}}