Today we are pleased to introduce a fifth 2018 update for Incredible PBX® and the Raspberry Pi® to celebrate the arrival of native GVSIP Google Voice functionality thanks to @NAF and SRTP encrypted communications thanks to the efforts of @qtlnx of PIAF Forum fame. And, of course, this new build supports the new RasPi 3B+ which features all-new wireless networking, a new USB/Ethernet hub with gigabit Ethernet support, new on-board power supplies, a new BCM2837 chip, and POE support using the new PoE HAT. In addition to a 17% clock speed bump for the 64-bit quad-core ARM Cortex-A53 CPU, the hardware upgrades represent almost all of the circuitry on the board. On the PBX side, in addition to Asterisk® 13 with preconfigured Google Voice GVSIP support, this new build includes most of the FreePBX® 13 GPL modules plus dozens of Incredible PBX applications for Asterisk. It’s one terrific platform! For Cisco phone buffs, it also includes SCCP support as well as chan_mobile for those wishing to interconnect a cellphone to your PBX. By popular request, you now can run Incredible PBX from an external USB hard drive as well. And, of course, Incredible PBX is and always will be FREE.

In July, Google discontinued support of their XMPP interface to Google Voice. This latest image for the Raspberry Pi now incorporates NAF’s GVSIP interface to Google Voice. You can add GVSIP trunks to your RasPi in 10 seconds by following this tutorial. What has changed is you now add Google Voice trunks from the command line by running /root/gvsip-naf/install-gvsip. You can delete trunks by running /root/gvsip-naf/del-trunk. Once one or more trunks have been added, they are numbered GVSIP1 through GVSIPn. Using FreePBX, you then add an Outbound Route and an Inbound Route for each trunk using your Google Voice 10-digit phone number and a Refresh Token to add a new trunk.

We originally had planned to move up from Raspbian 8 Jessie to the Raspbian 9 Stretch platform with this build, but we hit some major stumbling blocks since FreePBX depends upon PHP 5.6. For the pioneers, we have produced a Raspbian 9 version which runs with a Raspbian emulator that includes PHP 5.6 under VirtualBox on almost any desktop PC or Mac. It also showcases the entire collection of RasPi goodies including LibreOffice. You’ll find it in the SourceForge repo together with the new Raspbian 8 version supporting all of the Raspberry Pi hardware including the 3B+.

Raspberry Pi 3 Performance. Gone are the days of worrying about Raspberry Pi performance. Both the user interface and call quality now match what you’d expect to find on a $300-$500 VoIP server. Even with a Raspberry Pi 2, we have detected no performance degradation thanks to the latest Raspbian 8 OS and a virtually flawless Asterisk 13 platform. For best results, we recommend 32GB Class 10 microSD cards which now are plentiful for under $15.1

Raspberry Pi 3 Shopping List. Before you can install Incredible PBX, you’ll need a compatible Raspberry Pi 3 platform. Here’s the short list:

  • $35* Raspberry Pi 3B+ from Newark or Amazon
  • $10 Power Adapter (2.5 amps minimum!)
  • $13 32GB microSDHC Class 10 card
  • £12.95 Rainbow Pibow case or $6.99 Official RasPi3 case
  • About That Asterisk. We write about Asterisk® regularly, but the asterisk we’re talking about is the one accompanying the $35* price tag for the Raspberry Pi 3. Yes, that’s the advertised price. And, no, you’re probably not going to pay that. There are the marked up shipping prices, the bundled add-on’s that you don’t need or want, and the must-have accessories like a power adapter. We’re assuming you already own a USB keyboard and an HDMI-compatible monitor. If so, just plan on $100 and consider yourself lucky if you get all the pieces for less.

    Incredible PBX Feature Set. Where to begin? Let’s start with the Alphabet Stew: IAX, SIP, GVSIP, SMS, Opus, and SRTP functionality. Voice Recognition and Text-to-Speech VoIP application support using FLITE, GoogleTTS, and PicoTTS. Free calling with Google Voice, Simonics SIP gateway, or RingPlus cellular service. And all of your Nerd Vittles favorites: Fax, AsteriDex, Click-to-Dial, News, Weather, Reminders, and Wakeup Calls. Plus hundreds of features that typically are found in commercial PBXs: Conferencing, IVRs and AutoAttendants, Email Delivery of Voicemail, Voicemail Blasting, and more…

    10-Layer Network Security Model. Most phone calls cost money. Unlike many of the other "free" VoIP solutions, our most important criteria for VoIP is rock-solid security. If your free server ends up costing you thousands of dollars in phone bills due to fraud, guess what? It isn’t free at all. Once you plug in that network cable, you’ve painted a bullseye on your checkbook.

    No single network security system can protect you against zero-day vulnerabilities that no one has ever seen. Deploying multiple layers of security is not only smart, it’s essential with today’s Internet topology. It works much like the Bundle of Sticks from Aesop’s Fables. The more sticks there are in your bundle, the more difficult it is to break them apart. If a vulnerability suddenly appears in the Linux kernel, or in Asterisk, or in Apache, or in your favorite web GUI, you can continue to sleep well knowing that other layers of security have your back. No one else in the telecommunications industry has anything close. Ours is all open source GPL code so we would encourage everyone to get on board and do their part to make the Internet a safer place!

    Do your part and do your homework. Comparison shop as if your phone bill matters! 😉 Incredible PBX provides:

    1. Preconfigured IPtables Linux Firewall
    2. Preconfigured Travelin’ Man 3 WhiteLists
    3. Randomized Port Knocker for Remote Access
    4. TM4 WhiteListing by Telephone (optional)
    5. Fail2Ban Log Monitoring for SSH, Apache, Asterisk
    6. Password Customization
    7. Automatic Update Utility for Security & Bug Fixes
    8. Asterisk Manager Lockdown to localhost
    9. Apache htaccess Security for Vulnerable Web Apps
    10. Security Alerts via RSS Feeds in the Incredible PBX GUI

    Installation Tutorial. Here’s everything need to know about installation and setup. "Automatic" means you just watch.

    1. Download and unzip Incredible PBX 13 GVSIP image from SourceForge
    2. Transfer Incredible PBX image to microSD card
    3. Boot Raspberry Pi from new microSD card (8GB or larger)
    4. Login to RasPi console as root:password to initialize your server (Automatic)
    5. In raspi-config Advanced Options, Expand FileSystem to fill your SD card
    6. Reboot after writing down your server IP address (Automatic)
    7. Login via SSH or Putty as root:password to set passwords & setup firewall (Automatic)
    8. Add GVSIP trunks, if desired: /root/gvsip-naf/install-gvsip
    9. Add Inbound and Outbound GVSIP route, if desired
    10. Install Incredible Fax: /root/ (Credentials: admin:password)
    11. Enjoy!

    Upgrading to RasPi 3B+ Platform

    If you have an existing Incredible PBX server running on a Raspberry Pi 3, it’s easy to upgrade your setup so that you can swap out the hardware and use the newer RasPi 3B+. The trick is to perform the following upgrade steps on the Raspberry Pi 3 before moving the microSD card to a 3B+. Otherwise, the 3B+ will not boot. Here are the commands to issue after logging into your Raspberry Pi 3 as root:

    apt-get update
    apt-get dist-upgrade
    apt-get clean
    rpi-update ef7621d91cb58ccc856c3c17ddda28685edd23f3
    cd /root
    dpkg -i firmware-brcm80211_20161130-3+rpt3_all.deb

    After completing the upgrade, be sure to run raspi-config and set the proper WiFi locale, or attempts to connect to your server via WiFi will fail.

    If you upgrade an existing server, you also will need to install GVSIP support, if desired. A complete tutorial is available here.

    Running PBX from External USB Drive

    CAUTION: If you wish to use an external USB-powered drive with your Raspberry Pi to get better performance and enhanced reliability, then you’ll want to stick with the Raspberry Pi B for the time being because the B+ does not yet support booting from an external drive that lacks an independent power source. See this thread for details.

    With older versions of the Raspberry Pi, you may wish to consider an external USB drive to supplement your Incredible PBX for Raspberry Pi setup. If this is a production system on which you depend for important calls, we would highly recommend it. Begin by formatting the USB drive as a DOS FAT32 drive. Then install the Incredible PBX image on the USB drive using the same procedure outlined above for your microSD card. Be sure you choose the correct drive! Now boot your Raspberry Pi with the USB drive plugged in. Login as root and issue the command: mount /dev/sda2 /mnt. Using nano, edit /mnt/etc/fstab. Change /dev/mmcblk0p2 to /dev/sda2 and save the file. Edit /boot/cmdline.txt and change /dev/mmcblk0p2 to /dev/sda2. Then add the following to the end of the line: rootdelay=5. Save the file and reboot your server leaving the microSD card in place.

    As configured, your server will now boot to the external USB drive, but the usable space on the drive will be the original 4GB partition. To expand it, do the following carefully. Log back into your server as root. Issue the command: fdisk -cu /dev/sda. List the partitions on your external drive by typing p. Write down the starting sector number for the sda2 partition. For example, on a 1 terabyte drive, it will be something like 131072. Now delete the sda2 partition by typing d and then choosing 2. Create a new primary partition by typing n then p then 2. When prompted for the starting sector, enter the number you wrote down for the sda2 partition above. Press ENTER. When prompted for the ending sector, just press ENTER to accept the default. Now type w to write your changes to the drive. Reboot. Log back into your server as root and issue the following command to expand the primary partition to use the entire disk: resize2fs /dev/sda2. You can verify the new size of your drive by running pbxstatus.

    Configuring Trunks with Incredible PBX

    Before you can actually make and receive calls, you’ll need to add one or more VoIP trunks with providers, create extensions for your phones, and add inbound and outbound routes that link your extensions to your trunks. Here’s how a PBX works. Phones connect to extensions. Extensions connect to outbound routes that direct calls to specific trunks, a.k.a. commercial providers that complete your outbound calls to any phone in the world. Coming the other way, incoming calls are directed to your phone number, otherwise known as a DID. DIDs are assigned by providers and you register your trunks using credentials handed out by these providers. Incoming calls are routed to your DIDs which use inbound routes telling the PBX how to direct the calls internally. A call could go to an extension to ring a phone, or it could go to a group of extensions known as a ring group to ring a group of phones. It could also go to a conference that joins multiple people into a single call. Finally, it could be routed to an IVR or AutoAttendant providing a list of options from which callers could choose by pressing various keys on their phone.

    We’ve done most of the prep work for you with Incredible PBX. We’ve set up an Extension to which you can connect a SIP phone or softphone. We’ve set up an Inbound Route that, by default, sends all incoming calls to a Demo IVR. And we’ve built a dozen trunks for some of the best providers in the business. Sign up with the ones you prefer, plug in your credentials, and you’re done. Or follow this tutorial to add 300 wholesale trunk providers instantly.

    Unlike traditional telephone service, you need not and probably should not put all your eggs in one basket when it comes to telephone providers. In order to connect to Plain Old Telephones, you still need at least one provider. But there is nothing wrong with having several. And a provider that handles an outbound call (termination) need not be the same one that handles an incoming call (origination) and provides your phone number (DID). We cannot recommend Vitelity highly enough, and it’s not just because they have financially supported our projects for almost a decade. They’re as good as VoIP providers get, and we use lots of them. If you’re lucky enough to live in the U.S., you’d be crazy not to set up a Google Voice account. It’s free as are all phone calls to anywhere in the U.S. and Canada. The remaining preconfigured providers included in Incredible PBX are equally good, and we’ve used and continue to use almost all of them. So pick a few and sign up. You only pay for the calls you make with each provider so you have little to lose by choosing several. The PIAF Forum includes dozens of recommendations on VoIP providers if you want additional information.

    With the preconfigured trunks in Incredible PBX, all you need are your credentials for each provider and the domain name of their server. Log into Incredible PBX GUI Administration as admin using a browser. From the System Status menu, click Connectivity -> Trunks. Click on each provider you have chosen and fill in your credentials including the host entry. Be sure to uncheck the Disable Trunk checkbox! Fill in the appropriate information for the Register String. Save your settings by clicking Submit Changes. Then click the red Apply Config button.

    Adding and managing Google Voice GVSIP trunks and routes is covered separately in this tutorial.

    Incredible PBX Wholesale Providers Access

    Nerd Vittles has negotiated a special offer that gives you instant access to 300+ wholesale carriers around the globe. In lieu of paying the $650 annual fee for the service, a 13% wholesale surcharge is assessed to cover operational costs of TelecomsXchange. In addition, TelecomsXchange has generously offered to contribute a portion of the surcharge to support the Incredible PBX open source project. See this Nerd Vittles tutorial for installation instructions and signup details.

    Configuring a Softphone for Incredible PBX

    We’re in the home stretch now. You can connect virtually any kind of telephone to your new PBX. Plain Old Phones require an analog telephone adapter (ATA) which can be a separate board in your computer from a company such as Digium. Or it can be a standalone SIP device such as ObiHai’s OBi100 or OBi110 (if you have a phone line from Ma Bell to hook up as well). SIP phones can be connected directly so long as they have an IP address. These could be hardware devices or software devices such as the YateClient softphone. We’ll start with a free one today so you can begin making calls. You can find dozens of recommendations for hardware-based SIP phones both on Nerd Vittles and the PIAF Forum when you’re ready to get serious about VoIP telephony.

    We recommend YateClient which is free. Download it from here. Run YateClient once you’ve installed it and enter the credentials for the 701 extension on Incredible PBX. You’ll need the IP address of your server plus your extension 701 password. Choose Applications _> Extensions -> 701 and write down your SIP/IAX Password. You can also find it in /root/passwords.FAQ. Fill in the blanks using the IP address of your Server, 701 for your Username, and whatever Password you assigned to the extension when you installed Incredible PBX. Click OK to save your entries.

    Once you are registered to extension 701, close the Account window. Then click on YATE’s Telephony Tab and place some test calls to the numerous apps that are preconfigured on Incredible PBX. Dial a few of these to get started:

    DEMO - Apps Demo
    123 - Reminders
    947 - Weather by ZIP Code
    951 - Yahoo News
    *61 - Time of Day
    TODAY - Today in History

    If you are a Mac user, another great no-frills softphone is Telephone. Just download and install it from the Mac App Store.

    Speech Recognition with Incredible PBX

    To support many of our applications, Incredible PBX has included Google’s speech recognition service for years. These applications include Weather Reports by City (949), AsteriDex Voice Dialing by Name (411), and Wolfram Alpha for Asterisk (4747), all of which use Lefteris Zafiris’ terrific speech-recog AGI script. Unfortunately (for some), Google now has tightened up the terms of use for their free speech recognition service. Now you can only use it for "personal and development use." If you meet those criteria, keep reading. Here’s how to activate speech recognition on Incredible PBX. Don’t skip any steps!

    To use Wolfram Alpha by phone, you first must obtain a free Wolfram Alpha APP-ID. Then issue the following command replacing APP-ID with your actual ID. Do NOT change the yourID portion of the command:

    sed -i "s|yourID|APP-ID|" /var/lib/asterisk/agi-bin/4747

    Now you’re ready to try out the speech recognition apps. Dial 949 and say the name of a city and state/province/country to get a current weather forecast from Yahoo. Dial 411 and say "American Airlines" to be connected to American.

    To access Wolfram Alpha by phone, dial 4747 and enter your query, e.g. "What planes are overhead." Read the Nerd Vittles tutorial for additional examples and tips.

    Enabling WiFi on the Raspberry Pi

    With the Raspberry Pi 3, wi-fi hardware is included. With the Raspberry Pi 2, you’ll need to add an inexpensive wifi dongle. The next step is connecting to your WiFi router. Simply open /etc/wpa_supplicant/wpa_supplicant.conf with your favorite editor and insert or edit the following code using the actual SSID name and password to access your local, password-protected WiFi router or any open WiFi network:


    Finally, stop and restart the wlan0 interface, count to 15, and check the status of your server to decipher the new IP address for your WiFi connection:

    ifdown wlan0
    ifup wlan0

    If you want to run your Raspberry Pi exclusively off the WiFi connection, simply unplug the network cable from your RasPi and reboot your server.

    On some systems, Wi-Fi connectivity to unprotected wireless networks is enabled by default. If this causes problems for you because of neighbors’ networks, remove the key_mgmt-NONE section of code from /etc/wpa_supplicant/wpa_supplicant.conf before restarting your network. Or you can disable WiFi and/or Bluetooth entirely by issuing one or both of the following commands and rebooting your server:

    echo "dtoverlay=pi3-disable-wifi" >> /boot/config.txt
    echo "dtoverlay=pi3-disable-bt" >> /boot/config.txt

    Lessons Learned with the Raspberry Pi 3

    As with all new devices, you learn some things as you go along. So we’re providing an update to our original article to offer a couple of additional tips and tricks for those that want to travel with a RasPi…

    Alternative Power Sources. If you’re like us, you have a number of devices around the house or office that all require 5V power adapters of various amperages. The Raspberry Pi has traditionally been one of the most temperamental when it came to power adapters and, with the Raspberry Pi 3, the developers specifically mention a 2.5 amp minimum. If you travel and want to take devices such as the Raspberry Pi with you, the last thing you want to do is approach airport security with a bunch of wires hanging out of your carry-on bag. Well, there’s good news. The Anker device shown in the Amazon ad in the right column of Nerd Vittles can supply power to 6 devices including a Raspberry Pi 3. And we’ve given the RasPi a healthy workout with no adverse effects.

    Deciphering the RasPi IP Address. As we mentioned, we travel a lot so obtaining a DHCP address for your RasPi in WiFi mode is not always the easiest thing to accomplish. If your smartphone supports tethering, that’s the easiest way to get connectivity on the road. A better way is to stick a WiFi HotSpot in your luggage and it, too, can be powered using the Anker device. See our recent article for WiFi HotSpot choices. Regardless of which option you choose, it will require some planning to use your RasPi sans monitor and keyboard. First, you need to preconfigure /etc/wpa_supplicant/wpa_supplicant.conf with the SSID of the device you’ll be using to hand out DHCP addresses. You’ll note from the discussion above that each entry in this file has a priority with higher numbers having higher priority. The way we typically do this is to assign our home network as the highest priority. Below that, we set up credentials for our MiFi Hotspot, then our smartphones, and finally open networks. So it looks like this:

    • Home Network – 6
    • MiFi HotSpot – 5
    • Android phone – 4
    • iPhone (AT&T) – 3
    • Open Network – 1

    Keep in mind that the Incredible PBX firewall probably will block you from accessing the RasPi from a computer on the public network. So you also must connect your computer to the same private WiFi network because private LAN addresses are whitelisted in the firewall by default.

    Once you have connectivity for your RasPi and your laptop, the other wrinkle is figuring out the IP address of the Raspberry Pi. Our recommended approach goes like this. First, configure SendMail on the RasPi to use a Gmail account that you own as an SMTP smarthost to send emails. That should work almost anywhere you go. Second, modify /etc/rc.local to automatically send you an email with the IP address and SSID of your wireless network whenever the RasPi boots. Again, this takes some advance planning because you need to set all of this up and test it before you go on the road.

    Here are the steps to modify SendMail to use an existing Gmail account as a SmartHost. Log into your RasPi as root and issue the following commands:

    cd /etc/mail
    hostname -f > genericsdomain
    touch genericstable
    makemap -r hash genericstable.db < genericstable
    mkdir -p auth
    chmod 700 auth
    cd auth
    echo \"U:smmsp\" \"I:user_id\" \"P:password\" \"M:PLAIN\" > client-info
    echo \"U:smmsp\" \"I:user_id\" \"P:password\" \"M:PLAIN\" >> client-info
    echo \"U:smmsp\" \"I:user_id\" \"P:password\" \"M:PLAIN\" >> client-info
    nano -w client-info

    When the nano editor opens the client-info file, change the 3 user_id entries to your Gmail account name without and change the 3 password entries to your actual Gmail password. Save the file: Ctrl-X, Y, then ENTER.

    Now issue the following commands. In the last step, press ENTER to accept all of the default prompts:

    chmod 600 client-info
    makemap -r hash client-info.db < client-info
    cd ..
    sed -i 's|sendmail-cf|sendmail/cf' /etc/mail/
    sed -i 's|sendmail-cf|sendmail/cf|' /etc/mail/
    sed -i 's|sendmail-cf|sendmail/cf|' /etc/mail/Makefile
    sed -i 's|sendmail-cf|sendmail/cf|' /etc/mail/
    sed -i 's|sendmail-cf|sendmail/cf|' /etc/mail/databases
    sed -i 's|sendmail-cf|sendmail/cf|' /etc/mail/
    sed -i 's|sendmail-cf|sendmail/cf|' /etc/mail/

    Finally, stop and restart SendMail and then send yourself a test message. Be sure to check your spam folder!

    /etc/init.d/sendmail stop
    /etc/init.d/sendmail start
    apt-get install mailutils -y
    echo "test" | mail -s testmessage

    Check mail success with: tail /var/log/mail.log. If you have trouble getting a successful Gmail registration (especially if you have previously used this Google account from a different IP address), try this Google Voice Reset Procedure. It usually fixes connectivity problems. If it still doesn’t work, enable Less Secure Apps using this Google tool.

    The last step is to add the following command to /etc/rc.local to send you an email with your IP address and SSID whenever the RasPi is rebooted. Insert the following commands just above the exit 0 line at the end of the file. Use an email address to which you have access on the road!

    echo "IP address(es) for your Raspberry Pi: $(hostname -I) plus wireless network, if any: `iwconfig`" | mail -s "RaspberryPi3 IP Address"

    GoogleTTS has been hit-and-miss for many years as Google continues to "improve things." Lefteris Zafiris has worked his usual magic and updated the scripts for Asterisk once again. These are required to use Incredible PBX features such as Yahoo News. To install the latest GoogleTTS updates, simply log out of your server and log in once again as root. The Incredible PBX Automatic Update Utility will put all of the new pieces in the correct places.

    WebMin: Wherefore Art Thou?

    Some of you may have noticed that WebMin is missing in this new release. For newcomers, WebMin is the Swiss Army Knife of Linux. You can do almost anything to Linux from the convenience of a browser. Unfortunately, in the PBX environment, WebMin is a two-edged sword. You can also permanently ruin your PBX in a matter of seconds if you don't know what you're doing because WebMin hides most of its magic under the covers so you really can't decipher what's been changed. Our best advice to those wanting to use WebMin is to use it as a tool to look (but don't touch) the Linux setup. The other major dilemma for us was that the current Incredible PBX build comes perilously close to filling a 4GB microSD card. And moving to an 8GB card to build a PBX would have doubled the size of the download image. Once you have installed Incredible PBX on a larger microSD card and expanded the filesystem to fill the new card, the commands below will get WebMin installed. Once installed, you can access WebMin with a browser pointed to https://ip-address:9001 using the same root credentials used to login with SSH.

    echo "Installing WebMin..."
    echo "deb sarge contrib" > /etc/apt/sources.list.d/sarge.list
    cd /root
    apt-key add jcameron-key.asc
    apt-get update
    apt-get install webmin -y
    sed -i 's|10000|9001|g' /etc/webmin/miniserv.conf
    service webmin restart

    Enabling Bluetooth on the Raspberry Pi

    Incredible Fax Returns for the Raspberry Pi

    Where To Go Next...

    With any major new software release, invariably there are a few bugs that creep into the mix. This PIAF Forum thread is the place to visit to get the latest patches and updates. Then explore the Incredible PBX applications here.

    Originally published: Monday, February 6, 2017  Updated: Monday, August 27, 2018

    Support Issues. With any application as sophisticated as this one, you're bound to have questions. Blog comments are a difficult place to address 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 Forum. It's the best Asterisk tech support site in the business, and it's all free! Please have a look and post your support questions there. Unlike some forums, the PIAF Forum is extremely friendly and is supported by literally hundreds of Asterisk gurus and thousands of users just like you. You won't have to wait long for an answer to your question.

    NEW YEAR'S TREAT: If you could use one or more free DIDs in the U.S. with unlimited inbound calls and unlimited simultaneous channels, then today's your lucky day. TelecomsXChange and Bluebird Communications have a few hundred thousand DIDs to give away so you better hurry. You have your choice of DID locations including New York, New Jersey, California, Texas, and Iowa. The DIDs support Voice, Fax, Video, and even Text Messaging (by request). The only requirement at your end is a dedicated IP address for your VoIP server. Once you receive your welcome email with your number, be sure to whitelist the provider's IP address in your firewall. For Incredible PBX servers, use add-ip to whitelist the UDP SIP port, 5060, using the IP address provided in your welcoming email.

    Here's the link to order your DIDs.

    Your DID Trunk Setup in your favorite GUI should look like this:

    Trunk Name: IPC
    Peer Details:
    host={IP address provided in welcome email}

    Your Inbound Route should specify the 10-digit DID. Enjoy!

    Need help with Asterisk? Visit the PBX in a Flash Forum.


    Special Thanks to Our Generous Sponsors

    FULL DISCLOSURE: RentPBX, Amazon, Skyetel, Vitelity, DigitalOcean, Vultr, Digium, Sangoma, 3CX, TelecomsXchange and others have provided financial support to Nerd Vittles and our open source projects through advertising, referral revenue, and/or merchandise. 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.

    Skyetel $50 Free Trial: Enjoy state-of-the-art VoIP service with a $50 free trial and free number porting when you sign up for a Skyetel account. No restrictions on number of simultaneous calls, and triple data center redundancy assures that you never experience a failed call. Tutorial and sign up details available here.

    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.

    RentPBX, a long-time partner and supporter of PIAF project, is offering generous discounts for Nerd Vittles readers. For all of your Incredible PBX hosting needs, sign up at and use code NOGOTCHAS to get the special pricing. The code will lower the price to $14.99/month, originally $24.99/month. It's less than 50¢/day.

    Print Friendly, PDF & Email

    Be Sociable, Share!

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

    This article has 19 comments

    1. Will this work for the Beaglebone Black?

      [WM: No.]

    2. Can this also be installed on a Raspberry Pi 2? What is it using, Wazo or FreePBX?

      [WM: RasPi2 should be fine, but slow. This image includes FreePBX 12 GPL modules in the modified GUI, not Wazo. There’s a separate image here for XiVO on the RasPi3 platform. Wazo and XiVO are not well-suited for use on a microSD platform because of the realtime implementation of Asterisk.]

    3. I love your site! It is such a goldmine! I am a programmer and I always wanted to try getting my hand dirty with VOIP, especially on the PI. Thank you so much for all those great info, images and the hard work!
      I have a beginner question. I made some research but didn’t find anything satisfying. How do I connect and make call from outside my place? I understand that PortKnock allows only my Public IP and my local network to access the PBX.
      I am using a SIP application called Softphone from Acrobits, and inside my private network, it works great! But from outside, no luck. It only works when I am on my VPN.
      I believe that this is the expected behavior for security, but is there a solution for users on their mobile with no VPN?

      Thank you in advance for pointing me in the right direction!

      [WM: Here’s a tutorial that will walk you through whitelisting remote phones with Incredible PBX. The PIAF Forum also is an excellent resource when you hit a snag. Good luck.]

    4. Hi there. the script that runs on this is missing sudo prefixes throughout the second half and fails miserably. Just thought I’d let you know.

      [WM: If you follow the tutorial, you won’t have the problem. You forgot to login as root in step #6.]

    5. Thanks for the GREAT work – you and your team. I’ve been with you since the AAH days.

      Is it possible to make it support either/both gvoauth and no oauth in the same release. I always have problems getting oauth to work but no oauth seems to work the first time?

      I have a RPi-2 working with no auth and do not want to mess up the GV side of things.

      [WM: Hi, Tom. Thanks for the kind words. We’ve heard your suggestion from a number of folks, and we’re reconsidering although I hasten to add that Google is going to discontinue support for plain-text passwords sooner rather than later so… you might as well learn how to obtain one. A link is provided in the article to show you how. It’s not hard, and it’s much safer.]

    6. I don’t seem to get opus working. It says it is installed, but I can’t figure out how to enable it. Could you please elaborate?

      [WM: Please head over to the PIAF Forum for tech support on Opus. Thanks.]

    7. Is it possible to install this on an existing Pi image? I’d prefer to download scripts (I found reference an older version: incrediblepbx11guiPi.tar.gz ) as opposed to imaging an SD card. I have a few minor apps running I would like to keep in the background.

      [WM: Sorry, but it’s gotten too complicated to provide an upgrade script.]

    8. I love running my home Asterisk pbx on pi but having serious troubles with data corruption, database errors, and so forth which leads me to rebuild it every few months. Any recommendations before i migrate away from pi?

      [WM: Easiest solution is to add a USB Drive to your RasPi and run everything from there. This tutorial will show you how.]

    9. Great stuff on this site! I was just wondering what is the difference between this version of Incredible PBX and Incredible PBX for XiVO?

      [WM: The two products use different GUIs. XiVO takes considerably more horsepower to run because it implements Asterisk Real Time.]

    10. Wondering whether Incredible PBX will work with a $5 Raspberry Pi Zero W? Wonder no more. Setup instructions using WiFi available here.

    11. Hi Ward,

      Just wondering if you ever stress tested the P3 with external drive configuration. I am wondering if you have any guesstamates as to how many simultaneous calls it will handle. I am itching to use this at that festival we discussed.

      [WM: Haven’t tested it personally. But I think you’ll probably run out of bandwidth before you run out of processor capacity.]

    12. Hi Ward,
      I am running PIAF-Green-3.6.5-64 on VBox.
      GVoice XMPP is working so far (by July 2018).
      May be it is because I use it not so intensive – 5 – 10 calls per week. What do you think about it? Does it make sense to move to the new way?
      Thank you

      [WM: Count your blessings. The first time you have to reboot or restart Asterisk, you’ll probably be dead in the water. Probably easier to migrate before you actually are forced to. Good luck!]

    13. Step Nine, the install command for the fax is incorrect. It should be:

    14. Hi,
      I installed about a month ago Incredible PBX on RPi 3b+ and it works like a charm. I had some issues with a few scripts, but finally, I fixed all of them. Comparing to my previous installation RasPBX and RPi1, this installation is a rocket and adding a new GV support, it’s a game changer.

      I have only one problem with incoming faxes. I installed AvantFax and FAX sending works perfectly. But when I try to receive fax using "Fax recipient" and selecting a user (user has enabled FAX and configured email address), all received faxes are emailed to the email address configured on the Modem level in AvantFax instead of emails configured on users level. I do not know if it’s only on my RPi or this function works like that, but I want to email faxes depends on a selected extension. Do you know how to solve it?

      [WM: It’s working as designed. For more complex configurations, you’ll need to head over to the PIAF Forum. Lots of good tips on AvantFax configuration there. Good luck!]

    15. Do these instructions work for the Raspberry Pi 3 Model B and NOT the B+? If so, will attempt to get this project started over the weekend.

      [WM: Should work just fine with the latest Incredible PBX GVSIP image.]

    16. The supplied config for Callcentric will register, but after a few minutes will cease to accept incoming calls. Following the config instructions on fixes the problem. You may wish to make a note of this in the supplied config. Thank you for all the work you do on this project!

    17. Facing the same Callcentric issues. Can you share the steps to get the Callcentric fixed?

      [WM: ]

    18. If I do not have a static IP address do I need to setup DDNS and make any modifications to system files?

      I am using Vitelity as my trunk supplier.

      [WM: No need for DDNS unless you have remote extensions on external sites with dynamic IP addresses.]

    19. In fact, I am running this from the Pi-Model-B hardware, the very old model B, not the pi-3. Since I don’t have many calls per day, the whole thing is working fine for me. Just a FYI.