Dear Sir,

I did 2 calls from the same endpoint to the same number and get 2 different IDs but still forwarding the calls to X.X.X.X as follow:

Call1:

call-id for this call 56549e09d94c1430Jul 30 17:00:32 [10607] DBG:carrierroute:get_route_tree_by_id: searching in carrier default, id 5
Jul 30 17:00:32 [10607] DBG:carrierroute:get_route_tree_by_id: tree default, domain 0 : 0
Jul 30 17:00:32 [10607] DBG:carrierroute:rewrite_on_rule: searching for matching routing rulesJul 30 17:00:32 [10607] DBG:core:hash_func: hash: 1307293616 % -2147483648 = 1307293616
Jul 30 17:00:32 [10607] INFO:carrierroute:cr_do_route: uri 009613089187 was rewritten to sip:001232333333@X.X.X.X

Call2:
call-id for this call 063197524438d55dJul 30 17:02:18 [10605] DBG:carrierroute:get_route_tree_by_id: searching in carrier default, id 5
Jul 30 17:02:18 [10605] DBG:carrierroute:get_route_tree_by_id: tree default, domain 0 : 0
Jul 30 17:02:18 [10605] DBG:carrierroute:rewrite_on_rule: searching for matching routing rulesJul 30 17:02:18 [10605] DBG:core:hash_func: hash: 931879127 % -2147483648 = 931879127
Jul 30 17:02:18 [10605] INFO:carrierroute:cr_do_route: uri 009613089187 was rewritten to sip:001232333333@X.X.X.X

Any suggestions?

Regards




On Thu, Jul 30, 2009 at 5:17 PM, Uriel Rozenbaum <uriel.rozenbaum@gmail.com> wrote:
The random value is based on the Call-ID, use debug=4 and add an XLOG as follows before every call to cr_route:

xlog("L_ERR", "call-id for this call $ci");

Check the call-id is different every time and the CRC32 algorithm to calculate the hash values gives a different answer.


On Thu, Jul 30, 2009 at 9:49 AM, michel freiha <michofr@gmail.com> wrote:
When restarting kamailio I found out that it reads both routes

Jul 30 11:46:40 [9165] INFO:carrierroute:rule_fixup_recursor: hashless rule with host Y.Y.Y.Y hash hash_index 1
Jul 30 11:46:40 [9165] INFO:carrierroute:rule_fixup_recursor: hashless rule with host X.X.X.X hash hash_index 2

I jjst do not know why it's not reading the prob



On Thu, Jul 30, 2009 at 3:39 PM, michel freiha <michofr@gmail.com> wrote:
Dear Sir,

Please find below carrierroute table...
+----+---------+--------+-------------+-------+------+------+-------+--------------+----------------+----------------+-------------+
| id | carrier | domain | scan_prefix | flags | mask | prob | strip | rewrite_host | rewrite_prefix | rewrite_suffix | description |
+----+---------+--------+-------------+-------+------+------+-------+--------------+----------------+----------------+-------------+
|  1 |       5 | 0      | 00          |     0 |    0 |  0.1 |     0 | X.X.X.X |                |                | NULL        |
|  2 |       5 | 0      | 00          |     0 |    0 |  0.9 |     0 | Y.Y.Y.Y |                |                | NULL        |
+----+---------+--------+-------------+-------+------+------+-------+--------------+----------------+----------------+-------------+


on kamailio.conf:

if(!cr_route("default", "0", "$rU", "$rU", "call_id")){

       sl_send_reply("403", "Not allowed");
     } else {
         # In cas of failure, re-route the request
          t_on_failure("1");
          # Relay the request to the gateway
           t_relay();
   }
 

When trying to call 00123456666  the call is forwarded all the time to X.X.X.X IP and never to Y.Y.Y.Y IP...why this happening? It's like Kamailio is not reading prob field

Regards





On Thu, Jul 30, 2009 at 3:13 PM, Uriel Rozenbaum <uriel.rozenbaum@gmail.com> wrote:
I'm really not sure how it works when you use a 0 prob.

Try something like 50/50 and check if the requests go to both servers.

Also, some extract from /var/log/messages will help.


On Thu, Jul 30, 2009 at 4:38 AM, michel freiha <michofr@gmail.com> wrote:
Dear Sir,

My tables are defined as below:

carrierroute table:

id      carrier     domain     scan_prefix     flags     mask    prob    strip    rewrite_host  
19       5               1                 00             0          0          0         0      IP_address1
19       5               1                 00             0          0           1         0     IP_Address1

route_tree table:

id     carrier
5        default

In kamalio.cfg:

if(!cr_route("default", "1", "$rU", "$rU", "call_id")){


The issue is that kamailio is forwarding all calls to IP_Address1 and never to IP_Address2 even if prob is 1 for IP_Address2 and 0 for IP_Address1


Any help please?



On Wed, Jul 29, 2009 at 6:45 PM, Uriel Rozenbaum <uriel.rozenbaum@gmail.com> wrote:
Michel,

The prob field is to set the proportion of a certain entry to be taken when you are load balancing between carriers.

To perform an overflow operation you have to use the domain field.

Check the samples on the module documentation; it's preety clear there; if you have further questions just post them here.

Rgds,
Uriel

On Wed, Jul 29, 2009 at 10:39 AM, michel freiha <michofr@gmail.com> wrote:
Hi all,

I'm using carrierroute module and ie seems that it's not working well...Suppose I have 2 entries in carrierroute table...Entry 1 with scan prefix 00 and prob 0 and a second entry with scan prefix 00 and prob=1...As soon as i make a call, this call will be forwarded to the entry with prob 0 because i guess it appears before the one with prob 1 in the table...

When starting Kamailio I got the below:

Jul 29 12:30:11 [23143] INFO:carrierroute:add_route: adding prefix 1, prob -14931260.000000
Jul 29 12:30:11 [23143] INFO:carrierroute:get_route_tree: domain 0 not found, add it
Jul 29 12:30:11 [23143] INFO:carrierroute:add_route_tree: tree default has 1 trees
Jul 29 12:30:11 [23143] DBG:carrierroute:add_route_tree: tree 0Jul 29 12:30:11 [23143] INFO:carrierroute:get_route_tree: created route tree: 0, with id 0
Jul 29 12:30:11 [23143] INFO:carrierroute:add_route: found route, now adding
Jul 29 12:30:11 [23143] INFO:carrierroute:add_route_rule: no backed up rules
Jul 29 12:30:11 [23143] INFO:carrierroute:add_route: adding prefix , prob -14931260.000000
Jul 29 12:30:11 [23143] INFO:carrierroute:get_route_tree: found domain 0
Jul 29 12:30:11 [23143] INFO:carrierroute:add_route: found route, now adding
Jul 29 12:30:11 [23143] INFO:carrierroute:add_route_rule: no backed up rules
Jul 29 12:30:11 [23143] INFO:carrierroute:add_route: adding prefix 011, prob -14931260.000000
Jul 29 12:30:11 [23143] INFO:carrierroute:get_route_tree: found domain 0
Jul 29 12:30:11 [23143] INFO:carrierroute:add_route: found route, now adding
Jul 29 12:30:11 [23143] INFO:carrierroute:add_route_rule: no backed up rules
Jul 29 12:30:11 [23143] INFO:carrierroute:add_route: adding prefix 00, prob -14931260.000000
Jul 29 12:30:11 [23143] INFO:carrierroute:get_route_tree: found domain 0
Jul 29 12:30:11 [23143] INFO:carrierroute:add_route: found route, now adding
Jul 29 12:30:11 [23143] INFO:carrierroute:add_route_rule: no backed up rules
Jul 29 12:30:11 [23143] INFO:carrierroute:add_route: adding prefix 111, prob -14931260.000000
Jul 29 12:30:11 [23143] INFO:carrierroute:get_route_tree: found domain 0
Jul 29 12:30:11 [23143] INFO:carrierroute:add_route: found route, now adding
Jul 29 12:30:11 [23143] INFO:carrierroute:add_route_rule: no backed up rules
Jul 29 12:30:11 [23143] INFO:carrierroute:add_route: adding prefix 00, prob -14931260.000000
Jul 29 12:30:11 [23143] INFO:carrierroute:get_route_tree: found domain 0
Jul 29 12:30:11 [23143] INFO:carrierroute:add_route: found route, now adding
Jul 29 12:30:11 [23143] INFO:carrierroute:add_route_rule: no backed up rules
Jul 29 12:30:11 [23143] INFO:carrierroute:add_route: adding prefix , prob -14931260.000000
Jul 29 12:30:11 [23143] INFO:carrierroute:get_route_tree: found domain 0
Jul 29 12:30:11 [23143] INFO:carrierroute:add_route: found route, now adding
Jul 29 12:30:11 [23143] INFO:carrierroute:add_route_rule: no backed up rules
Jul 29 12:30:11 [23143] INFO:carrierroute:add_route: adding prefix 011, prob -14931260.000000
Jul 29 12:30:11 [23143] INFO:carrierroute:get_route_tree: found domain 0
Jul 29 12:30:11 [23143] INFO:carrierroute:add_route: found route, now adding
Jul 29 12:30:11 [23143] INFO:carrierroute:add_route_rule: no backed up rules
Jul 29 12:30:11 [23143] INFO:carrierroute:add_route: adding prefix 011, prob -14931260.000000
Jul 29 12:30:11 [23143] INFO:carrierroute:get_route_tree: found domain 0
Jul 29 12:30:11 [23143] INFO:carrierroute:add_route: found route, now adding
Jul 29 12:30:11 [23143] INFO:carrierroute:add_route_rule: no backed up rules
Jul 29 12:30:11 [23143] INFO:carrierroute:add_route: adding prefix , prob -14931260.000000
Jul 29 12:30:11 [23143] INFO:carrierroute:get_route_tree: found domain 0
Jul 29 12:30:11 [23143] INFO:carrierroute:add_route: found route, now adding
Jul 29 12:30:11 [23143] INFO:carrierroute:add_route_rule: no backed up rules

It seems that kamailio is not reading probability entry in carrier route table

Please find below carrierroute table structure:

CREATE TABLE IF NOT EXISTS `carrierroute` (
  `id` int(10) unsigned NOT NULL auto_increment,
  `carrier` int(10) unsigned NOT NULL default '0',
  `domain` varchar(64) NOT NULL default '',
  `scan_prefix` varchar(64) NOT NULL default '',
  `flags` int(11) unsigned NOT NULL default '0',
  `mask` int(11) unsigned NOT NULL default '0',
  `prob` float NOT NULL default '0',
  `strip` int(11) unsigned NOT NULL default '0',
  `rewrite_host` varchar(128) NOT NULL default '',
  `rewrite_prefix` varchar(64) NOT NULL default '',
  `rewrite_suffix` varchar(64) NOT NULL default '',
  `description` varchar(255) default NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=23 ;


Can someone help me to find this issue?

Regards

_______________________________________________
Kamailio (OpenSER) - Users mailing list
Users@lists.kamailio.org
http://lists.kamailio.org/cgi-bin/mailman/listinfo/users
http://lists.openser-project.org/cgi-bin/mailman/listinfo/users