<div dir="ltr">That's what I did.  I commented out the whole onreply_route[WS_REPLY] and moved the if statement inside the route block.  when I restarted, no errors.  This onreply_route block is a direct copy and paste from the wiki page.</div><br><div class="gmail_quote"><div dir="ltr">On Fri, Jan 4, 2019 at 5:05 PM Henning Westerholt <<a href="mailto:hw@kamailio.org" target="_blank">hw@kamailio.org</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">Am Freitag, 4. Januar 2019, 01:28:23 CET schrieb Andrew Chen:<br>
> Yup.  The default configuaration already have the nathelper.so loaded.<br>
> Plus, there are other places in the config where nat_uac_test was called<br>
> but never error out.<br>
<br>
Hi Andrew,<br>
<br>
sounds strange. I would suggest to minimize the configuration step by step to <br>
find out the issue. Maybe it is some other error nearby that confuses the cfg <br>
parser (just guessing).<br>
<br>
Best regards,<br>
<br>
Henning<br>
<br>
> On Thu, Jan 3, 2019 at 5:39 PM Sergey Okhapkin <<a href="mailto:sos@sokhapkin.dyndns.org" target="_blank">sos@sokhapkin.dyndns.org</a>><br>
> <br>
> wrote:<br>
> > Did you load the module?<br>
> > <br>
> > On Thursday, January 3, 2019 5:27:12 PM EST Andrew Chen wrote:<br>
> > <br>
> > Hey it's me again.<br>
> > <br>
> > <br>
> > So I'm following the instructions in the Kamailio 5.1.x wiki module page<br>
> > for websocket configuration and it specifically mention to set this block:<br>
> > <br>
> > <br>
> > onreply_route[WS_REPLY] {<br>
> > <br>
> >         xlog("L_INFO", "[CSeq $cs] Is in WS_REPLY.");<br>
> >         <br>
> >         xlog("L_INFO", "[CSeq $cs] Sending $rs $rr to $sel(via[2].host)<br>
> > <br>
> > via $sel(via[2].transport) len: $ml");<br>
> > <br>
> >         xlog("L_INFO", "[CSeq $cs] \n$mb \n");<br>
> >         <br>
> >         <br>
> >         if(nat_uac_test("64")) {<br>
> >         <br>
> >                 # Do NAT traversal stuff for replies to a WebSocket<br>
> > <br>
> > connection<br>
> > <br>
> >                 # - even if it is not behind a NAT!<br>
> >                 <br>
> >                 # This won't be needed in the future if Kamailio and the<br>
> >                 <br>
> >                 # WebSocket client support Outbound and Path.<br>
> >                 <br>
> >                 add_contact_alias();<br>
> >         <br>
> >         }<br>
> > <br>
> > }<br>
> > <br>
> > <br>
> > When I did this and started up Kamailio, it gave me an error:<br>
> > <br>
> > <br>
> > Jan  3 22:19:43 sjomainkama55 kamailio: ERROR: <core> [core/cfg.y:3309]:<br>
> > yyparse(): cfg. parser: failed to find command nat_uac_test (params 1)<br>
> > <br>
> > <br>
> > I moved that if statement to a route block and I was able to start it up.<br>
> > <br>
> > <br>
> > The wiki page for nathelper module specify this function can be run in<br>
> > onreply_route as well:<br>
> > <br>
> > <br>
> > <br>
> > 5.5.  nat_uac_test(flags)<br>
> > <br>
> > Tries to guess if client's request originated behind a nat. The parameter<br>
> > determines what heuristics is used.<br>
> > <br>
> > Meaning of the flags is as follows:<br>
> >    - 1 - The “Contact” header field is searched for occurrence of RFC1918<br>
> >    or RFC6598 addresses.<br>
> >    - 2 - the "received" test is used: address in the “Via” header is<br>
> >    compared against source IP address of signaling<br>
> >    - 4 - The Top Most “Via” is searched for occurrence of RFC1918 or<br>
> >    RFC6598 addresses<br>
> >    - 8 - The SDP is searched for occurrence of RFC1918 or RFC6598<br>
> >    addresses<br>
> >    - 16 - Test if the source port is different from the port in<br>
> >    the “Via” header<br>
> >    - 32 - Test if the source IP address of signaling is a RFC1918 or<br>
> >    RFC6598 address<br>
> >    - 64 - Test if the source connection of signaling is a WebSocket<br>
> >    - 128 - Test if the “Contact” header URI port differs from the source<br>
> >    port of the request (Warning: this is might be legal or even intended<br>
> >    combination in non NATted scenarios)<br>
> > <br>
> > All flags can be bitwise combined, the test returns true if any of the<br>
> > tests identified a NAT.<br>
> > <br>
> > This function can be used from REQUEST_ROUTE, ONREPLY_ROUTE,<br>
> > FAILURE_ROUTE, BRANCH_ROUTE.<br>
> > <br>
> > <br>
> > is this some known bug in 5.1.x?<br>
> > <br>
> > Thanks<br>
> > <br>
> > <br>
> > --<br>
> > <br>
> > Andy Chen<br>
> > <br>
> > achen@ <<a href="mailto:achen@thinkingphones.com" target="_blank">achen@thinkingphones.com</a>><a href="http://fuze.com" rel="noreferrer" target="_blank">fuze.com</a><br>
<br>
<br>
-- <br>
Henning Westerholt - <a href="https://skalatan.de/blog/" rel="noreferrer" target="_blank">https://skalatan.de/blog/</a><br>
Kamailio services - <a href="https://skalatan.de/services" rel="noreferrer" target="_blank">https://skalatan.de/services</a><br>
Kamailio security assessment - <a href="https://skalatan.de/de/assessment" rel="noreferrer" target="_blank">https://skalatan.de/de/assessment</a><br>
</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr" class="gmail-m_4780630984114690546gmail_signature"><div dir="ltr"><div><div dir="ltr"><div dir="ltr" style="font-size:12.8px">Andy Chen</div><div dir="ltr" style="font-size:12.8px"><div>Sr. Telephony Lead Engineer</div><div>415 516 5535 (M)</div><div><a href="mailto:achen@thinkingphones.com" target="_blank">achen@</a><a href="http://fuze.com" target="_blank">fuze.com</a></div><div><br></div></div></div></div></div></div>

<br>
<span style="color:rgb(51,51,51);font-family:Arial,sans-serif;font-size:14px;background-color:rgb(255,255,255)">*Confidentiality Notice: The information contained in this e-mail and any</span><br style="color:rgb(51,51,51);font-family:Arial,sans-serif;font-size:14px;background-color:rgb(255,255,255)"><span style="color:rgb(51,51,51);font-family:Arial,sans-serif;font-size:14px;background-color:rgb(255,255,255)">attachments may be confidential. If you are not an intended recipient, you</span><br style="color:rgb(51,51,51);font-family:Arial,sans-serif;font-size:14px;background-color:rgb(255,255,255)"><span style="color:rgb(51,51,51);font-family:Arial,sans-serif;font-size:14px;background-color:rgb(255,255,255)">are hereby notified that any dissemination, distribution or copying of this</span><br style="color:rgb(51,51,51);font-family:Arial,sans-serif;font-size:14px;background-color:rgb(255,255,255)"><span style="color:rgb(51,51,51);font-family:Arial,sans-serif;font-size:14px;background-color:rgb(255,255,255)">e-mail is strictly prohibited. If you have received this e-mail in error,</span><br style="color:rgb(51,51,51);font-family:Arial,sans-serif;font-size:14px;background-color:rgb(255,255,255)"><span style="color:rgb(51,51,51);font-family:Arial,sans-serif;font-size:14px;background-color:rgb(255,255,255)">please notify the sender and permanently delete the e-mail and any</span><br style="color:rgb(51,51,51);font-family:Arial,sans-serif;font-size:14px;background-color:rgb(255,255,255)"><span style="color:rgb(51,51,51);font-family:Arial,sans-serif;font-size:14px;background-color:rgb(255,255,255)">attachments immediately. You should not retain, copy or use this e-mail or</span><br style="color:rgb(51,51,51);font-family:Arial,sans-serif;font-size:14px;background-color:rgb(255,255,255)"><span style="color:rgb(51,51,51);font-family:Arial,sans-serif;font-size:14px;background-color:rgb(255,255,255)">any attachment for any purpose, nor disclose all or any part of the</span><br style="color:rgb(51,51,51);font-family:Arial,sans-serif;font-size:14px;background-color:rgb(255,255,255)"><span style="color:rgb(51,51,51);font-family:Arial,sans-serif;font-size:14px;background-color:rgb(255,255,255)">contents to any other person. Thank you.*</span>