From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: mail.toke.dk; spf=pass (mailfrom) smtp.mailfrom=irif.fr (client-ip=2001:660:3301:8000::1:2; helo=korolev.univ-paris7.fr; envelope-from=jch@irif.fr; receiver=) Received: from korolev.univ-paris7.fr (korolev.univ-paris7.fr [IPv6:2001:660:3301:8000::1:2]) by mail.toke.dk (Postfix) with ESMTPS id D6E7E7C7748; Fri, 8 Jan 2021 16:34:08 +0100 (CET) Received: from mailhub.math.univ-paris-diderot.fr (mailhub.math.univ-paris-diderot.fr [81.194.30.253]) by korolev.univ-paris7.fr (8.14.4/8.14.4/relay1/82085) with ESMTP id 108FY7fu020407; Fri, 8 Jan 2021 16:34:07 +0100 Received: from mailhub.math.univ-paris-diderot.fr (localhost [127.0.0.1]) by mailhub.math.univ-paris-diderot.fr (Postfix) with ESMTP id B74B8F1796; Fri, 8 Jan 2021 16:34:07 +0100 (CET) X-Virus-Scanned: amavisd-new at math.univ-paris-diderot.fr Received: from mailhub.math.univ-paris-diderot.fr ([127.0.0.1]) by mailhub.math.univ-paris-diderot.fr (mailhub.math.univ-paris-diderot.fr [127.0.0.1]) (amavisd-new, port 10023) with ESMTP id iswEK9wKFtp6; Fri, 8 Jan 2021 16:34:05 +0100 (CET) Received: from pirx.irif.fr (unknown [78.194.40.74]) (Authenticated sender: jch) by mailhub.math.univ-paris-diderot.fr (Postfix) with ESMTPSA id 36429F1791; Fri, 8 Jan 2021 16:34:05 +0100 (CET) Date: Fri, 08 Jan 2021 16:34:05 +0100 Message-ID: <87mtxj789e.wl-jch@irif.fr> From: Juliusz Chroboczek To: Toke =?ISO-8859-1?Q?H=F8iland-J=F8rgensen?= In-Reply-To: <87turrh6y2.fsf@toke.dk> References: <875z485swt.wl-jch@irif.fr> <87wnwnha9w.fsf@toke.dk> <87v9c77e20.wl-jch@irif.fr> <87turrh6y2.fsf@toke.dk> User-Agent: Wanderlust/2.15.9 (Almost Unreal) Emacs/27.1 Mule/6.0 MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") Content-Type: text/plain; charset=ISO-8859-1 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.2.7 (korolev.univ-paris7.fr [194.254.61.138]); Fri, 08 Jan 2021 16:34:07 +0100 (CET) X-Miltered: at korolev with ID 5FF87B6F.002 by Joe's j-chkmail (http : // j-chkmail dot ensmp dot fr)! X-j-chkmail-Enveloppe: 5FF87B6F.002 from mailhub.math.univ-paris-diderot.fr/mailhub.math.univ-paris-diderot.fr/null/mailhub.math.univ-paris-diderot.fr/ X-j-chkmail-Score: MSGID : 5FF87B6F.002 on korolev.univ-paris7.fr : j-chkmail score : . : R=. U=. O=. B=0.000 -> S=0.000 X-j-chkmail-Status: Ham Content-Transfer-Encoding: quoted-printable Message-ID-Hash: ZELV7LBYX5OKNTLHDODITGTPUNCLKFWD X-Message-ID-Hash: ZELV7LBYX5OKNTLHDODITGTPUNCLKFWD X-MailFrom: jch@irif.fr X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; suspicious-header CC: galene@lists.galene.org X-Mailman-Version: 3.3.2 Precedence: list Subject: [Galene] Re: Logging List-Id: =?utf-8?q?Gal=C3=A8ne_videoconferencing_server_discussion_list?= Archived-At: List-Archive: List-Help: List-Post: List-Subscribe: List-Unsubscribe: >> The direct connection was successful, so the TURN server was never >> contacted. > Right, I see. What are the conditions where a direct connection fails? > Is it just when the client is behind a NAT? If only one side is behind NAT, you should get a direct connection with n= o outside help. If both sides are behind NAT, they will attempt to establish a paired set of NAT mappings by synchronising through a STUN server, and then establis= h a direct connection (TURN is a superset of STUN, no need to set up a dedicated STUN server if you've got TURN). This is usually successful, but might occasionally fail due to packet loss. If there is a firewall in the way that drops UDP traffic, or traffic to high-numbered ports, then the peers will fall back to TURN. TURN support= s both UDP and TCP proxying, since some networks allow outgoing UDP only to some ports (typically 1194 for OpenVPN and 10000 for the Cisco VPN client= ). ICE-TCP adds an additional step by allowing direct connections over TCP. It is not designed for peer-to-peer communication, only for client-server communication, so it should be a perfect fit for Gal=E8ne. Once a functioning pair is found, ICE will stick to it. In Gal=E8ne, we restart ICE whenever the connection fails, and also when the user types "/renegotiate". (I'd like to detect client-side network changes and rest= art ICE automatically, but current browsers don't give me a suitable event handler.) All of this happens in parallel, with arbitrary timeouts, so the actual behaviour tends to be non-deterministic and next to impossible to debug. See for example https://github.com/pion/ice/issues/305 > As for just logging, Galene does propagate JSON parsing errors from the > Go JSON parser, but because the files are not read on startup you can > start up the daemon and everything looks fine until someone tries to > connect... Hmm... I'm actually using the current behaviour, by using undefined field= s in my JSON files ("contact" and "comment"). But I think you're right. This will happen in background, so you'll only get warnings in the log. After 0.2 is out, though, since Gal=E8ne is fro= zen right now. -- Juliusz