Pi PBX

PBX on Raspberry Pi

PBX on Raspberry Pi works great, also works on some weaker ARM devices.


FreePBX on ARM CPU

ARM CPU was only embedded on simple devices to execute light-duty tasks in the past. However geeks contributed much to modify factory firmware and let these devices boot from external USB drives. Arch linux or Debian can work well on them.  Then  Asterisk and FreePBX were successful to be installed. Howerver, Raspberry Pi could run whole Linux system well, afterwards many Pi’s followed.

Below devices were tested:

  • Dockstar
  • Poloplug
  • Goflex Home
  • Goflex Net
  • Raspberry Pi 2
  • Raspberry Pi 3B
  • Raspberry Pi 3B+
  • Raspberry Pi 4
  • Raspberry Pi Zero
  • Raspberry Pi Zero W
  • Orange Pi Zero
  • Orange Pi One
  • Orange Pi PC
  • Orange Pi PC 2

As the CPU on some devices were too weak and on-board memory much limited: 128-256MB,  the installation process was quite painful. It usually took hours to complete it. Such  PBX just works. two or three simultaneous calls may stuck it.

However, except Raspberry Pi Zero,  all Raspberry Pi and Orange Pi we tested could run either FreePBX or FusionPBX well.


Raspberry Pi as PBX server

Rencetly years ARM developped its structure quickly. A famous SBC: Raspberry Pi first generation unveiled on 2012. However, It came with Broadcom BCM2835 CPU and 256MB memory and not powerful, but the price was only 35 dollar.

When Pi 2B unveiled in 2015, people began to be exciting because its CPU became 4-core A7 900MHz Broadcom BCM2837 with 512MB/1GB RAM. Afterwards, many project inlcuding PBX server were started.

PBX can works on Pi 2B smoothly, some people began to challenge Elastix, and finished another PBX project: μElastix


μElastix

μElastix was released in 2012. It based on 32-bit PC version Elastix. This project stopped very soon after. CentOS and Debian didn’t officially support ARM-CPU and Raspberry Pi, so needed much time to modify, compile and debug.

You can visit here for more information.


Install FreePBX on Raspberry Pi

We can easily install FreePBX on Raspberry Pi 2/3/4 and Zero W, but recommend Pi with 1GB memory as your PBX server. Therefore, Raspberry Pi 3 or 4 is recommended for the sake of better performance.

Let’s start with Raspberry Pi 3B and install FreePBX on it by official instruction.

FreePBX provides detailed tutorials how to install FreePBX on CentOS, Ubuntu, Arch LInux and Debian/Raspbian. Choose what you like to have a try.

Official tutorials for different Linux Distro:

Install FreePBX on CentOS 8

Install FreePBX on Unbuntu 18.04

Install FreePBX onDebian 9.6

Install FreePBX on Arch Linux

FreePBX isn’t totally free. Some commercial modules need to pay, but free modules are enough for small business or home use. 

Install procedure:

  1. Get a 16GB or 32GB micro SD
  2. Download image file of Raspiberry Pi OS from the official website
  3. Write image file to one microSD card by disk writer, like Raspiberry Pi Imager
  4. Creat a blank txt file on boot partition and rename as “SSH” to enable SSH service 
  5. Insert SD card to Raspberry Pi and power on it.
  6. SSH login by user: pi with default password: raspberry, then enable root login and SSH login by root.
  7. Afterwards, install Asterisk and PBX according to the official tutorial for Debian because Orange Pi OS is developped from Debian and has more compatible with Debian packages. 

Install FreePBX 15 on Debian 9.6


PBX on Raspberry Pi with FusionPBX

FusionPBX is another option and could be installed on Raspberry Pi 3/4. FusionPBX is developped from Freeswitch. Its structure is different from Asterisk and FreePBX, so you need some time to learn it.

FusionPBX only supported x86-CPU in the past. Although it could be installed on Raspberry Pi, but there were many bugs. However, FusionPBX can run on Raspberry Pi 3/4 smoothly after its founder updated installing script.

We experienced Trixpbx and Elastix diseappeared in the past.  It’s absolutely worth to take time to put FusionPBX on standby because nobody can guarantee FreePBX free forever, and it will bring funs to learn a new system.

Much easy to install FusionPBX  on Raspberry Pi 3 or 4,  just needs two-command lines.

Install procedure:

  1. Get a 16GB or 32GB micro SD
  2. Download image file of Raspiberry Pi OS, or CentOS, Ubuntu for Raspberry pi first.
  3. Write image file to one microSD card by disk writer, like Raspiberry one Imager ( download from Raspberry Pi official website) or Etcher for other linux.
  4. Creat a blank txt file on boot partition and rename as “SSH” in order to enable SSH service 
  5. Insert SD card to Raspberry Pi and power on it.
  6. SSH login by user: pi with default password: raspberry, enable root login and SSH login by root, then run below commands.
wget -O - https://raw.githubusercontent.com/fusionpbx/fusionpbx-install.sh/master/debian/pre-install.sh | sh;

cd /usr/src/fusionpbx-install.sh/debian && ./install.sh

After installation is completed, terminal will generate user name and password, then open the browser, input IP of raspberry pi and login with username and password.


FusionPBX installed on Ubuntu, FreeBSD and CentOS

Ubuntu 18.04

wget -O - https://raw.githubusercontent.com/fusionpbx/fusionpbx-install.sh/master/ubuntu/pre-install.sh | sh;

cd /usr/src/fusionpbx-install.sh/ubuntu && ./install.sh

FreeBSD

pkg install --yes git

cd /usr/src && git clone https://github.com/fusionpbx/fusionpbx-install.sh.git

cd /usr/src/fusionpbx-install.sh/freebsd && ./install.sh

CentOS

yum install wget

wget -O - https://raw.githubusercontent.com/fusionpbx/fusionpbx-install.sh/master/centos/pre-install.sh | sh

cd /usr/src/fusionpbx-install.sh/centos && ./install.sh

FusionPBX Community Support

As less people sticked with FusionPBX, you might take more time to get community help. Go to below forum for your questions.

FusionPBX on ARM


SD card for Raspberry Pi

Raspberry Pi 3/4 is powerful enough for small office. SD card has limited times for writing/Reading. We recommend to cost a little more to buy Endurance Cards of Samsung or Sandisk for formal uses (office).

Samsung Endurance Card


Sandisk Endurance Card