Christmas Projects 2014: Raspberry Pi PBX

Preamble

I was lucky enough to take two full weeks of holidays over Christmas and New Years this year. It was magnificent and completely rejuvenating, despite the fact that everyone in my house was sick with one or more ailments throughout. In fact being sick and stuck at home may have in fact been just the excuse I needed to indulge in a few geeky back-burner projects.

Project 2: Raspberry Pi PBX

I have been running Elastix for years. Elastix is a top-notch open source project that glues together many other open source telephony projects (i.e. Asterisk, FreePBX, HylaFAX, and many more) into a single distribution built on top of CentOS. This setup has worked flawlessly for years, but I had an idea I wanted to try out… build a basic PBX phone server on a $35 Raspberry Pi computer.

My project: use this amazing little Raspberry Pi to run my home phone system.

Raspberry Pi

Well as it turns out, this project was a resounding: SUCCESS

I had most of the equipment around the house already, here is my setup:

Raspberry Pi – 1st Generation.
Lexar Professional 16GB Class 10 SD Card – For Raspberry Pi storage.
RasPBX – A Raspbian based Linux distro with Asterisk, FreePBX, HylaFax, etc.
Aastra 480i CT – A decent IP phone with a cordless handset.
Polycom SoundPoint IP 335 (x2) – Really great sounding IP phones.
Cisco SPA122 ATA – Connected to a fax machine.
NetGear ProSafe PoE Switch – 24 port Power over Ethernet to power the phones.

Also useful may be the layout of the network:

phone-network-diagram
So the Raspberry Pi, the three IP phones, and the Analogue Telephone Adapter are connected through the NetGear switch. Additionally the three IP phones are powered by the switch (PoE), which is extremely nice because you don’t need a big ugly power adapter plugged into each of your telephones.

To configure Asterisk, RasPBX comes with a very slick web application called FreePBX that allows you to setup and maintain your trunks (linkages to your VoIP provider), telephone extensions, inbound call routes, outbound call routes, and much more. You can get really fancy with this stuff, and it’s pretty fun to think of potential uses. In terms of VoIP providers I have been using Unlimitel (owned by Primus Canada Inc.) for 7+ years now, and have nothing but great things to say about their service. They’re not fancy, but they certainly know what they’re doing.

When I started this project I went into it with the expectation I could make it “work”, but that it probably would not be something I could rely on as a phone server. Needless to say that after 3+ weeks of this being fully operational without any issues, this setup has exceeded all expectations and cost less than $50.

Also interested in Project 1: PowerMac G5 Linux Desktop? Read on…