[asterisk-users] High Availability with Asterisk

Brynjolfur Thorvardsson binni at binni.eu
Sun Mar 9 04:24:08 CDT 2014

Hi all

Thanks for an interesting discussion.

I've looked at various options for load balancing Asterisk servers and
providing fail over support.

One thing is not clear to me is: What happens to queues in a load-balancing
environment? On our server, we have various queues with up to 20 incoming
calls waiting in each, with typically 1-5 queue members. If incoming calls
get placed randomly (or according to some heuristic) on different servers,
is there any way that Asterisk can handle queue functionality?

Our client sip phones can enter or leave queues as they wish, but each sip
phone is only registered on one server at a time - so queue members could be
registered at different servers in a load balancing environment. Same goes
for incoming calls, going to different servers but eventually ending up in
the same queue.

I'm not sure if queues would ever work in a load balancing scenario, and I
haven't found any information on the net to tell me otherwise. Does anybody
have any experience/knowledge of if and how it could work?

Best regards


-----Original Message-----
From: asterisk-users-bounces at lists.digium.com
[mailto:asterisk-users-bounces at lists.digium.com] On Behalf Of adamk at 3a.hu
Sent: 8. marts 2014 21:28
To: Asterisk Users Mailing List - Non-Commercial Discussion
Subject: Re: [asterisk-users] High Availability with Asterisk

My approach (in theory only, so please correct me if I'm wrong) would be to
run asterisk on multiple boxes (one each).  A dedicated monitoring box
(nagios?  custom scripts?) would perform frequent checks against the boxes
(one of my previous projects one asterisk was using call files to
demonstrate its health to another one).

If a box fails, I would simply redirect/reroute its traffic to another one,
using network solutions.  Such as shutting down the production interface of
a suspectedly failed asterisk box, having an idle one pick up its IP
address, or using load balancing / routing / NAT to redirect the client's
traffic to a standby box.

My approach is based on the experience that linux based HA tools are often
not free, or don't scale well, or engineered to circumvent an error in a
slower manner (eg. booting a second VM takes too much time). 
  However in the network world, there are well known protocols that were
designed to take over in a matter of miliseconds.

I do understand that this would not provide 'session' data, so failing over
to a different box would mean the need to re-register, could cause calls to
drop etc.  This might be unacceptable for you.  As I said in the beginning,
I haven't been building such systems, in my experience a dropped call is not
that big of a deal, if it happens because the network cuts over to a
different box.  This could be handled with a pair of frontend load
balancers, where the number of asterisk boxes can be transparent.

hope this helps

-- Bandwidth and Colocation Provided by http://www.api-digital.com -- New to
Asterisk? Join us for a live introductory webinar every Thurs:

asterisk-users mailing list
To UNSUBSCRIBE or update options visit:

More information about the asterisk-users mailing list