Hello List.

I’m having a weird behavior with the LCR module.

I have a particular prefix routed as follows (according to the LCR tables) :

 

mysql> select * from lcr where prefix=0251;

+-----+--------+----------+--------+----------+

| id  | prefix | from_uri | grp_id | priority |

+-----+--------+----------+--------+----------+

|  89 | 1351   |          |     51 |        1 |

| 127 | 1351   |          |     43 |        2 |

+-----+--------+----------+--------+----------+

 

The gw’s group are as follows :

 

mysql> select * from gw where grp_id=51;              

+-----+----------------+--------+---------------+----------+------+------------+-----------+-------+------+--------+------+-------+

| id  | gw_name        | grp_id | ip_addr       | hostname | port | uri_scheme | transport | strip | tag  | weight | ping | flags |

+-----+----------------+--------+---------------+----------+------+------------+-----------+-------+------+--------+------+-------+

| 100 | GW1.TERMN1     |     51 | XX.XXX.XXX.16 |          | 5060 |          1 |         1 |     4 | 1351 |     25 |    1 |     0 |

| 101 | GW2.TERMN1     |     51 | XX.XXX.XXX.13 |          | 5060 |          1 |         1 |     4 | 1351 |     25 |    1 |     0 |

| 102 | GW3.TERMN1     |     51 | XX.XXX.XXX.32 |          | 5060 |          1 |         1 |     4 | 1351 |     25 |    1 |     0 |

| 103 | GW4.TERMN1     |     51 | XX.XXX.XXX.35 |          | 5060 |          1 |         1 |     4 | 1351 |     25 |    1 |     0 |

+-----+----------------+--------+---------------+----------+------+------------+-----------+-------+------+--------+------+-------+

4 rows in set (0.00 sec)

 

mysql>

mysql> select * from gw where grp_id=43;

+----+------------------+--------+---------------+----------+------+------------+-----------+-------+------+--------+------+-------+

| id | gw_name          | grp_id | ip_addr       | hostname | port | uri_scheme | transport | strip | tag  | weight | ping | flags |

+----+------------------+--------+---------------+----------+------+------------+-----------+-------+------+--------+------+-------+

| 76 | GW1.TERMN222     |     43 | XX.XXX.XXX.16 |          | 5060 |          1 |         1 |     4 | 1343 |     25 |    1 |     0 |

| 77 | GW2.TERMN222     |     43 | XX.XXX.XXX.13 |          | 5060 |          1 |         1 |     4 | 1343 |     25 |    1 |     0 |

| 78 | GW3.TERMN222     |     43 | XX.XXX.XXX.32 |          | 5060 |          1 |         1 |     4 | 1343 |     25 |    1 |     0 |

| 79 | GW4.TERMN222     |     43 | XX.XXX.XXX.35 |          | 5060 |          1 |         1 |     4 | 1343 |     25 |    1 |     0 |

+----+------------------+--------+---------------+----------+------+------------+-----------+-------+------+--------+------+-------+

4 rows in set (0.00 sec)

 

 

So, when a call with prefix 1351 arrived at the proxy, the LCR module is changing the RURI for 1343 (matching the 2nd priority for that prefix).

This keep happening even if change the priority value 2 for priority value 5.  I even changed the priority 1 for priority 0 as follows :

 

+-----+--------+----------+--------+----------+

| id  | prefix | from_uri | grp_id | priority |

+-----+--------+----------+--------+----------+

|  89 | 1351   |          |     51 |        0 |

| 127 | 1351   |          |     43 |        1 |

+-----+--------+----------+--------+----------+

 

But the LCR module keep using the “second” priority.

After doing some tests I’ve found two ways to use the “first” priority for the prefix. 

1.- Removing the second priority

2.- Re-ordering the “id” column and using correlative values as indicated in the next table :

 

 

mysql> select * from lcr where prefix=0251 order by id;

+-----+--------+----------+--------+----------+

| id  | prefix | from_uri | grp_id | priority |

+-----+--------+----------+--------+----------+

| 127 | 1351   |          |     51 |        1 |

| 128 | 1351   |          |     43 |        2 |

+-----+--------+----------+--------+----------+

 

So, when the prefix are with “no correlatives” values in the “id” column seems to be a problem to match the first priority.  But when the values are correlative there is no problem.

Is this the correct behavior?  Maybe I’m missing something?

What happens for example if I need to add a third priority to a certain prefix after doing several changes in the LCR table?  I need to re-order every time the “id” values to make them correlatives?

 

 

I really hope that someone could give me a hand here.

 

Ricardo Martinez.-