[OpenSIPS-Users] ipv6 address check

Pasan Meemaduma pasandev at ymail.com
Fri Apr 6 04:39:08 EDT 2018


Yup, I had a similar issue when I wanted to compare ip in Via header against source ip at the script level, and If I just compare them, its a string comparison and fails blatantly.
But ip transformation functions came handy :) I used used them to compare them without any hassle. 
Ex: previously I had this check for comparing Via ip and source ip as below,

 if ($avp(vip) == $(si{s.escape.common}) ) {

But ip transformation functions saved the day ! as follow,

  if ($(avp(vip){ip.pton}) == $(si{s.escape.common}{ip.pton}) ) {


I also checked there's no built in function to compare two ips other than above method but didn't found.


Hope to see a fix for the function in question, and Thanks again for your valued time.
 

    On Friday, April 6, 2018, 1:51:20 PM GMT+5:30, Bogdan-Andrei Iancu <bogdan at opensips.org> wrote:  
 
  Hi Pasan,
 
 Thanks for the info. It is exactly what I suspected - the check between the IP extracted from contact / received field and the provided IP is done as strings and the enclosing of IPv6 makes the comp to fail. I guess this needs to be rework to do ip comp, not string comp.
 
 Best regards,
  Bogdan-Andrei Iancu

OpenSIPS Founder and Developer
  http://www.opensips-solutions.com
OpenSIPS Summit 2018
  http://www.opensips.org/events/Summit-2018Amsterdam
 On 04/06/2018 05:20 AM, Pasan Meemaduma wrote:
  
  Hi Bogdan, 
  I have sent the requested details in pm. 
  Thank you.
  
     On Thursday, April 5, 2018, 5:33:50 PM GMT+5:30, Bogdan-Andrei Iancu <bogdan at opensips.org> wrote:  
  
     Pasan,
 
 Please print via xlog the $si just before doing the is_ip_registered() check. Also, do an "opensipsctl ul show" after the registration and before the test call. I want to see the values that are internally compared.
 
 Thanks,
  Bogdan-Andrei Iancu

OpenSIPS Founder and Developer
  http://www.opensips-solutions.com
OpenSIPS Summit 2018
  http://www.opensips.org/events/Summit-2018Amsterdam
  On 04/05/2018 01:31 PM, Pasan Meemaduma wrote:
  
  Hi Bogdan, 
  I have log_level set at 9. I get no output just the xlog line that is right after is_ip_registered func. When the account is not registered (aor is not in ul) I get below, 
  DBG:registrar:is_ip_registered: no contact found for aor=<0xx0x0x0xx>
  
  
  I'm stuck at why it doesn't give any debug message and simply return -1. 
     On Thursday, April 5, 2018, 3:30:06 PM GMT+5:30, Bogdan-Andrei Iancu <bogdan at opensips.org> wrote:  
  
     Hi Pasan,
 
 The fix_actions log is only at the startup, before opensips actually starts to handle traffic. Not related I would say.
 
 Now, if you run in debug level (set log_level = 4), do you see any output when the is_ip_registered() is triggered ?
 
 Regards,
  Bogdan-Andrei Iancu

OpenSIPS Founder and Developer
  http://www.opensips-solutions.com
OpenSIPS Summit 2018
  http://www.opensips.org/events/Summit-2018Amsterdam
  On 04/05/2018 12:30 PM, Pasan Meemaduma via Users wrote:
  
  Hi Guys, 
  Sorry I had to come back to this thread as the issue i reported was for a different  function and problem with is_ip_registered func still exists. on Further investigating I found below
  
    
DBG:core:fix_actions: fixing is_ip_registered, /etc/opensips/opensips.cfg:970
 
and following is whats at line 970 in my config
 $var(aor) = "sip:" + $(au{s.escape.common}) + "@"  + $(fd{s.escape.common});
if(is_ip_registered("location","$var(aor)","$si")){
 xlog("L_INFO","Call: Auth INVITE - From=$fU from_uri=$fu Auth_user=$au Request=$rU IP=$si AOR=$var(aor) ID=$ci");
 } else {
 xlog("L_WARN","Call: Auth INVITE from Unregistered IP  - From=$fU from_uri=$fu Auth_user=$au Request=$rU IP=$si Via=$avp(vip)  AOR=$var(aor) ID=$ci");
 sl_send_reply("401", "Unauthorized");
 exit;
 }
 Am I using the function in a wrong way ? whats the  fix_actions do to the function call ?
 And when I make a test call I can't see is_ip_registered  func getting call in debug log. It only prints my debug line which is "Call: Auth INVITE from Unregistered IP -"
 
  
  
     On Wednesday, April 4, 2018, 4:15:11 PM GMT+5:30, Pasan Meemaduma <pasandev at ymail.com> wrote:  
  
      Thanks Liviu, I have submitted a bug request
  
  
      On Wednesday, April 4, 2018,  4:07:45 PM GMT+5:30, Liviu Chircu <liviu at opensips.org> wrote:  
  
     
Hi Pasan,
 
Yes, if you could move it over to  GitHub [1], that would be great. Thanks!
 
 
[1]: https://github.com/OpenSIPS/opensips/issues
 
 Liviu Chircu
OpenSIPS Developer
http://www.opensips-solutions.com  On 04.04.2018 13:29, Pasan  Meemaduma via Users wrote:
  
  Hi Guys, 
  Should I open up a bug request for  this ?
  
  
     On Tuesday, April 3, 2018,  2:33:34 PM GMT+5:30, Pasan  Meemaduma via Users <users at lists.opensips.org> wrote:  
  
      Hi Guys, 
  I'm testing ipv6 on opensips  2.3. and I'm using the following  script function to  findout if the requesting ip is already  registered with that ip. But the function is failing with  following error message. 
  script function call is_ip_registered("location","$var(aor)","$si")); 
 
  error message from logs.
  
  ERROR:permissions:check_addr_6: invalid ip set<24xx:xxx:0:1:x000:0:0:2> 
  There's an AOR already with that IP 
  0 [ 3/04 18:53:29]root@:/root>> opensipsctl ul show
 Domain:: location  table=512 records=1
         AOR:: 0xxxx
                Contact:: sip: 0xxxx@[24xx:xxx:0:1:x000::2];line=180c0d2da1b3e81 Q=
                        ContactID:: 3275524303981917232
                        Expires:: 3495
                        Callid:: 490179714
                        Cseq:: 2
                        User-agent:: Linphone/3.6.1 (eXosip2/4.1.0)
                        Received:: sip:[2400:xxx:0:1:x000:0:0:2]:5060
                        State:: CS_SYNC
                        Flags:: 0
                        Cflags:: PING NAT
                        Socket:: udp:[24xx:xx0:1D:F0:0:0:1:88]:5060
                        Methods:: 4294967295
 
  It appears to be failing at /modules/permissions/address.c line 517 . looks like str2ip in line 515 doesn't return  a valid ip.
    _______________________________________________
 Users mailing list
 Users at lists.opensips.org
 http://lists.opensips.org/cgi-bin/mailman/listinfo/users
     
  
 _______________________________________________
Users mailing list
Users at lists.opensips.org
http://lists.opensips.org/cgi-bin/mailman/listinfo/users
 
  
   _______________________________________________
 Users mailing list
 Users at lists.opensips.org
 http://lists.opensips.org/cgi-bin/mailman/listinfo/users
             
  
 _______________________________________________
Users mailing list
Users at lists.opensips.org
http://lists.opensips.org/cgi-bin/mailman/listinfo/users
 
  
       
  
       
 
   
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.opensips.org/pipermail/users/attachments/20180406/0306efad/attachment-0001.html>


More information about the Users mailing list