On Wed, May 26, 2010 at 2:23 AM, marius zbihlei <marius.zbih...@1and1.ro> wrote: > JR Richardson wrote: >> >> Hi All, >> >> I'm testing carrierroute module on version: kamailio 1.5.4-notls >> (i386/linux). >> >> I'm distributing calls to a group of Asterisk servers, all in the same >> carrier and domain, wanted to load balance the calls and I'm curious >> how this works. I see the 'probability' parameter in the carrierroute >> table and set it to equal value across all servers, I have 4 servers >> I'm sending calls to, so I set each prob value to '0.25'. I'm testing >> with sipp and hashing over call_id so this is the same for every >> call. I send 40 calls and the distribution of calls to the asterisk >> servers are 11, 12, 6, 11, pretty close to even but not 100% >> How does the distribution algorithm work for carrieroute? Does it >> statefully track all active calls and load balance across each server >> in destination group? Is there another algorithm that can offer that >> can get closer to a round robin effect? >> > > Hello JR, > > The distribution algorithm works by doing a CRC32 on the Call_id(I suppose > you use cr_route not cr_prime_route), and dividing than number so it > reflects the probability you gave . Your data sample is too small to show > the correct distribution; if you can test with a 2000 calls scenario, and > the Call-Id is randomized as it should, then the distribution will be > uniform. The carrierroute module does not keep track of balanced calls.
Hello, I am using cr_route, not cr_prime_route. I tested with large call samples, 2K and 10K, the call distribution was within 1% accross all servers, very nice. >> >> Another question is do I need to include the record_route() and the >> t_check_trans() functions prior to calling the carrierroute functions? >> I see in the debug "DBG:core:forward_reply: found module tm, passing >> reply to it" and dialogs seem to process fine, so does the >> carrierroute module handle those requirements for stateful processing? >> >> Thanks. >> >> > > AFAIK, the decision to call record_route() is orthogonal with the > carrierroute module. The same for stateful / stateless processing (you can > use carrierroute module both stateless or statefull depending on what you > want) >> >> JR >> > > Cheers > Marius > Thanks. JR -- JR Richardson Engineering for the Masses _______________________________________________ SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list sr-users@lists.sip-router.org http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users