<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><div class="">Hi,</div><div class=""><br class=""></div><div class="">I want to share my experience with verto client and nat. </div><div class=""><br class=""></div><div class="">I’m facing a delay issue with verto clients behind some types of nat (symmetric and port restricted cone nat), the port in the SDP is not the same for media and that introduces 3 seconds delay at the begging of the call.</div><div class=""><br class=""></div><div class="">It only occurs in the direction  Client -> Freeswitch. </div><div class=""><br class=""></div><div class="">From the capture I notice that this delay is cause in the dlls negotiation, the Client Hello is sent to a port that is closed at the client side, after 3seconds FS detects that the rtp traffic is arriving in a natted port and it now send the Client Hello to that port.</div><div class=""><br class=""></div><div class=""><u class="">FS —> Client (pkt flow):</u></div><div class=""><br class=""></div><div class="">1s. Client Hello ——> :49897</div><div class=""><— (port unreached) </div><div class=""><div class=""><br class=""></div><div class="">2s. Client Hello ——> :49897</div><div class=""><— (port unreached)</div><div class=""><br class=""></div></div><div class=""><div class="">3s. Client Hello ——> :1025</div><div class=""><— Server Hello </div></div><div class="">Certificate —> :1025</div><div class="">(Normal audio) </div><div class=""><br class=""></div><div class=""><br class=""></div><div class=""><br class=""></div><div class=""><br class=""></div><div class="">Currently I solve it using turn server in the client and forcing to present only relay candidate to FS, DTLS is negotiated immediately, the only issue I see is that FS is not using the relay server (my configuration), it communicates directly to the client so it detects the change of address during media rtp:</div><div class=""><br class=""></div><div class="">1s. Client Hello ——> relay:49897 ——> client:49897</div><div class=""><— Server Hello:49897</div><div class=""><br class=""></div><div class="">FS RTP  —> Relay: 49897 ——> client:49897</div><div class="">FS  <— RTP from client address: 49897</div><div class="">(FS detects address change, stop send it to relay address and with to client address)</div><div class="">FS RTP  —>  client:49897</div><div class=""><br class=""></div><div class=""><br class=""></div><div class="">The address change detection is perfect in this situation, we only load the relay server for dtls negotiation, then the media flows directly between FS and Client.</div><div class=""><br class=""></div><div class=""><br class=""></div><div class="">What do you think of this approach? </div><div class="">Do you have a better solution for this problem? </div><div class=""><br class=""></div><div class=""><br class=""></div><div class="">
<div dir="auto" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><div style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;">--<br class="Apple-interchange-newline">Saludos / Regards / Cumprimentos</div><div style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;">António Silva</div><br class="Apple-interchange-newline"></div><br class="Apple-interchange-newline"><br class="Apple-interchange-newline">
</div>

<br class=""></body></html>