<div dir="ltr">You are looking at the code for when the ice is initialized it has nothing to do with your problem.<div>It always starts out 0 since it was just setup.  I think you are hyper-focused on there being something wrong with the code.</div><div><br></div><div>It will set ice.ready to 1 when you get an ice packet that matches what was negotiated and ice.rready when it gets a response to an ice packet.</div><div><br></div><div>We prefer not to have lengthy discussions about user-issues on this list.  Its not designed for tracking issues.</div><div>Make sure you are running the latest master code and file a JIRA with appropriate details like what browser what exactly you are trying to do, the trace of the debug log etc.</div><div><br></div><div>You might want to try <a href="https://cantina.freeswitch.org/verto">https://cantina.freeswitch.org/verto</a>  and dial &quot;decode&quot; or &quot;vid_awesome1.mp4&quot; or &quot;3500&quot;</div>







<div>This server is constantly kept up to date with the latest master branch code.</div><div><br></div><div><br></div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Jun 1, 2015 at 5:07 PM, Jon Lederman <span dir="ltr">&lt;<a href="mailto:jonlederman@gmail.com" target="_blank">jonlederman@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word">Hi,<div><br></div><div>We are seeing STUN packets.  The code I was referring to earlier is this in switch_rtp_activate_ice:</div><div><span style="font-weight:bold;color:rgb(0,0,128);line-height:15px;font-family:monospace;white-space:pre-wrap;background-color:rgb(255,255,255)">if</span><span style="font-family:monospace;line-height:18px;white-space:pre-wrap;background-color:rgb(255,255,255)"> ((type &amp; ICE_VANILLA)) {</span><br style="font-family:monospace;line-height:18px;white-space:pre-wrap;background-color:rgb(255,255,255)"><span style="font-family:monospace;line-height:18px;white-space:pre-wrap;background-color:rgb(255,255,255)">                switch_snprintf(ice_user, </span><span style="font-weight:bold;color:rgb(0,0,128);line-height:15px;font-family:monospace;white-space:pre-wrap;background-color:rgb(255,255,255)">sizeof</span><span style="font-family:monospace;line-height:18px;white-space:pre-wrap;background-color:rgb(255,255,255)">(ice_user), </span><span style="color:rgb(0,128,0);font-weight:bold;line-height:15px;font-family:monospace;white-space:pre-wrap;background-color:rgb(255,255,255)">&quot;%s:%s&quot;</span><span style="font-family:monospace;line-height:18px;white-space:pre-wrap;background-color:rgb(255,255,255)">, login, rlogin);</span><br style="font-family:monospace;line-height:18px;white-space:pre-wrap;background-color:rgb(255,255,255)"><span style="font-family:monospace;line-height:18px;white-space:pre-wrap;background-color:rgb(255,255,255)">                switch_snprintf(user_ice, </span><span style="font-weight:bold;color:rgb(0,0,128);line-height:15px;font-family:monospace;white-space:pre-wrap;background-color:rgb(255,255,255)">sizeof</span><span style="font-family:monospace;line-height:18px;white-space:pre-wrap;background-color:rgb(255,255,255)">(user_ice), </span><span style="color:rgb(0,128,0);font-weight:bold;line-height:15px;font-family:monospace;white-space:pre-wrap;background-color:rgb(255,255,255)">&quot;%s:%s&quot;</span><span style="font-family:monospace;line-height:18px;white-space:pre-wrap;background-color:rgb(255,255,255)">, rlogin, login);</span><br style="font-family:monospace;line-height:18px;white-space:pre-wrap;background-color:rgb(255,255,255)"><span style="font-family:monospace;line-height:18px;white-space:pre-wrap;background-color:rgb(255,255,255)">                switch_snprintf(luser_ice, </span><span style="font-weight:bold;color:rgb(0,0,128);line-height:15px;font-family:monospace;white-space:pre-wrap;background-color:rgb(255,255,255)">sizeof</span><span style="font-family:monospace;line-height:18px;white-space:pre-wrap;background-color:rgb(255,255,255)">(user_ice), </span><span style="color:rgb(0,128,0);font-weight:bold;line-height:15px;font-family:monospace;white-space:pre-wrap;background-color:rgb(255,255,255)">&quot;%s%s&quot;</span><span style="font-family:monospace;line-height:18px;white-space:pre-wrap;background-color:rgb(255,255,255)">, rlogin, login);</span><br style="font-family:monospace;line-height:18px;white-space:pre-wrap;background-color:rgb(255,255,255)"><span style="font-family:monospace;line-height:18px;white-space:pre-wrap;background-color:rgb(255,255,255)">                ice-&gt;ready = ice-&gt;rready = </span><span style="color:rgb(0,0,255);line-height:15px;font-family:monospace;white-space:pre-wrap;background-color:rgb(255,255,255)">0</span><span style="font-family:monospace;line-height:18px;white-space:pre-wrap;background-color:rgb(255,255,255)">;</span><br style="font-family:monospace;line-height:18px;white-space:pre-wrap;background-color:rgb(255,255,255)"><span style="font-family:monospace;line-height:18px;white-space:pre-wrap;background-color:rgb(255,255,255)">        } </span><span style="font-weight:bold;color:rgb(0,0,128);line-height:15px;font-family:monospace;white-space:pre-wrap;background-color:rgb(255,255,255)">else</span><span style="font-family:monospace;line-height:18px;white-space:pre-wrap;background-color:rgb(255,255,255)"> {</span><br style="font-family:monospace;line-height:18px;white-space:pre-wrap;background-color:rgb(255,255,255)"><span style="font-family:monospace;line-height:18px;white-space:pre-wrap;background-color:rgb(255,255,255)">                switch_snprintf(ice_user, </span><span style="font-weight:bold;color:rgb(0,0,128);line-height:15px;font-family:monospace;white-space:pre-wrap;background-color:rgb(255,255,255)">sizeof</span><span style="font-family:monospace;line-height:18px;white-space:pre-wrap;background-color:rgb(255,255,255)">(ice_user), </span><span style="color:rgb(0,128,0);font-weight:bold;line-height:15px;font-family:monospace;white-space:pre-wrap;background-color:rgb(255,255,255)">&quot;%s%s&quot;</span><span style="font-family:monospace;line-height:18px;white-space:pre-wrap;background-color:rgb(255,255,255)">, login, rlogin);</span><br style="font-family:monospace;line-height:18px;white-space:pre-wrap;background-color:rgb(255,255,255)"><span style="font-family:monospace;line-height:18px;white-space:pre-wrap;background-color:rgb(255,255,255)">                switch_snprintf(user_ice, </span><span style="font-weight:bold;color:rgb(0,0,128);line-height:15px;font-family:monospace;white-space:pre-wrap;background-color:rgb(255,255,255)">sizeof</span><span style="font-family:monospace;line-height:18px;white-space:pre-wrap;background-color:rgb(255,255,255)">(user_ice), </span><span style="color:rgb(0,128,0);font-weight:bold;line-height:15px;font-family:monospace;white-space:pre-wrap;background-color:rgb(255,255,255)">&quot;%s%s&quot;</span><span style="font-family:monospace;line-height:18px;white-space:pre-wrap;background-color:rgb(255,255,255)">, rlogin, login);</span><br style="font-family:monospace;line-height:18px;white-space:pre-wrap;background-color:rgb(255,255,255)"><span style="font-family:monospace;line-height:18px;white-space:pre-wrap;background-color:rgb(255,255,255)">                ice-&gt;ready = ice-&gt;rready = </span><span style="color:rgb(0,0,255);line-height:15px;font-family:monospace;white-space:pre-wrap;background-color:rgb(255,255,255)">1</span><span style="font-family:monospace;line-height:18px;white-space:pre-wrap;background-color:rgb(255,255,255)">;</span><br style="font-family:monospace;line-height:18px;white-space:pre-wrap;background-color:rgb(255,255,255)"><span style="font-family:monospace;line-height:18px;white-space:pre-wrap;background-color:rgb(255,255,255)">        }</span><br style="font-family:monospace;line-height:18px;white-space:pre-wrap;background-color:rgb(255,255,255)"><div><br></div><div>It appears that we are getting ICE_VANILLA.  In that case, ice.ready and ice.rready are both set to 0 and DTLS negotiation cannot proceed until ice.ready and ice.rready are 1.  Can ice.ready be set to 1 elsewhere (I noticed in rtp_common_read for example).  However, it is not clear whether that can happen since it requires ice negotiation to start the media flow in the first place.  Please confirm whether switch_rtp_activate_ice requires non ICE_VANILLA in order for ice activation to occur (will switch_rtp_activate_ice be called multiple times until this happens)?</div><div><br></div><div><br></div><div><br></div><div>Thanks.</div><span class="HOEnZb"><font color="#888888"><div><br></div><div>-Jon</div></font></span><div><div class="h5"><div><br><blockquote type="cite"><div>On Jun 1, 2015, at 12:43 PM, Anthony Minessale &lt;<a href="mailto:anthony.minessale@gmail.com" target="_blank">anthony.minessale@gmail.com</a>&gt; wrote:</div><br><div><div dir="ltr">tshark -Y stun<div><br></div><div>Look on the wire for stun packets being sent to/from your client and your box.</div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Jun 1, 2015 at 11:23 AM, Michael Jerris <span dir="ltr">&lt;<a href="mailto:mike@jerris.com" target="_blank">mike@jerris.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word">make sure you are using latest code from git master.<div><div><div><br><div><blockquote type="cite"><div>On Jun 1, 2015, at 12:07 PM, Jon Lederman &lt;<a href="mailto:jonlederman@gmail.com" target="_blank">jonlederman@gmail.com</a>&gt; wrote:</div><br><div><div style="word-wrap:break-word">Yes.  This is webrtc on chrome latest version.  We are pretty certain packets making it to FS and will do a wireshark trace to confirm.  ICE setup is failing and the ice.ready remains false for reasons we don’t understand.  However, packets are flowing.  <br><div><blockquote type="cite"><div>On Jun 1, 2015, at 12:03 PM, Michael Jerris &lt;<a href="mailto:mike@jerris.com" target="_blank">mike@jerris.com</a>&gt; wrote:</div><br><div><div style="word-wrap:break-word">What is the client? Is this webrtc?  Did you confirm that the packets are actually making it to freeswitch like I reccomended?<div><br><div><blockquote type="cite"><div>On Jun 1, 2015, at 11:57 AM, Jon Lederman &lt;<a href="mailto:jonlederman@gmail.com" target="_blank">jonlederman@gmail.com</a>&gt; wrote:</div><br><div><div style="word-wrap:break-word">Hi,<div><br></div><div>The problem we are encountering is that ICE is never established and/or ready.  </div><div>In the function switch_rtp_activate_ice in switch_rtp.c, we notice that it detects VANILLA ICE and thus sets ice.ready=0.  As far as we can tell, there are only a handful other places where ice.ready (or ice.rready for RTCP) can be set to true including the function rtp_common_read.  However, in rtp_common_read, *bytes is 0 and therefore ice.ready remains 0.  Further, is it true that ICE must be ready and negotiated before RTP packets can even begin to flow via rtp_common_read?</div><div><br></div><div>The main questions are:</div><div><br></div><div>1) Is this VANILLA ICE detection, which causes ice.ready to be 0 in switch_rtp_activate_ice problematic?  That is, is the 1.6 branch operative with VANILLA ICE and what is causing VANILLA ICE to be negotiated?  Do we need to change something in the SDP for example?</div><div><br></div><div>2) It appears switch_rtp_activate_ice is called multiple times to no avail, as ice.ready remains 0.  Must ICE establishment and setup be achieved in switch_rtp_activate_ice before any media can flow OR can ice.ready be set to true later somehow?</div><div><br></div><div>3) If ICE is not being activated properly, what would be your recommendations on debugging why this is?  </div><div><br></div><div>Thanks in advance.</div><div><br></div><div>-Jon</div><div><div><div><blockquote type="cite"><div>On Jun 1, 2015, at 10:38 AM, Anthony Minessale &lt;<a href="mailto:anthony.minessale@gmail.com" target="_blank">anthony.minessale@gmail.com</a>&gt; wrote:</div><br><div>Ice must negotiate, then dtls.  The ice is not encrypted.<div><span></span><br><br>On Sunday, May 31, 2015, Michael Jerris &lt;<a href="mailto:mike@jerris.com" target="_blank">mike@jerris.com</a>&gt; wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Typically this happens when the traffic isn&#39;t making it back to FreeSWITCH.<span></span><br><br>On Sunday, May 31, 2015, Jon Lederman &lt;<a>jonlederman@gmail.com</a>&gt; wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi,<br>
<br>
We are having trouble getting WebRTC working with 1.6.  I have tracked the problem down to the do_dtls function in switch_rtp.c (shown partially below).  Two things we have noticed:<br>
<br>
1) It appears that ice.ready and ice.ready are always 0.<br>
2) DTLS negotiation never completes the handshake.<br>
<br>
Does ice have to be operative in order for dtls negotiation to proceed or the other way around?  What should I look for, which may prevent the ice setup and/or dtls handshake.<br>
We are running on google cloud.  Are there networking/NAT issues running on cloud servers that might interfere with either ICE or DTLS?<br>
<br>
Thanks in advance.<br>
<br>
-Jon<br>
<br>
<br>
static int do_dtls(switch_rtp_t *rtp_session, switch_dtls_t *dtls)<br>
{<br>
        int r = 0, ret = 0, len;<br>
        switch_size_t bytes;<br>
        unsigned char buf[4096] = &quot;&quot;;<br>
        int ready = rtp_session-&gt;ice.ice_user ? (rtp_session-&gt;ice.rready &amp;&amp; rtp_session-&gt;ice.ready) : 1;<br>
<br>
<br>
<br>
        if (!dtls-&gt;bytes &amp;&amp; !ready) {<br>
                //switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(rtp_session-&gt;session), SWITCH_LOG_ALERT, &quot;Ice not ready&quot;);<br>
                return 0;<br>
        }<br>
<br>
…<br>
<br>
<br></blockquote></blockquote></div></div></blockquote></div></div></div></div></div></blockquote></div></div></div></div></blockquote></div></div></div></blockquote></div><br></div></div></div></div><br>_________________________________________________________________________<br>
Professional FreeSWITCH Consulting Services:<br>
<a href="mailto:consulting@freeswitch.org" target="_blank">consulting@freeswitch.org</a><br>
<a href="http://www.freeswitchsolutions.com/" target="_blank">http://www.freeswitchsolutions.com</a><br>
<br>
Official FreeSWITCH Sites<br>
<a href="http://www.freeswitch.org/" target="_blank">http://www.freeswitch.org</a><br>
<a href="http://confluence.freeswitch.org/" target="_blank">http://confluence.freeswitch.org</a><br>
<a href="http://www.cluecon.com/" target="_blank">http://www.cluecon.com</a><br>
<br>
FreeSWITCH-users mailing list<br>
<a href="mailto:FreeSWITCH-users@lists.freeswitch.org" target="_blank">FreeSWITCH-users@lists.freeswitch.org</a><br>
<a href="http://lists.freeswitch.org/mailman/listinfo/freeswitch-users" target="_blank">http://lists.freeswitch.org/mailman/listinfo/freeswitch-users</a><br>
UNSUBSCRIBE:<a href="http://lists.freeswitch.org/mailman/options/freeswitch-users" target="_blank">http://lists.freeswitch.org/mailman/options/freeswitch-users</a><br>
<a href="http://www.freeswitch.org/" target="_blank">http://www.freeswitch.org</a><br></blockquote></div><br><br clear="all"><div><br></div>-- <br><div><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr">Anthony Minessale II       ♬ @anthmfs  ♬ @FreeSWITCH  ♬<div><br><div>☞ <a href="http://freeswitch.org/" target="_blank">http://freeswitch.org/</a>  ☞ <a href="http://cluecon.com/" target="_blank">http://cluecon.com/</a>  ☞ <a href="http://twitter.com/FreeSWITCH" target="_blank">http://twitter.com/FreeSWITCH</a></div><div><div>☞ <a href="http://irc.freenode.net/" target="_blank">irc.freenode.net</a> #freeswitch ☞ <u><a href="http://freeswitch.org/g+" target="_blank">http://freeswitch.org/g+</a></u><br><br></div><div>ClueCon Weekly Development Call <br></div><div><img goomoji="260e" style="margin:0 0.2ex;vertical-align:middle;max-height:24px" alt="☎" src="cid:260e@goomoji.gmail"> <a href="mailto:sip%3A888@conference.freeswitch.org" target="_blank">sip:888@conference.freeswitch.org</a>  <img goomoji="260e" style="margin:0 0.2ex;vertical-align:middle;max-height:24px" alt="☎" src="cid:260e@goomoji.gmail"> <a href="tel:%2B19193869900" value="+19193869900" target="_blank">+19193869900</a> </div><div><br></div></div></div><div><a href="https://www.youtube.com/watch?v=9XXgW34t40s" style="color:rgb(17,85,204);font-size:12.8000001907349px" target="_blank">https://www.youtube.com/watch?v=9XXgW34t40s</a></div><div><a href="https://www.youtube.com/watch?v=NLaDpGQuZDA" target="_blank">https://www.youtube.com/watch?v=NLaDpGQuZDA</a><br></div></div></div></div></div></div></div>
</div>
_________________________________________________________________________<br>Professional FreeSWITCH Consulting Services: <br><a href="mailto:consulting@freeswitch.org" target="_blank">consulting@freeswitch.org</a><br><a href="http://www.freeswitchsolutions.com" target="_blank">http://www.freeswitchsolutions.com</a><br><br>Official FreeSWITCH Sites<br><a href="http://www.freeswitch.org" target="_blank">http://www.freeswitch.org</a><br><a href="http://confluence.freeswitch.org" target="_blank">http://confluence.freeswitch.org</a><br><a href="http://www.cluecon.com" target="_blank">http://www.cluecon.com</a><br><br>FreeSWITCH-users mailing list<br><a href="mailto:FreeSWITCH-users@lists.freeswitch.org" target="_blank">FreeSWITCH-users@lists.freeswitch.org</a><br><a href="http://lists.freeswitch.org/mailman/listinfo/freeswitch-users" target="_blank">http://lists.freeswitch.org/mailman/listinfo/freeswitch-users</a><br>UNSUBSCRIBE:<a href="http://lists.freeswitch.org/mailman/options/freeswitch-users" target="_blank">http://lists.freeswitch.org/mailman/options/freeswitch-users</a><br><a href="http://www.freeswitch.org" target="_blank">http://www.freeswitch.org</a></div></blockquote></div><br></div></div></div></div><br>_________________________________________________________________________<br>
Professional FreeSWITCH Consulting Services:<br>
<a href="mailto:consulting@freeswitch.org">consulting@freeswitch.org</a><br>
<a href="http://www.freeswitchsolutions.com" target="_blank">http://www.freeswitchsolutions.com</a><br>
<br>
Official FreeSWITCH Sites<br>
<a href="http://www.freeswitch.org" target="_blank">http://www.freeswitch.org</a><br>
<a href="http://confluence.freeswitch.org" target="_blank">http://confluence.freeswitch.org</a><br>
<a href="http://www.cluecon.com" target="_blank">http://www.cluecon.com</a><br>
<br>
FreeSWITCH-users mailing list<br>
<a href="mailto:FreeSWITCH-users@lists.freeswitch.org">FreeSWITCH-users@lists.freeswitch.org</a><br>
<a href="http://lists.freeswitch.org/mailman/listinfo/freeswitch-users" target="_blank">http://lists.freeswitch.org/mailman/listinfo/freeswitch-users</a><br>
UNSUBSCRIBE:<a href="http://lists.freeswitch.org/mailman/options/freeswitch-users" target="_blank">http://lists.freeswitch.org/mailman/options/freeswitch-users</a><br>
<a href="http://www.freeswitch.org" target="_blank">http://www.freeswitch.org</a><br></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr">Anthony Minessale II       ♬ @anthmfs  ♬ @FreeSWITCH  ♬<div><br><div>☞ <a href="http://freeswitch.org/" target="_blank">http://freeswitch.org/</a>  ☞ <a href="http://cluecon.com/" target="_blank">http://cluecon.com/</a>  ☞ <a href="http://twitter.com/FreeSWITCH" target="_blank">http://twitter.com/FreeSWITCH</a></div><div><div>☞ <a href="http://irc.freenode.net" target="_blank">irc.freenode.net</a> #freeswitch ☞ <u><a href="http://freeswitch.org/g+" target="_blank">http://freeswitch.org/g+</a></u><br><br></div><div>ClueCon Weekly Development Call <br></div><div>☎ <a href="mailto:sip%3A888@conference.freeswitch.org" target="_blank">sip:888@conference.freeswitch.org</a>  ☎ +19193869900 </div><div><br></div></div></div><div><a href="https://www.youtube.com/watch?v=9XXgW34t40s" style="color:rgb(17,85,204);font-size:12.8000001907349px" target="_blank">https://www.youtube.com/watch?v=9XXgW34t40s</a></div><div><a href="https://www.youtube.com/watch?v=NLaDpGQuZDA" target="_blank">https://www.youtube.com/watch?v=NLaDpGQuZDA</a><br></div></div></div></div></div></div></div>
</div>