12 dec 2012 kl. 10:18 skrev Grant Bagdasarian <GB(a)cm.nl>nl>:
Hello,
We have a cluster of three Asterisk machines. Each machine answers an incoming call and
transfers it to unique remote destination.
So, Asterisk01 transfers to Destination01, Asterisk02 to Destination02, Asterisk03 to
Destination03.
The Asterisk machines are allowed to receive and answer only 50 calls each.
I have a Kamailio in front of these three machine. It is currently used to dispatch calls
to the three machines using round-robin.
But I need some way to equally dispatch a maximum of 50 calls to each device in the
Asterisk dispatcher set.
I was thinking of using the dispatcher module and using the 10 algorithm, to load balance
based on call load. But I’m not sure if that will guarantee a maximum of 50 calls being
dispatched to each Asterisk.
Theoretically, if I set the ds_hash_size to 7, which is 128 slots, at some point two of
them should have 43 calls and one 42 calls.
Also the value of ds_hash_size should be the power of two. Are decimal values allowed,
like 7,229 which equals to almost 150?
Perhaps I should use the ratelimit module for this?
I’d appreciate it if someone could give me some advice on this.
In addition, consider setting the maxcalls option in asterisk.conf and Asterisk will not
accept any calls over that limit, leaving it up to Kamailio to handle where to send the
call when Asterisk is filled with media.
/O