<div dir="ltr">Hi Daniel,<div><br></div><div>From what you are describing, my understanding is that the Registrar is the PBX, kamailio is acting as an edge proxy. If so, doesn't the PBX/registrar have NAT traversal/keepalive mechanisms of its own?<div><br></div><div>Regards,</div><div>--Sergiu</div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Mar 31, 2020 at 1:55 PM Daniel W. Graham <<a href="mailto:dan@cmsinter.net">dan@cmsinter.net</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 lang="EN-US">
<div class="gmail-m_3234107695683839931WordSection1">
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Segoe UI Historic",sans-serif">I’ve been missing with this for a while and seem to be missing something. Any suggestions on what is missing here?<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Segoe UI Historic",sans-serif"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Segoe UI Historic",sans-serif">Trying to use set_contact_alias() and handle_ruri_alias() from nathelper module and nat_keepalive from nat_traversal module, without registrar.<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Segoe UI Historic",sans-serif"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Segoe UI Historic",sans-serif">I had register keepalive working, that has since broke. When register keepalive was working, I was able to place call in either direction but ACK and BYE was not
 being routed past kamailio.<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Segoe UI Historic",sans-serif"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Segoe UI Historic",sans-serif">Registrations are forwarded to the PBX using add_path() and is working.<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Segoe UI Historic",sans-serif"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Segoe UI Historic",sans-serif">Also not included below is the routing to the PBX, that is just setting $du and t_relay, and is also working.<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Segoe UI Historic",sans-serif"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Segoe UI Historic",sans-serif">Topology is: UA1 -> NAT -> kamailio -> PBX -> UA2<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Segoe UI Historic",sans-serif"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Segoe UI Historic",sans-serif">Using default config file as the example, modified with above changes. I also removed RTP config as that is a non-issue.<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Segoe UI Historic",sans-serif"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Segoe UI Historic",sans-serif">request_route {<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Segoe UI Historic",sans-serif">    ……<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Segoe UI Historic",sans-serif">    # FLAG MESSAGES FROM PBX<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Segoe UI Historic",sans-serif">        setflag(FLT_PBX);<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Segoe UI Historic",sans-serif">    route(NATDETECT);<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Segoe UI Historic",sans-serif">    ……<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Segoe UI Historic",sans-serif"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Segoe UI Historic",sans-serif">route[NATDETECT] {<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Segoe UI Historic",sans-serif">            if (nat_uac_test("19")) {<u></u><u></u></span></p>
<p class="MsoNormal" style="margin-left:0.5in;text-indent:0.5in"><span style="font-size:11pt;font-family:"Segoe UI Historic",sans-serif">force_rport();<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Segoe UI Historic",sans-serif">                        set_contact_alias();<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Segoe UI Historic",sans-serif">                        nat_keepalive();<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Segoe UI Historic",sans-serif">            }<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Segoe UI Historic",sans-serif">            return;<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Segoe UI Historic",sans-serif">}<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Segoe UI Historic",sans-serif"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Segoe UI Historic",sans-serif">route[WITHINDLG] {<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Segoe UI Historic",sans-serif">            if (!has_totag()) return;<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Segoe UI Historic",sans-serif">                        if (loose_route()) {<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Segoe UI Historic",sans-serif">                                    route(DLGURI);<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Segoe UI Historic",sans-serif">                        } else if ( is_method("ACK") ) {<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Segoe UI Historic",sans-serif">                                    route(NATMANAGE);<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Segoe UI Historic",sans-serif">                        } else if ( is_method("NOTIFY") ) {<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Segoe UI Historic",sans-serif">                                    record_route();<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Segoe UI Historic",sans-serif">                        }<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Segoe UI Historic",sans-serif">            route(RELAY);<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Segoe UI Historic",sans-serif">            exit;<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Segoe UI Historic",sans-serif">            }<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Segoe UI Historic",sans-serif"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Segoe UI Historic",sans-serif">            if (is_method("SUBSCRIBE") && uri == myself) {<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Segoe UI Historic",sans-serif">                        route(PRESENCE);<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Segoe UI Historic",sans-serif">                        exit;<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Segoe UI Historic",sans-serif">            }<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Segoe UI Historic",sans-serif">            if ( is_method("ACK") ) {<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Segoe UI Historic",sans-serif">                        if ( t_check_trans() ) {<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Segoe UI Historic",sans-serif">                                    route(RELAY);<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Segoe UI Historic",sans-serif">                                    exit;<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Segoe UI Historic",sans-serif">                        } else {<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Segoe UI Historic",sans-serif">                                    exit;<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Segoe UI Historic",sans-serif">                        }<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Segoe UI Historic",sans-serif">            }<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Segoe UI Historic",sans-serif">            sl_send_reply("404","Not here");<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Segoe UI Historic",sans-serif">            exit;<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Segoe UI Historic",sans-serif">}<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Segoe UI Historic",sans-serif"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Segoe UI Historic",sans-serif">route[NATMANAGE] {<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Segoe UI Historic",sans-serif">        if(isflagset(FLT_PBX)) {<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Segoe UI Historic",sans-serif">            handle_ruri_alias();<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Segoe UI Historic",sans-serif">    }<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Segoe UI Historic",sans-serif">    if(!isflagset(FLT_PBX)) {<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Segoe UI Historic",sans-serif">        set_contact_alias();<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Segoe UI Historic",sans-serif">    }       return;<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Segoe UI Historic",sans-serif">}<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Segoe UI Historic",sans-serif"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Segoe UI Historic",sans-serif">route[DLGURI] {<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Segoe UI Historic",sans-serif">            if(!isdsturiset()) {<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Segoe UI Historic",sans-serif">                        handle_ruri_alias();<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Segoe UI Historic",sans-serif">            }<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Segoe UI Historic",sans-serif">            return;<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Segoe UI Historic",sans-serif">}<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Segoe UI Historic",sans-serif"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Segoe UI Historic",sans-serif">branch_route[MANAGE_BRANCH] {<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Segoe UI Historic",sans-serif">            route(NATMANAGE);<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Segoe UI Historic",sans-serif">}<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Segoe UI Historic",sans-serif"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Segoe UI Historic",sans-serif">onreply_route[MANAGE_REPLY] {<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Segoe UI Historic",sans-serif">            if(status=~"[12][0-9][0-9]") {<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Segoe UI Historic",sans-serif">                        route(NATMANAGE);<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Segoe UI Historic",sans-serif">            }<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Segoe UI Historic",sans-serif">}<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Segoe UI Historic",sans-serif">failure_route[MANAGE_FAILURE] {<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Segoe UI Historic",sans-serif">            route(NATMANAGE);<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Segoe UI Historic",sans-serif"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Segoe UI Historic",sans-serif">            if (t_is_canceled()) exit;<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Segoe UI Historic",sans-serif"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Segoe UI Historic",sans-serif"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="font-size:11pt">-dan<u></u><u></u></span></p>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
</div>

_______________________________________________<br>
Kamailio (SER) - Users Mailing List<br>
<a href="mailto:sr-users@lists.kamailio.org" target="_blank">sr-users@lists.kamailio.org</a><br>
<a href="https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users" rel="noreferrer" target="_blank">https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users</a><br>
</blockquote></div>