<html dir="ltr"><head></head><body style="text-align:left; direction:ltr;"><div>Hi,</div><div><br></div><div>See inline.</div><div><br></div><div>On Wed, 2020-03-25 at 22:08 +0100, Bizarre Days wrote:</div><blockquote type="cite" style="margin:0 0 0 .8ex; border-left:2px #729fcf solid;padding-left:1ex"><div dir="ltr"><div class="gmail-adn gmail-ads"><div class="gmail-gs"><div class="gmail-"><div id="gmail-:os" class="gmail-ii gmail-gt"><div id="gmail-:mu" class="gmail-a3s gmail-aXjCH"><div dir="ltr"><div>When
 Firefox browser wants to send candidates to the webrtcbin peer, it 
calls a custom js method passing an "event" argument to it. The custom 
method must send this information to the peer. The event has a single 
field "event.candidate" with a value as:</div><div><br></div><div><span style="font-family:monospace"><span><span><span><span>event.candidate = {<span><span><span><span> "sdpMLineIndex":0,"</span></span></span></span></span></span></span></span></span></div><div><span style="font-family:monospace"><span><span><span><span>  "candidate":"candidate:8 2 TCP 847249918 88.6.179.119 9 typ srflx raddr 192.168.1.12 rport 9 tcptype active"}</span></span><span><span><a href="http://localhost:8080/llocer/js/utils.js" target="_blank"><span title="View source in Debugger → http://localhost:8080/llocer/js/utils.js:17:13"><span></span></span></a></span></span></span></span></span></div><div><br></div><div>At the end, to inform there are no more candidates, Firefox does another call to the same method with event.candidate=undefined</div><div><br></div><div>In
 the other side, webrtcbin (Java API) offers the method 
"WebRTCBin.addIceCandiate( int sdpM. String candidate ) to inform the 
plugin about the remote candidates. In the normal case is easy map 
firefox event.candidate information to these arguments. However, no idea
 of to handle the end one. <br></div><div><br></div><div>A call WebRTCBin.addIceCandidate(0, null) produces an assertion failed in libnice (when its trace is active).<br></div><div><br></div><div><b>How to handle in WebRTCBin (Java API) the case of final remote candidate ?</b></div></div></div></div></div></div></div></div></blockquote><div><br></div><div>The only use for this is to avoid declaring the call failed before the last candidate has been produced. So if webrtcbin's ice-connection-state goes to "failed" before the last candidate has been received, you can just ignore the failed and feed more candidates (making it go back to the "checking" state). libnice, the library used by webrtcbin to do ICE actually supports this end of candidate since version 0.1.16, but nobody has taken the time to add the relevant API to webrtcbin.</div><div><br></div><div><span><pre><pre>-- <br></pre>Olivier Crête
olivier.crete@collabora.com
</pre></span></div></body></html>