[SR-Users] Sometimes cr_route fails on old kamailio 1.4

mayamatakeshi mayamatakeshi at gmail.com
Wed Oct 9 15:38:25 CEST 2013


Hello, I have to take care of an old server running kamailio 1.4 (I plan to
upgrade to latest, but I cannot do it at the moment).
It uses carrierroute and it works fine.
Now I am testing adding a new carrier and it worked.
However, sometimes I get a failure to resolve a route (using cr_route):
Oct  9 21:29:04 centos53-02121
/usr/local/src/svn/kamailio-1.4/kamailio[3160]:
ERROR:carrierroute:cr_do_route: desired routing domain doesn't exist,
prefix 99900000112233445566778899, carrier 10, domain 0

I can see the cause of the problem is because an element called "id" is
solved differently sometimes when "cr_reload_routes" is issued.
I am using always this same table:


mysql> select * from carrierroute where carrier=10;
+------+---------+--------+-------------+-------+------+------+-------+--------------------+----------------+----------------+-------------+
| id   | carrier | domain | scan_prefix | flags | mask | prob | strip |
rewrite_host       | rewrite_prefix | rewrite_suffix | description |
+------+---------+--------+-------------+-------+------+------+-------+--------------------+----------------+----------------+-------------+
| 4271 |      10 | 0      | 999000      |     0 |    0 |    1 |     6 |
192.168.2.123:5060 |                |                | NULL        |
| 4272 |      10 | 1      | 999000      |     0 |    0 |    1 |     6 |
192.168.2.123:5060 |                |                | NULL        |
+------+---------+--------+-------------+-------+------+------+-------+--------------------+----------------+----------------+-------------+
2 rows in set (0.00 sec)

When cr_route works fine, the reload logged this:
Oct  9 21:31:21 centos53-02121
/usr/local/src/svn/kamailio-1.4/kamailio[7902]:
DBG:carrierroute:get_route_tree_by_id: tree carrier_10, domain 0 : 0
Oct  9 21:31:21 centos53-02121
/usr/local/src/svn/kamailio-1.4/kamailio[7902]:
DBG:carrierroute:get_route_tree_by_id: tree carrier_10, domain 1 : 1

But when it fails, it logged this:
Oct  9 21:29:04 centos53-02121
/usr/local/src/svn/kamailio-1.4/kamailio[3160]:
DBG:carrierroute:get_route_tree_by_id: tree carrier_10, domain 0 : 1
Oct  9 21:29:04 centos53-02121
/usr/local/src/svn/kamailio-1.4/kamailio[3160]:
DBG:carrierroute:get_route_tree_by_id: tree carrier_10, domain 1 : 2

So I understand that the problem is a mismatch between a value that is
produced by kamailio when I ask for a domain (named '0' and '1') and value
of id that probably was computed based on domain at the time the route_tree
was created.
So, I was thinking, maybe domain names '0' and '1' would not be good for
this and I should use some longer names. Well i should not expect a domain
named '0' to always result in an id=0. But I would expect that whatever id
is resolved, it should happen equally for both values being matched that
came from the same base element (supposedly, the domain name).
I will test using longer names anyway, but since this problem doesn't
happen everytime I do cr_reload_routes, I was hoping to get an opinion
about it.

Regards,
Takeshi
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.sip-router.org/pipermail/sr-users/attachments/20131009/854c06fe/attachment.html>


More information about the sr-users mailing list