<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>