June 8, 2023

PBX Science

PBX technology, IT information, DIY projects

PBX on Raspberry Pi

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” 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
  • NanoPi
  • Beaglebone
  • Lebre Computer Board

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.

Morevoer, those devices with ARM architecture processor and low memory still work well with Asterisk or freeswitch if UI was not installed and you can configure Asterisk or freeswitch by command line.

Maybe it’s hard or boring for most beginners to configure Asterisk and Freeswitch by command line, so we highly recommend newcomers to begin IP PBX with a VoIP solution with user-friendly UI like FreePBX or FusionPBX.


Raspberry Pi as IP 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, frankly its performance is not so strong, 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 was the most user-friendly UI with rich functions and modules and the No.1 choice for newcomers.

Raspberry Pi would become a wonderful IP-PBX if Elastix could be installed on Raspberry Pi. 


μElastix (Discontinued)

μ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 at that time, so needed much time to modify, compile and debug.

You can visit here for more information.

PBX on Raspberry Pi

 

Possible to install Issabel project (Elastix Alternative) on Raspberry Pi?

Checked with Issabel project, but the answer is no. 

Issabel project can work only on PCs with 64bit x86 architecture processors.

They are not interested in building their program on devices with ARM architecture processors.


Free IP-PBX solution for Raspberry Pi

FreePBX is the UI of Asterisk and FusionPBX is the UI of freeSwitch.

Both have wonderful official and community supports.

FreePBX is not totally free. Some commercial modules need to pay, but free modules are enough for personal or small business uses.

In constrast, All modules in Fusion are free, but need more time to configure/debug.

FreePBX vs. FusionFBX


Install FreePBX on Raspberry Pi

You 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 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

Please note:

As FreePBX was initially developed from CentOS,  it’s better to install CentOS on raspberry pi to avoid potential bugs.

Unfortunately only CentOS 8 stream is officially supported, but it’s upstream, so you may consider to install Rocky Linux ( CentOS alternative) on Raspberry Pi. 

Image Download Link: Rocky Linux 8 for Raspberry Pi

Default username: rocky
Default password: rockylinux

Don’t forget to run “sudo rootfs-expand” to grow the partition and use all of your memory card or hard drive.

 

Raspberry Pi OS Install Procedure:

  1. Get a 16GB or 32GB micro SD
  2. Download image file of  Lite Raspiberry Pi OS (without desktop) 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

 

Update:

You can use new official image tool to download and write server OS (without desktop) to SD card, and also use this tool to set password and user name, don’t need write a SSH file to SD card anymore. 

  • Choose Lite Raspiberry Pi OS (without desktop)
  • Click Setting icon, then enable SSH and set username and password.

 

How to enable SSH on Raspberry Pi

 


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.

As 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).

 


Other IP PBX Solutions:

How to install Kamaillio on Raspberry Pi 3 or 4?

 

How to install SIPfoundry on Raspberry Pi?

 

How to install OpenSIPS on Raspberry Pi?

 

How to install phone system (FusionPBX) on Le Potato (Raspberry Pi replacement)?



Disclaimer of pbxscience.com