Our last major Incredible PBX® upgrade on the Ubuntu platform supported Ubuntu 14.04 which was released in April, 2014. We skipped 16.04 because of all the wrinkles it introduced for VoIP deployments: an incompatible PHP upgrade, missing ODBC support, and on and on. Fortunately, all of those issues have been sorted out over the past two years, and several months ago we introduced Incredible PBX 13-13 for the Ubuntu 18.04 LTS platform which was released in April. Now we’ve added SRTP encrypted communications as well as support for the hidden 32-bit version of Ubuntu 18.04. And today, we’re pleased to offer Incredible PBX for Ubuntu with native support for Google Voice’s new GVSIP technology. The bug list has shrunk quickly. You can track all the latest developments in this PIAF Forum thread.

In July, Google discontinued support of their XMPP interface to Google Voice. The latest CentOS/SL versions of Incredible PBX 13-13 (including the Incredible PBX ISO), Raspberry Pi image, and Ubuntu 18.04 release now incorporate NAF’s GVSIP interface to Google Voice. 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 the GUI, you then add an Outbound Route and an Inbound Route for each trunk. You’ll need both your Google Voice 10-digit phone number and a Refresh Token to add a new trunk. Complete tutorial available here.

As with our previous CentOS release, you now have a choice of the Lean, Mean Asterisk® Machine, or you can go for the Whole Enchilada which adds more than three dozen applications for Asterisk 13 LTS including most of the FreePBX® 13 GPL modules. If you enjoy a VoIP playground on the bleeding edge of technology, this Bud’s for you! We’re lowering the beta release flag now that our users have had an opportunity to kick the tires and find most of the major bugs.

Building an Ubuntu 18.04.1 Platform for Incredible PBX 13-13

As a result of the trademark and copyright morass with Ubuntu, we’ve steered away from the bundled operating system in favor of a methodology that relies upon you to put in place the operating system platform on which to run Incredible PBX. The good news is it’s easy! With many cloud-based providers1 including Vultr and Digital Ocean, you can simply click a button to choose the Ubuntu 18.04 64-bit image and within minutes, you’re ready to go. For the VirtualBox virtual machine platform, we’ve uploaded a pre-built Ubuntu 18.04 64-bit image to SourceForge to get you started. If you’re rolling your own with on-premise hardware, start by downloading the Ubuntu 18.04.1 LTS 64-bit server image from here. If you happen to have older hardware, you can download the Ubuntu 18.04 32-bit mini ISO from here. Choose the LAMP, mail, SSH, and Ubuntu Server options during the install, and you’ll be ready to install Incredible PBX.

If this is a fresh install on your own hardware, you’ll need to login to the server using the username and password you created during the install. Once you’re in, set the root password like this: sudo passwd root. Then switch to the root user: su root. Then you can continue with the Incredible PBX install using the directions below. After the first reboot, you can use your root user login credentials directly with SSH or Putty to complete the second phase of the install.

Installing Incredible PBX with Ubuntu 18.04.1

Adding Incredible PBX 13-13 to a running Ubuntu 18.04 server is a walk in the park. To restate the obvious, your server needs a reliable Internet connection to proceed. Using SSH (or Putty on a Windows machine), log into your new server as root at the IP address you deciphered using ifconfig.

If you’re using a 1 GB droplet at Vultr or Digital Ocean, be advised that the Ubuntu 18.04 setup does NOT include a swap file. This may cause serious problems when you run out of RAM. Uncomment ./create-swapfile-DO line below to create a 1GB swap file which will be activated whenever you exceed 90% RAM usage on Digital Ocean.

Now let’s begin the Incredible PBX 13-13 install. Log back in as root and issue the following commands:

cd /root
wget http://incrediblepbx.com/incrediblepbx-13-13U-LEAN.tar.gz
tar zxvf incrediblepbx-13-13U-LEAN.tar.gz
rm -f incrediblepbx-13-13U-LEAN.tar.gz

Once you have agreed to the license agreement and terms of use, press Enter. The Incredible PBX installer will load the latest updates for Ubuntu 18.04.1 and then reboot. Log back into your server and run the installer a second time: ./Incredible*. Be sure to use OAuth authentication for Google Voice if you plan to also install the Whole Enchilada. Then stick around for the first few minutes to answer a couple of additional prompts. The first only requires typing Y and pressing ENTER. The second asks for the default country code to associate with your PBX. For the U.S. and Canada, it’s the number 1.

When the installation finishes, your server will reboot to activate the preconfigured firewall whitelist. If you need to add additional IP addresses to the whitelist before rebooting, press Ctrl-C and run /root/add-ip. Don’t forget to reboot! Then log back in as root and you’ll be greeted with a status display like this after the Automatic Update Utility runs:

Assuming you’ve already created a very secure root password (update it by running passwd), perform the following 5 Steps to get everything locked down:

  1. Create an admin password for GUI access: /root/admin-pw-change
  2. Create an admin password for Apache web access: htpasswd /etc/pbx/wwwpasswd admin
  3. Configure the correct timezone for your server: /root/timezone-setup
  4. Retrieve your PortKnocker setup like this: cat /root/knock.FAQ
  5. Add unlimited GVSIP trunks like this: /root/gvsip-naf/install-gvsip
  6. Add IPtables WhiteList entries for remote access: /root/add-ip or /root/add-fqdn

Using the Incredible PBX 13-13 Web GUI

NOTE: If you plan to upgrade to the Whole Enchilada, you can skip this section. It’s for those that wish to roll their own PBX from the ground up.

Most of the configuration of your PBX will be performed using the web-based Incredible PBX GUI with its FreePBX 13 GPL modules. Use a browser pointed to the IP address of your server and choose Incredible PBX Admin. Log in as admin with the password you configured in the first step above. HINT: You can always change it if you happen to forget it.

To get a basic system set up so that you can make and receive calls, you’ll need to add a VoIP trunk, create one or more extensions, set up an inbound route to send incoming calls to an extension, and set up an outbound route to send calls placed from your extension to a VoIP trunk that connects to telephones in the real world. You’ll also need a SIP phone or softphone to use as an extension on your PBX. Our previous tutorial will walk you through this setup procedure. Over the years, we’ve built a number of command line utilities including a script to preconfigure SIP trunks for more than a dozen providers in seconds. You’ll find links to all of them here.

Continue Reading: Configuring Extensions, Trunks & Routes

Upgrading to Incredible PBX Whole Enchilada

There now are two more pieces to put in place. The sequence matters! Be sure to upgrade to the Whole Enchilada before you install Incredible Fax. If you perform the steps backwards, you may irreparably damage your fax setup by overwriting parts of it.

The Whole Enchilada upgrade script now is included in the Incredible PBX LEAN tarball. To run it, issue the following commands:

cd /root

If you accidentally installed Incredible Fax before upgrading to the Whole Enchilada, you may be able to recover your Incredible Fax setup by executing the following commands. It’s worth a try anyway.

amportal a ma install avantfax
amportal a r

Installing Incredible Fax with HylaFax/AvantFax

You don’t need to upgrade to the Whole Enchilada in order to use Incredible Fax; however, you may forfeit the opportunity to later upgrade to the Whole Enchilada if you install Incredible Fax first. But the choice is completely up to you. 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 several times to choose options as part of the install. Simply 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. Be advised that there remain a couple of quirks on the Ubuntu 18.04 platform. First, after entering your credentials, you may get a timeout error with your browser. Simply press the Reload/Refresh icon in your browser, and the default AvantFax menu will appear. Second, you will need to set your email delivery address and a new password for AvantFax manually. Click on the Settings option in the upper right corner of the dialog. When you save your settings, you may again experience a timeout event. Click the Reload/Refresh button on your browser again, and AvantFax will come back to life.

Setting Up a Soft Phone for Incredible PBX

Now you’re ready to set up a telephone so that you can play with Incredible PBX. 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 Settings -> Accounts and click the New button. Fill in the blanks using the IP address of your server, 701 for your account name, and whatever password you created for the extension after installing Enchilada. Click OK.

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. You can dial a few of these to get started or, better yet, take Allison’s Incredible PBX IVR for a spin by dialing D-E-M-O (3366). NOTE: The Voice Recognition options will not work until you first enter your credentials (covered below).

123 - Reminders
222 - ODBC Demo (use acct: 12345)
947 - Weather by ZIP Code
951 - Yahoo News
*61 - Time of Day
*68 - Wakeup Call
TODAY - Today in History

The next step is establishing an interface on your PBX to connect to the telephones in the rest of the world. If you live in the U.S., the easiest way (at least until mid-June) is to use an existing (free) Google Voice account. The more desirable long-term solution is to choose several SIP providers and set up redundant trunks for your incoming and outbound calls. The PIAF Forum includes dozens of recommendations to get you started. And, of course, our platinum sponsor, Vitelity, stands ready to assist with a special offer at the end of this article.

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 Google Voice Trunks with GVSIP

You’ll need at least one dedicated Google Voice account to use the new GVSIP implementation with Asterisk. If you’re new to all of this, our Getting Started with Google Voice tutorial will walk you through setting up an account and obtaining your OAuth 2 refresh token for GVSIP.

Once you have your refresh token and Google Voice phone number in hand, head over to this Nerd Vittles tutorial to review the setup procedure. Adding a GVSIP trunk takes about 10 seconds. Configuring an Outbound and Inbound Route to support it takes about a minute.

Troubleshooting Audio and DTMF Problems

You can avoid one-way audio on calls and touchtones that don’t work by entering these simple settings in the GUI: Settings -> Asterisk SIP Settings. Just plug in your public IP address and your private IP subnet. Then set ULAW as the only Audio Codec.

A Few Words about the Incredible PBX Security Model for Ubuntu

Incredible PBX for Ubuntu 18.04 is a very secure, turnkey PBX implementation. As configured, your server is protected by both Fail2Ban and a hardened configuration of the IPtables Linux firewall. Nobody can access your PBX without your credentials AND an IP address that is either on your private network or that matches the IP address of your server or the PC from which you installed Incredible PBX. Incredible PBX is preconfigured to let you connect to many of the leading SIP hosting providers without additional firewall tweaking.

You can whitelist additional IP addresses for remote access in several ways. First, you can use the command-line utilities: /root/add-ip and /root/add-fqdn. You can also remove whitelisted IP addresses by running /root/del-acct. Second, you can dial into extension 864 (or use a DID pointed to extension 864 aka TM4) and enter an IP address to whitelist. Before Travelin’ Man 4 will work, you’ll need to add credentials for each caller using the tools in /root/tm4. You must add at least one account before dial-in whitelisting will be enabled. Third, you can temporarily whitelist an IP address by successfully executing the PortKnocker 3-knock code established for your server. You’ll find the details and the codes in /root/knock.FAQ. Be advised that IP addresses whitelisted with PortKnocker (only!) go away whenever your server is rebooted or the IPtables firewall is restarted. For further information on the PortKnocker technology and available clients for iOS and Android devices, review the Nerd Vittles tutorial.

HINT: The reason that storing your PortKnocker codes in a safe place is essential is because it may be your only available way to gain access to your server if your IP address changes. You obviously can’t use the command-line tools to whitelist a new IP address if you cannot gain access to your server at the new IP address.

We always recommend you also add an extra layer of protection by running your server behind a hardware-based firewall with no Internet port exposure, but that’s your call. If you use a hardware-based firewall, be sure to map the three PortKnocker ports to the internal IP address of your server!

The NeoRouter VPN client also is included for rock-solid, secure connectivity for remote users. Read our previous tutorial for setup instructions.

As one would expect, the IPtables firewall is a complex piece of software. If you need assistance configuring it, visit the PIAF Forum for some friendly assistance.

Incredible PBX Automatic Update Utility

Every time you log into your server as root, Incredible PBX will ping the IncrediblePBX.com web site to determine whether one or more updates are available to bring your server up to current specs. We recommend you log in at least once a week just in case some new security vulnerability should come along. Also be sure to check the PBX in a Flash RSS Feed inside the GUI for the latest security alerts.

Mastering the Incredible PBX Applications

Your next stop should be a quick read of the Application User’s Guide for Incredible PBX. Even though the target audience was Raspberry Pi users, the feature set is identical, and this guide will tell you everything you need to know about the dozens of applications for Asterisk that have been installed on your new server.

We also want to encourage you to sign up for an account on the PIAF Forum and join the discussion. In addition to providing first-class, free support, we think you’ll enjoy the camaraderie. Come join us!

Originally published: Monday, May 21, 2018  Updated: Thursday, August 23, 2018

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! 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 users just like you. You won’t have to wait long for an answer to your question.

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. NEW: Dynamic IP support!

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 www.RentPBX.com 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.

Some Recent Nerd Vittles Articles of Interest…

Print Friendly, PDF & Email

Be Sociable, Share!

  1. With some providers including ones linked in this article, Nerd Vittles receives referral fees which assist in keeping the Nerd Vittles lights burning brightly. []

This article has 11 comments

  1. ./admin-pw-change working for anyone else?

    mysql: [Warning] Using a password on the command line interface can be insecure.
    ERROR 1406 (22001) at line 1: Data too long for column ‘password_sha1’ at row 1

    eth0: error fetching interface information: Device not found
    Done. Use browser to access FreePBX at http://

    [WM: There was a bug in the admin-pw-change script. A patch has been pushed out through the Automatic Update Utility. Just log out and log back into your server to get it. The browser link also was fixed. The MySQL warning is harmless, just an alert that you are using the MySQL password on the command line.]

  2. For the first time (for at least 5 years), /root/add-ip and /root/add-fqdn are not working, I could login using kvm mode (through http://www.ovh.com) by I could not do so with putty. I had installed twice to make sure it was done properly.

    [WM: Sorry, but we’ve been unable to duplicate your problem. Please head to the PIAF Forum if you need assistance with this.]

  3. hi, I tried to install in aws.amazon.com using soft key (no login is required) and selinux is disabled. I could login. May be it is just OVH peculiar environment. thx for the wonderful work.

    [WM: We don’t recommend Amazon AWS but, if you use it, make certain that the 172.16 whitelist entry is disabled in /etc/iptables/rules.v4. Otherwise, every Amazon user will have access to your server. And don’t forget to restart IPtables after making the change: iptables-restart]

  4. Wow that was unusual. I just wrote a really long comment but after I
    clicked submit my comment didn’t appear. Grrrr…
    Well, I’m not writing all that over again. Regardless, just wanted to say fantastic blog!

  5. Thank you very much for your contributions, can you do an installation guide in Debian? It would be great.

    [WM: Full plate at the moment. But Ubuntu 18.04 is based upon Debian and is available now.]

  6. Not much luck installing. Fresh install of 64 bit 18.04 Server LTS and LAMP. Ran scripts logged in as root during those steps as instructed. Could never get the screen stating that Incredible PBX is installed on Ubuntu. Seems like asterisk is not getting installed. Get an error during updates stating that asterisk command not found.

    [WM: Take a look at the install logs in /root. They will tell you what went wrong. Good luck!]

  7. I too tried on a fresh install of 18.04, but the script while completing, there were a LOT of errors, and nothing works. Looking through the logs there are a lot of packages that are not available anymore, or not available with the PPA’s that are in by default.

    Since there are so many errors in the log, is there somewhere I can send it?

    I appreciate the effort but I think something changed substantially on Ubuntu’s side.

    [WM: I just built a fresh Incredible PBX for Ubuntu 18.04 server without any problems. That usually means you didn’t follow all of the directions carefully enough. Did you install the base Ubuntu 18.04 server platform selecting the LAMP, Mail, and SSH components? Did you log back in as root before executing the second pass with the installer? Did you expand the SSH/Putty window before running the second pass of the installer? If you didn’t, that will almost always cause the Asterisk build to fail which then causes the FreePBX install to fail, etc. Did you answer the y/n question during the Asterisk portion of the install and then choose your country code when prompted? Do you have a reliable Internet connection? If these tips don’t help, open a thread on the PIAF Forum and post a sanitized copy of your install logs.]

  8. The Ubuntu server setup seems to be the part of the tutorial that is lacking. The default download of Ubuntu LTS 18 is a Subiquity release that doesn’t give you the option of installing the server components LAMP, Mail and SSH at build. You either need to follow a post install tutorial for getting these packages installed and configured or download the alternative installer.

    [WM: It’s one of the reasons we included a workable Ubuntu 18.04 ISO on our SourceForge site. We also provided the link to the server version in the tutorial above.]

  9. A decent tutorial on getting the server ready if you installed the Subiquity version: https://www.digitalocean.com/community/tutorials/how-to-install-linux-apache-mysql-php-lamp-stack-ubuntu-18-04

  10. I have an issue setting the admin password. I get:

    Press ENTER key to continue or Ctrl-C to abort…
    mysql: [Warning] Using a password on the command line interface can be insecure.
    ERROR 1045 (28000): Access denied for user ‘root’@’localhost’ (using password: YES)

    eth0: error fetching interface information: Device not found
    Done. Use browser to access FreePBX at http://

    Any ideas?

    [WM: MySQL error is because of wrong MySQL password. Eth0 error is harmless because of a platform that’s using a network port other than eth0.]

  11. I’ve spent 12 hours working on this only to find out dahdi doesn’t work on kernel 4.15 which is the default and only kernel in the repo for 18.04. Great.