Asterisk High Availability Solutions

Business PBX Solutions
Provider Solution Details
Bicom VoIP Become an ITSP Now!
  • Become a serious competitor in VoIP Immediately
  • FULL Consultancy, Installation, Training & Support
  • Sell Hosted IP PBXs, Biz Lines, Call Centre
  • Turnkey Provisioning at your data center
Details
3CX Software PBX for Windows
  • Windows Software Solution
  • Easy to Install and Manage
  • Auto Configures Phones & Trunks
  • Android, iOS, Windows & Mac clients
Details
This page outlines the various option available to create high availability for a VoIP PBX. Some are generic solutions while others are PBX specific. Some are complete HA solutions while others are half-baked scripts that do some things but not others.

Before you select a HA solution, carefully read this page on creating / selecting a High Availability solution (see Asterisk High Availability Design )

PBX Specific Solutions

-These solutions provide clusters that are PBX specific. As noted on the Asterisk High Availability Design wiki page, these solutions create clusters at the Application level and are deeply PBX aware, environmentally aware, trunk aware, etc. These solutions are usually deployed in mission critical call center environments (e.g.: 911/PSAP) and high-uptime commercial environments. The benefit of these solutions is complete peer autonomy and extensive detection, and all features in an integrated solution (heartbeat, data synchronizations, failure detection, sharing IP, etc.). The downside of these solutions is that they are PBX specific, so if your PBX software (eg: Asterisk, 3CX, FreeSwitch) is not listed below then you can't use these solutions, and they require more OS and PBX skills to install.

  • Bicom Systems SERVERware is the only Linux virtualization platform dedicated to telephony.
  • HAAst (High Availability for Asterisk) from Telium adds high availability / clustering to any pair of Asterisk servers. The High Availability for Asterisk (HAAst) add-on offers rapid automatic failover of a failed peer, total peer autonomy, IP sharing, advanced peer health detection, intelligent synchronization of files and databases, etc. HAAst also supports manual promote/demote for maintenance, a command line interface, a telnet interface, a web based interface, and a developer API. Installation is straight forward, with no additional hardware required, no additional or complex heartbeat/cluster/etc software required either. HAAst is available in Free and Commercial editions, and is in use at call centers, hospitals, and other high-uptime environments. HAAst is targeted at large commercial installations but a Free edition is available for anyone. HAAst operates at the OS level and is compatible with all Asterisk variations (FreePBX, Elastix, Thirdlane, Digium). See High Availability Asterisk (HAAst) for more information.


Distribution Specific HA Modules/Platforms


These solutions are proprietary/custom code and Asterisk bundled together to make a distribution; and/or a module which extends such a distribution. The benefit of these solutions is that because they are bundled/are part of a distribution, they are simple to install. The down side is that they lack peer autonomy, advanced failure detection, and other features listed on the Asterisk High Availability Design page. (eg: they use DRBD, use simplistic Asterisk process ID alive to detect failure, etc.). These solutions are ideally suited to home office / small office scenarios with low demands/expectations of HA, and low skills required of those performing the installation.

  • SARK-HA from Aelintra Telecom offers High Availability Asterisk out-of-the box. The Sark 200 is a complete PBX in a box solution, using a low-power ARM process all in the size of a deck of cards. Real-time failover takes less than 20 seconds to complete and includes support for ISDN PRI circuits. The servers are kept in synch using rsync (so no shared DRBD disk!). Wiki pages HERE. System also includes multi-tenant and a fully integrated provisioning system with zero touch, DHCP-free set-up for multicast capable phones... see HERE.

  • FreePBX HA FreePBX HA is a commercial module that integrates with FreePBX (2.11 and higher) and requires Asterisk 1.8 and higher. The HA modules uses DRBD for sharing a disk between peers, and Heartbeat to detect if a peer is alive and failover. More information and documentation is available at the FreePBX HA Wiki.

  • Elastix HA is a module that integrates with Elastix and Asterisk. The HA modules uses DRBD for sharing a disk between peers, and uses Heartbeat to check if the Asterisk process is alive and failover. More information and documentation is available at elastix.org.


Add-Ons, Hardware, and Scripts (Not Clustering)

These are a collection of scripts and tools which can helping with mirror data, routing traffic, etc. These scripts are useful for a do it yourself approach to high availability, but they don't contribute to the creation of a cluster and are not suitable for production environments.

  • Bicom Systems SERVERware is a Cloud IP Services Delivery Platform with flexible scalability, 99.999% redundancy, and an easy to use GUI administration. SERVERware is the only Virtualization Platform dedicated to Voice. Available in the Network Edition and Server Edition Commercial

  • DRBD + Heartbeat. If you are considering paying for the FreePBX HA 'module' then you should consider creating the exact same yourself for free (if you are a Linux admin). Using the free DRBD package for shared disk, and free Heartbeat package to detect failure, you end up with the same that is for sale from FreePBX. This type of High Availability (or FreePBX's 'module') is very simplistic in terms of detection and failover - (and using a shared DRBD disk is undesirable), so you may not want to spend thousands of dollars on something you can assemble yourself for free. Elastix is very honest in saying that this is exactly what you get when you are installing their HA module (thumbs up for them!). For a home user or small office, this may be sufficient. As noted on the Asterisk High Availability Design page, when devices share a disk or use simple detection then this is not really a 'cluster', but it's more 'high availability' than nothing.

  • DNS SRV on the CPE side but not all phones handle this. It allows phones register with a different PBX is one fails.

  • Flip1405 Manages virtual IP between two Asterisk servers and queries UDP5060 for state changes
    • Downtime less than 30 seconds
    • Only 2 dependencies (nmap and arping)
    • Incredibly easy to setup

  • sysMONIT is a high availability hosts failure detection module that implements small and simple daemon running on each host, sending signaling UDP packets, for purpose of efficient detection of hosts failures, and taking over services by another spare hosts.

  • Failover switches to automatically switch connections (T1, Ethernet, etc.) to a backup system.

  • Use the Linux-HA software to provide high-availability (HA) failover on programmed conditions - by default node hang or crash. Linux-HA also has many telephony-oriented HA APIs as defined by the Service Availability Forum (SAF). It also provides sub-second failover, and works well with shared disk or without. It is commonly used with the DRBD package to provide HA with no single point of failure, and no special hardware requirements.



  • Q-Suite offers high availability and call survival based on U.S Patent and Trademark office issued Patent US20110310773 A1 - Method and system for fail-safe call survival. This patent covers the technology to recover calls and successfully continue on-going calls and conversations in the event of a single point failure within an IP based phone and contact center system. A component of the call survival mechanism, the High Availability SIP proxy, also provides load balancing necessary for scaling to multiple Asterisk servers in a Cluster. The call center ACD within Q-Suite is capable of managing multiple servers in the Asterisk cluster to handle very large call volumes and still retain the ability to maintain the sequence and order of calls coming to each individual queue, irrespective of the Asterisk (media) server that they land on in the cluster.

  • Ultra Monkey: The current solution I have uses UltraMonkey ( http://www.ultramonkey.org ) for load-balancing and failover and it works like a champ. There are obviously a lot of details there, and I'd be happy to detail them if people are interested. There is also a site that has two clusters with uniform reachability for all phones and PRIs. None of this requires a lot of dialplan tuning on a day-to-day basis.


See also



Asterisk
This page outlines the various option available to create high availability for a VoIP PBX. Some are generic solutions while others are PBX specific. Some are complete HA solutions while others are half-baked scripts that do some things but not others.

Before you select a HA solution, carefully read this page on creating / selecting a High Availability solution (see Asterisk High Availability Design )

PBX Specific Solutions

-These solutions provide clusters that are PBX specific. As noted on the Asterisk High Availability Design wiki page, these solutions create clusters at the Application level and are deeply PBX aware, environmentally aware, trunk aware, etc. These solutions are usually deployed in mission critical call center environments (e.g.: 911/PSAP) and high-uptime commercial environments. The benefit of these solutions is complete peer autonomy and extensive detection, and all features in an integrated solution (heartbeat, data synchronizations, failure detection, sharing IP, etc.). The downside of these solutions is that they are PBX specific, so if your PBX software (eg: Asterisk, 3CX, FreeSwitch) is not listed below then you can't use these solutions, and they require more OS and PBX skills to install.

  • Bicom Systems SERVERware is the only Linux virtualization platform dedicated to telephony.
  • HAAst (High Availability for Asterisk) from Telium adds high availability / clustering to any pair of Asterisk servers. The High Availability for Asterisk (HAAst) add-on offers rapid automatic failover of a failed peer, total peer autonomy, IP sharing, advanced peer health detection, intelligent synchronization of files and databases, etc. HAAst also supports manual promote/demote for maintenance, a command line interface, a telnet interface, a web based interface, and a developer API. Installation is straight forward, with no additional hardware required, no additional or complex heartbeat/cluster/etc software required either. HAAst is available in Free and Commercial editions, and is in use at call centers, hospitals, and other high-uptime environments. HAAst is targeted at large commercial installations but a Free edition is available for anyone. HAAst operates at the OS level and is compatible with all Asterisk variations (FreePBX, Elastix, Thirdlane, Digium). See High Availability Asterisk (HAAst) for more information.


Distribution Specific HA Modules/Platforms


These solutions are proprietary/custom code and Asterisk bundled together to make a distribution; and/or a module which extends such a distribution. The benefit of these solutions is that because they are bundled/are part of a distribution, they are simple to install. The down side is that they lack peer autonomy, advanced failure detection, and other features listed on the Asterisk High Availability Design page. (eg: they use DRBD, use simplistic Asterisk process ID alive to detect failure, etc.). These solutions are ideally suited to home office / small office scenarios with low demands/expectations of HA, and low skills required of those performing the installation.

  • SARK-HA from Aelintra Telecom offers High Availability Asterisk out-of-the box. The Sark 200 is a complete PBX in a box solution, using a low-power ARM process all in the size of a deck of cards. Real-time failover takes less than 20 seconds to complete and includes support for ISDN PRI circuits. The servers are kept in synch using rsync (so no shared DRBD disk!). Wiki pages HERE. System also includes multi-tenant and a fully integrated provisioning system with zero touch, DHCP-free set-up for multicast capable phones... see HERE.

  • FreePBX HA FreePBX HA is a commercial module that integrates with FreePBX (2.11 and higher) and requires Asterisk 1.8 and higher. The HA modules uses DRBD for sharing a disk between peers, and Heartbeat to detect if a peer is alive and failover. More information and documentation is available at the FreePBX HA Wiki.

  • Elastix HA is a module that integrates with Elastix and Asterisk. The HA modules uses DRBD for sharing a disk between peers, and uses Heartbeat to check if the Asterisk process is alive and failover. More information and documentation is available at elastix.org.


Add-Ons, Hardware, and Scripts (Not Clustering)

These are a collection of scripts and tools which can helping with mirror data, routing traffic, etc. These scripts are useful for a do it yourself approach to high availability, but they don't contribute to the creation of a cluster and are not suitable for production environments.

  • Bicom Systems SERVERware is a Cloud IP Services Delivery Platform with flexible scalability, 99.999% redundancy, and an easy to use GUI administration. SERVERware is the only Virtualization Platform dedicated to Voice. Available in the Network Edition and Server Edition Commercial

  • DRBD + Heartbeat. If you are considering paying for the FreePBX HA 'module' then you should consider creating the exact same yourself for free (if you are a Linux admin). Using the free DRBD package for shared disk, and free Heartbeat package to detect failure, you end up with the same that is for sale from FreePBX. This type of High Availability (or FreePBX's 'module') is very simplistic in terms of detection and failover - (and using a shared DRBD disk is undesirable), so you may not want to spend thousands of dollars on something you can assemble yourself for free. Elastix is very honest in saying that this is exactly what you get when you are installing their HA module (thumbs up for them!). For a home user or small office, this may be sufficient. As noted on the Asterisk High Availability Design page, when devices share a disk or use simple detection then this is not really a 'cluster', but it's more 'high availability' than nothing.

  • DNS SRV on the CPE side but not all phones handle this. It allows phones register with a different PBX is one fails.

  • Flip1405 Manages virtual IP between two Asterisk servers and queries UDP5060 for state changes
    • Downtime less than 30 seconds
    • Only 2 dependencies (nmap and arping)
    • Incredibly easy to setup

  • sysMONIT is a high availability hosts failure detection module that implements small and simple daemon running on each host, sending signaling UDP packets, for purpose of efficient detection of hosts failures, and taking over services by another spare hosts.

  • Failover switches to automatically switch connections (T1, Ethernet, etc.) to a backup system.

  • Use the Linux-HA software to provide high-availability (HA) failover on programmed conditions - by default node hang or crash. Linux-HA also has many telephony-oriented HA APIs as defined by the Service Availability Forum (SAF). It also provides sub-second failover, and works well with shared disk or without. It is commonly used with the DRBD package to provide HA with no single point of failure, and no special hardware requirements.



  • Q-Suite offers high availability and call survival based on U.S Patent and Trademark office issued Patent US20110310773 A1 - Method and system for fail-safe call survival. This patent covers the technology to recover calls and successfully continue on-going calls and conversations in the event of a single point failure within an IP based phone and contact center system. A component of the call survival mechanism, the High Availability SIP proxy, also provides load balancing necessary for scaling to multiple Asterisk servers in a Cluster. The call center ACD within Q-Suite is capable of managing multiple servers in the Asterisk cluster to handle very large call volumes and still retain the ability to maintain the sequence and order of calls coming to each individual queue, irrespective of the Asterisk (media) server that they land on in the cluster.

  • Ultra Monkey: The current solution I have uses UltraMonkey ( http://www.ultramonkey.org ) for load-balancing and failover and it works like a champ. There are obviously a lot of details there, and I'd be happy to detail them if people are interested. There is also a site that has two clusters with uniform reachability for all phones and PRIs. None of this requires a lot of dialplan tuning on a day-to-day basis.


See also



Asterisk
Created by: jht2, Last modification: Wed 15 of Jun, 2016 (16:17 UTC) by bicom_systems
Please update this page with new information, just login and click on the "Edit" or "Discussion" tab. Get a free login here: Register Thanks! - Find us on Google+