HAAst health sensors can detect a range of Asterisk® failures (not just a stopped process), as well as failure / degradation of the PBX server, the environment, external network devices, upstream proxies, ITSP/carrier routes, and more. HAAst even allows administrators to create custom sensors from any script file or executable, contributing to the overall health score for the node. HAAst health sensors allow a node to assess its overall ability to operate effectively, and take action when health is critical (including running programs or failing over to the other node).
HAAst incorporates extensive synchronization capabilities, including the ability to synchronize files and directories, the Asterisk internal database (AstDB), and MySQL databases and tables between nodes. Synchronization takes place from the active to the standby only if the active node is healthy, and only at intervals specified by the administrator. HAAst can even alter the received data, allowing the standby node to overwrite settings/data after synchronization (for differences between nodes).
Shared IP Address
HAAst incorporates the ability to share an IP address between nodes, allowing for the cluster to failover without any changes required to upstream or downstream devices. The shared IP is added/removed by HAAst as either a physical NIC, a virtual NIC, or as a virtual VLAN NIC. HAAst also broadcasts network changes to neighboring switches / routers to ensure traffic flows to the new device immediately.
HAAst nodes do not depend on any shared hardware, software, disks, databases, etc. Some high availability solutions share a block level device (eg: DRDB), a channel bank (eg: Astribank), a physical disk, a USB device, etc. However, these create a single point of failure that can collapse or corrupt an entire cluster when they fail. HAAst creates completely autonomous nodes, ensuring that one node cannot detrimentally affect the other.
Geographically Distant Nodes
The design of HAAst allows for nodes to be separated over large distances (e.g. different continents) and still operate as a single cluster. All communications, synchronization, and control has been optimized to minimize data transfer and adapt to varying latency / network conditions. Geographically dispersed cluster features are available in the Unlimited and OEM Edition of HAAst only.
HAAst can keep calls in progress up during a cluster failover, transferring active calls from the active to the standby node. Once the standby node is promoted calls resume without either party noticing the failover. Upon failover HAAst can initiate scripts or dialplan actions to resume call recording, write caller stats to a database, etc. For calls waiting in queues the calls will be transferred to the standby node and queues rebuilt in the order of arrival (or other sequence you specify). Call continuity features are available in the OEM Edition of HAAst only.
HAAst version 2 incorporates a new sensor engine and cluster controller, which can detect a failed node in under 0.5 seconds and transition to the peer immediately thereafter. An entire cluster can now failover in as little as 3 seconds, with typical Asterisk servers failing over in 5-15 seconds.
HAAst can treat Asterisk nodes as equals (with either node continuing in an active role indefinitely) or as primary/backup (with the backup nodes returning control to the primary node when permitted). HAAst intelligently transfers control from the backup node to the primary node once the systems are stable and the cluster is reconnected, during a specified time window, when the systems are idle, etc. as specified by the administrator. This intelligent fallback feature allows administrators to move VoIP traffic back to a primary system when users are least affected.
The HAAst software resides as a layer between Linux and Asterisk, allowing for considerable differences in peers including different hardware, different Linux versions, different Asterisk versions, and more. This feature also allows administrators to upgrade portions of one node without risk to the cluster, then switching the active node and beginning upgrades on the other.
Cluster nodes can be safely placed on opposite sides of insecure networks as all HAAst communications between nodes is encrypted. HAAst uses 256-bit encryption to ensure that control of the cluster is never at risk, and performance/call data is never exposed.
Event Handler Systems
One of the most powerful features of HAAst is the event handler system, which lets administrators hook any program/script into events generated by or detected by HAAst. For example, events related to node promotion / demotion allow administrators to automate changes to firewalls, routers, etc. in order to redirect VoIP traffic to the active node prior to Asterisk starting.
Point In Time Recovery
In the event of catastrophic damage to the filesystem of either node, HAAst can attempt to restore a backup image including settings, voicemails, etc. and enable telephone service. HAAst performs backups upon start and at regular intervals without any administrator intervention. These backups are automatically shared between nodes to ensure both nodes have the most recent recovery points available. PITR includes support for the PostgreSQL database.
End users and administrators will appreciate the ability to quickly view the status and health of the HAAst nodes from an LCD panel directly on the front of the PBX chassis. Administrators can optionally enable control of the cluster from the panel as well, allowing end-users to promote/demote/shutdown the node with the push of a button on the front of the chassis.
Administrators will be immediately comfortable with the simple and powerful telnet interface to HAAst. The entire cluster can be managed and controlled from a telnet interface, whether from a PC, a tablet, or a cell phone. The interface includes online help and user friendly, rich terminal output.
Seasoned administrators and novices alike will be comfortable with the simple and powerful browser (web) interface to HAAst. The cluster can be managed and controlled from any browser, including a PC, a tablet, or a cell phone. The interface includes simple control over the cluster, viewing of event logs, and more.
Socket, PHP, and REST Interfaces
Developers will appreciate the socket, PHP, and REST (Representational State Transfer) interfaces to HAAst, as the power and control of HAAst can be easily expanded and integrated with other system administration and monitoring tools. HAAst includes sample code to demonstrate how to extract data and control HAAst via a web service, via a PHP class, and via the socket interface.
HAAst is compatible with a broad range of Asterisk versions and distributions. HAAst works with Asterisk versions 1.4 through 18, both 32-bit and 64-bit. HAAst is also compatible with a wide range of Asterisk® distributions including Digium’s Asterisk, FreePBX®, PBX In A Flash®, TrixBox®, Elastix®, Issabel®, xCALLY Motion®, Thirdlane®, and Genesis ISS®. HAAst can even control a custom distribution through settings which allow starting and stopping any executable.