If you’re not one to turn down a new challenge and you consider yourself an open source purist, then this Bud’s for you. Last month we introduced the latest and greatest Ubuntu 14 offering with Incredible PBX. And today it’s RedHat’s turn with the brand new CentOS 7. Be forewarned that CentOS 7 is a very different Linux animal than CentOS 6.5, and it’s just two weeks old. RHEL 7 is only six weeks old. There are more than a few potholes in RedHat’s latest pathway to heaven. This results in a number of direct consequences in any Asterisk® and FreePBX® communications server which depends upon CentOS 7 under the covers. For openers, anything proprietary probably won’t work for a while. That includes Digium phones and Schmooze Com’s commercial modules for FreePBX. In addition, FreePBX 2.11 and 12 were designed using PHP 5.3. CentOS 6.5 is distributed with PHP 5.4. Ubuntu 14 and Fedora 20 have PHP 5.5. There are some incompatibilities between all three versions, and many of us still are sorting out what impact those incompatibilities will have on the overall reliability of the FreePBX platform and some of the Incredible PBX applications. You can help by testing this new build in a non-production environment. 95% of the feature set available in the CentOS 6.5 platform still works fine. But finding the gotcha’s is going to take some time… and some pioneers. So… roll up your sleeves and lend us a hand!
Incredible PBX™ for CentOS 6.5 and 7 is an independent aggregation that does not rely upon PBX in a Flash™ for its roots. Because of the nature of the CentOS platform, it was built from the ground up. PBX in a Flash will follow once the stability of the CentOS 7 platform has been demonstrated. The Incredible PBX installer is pure GPL2 open source code so you are more than welcome (encouraged!) to examine it, improve upon it, and share your discoveries with all of us.
Incredible PBX for CentOS 6.5 and 7 follows our new install procedure which means it’s up to you to first create a CentOS 6.5 or 7 platform. If you prefer Scientific Linux or Oracle Linux, feel free to start there. All work equally well as a base platform. Then you run the Incredible PBX installer. After 30-60 minutes of whirring, you’ll end up with an awesome (free) state-of-the-art Asterisk-based VoIP server with the very latest version of Asterisk 11 and FreePBX 2.11 as well as dozens of turnkey Incredible PBX applications. So enjoy a nice lunch while the Incredible PBX installer works its magic. No user intervention is required during the installation procedure. All text-to-speech (TTS) applications work out of the box. You can add Google’s Speech Recognition to many Incredible PBX applications by following our 5-minute tutorial.
Installing a Base CentOS Operating System
Let’s begin by installing 64-bit CentOS 7 or 6.5 on your favorite hardware or Desktop. Or you may prefer to use a Cloud provider1 that already offers a preconfigured CentOS 7 image. In the latter case, you can skip this section.
For those using a dedicated hardware platform or wishing to install CentOS 7 as a virtual machine, the drill is the same. Start by downloading the CentOS 7 minimal ISO or the 64-bit CentOS 6.5 minimal ISO.
We recommend the Everything ISO at the moment since there currently is no minimal install ISO. Burn the whopping ISO to a DVD unless you’ll be booting from the ISO on a virtual machine platform such as VirtualBox. On virtual platforms, we recommend at least 1GB RAM and a 20GB dedicated drive. For VirtualBox, here are the settings:
Version: RedHat 64-bit
Default Drive Options with 20GB+ space
Settings->System: Enable IO APIC and Disable HW Clock (leave rest alone)
Settings->Network: Enable, Bridged
Settings->Storage: Far right CD icon (choose your ISO)
Boot your server with the ISO, and start the CentOS 7 install. Here are the simplest installation steps:
Choose Language and Click Continue
Click: Install Destination (do not change anything!)
Click: Network & Hostname
Click: Begin Installation
Click: Root Password: password, password, Click Done twice
Wait for Minimal Software Install and Setup to finish
Configuring CentOS 6.5 or 7 for Incredible PBX Installation
Now log into your server as root and issue the following commands to put the basic pieces in place and to reconfigure your Ethernet port as eth0. Make a note of your IP address so you can log in with SSH.
setenforce 0 yum -y upgrade yum -y install net-tools nano wget ifconfig # figure out your server IP address here sed -i 's|quiet|quiet net.ifnames=0 biosdevdame=0|' /etc/default/grub grub2-mkconfig -o /boot/grub2/grub.cfg # for CentOS/Scientific Linux 6.5/6.6 only, perform these additional steps: wget http://incrediblepbx.com/update-kernel-devel chmod +x update-kernel-devel ./update-kernel-devel reboot
If you’re on a virtual machine platform, now would be a good time to make an export or backup of your CentOS 7 image. The minimal install is about 500MB instead of 6.6GB. Don’t forget to first remove your hardware address (HWADDR) and network UUID from /etc/sysconfig/network-scripts/ifcfg-enp0s3 or whatever file name was assigned to your hardware. The saved image will be bootable with DHCP network support anywhere down the road.
NEWS FLASH: For those wanting to test things out using VirtualBox, a Scientific Linux 7 Minimal Install image (401MB) is now available on SourceForge. It gets you to right here in the install process.
Installing Incredible PBX for CentOS 6.5 or 7
Adding Incredible PBX to a running CentOS 6.5 or 7 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 in the ifconfig step at the end of the CentOS installation procedure above.
WARNING: If you’re using a 512MB droplet at Digital Ocean, be advised that their Ubuntu 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 install. Log back in as root and issue the following commands:
cd /root wget http://incrediblepbx.com/incrediblepbx11.4.centos.tar.gz tar zxvf incrediblepbx* #./create-swapfile-DO ./IncrediblePBX*
Log out and back into your server as root and you should be greeted by something like this:
Or, if you started with a CentOS 6.5 or Scientific Linux 6.5 platform, you’ll see this:
1. Access the Asterisk CLI by typing: asterisk -rvvvvvvvvvv
2. Set Your Correct Time Zone by typing: /root/timezone-setup
3. Change ALL of Your Passwords by typing: /root/update-passwords
You can access the FreePBX GUI using your favorite web browser to configure your server. Just enter the IP address shown in the status display. The default username is admin and the password is what you wrote down or reset when the install completed. Now edit extension 701 so you can figure out (or change) the randomized passwords that were set up for your 701 extension and voicemail account: Applications -> Extensions -> 701. If you’re behind a hardware-based firewall, change the NAT setting to: YES.
Setting Up a Soft Phone to Use with 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. 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. Dial a few of these to get started:
947 - Weather by ZIP Code
951 - Yahoo News
*61 - Time of Day
*68 - Wakeup Call
TODAY - Today in History
Now you’re ready to connect to the telephones in the rest of the world. If you live in the U.S., the easiest way (at least for now) is to set up a free Google Voice account. Google has threatened to shut this down but as this is written, it still works. 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.
Configuring Google Voice
If you want to use Google Voice, you’ll need a dedicated Google Voice account to support Incredible PBX. If you want to use the inbound fax capabilities of Incredible Fax 11, then you’ll need an additional Google Voice line that can be routed to the FAX custom destination using FreePBX. The more obscure the username (with some embedded numbers), the better off you will be. This will keep folks from bombarding you with unsolicited Gtalk chat messages, and who knows what nefarious scheme will be discovered using Google messaging six months from now. So keep this account a secret!
We’ve tested this extensively using an existing Gmail account, and inbound calling is just not reliable. The reason seems to be that Google always chooses Gmail chat as the inbound call destination if there are multiple registrations from the same IP address. So, be reasonable. Do it our way! Set up a dedicated Gmail and Google Voice account, and use it exclusively with Incredible PBX 11. It’s free at least through 2013. Google Voice no longer is by invitation only so, if you’re in the U.S. or have a friend that is, head over to the Google Voice site and register.
You must choose a telephone number (aka DID) for your new account, or Google Voice calling will not work… in either direction. Google used to permit outbound Gtalk calls using a fake CallerID, but that obviously led to abuse so it’s over! You also have to tie your Google Voice account to at least one working phone number as part of the initial setup process. Your cellphone number will work just fine. Don’t skip this step either. Just enter the provided 2-digit confirmation code when you tell Google to place the test call to the phone number you entered. Once the number is registered, you can disable it if you’d like in Settings, Voice Setting, Phones. But…
IMPORTANT: Be sure to enable the Google Chat option as one of your phone destinations in Settings, Voice Setting, Phones. That’s the destination we need for The Incredible PBX to work its magic! Otherwise, all inbound and outbound calls will fail. If you don’t see this option, you may need to call up Gmail and enable Google Chat there first. Then go back to the Google Voice Settings.
While you’re still in Google Voice Settings, click on the Calls tab. Make sure your settings match these:
- Call Screening – OFF
- Call Presentation – OFF
- Caller ID (In) – Display Caller’s Number
- Caller ID (Out) – Don’t Change Anything
- Do Not Disturb – OFF
- Call Options (Enable Recording) – OFF
- Global Spam Filtering – ON
Click Save Changes once you adjust your settings. Under the Voicemail tab, plug in your email address so you get notified of new voicemails. Down the road, receipt of a Google Voice voicemail will be a big hint that something has come unglued on your PBX.
One final word of caution is in order regardless of your choice of providers: Do NOT use special characters in any provider passwords, or nothing will work!
Now you’re ready to set up your Google Voice trunk in FreePBX. After logging into FreePBX with your browser, click the Connectivity tab and choose Google Voice/Motif. To Add a new Google Voice account, just fill out the form. Do NOT check the third box or incoming calls will never ring!
IMPORTANT LAST STEP: Google Voice will not work unless you restart Asterisk from the Linux command line at this juncture. Using SSH, log into your server as root and issue the following command: amportal restart.
If you have trouble getting Google Voice to work (especially if you have previously used your Google Voice 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.
Troubleshooting 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.
A Few Words about the Incredible PBX Security Model for CentOS 7
Incredible PBX for CentOS 7 joins last month’s Ubuntu 14 build as our most secure turnkey PBX implementation, ever. As configured, it is protected by both Fail2Ban and a hardened configuration of the IPtables Linux firewall. The latest release also includes Port Knocker for simple, secure access from any remote computer or smartphone. You can get up to speed on how the technology works by reading the Nerd Vittles tutorial. Your Port Knocker credentials are stored in /root/knock.FAQ together with activation instructions for your server and mobile devices. The NeoRouter VPN client also is included for rock-solid, secure connectivity to remote users. Read our previous tutorial for setup instructions. As configured, 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. You can whitelist additional IP addresses by running the command-line utility /root/add-ip. You can remove whitelisted IP addresses by running /root/del-acct. Incredible PBX is preconfigured to let you connect to many of the leading SIP hosting providers without additional firewall tweaking. 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. And it’s your phone bill. 😉
The IPtables firewall is a complex piece of software. If you need assistance with configuring it, visit the PIAF Forum for some friendly assistance.
Incredible Backup and Restore
We’re pleased to introduce our latest backup and restore utilities for Incredible PBX. Running /root/incrediblebackup will create a backup image of your server in /tmp. This backup image then can be copied to any other medium desired for storage. To restore it to another Incredible PBX 11 server, simply copy the image to a server running Asterisk 11 and FreePBX 2.11 and run /root/incrediblerestore. Doesn’t get much simpler than that.
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.
In the meantime, we 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.
Incredible PBX: Pick Your Poison
We fully appreciate that Bleeding Edge technology isn’t right for everyone. Fortunately, with Incredible PBX, you have lots of options, and they’re all free. Come join the party and see what you’ve been missing.
Originally published: Monday, July 20, 2014
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.
Awesome Vitelity Special. Vitelity has generously offered a terrific discount for Nerd Vittles readers. 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. When you use our special link to sign up, Nerd Vittles gets a few shekels down the road to support our open source development efforts 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 our 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 and four simultaneous channels for just $3.99 a month. To check availability of local numbers and tiers of service from Vitelity, click here. NOTE: You can only use the Nerd Vittles sign-up 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. Any balance is refundable if you decide to discontinue service with Vitelity.
3CX is a software PBX that’s easy to install & manage. It includes integrated softphones, WebRTC conferencing and essential add-ons out of the box, at no additional cost. Try the free edition at www.3cx.com. Better yet, download the PIAF5 ISO powered by 3CX. Free version includes support for 8 simultaneous calls with a SIP trunk.
Some Recent Nerd Vittles Articles of Interest…
- 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. [↩]