Failover is an important feature for most PBX installations. With the availability of high-bandwidth wireless like 4G, it becomes more and more popular to use the wireless connection when the primary landline internet access becomes unavailable.
For a long time, we've made it possible for the PBX to run in the LAN, which replaced the local IP address with publicly routable IP addresses. The IP replacement list was already a topic of many forum discussions.
When it comes to dynamically switching the presented IP address in the case of a failover, however, we were in trouble. In theory, it'd be possible to run a script that tests for the public IP address and then uses the REST interface and changes the routing table. Not everyone is a bash wizard, however, and it would even require different scripts for the different operating systems.
This was the reason why we went ahead and added a new feature that takes the URL for probing the public IP address of the PBX and an interval time value. The PBX will then periodically download the URL and set the public IP address of the PBX accordingly. The public IP address can be referenced with the magic name “public” in the routing list, like this:
192.168.0.0/255.255.0.0/192.168.1.1 0.0.0.0/0.0.0.0/public
Then the PBX would present 192.168.1.1 in the LAN and whatever-is-the-public-address in all other cases.
In the response from the web server, the PBX expects an IP address in human readable format, or in JSON-format, where the object must contain a entry called “ip” (for example, see http://myjsonip.appspot.com/). It's possible to use public servers, but obviously you can also use your own servers.
The failover will obviously take some time. The polling interval determines how fast the change is being detected. Obviously there's a tradeoff between polling (too) often and the time it takes to reflect the new address.
The new settings will be available right under the replacement list in 5.2.5.