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
adam





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

asterisk-users mailing list
To UNSUBSCRIBE or update options visit:
  http://lists.digium.com/mailman/listinfo/asterisk-users

Reply via email to