DIY a PBX (Phone System) on Raspberry Pi
4 min readPBX on Raspberry Pi Zero/2/3/4/
DIY a PBX (Phone System) 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 Pi with 1GB memory as your PBX server works better if web-GUI is required.
Therefore, Raspberry Pi 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:
- Get a 16GB or 32GB micro SD
- Download image file of Raspiberry Pi OS from the official website
- Write image file to one microSD card by disk writer, like Raspiberry Pi Imager
- Creat a blank txt file on boot partition and rename as “SSH” to enable SSH service
- Insert SD card to Raspberry Pi and power on it.
- SSH login by user: pi with default password: raspberry, then enable root login and SSH login by root.
- 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:
- Get a 16GB or 32GB micro SD
- Download image file of Raspiberry Pi OS, or CentOS, Ubuntu for Raspberry pi first.
- 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.
- Creat a blank txt file on boot partition and rename as “SSH” in order to enable SSH service
- Insert SD card to Raspberry Pi and power on it.
- 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 environment).