<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">make sure you are using latest code from git master.<div class=""><br class=""><div><blockquote type="cite" class=""><div class="">On Jun 1, 2015, at 12:07 PM, Jon Lederman &lt;<a href="mailto:jonlederman@gmail.com" class="">jonlederman@gmail.com</a>&gt; wrote:</div><br class="Apple-interchange-newline"><div class=""><meta http-equiv="Content-Type" content="text/html charset=utf-8" class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">Yes. &nbsp;This is webrtc on chrome latest version. &nbsp;We are pretty certain packets making it to FS and will do a wireshark trace to confirm. &nbsp;ICE setup is failing and the ice.ready remains false for reasons we don’t understand. &nbsp;However, packets are flowing. &nbsp;<br class=""><div class=""><blockquote type="cite" class=""><div class="">On Jun 1, 2015, at 12:03 PM, Michael Jerris &lt;<a href="mailto:mike@jerris.com" class="">mike@jerris.com</a>&gt; wrote:</div><br class="Apple-interchange-newline"><div class=""><meta http-equiv="Content-Type" content="text/html charset=utf-8" class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">What is the client? Is this webrtc? &nbsp;Did you confirm that the packets are actually making it to freeswitch like I reccomended?<div class=""><br class=""><div class=""><blockquote type="cite" class=""><div class="">On Jun 1, 2015, at 11:57 AM, Jon Lederman &lt;<a href="mailto:jonlederman@gmail.com" class="">jonlederman@gmail.com</a>&gt; wrote:</div><br class="Apple-interchange-newline"><div class=""><meta http-equiv="Content-Type" content="text/html charset=utf-8" class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">Hi,<div class=""><br class=""></div><div class="">The problem we are encountering is that ICE is never established and/or ready. &nbsp;</div><div class="">In the function switch_rtp_activate_ice in switch_rtp.c, we notice that it detects VANILLA ICE and thus sets ice.ready=0. &nbsp;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. &nbsp;However, in rtp_common_read, *bytes is 0 and therefore ice.ready remains 0. &nbsp;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 class=""><br class=""></div><div class="">The main questions are:</div><div class=""><br class=""></div><div class="">1) Is this VANILLA ICE detection, which causes ice.ready to be 0 in switch_rtp_activate_ice problematic? &nbsp;That is, is the 1.6 branch operative with VANILLA ICE and what is causing VANILLA ICE to be negotiated? &nbsp;Do we need to change something in the SDP for example?</div><div class=""><br class=""></div><div class="">2) It appears switch_rtp_activate_ice is called multiple times to no avail, as ice.ready remains 0. &nbsp;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 class=""><br class=""></div><div class="">3) If ICE is not being activated properly, what would be your recommendations on debugging why this is? &nbsp;</div><div class=""><br class=""></div><div class="">Thanks in advance.</div><div class=""><br class=""></div><div class="">-Jon</div><div class=""><div class=""><div class=""><blockquote type="cite" class=""><div class="">On Jun 1, 2015, at 10:38 AM, Anthony Minessale &lt;<a href="mailto:anthony.minessale@gmail.com" class="">anthony.minessale@gmail.com</a>&gt; wrote:</div><br class="Apple-interchange-newline"><div class="">Ice must negotiate, then dtls.&nbsp; The ice is not encrypted.<div class=""><span class=""></span><br class=""><br class="">On Sunday, May 31, 2015, Michael Jerris &lt;<a href="mailto:mike@jerris.com" class="">mike@jerris.com</a>&gt; wrote:<br class=""><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't making it back to FreeSWITCH.<span class=""></span><br class=""><br class="">On Sunday, May 31, 2015, Jon Lederman &lt;<a href="javascript:_e(%7B%7D,'cvml','jonlederman@gmail.com');" target="_blank" class="">jonlederman@gmail.com</a>&gt; wrote:<br class=""><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi,<br class="">
<br class="">
We are having trouble getting WebRTC working with 1.6.&nbsp; I have tracked the problem down to the do_dtls function in switch_rtp.c (shown partially below).&nbsp; Two things we have noticed:<br class="">
<br class="">
1) It appears that ice.ready and ice.ready are always 0.<br class="">
2) DTLS negotiation never completes the handshake.<br class="">
<br class="">
Does ice have to be operative in order for dtls negotiation to proceed or the other way around?&nbsp; What should I look for, which may prevent the ice setup and/or dtls handshake.<br class="">
We are running on google cloud.&nbsp; Are there networking/NAT issues running on cloud servers that might interfere with either ICE or DTLS?<br class="">
<br class="">
Thanks in advance.<br class="">
<br class="">
-Jon<br class="">
<br class="">
<br class="">
static int do_dtls(switch_rtp_t *rtp_session, switch_dtls_t *dtls)<br class="">
{<br class="">
&nbsp; &nbsp; &nbsp; &nbsp; int r = 0, ret = 0, len;<br class="">
&nbsp; &nbsp; &nbsp; &nbsp; switch_size_t bytes;<br class="">
&nbsp; &nbsp; &nbsp; &nbsp; unsigned char buf[4096] = "";<br class="">
&nbsp; &nbsp; &nbsp; &nbsp; int ready = rtp_session-&gt;ice.ice_user ? (rtp_session-&gt;ice.rready &amp;&amp; rtp_session-&gt;ice.ready) : 1;<br class="">
<br class="">
<br class="">
<br class="">
&nbsp; &nbsp; &nbsp; &nbsp; if (!dtls-&gt;bytes &amp;&amp; !ready) {<br class="">
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(rtp_session-&gt;session), SWITCH_LOG_ALERT, "Ice not ready");<br class="">
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; return 0;<br class="">
&nbsp; &nbsp; &nbsp; &nbsp; }<br class="">
<br class="">
…<br class="">
<br class="">
<br class=""></blockquote></blockquote></div></div></blockquote></div></div></div></div></div></blockquote></div></div></div></div></blockquote></div></div></div></blockquote></div><br class=""></div></body></html>