It’s been several years since we introduced our Call By Name script for Asterisk® using IBM’s Voice Recognition software. During that time, IBM has shifted gears on their pricing plans and their API methodology several times. So today we want to provide a new soup-to-nuts tutorial for those using Incredible PBX on the Raspberry Pi and Incredible PBX 2021 on both the Debian 10 and Ubuntu 20.04 platforms. If you have previously used IBM voice recognition (STT), be aware that IBM has made significant changes in their service credentials so you’ll need to generate new ones for your account to use these new scripts.
HOW THIS WORKS. On the Incredible PBX platform, you will dial 411 from any extension on your PBX. The system will prompt you for the name of the person or organization to call. Simply say the name and press #. The Call by Name script then will convert your spoken name into text using IBM STT and search the AsteriDex database for a match. If it finds an entry, it will retrieve the phone number and place the call using your default outbound routes.
GETTING STARTED. You first will need to set up an IBM account, choose your Pricing Plan, and generate your Speech-to-Text credentials. Under IBM’s current LITE Plan, you get 500 free minutes of voice recognition a month with no rounding up of actual recording times. The only gotcha with the free tier is that, once you’ve used up your 500 minutes for the month, you’re done until the next month rolls around. If you only use this for Call By Name, you would have to make thousands of queries before that became a problem. So begin by following our existing tutorial to set up your account and choose your pricing plan. Please note that credentials for Speech-to-Text and Text-to-Speech are different. For today, you want STT credentials. Once you’ve navigated to Speech-to-Text LITE, click on Service Credentials in the task bar and then click the blue New Credential button. Accept the defaults and IBM will generate the new credentials for you. Click on the Down Arrow beside your new credentials to display your API key and the URL for future queries. Copy both entries to a safe place and log out of the IBM site.
INSTALLING THE CALL BY NAME SOFTWARE. On most Incredible PBX platforms, a version of the Call by Name software already is in place. But it won’t work with IBM’s new API. Here’s how to bring it up to current specs. Log into your server as root and issue these commands:
cd /var/lib/asterisk/agi-bin wget http://incrediblepbx.com/callbyname2021.tar.gz tar zxvf callbyname2021.tar.gz rm -rf callbyname2021.tar.gz cd /etc/asterisk sed -i '\:// BEGIN Call by Name:,\:// END Call by Name:d' extensions_custom.conf cd /var/lib/asterisk/agi-bin sed -i '/\[from-internal-custom\]/r ibm-411.txt' /etc/asterisk/extensions_custom.conf asterisk -rx "dialplan reload" nano -w getnumber.sh
When the editor opens, scroll down to the following section of the code:
API_USERNAME="apikey" API_KEY="XXXXXXXXXXXX" API_URL="https://api.somewhere.stt.watson.cloud.ibm.com/instances/1-2-3-4-5"
Leave the API_USERNAME the way it is. Replace the API_KEY entry with your actual API key (between the quotes). Replace the API_URL entry (between the quotes) with the URL you copied down in the previous section. Now save the file: Ctrl-X, then Y, then ENTER.
TAKING CALL BY NAME FOR A TEST DRIVE. To test things out, pick up a phone connected to your PBX and dial 411. When prompted for the name, say "United Airlines" and press #. You will be connected to United Airlines reservations desk assuming you have a default outbound route for 10-digit numbers.
Originally published: Monday, November 1, 2021 Updated: Tuesday, July 25, 2022
Need help with Asterisk? Visit the VoIP-info Forum.
Special Thanks to Our Generous Sponsors
FULL DISCLOSURE: ClearlyIP, Skyetel, Vitelity, DigitalOcean, Vultr, VoIP.ms, 3CX, Sangoma, TelecomsXchange and VitalPBX have provided financial support to Nerd Vittles and our open source projects through advertising, referral revenue, and/or merchandise. As an Amazon Associate and Best Buy Affiliate, we also earn from qualifying purchases. We’ve chosen these providers not the other way around. Our decisions are based upon their corporate reputation and the quality of their offerings and pricing. Our recommendations regarding technology are reached without regard to financial compensation except in situations in which comparable products at comparable pricing are available from multiple sources. In this limited case, we support our sponsors because our sponsors support us.
BOGO Bonaza: Enjoy state-of-the-art VoIP service with a $10 credit and half-price SIP service on up to $500 of Skyetel trunking with free number porting when you fund your Skyetel account. No limits on number of simultaneous calls. Quadruple data center redundancy. $25 monthly minimum spend required. Tutorial and sign up details are here.
The lynchpin of Incredible PBX 2020 and beyond is ClearlyIP components which bring management of FreePBX modules and SIP phone integration to a level never before available with any other Asterisk distribution. And now you can configure and reconfigure your new Incredible PBX phones from the convenience of the Incredible PBX GUI.
VitalPBX is perhaps the fastest-growing PBX offering based upon Asterisk with an installed presence in more than 100 countries worldwide. VitalPBX has generously provided a customized White Label version of Incredible PBX tailored for use with all Incredible PBX and VitalPBX custom applications. Follow this link for a free test drive!
Special Thanks to Vitelity. Vitelity is now Voyant Communications and has halted new registrations for the time being. Our special thanks to Vitelity for their unwavering financial support over many years and to the many Nerd Vittles readers who continue to enjoy the benefits of their service offerings. We will keep everyone posted on further developments.