<div dir="ltr"><div>Thanks for confirming, Mike. To me, that sounds like FSv10 supports peer-reflexive candidates. In fact, I realize now that I've verified this feature recently.</div><div><br></div><div>However, we still get one-way media at one of our test sites. A pcap with this display filter...</div><div><br></div><div>ip.dst == <public IP number of my FS 10.4></div><div><br></div><div>...shows only TLSv1.3 and TCP packets to port 8082, which indicate that the handshake succeeded but verto on Chrome85 never sent any media.</div><div><br></div><div>When I test from my site with a different Win10 machine but also using Chrome85 and the same FS, my pcap reveals TLSv1.2 and media goes both ways.</div><div><br></div><div>We're going to do additional tests by varying the client machine and client network, but if something so far suggests a reason for one-way audio, please let me know.</div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr"><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">---------- Forwarded message ----------<br>From: Mike Jerris <<a href="mailto:mike@freeswitch.org" target="_blank">mike@freeswitch.org</a>><br><br><div>If they start sending to us we will auto -adjust to the right ip after a few packets.  Its a bit slower to set up but should work.<br><div><br><blockquote type="cite"><div>On Sep 15, 2020, at 7:36 PM, David P <<a href="mailto:davidswalkabout@gmail.com" target="_blank">davidswalkabout@gmail.com</a>> wrote:</div><br><div><div dir="ltr"><div>Although we have STUN+TURN coturn (and FS) deployed in Oregon, a verto user in San Francisco today made a call in which only (private) host candidates were in the offer bundle SDP.</div><div><br></div><div>They use IT-managed Ethernet, so any slowness in getting STUN is probably in their IT management of the connection...and not something we can do anything about unless our FS can support peer-reflexive candidates.</div><div><br></div><div>They tell me their network has worked fine with Zoom, which is grating to hear. Is there any prospect of FS supporting peer-reflexive candidates?</div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Sep 1, 2020 at 12:22 AM <<a href="mailto:freeswitch-users-request@lists.freeswitch.org" target="_blank">freeswitch-users-request@lists.freeswitch.org</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">---------- Forwarded message ----------<br>From: David P <<a href="mailto:davidswalkabout@gmail.com" target="_blank">davidswalkabout@gmail.com</a>><br>To: FreeSWITCH Users Help <<a href="mailto:freeswitch-users@lists.freeswitch.org" target="_blank">freeswitch-users@lists.freeswitch.org</a>><br>Cc: <br>Bcc: <br>Date: Mon, 31 Aug 2020 08:36:05 +1200<br>Subject: Re: [Freeswitch-users] One-way audio but not video on 10.4<br><div dir="auto"><div class="gmail_quote" dir="auto"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"></blockquote></div><div dir="auto">I strongly suspect the problem is due to FS choosing a different port than is offered. I've seen this a few times by comparing the offer SDP a=candidate entries with the address:port in FS log entries containing 'Choose rtp'. This won't work if the user is behind a firewall that allows incoming response only through ports opened for outgoing requests.</div><div dir="auto"><br></div><div dir="auto">Another thing I wonder about is when verto provides a BUNDLE offer, should it use the same address and port for both audio and video. I think I've seen that it doesn't, but maybe BUNDLE doesn't require it.</div><div dir="auto"><br></div><div class="gmail_quote" dir="auto"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">--------- Forwarded message ----------<br>From: Nathan Stratton <<a href="mailto:nathan@robotics.net" rel="noreferrer" target="_blank">nathan@robotics.net</a>><br>To: FreeSWITCH Users Help <<a href="mailto:freeswitch-users@lists.freeswitch.org" rel="noreferrer" target="_blank">freeswitch-users@lists.freeswitch.org</a>><br>Cc: <br>Bcc: <br>Date: Sat, 29 Aug 2020 11:13:24 -0400<br>Subject: Re: [Freeswitch-users] One-way audio but not video on 10.4<br><div dir="ltr">Looks like your client is not hitting a stun server to get the public IP address, however, I have been wondering why it's not possible to make FreeSWITCH work without using STUN on the client as long as FreeSWITCH is on a public IP. <br clear="all"><div><div dir="ltr"><div dir="ltr"><div><br>><><br>nathan stratton</div></div></div></div><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sat, Aug 29, 2020 at 3:00 AM David P <<a href="mailto:davidswalkabout@gmail.com" rel="noreferrer" target="_blank">davidswalkabout@gmail.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 dir="ltr"><div>The client is current verto running on current Chrome/Win10.</div><div><br></div><div>The client's SDP shows srflx and relay candidates from Twilio at same network cost as the "private" host candidates, and FSv10.4 chooses the host candidates.</div><div class="gmail_quote"><div dir="ltr" class="gmail_attr"><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">---------- Forwarded message ----------<br>From: Mike Jerris <<a href="mailto:mike@freeswitch.org" rel="noreferrer" target="_blank">mike@freeswitch.org</a>><br><br><div>If client still isn’t putting in non rfc1918 candidates in audio you need to figure out why that is first.<br><div><br><blockquote type="cite"><div>On Aug 26, 2020, at 7:17 PM, David P <<a href="mailto:davidswalkabout@gmail.com" rel="noreferrer" target="_blank">davidswalkabout@gmail.com</a>> wrote:</div><br><div><div dir="ltr"><div dir="ltr">I've introduced Twilio STUN and TURN to our iceServers since then. All have the same network cost in the SDP and FSv10.4 chooses a host. Verto reports the remote stream arrived but getStats shows zero audio bytes in or out, and it's silent to our user.  I applied a display filter using our Freeswitch's public IP ip.src == 52.xx.yy.zz or ip.dst == ip.src == 52.xx.yy.zz and in addition to TLS I see some TCP ACKs from our user's 10.0.0.189 but I don't know what else to look for.<br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr"><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">---------- Forwarded message ----------<br>From: Mike Jerris <<a href="mailto:mike@freeswitch.org" rel="noreferrer" target="_blank">mike@freeswitch.org</a>><br>To: FreeSWITCH Users Help <<a href="mailto:freeswitch-users@lists.freeswitch.org" rel="noreferrer" target="_blank">freeswitch-users@lists.freeswitch.org</a>><br>Cc: <br>Bcc: <br>Date: Wed, 26 Aug 2020 16:19:56 -0400<br>Subject: Re: [Freeswitch-users] One-way audio but not video on 10.4<br></blockquote><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div>Configure stun in your client so you get proper candidates that are reachable.<br><div><br><blockquote type="cite"><div>On Aug 19, 2020, at 6:18 PM, David P <<a href="mailto:davidswalkabout@gmail.com" rel="noreferrer" target="_blank">davidswalkabout@gmail.com</a>> wrote:</div><br><div><div dir="ltr">Yesterday I had a verto call in which the <video> contained a remote echo (which is how we configure it) but there was no audio out nor in (confirmed by getStats showing zero audio bytes out or in).<div><br></div><div>I was using:</div><div>FreeSWITCH Version 1.10.4-release+git~20200805T110119Z~133fc2c870~64bit (git 133fc2c 2020-08-05 11:01:19Z 64bit)<br></div><div>from Chrome84/Win10</div><div><br></div><div>I noticed the video candidates included a relay but the audio ones didn't:</div><div><br></div><div>f6e23797-4ad2-b761-2a6d-97846c122d7e m=audio 62058 UDP/TLS/RTP/SAVPF 111 103 104 9 0 8 106 105 13 110 112 113 126<br>f6e23797-4ad2-b761-2a6d-97846c122d7e c=IN IP4 192.168.208.1<br>f6e23797-4ad2-b761-2a6d-97846c122d7e a=rtcp:9 IN IP4 0.0.0.0<br>f6e23797-4ad2-b761-2a6d-97846c122d7e a=candidate:1252570982 1 udp 2122260223 192.168.208.1 62058 typ host generation 0 network-id 1<br>f6e23797-4ad2-b761-2a6d-97846c122d7e a=candidate:854729925 1 udp 2122194687 172.20.4.169 62059 typ host generation 0 network-id 2 network-cost 10<br>f6e23797-4ad2-b761-2a6d-97846c122d7e a=candidate:69946262 1 tcp 1518280447 192.168.208.1 9 typ host tcptype active generation 0 network-id 1<br>f6e23797-4ad2-b761-2a6d-97846c122d7e a=candidate:2087835701 1 tcp 1518214911 172.20.4.169 9 typ host tcptype active generation 0 network-id 2 network-cost 10<br><br>f6e23797-4ad2-b761-2a6d-97846c122d7e m=video 13143 UDP/TLS/RTP/SAVPF 96 97 98 99 100 101 102 122 127 121 125 107 108 109 124 120 123 119 114 115 116<br>f6e23797-4ad2-b761-2a6d-97846c122d7e c=IN IP4 35.160.47.89<br>f6e23797-4ad2-b761-2a6d-97846c122d7e a=rtcp:9 IN IP4 0.0.0.0<br>f6e23797-4ad2-b761-2a6d-97846c122d7e a=candidate:1252570982 1 udp 2122260223 192.168.208.1 62060 typ host generation 0 network-id 1<br>f6e23797-4ad2-b761-2a6d-97846c122d7e a=candidate:854729925 1 udp 2122194687 172.20.4.169 62061 typ host generation 0 network-id 2 network-cost 10<br>f6e23797-4ad2-b761-2a6d-97846c122d7e a=candidate:69946262 1 tcp 1518280447 192.168.208.1 9 typ host tcptype active generation 0 network-id 1<br>f6e23797-4ad2-b761-2a6d-97846c122d7e a=candidate:2087835701 1 tcp 1518214911 172.20.4.169 9 typ host tcptype active generation 0 network-id 2 network-cost 10<br>f6e23797-4ad2-b761-2a6d-97846c122d7e a=candidate:3112167340 1 udp 25042943 <a href="http://35.jj.kk.mm/" rel="noreferrer" target="_blank">35.jj.kk.mm</a> 13143 typ relay raddr 210.55.134.98 rport 53504 generation 0 network-id 2 network-cost 10<br></div><div><br></div><div>The relay was chosen for video, and it appeared that the same candidate was going to be chosen for audio, but then an "AUDIO RTP" suggests it chose a private IPv4. And it seems that private IPv4 wasn't treated as a peer-reflexive candidate, so the media couldn't be routed...</div><div><br></div><div>f6e23797-4ad2-b761-2a6d-97846c122d7e 2020-08-19 05:14:33.753568 [DEBUG] switch_core_media.c:4338 Choose rtp candidate, index 2, <a href="http://35.jj.kk.mm:13143/" rel="noreferrer" target="_blank">35.jj.kk.mm:13143</a><br>f6e23797-4ad2-b761-2a6d-97846c122d7e 2020-08-19 05:14:33.753568 [DEBUG] switch_core_media.c:4104 verto.rtc/1200_a6dd33a4-1def-447c-a62a-ae807bb92da6_v-1*s-4 choosing family v4<br>f6e23797-4ad2-b761-2a6d-97846c122d7e 2020-08-19 05:14:33.753568 [DEBUG] switch_core_media.c:4349 Choose same candidate, index 0, for rtcp based on rtcp-mux attribute <a href="http://35.jj.kk.mm:13143/" rel="noreferrer" target="_blank">35.jj.kk.mm:13143</a><br>f6e23797-4ad2-b761-2a6d-97846c122d7e 2020-08-19 05:14:33.753568 [DEBUG] switch_core_media.c:4401 setting remote video ice addr to index 2 <a href="http://35.jj.kk.mm:13143/" rel="noreferrer" target="_blank">35.jj.kk.mm:13143</a> based on candidate<br>f6e23797-4ad2-b761-2a6d-97846c122d7e 2020-08-19 05:14:33.753568 [DEBUG] switch_core_media.c:4436 Setting remote rtcp video addr to <a href="http://35.jj.kk.mm:13143/" rel="noreferrer" target="_blank">35.jj.kk.mm:13143</a> based on candidate<br>f6e23797-4ad2-b761-2a6d-97846c122d7e 2020-08-19 05:14:33.753568 [DEBUG] switch_core_media.c:8663 AUDIO RTP [verto.rtc/1200_a6dd33a4-1def-447c-a62a-ae807bb92da6_v-1*s-4] 10.0.0.100 port 26610 -> 192.168.208.1 port 62058 codec: 111 ms: 20<br></div><div><br></div><div>Am I interpreting the log correctly?</div><div><br></div><div>Is there a way to avoid this?</div><div><br></div><div>Note that in /usr/local/freeswitch/conf/autoload_configs/acl.conf.xml we already deny private IPv4 (although I think we should allow them so they could be used peer-reflexively):</div><div>    <list name="disallow-privateIPv4" default="allow"><br>        <node type="deny" host="10.0.0.0" mask="255.0.0.0"/><br>        <node type="deny" host="172.16.0.0" mask="255.240.0.0"/><br>        <node type="deny" host="192.168.0.0" mask="255.255.0.0"/><br>    </list></div></div></div></blockquote></div></div></blockquote></div></div></div></blockquote></div></div></blockquote></div></div></blockquote></div></blockquote></div></div></blockquote></div></div></div></blockquote></div></div><br></blockquote></div></div>