[OpenSIPS-Users] Possible Drouting bug
Bogdan-Andrei Iancu
bogdan at opensips.org
Wed Apr 5 11:48:43 EDT 2017
Hi John,
I tried to reproduce your report, but no luck.
This is the script I used :
if ($rU=~"^1") {
$avp(gw_whitelist) = "one,two,three";
xlog ("Start routing\n");
if ( !do_routing("1","WF","$avp(gw_whitelist)" ,
"$avp(rules_attributes)","$avp(gw_attributes)")) {
xlog ("nothing found\n");
send_reply("404", "Not found");
exit;
}
xlog ("success first $rd, R_attr=$avp(rules_attributes),
G_attr=$avp(gw_attributes)\n");
while (
use_next_gw("$avp(rules_attributes)","$avp(gw_attributes)") ){
xlog ("success next $rd, R_attr=$avp(rules_attributes),
G_attr=$avp(gw_attributes)\n");
}
xlog ("done\n");
send_reply("404", "Not found");
exit;
}
This generates:
Apr 5 18:41:28 [14657] Start routing
Apr 5 18:41:28 [14657] success init 10.0.0.102, R_attr=rule_124, G_attr=two
Apr 5 18:41:28 [14657] success next 10.0.0.101, R_attr=rule_124, G_attr=one
Apr 5 18:41:28 [14657] success next 10.0.0.103, R_attr=rule_12,
G_attr=three
Apr 5 18:41:28 [14657] done
The DB looks like:
mysql> select * from dr_gateways;
+----+-------+------+------------------+-------+------------+-------+------------+-------+--------+-------------+
| id | gwid | type | address | strip | pri_prefix | attrs |
probe_mode | state | socket | description |
+----+-------+------+------------------+-------+------------+-------+------------+-------+--------+-------------+
| 1 | one | 0 | sip:10.0.0.101 | 0 | NULL | one
| 0 | 0 | NULL | NULL |
| 2 | two | 0 | sip:10.0.0.102 | 0 | NULL | two
| 0 | 0 | NULL | NULL |
| 3 | three | 0 | sip:10.0.0.103 | 0 | NULL | three
| 0 | 0 | NULL | NULL |
+----+-------+------+------------------+-------+------------+-------+------------+-------+--------+-------------+
3 rows in set (0.01 sec)
mysql> select * from dr_rules;
+--------+---------+--------+---------+----------+---------+-------------+----------+-------------+
| ruleid | groupid | prefix | timerec | priority | routeid | gwlist
| attrs | description |
+--------+---------+--------+---------+----------+---------+-------------+----------+-------------+
| 1 | 1 | 12 | NULL | 0 | NULL | three=1
| rule_12 | NULL |
| 2 | 1 | 124 | NULL | 0 | NULL | one=1,two=1
| rule_124 | NULL |
+--------+---------+--------+---------+----------+---------+-------------+----------+-------------+
2 rows in set (0.00 sec)
Let me know the DB content, the script and output for your case. BTW,
this was tested against OpenSIPS 2.3 version.
Regards,
Bogdan-Andrei Iancu
OpenSIPS Founder and Developer
http://www.opensips-solutions.com
OpenSIPS Summit May 2017 Amsterdam
http://www.opensips.org/events/Summit-2017Amsterdam.html
On 04/04/2017 11:05 PM, John Nash wrote:
> No but I use groups and pass in routing functions.
>
> On Wed, Apr 5, 2017 at 1:31 AM, Bogdan-Andrei Iancu
> <bogdan at opensips.org <mailto:bogdan at opensips.org>> wrote:
>
> John, do you use partitions in DR ?
>
> Regards,
>
> Bogdan-Andrei Iancu
> OpenSIPS Founder and Developer
> http://www.opensips-solutions.com <http://www.opensips-solutions.com>
>
> OpenSIPS Summit May 2017 Amsterdam
> http://www.opensips.org/events/Summit-2017Amsterdam.html
> <http://www.opensips.org/events/Summit-2017Amsterdam.html>
>
> On 04/04/2017 11:00 PM, John Nash wrote:
>> Yes I tried that but still same issue. I call goes_to_gw and
>> after that attributes are filled.
>> On Tue, Mar 28, 2017 at 3:25 PM, Bogdan-Andrei Iancu
>> <bogdan at opensips.org <mailto:bogdan at opensips.org>> wrote:
>>
>> Hello John, Do you use partitions ? Is the use_partition
>> enabled ? If not, the use_next_gw() should be used like:
>> use_next_gw( "$avp(rules_attributes)","$avp(gw_attributes)")
>> (the first param, the partition, is not to be provided) Could
>> you check if this solves the problem ? Best regards,
>>
>> Bogdan-Andrei Iancu
>> OpenSIPS Founder and Developer
>> http://www.opensips-solutions.com
>> <http://www.opensips-solutions.com>
>>
>> OpenSIPS Summit May 2017 Amsterdam
>> http://www.opensips.org/events/Summit-2017Amsterdam.html
>> <http://www.opensips.org/events/Summit-2017Amsterdam.html>
>>
>> On 03/23/2017 09:19 AM, John Nash wrote:
>>> I am using drouting and recently tried to use gateway
>>> attribute. I call ...
>>> do_routing("$avp(int_grp_id)","WF","$avp(gw_whitelist)" ,
>>> "$avp(rules_attributes)","$avp(gw_attributes)"))
>>> After this call I can see $avp(gw_attributes) is populated
>>> frp, attr column of dr_gateways table.
>>> but when i call following ...
>>> use_next_gw(,"$avp(rules_attributes)","$avp(gw_attributes)")
>>> $avp(gw_attributes) becomes empty
>>> If i call next_routing() instead of use_next_gw then
>>> $avp(gw_attributes) retains old value but does not populate
>>> new value
>>>
>>> _______________________________________________
>>> Users mailing list
>>> Users at lists.opensips.org <mailto:Users at lists.opensips.org>
>>> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>>> <http://lists.opensips.org/cgi-bin/mailman/listinfo/users>
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.opensips.org/pipermail/users/attachments/20170405/036cdbf0/attachment.html>
More information about the Users
mailing list