VoIP on Steroids: Introducing Incredible PBX 3.7 for the $35 Raspberry Pi

We feel like a kid in a candy store with our new $35 Raspberry Pi® Model B. Imagine squeezing a 700 mHz ARM processor with 512MB of RAM, 2 USB ports, a 10/100 Ethernet port, an HDMI port, composite video, a separate audio jack, an SDHC card slot, and a micro USB port onto a motherboard the size of a credit card with a total weight of 1.6 ounces and a typical power draw of 3.5 watts. Thanks to Gernot and his Asterisk for Raspberry Pi project, a full LAMP stack with Asterisk® and FreePBX® gave us a head start on turning the Raspberry Pi into yet another Incredible PBX™ platform complete with free Google Voice™ calling through 2013.1

WARNING: The Incredible PBX 3.7 image will not boot with the very latest Raspberry Pi boards. These boards require Incredible PBX 3.11. For the latest tutorial featuring Incredible PBX 3.11 for the Raspberry Pi, go here.

Trust us when we say the performance of this $35 computer is nothing short of amazing. Can it do everything a $200 dual-core Atom PC can do? No. Can it do 90% of everything for someone whose requirements do not exceed a few simultaneous calls at a time but still wants a full-blown PBX for call routing, voicemail, IVRs, music on hold, and text-to-speech and speech-to-text apps for a home, a SOHO office, a Little League team, or a dorm room? Absolutely. We’re now at the two-month mark with this project, and the Raspberry Pi Foundation already has released a 512MB version of the computer at the same price AND new firmware that autodetects the proper memory setup depending upon whether you have a 256MB or 512MB Pi. Version 3.5 and beyond incorporates the new firmware into Incredible PBX.

The honeymoon isn’t over yet. Incredible Pi™ 3.5 featured the very latest Debian 7 firmware specifically tailored for the Raspberry Pi™ from its developers. You can read all about it here. Is it better? Can you spell ROCKET SHIP? With a reliable power supply, you now can overclock the Raspberry Pi and join the 1GHz Club. That represents a 50% performance improvement. And doubling the RAM to 512MB now makes the Raspberry Pi a near perfect VoIP platform. Better yet, the Raspbian kernel handles management of the overclocking so you never have to confront Fried Raspberry Pi. When the CPU temperature gets too high, the kernel will throttle things back to avoid a disaster. And version 3.7 adds Incredible Fax to the platform for those with a 512MB Raspberry Pi. The complete tutorial is available here.

Eben Upton Visits Charleston. The developer of the Raspberry Pi, Eben Upton, and his lovely wife, Liz, made a brief appearance in Our Town last Thursday night. Makelab Charleston, in cooperation with the College of Charleston and the Lowcountry Graduate Center, hosted the event. With an SRO crowd, we all got to hear the Raspberry Pi story first hand. If you missed the presentation, you missed a real treat.

What’s New in Incredible PBX 3.x. For those of you already running a previous version, here’s a quick thumbnail of the other new features in addition to overclocking. We’ve tried to mimic as much of the previous builds as possible. But keep in mind that this is a new creation from the ground up because there was no migration path from Debian Squeeze and Wheezy to Raspbian. But we keep good notes, and Gernot did much of the heavy lifting. :wink:

SECURITY ALERT: Incredible PBX 3.7 addresses a serious security flaw in prior versions of Asterisk. With the exception of the new Asterisk release incorporated into this release, the functionality is identical to Incredible PBX 3.6.

Incredible PBX 3.5 and beyond added automatic detection and support of 512MB Raspberry Pi devices without touching anything. And the latest version 3.7 adds an awesome fax server to Incredible PBX for those with a 512MB board. The complete tutorial is available here. update-my-pi in the /root folder of your server helps to safeguard your system by bringing it up to date with the latest fixes and enhancements. After running it the first time, it gets run automatically whenever you log in as root. For the safety of your server, don’t disable it! It’s free for the first ten updates, and then it’s just $20 a year. We have to eat, too. If you are philosophically opposed to ever spending a dime to support the open source movement, then feel free to load the latest version of Incredible PBX at no cost whenever you like. It will always be free! Then you can restore your settings using the backup and restore feature built into FreePBX.

To enable overclocking at your own risk, run: raspi-config. Overclocking works for us. YMMV! The key is a good power supply. If you’re using an SD card larger than 4GB, version 3.3 and beyond now can resize your partitions on the fly. Just choose the option in raspi-config and reboot. Even though the kernel now monitors CPU temperature and manages overclocking, it’s always nice to see for yourself. To monitor the CPU temperature, just run the status program which provides a current snapshot anytime. Temperature data now is provided on the FreePBX Dashboard as well.

There’s more good news. Networking is much more stable; however, we’ve dropped support for the TP-Link WiFi adapters. If you still have one of these, see the setup instructions in the PIAF Forum. Otherwise you’ll need the recommended AirLink 101 N-150 if you want WiFi capability. In the 3.3 release and beyond, your server will automatically attempt to connect to any open WiFi network that it can find. We’ve also added two scripts in /root to let you restart either your wired or wireless network and designate it as the primary network: restart-eth0 and restart-wlan0. Time zone management was also a bit of mess with multiple file settings required to support both Linux and PHP. In the 3.3 update and beyond, you’ll be prompted to select your timezone when you first log in as root. The setup script will automatically apply your entry in all the right places. We’ve also replaced SendMail with Exim to simplify the process of using an SMTP mail gateway such as Gmail. We’ve documented the procedure for making the change here.

As part of the 3.x migration, we’ve also eliminated the pi user account. Everything you need to do to configure Incredible PBX requires root permission. So goodbye sudo. Only the root user account is included, and the default password is raspberry. Change the password when you first log in. New SSH and DUNDI keys now are automatically generated when you first boot your server. The FreePBX Backup and Restore Utility is included in this new build. AsteriDex SpeedDials have been fixed. Enter 3-digit Dial Codes in AsteriDex, and you can call by dialing 00nnn. In the latest update, Telephone Reminders again work.

X Windows is included in this build. This won’t work with SSH. For a demo slideshow, plug in a real monitor and log in as root. In the /root folder, enter the command: startx. To end the slideshow, press ESCape. To disable the slideshow: mv .xinitrc xinitrc. To add photos, copy .jpg images into /root/slideshow. No mouse is required for the slideshow but, if you run X Windows natively, you’ll need a USB mouse. The SMS Blasting app in /root now supports phone numbers (which use SMS) and email addresses (which use SendMail).

Last but not least, a sophisticated Conference Bridge has been added to Incredible PBX 3.x releases. If you route one of your inbound DIDs to the predefined IVR, users can press 0 and enter 1234 for the conference PIN to join the conference. Local extensions simply dial C-O-N-F. We’ve already tested a 9-person conference call with excellent results. But don’t take our word for it. Try it for yourself. Just call our demo Raspberry Pi AutoAttendant and take the Conference Bridge and a handful of other Incredible PBX™ apps for a test drive:

And here’s what the conference call looked like in the FreePBX Dashboard:

So you don’t have to jump around between articles, we’ve put together this Quick Start Guide that tells you everything you need to know to get 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. Once your system is running and you’ve completed the setup steps below, then jump over to the application tutorial which explains how to use every one of the 35 Incredible PBX Apps for the $35 Raspberry Pi.

What to Buy. Here’s everything you need to get started.2 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.

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 ScreeningOFF
    • Call PresentationOFF
    • Caller ID (In)Display Caller’s Number
    • Caller ID (Out)Don’t Change Anything
    • Do Not DisturbOFF
    • Call Options (Enable Recording)OFF
    • Global Spam FilteringON

  • 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:

  1. Download the Incredible Pi package
  2. Decompress the tarball: tar zxvf incrediblepi-version.tar.gz
  3. Copy .img file to SDHC using image utility or script
  4. Insert SDHC card into Raspberry Pi
  5. Boot the Raspberry Pi from Incredible Pi SDHC card

Your First Bite of Incredible Pi. If you’re not using a monitor and keyboard, you can use SSH to gain root access to Incredible Pi. And you can use any web browser on your private network to access your server. There are a couple of hurdles. First, you need the network address of your new server. And, second you need an SSH client. With Incredible PBX 3.3 and beyond, you needn’t worry about the IP address. You now can access your server via SSH by logging in like this: root@incrediblepbx.local. And browser access to your server is available at the following address: http://incrediblepbx.local. You still can plug in some earbuds when the bootup process begins and listen for the Incredible Pi to tell you its IP address when the boot procedure completes (about 90 seconds). Then you can use that IP address instead of incrediblepbx.local. The latest releases of Incredible PBX also include a Java-based SSH client in the FreePBX web GUI: Admin -> Java SSH.

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

Initial Setup. There also are a few setup steps to complete once your Incredible Pi finishes the bootup process. When you first login (username: root  password: raspberry), you’ll be prompted to change your root password and to set your default time zone. If you’re using either a wired network or an open WiFi network, then everything just works. If you’re using secured WiFi, then you’ll need to plug in your credentials in /etc/wpa.conf and reboot. The wired network always takes precedence so unplug the cable if you want WiFi to be your primary network. Next, run /root/update-my-pi to bring your server up to current specs. Finally, now’s the time to repartition your SD card if you’re using a card larger than 4GB. While you’re at it, bump up the performance of your Raspberry Pi by 50% by setting the overclocking to turbo mode. It works great for us. YMMV! The key is a rock-solid power adapter such as the one we’ve recommended. Just run raspi-config and follow your nose.

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. You also can access SSH through the FreePBX interface.

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 or just use incrediblepbx.local as the address. 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:

  1. Change FreePBX admin Password and Default Email
  2. Add Google Voice Account credentials
  3. Set Destination for Incoming Calls
  4. Change Extension 701 Passwords
  5. Eliminate Audio and DTMF Problems
  6. 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.

Activating SAMBA for Windows Networking. SAMBA is included for transparent access using the Windows Networking Protocol from PCs, Macs, and other Linux machines. As delivered, SAMBA is deactivated. For obvious reasons, we recommend you never activate root login access to SAMBA without a very secure password. If you wish to enable SAMBA on your server, here are the steps while logged in as root:

  • 1. Set SAMBA password for user root: smbpasswd -a root
  • 2. Change Windows workgroup from WORKGROUP, if needed: nano -w /etc/samba/smb.conf
  • 3. Manually start SAMBA from command prompt: service samba start
  • 4. If desired, set SAMBA to start on boot: rcconf and activate SAMBA option

If you’d like to update your status application to display SAMBA status instead of WLan1, here are the steps:
cd /usr/local/sbin
wget http://incrediblepbx.com/sambastatus.tgz
tar zxvf sambastatus.tgz
rm sambastatus.tgz

Activating the PPTP VPN Client. If you’ve followed the Nerd Vittles tutorial and previously set up a PPTP VPN Server for your devices, then it’s pretty simple to add Incredible Pi to the mix by activating its PPTP VPN client. You’ll need the FQDN or public IP address of your VPN server as well as a username and password for VPN access to your VPN server. Once you have those in hand, log into Incredible Pi as root.

Lest we forget to mention, you cannot log into your PPTP server from an IP address on the same private LAN so you’d only use the PPTP VPN when your Incredible Pi is at a remote location.

Edit the connection template: nano -w /etc/ppp/peers/my-pptp-server. Insert the following text and replace myfqdn.org with the FQDN of your PPTP server, replace myname with your PPTP username, and replace mypassword with your PPTP password. Then save the file: Ctrl-X, Y, then Enter.

To test it, issue the following command: /etc/init.d/pptp start. When you run ifconfig, you should now see a ppp0 entry:

ppp0 Link encap:Point-to-Point Protocol
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:3
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)

Remember, it won’t show an IP address if the Raspberry Pi and your PPTP VPN Server are on the same subnet (like ours). Once you install your Raspberry Pi in a remote location, you now can access it at the first IP address in your reserved PPTP IP address pool.

To permanently activate the PPTP VPN client on your Incredible Pi server, run rcconf. Scroll to the bottom of the list and highlight pptp. Press the space bar to select it for automatic startup when you boot your server. Then tab to OK and press Enter.

Shutting Down Your Server. Last but not least, never just pull the plug when you want to shut down your server, or you may end up with corrupted MySQL databases. Then nothing will run. Instead, log into your server as root, and issue the following command: shutdown -h now. Enjoy!

3.7 Update: Activating Incredible Fax. With a 512MB Raspberry Pi, here are the 5 Simple Steps to activate Incredible Fax. The complete tutorial is available here.

  1. Download and Install Incredible PBX 3.7
  2. Run the /root/fax-enable Script to Automatically Configure HylaFax
  3. Using FreePBX, Add Additional, Dedicated DID and Inbound Route to Handle Incoming Faxes
  4. Install Any Desktop HylaFax Client to Send Faxes via Print-to-Fax using any PDF
  5. Reboot Your Server and Enjoy

Where To Go Next. Once you’ve done a little exploring, take a few minutes to read the complete tutorial on all 35 Incredible PBX applications for Raspberry Pi. A few require a bit of configuration before you start using them. And then you’ll want to explore Interconnecting Asterisk Servers with Incredible PBX and the Raspberry Pi. 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 25, 2012  Updated: Sunday, October 21, 2012  Updated: Tuesday, November 27, 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.



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.


 
New Vitelity Special. Vitelity has generously offered a new discount for PBX in a Flash users. You now can get an almost half-price DID from our special Vitelity sign-up link. If you’re seeking the best flexibility in choosing an area code and phone number plus the lowest entry level pricing plus high quality calls, then Vitelity is the hands-down winner. Vitelity provides Tier A DID inbound service in over 3,000 rate centers throughout the US and Canada. And, when you use our special link to sign up, the Nerd Vittles and PBX in a Flash projects get a few shekels down the road while you get an incredible signup deal as well. The going rate for Vitelity’s DID service is $7.95 a month which includes up to 4,000 incoming minutes on two simultaneous channels with terminations priced at 1.45¢ per minute. Not any more! For PBX in a Flash users, here’s a deal you can’t (and shouldn’t) refuse! Sign up now, and you can purchase a Tier A DID with unlimited incoming calls for just $3.99 a month. To check availability of local numbers and tiers of service from Vitelity, click here. Do not use this link to order your DIDs, or you won’t get the special pricing! Vitelity’s rate is just 1.44¢ per minute for outbound calls in the U.S. There is a $35 prepay when you sign up. This covers future usage and any balance is fully refundable if you decide to discontinue service with Vitelity.
 


Some Recent Nerd Vittles Articles of Interest…

  1. Google Voice calling is free throughout the United States and Canada at least through the end 0f 2012. Extensions typically have been announced during the last week of December each year… but nothing lasts forever. []
  2. Many of our purchase links refer users to Amazon when we find their prices are competitive for the recommended products. Nerd Vittles receives a small referral fee from Amazon to help cover the costs of our blog. We never recommend particular products solely to generate Amazon commissions. However, when pricing is comparable or availability is favorable, we support Amazon because Amazon supports us. []

What’s As Good As a $35 Raspberry Pi? How About 35 Free Incredible PBX Apps

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.


 
New Vitelity Special. Vitelity has generously offered a new discount for PBX in a Flash users. You now can get an almost half-price DID from our special Vitelity sign-up link. If you’re seeking the best flexibility in choosing an area code and phone number plus the lowest entry level pricing plus high quality calls, then Vitelity is the hands-down winner. Vitelity provides Tier A DID inbound service in over 3,000 rate centers throughout the US and Canada. And, when you use our special link to sign up, the Nerd Vittles and PBX in a Flash projects get a few shekels down the road while you get an incredible signup deal as well. The going rate for Vitelity’s DID service is $7.95 a month which includes up to 4,000 incoming minutes on two simultaneous channels with terminations priced at 1.45¢ per minute. Not any more! For PBX in a Flash users, here’s a deal you can’t (and shouldn’t) refuse! Sign up now, and you can purchase a Tier A DID with unlimited incoming calls for just $3.99 a month. To check availability of local numbers and tiers of service from Vitelity, click here. Do not use this link to order your DIDs, or you won’t get the special pricing! Vitelity’s rate is just 1.44¢ per minute for outbound calls in the U.S. There is a $35 prepay when you sign up. This covers future usage and any balance is fully refundable if you decide to discontinue service with Vitelity.
 


Some Recent Nerd Vittles Articles of Interest…

  1. 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. []

Ringbinder theme by Themocracy