The Interesting Case of the Tiny PBX

v16 with a Serving of Raspberry Pi 3B+

Developing a world-class PBX system has its own challenges, especially when targeting bigger and ever-growing installations. But the real power and efficiency of a PBX becomes apparent when given minimal generic hardware resources to run. So, when designing v16 we decided to test how lean we could make the new 3CX version... by deploying on a Raspberry Pi. Yes, you read that right: not the SBC, the 3CX v16 PBX has been tested and verified to work on the credit-card-sized Raspberry Pi 3B+! Read on for the amazing results.

Moving Up While Scaling Down

3CX v16 on Raspberry Pi - Moving Up While Scaling Down

The decision to make our PBX available for the Debian Linux distro presented additional benefits in transitioning the PBX code to Raspbian, the Debian-based OS for the Raspberry Pi's ARM 64-bit architecture. Installing v16 on a Raspberry Pi is fairly straight forward, as you can see from our setup guide. So, grab yourself a Raspberry Pi and let 3CX v16 rev its engine to show its true power. You’ll need:

  • Raspberry Pi 3B+
  • 32+GB Class 10 Micro SD
  • Raspberry Pi compatible case preferably with heatsink(s) and cooling fan
  • Raspberry Pi compatible 2.5 Amp Micro USB power supply

Lean and Mean Performance

3CX v16 on Raspberry Pi - Lean and Mean Performance

Running any serious service on the minimal spec Raspberry Pi is no mean feat, but 3CX v16 pulls it off with flying colors:

  • CPU consumption - moving from 4% at idle up to 46%, the Pi’s CPU running the v16 optimized code averages at ~23.7% under load.
  • Memory utilization - benefiting from v16 optimizations, memory consumption at idle is 32% and increases to a comfortable 38% average under load.
  • Network utilization - on the Pi’s improved onboard Gigabit LAN controller with maximum throughput of ~224Mbps, the average network usage with 8 active calls was ~1.5Mbps, i.e. less than 1%. This of course depends on your network specs and audio codecs used.
  • Power efficiency - in contrast with an average server-based 20.4kWh daily power consumption, the Pi consumes about the same power… in a whole year!
  • Thermal efficiency - without using a heatsink or fan, the Pi's on-board temperature sensor goes from 47.2°C at idle to a max 59.5°C peak on heavy load, averaging at 52.5°C.

A word to the wise: A PBX moves a lot of data on the network for extended periods of time, so the Pi 3B+ with 3CX v16 could run into thermal limits during heavy and prolonged network usage, depending on the audio codec(s) used. Using the Pi for sustained heavy network traffic, requires that you at least install a heatsink or additional active cooling.

Now... What to Do With a $50 PBX?

3CX v16 on Raspberry Pi - What to Do With with a $50 PBX?

Based on our own R&D tests, 3CX v16 on the humble Pi can take you a long way. Translate the stats above to 8 simultaneous calls, 16+ installed extensions with 8 BLF settings on each one, all without skipping a beat and you get the picture! That makes 3CX v16 on a Raspberry Pi useful for a variety of real-world applications, like:

  • An SME with small regional offices that need full-fledged PBX installs to connect to a local PSTN line for backup purposes.
  • A residential building PBX where all residents can chat and converse for free with each other using the 3CX Web Client or the free Android and iOS apps.
  • A school PBX providing free calls and chats between staff members.
  • A small hotel offering communication and wake up call services to its clientele.
  • A SOHO PBX install offering integrated communication to family members.

Let us know what usage scenario you come up for 3CX v16 on Raspberry Pi on our forum.

Now, that's not too bad for a PBX you can hide in your pocket! Keep watching this space for more 3CX Pi (pun intended).

Watch the video on how to setup your Raspberry Pi and install 3CX V16.

Known Issues and Limitations

  • 3CX v16 is recommended for up to eight (8) simultaneous calls on the Raspberry Pi 3B+ based on our current testing results.
  • Set logging level to “Low” or “Off” to minimize SD card bottlenecks.
  • Recordings should be disabled to maximize storage performance.
  • A capable Class 10 Micro SD with >=10MB/s sustained transfer speed is strongly recommended.
  • The audio codec used is a prime factor for CPU load and thermal efficiency. Avoid using OPUS.

How to Get the v16 Beta on the Pi 3B+

Follow the detailed instructions in the 3CX on Raspberry Pi install guide and make sure to install the “testing” (Beta) release.

View the change log for this version and give us your feedback via the community forum.

Important: The Beta version must be installed only for evaluation purposes and is not recommended for production systems. This version is not covered by any support SLA.