Posts tagged: IncrediblePBX

We Have a Dream, Too: The Return of (Gotcha-free) Open Source VoIP Software

History repeats itself. That’s the timeless old saying, and we have a theory about that. The reason history repeats itself is because most folks never spent much time studying history so they didn’t learn from the mistakes and greed of those that preceded them. Here’s our brief history lesson on technology and what we’ve learned about choosing a pumpkin.

With a Single Pumpkin Provider, Expect to Take Home a Crappy Pumpkin!

Let’s turn back the clock 30 years, shall we? It was 1985. IBM had just introduced the PC/AT. Hewlett Packard was on the verge of releasing the LaserJet printer. The typical office had a dedicated word processing machine from one of a handful of very rich companies. The PC software world had their new Big Three: dBASE III, WordPerfect, and Lotus 1-2-3. Life was good! Copy-protection was still a sparkle in the eye of many software companies, and shrink-wrap licensing agreements were just beginning to keep law firms busy. You may recall that IBM introduced the IBM PC just four years earlier, and DOS 1.0 was released for $30 with the source code for the operating system in the loose leaf notebook. How quickly things would change. The cassette player adapter was no longer viewed as the storage device of choice. Meet the 20MB hard drive!

It didn’t take long for most of these companies to forget what made them household names. With the notable exception of IBM and WordPerfect, it was all about copy protection, a concept that made it almost impossible for major companies and the government to deploy PCs. There was no Internet or Intranet, and there were no networks or email, just dial-up bulletin board systems using state-of-the-art 1200 baud Hayes modems. If you wanted to deploy software at multiple sites, you mailed floppy disks and crossed your fingers. Meet Sneakernet!

At the time, I was building a new PC-based case management system in Atlanta for the 95 bankruptcy courts that were scattered across hundreds of cities in the United States. These courts were literally buried in paperwork from lawyers. It was not uncommon to wait years before your case was scheduled for a hearing. The Administrative Office of U.S. Courts in Washington was deploying mainframe-based bankruptcy software to a handful of courts each year. Thanks to the IBM PC/AT and HP LaserJet printer, we revolutionized case processing in the bankruptcy courts in less than a year. Backlogs quickly disappeared as the bankruptcy courts spit out more paper than even the lawyers could handle.

The major wrinkle in rolling out a PC-based solution wasn’t the lack of hardware and tools. It was copy-protection. Luckily, there was The Lone Victor, a college-dropout whiz kid that worked for one of the big banks headquartered in Atlanta. Because his bank was a beta site for all of the major PC software, he typically cracked the copyright protection schemes and published the fixes on the local BBS the same day the software was released to the public. This meant DBMS software could be purchased and distributed by mail without having to visit hundreds of sites to manually install the basic software components needed to run application software. The courts were not yet following the business playbook so shrink-wrap licensing agreements were non-existent. The theory that violating a license agreement meant you were violating a copyright had not yet been concocted. And the Bigwigs in California were dumbfounded that their costly, (failsafe) copy protection schemes were cracked on Day 1 of each new software release. The identity of The Lone Victor was never exposed… until now. Just kidding!

It was also the beginning of the shareware era. People were tired of paying exorbitant prices for buggy, copy-protected PC software that was rushed to market to cash in on the PC Gold Rush. We were fortunate enough to be amongst several dozen developers that participated in the Association of Shareware Professionals and set some standards for this revolutionary new industry. Our dBASE III clone, WAMPUM, became an overnight hit thanks to an article in the 800-page tabloid of the time, Computer Shopper. I still remember driving home from a weekend trip to find our mailbox literally spilling over into the street with checks from people that had just discovered the magic of shareware. WAMPUM is still available by the way and runs swimmingly on VirtualBox.

The history lesson here could not be more clear. All of these commercial companies and banks viewed themselves as invulnerable because every one of them dominated a particular niche in the marketplace. Could life possibly get any better? Of course, you know the rest of the story. Not a single one remains in the PC business today. All the Big Banks of the 80’s and all the dedicated word processors and their larger-than-life corporate sponsors are pretty much gone as well.

If you have a teenage son or daughter, take a look at what they use today for messaging and communications. That’s a pretty big hint about the chances that today’s VoIP solutions will still be around even 10 years from now. It’s History 101.

As Grandma used to say, “Never get too big for your britches.” When you start resting on your laurels and believing you’re too big to fail, along comes another whiz kid to build a better mousetrap. Yes, we have a dream, too.

With a Single Pumpkin Provider, Expect to Take Home a Crappy Pumpkin!

Pardon our repetition! So what does all of this have to do with Asterisk® and 2015? Well, take another look at last week’s article. Asterisk has a strong open source competitor in FreeSwitch. Without FreeSwitch, we doubt you ever would have seen a product as ambitious as Asterisk 12. The competition has been healthy for both companies AND for those of us that actually use the software. But, in the GUI department, we’re back to the era in which a single product dominates this essential market category. Their way or the highway is the comment we hear over and over from frustrated users. We ended up in this predicament because Digium folded the tent on Asterisk-GUI because of the purchase of a (better) commercial GUI, Switchvox. It actually makes money for the company. Did it mean Asterisk-GUI was flawed? Not at all. In fact, our experimentation suggests quite the opposite. Asterisk-GUI is a better mousetrap in many ways, but development wasn’t generating revenue and was costing Digium manpower money that could be put to better use with a financial return on investment. In case you haven’t noticed, all of the major open source VoIP companies now have commercial VoIP hardware and software offerings. Invariably, open source offerings morph into loss leaders or marketing tools to channel customers to commercial products. That’s what most for-profit companies have had to do to stay afloat. But there’s a right way and a wrong way to go about it, and that’s what last week’s article was all about.

The simple solution to fix market dominance is CHOICES. When you put all your eggs in one basket, we all know what happens. And it has. We’re working very hard to bring more choices and some new players and alternatives to the Asterisk community. We hope you’ll be reading about more of them here… soon. What would happen if there were an open source offering of a Switchvox-like product? What would happen if there were an open source offering of a drag-and-drop GUI for a realtime version of Asterisk? Do we have a crystal ball? Not at all. Do we like to dream of the possibilities and what they would mean to the future of Asterisk and the VoIP community? Absolutely.

In the meantime, do your part. Try out some alternatives. We’re doing our part by bringing them to you with Incredible PBX. It provides a compelling feature set of add-on applications and development tools for Asterisk including text-to-speech, voice recognition, Google Voice free calling and SMS messaging, free fax support, and simplified tools for configuration of Asterisk trunks, extensions, and dialplan code. Initially, the focus of Incredible PBX and PBX in a Flash was broadening the operating system platforms on which Asterisk could be run. In addition to CentOS, we released versions for Fedora, Scientific Linux, Ubuntu, and Debian. Next came virtual machine editions for the Cloud and even for Windows and Macs. Then we tackled tiny hardware platforms to make Asterisk more accessible to a much broader range of users. This included the Raspberry Pi, BeagleBone Black, CuBox-i, and even the PogoPlug. When you can run Asterisk reliably on a $15 to $50 piece of hardware, it’s a big deal.

And that brings us to 2015. Our focus this year is providing a CHOICE of options for actual configuration of Asterisk. We also want to broaden the base from English to support for other languages and countries. Not everyone in the world has a 10-digit phone number. And not everyone needs a product as complex as FreePBX® to set up a VoIP server for their home or business. If all you need is a secure VoIP phone system with SIP phones to make economical phone calls with a high-tech feature set of IVRs, auto-attendants, voicemail, email, SMS messaging, faxes, and smartphone integration, then there are numerous alternatives without the overhead of maintaining and managing a complex database management system, a mail server, a web server, a firewall, and literally hundreds of other Linux applications that many probably never knew were running on their server in the first place.

Does it mean we’re dropping support for FreePBX? Not at all. There’s still hope with new ownership. Does it mean you’re nuts to only consider an Asterisk-based server that includes FreePBX? Absolutely. So what’s out there?? Starting next week, we’ll begin introducing new versions of Incredible PBX for the Asterisk-GUI, for Elastix 3.0 Multi-Tenant, for Gemeinschaft, and…

The best is yet to come. Stay tuned!

Originally published: Monday, January 19, 2015



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


 
New Vitelity Special. Vitelity has generously offered a new discount for PBX in a Flash users. 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. And, when you use our special link to sign up, the Nerd Vittles and PBX in a Flash projects get a few shekels down the road 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 PBX in a Flash 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 for just $3.99 a month. To check availability of local numbers and tiers of service from Vitelity, click here. Do not use this 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 and any balance is fully refundable if you decide to discontinue service with Vitelity.
 


Some Recent Nerd Vittles Articles of Interest…

30 Minutes to Paradise: Incredible PBX for Ubuntu 14.04 is Ready for Primetime

A few months ago, we introduced a preview of Incredible PBX for Ubuntu 14. And now we’re pleased to release the latest production-ready version with all the bells and whistles including Incredible Fax featuring HylaFax and AvantFax.

Introducing Incredible PBX 11 for Ubuntu 14.04

Today’s plan is to build a production-ready version of Incredible PBX with Ubuntu 14.04 that mimics the functionality of our previous builds with literally dozens of turnkey applications that show off the very best features of Asterisk®. If you believe in the open source community, this build is for you. No strings, no gotchas, and no quirky licenses!

Six months ago, we could barely spell Ubuntu. Then an enterprising young programmer named Eric Teeter shot us a script to install Ubuntu with Asterisk and FreePBX® and encouraged us to embellish it and to share the results with our Nerd Vittles audience. Having rarely met an operating system we didn’t like, we jumped at the opportunity knowing full well that Billy Chia at Digium and Tony Lewis at Schmooze Com had reported impressive results with Ubuntu years ago. It seemed like a good fit for Incredible PBX as well. Unlike CentOS, Ubuntu also was a platform that was easily transferable to the new $50 BeagleBone Black and the CuBox-i.

Our special thanks to Lefteris Zafiris for cleaning up all of the text-to-speech incompatibilities with Ubuntu. Within minutes from the other side of the world, Lefteris had logged into our Ubuntu Server in the Cloud and tamed the TTS beast. If ever there was an unsung hero in the Asterisk community, it’s Lefteris Zafiris. He has single-handedly kept all of the speech applications humming along through countless versions of Asterisk. We would have quit long ago without his untiring assistance. Thank you (again), Lefteris, for coming to the rescue.

Building an Ubuntu 14.04 Platform for Incredible PBX

As a result of the trademark and copyright morass, 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 PBX in a Flash or Incredible PBX. The good news is it’s easy! With many cloud-based providers1, you can simply click a button to choose your favorite OS flavor and within minutes, you’re ready to go. With many virtual machine platforms such as VirtualBox, it’s equally simple to find a pre-built Ubuntu 14.04 image or roll your own.

If you’re new to VoIP or to Nerd Vittles, here’s our best piece of advice. Don’t take our word for anything! Try it for yourself in the Cloud! You can build an Ubuntu 14.04 image on Digital Ocean in under one minute and install Incredible PBX for Ubuntu 14.04 in about 15 minutes. Then try it out for two full months. It won’t cost you a dime. Use our referral link to sign up for an account. Enter a valid credit card to verify you’re who you say you are. Create an Ubuntu 14.04 (not 14.10!) 512MB droplet of the cheapest flavor ($5/mo.). Go to the Billing section of the site, and enter the following promo code: UBUNTUDROPLET. That’s all there is to it. A $10 credit will be added to your account, and you can play to your heart’s content. Delete droplets, add droplets, and enjoy the free ride!

For today, we’ll walk you through building your own stand-alone server using the Ubuntu 14.04 mini.iso. If you’re using Digital Ocean in the Cloud, skip down to Installing Incredible PBX 11. If you’re using your own hardware, to get started, download the 32-bit or 64-bit Ubuntu 14.04 “Trusty Tahr” Minimal ISO from here. Then burn it to a CD/DVD or thumb drive and boot your dedicated server from the image. Remember, you’ll be reformatting the drive in your server so pick a machine you don’t need for other purposes.

For those that would prefer to build your Ubuntu 14.04 Wonder Machine using VirtualBox on any Windows, Mac, or existing Linux Desktop, here are the simple steps. Create a new virtual machine specifying either the 32-bit or 64-bit version of Ubuntu. Allocate 1024MB of RAM (512MB also works fine!) and at least 20GB of disk space using the default hard drive setup in all three steps. In Settings, click System and check Enable I/O APIC and uncheck Hardware Clock in UTC Time. Click Audio and Specify then Enable your sound card. Click Network and Enable Network Adapter for Adapter 1 and choose Bridged Adapter. Finally, in Storage, add the Ubuntu 14.04 mini.iso to your VirtualBox Storage Tree as shown below. Then click OK and start up your new virtual machine. Simple!

Here are the steps to get Ubuntu 14.04 humming on your new server or virtual machine once you’ve booted up. If you can bake cookies from a recipe, you can do this:

UBUNTU mini.iso install:
Choose language
Choose timezone
Detect keyboard
Hostname: incrediblepbx < continue >
Choose mirror for downloads
Confirm archive mirror
Leave proxy blank unless you need it
< continue >
** couple minutes of whirring as initial components are loaded **
New user name: incredible
< continue >
Account username: incredible
< continue >
Account password: makeitsecure
< continue >
Encrypt home directory < no >
Confirm time zone < yes >
Partition disks: Guided - use entire disk and set up LVM
Confirm disk to partition
Write changes to disks and configure LVM
Whole volume? < continue>
Write changes to disks < yes> < -- last chance to preserve your disk drive!
** about 15 minutes of whirring during base system install ** < no touchy anything>
** another 5 minutes of whirring during base software install ** < no touchy anything>
Upgrades? Install security updates automatically
** another 5 minutes of whirring during more software installs ** < no touchy anything>
Software selection: *Basic Ubuntu server (only!)
** another couple minutes of whirring during software installs ** < no touchy anything>
Grub boot loader: < yes>
UTC for system clock: < no>
Installation complete: < continue> after removing installation media
** on VirtualBox, PowerOff after reboot and remove [-] mini.iso from Storage Tree & restart VM
login as user: incredible
** enter user incredible's password **
sudo passwd
** enter incredible password again and then create secure root user password **
su root
** enter root password **
apt-get update
apt-get install ssh -y
sed -i 's|without-password|yes|' /etc/ssh/sshd_config
sed -i 's|yes"|without-password"|' /etc/ssh/sshd_config
sed -i 's|"quiet"|"quiet text"|' /etc/default/grub
update-grub
ifconfig
** write down the IP address of your server from ifconfig results
reboot
** login via SSH to continue **

Installing Incredible PBX on Your Ubuntu 14.04 Server

Adding Incredible PBX to a running Ubuntu 14.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 in the ifconfig step at the end of the Ubuntu install procedure above. First, make sure to run the update step for Ubuntu before you begin the install. This is especially important if using a cloud-based Ubuntu 14 server.

apt-get update && apt-get upgrade -y && reboot

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.ubuntu14.tar.gz
tar zxvf incrediblepbx*
#./create-swapfile-DO
./Incredible*

Once you have agreed to the license agreement and terms of use, press Enter and go have a 30-minute cup of coffee. The Incredible PBX installer runs unattended so find something to do for a bit unless you just like watching code compile. When you see “Have a nice day”, your installation is complete. Write down your admin password for FreePBX as well as your three “knock” ports for PortKnocker. If you forget them, you can reset your admin password by running /root/admin-pw-change. And you can retrieve your PortKnocker setup like this: cat /root/knock.FAQ.

Log out and back in as root and you should be greeted with a status display that looks something like this:

You can access the Asterisk CLI by typing: asterisk -rvvvvvvvvvv

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 with the randomized password you wrote down above. If desired, you can change them in FreePBX Administration by clicking Admin -> Administrators -> admin. Enter a new password and click Submit Changes then Apply Config. Now edit extension 701 so you can figure out (or change) the randomized passwords that were set up for default 701 extension and voicemail: Applications -> Extensions -> 701.

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:

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

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 use an existing (free) Google Voice account. Google has threatened to shut this down but as this is written, it still works with previously set up Google Voice accounts. 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 Google Voice 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! Use a previously configured and dedicated Gmail and Google Voice account, and use it exclusively with Incredible PBX 11.

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’re probably out of luck. Google has disabled the option in newly created accounts as well as some old ones that had Google Chat disabled. Now 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 ScreeningOFF
  • Call PresentationOFF
  • Caller ID (In)Display Caller’s Number
  • Caller ID (Out)Don’t Change Anything
  • Do Not DisturbOFF
  • Call Options (Enable Recording)OFF
  • Global Spam FilteringON

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.

Adding Speech Recognition to 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!

1. Using an existing Google/Gmail account to join the Chrome-Dev Group.

2. Using the same account, create a new Speech Recognition Project.

3. Click on your newly created project and choose APIs & auth.

4. Turn ON Speech API by clicking on its Status button in the far right margin.

5. Click on Credentials in APIs & auth and choose Create New Key -> Server key. Leave the IP address restriction blank!

6. Write down your new API key or copy it to the clipboard.

7. Log into your server as root and issue the following commands:

# for Ubuntu and Debian platforms
apt-get clean
apt-get install libjson-perl flac -y
# for RedHat and CentOS platforms
yum -y install perl-JSON
# for all Linux platforms
cd /var/lib/asterisk/agi-bin
mv speech-recog.agi speech-recog.last.agi
wget --no-check-certificate https://raw.githubusercontent.com/zaf/asterisk-speech-recog/master/speech-recog.agi
chown asterisk:asterisk speech*
chmod 775 speech*
nano -w speech-recog.agi

8. When the nano editor opens, go to line 70 of speech-recog.agi: my $key = "". Insert your API key from Step #6 above between the quotation marks and save the file: Ctrl-X, Y, then Enter.

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 use Wolfram Alpha by phone, you first must install it. Obtain your free Wolfram Alpha APP-ID here. Then run the one-click installer: /root/wolfram/wolframalpha-oneclick.sh. Insert your APP-ID when prompted. Now dial 4747 to access Wolfram Alpha by phone and enter your query, e.g. “What planes are overhead.” Read the Nerd Vittles tutorial for additional examples and tips.

A Few Words about the Incredible PBX Security Model for Ubuntu

Incredible PBX for Ubuntu 14 is our most secure turnkey PBX implementation, ever. As configured, it is protected by both Fail2Ban and a hardened configuration of the IPtables Linux firewall. 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. 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.

Adding Incredible Fax 11 to Your Server

Once you’ve completed the Incredible PBX install, log out and log back in to load the latest automatic updates. Then reboot. Now you’re ready to continue your adventure by installing Incredible Fax 11 for Ubuntu. Special thanks to Josh North for all his hard work on this! The latest download includes the Incredible Fax 11 installer. So just run the script:

cd /root
./incrediblefax11_ubuntu14.sh

Accept all of the defaults during the installation process. IMPORTANT: Once you complete the install, reboot your server. After rebooting, log into FreePBX -> Module Admin and enable the AvantFax module. When you log out of FreePBX, there now will be an option for AvantFax on the FreePBX login screen. Choose it and enter admin:password to login and change your default password. You also can set your AvantFax admin password by logging into the Linux CLI and… /root/avantfax-pw-change.

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.

NEWS FLASH: More good news. If you decide you’d prefer another Linux platform, Incredible Backup and Restore will now let you migrate from one operating system to another. For details on the procedure, see this message thread.

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. Come join us!

Originally published: Monday, June 30, 2014    Updated: Wednesday, January 7, 2015


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.


 
New Vitelity Special. Vitelity has generously offered a new discount for PBX in a Flash users. 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. And, when you use our special link to sign up, the Nerd Vittles and PBX in a Flash projects get a few shekels down the road 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 PBX in a Flash 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 for just $3.99 a month. To check availability of local numbers and tiers of service from Vitelity, click here. Do not use this 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 and any balance is fully refundable if you decide to discontinue service with Vitelity.
 


Some Recent Nerd Vittles Articles of Interest…

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

Lessons Learned: Getting Started in the Billion Dollar VoIP Business

So you’ve built a few VoIP PBXs for your neighbors and your friends’ small businesses. And now you want to make a living doing it full time. After all, it wasn’t that hard to get started since all of the VoIP software was practically free, and the hardware investment was only a few hundred bucks. But now your friends need a way to make reliable phone calls every day, and they want someone to call when the phones don’t work. Welcome to the VoIP Business! Our objective today is to paint you a picture of what actually lies ahead in the Asterisk® and FreePBX® business so that you don’t get blindsided.

Lesson #1. Asterisk is a business run by Digium to make money for the corporation. FreePBX is a business run by Schmooze Com to make money for the corporation. Both companies do this in several ways. They sell hardware. They sell commercial software. They sell hosted phone service. They sell phone trunks to make and receive phone calls. And they sell support. The lifeblood of these companies is paying customers, lots of them. There’s nothing necessarily sinister about any of this. It’s the way all corporations work.

Lesson #2. You can’t do it all. You may be a super salesman, a talented programmer, or a great customer service guy. But you’re probably not all three. And, if you have a family, the rest of them probably don’t want the phones ringing off the hook starting at dinner time until 2 a.m. every morning. There’s a reason corporations charge a pretty penny for support. Somebody has to be there during dinner time and at 2 a.m. to answer the phone calls and solve the problems.

Lesson #3. Your friends are cheap frugal. They’d prefer to pay nothing for their phone system, and they’d prefer to pay nothing when they need to call you to fix it. You’re a nice guy so you don’t want to leave your friends in the lurch when you decide to take that Christmas ski trip. What to do? Hire an outside company to provide your support. Heh! Keep reading.

Lesson #4. The stark reality at the corporate end of the VoIP business is RECURRING REVENUE. They can’t stay afloat just selling hardware and software. Once folks have bought it, the company either needs new paying customers or a way to keep existing customers paying to keep the lights on. There are three options: hosted phone service, phone trunks, and support.

If you’ve done your homework, you know that you can buy incoming phone lines for your PBXs at a monthly cost of a few bucks. Or you can stick with Ma Bell for incoming trunks and up the monthly cost by a factor of ten in exchange for reliability and support. Outgoing phone calls can be made for a penny or two a minute to all but the most exotic and remote areas of the world. Or you can use trunks provided by Ma Bell or Comcast or Time Warner for ten times the monthly cost. Then there are the so-called unlimited trunks from companies such as Digium and Schmooze Com. For $20+ to $25+ per month, you get the ability to make or receive several thousand minutes of calls each month so long as the calls arrive one at a time. If you want to make or receive multiple calls simultaneously, multiply the cost for each simultaneous call by twenty to twenty-five bucks depending upon your provider choice. All of a sudden, Ma Bell isn’t looking that expensive, is she?

Lesson #5. When you’ve grown your user base to the point that you don’t want to lose your customers, be careful in choosing a company to provide your support. If they happen to be in the same business as you (and they probably are), ask yourself this question. Would you send your girlfriend alone on a two-week cruise with any of your male buddies? Didn’t think so. Reread Lesson #1.

To be continued… Happy New Year!!

Originally published: Monday, December 29, 2014



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


 
New Vitelity Special. Vitelity has generously offered a new discount for PBX in a Flash users. 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. And, when you use our special link to sign up, the Nerd Vittles and PBX in a Flash projects get a few shekels down the road 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 PBX in a Flash 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 for just $3.99 a month. To check availability of local numbers and tiers of service from Vitelity, click here. Do not use this 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 and any balance is fully refundable if you decide to discontinue service with Vitelity.
 


Some Recent Nerd Vittles Articles of Interest…

Santa’s Technology Roundup: The Best Products of 2014 with Some Surprises

Once a year we like to pause and take a look back at 10 technology products that really grabbed our attention. 2014 will be remembered as a spectacular year. So here’s what made the Nerd Vittles short list for 2014…

Smartphone of the Year: It’s a 5-Way Tie

And the winners in no particular order… Galaxy Note 4, iPhone 6+, LG G3, HTC One M8, and Moto X.1 So which should you choose if you can only have one? Visit AndroidHeadlines.com for a detailed feature comparison. You can’t go wrong with any of them. In our family, there’s one of almost all of them.

Desktop Computer of the Year: Apple’s 27‑inch iMac with Retina 5K display

If you work with a computer for a living, there is no competition. It scales to any feature set you may need. Run, don’t walk, to your nearest Apple Store and get in line. We waited two months for ours!

Portable Computer of the Year: Apple’s MacBook Air with Retina Display

Hah. Just kidding. It would have been the hands-down favorite in 2014 except for one minor detail. It hasn’t been released… yet. If you absolutely have to have a retina display-quality notebook, then you’ll have to settle for the slightly thicker Macbook Pro this Christmas. For us, we’re waiting for 2015 and what will surely be the MacBook Air with Retina Display.

Tablet of the Year: iPad Air 2

If you’re starting to think we’re charter members of the Apple FanBoy Club, then you haven’t been following Nerd Vittles for very long. We can be one of their harshest critics. But the bottom line is that Apple products are compelling because of their tight integration to Apple’s closed society. If you’re a member of that club, then you’ll want the iPad Air 2 to add to your collection. It’s a terrific tablet at a compelling price.

Multimedia Device of the Year: Roku 3

If you’re into Netflix and Amazon Prime and movies, nobody needs to tell you that the streaming device hardware market is a crowded place. The Roku 3 isn’t the cheapest device in the market, but it’s still the one we always drop into our suitcase when we hit the road. It’s simple to configure and supports WiFi almost anywhere. It just works!

VoIP Product of the Year: Vitelity’s vMobile

It’s taken a few starts and stops to get the kinks out, but Vitelity’s vMobile smartphone is a truly revolutionary offering. It provides seamless integration of the smartphone into your PBX infrastructure. The phone becomes “just another extension” on your PBX except the device is 100% mobile which means it works with WiFi or it works anywhere Sprint has a tower. For any organization with staff that travels, this is a must-have device. Anything you can do with a traditional PBX extension, you can do with your smartphone using the vMobile technology. It’s the hands-down winner as VoIP Product of the Year. Use our special signup link and help support the Nerd Vittles, PBX in a Flash, and Incredible PBX projects.

VoIP SOHO Hardware of the Year: CuBox-i

We’ve tested lots of small footprint hardware in search of the perfect VOIP platform for the home or SOHO office. The search is over. The hands-down winner is the CuBox-i. It’s tiny, powerful, quiet, and has every feature you could possibly want in a VoIP server. Read our full review here. They’re 25% at NewEgg if you hurry.

VoIP Deal of the Year: $15 Pogoplug with Incredible PBX

If there’s one thing all of us have in common, it’s a burning desire to find the best bargain on the planet. In the VoIP marketplace, look no further than here. Repurposing a PogoPlug for less than $20 (and some of them went for $5), is the perfect way to learn about VoIP without breaking the bank. Our tutorial on the VoIP Deal of the Year will tell you everything you need to know to get started.

Must-Have Product of the Year: Amazon Echo

The Amazon Echo is still an invitation-only device, but you need to get in line NOW. During the introduction, Amazon is selling them for $99. Or you can get one on eBay for about triple that amount. It’s money well spent. Think of it as a desktop version of Siri. But it’s so much more. With Amazon Prime and Prime Music accounts plus a free iHeartRadio account, you get access to a collection of over a million songs just by saying the name of the artist or song or playlist or radio station of interest. You also can upload 250 of your own songs not purchased through Amazon Music at no charge. Or, for $25 a year, you can upload up to 250,000 tracks much like iTunes Match. The sound quality of the device is nothing short of spectacular. My teenage daughter and I spent over two hours playing with it the first night it arrived. And the excitement hasn’t waned. It’s the go-to device for all of our visitors to explore new and old music. And, yes, Amazon Echo knows the weather, the time, and just about anything else you care to ask about. You’ll have it in your living room in no time. Not only will it speak the results while playing your favorite song, it’ll send the results and to-do list to your smartphone.

2014: Cloud Computing Reinvented

Over the past few years, we’ve seen a gradual migration of server platforms to the cloud thanks in large part to ever falling prices on the Amazon EC2 platform. But 2014 saw some new cloud strategies. First came the pay-once-use-it-forever platform of CloudAtCost.com. Wait for the next sale and save half on almost any of their server platforms. If you follow us on Twitter, we’ll let you know when it happens. We’ve had several servers for almost a year with no hiccups. In fact, we now keep backup images of the Nerd Vittles, PBX in a Flash, and Incredible PBX web sites running 24/7 on these Canadian servers. Check out the performance for yourself.

Then there was Digital Ocean with its pay-by-the-hour pricing coupled with the ability to create virtual machines for almost any platform in under a minute. It truly is a developer’s dream come true. Frankly, it’s our platform of choice for development of all the great software you read about here. Use our signup link and get a $10 credit to try things out. The beauty of the technology is you can create a server with 512MB of RAM and a 20GB drive, work for a half a day, take a snapshot of your project, and then delete the server until you feel like working again. Total cost for use of the platform and storage of your snapshot: about 2¢.

With any great new technology, of course, competition is not far behind. Meet Vultr, the Digital Ocean knock-off promising more memory, more server locations, and more features for less money. Is Vultr really better? We’ll let you know after we’ve had more time to play. Our first look uncovered a few wrinkles. First, you had to request enabling of port 25 for outbound SMTP mail support. Not a big deal if it were documented that you had to request it, but it isn’t mentioned anywhere on the site. Second, virtual machines take a bit longer to create and much longer to become fully functional on Vultr. We got spoiled by the one-minute spin up at Digital Ocean. But, the good news is a penny-an-hour server gets you a gig of RAM, 20 gigs of storage, and 2 terabytes of data transfer a month for $7. And it is fast! So stay tuned for a full review and…

Merry Christmas!

Originally published: Monday, December 22, 2014



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


 
New Vitelity Special. Vitelity has generously offered a new discount for PBX in a Flash users. 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. And, when you use our special link to sign up, the Nerd Vittles and PBX in a Flash projects get a few shekels down the road 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 PBX in a Flash 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 for just $3.99 a month. To check availability of local numbers and tiers of service from Vitelity, click here. Do not use this 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 and any balance is fully refundable if you decide to discontinue service with Vitelity.
 


Some Recent Nerd Vittles Articles of Interest…

  1. Some of our purchase links refer users to Amazon and other sites when we find their prices are competitive for the recommended products. Nerd Vittles receives a small referral fee from merchants 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 Amazon and other merchants because they support us. []

Incredible PBX on Steroids: The Asterisk-GUI Project Rolls On (Chapter 3)

We’re big fans of the new hybrid vehicles especially the Cadillac ELR. It combines an electric motor with a gas generator to give you the best of both worlds. For in-town driving, you get terrific performance at 1.5¢/mile using pure electric power. But you’re not hamstrung from venturing out to anywhere you choose using a traditional gas engine that can be refueled quickly at any time. In a nutshell, that’s the design philosophy that’s inspired development of Incredible PBX for the Asterisk-GUI.

This is the third installment in our series. You can catch up with the Overview as well as Chapter 1 and Chapter 2 here.

With Incredible PBX for the Asterisk-GUI, you get a terrific GUI to manage Asterisk® while taking advantage of all the neat features that Incredible PBX brings to the table using traditional dialplan design. Stated another way, you’re not being forced to always use a GUI to manage your Asterisk server when command-line utilities are more functional or efficient. Previous approaches to GUI-only management of Asterisk forced you to always jump through the GUI hoops to do much of anything. Unfortunately, what you lost in that scenario was a lot of the native functionality of Asterisk.

That’s not to say there wasn’t a lot to like about our GUI heritage with Asterisk. These open source projects brought a wealth of features to the table for beginners without having to learn much about the way Asterisk actually worked. The downside was you didn’t learn much about the way Asterisk actually worked. On the one hand, it kept folks from making serious programming errors that could result in major phone bills when security issues crept into a dialplan. The drawback was you never learned why. When something came unglued and things do come unglued, you were up the proverbial creek without a paddle. In fact, many never knew they had a paddle much less what it looked like.

I wish I had a nickel for every user that’s complained over the years that Asterisk won’t start. The last time we checked Google was showing 963,000 of them. It turns out that many of these weren’t failures with Asterisk at all but rather shortcomings in the interaction of one particular graphical user interface with MySQL. If you don’t believe it, shut down MySQL on your existing Asterisk server and then try to restart Asterisk. You’ll never see this with Incredible PBX for Asterisk-GUI. Why? Because the reliability of Asterisk isn’t tied to the reliability of MySQL, Apache, Perl, Asterisk-GUI, or any other foreign application.

**** WARNING: ERROR IN CONFIGURATION ****
astrundir in '/etc/asterisk' is set to  but the directory
does not exists. Attempting to create it with: 'mkdir -p '
mkdir: missing operand
Try 'mkdir --help' for more information.
**** ERROR: COULD NOT CREATE  ****
Attempt to execute 'mkdir -p ' failed with an exit code of 1
You must create this directory and the try again.

In the new Incredible PBX design, we haven’t forgotten about security either. In this day and age, it’s the single most important feature of any PBX that is connected to the Internet. We always recommend running your server behind a hardware-based firewall with no Internet port exposure, but we appreciate that’s not always possible particularly with Cloud-based servers. Incredible PBX is delivered with the Linux IPtables firewall preconfigured. It allows access from your server’s IP address, from the IP address used to install Incredible PBX, from private IP addresses on your local area network, and from a very limited set of trusted providers so that you can connect your trunks to make and receive phone calls. The tools to add and delete whitelist entries on your firewall are also included. In addition, we’ve included the PortKnocker utility which lets remote users with the three port knock codes gain access until their IP addresses can be whitelisted by an administrator. In addition to IPtables security, there’s another layer of protection for web-based applications. Asterisk-GUI, of course, has its own security system that’s tied to the Asterisk manager.conf setup. All of the remaining web applications require Apache authentication. For Reminders and AsteriDex, you can create multiple Apache passwords for individual users or groups of users. For administrator applications, you set an admin password that’s only known by administrators.

We couldn’t help chuckling recently when one of the security sites found a vulnerability in one of the Incredible PBX applications but noted that administrator access was required to get to the application to launch the attack. That’s akin to saying your system is vulnerable if you hand out your root user credentials AND whitelist the IP addresses of the bad guys. Literally, what was documented was true, but finding security issues in software that requires root permissions for access is getting a little desperate, wouldn’t you say? Of course, one of our “competitors” wasted little time splashing it all over their web site. The vulnerability was fixed the same day it was disclosed, by the way. And it was automatically pushed out to every Incredible PBX server, all of which run industry-standard Linux operating systems. That’s the approach to system design and support our users have come to expect. Feel free to compare it to the offerings you’ll find elsewhere, commercial or otherwise. That, my friends, is what freedom of choice is all about.

The Lean, Mean (Pure) Asterisk Machine

The roadmap for the future direction of Incredible PBX continues to evolve, but let us take a moment and share our current thinking. We’ve previously mentioned that the target audience for Incredible PBX for Asterisk-GUI is hobbyists. That’s not a dirty word in our book. Nor does it mean the platform won’t be as robust and reliable as previous releases of Incredible PBX. It just has a smaller memory footprint and much faster performance. Yes, we’re using Asterisk-GUI which Digium no longer supports. But that was a marketing decision that had nothing to do with the quality of the product. It was written by some of the best brains in the Asterisk business so we’re comfortable using it as a platform. We’ve found only two bugs in beating on the software relentlessly. Outbound Caller ID on a per extension basis can be quirky. Trunk-based CallerID whether assigned at the provider end or on Incredible PBX works just fine including CallerID spoofing where permitted by the provider. The other wrinkle was Asterisk-GUI’s failure to support the [context](+) feature of Asterisk. We’ve found an easy workaround for that one as well. We just won’t use it.

The plan is to roll this out first on the CentOS 6.5 (now 6.6) platform because we view it as the most stable. Scientific Linux 6.6 works equally well. Once we get any kinks out of the code, we’ll turn our attention to Ubuntu 14 and then on to the small hardware: Raspberry Pi, BeagleBone Black, CuBox, and PogoPlug. There’s also been interest in a more internationally-friendly version, and that’s on the drawing board as well. During the rollout, we hope to complete work on moving a few MySQL-based utilities to SQLite3. We will leave MySQL in the installation mix but will turn it off to further reduce the memory overhead of the install. We also will scale back the number of simultaneous Apache sessions running since the purpose of Apache is primarily to support administrator utilities on the server. Actually, you can run Asterisk-GUI using either the native Asterisk http server or with Apache. Thanks to Bill Simon of Simon Telephonics, you’ll have both options. With simple modifications, we think we can improve the performance on memory-constrained platforms dramatically while providing a robust, high performance platform if you have the hardware to support it. We’ve also initiated discussions with Amazon to roll out a phone service using this platform for the new Amazon Echo product. So 2015 is shaping up to be another banner year in the VoIP world. We hope you’ll come join us.

This week we continue the march. We want to review some of the open source features being incorporated into Incredible PBX from the open source code base minus some of the superfluous GUI modules. For example, you can manage blacklisting of callers using nothing more than your telephone. The same is true for SMS messaging. If you can dictate an SMS message, then why type it? Bash scripts are a well-tested feature of Incredible PBX, and you’ll still find a healthy collection of them in the /root folder of your server after you complete the install. But today’s focus is what can be accomplished with Incredible PBX using nothing more than your telephone.

Blacklisting Callers with Incredible PBX

One of our old PBX favorites dating back to the Asterisk@Home days was blacklisting. This means that old girlfriends and telemarketers get routed to Zapateller with a message that your number is not in service. By default, Incredible PBX for Asterisk-GUI will automatically blacklist incoming calls without a CallerID number. You can modify this behavior if desired:

asterisk -rx "database del blacklist blocked"

If you change your mind and want to turn anonymous call blocking back on, use this command:

asterisk -rx "database put blacklist blocked 1"

We’ve retained the same feature codes to manage blacklisting of specific numbers from any phone on your system:

  • *30 – Add a number to Blacklist
  • *31 – Remove number from Blacklist
  • *32 – Blacklist last number that called

Blacklisting was all smoke and mirrors in the old GUI days. But we want you to understand how this actually works so that you can change it if you’d like. For example, instead of the Zapateller tone, you might prefer to route callers on your blacklist to Lenny (53669 on your phone) so that you waste some of the caller’s time instead of the other way around.

In the extensions_additional.conf file, find the [app-blacklist-check] context. The last four lines in that context look like this:

;exten => s,n,Goto(DLPN_DialPlanMain,53669,1)
exten  => s,n,Zapateller()
exten  => s,n,Playback(ss-noservice)
exten  => s,n,Hangup

To route blacklisted callers to Lenny, just uncomment the top line shown and add semicolons to the next two lines:

exten  => s,n,Goto(DLPN_DialPlanMain,53669,1)
;exten => s,n,Zapateller()
;exten => s,n,Playback(ss-noservice)
exten  => s,n,Hangup

Wasn’t that easy? Now just save your changes and reload your dialplan: asterisk -rx "dialplan reload"

You may prefer to manually add numbers to your blacklist. You can do this from the Linux command prompt like this. Don’t forget the 1.

asterisk -rx "database put blacklist 8005551212 1"

From the Asterisk CLI (asterisk -rvvvvvvvvvv), do it like this:

database put blacklist 8005551212 1

To display all of your blacklist entries, try this:

database show blacklist

To remove an entry from the blacklist, use this syntax:

database del blacklist 8005551212

MP3 Voicemail Messaging for Cellphone Playback

One of the most requested features on our forums has been the ability to forward voicemails in MP3 format so that they play back correctly on cellphones and desktop mail clients. As with many of the Incredible PBX features, we wouldn’t know where to start to thank all of the folks that helped make this happen. You can review the thread on the PIAF Forum for background. This is yet another great example of how the open source community should work. Thanks to everyone that participated in bringing this development to fruition. On the new Incredible PBX for Asterisk-GUI platform it’s automatic. All you have to do is assign an email address to any voice mailbox on your server in the Users setup, and incoming voicemail messages will be delivered by email in the proper format for playback. The message thread explains how for those with an interest.

Accessing Voicemail Messages with Incredible PBX

Speaking of voicemail, we’ve tried to maintain the same feature codes that many have become accustomed to over the years. Here’s a recap of the codes in case you ever forget:

  • *98 – Check Voicemail Messages from Any Phone
  • *extension – Leave a Voicemail for Dialed Extension
  • * after voicemail connect – Access Voicemail Retrieval

Migrating the Google Speech Feature Set to Incredible PBX for Asterisk-GUI

We previously mentioned that Google Voice wasn’t around when Asterisk-GUI was developed. Not to worry. We’ve added it. And that’s just the beginning. All of the Google features that have made Incredible PBX so popular will be included in the Asterisk-GUI edition. That includes text-to-speech and speech recognition thanks to Lefteris Zafiris. It also includes SMS messaging with your same Google Voice credentials. Pick up a phone and dial S-M-S to dictate and send an SMS message to any recipient in the U.S. or Canada. Pick up a phone and dial 949 to listen to a weather forecast for any major city in the world. Just say the name of the city and state or country. Pick up a phone and dial 951 to listen to the latest News Headlines. Or dial T-O-D-A-Y to listen to Today in History. Sign up for a free Wolfram Alpha key, dial 4747, and you’ve got a voice-enabled encyclopedia at your fingertips. Eat your heart out, Siri. Our extra special thanks to Google for still supporting the open source community. Did we mention… It’s all still free.

Google has changed the rules a bit on using their speech recognition engine. So you now need an API Key to use the Speech Recognition AGI script for Asterisk. Assuming you’ll be using the functionality for “personal and development use,” here’s how to obtain your API key:

1. IMPORTANT FIRST STEP: Use an existing Google/Gmail account to join the Chrome-Dev Group.

2. Using the same account, create a new Speech Recognition Project.

3. Click on your newly created project and choose APIs & auth.

4. Turn ON Speech API by clicking on its Status button in the far right margin.

5. Click on Credentials in APIs & auth and choose Create New Key -> Server key. Leave the IP address restriction blank!

6. Write down your new API key or copy it to the clipboard.

7. Once you’ve installed Incredible PBX, log into your server as root and edit speech-recog.agi in /var/lib/asterisk/agi-bin.

8. Go to line 70 of speech-recog.agi: my $key = "". Insert your API key from Step #6 above between the quotation marks and save the file: Ctrl-X, Y, then Enter.

This will activate all of the Speech Recognition applications in Incredible PBX as described above.

Activating Wolfram Alpha with Speech Recognition in Incredible PBX

If you’re not familiar with Wolfram Alpha, it’s an encyclopedia and almanac on steroids. It’s driven by a supercomputer. There’s not much it doesn’t know. We’ve written an exhaustive article on Wolfram Alpha for Asterisk so start there. With Incredible PBX, everything is preconfigured for you. All you need to do is obtain a (free) API key.

To get started, sign up for a free Wolfram Alpha API account. Just provide your email address and set up a password. It takes less than a minute. Log into your account and click on Get An App ID. Make up a name for your application and write down (and keep secret) your APP-ID code. That’s all there is to getting set up with Wolfram Alpha. If you want to explore costs for commercial use, there are links to let you get more information.

Now you’ll need to insert your API key into /var/lib/asterisk/agi-bin/4747. The first line of the file looks like this: APPID="Wolfram-Alpha-API-Key-Goes-Here". Insert your API key between the quotation marks and save the file: Ctrl-X, Y, then Enter.

You’re ready to try out Wolfram Alpha by dialing 4-7-4-7 from any phone connected to your server. Here are some sample queries to get you started:

Weather in Charleston South Carolina
Weather forecast for Washington D.C.
Next solar eclipse
Otis Redding
Define politician
Who won the 1969 Superbowl? (Broadway Joe)
What planes are overhead? (flying over your server’s location)
Ham and cheese sandwich (nutritional information)
Holidays 2015 (summary of all holidays for 2015 with dates and DOW)
Medical University of South Carolina (history of MUSC)
Star Trek (show history, air dates, number of episodes, and more)
Apollo 11 (everything you ever wanted to know)
Cheapest Toaster (brand and price)
Battle of Gettysburg (sad day :-) )
Daylight Savings Time 2015 Charleston South Carolina (date ranges and how to set your clocks)
iPads by Apple (pricing, models, and specs from Best Buy)
Doughnut (you don’t wanna know)
Snickers bar (ditto)
Weather (local weather at your server’s location)

Yahoo! Weather by ZIP Code Is Moving to SQLite 3

One of the more popular features of Incredible PBX has always been the ability to retrieve a Yahoo weather forecast by dialing Z-I-P and plugging in a 5-digit ZIP code for the weather report you wished to hear. This always required a MySQL zip code database to translate the zip code into a city and state for presentation to the various weather services. As part of our move to reduce the memory footprint of Incredible PBX, we are gradually removing our dependence on MySQL. In its place we’re deploying SQLite3 databases, and Weather by ZIP Code was our first successful migration. Moving the MySQL zip code database to SQLite was a snap using a terrific open source script that we highly recommend to developers. It lets you convert any MySQL database (with indexes) to SQLite 3 in seconds. Here’s the link if you ever have the need. About 5 lines of PHP code had to be modified to complete the migration from MySQL to SQLite. Not bad. For our purposes, you’ll never know the difference when you dial in for your next weather forecast.

Originally published: Monday, December 15, 2014



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


 
New Vitelity Special. Vitelity has generously offered a new discount for PBX in a Flash users. 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. And, when you use our special link to sign up, the Nerd Vittles and PBX in a Flash projects get a few shekels down the road 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 PBX in a Flash 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 for just $3.99 a month. To check availability of local numbers and tiers of service from Vitelity, click here. Do not use this 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 and any balance is fully refundable if you decide to discontinue service with Vitelity.
 


Some Recent Nerd Vittles Articles of Interest…

Incredible PBX on Steroids: The Asterisk-GUI Dial Plan Basics (Chapter 2)

We’re making steady progress on the Incredible PBX for Asterisk-GUI project. If you didn’t read last week’s introductory article, start there. This week we’ve had to wrestle with one of the stark realities of taking someone else’s turnkey code and attempting to bolt on enhancements. As previously noted, Asterisk-GUI works all of its magic by manipulating Asterisk® config files directly with no outside storage of settings in either MySQL or the Asterisk DB. This is a good thing… at least until you try to add new features while leaving the basic Asterisk-GUI code intact. That was one of our primary objectives.

This is the second installment in our series. You can catch up with the Overview as well as Chapter 1 and Chapter 3 here.

Simplifying Credentials Management with Incredible PBX

Here’s the problem. We wanted to separate out the credentials for various providers so it would be easy for first-time users to set up a server without having to master Asterisk or the Asterisk-GUI. As we mentioned, this has been the number #1 complaint with the FreePBX® way of doing things. You almost needed to go back to college for another degree before you could make your first phone call. To get a functional VoIP server with one extension and one outbound trunk, it required creation of an extension, registration of a trunk with obscure settings that are different for almost every provider, creation of an inbound and outbound route with settings for how to actually route the calls in and out. And then there was configuration of some less-than-intuitive SIP settings. That’s before you ever start thinking about security and a firewall. Life’s too short!

But we encountered some stumbling blocks with Asterisk-GUI as well. It was rewriting our credentials_sip.conf file whenever Asterisk-GUI was actually used to add a new user (extension) or trunk. Worse yet, it was rewriting the entries incorrectly because the developers forgot about a special syntax in Asterisk that we’ll get to in a minute.

We first thought we could solve the rewriting of our config files by limiting write permissions on our new credentials files to the root user. Asterisk and Asterisk-GUI both run as the asterisk user so this would have been an easy fix. Well, no cigar. Asterisk-GUI outsmarted us by quietly aborting the update when it didn’t have ownership of our .conf files. This meant you never could use the Asterisk-GUI for much of anything, not exactly what we had in mind.

Lucky for us, one of the developers forgot about our favorite Linux utility, chattr. This lets you set the immutable bit to prevent all users (including root) from changing the contents of a file. Since Asterisk-GUI sometimes skips error checking after it’s sure it owns the .conf files, it was perfect. We could “hide” settings in our own credentials_sip.conf file without worrying that they’d be overwritten by Asterisk-GUI. The only trick is remembering to turn the immutable bit off when we want to make updates and, of course, turning it back on once we’re finished so that Asterisk-GUI doesn’t mangle the settings when you use Asterisk-GUI for other things. Of course, it also means you’ll need to log in as root to set up credentials for the “Incredible 9″ trunks, but that’s a walk in the park. In fact, that’s the beauty of using chattr in the first place.

For those that love to wade into the weeds of Asterisk design, there is another feature which permits storage of additional settings for any [context]. You simply create [context](+) in a separate file using the same name as the original context. When you reload Asterisk, it blends all of the entries from the two contexts. That’s exactly what we needed in order to simplify storage of credentials for providers using our own config files. Unfortunately, the Asterisk-GUI developers forgot about this syntax and removed our [context](+) entries presumably thinking they were bad code. This left the credentials themselves sitting in a config file with no context, and that wreaked all sorts of havoc in Asterisk-GUI. So now you know why we needed write protection for our credentials_sip.conf file.

Speaking of credentials, here’s how the default credentials_sip.conf file actually looks. To edit the file, you start by removing the immutable bit: chattr -i credentials_sip.conf. Never comment out the host entries or Asterisk dies! Host names may need to be changed depending upon the server on which your provider sets up your individual account. Everything else is simple enough for anyone to master without a tutorial. Plug in your ACCTNAME and ACCTPASS and uncomment the affected lines by removing the semicolons for any trunk you wish to use. Save your settings. Don’t forget to reprotect the file when you’re finished: chattr +i credentials_sip.conf. Finally, restart Asterisk: service asterisk restart. We plan to add scripts to automatically manage these trunk settings, but we wanted you to know how everything actually worked so you can do it yourself should you ever feel the urge.

[voipms](+)
; VoIP.ms trunk Prefix: Dial 9
;username = ACCTNAME
;secret = ACCTPASS
host = atlanta.voip.ms

[Vitelity](+)
; Vitelity trunk Prefix: Dial 8
;username = ACCTNAME
;secret = ACCTPASS
host = inbound1.vitelity.net

[lesnet_peer](+)
; Les.net trunk Prefix: Dial 7
;username = ACCTNAME
;secret = ACCTPASS
host = did.voip.les.net

[ipcomms](+)
; IPcomms trunk Prefix: Dial 6
;username = ACCTNUM
;fromuser = ACCTNUM
;secret = ACCTPASS
host = 2way.ipcomms.net

[didlogic](+)
; DIDlogic trunk Prefix: Dial 5
;username = ACCTNUM
;secret = ACCTPASS
host = sip.didlogic.net

[CallCentric](+)
; CallCentric trunk Prefix: Dial 4
;username = ACCTNUM
;fromuser = ACCTNUM
;authuser = ACCTNUM
;secret = ACCTPASS
host = callcentric.com

[FutureNine](+)
; FutureNine trunk Prefix: Dial 3
;username = ACCTNUM
;secret = ACCTPASS
host = incoming.future-nine.com

I hear some of you squawking, “Why do you call it ‘Incredible 9′ when there are only 7 providers?” The answer is that Google Voice is managed separately in credentials_googlevoice.conf because it operates differently in Asterisk. Anveo Direct also has a different way of handling outbound SIP calls. A PIN is required as part of the dial string. That PIN is managed separately in credentials_extensions.conf. So… 7 + 2 = 9.

Linux Application Framework for Incredible PBX

We also wanted to simplify the process of adding new Linux utilities to our Incredible PBX setup for Asterisk-GUI. You may know that Asterisk-GUI runs under a lean, mean web server that’s actually part of Asterisk. By default, it operates on port 8088. We wanted to leave it that way to simplify the procedure for compiling Asterisk to run as the asterisk user as opposed to the root user. The Asterisk web server never was intended to compete with Apache, and there is no support for PHP much less MySQL. In order to use the dozens of Incredible PBX utilities and databases as well as all of the text-to-speech and speech recognition tools, we needed Apache, PHP, and MySQL. So our design decision was to run Apache on port 80 with full PHP support and then run MySQL in the same way it has been installed on LAMP servers since Day One.

That design meant we still needed a separate web site to support Incredible PBX utilities. Luckily, our friends at Kennon Software built a beautiful user interface for PBX in a Flash many years ago. With some minor tweaking to account for newer releases of PHP, it was a perfect fit for Incredible PBX as you can see at the top of this article. It has all the things we were looking for including an RSS Feed to provide emergency announcements. It also provides developers unlimited flexibility to add local applications and make other modifications as desired for both end-users and administrators. So our tip of the hat again goes to Kennon Software for their terrific open source contribution to our projects.

Choosing a Linux Platform for Incredible PBX

Speaking of Linux, we’re often asked what’s the best Linux platform on which to run Incredible PBX. Our stock answer is ALL OF THE ABOVE. Incredible PBX has been and is being engineered to run well on almost any Linux platform. We plan to initially release Incredible PBX for Asterisk-GUI on the CentOS/Scientific Linux 6.5 platform, but we’ll add Ubuntu 14.04 and Debian in coming weeks. In this way, we can support all of our favorite low-cost hardware platforms including the Raspberry Pi, BeagleBone Black, CuBox, PogoPlug, and anything else we can get our hands on.

Adding Inbound & Outbound Dialplan Code to Incredible PBX

This week we also tackled some of the other items on the Wish List. We’ve heard from a number of folks that wanted a simple way to add customized dialplan code whenever a call was made or received. That was an easy one. In extensions_custom.conf, you’ll now find the following contexts which can be enhanced in any way you choose. Just plug your additional code into each context between the two default entries.

[incoming-sub]
exten => incoming-sub_1,1,Noop(*** Incoming: ${CALLERID(all)} on ${CHANNEL} ***)
exten => incoming-sub_1,n,Return()

[outgoing-sub]
exten => outgoing-sub_1,1,Noop(*** Calling: ${CALLERID(dnid)} from ${CALLERID(all)} ***)
exten => outgoing-sub_1,n,Return()

Managing Incoming Calls to “Incredible 9″ Trunks

We haven’t (yet) come up with a really simple way to adjust how inbound calls to our preconfigured trunks are processed because of the basic Asterisk-GUI design. In a nutshell, incoming calls come into your PBX on a phone number, aka DID. That DID is associated with a trunk that you’ve registered to a specific provider. Once the call hits Incredible PBX, we need to tell the PBX where to route the call. Typical choices include an extension, a group of extensions (i.e. a ring group), an IVR, or an AutoAttendant. There are others. In extensions.conf, you will find the dialplan code to manage incoming calls to the “Incredible 9″ trunks. The setup for each of the 9 trunks looks like this:

[DID_Vitelity]
include = DID_Vitelity_default
[DID_Vitelity_default]
exten = _.,1,Set(CALLERID(name)=${CALLERID(number)})
exten = _.,n,Set(CALLERID(number)=${CALLERID(number):0:10})
exten = _.,n,Gosub(cidlookup,cidlookup_1,1())
exten = _.,n,ExecIf($[ "${CALLERID(name)}" = "" ] ?Set(CALLERID(name)=${CALLERID(num)}))
exten = _.,n,Gosub(incoming-sub,incoming-sub_1,1())
;exten = _.,n,Goto(default,6001,1)
;exten = _.,n,Goto(ringroups-custom-1,s,1)
;exten = _.,n,Goto(voicemenu-custom-2,s,1)
exten = _.,n,Goto(voicemenu-custom-1,s,1)
[CallingRule_OutVitelity]
exten = _8NXXNXXXXXX,1,Macro(trunkdial-failover-0.4,${Vitelity}/${EXTEN:1},,Vitelity,)
exten = _81NXXNXXXXXX,1,Macro(trunkdial-failover-0.4,${Vitelity}/${EXTEN:2},,Vitelity,)

In the Asterisk-GUI world, a [DID_provider] context manages incoming calls FROM a provider’s DID or trunk. And a [CallingRule_provider] context manages outbound calls TO your provider’s trunk. In the default Vitelity setup, incoming Vitelity calls get routed to voicemenu-custom-1, and outbound calls with an 8 prefix get routed out through your Vitelity trunk. As noted, all of these contexts can be found in extensions.conf.

Toward the end of the default context you will see two voicemenu-custom entries as well as a ringroups-custom-1 entry and a default entry with an extension number. All but one of these is commented out. As you have probably guessed, the uncommented entry determines where the incoming call is routed. When you create IVRs or ring groups in Asterisk-GUI, each new creation gets assigned a sequential number starting with 1. ringroups-custom-1 is a preconfigured Ring Group that currently sends calls to extensions 6001 and 6002, the two extensions created in the Incredible PBX default setup. If you add additional extensions and then add those new numbers to this preconfigured ring group, then those phones will ring as well. It does NOT change the sequential number originally assigned to this ring group. Adding a new ring group does that.

In Asterisk-GUI, IVRs and AutoAttendants are called Voice Menus. Incredible PBX ships with two. Voice Menu #1 is the Nerd Vittles’ Stealth AutoAttendant. It greets the caller with a cheery message from Allison while providing a couple seconds for someone (like you) to press a button to reroute the call to an undisclosed destination. If no key is pressed, the incoming call is routed to Ring Group #1.

Voice Menu #2 is a Demo IVR that showcases many of the Nerd Vittles applications. By default, all “Incredible 9″ trunks are configured to route incoming callers through the Stealth AutoAttendant to Ring Group #1. If you’d prefer to route incoming calls to a ring group or a particular extension or the demo IVR, the commented out entries will let you do that.

But suppose you wanted to route an incoming call to a custom extension defined in extensions_custom.conf? Well, it’s easy. Just change the context to CallingRule_extensions_custom and route the call to line 1 of the extension context desired. For example, to send an incoming call to the AsteriDex Voice Dialer (411) which lets callers say the name of the party they wish to reach, you’d insert a call destination entry that looked like this:

exten = _.,n,Goto(CallingRule_extensions_custom,411,1)

Better yet, you can use the generic dialplan context, DLPN_DialPlanMain, to reach any extension on your server:

exten = _.,n,Goto(DLPN_DialPlanMain,411,1)

As you add new ring groups, extensions, and voice menus with Asterisk-GUI, you can adjust these settings accordingly now that you know how all of this works. After making changes in extensions.conf, be sure you’ve only enabled ONE destination per trunk by commenting out the rest of them. Then reload your dialplan: asterisk -rx "dialplan reload"

Free Worldwide Calling Support with Incredible PBX

We mentioned last week that iNum support will be included through two SIP providers to let you make free phone calls worldwide to anyone with a registered iNum. SIP URIs are equally important for the same reason. You can make a free call to anyone, anywhere in the world if the recipient happens to have a SIP URI, and sip2sip.info will provide a free one to anybody. To support SIP URIs, Incredible PBX for Asterisk-GUI includes a new context that will let you link a SIP URI to an extension on your PBX. We’ve included an entry for L-E-N-N-Y to get you started. You can add as many more as you like:

[CallingRule_SIP_URI]
exten = 53669,1,Dial(SIP/2233435945@sip2sip.info)

CallerID Name Lookups with Incredible PBX

On the CallerID Name front, we’re still exploring alternatives including incorporation of CallerID Superfecta which originally was a Nerd Vittles creation. It now is maintained by the POSSA Development Team. In the interim, we’ve provided code for one of the best CNAM sources in the business, OpenCNAM. It gets you 10 free lookups an hour from cached entries. If you need more, you can sign up for an account. For completed calls, there is a charge of $.004. Just adjust the CURL entry below to plug in your credentials:

[cidlookup]
exten => cidlookup_1,1,Set(CURLOPT(httptimeout)=7)
exten => cidlookup_1,n,Set(CALLERID(name)=${CURL(https://account_sid:auth_token@api.opencnam.com/v2/phone/${CALLERID(num)}?format=pbx&ref=incrediblepbx)})
exten => cidlookup_1,n,Set(current_hour=${STRFTIME(,,%Y-%m-%d %H)})
exten => cidlookup_1,n,Set(last_query_hour=${DB(cidlookup/opencnam_last_query_hour)})
exten => cidlookup_1,n,Set(total_hourly_queries=${DB(cidlookup/opencnam_total_hourly_queries)})
exten => cidlookup_1,n,ExecIf($["${last_query_hour}" != "${current_hour}"]?Set(DB(cidlookup/opencnam_total_hourly_queries)=0))
exten => cidlookup_1,n,ExecIf($["${total_hourly_queries}" = ""]?Set(DB(cidlookup/opencnam_total_hourly_queries)=0))
exten => cidlookup_1,n,Set(DB(cidlookup/opencnam_total_hourly_queries)=${MATH(${DB(cidlookup/opencnam_total_hourly_queries)}+1,i)})
exten => cidlookup_1,n,ExecIf($[${DB(cidlookup/opencnam_total_hourly_queries)} >= 60]?System(${ASTVARLIBDIR}/bin/opencnam-alert.php))
exten => cidlookup_1,n,Set(DB(cidlookup/opencnam_last_query_hour)=${current_hour})
exten => cidlookup_1,n,Return()
exten => cidlookup_return,1,ExecIf($["${DB(cidname/${CALLERID(num)})}" != ""]?Set(CALLERID(name)=${DB(cidname/${CALLERID(num)})}))
exten => cidlookup_return,n,Return()
;--== end of [cidlookup] ==--;;end of Incredible PBX original build file

Managing Outbound CallerID & PINs with Incredible PBX

There appear to be a few leftover CallerID bugs in the original Asterisk-GUI code. As a workaround, we’ve added support for setting CallerID numbers in credentials_extensions.conf. This lets you set outbound CallerID numbers on a per trunk basis for providers that allow spoofing of CallerID numbers.

Here’s what the complete credentials_extension.conf file actually looks like. The AnveoPIN is the code used to authorize outbound calls through Anveo Direct. Anveo handles outbound calling differently than most providers so the setting had to go here instead of in the more traditional credentials_sip.conf file. Sorry. The other entries are self-explanatory. This config file can be edited using your favorite text editor. Then service asterisk restart and you’re done.

AnveoPIN = 024680
; Conference Bridge PINs
CONF_USER_PIN = 1234
CONF_ADMIN_PIN = 4321
; DISA password
DISA_PW = 9876
; CallerID numbers
CID_allroutes = 8005551212
CID_CallCentric = 8005551212
CID_ipcomms = 8005551212
CID_voipms = 8005551212
CID_anveodirect = 8005551212

Outbound Call Processing with Incredible PBX

With apologies to our international friends, we’ve included a template to handle processing of all outbound U.S. calls using the “Incredible 9″ trunks. Basically, you can dial a 10-digit number or 1+ the 10-digit number, and the [outbound-allroutes] context will walk the call through all of the trunks for which you’ve registered including Google Voice. If a trunk isn’t registered, it’s skipped. The arrangement of the trunks can be adjusted to meet your own needs. As delivered, calls are processed in the following order: Google Voice, VoIP.ms, Vitelity, les.net, IPcomms, DIDlogic, CallCentric, FutureNine, and Anveo Direct. You obviously can add as many additional providers as desired or rearrange the ones that already are included. And international calling can be added easily using the existing entries as a model. Cut-and-paste is your friend!

[outbound-allroutes]
exten => _NXXNXXXXXX,1,Set(CALLERID(num)=${CID_allroutes})
exten => _NXXNXXXXXX,n,Dial(Motif/GoogleVoice/1${EXTEN}@voice.google.com)
exten => _NXXNXXXXXX,n,Dial(${voipms}/${EXTEN})
exten => _NXXNXXXXXX,n,Dial(${Vitelity}/${EXTEN})
exten => _NXXNXXXXXX,n,Dial(${lesnet_peer}/1${EXTEN})
exten => _NXXNXXXXXX,n,Dial(${ipcomms}/${EXTEN})
exten => _NXXNXXXXXX,n,Dial(${didlogic}/1${EXTEN})
exten => _NXXNXXXXXX,n,Dial(${CallCentric}/1${EXTEN})
exten => _NXXNXXXXXX,n,Dial(${FutureNine}/1${EXTEN})
exten => _NXXNXXXXXX,n,Dial(SIP/${AnveoPIN}1${EXTEN}@sbc.anveo.com)
exten => _NXXNXXXXXX,n,Hangup
exten => _1NXXNXXXXXX,1,Set(CALLERID(num)=${CID_allroutes})
exten => _1NXXNXXXXXX,n,Dial(Motif/GoogleVoice/${EXTEN}@voice.google.com)
exten => _1NXXNXXXXXX,n,Dial(${voipms}/${EXTEN:1})
exten => _1NXXNXXXXXX,n,Dial(${Vitelity}/${EXTEN:1})
exten => _1NXXNXXXXXX,n,Dial(${lesnet_peer}/${EXTEN})
exten => _1NXXNXXXXXX,n,Dial(${ipcomms}/${EXTEN:1})
exten => _1NXXNXXXXXX,n,Dial(${didlogic}/${EXTEN})
exten => _1NXXNXXXXXX,n,Dial(${CallCentric}/${EXTEN})
exten => _1NXXNXXXXXX,n,Dial(${FutureNine}/${EXTEN})
exten => _1NXXNXXXXXX,n,Dial(SIP/${AnveoPIN}${EXTEN}@sbc.anveo.com)
exten => _1NXXNXXXXXX,n,Hangup

DISA Support for Incredible PBX

Unless we missed it, Asterisk-GUI was missing DISA support, the ability to call your PBX and receive dialtone to make an outbound call through the PBX. Because of costs associated with outbound calls, this can make a real difference in some countries. We’ve added DISA support through the D-I-S-A (3472) extension. The DISA password can be set in credentials_extensions.conf. The DISA extension can be added to an IVR for one or more trunks to provide password-protected DISA call access to incoming callers. The dialplan code can be adjusted to meet your own requirements. As delivered, only 10-digit calls are permitted. Just change the 10 on line 10 if you want to enable international dialing. Calls are limited to 150 minutes by default. Just change the 9000 (seconds) entry as desired.

[custom-disa]
exten => s,1,Answer
exten => s,n,Wait(1)
exten => s,n,Set(TIMEOUT(digit)=7)
exten => s,n,Set(TIMEOUT(response)=10)
exten => s,n,Background(enter-password)
exten => s,n,Read(MYCODE,beep,7)
exten => s,n,Noop(DISA_PW: ${DISA_PW})
exten => s,n,GotoIf($["${MYCODE}" = "${DISA_PW}"]?disago:bad,1)
exten => s,n(disago),Set(TIMEOUT(absolute)=9000)
exten => s,n,Read(NUM2CALL,pls-entr-num-uwish2-call,10)
exten => s,n,Background(calling)
exten => s,n,SayDigits("${NUM2CALL}")
exten => s,n,Goto(outbound-allroutes,${NUM2CALL},1)
exten => s,n,Hangup
exten => t,1,Hangup
exten => i,1,Hangup
exten => h,1,Hangup
exten => bad,1,Hangup

Call Forwarding Support with Incredible PBX

We have restored the call forwarding functionality that originally was missing in Asterisk-GUI. The same feature codes found in FreePBX are supported. By dialing *72, you can set forwarding for any extension to either a local number or any other number supported by your dial plan. By dialing *72NXXNXXXXXX or *726XXX (local extensions typically are in the 6000-6299 range with Asterisk-GUI), you can set call forwarding in a single step. *73 can be used to disable call forwarding for the extension from which you dialed, or *74 can be used to disable call forwarding for any extension on your server. A list of currently forwarded extensions can be retrieved using the Asterisk CLI: asterisk -rx "database show CF"

Conference Bridge Support in Incredible PBX

As previously mentioned, Conference Bridge support wasn’t available when Asterisk-GUI was released so we’ve added it. Just dial C-O-N-F (2663) to join the conference bridge. User and admin PINs are set in the credentials_extensions.conf file. You can create as many of these as you need by cloning the code below with different extension numbers:

[conf_bridge]
exten => 2663,1,Macro(user-callerid,)
exten => 2663,n,Set(MEETME_ROOMNUM=2663)
exten => 2663,n,Set(MAX_PARTICIPANTS=0)
exten => 2663,n,Set(MEETME_MUSIC=default)
exten => 2663,n,GotoIf($["${DIALSTATUS}" = "ANSWER"]?READTHEPIN)
exten => 2663,n,Answer
exten => 2663,n,Wait(1)
exten => 2663,n,Set(PINTRIES=0)
exten => 2663,n,Noop(${CONF_USER_PIN})
exten => 2663,n(READTHEPIN),Read(PIN,enter-conf-pin-number,,,,)
exten => 2663,n,GotoIf($[${PIN} = ${CONF_USER_PIN}]?ENDUSER)
exten => 2663,n,GotoIf($[${PIN} = ${CONF_ADMIN_PIN}]?ADMINISTRATOR)
exten => 2663,n,Set(PINTRIES=$[${PINTRIES}+1])
exten => 2663,n,GotoIf($[${PINTRIES}>3]?h,1)
exten => 2663,n,Playback(conf-invalidpin)
exten => 2663,n,Goto(READTHEPIN)
exten => 2663,n(ADMINISTRATOR),Set(CONFBRIDGE(user,admin)=yes)
exten => 2663,n,Set(CONFBRIDGE(user,marked)=yes)
exten => 2663,n,Set(CONFBRIDGE(user,dsp_drop_silence)=yes)
exten => 2663,n,Set(CONFBRIDGE(user,talk_detection_events)=yes)
exten => 2663,n,Set(CONFBRIDGE(user,announce_user_count)=yes)
exten => 2663,n,Set(CONFBRIDGE(user,announce_join_leave)=yes)
exten => 2663,n,Set(CONFBRIDGE(user,music_on_hold_when_empty)=yes)
exten => 2663,n,Goto(ext-meetme,STARTMEETME,1)
exten => 2663,n(ENDUSER),Noop(User Options:)
exten => 2663,n,Set(CONFBRIDGE(user,dsp_drop_silence)=yes)
exten => 2663,n,Set(CONFBRIDGE(user,talk_detection_events)=yes)
exten => 2663,n,Set(CONFBRIDGE(user,announce_user_count)=yes)
exten => 2663,n,Set(CONFBRIDGE(user,announce_join_leave)=yes)
exten => 2663,n,Set(CONFBRIDGE(user,music_on_hold_when_empty)=yes)
exten => 2663,n,Goto(ext-meetme,STARTMEETME,1)
exten => 2663,hint,confbridge:2663

Google Voice Support in Incredible PBX

Google Voice is another little goodie that wasn’t available when Asterisk-GUI came along. Because we’re now running everything on the Asterisk 11 platform, it seemed silly not to include Google Voice support. And we’ve made it about as easy to set up as tying your shoes. Plug in your Google email address and password using the new web interface, and you’re done. By default, all 10-digit and 11-digit outbound calls are first attempted through your Google Voice trunk. You can’t beat free!

If you’ve used the same account elsewhere, Google may block access from your new IP address. In this case, just follow the steps outlined in this Google Reset Procedure to get things going.

Managing Call Detail Records (CDR) in Incredible PBX

The gorgeous CDR Viewer found under the Options -> Advanced Options -> Enable tab in Asterisk-GUI is incredibly flexible. In addition to being lightening fast, you can reorder the CDR listing by simply clicking on any column heading. Clicking twice will sort the list in the opposite order. You also can expand the detail in two ways. Either click on an individual entry (as shown) to display the complete CDR entry or check the Show All Fields checkbox to get the full picture for every CDR entry. The complete CDR database in CSV format can be retrieved from /var/log/asterisk/cdr-csv/Master.csv.

Getting Up to Speed on Asterisk-GUI Basics

We’ve covered a lot of territory this week. You don’t have to master it all at once. Incredible PBX is being engineered to give you the best of both worlds rather than one size fits all. By setting things up this way, you can add your own features and share them with the community as you move up the learning curve. That’s what open source is all about!

The other goal was to leave Asterisk-GUI intact to the greatest extent possible. This has several advantages. First, for previous users of Asterisk-GUI, they’ll feel right at home. Second, we don’t have to write extensive documentation for Asterisk-GUI because many others have already done the heavy lifting. One obvious word of caution. Don’t delete, rename, or otherwise modify the default trunks, users, calling rules, ring groups, and dialplans that already have been created to support Incredible PBX. If you do, you will break things. But feel free to add as many new pieces to your setup as desired and, of course, the extension passwords can be changed in any way you like. Trunk credentials for the “Incredible 9″ preconfigured trunks should be managed using the credentials files documented above.

Here are a few resources that will guide you through mastering the Asterisk-GUI:

Remember the Objective of Incredible PBX for Asterisk-GUI

We’ll close for today by reiterating why we’re introducing a new VoIP alternative with Incredible PBX for Asterisk-GUI. From the ground up, this project is designed as an open source, hobbyist platform so that you can actually LEARN how Asterisk works and become self-sufficient in designing AND managing your own VoIP communications platform. Is it “Pure GUI”? Nope. Here’s why. One of the major reasons that so many folks have had their VoIP systems hacked over the past few years is because those users never quite understood how their “Pure GUI” stuff was working (or not) under the hood.

Does “hobbyist platform” mean it’s a Crappy Purple Scion? Nope. In fact, the Asterisk-GUI tools and Asterisk code in Incredible PBX were designed and written by some of the best Asterisk experts in the business including Mark Spencer, the creator of Asterisk. When the nay-sayers snicker at your “hobbyist platform,” just smile and enjoy your independence. :-)

Originally published: Monday, December 8, 2014



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


 
New Vitelity Special. Vitelity has generously offered a new discount for PBX in a Flash users. 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. And, when you use our special link to sign up, the Nerd Vittles and PBX in a Flash projects get a few shekels down the road 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 PBX in a Flash 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 for just $3.99 a month. To check availability of local numbers and tiers of service from Vitelity, click here. Do not use this 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 and any balance is fully refundable if you decide to discontinue service with Vitelity.
 


Some Recent Nerd Vittles Articles of Interest…

Ringbinder theme by Themocracy