If you had asked us a year ago whether it was possible to run a full-featured PBX on a computer the size of a credit card, we would have laughed and told you to move along. Well, that was then. In the last 21 days, we’ve not only gotten through the proof-of-concept phase of porting Incredible PBX to the Raspberry Pi but, thanks to a lot of hard work from Gernot and his Asterisk® for Raspberry Pi™ project, we now have an incredibly powerful PBX alternative for home and SOHO users with free calling in the U.S. and Canada and a price tag of $50 with the hardware. To celebrate the 21st birthday of Incredible PBX for the Raspberry Pi (that’s days not years), today we introduce two very refined editions of Incredible Pi for both the Debian 6 "Squeeze" and Debian 7 "Wheezy" platforms. For the pioneers, there’s version 2.0 with Wheezy. For those that like stable, we’ve got 1.7 on Squeeze. The feature set is identical. And you can’t beat the price. They’re both FREE!
Call our Raspberry Pi (1-843-284-6844) and check out the Incredible Pi Smörgåsbord for yourself.
New Incredible Pi Tutorials: 35 Free Incredible PBX Apps for the $35 Raspberry Pi and Version 3.1 Quick Start Guide
We’ve written some very detailed documentation for Incredible Pi, and you can read it at your leisure. Today, we wanted to put together an abbreviated tutorial for those that just want to get a barebones system up and running in about an hour. Most of that time will be consumed copying the Incredible Pi image to an SD card. So there’s plenty of time for lunch during the hour. If you prefer detail, then have at it. For everyone else, keep reading.
What to Buy. Here’s everything you need to get started. The case is optional. Yes, you can run the Raspberry Pi sitting on your desk with no case. It’s only 5 volts. WiFi is also optional. There’s a 10/100 port on the Raspberry Pi that gives you all the networking you need. Here are the links to buy the pieces. You also need a CAT5 cable and either a spare PC or Mac with Putty or SSH and a pair of earbuds or an HDMI cable to connect to a TV or monitor and a USB keyboard.
- $35 Raspberry Pi
- $5 Power Adapter (5V, 1A)
- $10 SanDisk 16GB SDHC Type 4 card
- $15 Adafruit Acrylic Case
- $13 AirLink 101 WiFi Adapter
Setting Up Google Voice. If you want free calling in the U.S. and Canada, then you’ll need a Google Voice account, and you’ll need one dedicated to Incredible Pi, or it won’t work. Log out after setting up the new Google Voice account!
- Register for Google Voice account (no funky characters in your password!)
- Enable Google Chat as Phone Destination
- Configure Google Voice Calls Settings:
- Call Screening – OFF
- Call Presentation – OFF
- Caller ID (In) – Display Caller’s Number
- Caller ID (Out) – Don’t Change Anything
- Do Not Disturb – OFF
- Call Options (Enable Recording) – OFF
- Global Spam Filtering – ON
- Place test call in and out using GMail Call Phone
Baking Your Incredible Pi. The disk drive for the Raspberry Pi is an SD card. So what you need to do is download Incredible Pi and copy the image onto an SDHC card. Mac and Linux installers are included. For Windows, just use Win32 Disk Imager. Here are the steps:
- Download the Incredible Pi package
- Decompress the tarball: tar zxvf incrediblepi-version.tar.gz
- Copy .img file to SDHC using image utility or script
- Insert SDHC card into Raspberry Pi
- Boot the Raspberry Pi from Incredible Pi SDHC card
HINT: While you’re waiting, you can read about all the latest changes and additions to Incredible Pi 2.1 here.
Your First Bite of Incredible Pi. If you’re not using a monitor and will be using SSH to access Incredible Pi, then you need to plug in some earbuds when the bootup process begins. Listen for the Incredible Pi to tell you its IP address when the boot procedure completes. Then login to that IP address with SSH as outlined below.
Here’s everything you need to know about security for Incredible Pi:
1. ALWAYS RUN INCREDIBLE PI BEHIND A SECURE HARDWARE-BASED FIREWALL/ROUTER
2. NEVER EXPOSE ANY INCREDIBLE PI PORTS DIRECTLY TO THE INTERNET
3. NEVER MAP INBOUND INTERNET PORTS FROM YOUR FIREWALL TO INCREDIBLE PI
There also are a few setup steps to complete once your Incredible Pi finishes the bootup process:
- Login to Incredible Pi… username: pi pw: raspberry
- Change password for pi… passwd
- Change password for root… sudo passwd root
- Logout as user pi… logout
- Login as root user… username: root pw:your-new-password
- Set Linux timezone… dpkg-reconfigure tzdata
- Set PHP timezone… nano -w /etc/php5/apache2/php.ini (Ctl-W, Ctl-T, 876)
- Restart web server… service apache2 restart
- Replace SSH keys… rm /etc/ssh/ssh_host_* && dpkg-reconfigure openssh-server
- Set Up WiFi Credentials (optional)… nano -w /etc/wpa.conf
- Set Primary and (optional) Secondary NIC… nano -w /etc/pbx/.nic
- Reboot Your Server… reboot
Accessing Incredible Pi By GUI. You don’t have to be a Linux guru to use Incredible Pi. In fact, we’re just about finished with the Linux command prompt, but stay logged in until we finish the steps below. Most of your configuration of the PBX will be performed using the FreePBX® Web GUI.
If you’re new to Asterisk and FreePBX, here’s the one paragraph primer on what needs to happen before you can make free calls with Google Voice. You’ll obviously need a free Google Voice account. This gets you a phone number for people to call you and a vehicle to place calls to plain old telephones throughout the U.S. and Canada at no cost. You’ll also need a softphone or SIP phone to actually place and receive calls. YATE makes a free softphone for PCs, Macs, and Linux machines so download your favorite and install it on your desktop. Phones connect to extensions in FreePBX to work with Incredible Pi. Extensions talk to trunks (like Google Voice) to make and receive calls. FreePBX uses outbound routes to direct outgoing calls from extensions to trunks, and FreePBX uses inbound routes to route incoming calls from trunks to extensions to make your phones ring. In a nutshell, that’s how a PBX works. There are lots of bells and whistles that you can explore down the road.
Let’s get started. Using a browser, enter the IP address of your server. Choose FreePBX Administration. When prompted for a username and password, use admin for both. Here are the six steps you need to complete before making your first free call:
- Change FreePBX admin Password and Default Email
- Add Google Voice Account credentials
- Set Destination for Incoming Calls
- Change Extension 701 Passwords
- Eliminate Audio and DTMF Problems
- Install and Register a Softphone to Extension 701
1. Changing FreePBX admin Password and Default Email. From the main FreePBX GUI, click Admin => Administrators. Click on admin user in the far-right column. Enter a new Password and click Submit Changes button. Then click the Apply Config button. Next, set your default email address at the bottom of Settings -> General Settings. Repeat the procedure above to save your entry.
2. Activating a Google Voice Trunk. To create a Trunk in FreePBX to handle calls to and from Google Voice, you’ll need three pieces of information from the Google Voice account you set up above: the 10-digit Google Voice phone number, your Google Voice account name, and your Google Voice password. Choose Other -> Google Voice from the FreePBX GUI. The following blank form will appear:
Fill in the blanks with your information and check all 3 boxes. If your Google Voice account name ends in @gmail.com, you can leave that out. Otherwise, include the full email address. Then click Submit Changes and Apply Config.
There’s one more step or your Google Voice account won’t work reliably with Incredible Pi! From the Linux command prompt while logged into your server as root, restart Asterisk: amportal restart
3. Setting a Destination for Incoming Calls. Now that you’ve created your Google Voice Trunk, we need to tell FreePBX how to process inbound calls when someone dials your Google Voice number. There are any number of choices. You could simply ring an extension. Or you could ring multiple extensions by first creating a Ring Group which is just a list of extension numbers. Or you could direct incoming calls to an Interactive Voice Response (IVR) system (we’ve actually set one up for you to play with).
By default, Incredible Pi is configured to route all incoming calls to a demo IVR that shows off some of the applications that come with Incredible Pi. You can change whenever you like by choosing Connectivity -> Inbound Routes -> Default. In the Set Destination section of the form, change the target to Extensions and then select 701 from the list. Then click Submit and Apply Config.
4. Changing Extension Passwords. From the main FreePBX GUI, choose Applications -> Extensions. Then click on 701 in the Extension List on the right side of your display. You’ll see a form that looks like this:
For now, we only need to make a few changes. First, you need a very secure password for both the extension itself and your voicemail account for this extension. The extension secret needs to be a combination of letters and numbers. The Voicemail Password needs to be all numbers, preferably six or more. Replace the existing 1234secret and 1234 with your own (very secure) entries. You also need to lock down this extension so that it is only accessible from devices on your private LAN. You do that with the deny and permit entries which currently are filled with zeroes. Leave the deny entry the way it is which tells Incredible Pi to block everybody except those allowed in the permit entry below. For the permit, we need the first three octets of your private LAN address, e.g. if your LAN is 192.168.0.something then the permit entry will be 192.168.0.0/255.255.255.0.
Finally, you need to plug in your actual email address in the Voicemail section so that voicemails can be delivered to you when someone leaves a message. You can also include a pager email address if you want a text message alert with incoming voicemails. If you want the voicemails to automatically be deleted from the server after they are emailed to you (a good idea considering the disk storage limitations of an SDHC card), change the Delete Voicemail option from No to Yes. That’s it. Now save your settings by clicking the Submit button. Then reload the dialplan by clicking on the red prompt when it appears.
In case you’re curious, unless you’ve chosen to automatically delete voicemails after emailing them, you can retrieve your voicemails by dialing *98701 from any extension on your phone system. You’ll be prompted to enter the voicemail password you set up. In addition to managing your voicemails, you’ll also be given the opportunity to either return the call to the number of the person that called or to transfer the voicemail to another extension’s voicemail box. And you can always leave a voicemail for someone by dialing their extension number preceded by an asterisk, e.g. *701 would let someone leave you a voicemail without actually calling you.
5. Eliminating Audio and DTMF Problems. You can avoid one-way audio on calls and touchtones that don’t work with these simple settings in FreePBX: Settings -> Asterisk SIP Settings. Just plug in your public IP address and your private IP subnet. Then set ULAW as the only Audio Codec.
6. Setting Up a Desktop Softphone. Incredible Pi supports all kinds of telephones, but we’ll start with the easy (free) one today. You can move on to "real phones" once you’re smitten with the VoIP bug. For today, you’ll need to download a softphone to your desktop PC or Mac.
As we mentioned, the easiest way to get started with Incredible Pi is to set up a YATE softphone on your Desktop computer. Versions are available at no cost for Macs, PCs, and Linux machines. Just download the appropriate one and install it from this link. Once installed, it’s a simple matter to plug in your extension 701 credentials and start making calls. Run the application and choose Settings -> Accounts and click the New button. Fill in the blanks using the IP address of Incredible Pi, 701 for your account name, and whatever password you created for the extension. Click OK.
Once you are registered to extension 701, close the Account window. Then click on YATE’s Telephony Tab and place your first call. It’s that easy!
Monitoring Call Progress with Asterisk. That about covers the basics. We’ll leave you with a tip on how to monitor what’s happening with your PBX. There are several good tools within the FreePBX GUI. You’ll find them under the Reports tab. In addition, Asterisk has its own Command Line Interface (CLI) that is accessible from the Linux command prompt. Just execute the following command while logged in as root: asterisk -rvvvvvvvvvv.
Once you’ve done some exploring, take a few minutes to read the more detailed Nerd Vittles tutorials on Incredible Pi and Incredible PBX. We now have a complete tutorial on all 35 Incredible PBX applications that are included in the build. Take a quick look at your convenience. Enjoy!
Don’t forget to List Yourself in Directory Assistance so everyone can find you by dialing 411. And add your new number to the Do Not Call Registry to block telemarketing calls. Or just call 888-382-1222 from your new number.
Originally published: Tuesday, September 11, 2012
Support Issues. With any application as sophisticated as this one, you’re bound to have questions. Blog comments are a terrible place to handle support issues although we welcome general comments about our articles and software. If you have particular support issues, we encourage you to get actively involved in the PBX in a Flash Forums. It’s the best Asterisk tech support site in the business, and it’s all free! In fact, there is a thread dedicated to support of Incredible Pi. Please have a look and post your support questions there. Unlike some forums, ours is extremely friendly and is supported by literally hundreds of Asterisk gurus and thousands of ordinary users just like you. You won’t have to wait long for an answer to your question.
Bug Fixes. A few bugs are to be expected. If you’re using Incredible Pi, please review these on the PIAF Forum at your convenience.
Astricon 2012. Astricon 2012 will be in Atlanta at the Sheraton beginning October 23 through October 25. We hope to see many of you there. We called Atlanta home for over 25 years so we’d love to show you around. Be sure to tug on my sleeve and mention you’d like a free PIAF Thumb Drive. We’ll have a bunch of them to pass out to our loyal supporters. Nerd Vittles readers also can save 20% on your registration by using coupon code: AC12VIT.
Need help with Asterisk? Visit the PBX in a Flash Forum.
whos.amung.us If you’re wondering what your fellow man is reading on Nerd Vittles these days, wonder no more. Visit our new whos.amung.us statistical web site and check out what’s happening. It’s a terrific resource both for us and for you.
Special Thanks to Our Generous Sponsors
FULL DISCLOSURE: ClearlyIP, Skyetel, Vitelity, DigitalOcean, Vultr, VoIP.ms, 3CX, Sangoma, TelecomsXchange and VitalPBX have provided financial support to Nerd Vittles and our open source projects through advertising, referral revenue, and/or merchandise. As an Amazon Associate and Best Buy Affiliate, we also earn from qualifying purchases. We’ve chosen these providers not the other way around. Our decisions are based upon their corporate reputation and the quality of their offerings and pricing. Our recommendations regarding technology are reached without regard to financial compensation except in situations in which comparable products at comparable pricing are available from multiple sources. In this limited case, we support our sponsors because our sponsors support us.
BOGO Bonaza: Enjoy state-of-the-art VoIP service with a $10 credit and half-price SIP service on up to $500 of Skyetel trunking with free number porting when you fund your Skyetel account. No limits on number of simultaneous calls. Quadruple data center redundancy. $25 monthly minimum spend required. Tutorial and sign up details are here.
The lynchpin of Incredible PBX 2020 and beyond is ClearlyIP components which bring management of FreePBX modules and SIP phone integration to a level never before available with any other Asterisk distribution. And now you can configure and reconfigure your new Incredible PBX phones from the convenience of the Incredible PBX GUI.
VitalPBX is perhaps the fastest-growing PBX offering based upon Asterisk with an installed presence in more than 100 countries worldwide. VitalPBX has generously provided a customized White Label version of Incredible PBX tailored for use with all Incredible PBX and VitalPBX custom applications. Follow this link for a free test drive!
Special Thanks to Vitelity. Vitelity is now Voyant Communications and has halted new registrations for the time being. Our special thanks to Vitelity for their unwavering financial support over many years and to the many Nerd Vittles readers who continue to enjoy the benefits of their service offerings. We will keep everyone posted on further developments.
Some Recent Nerd Vittles Articles of Interest…
You say
3. NEVER MAP INBOUND INTERNET PORTS FROM YOUR FIREWALL TO INCREDIBLE PI
So does that mean you can’t have any offsite extensions, for example users with VoIP adapters such as those made by Obihai, Cisco, Grandstream, etc. or with IP phones? I don’t understand how such devices or phones would be able to register with Asterisk if port 5060 at a minimum isn’t mapped to the device. Would I be correct in thinking that you are advising this because the provided software doesn’t have any sort of firewall such as iptables? If so that rather limits the usefulness of the Raspberry Pi in this application. Still, I suppose that in a way this is like the proverbial dancing bear, in that the fact that it works at all is amazing.
[WM: This article was primarily for beginners. Read the original article if you want to use offsite extensions. All of the security components to support it (including preconfigured IPtables and Travelin’ Man 3) are already in place.]
Can’t find a source for your Raspberry Pi purchase? Here’s a reputable eBay supplier with inventory and free shipping for only $50.
If I paired this with an ATA adapter, would the raspberry/PBX be up to call screening and voicemail work? I’d love to have a low-power system that can handle hanging up on telemarketers, surveys, political calls and my mother-in-law.
[WM: Perfect mother-in-law device. Just add the Blacklist app in FreePBX (Admin -> Module Admin -> Check Online), and you’re all set.]
I purchased the recommended power adapter, two of them actually, and they do not provide enough power to run the Pi with just the ethernet and hdmi ports connected. My iPad adapter is working until I can find a better power adapter. Buyer beware…..
[WM: As we have indicated from the outset, it depends upon what you plug into the ports. We’ve had no problems with a 5V, 1A power supply using a standard USB keyboard, an AirLink 101 WiFi adapter, and an HDMI cable connected to a monitor or TV. We’ve evaluated many adapters. You can review the results here. YMMV!]
Have you done any testing with G729 codec?
WM: Probably not a good platform for transcoding. The processing would bring a RasPi to its knees.
Apparently with the newest image file dated this March 05, 2013, the user name is either not pi or the password is not raspberry, making it useless to all at this point.
[WM: As the latest documentation AND the readme file on SourceForge make clear: "Only the root user account is included, and the default password is raspberry. Change the password when you first log in."]