On 03/12/2012 11:00 AM, Sasa Vilic wrote:
Hello,
I have read here about load balancing between multiple gateways by
using carrierroute module, but there is one particular question for
which I found no answer.
Let's say I have two asterisk servers (X und Y), that are my gateways
to PSTN. Let we do it simple. Let's say that each gateway supports
only one outgoing call at the time and there is no incoming calls from
PSTN. Now:
Bob calls one number and Kamailio uses X gateway.
Alice calls other number and Kamailio uses Y gateway.
Alice terminates the call.
Alice place a new call, but Bob's call is still in progress.
If we were used round robin algorithm, Kamailio would then use X
gateway, but X gateway is currently occupied. What shell happen now?
And what if Alice didn't tear down call ordinary? What if it her SIP
client simply crashed? (Then kamailio would think that there is now
free gateway)
So the main question is: can kamailio know/detect, how much calls are
going over one particular gateway and what can be done when limit for
this gateway is reached?
Hello,
Carrierroute module support load balancing based on weights(so it can be
non-uniform distribution).Keep in mind that this works on large numbers
of calls, so on the long run we will have 50-50% load on the servers
(given enough calls). For small number of calls (like your example) the
carrierroute module has no way of determining to route on the other
gateway.
As others suggested, you can use failure_route to route between
gateways. Carrierroute module supports this over the failure route table.
Cheers,
Marius
Thank you in advance.
Kind Regards,
Sasa Vilic
--
Zbihlei Marius
Head of
Linux Development Services Romania
1&1 Internet Development srl Tel KA: 754-9152
Str Mircea Eliade 18 Tel RO: +40-31-223-9152
Sect 1, Bucuresti mailto: marius.zbihlei(a)1and1.ro
71295, Romania