Yes. I hadn’t thought about using shared variables. That would be a good way to 
go as well.

Ben Newlin

From: 
<[email protected]<mailto:[email protected]>> on 
behalf of Stefan Tobé 
<[email protected]<mailto:[email protected]>>
Reply-To: OpenSIPS users mailling list 
<[email protected]<mailto:[email protected]>>
Date: Thursday, April 28, 2016 at 11:33 AM
To: OpenSIPS users mailling list 
<[email protected]<mailto:[email protected]>>
Subject: Re: [OpenSIPS-Users] opensips 2.1.2 not accepting transformation in if 
statement and t_relay()

Thanks Ben,
so it is either

  1.  using shared variable ($shv(name)) which is globally available (and 
adaptable using MI...)     OR
  2.  re-initialize variable $var(xyz) every time in (main) route {} loop with 
these dashboard values?

Stefan


On Thu, Apr 28, 2016 at 3:10 PM, Newlin, Ben 
<[email protected]<mailto:[email protected]>> wrote:
Stefan,

$var type variable have process-level scope [1]. This means they are only valid 
in the same script process that initialized them. It is very likely in your 
case that the startup_route is running in a different child process than the 
message processing routes and that is causing the problem. You can add some 
xlog statements to check the values of the variables before using them. Xlog 
will print the process ID as part of the output as well so you can verify that. 
You can also try running OpenSIPS in foreground mode with the –F flag. This 
will cause it to run with only one process.

If you need multiple processes you cannot use $var for this. I would suggest 
looking into the local caching functionality instead [2].

[1] http://www.opensips.org/Documentation/Script-CoreVar-1-11
[2] http://www.opensips.org/Documentation/Script-CoreFunctions-1-11#toc3

Ben Newlin

From: 
<[email protected]<mailto:[email protected]>> on 
behalf of Stefan Tobé <[email protected]<mailto:[email protected]>>
Reply-To: OpenSIPS users mailling list 
<[email protected]<mailto:[email protected]>>
Date: Thursday, April 28, 2016 at 8:50 AM
To: "[email protected]<mailto:[email protected]>" 
<[email protected]<mailto:[email protected]>>
Subject: [OpenSIPS-Users] opensips 2.1.2 not accepting transformation in if 
statement and t_relay()

Hi there,
I am trying to sanitize the opensips script by using a script 'dashboard' in 
the beginning of the script (using  startup_route)

I face two problems here (opensips script errors)
problem 1: $var(uriqp) should be the uri-string in order to use that in 
t_relay() which is rejected
problem 2: completing IF statement where src_ip should be compared to 
transformed (to binary) ip address  and source port is both rejected

Can somebody explain

  1.  what the correct uri string for use in t_relay() would need to be ? (just 
entering t_relay("udp:10.130.2.4:5060<http://10.130.2.4:5060>") works fine)
  2.  what the correct way of transformation I need to use in order to have 
this IF statement accepted?

thanks

Stefan Tobé



####### Routing Logic ########
startup_route {
    ####### Local Parameters / Dashboard #########
        $var(qpip)=   "10.130.2.4";
        $var(qpprt)=  "5090";
#         $var(qpprt)=  5090;

    $var(uriqp)=  "udp:"+$var(qpip)+":"+$var(qpprt);


}


route{

if (src_ip == $(var(qpip){ip.pton}) && src_port == $var(qpprt)) {       (=> 
won't accept regardless whether $var(qpprt)=  "5090" or $var(qpprt)=  5090)
    # code here
    route(sbc);
}
else ....
}

route[qp] {

    if (!t_relay($var(uriqp)) {
        send_reply("500","Internal Error");
    }
    exit;
}

--
mvg
Stefan Tobé


_______________________________________________
Users mailing list
[email protected]<mailto:[email protected]>
http://lists.opensips.org/cgi-bin/mailman/listinfo/users




--
mvg
Stefan Tobé


Private Mobility Nederland B.V.
Bolderweg 2
1332 AT Almere
tel: 06 21 26 59 68
email: [email protected]<mailto:[email protected]>
internet: www.privatemobility.nl<http://www.privatemobility.nl>

_______________________________________________
Users mailing list
[email protected]
http://lists.opensips.org/cgi-bin/mailman/listinfo/users

Reply via email to