<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css" style="display:none;"><!-- P {margin-top:0;margin-bottom:0;} --></style>
</head>
<body dir="ltr">
<div id="divtagdefaultwrapper" style="font-size:12pt;color:#000000;background-color:#FFFFFF;font-family:Calibri,Arial,Helvetica,sans-serif;">
<p>Hi.</p>
<p><br>
</p>
<p>Thank you for the hint.</p>
<p>I think that search_body will search a string in SDP body. In this case, for the first INVITE, SDP doesn't have information about the callee. So, maybe I have to use a way of checking the register of the callee (table location) and see if the contact and
 received columns give me some information.</p>
<p><br>
</p>
<p>Any idea?</p>
<p><br>
</p>
<p>Best regards.<br>
</p>
<p><br>
</p>
<div id="Signature">
<div name="divtagdefaultwrapper" style="font-family:Calibri,Arial,Helvetica,sans-serif; font-size:; margin:0">
<div class="BodyFragment"><font size="2">
<div class="PlainText">RODRIGO PIMENTA CARVALHO<br>
Inatel Competence Center<br>
Software<br>
Ph: &#43;55 35 3471 9200 RAMAL 979<br>
</div>
</font></div>
</div>
</div>
<br>
<br>
<div style="color: rgb(0, 0, 0);">
<hr tabindex="-1" style="display:inline-block; width:98%">
<div id="divRplyFwdMsg" dir="ltr"><font style="font-size:11pt" color="#000000" face="Calibri, sans-serif"><b>De:</b> users-bounces@lists.opensips.org &lt;users-bounces@lists.opensips.org&gt; em nome de Dragomir Haralambiev &lt;goup2010@gmail.com&gt;<br>
<b>Enviado:</b> sexta-feira, 4 de março de 2016 15:24<br>
<b>Para:</b> OpenSIPS users mailling list<br>
<b>Assunto:</b> Re: [OpenSIPS-Users] How to know whether callee is behind a NAT?</font>
<div>&nbsp;</div>
</div>
<div>
<div dir="ltr">Here is simple way to check NAT devices:<br>
<div><span class="" style="white-space:pre"></span>if ( search_body('IN IP4 10.') )<span class="" style="white-space:pre">
</span>{ setflag(NAT); }</div>
<div><span class="" style="white-space:pre"></span>if ( search_body(&quot;IN IP4 192.168.&quot;) )<span style="white-space:pre">&nbsp;</span>{ setflag(NAT); }</div>
<div><span class="" style="white-space:pre"></span>if ( search_body(&quot;IN IP4 172.16.&quot;) )<span class="" style="white-space:pre">
</span>{ setflag(NAT); }</div>
</div>
<div class="gmail_extra"><br>
<div class="gmail_quote">2016-03-04 19:31 GMT&#43;02:00 Rodrigo Pimenta Carvalho <span dir="ltr">
&lt;<a href="mailto:pimenta@inatel.br" target="_blank">pimenta@inatel.br</a>&gt;</span>:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex; border-left:1px #ccc solid; padding-left:1ex">
<div dir="ltr">
<div style="font-size:12pt; color:#000000; background-color:#ffffff; font-family:Calibri,Arial,Helvetica,sans-serif">
<p>Hi.</p>
<p><br>
</p>
<p>Nowadays I'm having problems to take right control of SIP messages, in a situation with user agents present in the LAN and WAN (some of them are behind NAT, to the point of view of OpenSIPS).</p>
<p>To control everything, I'm using local domain and public domain registered in the Domain table. In addiction I intend to implement the following algorithm:</p>
<p><br>
</p>
<br>
<p>If message == SIP INVITE </p>
<p>{</p>
<p><span>&nbsp;&nbsp;&nbsp;&nbsp;</span>//Tries to guess if client's request originated behind a nat. The parameter determines what heuristics is used</p>
<p><span>&nbsp;&nbsp;&nbsp; </span>// <span><em>2</em></span> - the &quot;received&quot; test is used: address in Via is compared against source IP address of signaling .</p>
<p><span>&nbsp;&nbsp;&nbsp; </span>// <span><em>32</em></span> - address in Contact is compared against source IP address of signaling.<br>
</p>
<p><span>&nbsp;&nbsp;&nbsp; </span>If ( ! nat_uac_test(2 &#43; 32))</p>
<p><span>&nbsp;&nbsp;&nbsp; </span>{</p>
<p><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span>&nbsp;&nbsp;&nbsp; </span>//caller is in local network</p>
<p><br>
</p>
<p><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span>&nbsp;&nbsp;&nbsp; <span style="color:rgb(0,111,201)">If callee is behind a NAT from the point of view of opensips</span></span></p>
<p><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span>&nbsp;&nbsp;&nbsp; </span>{</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; avp_db_query(&quot;select domain from domain where attrs = public&quot;, &quot;$avp(DOMAIN)&quot;);<br>
</p>
<p><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span>&nbsp;&nbsp;&nbsp; </span>set_advertised_address (&quot;$avp(DOMAIN));<br>
</p>
<p><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span>&nbsp;&nbsp;&nbsp; </span>}</p>
<p><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span>&nbsp;&nbsp;&nbsp; </span>else</p>
<p><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span>&nbsp;&nbsp;&nbsp; </span>{</p>
<p><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span>&nbsp;&nbsp;&nbsp;&nbsp;avp_db_query(&quot;select domain from domain where attrs = local&quot;, &quot;$avp(DOMAIN)&quot;);<br>
<span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span>&nbsp;&nbsp;&nbsp; </span>set_advertised_address (&quot;$avp(DOMAIN));</span><br>
</p>
<p><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span>&nbsp;&nbsp;&nbsp; </span>}<br>
</p>
<p><span>&nbsp;&nbsp;&nbsp; </span>}</p>
<p><span>&nbsp;&nbsp;&nbsp; </span>else</p>
<p><span>&nbsp;&nbsp;&nbsp; </span>{</p>
<p><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span>&nbsp;&nbsp;&nbsp;&nbsp;avp_db_query(&quot;select domain from domain where attrs = public&quot;, &quot;$avp(DOMAIN)&quot;);<br>
<span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span>&nbsp;&nbsp;&nbsp; </span><span></span>set_advertised_address (&quot;$avp(DOMAIN));</span><br>
</p>
<p><span>&nbsp;&nbsp;&nbsp; </span>}<br>
</p>
<p>}</p>
<br>
<p>However, how can I know whether the callee is not in the same network area as the caller, so the callee is behind a NAT?</p>
<p><br>
</p>
<p>Any hint will be very helpful!<span class="HOEnZb"><font color="#888888"><br>
</font></span></p>
<span class="HOEnZb"><font color="#888888">
<p><br>
</p>
<div>
<div name="divtagdefaultwrapper">
<div><font size="2">
<div>RODRIGO PIMENTA CARVALHO<br>
Inatel Competence Center<br>
Software<br>
Ph: <a href="tel:%2B55%2035%203471%209200" value="&#43;553534719200" target="_blank">
&#43;55 35 3471 9200</a> RAMAL 979<br>
</div>
</font></div>
</div>
</div>
</font></span></div>
</div>
<br>
_______________________________________________<br>
Users mailing list<br>
<a href="mailto:Users@lists.opensips.org">Users@lists.opensips.org</a><br>
<a href="http://lists.opensips.org/cgi-bin/mailman/listinfo/users" rel="noreferrer" target="_blank">http://lists.opensips.org/cgi-bin/mailman/listinfo/users</a><br>
<br>
</blockquote>
</div>
<br>
</div>
</div>
</div>
</div>
</body>
</html>