Incredible PBX for RasPBX

Thanks to the hard work and great efforts of Ward Mundy, RasPBX users get an additional choice today: The comprehensive set of Incredible PBX applications, as an optional install on top of RasPBX. Incredible PBX has been famous for many years on the x86 platforms, and also has it’s own fork for the Raspberry Pi since mid 2012. Now with the new approach of an add-on installer, users get the combined benefits of both RasPBX and Incredible PBX:

  • Support for both Raspberry Pi and Beaglebone Black hardware platforms
  • RasPBX upgrades and security fixes as usual
  • Incredible PBX apps for Asterisk and FreePBX on top

Some of the additional applications in brief:
Preconfigured VoIP trunks, Flite text-to-speech engine as well as Google’s TTS and STT interfaces, free CallerID Name lookups for incoming calls, Voice Dialing with speech-to-text (STT) capability as well as Speed Dials, Yahoo News and Weather reports with text-to-speech (TTS) translation of the Yahoo news feeds, Telephone Reminders and Hotel-Style Wakeup Calls, SMS messaging, Wolfram Alpha, the versatile AsteriDex contacts database and many more.

For installation instructions and all further details, read on at nerdvittles.com.

But please keep in mind the Incredible PBX installer wipes out all FreePBX settings, and should therefore not be run on existing installations (unless you don’t mind deleting all your settings). Swap your current SD card with a fresh copy of RasPBX before running the installer.

More Devices

The Asterisk for Raspberry Pi project is celebrating it’s first anniversary today. One year ago, shortly after the first RPis have been shipped, this project site published the first complete image with Asterisk and FreePBX.
Since then, the RPi itself has become a big success story, making it the most popular low-cost single board computer of today with more than 1 million units shipped in less than a year.
With so much success, the competition is of course not far away. From all the similar boards available, only the recently announced BeagleBone Black comes close to the RPi. It is slightly more expensive, but features more powerful hardware. RasPBX has already been ported to this hardware, you can find all the details at the spin-off website beaglebone-asterisk.org. From now on, RasPBX will be supported on both platforms. If your hardware has not been ordered yet, the BeagleBone Black is definitely an alternative worth considering.

Calling on GSM/3G Networks

The Asterisk for Raspberry Pi project is continuously improving with new features and enhancements. The latest feature is particularly interesting, it allows direct calling on GSM/3G networks with USB modems from Huawei and the chan_dongle channel driver. A highly affordable GSM VoIP gateway can be built, using the USB modem as trunk in Asterisk.
You can find complete setup instructions in the documentation section.

A number of interesting applications are possible with this: Least cost routing of course (use the GSM network when it’s cheaper). In remote areas with weak cell phone reception, install the RPi in a location where reception is possible and connect the SIP phones in your house with the RPi. High-gain directional antennas can be connected to some of the USB modems and pointed towards the next cell phone tower, in order to receive weak signals that can’t be received by regular phones anymore. Finally the RPi also makes a good extension to an already existing PBX, enhancing it with GSM gateway capability. With a total power consumption of around 5W for both RPi and the modem, your electricity bill is not streched at all, even if you are only occasionally calling over GSM.

P.S.: If you are interested in this application, you may want to read about this RPi GSM gateway implementation.

Speed Improvements, Security Fixes, Fax

Check the downloads page for the latest RasPBX image dated Jan 19th. It is upgraded with kernel and firmware version 3.6.11+, which gave us a considerable speed improvement compared to the previous image, even without overclocking! Very convenient, especially when working with the FreePBX GUI.

This image also features the latest Asterisk 11.1.2, fixing a DoS vulnerability that was present in all Asterisk versions. Read here for details. If you are already running Asterisk 11, you can upgrade to 11.1.2 by calling

raspbx-upgrade

or alternatively also with apt-get dist-upgrade. Asterisk 11.1.2 has been added to the RasPBX repository on January 10th. To see the version running on your RPi call

asterisk -r

Finally RasPBX has recently added fax capabilities with HylaFAX. An easy-to-use configuration script provides you with fax to email. Print to fax is available with any compatible HylaFAX client. See the documentation page for details.

P.S.: The image from Jan 16th has been replaced with an updated version due to a bug in the CDR reports. If you downloaded it, read instructions for fixing the bug here.

Asterisk 11

On October 25th Asterisk 11 has been officially released. It seems to be working well on the RPi so far. If you want to give it a try, install it with:

apt-get update
apt-get install asterisk11 freepbx

The latter will also install the latest FreePBX version 2.11.0beta1, which is compatible with Asterisk 11. The Asterisk package contains version 11.0.1. After installing the packages above, you will get continuous updates with apt-get dist-upgrade in the future.

To make the commands above work, you need to have the latest version from the downloads page, or at least the September version with upgrades installed.

Asterisk 11 and the latest FreePBX is still to be tested on the RPi. If you like to join the testing, your results and comments are highly appreciated!

P.S.: When upgrading from Asterisk 11.0.0 with apt-get dist-upgrade run

apt-get -f install

to fix some changed dependencies in the new Asterisk 11 packages.

Online Upgrades

A few improvements and additions are already in the pipeline, but I was looking for a convenient way to get new enhancements to existing installations for some time. System upgrades should be capable of:

  • Delivering bug fixes and security patches for all installed software packages
  • Add new software and configuration improvements to further enhance the system
  • Avoid the hassle of re-flashing the SD card and manually transferring all settings and customisations people made.

To achieve this, I wrote a small upgrade tool that is using an additional Debian repository specific to the RasPBX project. Bug fixes and security patches for software that was installed through the Raspbian repositories are already delivered through apt-get dist-upgrade. Patches for additional, non-Raspbian software will be delivered through the RasPBX Debian repository. On top, the upgrade tool also installs new packages to deliver enhancements and additions as well.

To take part in the upgrades, first-time installation needs to be done running this command on the console:

wget -O /tmp/raspbx-upgrade http://repo.raspbx.org/raspbx-upgrade && chmod 755 /tmp/raspbx-upgrade && /tmp/raspbx-upgrade

This step is required only once, subsequent upgrades can be performed by just running:

raspbx-upgrade

The downloads page will be continuously updated with short descriptions whenever new upgrades become available.

The new system has only been tested with the latest raspbx-12-09-2012 release, no guarantee if it works with previous versions as well.

Some additional background information:
The raspbx-upgrade tool calls apt-get dist-upgrade, thus security fixes of all Raspbian originated software will be installed. This is the recommended way to keep your system up to date anyhow. Raspbx-upgrade is installed as Debian package as well, thus if you manually run apt-get dist-upgrade, upgrades to raspbx-upgrade will be installed as well. This will however not directly install new software, you need to call raspbx-upgrade to get new additions on top. If you do not run raspbx-upgrade, nothing new will be installed to your system and you can still use apt-get dist-upgrade in the way you are used to it. There are no automatic upgrades happening for now.

Concerning expected installation lifetime: Debian Wheezy will be officially released as stable soon. From this day, Wheezy will be the stable distribution for at least 2 years. This is the expected time span during which upgrades can keep your installation up to date, maybe even for longer.

Raspbian Based Image

The first Raspbian (Debian7 / Wheezy) based image is finally available on the downloads page. Credits go to Hexxeh for providing the base image. Credits also go to the lame german for his excellent description on how to make FreePBX 2.10.0 work with PHP 5.4.

The documentation page is updated with instructions on how to complete an initial set-up.

A few details on the improvements:

1. Raspbian

Raspbian provides optimised performance on the Raspberry Pi by using the ARM processor’s hard float instruction set.

2. Exim4

For email delivery, Exim is robust and easy to configure. Check the documentation page on how to set up email for your RPi.

3. Watchdog

In case your RPi crashes sometimes, you might have chosen a non-suitable power supply. In order to at least reduce the downtime in such a case, the activated watchdog automatically reboots your RPi 10s after a serious crash.

4. SSH hostkeys

No hassle with regenerating your host keys. It is done automatically on the first boot.

Testing – Update

I would like to give a brief update on the crashes reported in the previous post. As my testing RPi is currently installed in a remote location, I was not able to try other power supplies yet. But thanks to Brandon’s great tip I have activated the BCM2708 watchdog function. The RPi is now automatically rebooting after every crash, thus leaving a downtime of maybe a few minutes per week.

Update, Nov. 1st 2012:
The issue seems to be resolved by setting

vm.min_free_kbytes = 16384

in /etc/sysctl.conf, according to this description:

http://elinux.org/R-Pi_Troubleshooting#Crashes_occur_with_high_network_load

After adding this line, the crashes went away. This fix is included in upgrade #4 as well as the latest image dated 01/11/2012.

I have been trying several different power supplies as well, but it did not really help. In the end, I am just using an old Samsung phone charger now and it just works fine.

Testing Results

Finally on July 22nd I had the opportunity to install the RPi in a real production environment in Germany. Since that day it is used as PBX of a non-profit organization, running a permanent installation of 7 extensions. For a period of 3 weeks following July 22nd several additional extensions were installed to support all kinds of organizational activity of a greater event. These 3 weeks gave me the opportunity to test the system running with greater load than usual. A few numbers:

Number of extensions: 19
Number of trunks: 9
Average number of calls per day: ~60

The RPi directly replaced a PC based Trixbox that was in service for almost 4 years. Voice quality was absolutely perfect, and overal service quality was in no way inferior to the previous Trixbox installation. Users did not notice their calls were now routed through the RPi instead, however none of them used the webinterface (which runs slower indeed compared to the old system). On peak days I recorded more than 100 calls per day. 3 concurrent calls were reported several times in the logs.
The whole installation is using SIP technology only. Most clients are AVM Fritzboxes, and several different Germany based SIP providers are used as trunks: 1und1.de, dus.net, easybell.de and partly sipkom.com

I consider the whole test a big success. However, some problems appeared as well: Directly after connecting the RPi to a PoE enabled HP V1910 switch it crashed very often. Disabling PoE on the port used by the RPi made the frequent crashes disappear, but still the device locked up every 3 to 4 days. It is hard to say what really caused this, but I am suspecting the unstable power grid at the place of installation as the source, because other devices also crashed sometimes. In order to find the cause for the crashes I will try different power supplies as soon as possible and will monitor the situation closely in the long term. The crashes need to be resolved definitely…