It’s been a couple weeks since we introduced Incredible PBX® 16-15, the first aggregation featuring Asterisk® 16 LTS and the alpha release of FreePBX® 15. Today we’re pleased to offer the second major upgrade featuring a new GVSIP patch for Asterisk 16 and more than a dozen new GPL module updates for the FreePBX 15 platform. As noted previously, we normally take shelter when we hear the word "alpha" but FreePBX 15 is actually pretty stable. Don’t plan on using this build in a production environment but, if you like experimenting and looking at what the future holds, then you’re in for a treat. This release also incorporates NAF’s new GVSIP interface to Google Voice. Read all about it here.

Here’s a sneak peek at what’s included in Incredible PBX 16-15: 18 SIP Trunks from our favorite providers, Voice Dialing (411) with IBM STT or Google, Headline News (951), Weather by ZIP Code (947), Today in History (86329), IBM TTS, ODBC Lookups (222), ODBC Calling with AsteriDex (223), Telephone Reminders (123), AsteriDex (Web GUI), Reminders (Web GUI), PortKnocker, Travelin’ Man 4, Time of Day (*61), SMS Dictator (767), Wolfram Alpha (4747), Hotel-Style Wakeup Calls (*68), Allison’s Demo IVR (3366), Lenny (53669), Call Parking (**70), Call Pickup (71), Blacklist Add (*30), Blacklist Remove (*31), Blacklist Last Caller (*32), Call Forward Activate (*72), Call Forward DeActivate (*73), Conferencing (C-O-N-F), Call Pickup (*8), Dictation (*34), Email Dictation (*35), DND Activate (*78), DND DeActivate (*79), SpeedDial with AsteriDex (000NNN), Email Delivery of Voicemails, NeoRouter VPN, and more.

Google now has discontinued support of their XMPP/Motif interface to Google Voice. Instead of adding Google Voice trunks using the FreePBX GUI, this latest version of Incredible PBX 16-15 lets you add Google Voice trunks from the command line by running /root/gvsip-naf/install-gvsip. You’ll need both your Google Voice 10-digit phone number and a Refresh Token to add a new trunk. 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. You can list all of them including the associated phone numbers by running /root/gvsip-naf/show-trunks. Once you’ve added your Google Voice trunks, use the Incredible PBX GUI to add an Outbound Route and an Inbound Route for each trunk.

Installing a Base CentOS Operating System

You can install Incredible PBX 16-15 on a dedicated server, on a virtual machine platform such as VirtualBox, or a Cloud-based server. We recommend a minimum 1GB of RAM with a swapfile unless installing on OpenVZ platforms. We’ve provided a script to do it for you. Depending upon the number of users your server will be supporting, we recommend a disk capacity of 10-30 GB. Last but not least, you need a reliable Internet connection.

Before you can install Incredible PBX 16-15.02, you’ll need a basic Linux platform. For this build, start by deploying a minimal install of CentOS 6. The Incredible PBX installer will load all of the necessary components to support Asterisk and FreePBX as well as upgrading CentOS.

Begin by installing 64-bit CentOS 6 on your favorite hardware or Desktop. Or you may prefer to use a Cloud provider1 that already offers a preconfigured CentOS 6.10. If you’re using a Cloud platform, you can skip the rest of this section. Just choose CentOS 6 as the default operating system for your cloud-based server.

For those using a dedicated hardware platform or wishing to install CentOS as a virtual machine, the drill is the same. Start by downloading the 64-bit CentOS 6.10 minimal ISO. Burn the ISO to a DVD and then boot to get started. On virtual platforms, we recommend at least 1GB RAM and a 20GB dedicated drive.

Installing Incredible PBX 16-15.02

Once your CentOS 6 platform is up and running, you’ll need to run the Incredible PBX 16-15 installer. Log into your CentOS server as root and issue the following commands to kick off the Incredible PBX 16-15 install. It’s a two-step process. First, the installer will bring your version of CentOS up to current specs and load the necessary packages to support Asterisk and FreePBX. The first stage setup takes about 10-15 minutes.

cd /root
yum -y update
yum -y install net-tools nano wget tar
tar zxvf incrediblepbx-16-15.02.tar.gz
rm -f incrediblepbx-16-15.02.tar.gz

When the base install finishes, your server will reboot. Simply log back in as root and run the installer a second time using an SSH terminal or Putty. Come back in 15 minutes.


Reboot one final time when the installer finishes the setup, and Incredible PBX 16-15.02 will be ready to go. Log back in as root. This will kick off the Automatic Update Utility to load any last minute additions, bug fixes, and security patches. After the status menu displays, run the following apps to set a very secure admin password for web access to the GUI, to set an admin password for web applications like AsteriDex and Reminders, and to choose your default time zone:

htpasswd /etc/pbx/wwwpasswd admin

WebMin is also installed and configured as part of the base install. The root password for access is the same as your Linux root password. We strongly recommend that you not use WebMin to make configuration changes to your server. You may inadvertently damage the operation of your PBX beyond repair. WebMin is an excellent tool to LOOK at how your server is configured. When used for that purpose, we highly recommend WebMin as a way to become familiar with your Linux configuration.

Installing Incredible Fax with HylaFax/AvantFax

To install Incredible Fax, log into your server as root and issue the following commands:

cd /root

After entering your email address to receive incoming faxes, you’ll be prompted about two dozen times to choose options as part of the install. Simple press the ENTER key at each prompt and accept all of the defaults. When the install finishes, make certain that you reboot your server to bring Incredible Fax on line. There will be a new AvantFax option in the Incredible PBX GUI. The default credentials for AvantFax GUI are admin:password; however, you first will be prompted for your Apache admin credentials which were set when you installed Incredible PBX 13-13 LEAN or the Whole Enchilada. Then you’ll be asked to change your AvantFax password.

Upgrading to IBM Speech Engines

If you’ve endured Google’s Death by a Thousand Cuts with text-to-speech (TTS) and voice recognition (STT) over the years, then we don’t have to tell you what a welcome addition IBM’s new speech utilities are. We can’t say enough good things about the new IBM Watson TTS and STT offerings. While IBM’s services are not free, that’s really theoretical for most of our readers. Your first month on the platform is entirely free. And, after that, you get 1,000 minutes a month of free STT voice recognition services. And the first million characters of text-to-speech synthesis are FREE every month as well. So let’s put the pieces in place so you’ll be ready to play with the Whole Enchilada.

Getting Started with IBM Bluemix TTS Service

NOV. 1 UPDATE: IBM has moved the goal posts effective December 1, 2018:

You can start your free, 30-day trial of IBM Bluemix services without providing a credit card. Just sign up here. Once your account is activated, here’s how to obtain credentials for the TTS service to use with Incredible PBX. Start by logging in to your IBM Bluemix account. Once you’re logged in, click on your account name (1) in the upper right corner of your web page to reveal the pull-down to select your Region, Organization, and Space. Follow the blue links at the bottom of the pull-down menu to create an Organization and Space for your TTS service.

Next, click the Menu icon which is displayed as three horizontal bars on the left side of the web page. Choose Watson. Click Create Watson Service and select Text to Speech from the applications listing. Watson will generate a new TTS service template and display it. Make certain that your Region, Organization, and Space are shown correctly. Then verify that the Standard Pricing Plan is selected. When everything is correct, click the Create button.

When your Text to Speech application displays, click Service Credentials and then click New Credential (+). When the Add New Credential dialog appears, leave the default settings as they are and click Add. Your Credentials Listing then will appear. Click View Credentials beside the new entry you just created. Write down your URL, username, and password. You’ll need these to configure the IBM Bluemix TTS service. Logout of the IBM Cloud by clicking on the little face in the upper right corner of your browser window and choose Log Out. Confirm that you do, indeed, wish to log out.

Finally, login to your Incredible PBX server and issue these commands to update your Asterisk dialplan and edit ibmtts.php:

cd /var/lib/asterisk/agi-bin
nano -w ibmtts.php

Insert your credentials in $IBM_username and $IBM_password. Verify that $IBM_url matches the entry provided when you registered with IBM. Then save the file: Ctrl-X, Y, then ENTER. Now reload the Asterisk dialplan: asterisk -rx "dialplan reload". Try things out by dialing 951 (news) or 947 (Weather) from an extension registered on your PBX.

Getting Started with IBM Bluemix STT Service

Now let’s get IBM’s Speech to Text service activated. Log back in to the IBM Cloud. Click on the Speech to Text app. Choose a Region to deploy in, choose your Organization from the pull-down menu, and select STT as your Space. Choose the Standard Pricing Plan. Then click Create. When Speech to Text Portal opens, click the Service Credentials tab. In the Actions column, click View Credentials and copy down your STT username and password.

Finally, login to your Incredible PBX server and issue these commands to edit

cd /var/lib/asterisk/agi-bin
nano -w

Insert your API_USERNAME and API_PASSWORD in the fields provided. Then save the file: Ctrl-X, Y, then ENTER. Update your Voice Dialer (411) to use the new IBM STT service:

sed -i '\:// BEGIN Call by Name:,\:// END Call by Name:d' /etc/asterisk/extensions_custom.conf
sed -i '/\[from-internal-custom]/r ibm-411.txt' /etc/asterisk/extensions_custom.conf
asterisk -rx "dialplan reload"

Now try out the Incredible PBX Voice Dialer with AsteriDex by dialing 411 and saying "Delta Airlines." Check back next week for the Whole Enchilada apps tutorial.

Adding GVSIP Trunks to Incredible PBX

Now that you have your Incredible PBX platform in place, it’s time to set up your GVSIP trunks. The trunks themselves are added by logging into your server with SSH/Putty as root and issuing the command: /root/gvsip-naf/install-gvsip. To add a trunk, you’ll need a Google Voice refresh_token and your Google Voice 10-digit phone number. This tutorial will walk you through obtaining those from Google. Once you have added one or more GVSIP trunks, you’ll need to use the FreePBX GUI to tell your PBX how to route Inbound and Outbound Calls to and from your GVSIP trunks.

Configuring a GVSIP Inbound Route

By default, incoming calls to GVSIP trunks on Incredible PBX servers will be sent to the Default Inbound Route configured on your PBX. As initially installed on Enchilada platforms, that Default route points to Allison’s Demo IVR. This can be changed easily in the FreePBX GUI by modifying the Destination for the Default inbound route in Connectivity:Inbound Routes.

On other server platforms, you may not have a Default inbound route configured so you will need to create an inbound route to handle calls from each GVSIP trunk. Regardless of your server platform, we strongly recommend adding an Inbound Route for every GVSIP trunk using the 10-digit GVSIP phone number as the DID for the inbound route. Here’s an example of an Inbound Route created in Connectivity:Inbound Routes:Add Inbound Route:

If you have installed the Incredible Fax add-on, you can enable Fax Detection under the Fax tab. And, if you’d like CallerID Name lookups using CallerID Superfecta, you can enable it under the Other tab before saving your setup and reloading your dialplan.

Configuring a GVSIP Outbound Route

By default, you cannot place outbound calls using your new GVSIP trunks. For each trunk, you first will need to create an Outbound Route specifying a Dial Pattern to use with each GVSIP trunk in Connectivity:Outbound Routes:Add Outbound Route. If you only have a single Google Voice trunk on your PBX and no other trunks, then you would probably want to specify that outbound calls be routed out the GVSIP1 trunk with a Dial Pattern of NXXNXXXXXX with 1 as the Prepend. This tells FreePBX to dial 18005551212 using the GVSIP1 trunk when a PBX user dials 8005551212. Google only accepts calls that include a country code (1=US/CAN).

HINT: If you ever forget which GVSIP trunks are associated with which phone numbers, simply run /root/gvsip-naf/del-trunk for a list of your trunks. Just press ENTER to exit without deleting any of your trunks.

There are a million ways to design outbound calling schemes on PBXs with multiple trunks. One of the simplest ways is to use no dial prefix for the primary trunk and then use dialing prefixes for the remaining trunks. As part of the install, the dialing prefixes of *41 through *49 were reserved for GVSIP trunks if you would like to use them. That’s totally up to you. Here’s what an Outbound Route would look like using this scheme for the GVSIP2 trunk:

Another outbound calling scheme would be to assign specific DIDs to individual extensions on your PBX. Here you could use NXXNXXXXXX with the 1 Prepend as the Dial Pattern with every Outbound Route and change the Extension Number in the CallerID field of the Dial Pattern. With this setup, you’d need a separate Outbound Route for each group of extensions using a specific trunk on your PBX. Additional dial patterns can be added for each extension designated for a particular trunk. A lower priority Outbound Route then could be added without a CallerID entry to cover extensions that weren’t restricted or specified.

HINT: Keep in mind that Outbound Routes are processed by FreePBX in top-down order. The first route with a matching dial pattern is the trunk that is selected to place the outbound call. No other outbound routes are ever used even if the call fails or the trunk is unavailable. To avoid failed calls, consider adding additional trunks to the Trunk Sequence in every outbound route. In summary, if you have multiple routes with the exact same dial pattern, then the match nearest to the top of the Outbound Route list wins. You can rearrange the order of the outbound routes by dragging them into any sequence desired.

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.

Incredible PBX 16-15.02 Update Summary

Today’s new release addresses a number of original bugs. Reinstall is recommended.

1. Asterisk’s app_macro is now a deprecated component, but FreePBX uses it for most dialing functions. It now has been added in menuselect.
2. FLITE is broken at the moment, but we’ve added picotts for TTS support and reworked a number of Incredible apps. IBM TTS is even better. Review Implementing IBM TTS and Voice Recognition section of latest Issabel tutorial for IBM setup. Required components are already in place and need not be reinstalled. Simply configure the applications you wish to use.
3. ODBC support has been reworked to support Asterisk 16 and FreePBX 15. Two sample apps are included:
a. Dial 222 and enter 12345 for a sample employee lookup application using sample MySQL timeclock database.
b. Dial 223 and enter 335 for a sample speeddialer using AsteriDex dial codes. Dialing D-E-L gets Delta Airlines.
4. Incredible Fax works; however, fax detection appears to be broken so fax receive requires a dedicated DID or Google Voice trunk. Before running the Incredible Fax installer, issue the following command:

yum -y install php-devel --enablerepo=remi,remi-php56,epel

5. Missing STUN server components have been added:

sed -i 's|;stunaddr =|stunaddr =|' /etc/asterisk/res_stun_monitor.conf
sed -i 's|;stunrefresh = 30|stunrefresh = 30|' /etc/asterisk/res_stun_monitor.conf
amportal restart

6. PicoTTS integrated into all Incredible PBX applications.
7. GitHub used as source for Asterisk 16 installs.
8. More than a dozen FreePBX GPL modules updated. Notifications disabled.
9. New GVSIP patch file for Asterisk 16.

Incredible PBX 16-15.02 Module Updates

Under Sangoma’s distribution terms, we provide our own module update methodology using two FreePBX GitHub repositories and the gpl scripts included in the /root directory of your server. Under the terms of the GPL license under which FreePBX is distributed, Sangoma waived all rights with respect to "circumvention of technological measures." Thus, you are free to modify the default module repository which is set in the MODULE_REPO record of the freepbx_settings table in MySQL’s asterisk database. If you elect to use our module update methodology, then you will need to disable TWO settings in Settings -> Advanced Settings: (1) Allow Automatic Security Updates and (2) Update Notifications. Otherwise, you will receive errors when the FreePBX cron manager attempts to contact, FreePBX’s default repository.

Continue Reading: Configuring Extensions, Trunks & Routes

Don’t Miss: Incredible PBX Application User’s Guide covering the 31 Whole Enchilada apps

Originally published: Tuesday, October 16, 2018  Updated: Sunday, November 4, 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.

2018 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 11-digit DID beginning with a 1. 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. Some of our links refer users to Amazon or other service providers when we find their prices are competitive for the recommended products. Nerd Vittles receives a small referral fee from these providers to help cover the costs of our blog. We never recommend particular products solely to generate commissions. However, when pricing is comparable or availability is favorable, we support these providers because they support us. []

This article has 2 comments

  1. You mention this version is very stable but don’t use it in production. I am looking to install an IncrediblePBX version for production use. What is the most stable option I should use? In my environment I have upgraded all servers to CentOS7 so I would prefer to not go back to a 6.x version.

    [WM: We don’t recommend CentOS 7. Incredible PBX 13-13 is extremely stable with CentOS 6.10.]

  2. Tried to install on esxi 6.5 server with CentOS 6.10 minimal install using the instructions above. Asterisk shows down and there is no web gui available on the pbx ip. What did I miss or how can I troubleshoot the install?

    [WM: Check the install logs in /root. They will tell you what went wrong. Sounds like you didn’t have network connectivity.]

Leave a comment

Your email address will not be published. Required fields are marked *