We spent a lot of time building Incredible PBX™ for Raspberry Pi™. But, what many developers forget to do is to answer the question: What Can It Do? Today we’ll walk you through all 35 Incredible PBX applications that we’ve managed to squeeze onto the $35 Raspberry Pi. And, you don’t have to pick Raspberry Pi or Incredible Pi™. It’s $35 for the hardware AND this ginormous collection of free software. Our special thanks goes out to the dozens of developers that have spent years building all of these terrific applications. If you’re just getting started, you’ll want to begin by reviewing our Version 3.7 Quick Start Guide or the just released Version 3.11 Quick Start Guide.
Once you have Incredible PBX 3.7 or 3.11 installed and running, read on to learn what you can do with your new toy. Here’s a quick thumbnail. In addition to free Google Voice calling in the U.S. and Canada, Incredible Pi supports 5+ simultaneous calls which is more than ample for most homes and small businesses. And you get virtually everything that a full-blown PBX offers: voicemail, music on hold, call forwarding and follow-me, IVRs and AutoAttendants, call blacklists, and even a preconfigured, rock-solid Linux firewall with IP address whitelisting. But, what separates Incredible PBX from the pack is its 35 bundled, preconfigured applications. You’d be hard pressed to add them to any commercial PBX without also giving them your new car. So, from A to Z, meet the Incredible PBX “Fab 35” for the $35 Raspberry Pi…
Call our demo Raspberry Pi (1-843-284-6844) and take it for a spin to judge the quality for yourself.
1. AsteriDex. A MySQL-based address book that can be managed inside the FreePBX® GUI: Other -> AsteriDex. Can be used for CallerID lookups with CallerID Superfecta, e.g. unpublished cell phone numbers of your friends. Can be used for Speed Dials by embedding 3-digit Dial Codes in each entry. Dial 00 + 3 digits to connect. Use 000 with Incredible PBX 3.11. Can be used for Speech-to-Text Calling by Name. Dial 411, say the name of an entry in your AsteriDex database, and press pound (#). Or access AsteriDex with a browser and click on any entry to place a call after designating an extension on your system to handle calls placed with AsteriDex. Click-to-Dial Bug Fix for 3.3 here. No patch required with 3.5 or later releases.
2. Asterisk Info. Accessible in FreePBX GUI: Reports -> Asterisk Info. Displays Asterisk® SIP, IAX, and Google Voice/Jabber Connections, Registrations, Active Channels, Peers, and much more.
3. Blacklist. Block Annoying Callers, Ex-Spouses, and Anonymous Callers by simply entering the numbers to block and checking the Block Anonymous box. Accessible in FreePBX GUI: Admin -> Blacklist.
4. CallerID Superfecta. Open-source app that provides CallerID name lookups from dozens of sources. Accessible in FreePBX GUI: Other -> CID Superfecta. Choose Default setup. Then choose the desired lookup sources. Select the order of the lookups. First hit wins. Also includes testing facility to assist in choosing quickest and best lookup sources.
5. CallWho. Speech-to-Text Dialing in conjunction with AsteriDex database. Dial 411 and say the name of the person or company to call. Press pound (#). Looks up names by firstname, lastname AND lastname, firstname. For certain names like Katherine, you may need to add duplicate AsteriDex entry for Catherine since CallWho uses soundex codes for lookups. Watch Asterisk CLI to see what CallWho thinks you said. Then make appropriate additions to AsteriDex.
6. CDR Reports. Call Detail Reports of various flavors to show incoming and outgoing calls from Incredible PBX. Accessible in FreePBX GUI: Reports -> CDR Reports. Includes Boolean searches, call graphs, and CSV data exports.
7. Config Edit. A web-based editor to manage Asterisk configuration files that are "safe" to edit and won’t be overwritten by FreePBX reloads. You still need to be very careful. Accessible in FreePBX GUI: Other -> Config Edit.
8. Email and TTS Announcements of IP Addresses. For those lacking a monitor, you now can totally manage Incredible Pi using a web browser from any PC or Mac. But, to access Incredible Pi via SSH (#16 below), you’ll need to know the DHCP-assigned IP address. We provide two ways to obtain it. First, you can plug in a set of earbuds when you boot Incredible Pi, and the system will tell you its IP address at the end of the boot process. With version 3.x, you can carefully edit1 /etc/init.d/freepbx and uncomment line 70 after inserting your actual email address.
There’s another little trick you might want to try. Beginning with the 3.x releases, you can take advantage of Bonjour to access your server via SSH using root@incrediblepbx.local. It also works with a browser to access the FreePBX GUI: http://incrediblepbx.local. So you no longer need an IP address to gain access.
9. Feature Codes. Incredible Pi includes an expandable and tailorable list of Feature Codes that can be used from phones connected as extensions on your system. The 50 predefined Feature Codes are accessible in the FreePBX GUI: Admin -> Feature Codes. Here’s the default list:
10. Follow Me and VmX Locater™. Two very sophisticated FreePBX call forwarding applications that provide enormous flexibility in determining how incoming calls to various extensions should be routed. It is accessible in the FreePBX GUI: Applications -> Follow Me and also through the ARI interface on the web page at the IP address of your server. Here’s a link to the complete tutorial.
11. Gmail SMTP Relay. If your ISP blocks downstream mail servers, it means your server won’t be able to send email messages directly to recipients. Not to worry! Just run the /root/use-gmail-smtp-relay script to reconfigure SendMail to use any Gmail account as an SMTP relay host. Thank you, Comcast!
12. Google News by Phone. Need a quick news update? Pick up any phone on your system and dial 951. Or you can offer it to callers by leaving nv-ivr as the default inbound route for your Google Voice trunks. Choose 1 from IVR menu.
13. Google Stocks by Phone. Keep up with your favorite stocks. Dial 950 and say the name of the company you’d like to track. For best results, use phonetic words for the stock symbol letters. For example, Apple would be Alpha, Alpha, Papa, Lima. Also works from the IVR menu. Just press 3.
14.Hotel-Style Wakeup Calls. Works exactly like the wakeup calls in your favorite hotel. Pick up any phone on your system and dial *68. Includes snooze. Configuration available through FreePBX GUI: Other -> Wake Up Calls to let you schedule wake up calls for others using designated extensions.
15. Interactive Voice Response (IVR) System. A full-featured, menu-driven IVR editor is included in FreePBX: Applications -> IVR. We’ve included a sample to get you started. Just click on nv-ivr to display its settings. You can delete and add options to your IVRs in seconds. The sound file that you play to introduce your IVR need not include all the available choices. We call this a Stealth AutoAttendant because callers need not know that an IVR is even available. Here’s how we’ve actually reconfigured the demo IVR that you can reach by dialing 1-843-284-6844. You’ll note that some of the IVR selections have been removed, and a 0 option has been added to access the new Conference Bridge in version 3.3 and beyond.
16. JAVA SSH Web Client. No external SSH app is required to access your server. You can log into your Incredible PBX 3.7 server via SSH from within the FreePBX GUI: Admin -> Java SSH. Disregard the maint login instructions. That’s for PBX in a Flash servers.
17. Music on Hold Management. You can easily manage your Music on Hold collection within the FreePBX GUI: Settings -> Music on Hold. MP3 files are not recommended on the Raspberry Pi because of performance issues. So use WAV files with Sample Rate: 8 KHz, Bit Depth: 8 bits, and Channels: 1. Here’s how to convert any MP3 file to WAV for use with Asterisk: sox sample.mp3 -c 1 -r 8000 sample.wav.
18. phpMyAdmin. Manage all of your MySQL databases from within the FreePBX GUI: Other -> phpMyAdmin. phpMyAdmin is one of the best database management tools in the business.
19. PPTP Virtual Private Networking. Quickly enable the PPTP VPN client on Incredible Pi to securely access all of the resources on any existing PPTP VPN. To set up a PPTP VPN, read the Nerd Vittles tutorial. To enable the Incredible Pi PPTP VPN client, edit /etc/ppp/peers/my-pptp-server and insert your credentials. Run rcconf as root and activate pptp and pppd-dns. Then reboot.
20. Reminder Scheduling by Phone or Web. Telephone Reminders are awesome even if we did write it. To schedule a reminder or recurring reminder, pick up any phone and dial 123. You can also schedule and manage reminders within the FreePBX GUI: Other -> Reminders. A password can be added by uncommenting the 123,n,Authenticate line and changing the default entry in /etc/asterisk/extensions_custom.conf. Bug Fix for 3.3 here. No patch required with 3.7.
21. Ring Groups. Ring Groups allow you to Ring a Group of extensions by dialing a certain number. You also can specify a Destination when nobody answers, e.g. an IVR or a voicemail account. Add, Delete, and Manage Ring Group entries within the FreePBX GUI: Applications -> Ring Groups.
22. SAMBA Windows Networking. If you’re a Microsoft Windows fan and use Windows Networking, it’s easy to add Incredible Pi as a note on your network. While logged into your server as root, set up a SAMBA password for user root: smbpasswd -a root. Edit /etc/samba/smb.conf and set the appropriate Windows workgroup. Run rcconf as root and activate samba. Then reboot.
23. SMS Dictator. Pick up any phone and dial 767 (S-M-S). Dictate an SMS message to deliver. When prompted, say the name of someone in your AsteriDex database whose phone number has SMS capability. Before this will work, edit /etc/asterisk/extensions_custom.conf and add your Google Voice credentials (GVACCT and GVPASS) in ext. 767.
24. SMS Message Blasting. Send out SMS messages to a group of individuals with this handy script. Log into your server as root. Edit /root/smsmsg.txt and insert the SMS message you wish to send. Edit /root/smslist.txt and add either phone numbers or email addresses with (optional) names of the recipients. Run the script to send the messages via SMS for phone numbers or via SendMail for email entries: /root/smsblast.
25. Speed Dial with AsteriDex (00+). Assign a 3-digit Dial Code in AsteriDex for each of your contacts, e.g. the telephone keypad numbers matching the first three letters in a contact’s name like 263 for American Airlines. Then, to call that contact with Speed Dial, dial 00263 using any phone.
26. Stealth AutoAttendant. Create a generic recording to thank callers for contacting you: Admin -> System Recordings. Or just use our generic welcoming message: nv-GenericWelcome. Create an IVR using one of these recordings as your Announcement message. Create an IVR menu of features on your PBX that you want to enable for "those in the know." Make this IVR the Inbound Route destination for one or more of your Trunks.
27. Status Reporting for FreePBX. Within the FreePBX GUI, you can get a real-time display of how your server is functioning: Reports -> FreePBX System Status.
28. Status Reporting for Incredible PBX. Whenever you log into your server, you’ll get a status snapshot of how your server is functioning. You also can run it at any time with the command: status. Check it regularly. Clean out your mail often by typing: mail. Check the size of your log files: ls -all /var/log. And be alert to low memory or disk conditions. Memory can usually be restored to sane levels by clearing the cache: /root/clear-cache.
29. System Recordings. FreePBX includes a facility to create recordings and integrate them into the FreePBX GUI: Admin -> System Recordings. You can either import a recording or create a new one by selecting an extension on your system and then by dialing *77 from that extension.
30. Time of Day. We’ve added a Time of Day feature that mimics the old Ma Bell system. From the default IVR, choose option 4. You can integrate this into your IVRs by adding Custom Destination -> Time as an IVR option.
31. Travelin’ Man 3 WhiteLists. We strongly recommend that you always run Incredible PBX behind a hardware-based firewall with no Internet port exposure to your server. But, for those with telephones at remote sites, we appreciate that sometimes this isn’t always possible. So your server includes a preconfigured Linux firewall, iptables, that is preconfigured to block access except for private (non-routable) networks and trusted VoIP providers. You can add additional safe IP addresses and FQDNs using the Travelin’ Man 3 tools included in the /root directory. Before using any of these tools, please read the Travelin’ Man 3 tutorial.
32. Voicemail Delivery by Phone or Email. FreePBX includes all of the necessary tools to let you manage voicemail on your server. For each FreePBX extension, you can determine whether to enable voicemail and specify notification options as well as how the voicemails can be retrieved, either by phone (*98), email, or text message. You can also specify whether incoming voicemails should be deleted after sending them to an email address. You obviously would want to test this throughly before implementing it to make certain the voicemails arrive reliably.
33. Weather by Zip Code (NOAA). Get the latest weather forecast for almost any zip code in the United States courtesy of the National Weather Service. Dial 947 (Z-I-P) and key in the 5-digit zip code desired.
34. Worldwide Weather by Phone (Weather Underground). You’ll need a free Weather Underground API key to use this one. Once you have it, insert it on line 21 of nv-weather-wunderground.php in /var/lib/asterisk/agi-bin. Now you can get what we think are the best worldwide weather forecasts in the business. Dial 949 and say the name of the city and state or, for worldwide weather forecasts, say the name of the city and country.
35. Worldwide Weather by Phone (Yahoo). Get the latest weather forecast for almost any city in the world. Dial 948 and say the name of the city and state or, for worldwide weather forecasts, say the name of the city and country. Also works from the IVR menu. Just press 2.
36. BONUS: Conference Bridge. If you’ve installed version 3.3 or later, there’s an awesome bonus application, a full-featured Conference Bridge. We’ve tested it with up to 9 callers chatting away. If you have the Internet bandwidth (100K per caller) to support it, you’re in for quite a treat. Just point a trunk at nv-ivr and tell callers to call the number and press zero to join the conference. Then enter 1234 when prompted for the conference PIN. For phones connected directly to Incredible PBX, just dial C-O-N-F to join the conference. Complete details are available in the 3.7 Quick Start Guide.
37. BONUS 3.2 App: SysInfo. The popular SysInfo application has been added in FreePBX Reports.
38. BONUS 3.2 App: Bluetooth Proximity Detection. The modules and code required to support Bluetooth Proximity Detection and forward your calls to your cell when you’re away has been added. Read the documentation. Insert your credentials in /etc/proximity. Then activate the proximity monitor by uncommenting the command in /etc/crontab.
39. Interconnecting Asterisk Servers with Incredible PBX and the Raspberry Pi.
40. Incredible Fax for 512MB Raspberry Pi. The complete tutorial is available here.
41. Just Released: Incredible PBX 3.11. Complete tutorial available here.
Whew. Enjoy!
Originally published: Monday, September 17, 2012
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…
- To configure some of the Incredible PBX apps, you are instructed to edit a specific config file. Some of these files are not accessible using Config Edit. This is our shorthand way of saying: (1) log into your server via SSH as root using your root password and (2) edit the specified file using a text editor, e.g. nano -w filename and (3) save your changes to the file: Ctrl-X, Y, then Enter and (4) logout of your server. [↩]
Incredible Pi is great! I’ve changed my old laptop PBX with Pi and it works really good except it sometimes doesn’t recognise DTMF tones. I have 2 SIP trunks, one from local provider and one with cheap world calls. Two Linksys SPA2012 are used for my home extensions and I have some SIP extensions for my mobile devices. When I don’t have 3G or Wi-Fi coverage I’m using my mobile phone to call my home SIP number and then with a program called Pefixer I dial the numbers from my phonebook. This worked perfectly with the old setup (PIAF 2.0.6.0, FreePBX 2.9.0.12, Asterisk 1.8.8.0) with dtmfmode=auto setting. The problem occurs trough DISA application and trough IVR. I’ve tried all possible dtmfmode options, also relaxdtmf=yes, rfc2833compensate=yes, ulaw, alaw codecs. DTMF debugging log is empty when problem occurs, not a single digit is recorded no meter how many are pressed. I’ve tried the same with three latest versions of Incredible Pi. I’ve tried switching the timing module, no luck with that also, so I’m kind of stuck and before I continue to Wireshark could you please shed some light.
[WM: Make sure you have ULAW as the default on your phone.]
We now have conferencing working. We’re going to include it in next week’s release with a little luck.
Use Bluetooth Proximity Detection with your Raspberry Pi to Forward Calls to Your Cell When You’re Away. Here’s how: http://nerd.bz/PDUoGi
Bug fixes have been released for the web-based AsteriDex Click-to-Dial application as well as the web-based Telephone Reminders scheduling app. Here’s a link to the fixes.
WOW! That is totally cool that you went through all this and did this write up! I love it! Implementing a test system for a customer, and I am truly impressed with the the "Free PBX" interface. Keep it up.
p.s. the "VoIP on Steroids: Introducing Incredible PBX 3.3 for the $35 Raspberry Pi" is totally AWESOME as well!
Can’t seem to find the /root/use-gmail-smtp-relay script. Did it get included in the 3.5 version?
[WM: Richard: We’ve switched to Exim from SendMail. It’s covered in the main article, but you can find the instructions for configuring an SMTP relay with Exim here.
Does Skype working on the Raspberry Pi?
[WM: Not yet. There’s no version for this ARM processor.]
I’ve only just stepped into the PBX world, and the Incredible PBX on the raspberry pi is absolutely great! Plus having a few settings to give me an idea of how to configure other settings really helps me wrap my head around all of the options included!
Great job on this! I think I’ve got to switch from my freepbx install over to Incredible PBX, I love the added features!
I have installed Incredible Pi 3.11 and it works really great – thanks for the excellent information. One thing I could not fix: In Europe international numbers are dialled using 00+country_code+area_code+number. Google Voice does not allow dialling 00. I tried to edit an outbound route which would accomplish that but failed. Would you have any suggestions how I could to get this done? Thanks.
OK – pretty neat.
I see it as 30% cpu with no users.
How many users/calls can it handle simultaneously ?
What about when transcoding occurs.
Not critisizing…just genuinely curious.
[WM: I would think about 5-10 simultaneous ULAW calls assuming you have the bandwidth to support it. This isn’t the proper hardware if you want transcoding.]
I’m considering setting up Incredible Pi for our local summer rec group.
I’m wondering if there’s a way built in to have it basically "robo-call" people with a recorded message so that things like game cancellations or schedule changes could be sent? Worst case I’ll use the SMS blasting but would like to not have to assume everyone has text capabilities.