<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body dir="auto">
It does but doesn't work as well as kamailio, and since the proxy is the entry point.
<div><br>
</div>
<div>The biggest issue here isnt the keepalive, as I did have that working. The main issue is the routing of messages, utilizing set_contact_alias and handle_ruri_alias, as Ive been unable to get ack and bye messages to make it past the proxy. I’m assuming
these functions are not being used at the right locations or I need to rely on another mechanism to accomplish it. I also question my use of the PBX flag and the natmanage logic. </div>
<div><br>
</div>
<div>-dan<br>
<div>
<div><br>
</div>
<div>On Mar 31, 2020, at 7:01 PM, Sergiu Pojoga <pojogas@gmail.com> wrote:<br>
<div dir="ltr">
<blockquote type="cite"><br>
</blockquote>
</div>
<blockquote type="cite">
<div dir="ltr">
<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>
<span>_______________________________________________</span><br>
<span>Kamailio (SER) - Users Mailing List</span><br>
<span>sr-users@lists.kamailio.org</span><br>
<span>https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users</span><br>
</div>
</blockquote>
</div>
</div>
</div>
</body>
</html>