NEWS FLASH: A new release of Incredible PBX for Issabel is now available. Tutorial is here.
If you didn’t already know, we’ve always liked free. No strings, no gotchas, no demoware, and no legal shenanigans. That’s why our introduction of Issabel 4 last week was such a breath of fresh air. While there’s now an awesome free version of 3CX, the open source community has had a very long dry spell. So today we celebrate a decade of adding fun to phone systems with the introduction of Incredible PBX® for Issabel 4. It includes our next generation, preconfigured Travelin’ Man 3 firewall, additional text-to-speech engines (FLITE, GoogleTTS, and PicoTTS), voice recognition, turnkey trunk and extension setups with preconfigured tollfree calling, Google Voice support with OAuth 2 or plain text passwords for free calling in the U.S. and Canada, SMS messaging, telephone reminders, turnkey fax support, AsteriDex phone book with both voice and speed dialing, Wolfram Alpha, sample ODBC apps, and a boatload of dialplan code and AGI scripts to help anyone wanting to learn how to develop custom applications with Asterisk®.
Installing Incredible PBX for Issabel 4
Let’s start with the basics and get all of the Incredible PBX components loaded. As with all Incredible PBX builds, running the Incredible PBX installer will erase ALL of your existing Issabel configuration. So begin with a clean, unaltered Issabel 4 platform with no added components or configuration changes. Be sure to use either the June or July ISO for base Issabel install. We will update it from there as part of the Incredible PBX install. Just follow last week’s tutorial to bring up Issabel 4 on a dedicated server or a virtual machine.
The Travelin’ Man 3 firewall is installed and configured as part of the install. It whitelists certain IP addresses and blocks everyone else from even seeing your server on the Internet. For this reason, it is critically important that you perform the Incredible PBX install using SSH or Putty from a PC that you will use to manage your Issabel server. Otherwise, you risk locking yourself out of your own server. Whitelisted IP addresses include the Issabel server itself, the public and private IP addresses of your desktop PC, all non-routable, private LAN addresses, and the Nerd Vittles collection of recommended SIP hosting providers. You can add as many additional providers or users to the whitelist using the simple tools provided as part of the install and further documented below. Do NOT activate Issabel’s firewall.
As part of the install process, you’ll be prompted during both passes to create a password for MySQL/MariaDB and an admin password for the Issabel web GUI. The MySQL password MUST be passw0rd (with a zero), or you will get a permanent mess. The admin password can be anything you like. Passwords can be updated by running /root/admin-pw-change. Many of the Incredible PBX apps depend upon this MySQL password so don’t change it. Your MySQL databases remain secure and can only be accessed on localhost or after a successful root login to your server from a whitelisted IP address.
Begin the Incredible PBX install by logging into your Issabel server as root from a desktop PC using SSH or Putty and execute the following commands:
cd /root wget http://incrediblepbx.com/IncrediblePBX11-Issabel4.sh chmod +x IncrediblePBX11-Issabel4.sh ./IncrediblePBX11-Issabel4.sh
Introducing the (new) Travelin’ Man 3 Firewall
Issabel 4 includes an IPtables firewall component. Do NOT activate it because Incredible PBX includes its own preconfigured IPtables firewall, better known as Travelin’ Man 3. With the Issabel 4 firewall, the administrator is responsible for setting all of the firewall rules. With Travelin’ Man 3, all the heavy lifting is done for you. The design is also markedly different. Issabel 4 opens ports which you define, but it gives worldwide access to those ports by any user. Travelin’ Man 3 employs a WhiteList rather than opening ports for everyone. If you’re on the WhiteList, you get access to the limited collection of ports assigned to that IP address. If you’re not on the WhiteList, you cannot even see the Issabel PBX from the Internet. For those without remote telephones or traveling employees, this provides total protection of your server with virtually no further firewall management.
If you have remote users of your PBX or if you wish to deploy softphones on mobile devices and rely upon WiFi facilities at random locations, Travelin’ Man 3 provides several utilities to assist. If the remote users have static IP addresses, then those IP addresses can be added to the WhiteList by running /root/add-ip. Better yet, a NeoRouter VPN is provided that lets remote users access Issabel using NeoRouter private LAN addresses that already are WhiteListed as part of the installation process. These require little to no configuration with static or dynamic IP addresses even when switching between WiFi networks. For those with dynamic IP addresses and no VPN, FQDNs can be assigned using a service such as dyn.com and a dynamic DNS client can be loaded on the smartphone to keep the current IP address synchronized with the FQDN. On the Incredible PBX side, these FQDNs can be added using /root/add-fqdn, and the IP addresses will be updated automatically every 10 minutes. The final option to provide remote users the 3-digit PortKnocker codes from knock.FAQ and let them automatically whitelist their own IP addresses by running the PortKnocker client from any smartphone or Linux server. When the Issabel server detects a successful knock sequence, the source IP of the knock sequence is whitelisted until the next reload of the firewall. If an administrator prefers to allow permanent additions to the WhiteList that survive a reboot or restart of the firewall, the administrator need only run the following command one time: iptables-knock activate. WhiteListed entries can be removed using the /root/del-acct utility. Further details on the new Travelin’ Man 3 design are available here.
Update: The July Issabel ISO introduced a quirk into our Travelin’ Man 3 setup. For a reason that we have not yet tracked down, it is no longer possible to whitelist an IP address and use that address to access the Issabel GUI with a browser. Until we can track down the problem, we have modified the security methodology to access the Issabel web GUI. While we have opened port 443 for public access, we have added another layer of security by requiring Apache htaccess credentials before you can access any web site on your Issabel server. As the last step of the Incredible PBX installation procedure, you will be prompted to enter your admin password again. The username admin and the admin password are used BOTH for Apache authentication AND Issabel GUI authentication. Should you ever need to change your Issabel GUI admin password using /root/admin-pw-change, you also will need to execute the following command to change the admin password for Apache authentication: htpasswd -c /etc/pbx/wwwpasswd admin.
Setting Up a Softphone with Issabel 4
If you’re a Mac user, you’re lucky (and smart). Download and install Telephone from the Mac App Store. Start up the application and choose Telephone:Preference:Accounts. Click on the + icon to add a new account. To set up your softphone, you need 3 pieces of information: the IP address of your server (Domain), and your Username and Password. You can decipher your server’s IP address by running pbxstatus. If you wish to use one of the preconfigured extensions (701 and 702), you’ll find the randomized passwords in /root/passwords.FAQ. Now copy or cut-and-paste your Username and Password into the Accounts dialog of the Telephone app. Click Done when you’re finished, and your new softphone will come to life and should show Available. Dial the IVR (D-E-M-O) to try things out. With Telephone, you can use over two dozen soft phones simultaneously.
For everyone else, we recommend the YateClient softphone which is free. Download it from here. Run YateClient once you’ve installed it and enter the credentials for the Issabel extension. You’ll need the IP address of your server plus your extension number and password associated with either the 701 or 702 extension.
Configuring Google Voice Natively or Using Simonics
Everybody likes free calling, and nobody does it better than Google. Will it last? Well, the naysayers (including me) have been predicting its demise for over 5 years. Yet it keeps on ticking. If you live in the U.S. and want to take advantage of free calls in the U.S. and Canada, you’d be crazy not to deploy a Google Voice trunk on your PBX. Voice quality is near perfect. And the price is right.
The original release of Incredible PBX for Issabel did not support Google Voice trunks so we suggested an intermediary to provide the functionality through a SIP gateway. It works flawlessly using OAuth 2 password authentication, but it’ll set you back $5. If you prefer free, we’ve added the original Google Voice plain-text password solution from the FreePBX® 2.11 days in the latest Incredible PBX release using the July Issabel ISO. It is far from perfect. While you can make and receive calls and faxes to and from Issabel extensions, you cannot direct incoming calls to an IVR because of an old NAT quirk in Asterisk 11. If this isn’t a problem for you, keep reading. Otherwise, skip down to the Simonics tutorial below after completing the initial Google Voice setup which follows.
1. Set up a dedicated Gmail and Google Voice account to use exclusively for this new SIP gateway. Head over to the Google Voice site and register. You’ll need to provide a U.S. phone number to verify your account by either text message or phone call.
2. Once you have verified your account by entering your verification code, you’ll get a welcome message from Mr. Google. Click Continue to Google Voice.
3. Provide an existing U.S. phone number for verification. It can be the same one you used to set up your Google account in step #1.
4. Once your phone number has been verified, choose a DID in the area code of your choice.
5. When your DID has been assigned, click the More icon at the bottom of the left column of the Google Voice desktop. Click Legacy Google Voice. Now click the Settings icon on your legacy Google Voice desktop. Make certain that Forward Calls to Google chat is checked and disable calls to your forwarding number. Click on the Calls tab and select Call Screening:OFF, CallerID (Incoming):Display Caller’s Number, and Global Spam Filtering:checked. The remaining entries should be blank.
6. Google Voice configuration is now complete. Sign out of your Google Voice account.
The Native Google Voice Solution using FreePBX Motif Module. Here’s a quick thumbnail of the steps to put all the pieces in place using the FreePBX Google Voice/Motif module. First, we set up a Google Voice account at Google as documented above. Next, we’ll set up the Google Voice account in the Issabel GUI to activate the Google Voice trunk. Next, we’ll add an Incoming Route to tell Issabel how to process Google Voice calls. Then we need to tell Google to relax the rules on use of plain text passwords. And, finally, we’ll restart Asterisk from the Linux CLI.
1. Login to the Issabel web interface with your admin password and choose PBX:PBX Config:Google Voice. Enter your Google Voice account name, password, and 10-digit phone number. Be sure to check all three boxes to Add a Trunk, Add an Outbound Route, and Send Unanswered Calls to Google Voicemail. Click Submit and then reload your dialplan when prompted.
2. Configure an Inbound Route for your incoming Google Voice calls. Click Inbound Routes in the PBX Configuration Menu. Then click Add Incoming Route and enter a Description for the route and enter the DID Number using your 10-digit Google Voice number. If you want to activate CNAM (CallerID Name) lookups, choose OpenCNAM from the Source list. Choose an appropriate Destination for the calls from the pull-down menu of choices. Use only an extension or a ring group. Then SAVE your settings and reload dialplan. To activate fax detection, change Detect Faxes to YES, Detection type to SIP, Detection time to 4, and Destination to Extension 329 (F-A-X). Click Submit and then reload your dialplan again.
3. On the Google site, login into your Google Voice account again. Then follow this link to Enable Less Secure Apps. Then follow this link to activate the Google Voice Reset Procedure. Now log out of your Google Voice account.
4. Login to your Issabel server with SSH/Putty as root and restart Asterisk: amportal restart
5. Now connect a SIP phone to extension 701 and place a call to any number in the U.S. or Canada.
6. Once you have placed an outbound call, incoming calls should work by dialing your Google Voice number from any phone. If you have trouble getting Google to answer the call, this is fairly typical. Try adjusting the NAT settings for your extension from YES to NEVER and place another call. Then change then back to NAT = yes, and you should be good to go.
7. For additional Google Voice trunks, rinse and repeat.
The Simonics GV-SIP Gateway Solution. Here’s the quick thumbnail of the steps to put all the pieces in place. First, we set up a Google Voice account at Google as documented above. Next, we’ll set up an account at the Simonics site to link our Google Voice account to the Simonics SIP Gateway. Then we’ll plug our Simonics SIP credentials into the preconfigured Simonics trunk on Incredible PBX. Finally, we’ll add Incoming and Outgoing Routes to tell Issabel how to process Google Voice calls.
Now you’re ready to set up an account on the Simonics site. With this Nerd Vittles link, there’s a one-time fee of $4.99.
1. Start by registering your new Google account.
2. After paying the $4.99 registration fee via PayPal, proceed through the setup process to link your Google Voice account and 11-digit Google Voice phone number to the Simonics SIP Gateway.
3. You then will be provided your SIP username and password as well as the gateway address, gvgw.simonics.com, to use in building your SIP trunk on your Issabel PBX.
4. If your SIP credentials ever get compromised, regenerate your password by logging back into the Simonics GW site.
Now it’s time to configure your Simonics trunk in Incredible PBX for Issabel. Start by logging into the Issabel web interface as admin with your admin password from above. Next, click PBX:PBX Configuration in the left Issabel menu. Click Trunks:Simonics-GV in the PBX Configuration menu. The Simonics-GV trunk template will display:
1. Untick the Disable Trunk check box.
2. In Outbound CallerID, insert your 10-digit Google Voice number.
3. In username, insert GV1 followed by your 10-digit Google Voice number.
4. In secret, insert your Simonics SIP password.
5. In the Registration String, insert GV1 followed by your 10-digit Google Voice number followed by a colon (:)
6. In the Registration String after the colon, insert your Simonics SIP password.
7. In the tail of the Registration String after the slash (/), insert your 10-digit Google Voice number.
8. Click Submit Changes and then Reload the Dialplan when prompted.
Now you’re ready to configure an Outbound Route for your Google Voice calls. Click Outbound Routes in the PBX Configuration Menu. Then click Add Route and fill out the form as shown below, save your settings, and reload the dialplan.
Finally, let’s configure an Inbound Route for your incoming Google Voice calls. Click Inbound Routes in the PBX Configuration Menu. Then click Add Incoming Route and enter a Description for the route and enter the DID Number using your 10-digit Google Voice number. If you want to activate CNAM (CallerID Name) lookups, choose OpenCNAM from the Source list. Choose an appropriate Destination for the calls from the pull-down menu of choices, e.g. extension, ring group, IVR, etc. Then SAVE your settings and reload dialplan.
Your Google Voice trunk through the Simonics SIP Gateway should now be working. You can verify this by entering sip show registry in the Asterisk CLI. Place a test call from a softphone connected to your Issabel PBX by dialing a 10-digit number. Then place a call to your Google Voice number from a mobile phone or home/office phone. The Asterisk CLI displays progress of calls by activating it from Linux CLI:
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.
If you want to display your primary phone number on the pbxstatus dialog, simply enter the number in /etc/pbx/.phone.
Adding Speech Recognition Support to Incredible PBX
If you like Siri, you’ll love Wolfram Alpha. 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. Don’t 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 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 now?" Read the Nerd Vittles tutorial for additional examples and tips.
Configuring the Issabel Fax Server
Incredible PBX for Issabel includes turnkey fax support with Issabel. Once you have added a trunk that supports VoIP faxing (HINT: Google Voice trunks work great!), fax configuration with Issabel only takes a minute. Start by logging into the Issabel web interface as admin. First, navigate to PBX:PBX Configuration:Extensions:Fax and obtain your password for extension 329. Next, navigate to Fax:Virtual Fax:New Virtual Fax. Fill in the form as shown below using your actual email address and phone number for receiving faxes as well as your actual extension 329 secret. Then click SAVE. Assuming you typed your secret correctly, you will see a status notification showing virtual fax machine "Running and idle on ttyIAX1."
Assuming you already have set up a Google Voice trunk as outlined above, the next step is to modify the Inbound Route for this trunk to support fax detection. In that way, incoming fax calls will automatically be redirected to extension 329 and the received faxes will be emailed to you in PDF format. Set the email address in Fax:Fax Master. In addition, the faxes can be downloaded and managed from Fax:Virtual Fax:Fax Viewer. Modify your Inbound Route to match the #3 settings shown below. Then save/reload your changes.
To receive the incoming faxes by email, navigate to Fax:Fax Master and enter your email address. Then click SAVE.
The final step is to designate the IP addresses of those authorized to send faxes using Issabel. Navigate to Fax:Fax Clients and specify the public and private IP addresses (one per line) authorized to send faxes. Then click SAVE. Hylafax clients can be used remotely, or you can use the web utility included with Issabel: Fax:Virtual Fax:Send Fax.
The best way to test things out is to send yourself a test fax. FaxZERO lets you send 5 free faxes of up to 3 pages every day. Give it a whirl.
To send a fax out from your server from the Linux CLI using either a text document or PDF file, the syntax looks like the following:
sendfax -n -d 8005551212 smsmsg.txt
Sampling Other Incredible PBX Applications
As installed, Incredible PBX includes dozens of additional applications for Asterisk. Here’s how to sample some of them using a softphone connected to your Issabel PBX. A good place to start is Allison’s Demo IVR (dial D-E-M-O) using any phone connected to your PBX:
Nerd Vittles Demo IVR Options
1 – 411 -Call by Name (say "American Airlines")
2 – 2663 – MeetMe Conference
3 – 4747 – Wolfram Alpha
4 – 53669 – Lenny (The Telemarketer’s Worst Nightmare)
5 – 951 – Today’s News Headlines
6 – 947 – Weather Forecast (enter a 5-digit ZIP code)
7 – 86329 – Today in History
8 – 701 – Speak to a Real Person
For ODBC demos, dial 222 and enter 12345 for the employee number for a sample database application. Or dial 223 for a sample ODBC dialer using AsteriDex. Enter 263 (first three letters of American Airlines) to place the call. Sample dialplan code is stored in /etc/asterisk/odbc.conf. Dial L-E-N-N-Y (53669) to call or forward telemarketer calls to Lenny. Dial T-I-M-E (8463) for Time of Day. Dial *88HHMM to set an Alarm for HH:MM where HH is the hour of the day in military time. Dial C-O-N-F (2663) for MeetMe conference. Conference credentials are in /root/passwords.FAQ. Voice Dialer (411) works with any database entry in AsteriDex. Access AsteriDex with a browser at https://Issabel-IP-Address/asteridex4. Telephone Reminders can be scheduled by phone (123) or via the web: https://Issabel-IP-Address/reminders. Sample code for the FLITE, GoogleTTS, and PicoTTS engines is in 951 (Yahoo News) context of /etc/asterisk/extensions_custom.conf. All of your FreePBX "old favorites" including blacklists, call transfers and forwarding, dictation, recordings and more are still available as well: PBX:PBX Config:Feature Codes.
Update: We’ve added Allison’s Demo IVR to our own Issabel server at Vultr ($2.50/mo.)1 so you can judge the call quality and feature set for yourself. You can even send us a fax or SMS message if you’d like to try out those features:
For VoIP callers, use this free SIP URI: firstname.lastname@example.org
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.
Need help with Asterisk? Visit the PBX in a Flash Forum.
Special Thanks to Our Generous Sponsors
FULL DISCLOSURE: ClearlyIP, Skyetel, Vitelity, DigitalOcean, Vultr, VoIP.ms, 3CX, Sangoma, TelecomsXchange and VitalPBX have provided financial support to Nerd Vittles and our open source projects through advertising, referral revenue, and/or merchandise. As an Amazon Associate and Best Buy Affiliate, we also earn from qualifying purchases. 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.
BOGO Bonaza: Enjoy state-of-the-art VoIP service with a $10 credit and half-price SIP service on up to $500 of Skyetel trunking with free number porting when you fund your Skyetel account. No limits on number of simultaneous calls. Quadruple data center redundancy. $25 monthly minimum spend required. Tutorial and sign up details are here.
The lynchpin of Incredible PBX 2020 and beyond is ClearlyIP components which bring management of FreePBX modules and SIP phone integration to a level never before available with any other Asterisk distribution. And now you can configure and reconfigure your new Incredible PBX phones from the convenience of the Incredible PBX GUI.
VitalPBX is perhaps the fastest-growing PBX offering based upon Asterisk with an installed presence in more than 100 countries worldwide. VitalPBX has generously provided a customized White Label version of Incredible PBX tailored for use with all Incredible PBX and VitalPBX custom applications. Follow this link for a free test drive!
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.
Some Recent Nerd Vittles Articles of Interest…
- Some of our links refer users to providers that support Nerd Vittles through referral fees or advertising. These funds help cover the costs of our blog. We never recommend particular products solely to generate revenue. However, when pricing is comparable or particular features warrant our recommendation, we support these vendors and deeply appreciate their financial support of our software development efforts. [↩]