<div dir="ltr">Sweet. Thanks man</div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Oct 6, 2020 at 3:08 PM Olivier Crête <<a href="mailto:olivier.crete@collabora.com">olivier.crete@collabora.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div style="text-align:left;direction:ltr"><div>On Tue, 2020-10-06 at 14:11 -0500, Trey Hutcheson wrote:</div><blockquote type="cite" style="margin:0px 0px 0px 0.8ex;border-left:2px solid rgb(114,159,207);padding-left:1ex"><div dir="ltr">Stun can be difficult. In our lab, sometimes the outbound stun requests from the remote peer (the browser) fail because of snat exhaustion, or simply by rate limiting of the stun server. When this happens, the only candidate to make it to our side is an mDNS candidate. <div><br></div><div>I'd like to confirm your assertion that the peer reflexive candidate is added internally by libnice, but I'm using the rust gstreamer bindings (and the libnice crate is out of date and doesn't expose many of the c functions) and mostly opaque to me. I can, however, confirm that the remote side successfully establishes a connected pair, but the local side (webrtcbin) never advances the ice-connection-state beyond GST_WEBRTC_ICE_CONNECTION_STATE_CHECKING.</div></div></blockquote><div><br></div><div><br></div><div>If you run it with G_MESSAGES_DEBUG=libnice, it should spew out a bunch of debugging information.</div><div><br></div><div>Actually, reading from the code, the conn checks don't actually start inside libnice until at least one remote candidate has been set. But reading <a href="https://tools.ietf.org/html/draft-ietf-ice-trickle-21" target="_blank">draft-ietf-ice-trickle-21</a>, I think we should start it immediately when the credentials are set</div><div><br></div><div>I've made an MR with  this entirely untested branch <a href="https://gitlab.freedesktop.org/libnice/libnice/-/merge_requests/166" target="_blank">https://gitlab.freedesktop.org/libnice/libnice/-/merge_requests/166</a> that might fix your problem.</div><div><br></div><div>Olivier</div><div><br></div><blockquote type="cite" style="margin:0px 0px 0px 0.8ex;border-left:2px solid rgb(114,159,207);padding-left:1ex"><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Oct 6, 2020 at 1:52 PM Olivier Crête <<a href="mailto:olivier.crete@collabora.com" target="_blank">olivier.crete@collabora.com</a>> wrote:<br></div><blockquote type="cite" style="margin:0px 0px 0px 0.8ex;border-left:2px solid rgb(114,159,207);padding-left:1ex"><div style="text-align:left;direction:ltr"><div>Hi,</div><div><br></div><div>The peer reflexive candidates already get added internally inside libnice, the "new-remote-candidate" signal is just there for debugging and logging at the application level.</div><div><br></div><div>So in theory, if you already set the remote credentials, I believe it should work. That said, this is a bit of code that has move quite a bit in the last few libnice releases. And there may very well be a bug in there.</div><div><br></div><div>In practice, I expect you'd always at least get a "host" candidate from the other side.</div><div><br></div><div>Olivier</div><div><br></div><div>On Tue, 2020-10-06 at 13:10 -0500, Trey Hutcheson wrote:</div><blockquote type="cite" style="margin:0px 0px 0px 0.8ex;border-left:2px solid rgb(114,159,207);padding-left:1ex"><div dir="ltr"><div>If a remote peer does not trickle in any resolvable candidates (for example, their stun binding fails), then there is no ice connectivity, and therefore, no actual media flows. <br></div><div><br></div><div>However, if webrtcbin returns resolvable candidates, the browser will attempt to perform stun bindings against these candidates. When that happens, libnice's NiceAgent will emit the "initial-binding-request-received" signal, and it will also discover the remote side as a peer reflexive candidate, and emit the "new-remote-candidate-full" signal. In the case of a peer reflexive candidate, ice connectivity could be established if this candidate were added back to the ice agent's list of remote candidates. </div></div>
<pre>_______________________________________________</pre><pre>gstreamer-devel mailing list</pre><a href="mailto:gstreamer-devel@lists.freedesktop.org" target="_blank"><pre>gstreamer-devel@lists.freedesktop.org</pre></a><br><a href="https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel" target="_blank"><pre>https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel</pre></a><br></blockquote><div><span><pre>-- </pre><br><pre>Olivier Crête</pre><a href="mailto:olivier.crete@collabora.com" target="_blank"><pre>olivier.crete@collabora.com</pre></a><pre><br></pre></span></div></div>
_______________________________________________<br>
gstreamer-devel mailing list<br>
<a href="mailto:gstreamer-devel@lists.freedesktop.org" target="_blank">gstreamer-devel@lists.freedesktop.org</a><br>
<a href="https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel" rel="noreferrer" target="_blank">https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel</a><br>
</blockquote></div>
<pre>_______________________________________________</pre><pre>gstreamer-devel mailing list</pre><a href="mailto:gstreamer-devel@lists.freedesktop.org" target="_blank"><pre>gstreamer-devel@lists.freedesktop.org</pre></a><pre><br></pre><a href="https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel" target="_blank"><pre>https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel</pre></a><pre><br></pre></blockquote><div><span><pre><pre>-- <br></pre>Olivier Crête
<a href="mailto:olivier.crete@collabora.com" target="_blank">olivier.crete@collabora.com</a>
</pre></span></div></div>
_______________________________________________<br>
gstreamer-devel mailing list<br>
<a href="mailto:gstreamer-devel@lists.freedesktop.org" target="_blank">gstreamer-devel@lists.freedesktop.org</a><br>
<a href="https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel" rel="noreferrer" target="_blank">https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel</a><br>
</blockquote></div>