[libnice] Inquiry re: commit 1ab9d7c104, “conncheck: Separate valid and succeeded states"

Lorenzo Miniero lminiero at gmail.com
Tue Apr 11 15:20:41 UTC 2017

2017-04-10 22:28 GMT+02:00 Olivier Crête <olivier.crete at collabora.com>:

> Hi,
> That is really interesting,
> On Mon, 2017-04-10 at 18:42 +0200, Lorenzo Miniero wrote:
> 2017-02-27 22:30 GMT+01:00 Chad Phillips <chad at apartmentlines.com>:
> Some git bisect work got me to the problem commit:
> 1ab9d7c104978ea1904aaaad708c1c8c23c77592 is the first bad commit
> commit 1ab9d7c104978ea1904aaaad708c1c8c23c77592
> conncheck: Separate valid and succeded states
> He then tried a patch another user referenced on our issue page, and it
> worked instead: https://phabricator.freedesktop.org/D735
> I've been looking at this patch a couple times and the reason I didn't
> merge it is that I don't understand what it tries to accomplish.
> But now I think I figured it out. It seems that libnice sets the
> "nominated" flag on all the pairs when it creates them as a controlling
> agent, which seems wrong. I think it should set the flag only when it gets
> a reply... And this is why propagating the flag fixes it in some cases, but
> I think we need to go over the whole conncheck code and make it set the
> nominated flag at the right time (after the reply is received!).

Hi Olivier,

thanks for the quick reply!

I think you're indeed on the right path, as we did some more checks and we
did experience a different behaviour depending on who was offering, which
in turn means a different role when it comes to ICE (in Janus, the answerer
has the controlling role).

In case it can help shed some more light, we verified that when Janus is on
a public address, we never encounter any issue, no matter whether the user
is behind a regular NAT, a symmetric one or public themselves. If Janus
itself is behind a NAT, instead, and so we configure it with a STUN server,
then the issues we mentioned arise. We made some more tests with Janus
behind a NAT, and with a user behind a NAT himself, the EchoTest demo
(where Janus answers, and so is the ICE controller) doesn't work, while the
Streaming demo (Janus offers, user is ICE controller) does, which seems to
confirm your theory on the role's importance.

Hope this helps,

> Olivier Crête olivier.crete at collabora.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/nice/attachments/20170411/e66b40ae/attachment.html>

More information about the nice mailing list