<div dir="ltr">I have Kamailio in a local network with RTPPROXY and NAT MANAGE <div><br></div><div>I have seen an issue with ACK as show when Asterisk sends ACK to Kamailio, it sends to advertised Address instead to Kamailio IP address. </div><div><br></div><div>What could i add to solve this?</div><div><br></div><div>
<p class="p1"><span class="s1">route[WITHINDLG] {</span></p>
<p class="p1"><span class="s1"> if (has_totag()) { </span></p>
<p class="p1"><span class="s1"> # sequential request withing a dialog should</span></p>
<p class="p1"><span class="s1"> # take the path determined by record-routing</span></p>
<p class="p1"><span class="s1"> if (loose_route()) {</span></p>
<p class="p1"><span class="s1"> if (is_method("BYE")) {</span></p>
<p class="p1"><span class="s1"> setflag(FLT_ACC); # do accounting ...</span></p>
<p class="p1"><span class="s1"> setflag(FLT_ACCFAILED); # ... even if the transaction fails</span></p>
<p class="p1"><span class="s1"> dlg_manage(); </span></p>
<p class="p1"><span class="s1"> }</span></p>
<p class="p1"><span class="s1"> if ( is_method("ACK") ) {</span></p>
<p class="p1"><span class="s1"> # ACK is forwarded statelessy</span></p>
<p class="p1"><span class="s1"> route(NATMANAGE); </span></p>
<p class="p1"><span class="s1"> }</span></p>
<p class="p1"><span class="s1"> route(RELAY);</span></p>
<p class="p1"><span class="s1"> } else {</span></p>
<p class="p1"><span class="s1"> if (is_method("SUBSCRIBE") && uri == myself) {</span></p>
<p class="p1"><span class="s1"> # in-dialog subscribe requests</span></p>
<p class="p1"><span class="s1"> route(PRESENCE);</span></p>
<p class="p1"><span class="s1"> exit;</span></p>
<p class="p1"><span class="s1"> }</span></p>
<p class="p1"><span class="s1"> if ( is_method("ACK") ) {</span></p>
<p class="p1"><span class="s1"> if ( t_check_trans() ) {</span></p>
<p class="p1"><span class="s1"> # no loose-route, but stateful ACK;</span></p>
<p class="p1"><span class="s1"> # must be an ACK after a 487</span></p>
<p class="p1"><span class="s1"> # or e.g. 404 from upstream server</span></p>
<p class="p1"><span class="s1"> t_relay();</span></p>
<p class="p1"><span class="s1"> exit;</span></p>
<p class="p1"><span class="s1"> } else { </span></p>
<p class="p1"><span class="s1"> # ACK without matching transaction ... ignore and discard</span></p>
<p class="p1"><span class="s1"> exit;</span></p>
<p class="p1"><span class="s1"> }</span></p>
<p class="p1"><span class="s1"> }</span></p>
<p class="p1"><span class="s1"> sl_send_reply("404","Not here");</span></p>
<p class="p1"><span class="s1"> }</span></p>
<p class="p1"><span class="s1"> exit;</span></p>
<p class="p1"><span class="s1"> }</span></p>
<p class="p1"><span class="s1">}</span></p></div><div><br></div><div>BR</div><div><br></div></div>