Home » Posts tagged 'stt'
Tag Archives: stt
Incredible ChatGPT: Artificial Intelligence For Your Phone
Unless you’ve been sleeping under a rock, you already know that Artificial Intelligence (AI) has the potential to transform every aspect of our lives. The reasons are fairly obvious. AI can process and analyze massive amounts of data in seconds that humans could spend months and years collecting. AI is being used to develop new drugs and treatments, diagnose diseases, and provide personalized care to patients. It’s being used to develop self-driving cars and trucks, optimize traffic flows, and improve public transportation. It can be used in manufacturing to automate tasks, improve quality control, and reduce costs. And AI can be used in the financial world to detect fraud, assess risk, and make investment decisions. Because of AI’s encyclopedic prowess, it can also write a mean term paper with human-like prose. That’s the good news. The bad news is that not everything AI regurgitates is accurate so be extremely careful relying upon AI exclusively to make decisions. See if you can spot the problem in this ChatGPT response:
ChatGPT is a large language model chatbot developed by OpenAI, a company backed by Microsoft®. Within two months after launch, ChatGPT had over 100 million subscribers. It is trained on a massive dataset of text and code and is able to generate human-like text, translate languages, write different kinds of creative content, and answer your questions in an informative way. The knowledge cutoff date for the gpt-3.5-turbo version of ChatGPT is September 2021. For users of Incredible PBX, today we’re pleased to bring that ChatGPT model to a telephone near you.
To get started, you’ll need three components. First, you’ll need an Incredible PBX 2027 platform with Debian 11 or Ubuntu 22.04 running on Windows, a Mac, or Linux. Turnkey versions are available for dozens of virtual machine and cloud-based platforms. If you’re using Incredible PBX 2027 on the Rocky 8 platform, you will also need to install the gTTS text-to-speech engine from here. Second, you’ll need to obtain a free OpenAI_KEY here using your Google, Apple, or Microsoft email account. And, third, you’ll need to obtain a free Speech-to-Text API_KEY and API_URL from IBM. Once you have the three pieces in hand, you’re ready to proceed with the installation for your Incredible PBX platform. After installation, you can make ChatGPT queries using any telephone connected to your PBX. Simply dial 2428 (C-H-A-T) and speak your query.
Installing the ChatGPT Telephone Interface
Not every ChatGPT response is suitable for use with a telephone. You wouldn’t want ChatGPT reading you a term paper or spouting out some Asterisk® dialplan code. Nor can most telephones display photos. So our deployment for Incredible PBX today provides two ChatGPT solutions: (1) a command-line interface that is accessible from a terminal or via SSH: chatgpt -p "your query"
. (2) The telephone interface is accessible by dialing 2428. For the telephone interface, be careful what you ask. You don’t want a 10,000-word response. For example, a good query might be "What are the five best Atlantic coast beaches in the United States." A not-so-good query would be "What are the best restaurants in the world."
To get started after installing Incredible PBX using one of the numerous tutorials available here, log into your server as root and issue the following commands:
cd / wget https://filedn.com/lBgbGypMOdDm8PWOoOiBR7j/ChatGPT/incredible-chat.tar.gz tar zxvf incredible-chat.tar.gz cd /root
Once the components have been downloaded and installed, navigate to the /root folder.
Enter your ChatGPT and IBM STT credentials in the following files:
- Edit chat and insert your OPENAI_KEY in line 6
- Edit chatgpt and insert your OPENAI_KEY in line 15
- Edit chatgpt.sh and insert your OPENAI_KEY in line 12
- Also insert your IBM STT API_KEY in line 16 of chatgpt.sh
- Also insert your IBM STT API_URL in line 17 of chatgpt.sh
Complete the install by issuing the following commands:
cd /root sed -i '/\[from-internal-custom\]/r chat.code' /etc/asterisk/extensions_custom.conf chmod +x chat* sed -i 's|:wav|.wav|' /etc/asterisk/extensions_custom.conf mv chat /usr/local/sbin mv chatgpt /usr/local/bin mv chatgpt.sh /var/lib/asterisk/agi-bin asterisk -rx "dialplan reload"
NOTE: The chatgpt command-line tool does not work on the Rocky 8 platform because of a bug in their fold implementation. However, both our chat command-line tool and the 2428 telephony interface work fine once the gTTS text-to-speech engine is installed for Rocky 8.
Making a Test Call with ChatGPT
Now that all the pieces are in place, let’s make a test call. From a phone connected to your Incredible PBX server, dial 2428. At the prompt, enter the following query: What Are the Five Best Gulf Coast Beach Resorts in the United States? Within a minute or so, ChatGPT will provide the answer using the gTTS text-to-speech engine included in Incredible PBX. Enjoy!
A Cautionary Note About ChatGPT
We’ll close today with this cautionary note about ChatGPT… from ChatGPT:
Originally published: Friday, October 20, 2023
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.
gTTS: The Ultimate (free) Text-to-Speech Engine for Asterisk
Telephony is all about person-to-person communications. But much of what we do in the real world involves gathering information from non-human sources. These include books, magazines, and newspapers as well as sources that provide real-time news, weather, sports scores, stock quotes, inventory and personnel data, reservation systems, and historical data from countless other sources. No modern phone system would be complete without providing an interface to this data and for that you’ll need a text-to-speech engine (TTS). We previously have covered some free voice synthesis offerings including Google TTS, FLITE and Festival, and PicoTTS as well as commercial products like Amazon’s Polly TTS and IBM TTS.
With our special tip of the hat to Dick Ollett (@dicko), we are delighted to present what may very well be the best, free TTS offering out there, gTTS. To simplify the install on Incredible PBX platforms, we’ve developed scripts for Rocky8, Debian/Raspbian 10, and Ubuntu 20.04 that install gTTS and also update the Weather Forecasts (947) and News Headlines (951) applications.
Begin by logging into your server as root. On the Rocky 8 platform, here are the steps:
cd /var/lib/asterisk/agi-bin dnf install python39 -y pip3 install --upgrade pip dnf install jq -y pip3 install gTTS wget http://incrediblepbx.com/gtts.tar.gz tar zxvf gtts.tar.gz rm -f gtts.tar.gz ./install-gtts-dialplan.sh
On the Debian, Raspbian, and Ubuntu platforms, issue the following commands:
cd /var/lib/asterisk/agi-bin apt-get update apt-get -y install jq libsox-fmt-all apt-get -y install python3-pip pip install --upgrade pip pip3 install --upgrade pip ln -s /usr/bin/pip3 /usr/bin/pip pip install gTTS wget http://incrediblepbx.com/gtts.tar.gz tar zxvf gtts.tar.gz rm -f gtts.tar.gz ./install-gtts-dialplan.sh
For those wishing to develop your own TTS applications for Asterisk, carefully review the dialplan code for News Headlines (951) in /etc/asterisk/extensions_custom.conf and the accompanying AGI script in /var/lib/asterisk/agi-bin: nv-news-yahoo.php. Enjoy!
Originally published: Monday, August 15, 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.
Move Over Alexa: Meet Wolfram Alpha for Incredible PBX
Ever wished your Asterisk® server could harness the power of a 10,000 CPU Supercomputer to answer virtually any question you can dream up about the world we live in? Well, so long as it’s for non-commercial use, today’s your lucky day. Apple’s Siri™ and Amazon’s Alexa™ demonstrated just how amazing this technology can be. It began by coupling Wolfram Alpha® to a speech-to-text engine on the iPhone 4S. And now, thanks to IBM’s new speech transcription engine and Wolfram Alpha’s API, you can do much the same thing with Incredible PBX. Today, we’ll show you how.
We had such a good name for this project, Iris, which is Siri spelled backwards. You know the backwards sister and all of that. Unfortunately, the new (similar) product for Android phones was also named Iris. And we didn’t want to be like Larry on Newhart with two brothers named Darryl. So… we give you 4747. You can figure it out from there.
When people ask what exactly Wolfram Alpha is, our favorite answer was provided by Ed Borasky.
It’s an almanac driven by a supercomputer.
That’s an understatement. It’s a bit like calling Google Search a topic index. Unlike Google which provides links to web sites that can provide answers to queries, Wolfram Alpha provides specific and detailed answers to almost any question. Here are a few examples (with descriptions of the functionality) to help you wrap your head around the breadth of information. For a list of what’s available, visit Wolfram Alpha’s Examples by Topic.
Weather forecast for Washington D.C.
Next solar eclipse
Otis Redding
Define politician
Who won the 1969 Superbowl? (Broadway Joe)
What planes are flying overhead? (flying over your server’s location)
Ham and cheese sandwich (nutritional information)
Holidays 2012 (summary of all holidays for 2012 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
Daylight Savings Time 2012 (date ranges and how to set your clocks)
Tablets by Motorola (pricing, models, and specs from Best Buy)
Doughnut (you don’t wanna know)
Snickers bar (ditto)
Weather (local weather at your server’s location)
Best Question of the Day Award: "How much wood could a woodchuck chuck if a woodchuck could chuck wood?" And the answer: "A woodchuck would chuck all the wood he could chuck if a woodchuck could chuck wood. According to the tongue twister, although the paper ‘The Ability of Woodchucks to Chuck Cellulose Fibers’ by P.A. Paskevich and T.B. Shea in Annals of Improbable Research vol. 1, no. 4, pp. 4-9, July/August 1995, concluded that a woodchuck can chuck 361.9237001 cubic centimeters of wood per day."
Implementation Overview. Today what we’re going to demonstrate is how to configure your Asterisk server so that you can pick up any phone on your system, dial 4-7-4-7, speak a question, and we’ll show you how to send it to IBM to convert your spoken words into text. Then we’ll pass that text translation to Wolfram Alpha which will provide a plain text answer to your question. Finally, we’ll take that plain text and use a TTS engine to deliver the results.
Legal Disclaimer. What we’re demonstrating today is how to use two publicly accessible web resources to harness the power of a supercomputer to respond to your queries using a phone connected to an Asterisk server. We’re assuming that both Google and Wolfram Alpha have their legal bases covered and have a right to provide the public services they are offering. We are not vouching for them or the services they are offering in any way. By using our scripts, YOU AGREE TO ASSUME ALL RISKS, LEGAL AND OTHERWISE, ASSOCIATED WITH USE OF THESE FREELY ACCESSIBLE WEB TOOLS. NO WARRANTY EXPRESS OR IMPLIED IS BEING PROVIDED BY US INCLUDING ANY IMPLIED WARRANTY OF FITNESS FOR USE OR MERCHANTABILITY. You, of course, have an absolute right not to use our code if you have reservations of any kind or are unwilling to assume all risks associated with such use. Sorry for legalese, but it’s the time in which we live I’m afraid. Don’t Shoot the Messenger!
Getting an IBM STT LITE Account. 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 and Wolfram Alpha queries, you should be good to go. 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 apikey (top line) and url (bottom line) for future queries. Copy both entries to a safe place and log out of the IBM site.
Getting a Wolfram Alpha Account. You’ll also need a free Wolfram Alpha account. As you can imagine, there have to be some rules when you’re using someone else’s supercomputer for free. So here’s the deal. It’s free for non-commercial, personal use once you sign up for an account. But you’re limited to 2,000 queries a month which works out to almost 70 queries a day. Every query requires your personal application ID, and that’s how Wolfram Alpha keeps track of your queries. Considering the price, we think you’ll find the query limitation pretty generous compared to other web resources.
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.
UPDATING YOUR WOLFRAM ALPHA SOFTWARE. On most Incredible PBX platforms, a version of the Wolfram Alpha software already is in place. But it won’t work with IBM’s new Speech-to-Text 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/wolfram2022.tar.gz tar zxvf wolfram2022.tar.gz rm -rf wolfram2022.tar.gz nano -w wolfram.sh
When the editor opens, scroll down to the following section of the code:
# please insert your Wolfram Alpha APPID below APPID="your-app-id" # please insert your IBM Watson STT credentials below API_USERNAME="apikey" API_KEY="XXXXXXXXXXXXXXXXXXXX" API_URL="https://api.somewhere.stt.watson.cloud.ibm.com/instances/1-2-3-4-5"
Insert your Wolfram Alpha APPID in the space provided (between the quotes). Leave the API_USERNAME the way it is. Replace the API_KEY entry with your actual Google STT API key (between the quotes). Replace the API_URL entry (between the quotes) with the actual URL you copied down in the previous section. Now save the file: Ctrl-X, then Y, then ENTER.
Tweaking the Abbreviations List. Translating abbreviations into speech is a tricky business, and various TTS engines can only do so much. We’ve started the beginnings of an abbreviation list which you will find in the function section of 4747.php which is stored in /var/lib/asterisk/agi-bin. It’s easy to add additional entries. Just clone one of the entries that’s already there. For example, here’s the line that translates Jr. into Junior. HINT: Be careful to surround most unpunctuated abbreviations with spaces, or you may get unexpected results when a word actually begins or ends with the same letters.
$response = str_replace("Jr.","junior",$response);
Deploying PicoTTS on ARM64 Platforms. If you’re using Incredible PBX in the Oracle Cloud with its ARM64 architecture, you’ll need to install the ARM64 version of PicoTTS to use Wolfram Alpha. Here’s how:
cd /root rm -f libttspico* wget http://incrediblepbx.com/picotts-arm64.tar.gz tar zxvf picotts-arm64.tar.gz rm -f picotts-arm64.tar.gz dpkg -i libttspico*
TAKING WOLFRAM ALPHA FOR A TEST DRIVE. To test things out, pick up a phone connected to your PBX and dial 4747. When prompted for your query, say "What planes are flying overhead now" and press #. You will be connected to Wolfram Alpha for the answer.
Originally published: Monday, August 1, 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.
Call By Name for Asterisk with IBM Voice Recognition Returns
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.
Amazon’s Alexa Now Available for Incredible PBX
Loyal readers already know that voice recognition applications occupy a special place in the Incredible PBX® toolchest. Over 8 years ago, we introduced Wolfram Alpha integrating the world’s largest almanac into Asterisk®. And today we’re pleased to add Amazon’s Alexa to the Incredible PBX fold for our latest Incredible PBX 2021 for Debian, Raspberry Pi and CentOS 7 builds. Just dial 5555 and tell Alexa what you’d like to know or do. If you’ve been sleeping under a rock these past few years, Alexa provides not only a thesaurus but also current news and weather, cooking tips and recipes, calendars, movie showtimes and data, Amazon purchasing, shopping lists, reminders, maps, music.everything, home automation control to turn on your lights, lock your doors and adjust your thermostat, sports scores and scheduling, grocery shopping, and almost anything else you can imagine asking for. And our special tip of the hat goes to Russell Grokett for his creativity in bringing the Alexa platform to the Asterisk community. Here’s a simple graphic showing the call flow in a typical Alexa call from any SIP phone connected to Incredible PBX:
Before we get started, let me offer a few words of caution. You’ll need to be a careful reader and follow the instructions below carefully to get Alexa working. Amazon uses OAuth 2 authentication which is secure (and tedious) by design. The good news is you only have to go through this setup exercise once after which Alexa will be available at any time without further tweaking. We’ve made some changes in Russell Grokett’s original design to hopefully simplify the OAuth procedure and to adjust some of the configuration to correctly interface with newer releases of the open source components including sox which handles the audio translations between Asterisk and Alexa. All of the code is licensed pursuant to GNU GPLv3.
Prerequisites. Before you begin, you’ll need a working Incredible PBX 2020 platform running CentOS 7, or Incredible PBX 2021 running Debian 10, or the latest Incredible PBX release for Raspbian preferably running on a Raspberry Pi 4 with at least 2GB of RAM.
Overview. There are four steps in today’s installation procedure. First, we will download and install a number of open source components on Incredible PBX by running a simple script. Second, you’ll need to sign up for both an Amazon account if you don’t already have one AND an Amazon Developer Account. Third, we’ll create an Alexa Voice Service application and set up the Alexa Security Profile for the application. Finally, using the credentials obtained during this setup process, we’ll configure the components on your PBX to talk to Alexa. Be advised that the Amazon license we will be using authorizes only private, non-commercial use. Today’s design does not meet Amazon’s terms for commercial and/or public use!
1. Installing Alexa Basics for Incredible PBX
Log into your server as root and issue the following commands to download and install the basic components to support Alexa integration into Incredible PBX:
cd / wget http://incrediblepbx.com/incredible-alexa.tar.gz tar zxvf incredible-alexa.tar.gz rm -f incredible-alexa.tar.gz ./install-alexa
2. Creating an Amazon and Amazon Developer Account
If you don’t already have one, you can create an Amazon account at amazon.com. Write down your email address and password. You’ll need them in the following steps. Next, navigate to the Amazon Developer Portal and set up a free account using your Amazon credentials.
3. Creating Voice Service Application & Security Profile
After creating your Amazon developer account, we’re ready to create a product and security profile. Begin by logging into the AVS Dashboard. Click GET STARTED to begin.
Click PRODUCTS. Then click ADD NEW PRODUCT. Fill in form as shown below. Click NEXT.
- Product Name: IncrediblePBX
- Product ID: IncrediblePBX
- Product Type: Application with Alexa built-in
- Product Category: Communications
- Brief Product Description: Alexa for Incredible PBX
- User Interaction: Hands-free
- Distribute Commercially: NO
- Children’s Product: NO
In LWA Security Profile dialog, click CREATE NEW PROFILE. Fill in template. Then NEXT.
- Security Profile Name: IncrediblePBX
- Security Profile Description: Incredible PBX security profile
In the second LWA Security Profile dialog, copy your Security Profile ID, Client ID, and Client Secret to a text file so that you can use them in the following steps.
In the Allowed return URLs field, create two entries clicking ADD button after entering each:
- http://localhost
- https://actual-Incredible-PBX-IP-address:5000/code
Check the I Agree checkbox and then click FINISH.
Your Product should now appear as successfully configured in Alexa Voice Service overview.
Next, navigate to: https://developer.amazon.com/lwa/sp/overview.html.
Click Select a Security Profile and choose your IncrediblePBX profile. Click CONFIRM.
In the Consent Screen dialog, enter the following and then click SAVE.
- Consent Privacy Notice URL: http://dummyurl.com
- Consent Logo Image: leave blank
Verify your ClientID and Secret that you wrote down above.
Cut-and-paste the following as a single line of code into your favorite text editor. Or you can simply edit /root/Alexa-URL which contains the same code.
https://www.amazon.com/ap/oa?client_id=YOURCLIENTID&scope=alexa%3Aall&scope_data=%7B%22alexa%3Aall%22%3A%7B%22productID%22%3A%22IncrediblePBX%22,%22productInstanceAttributes%22%3A%7B%22deviceSerialNumber%22%3A%2212345%22%7D%7D%7D&response_type=code&redirect_uri=http%3A%2F%2Flocalhost
Replace YOURCLIENTID in the above code substituting your actual Alexa Client ID.
Next, select the entire block of code that now includes your actual Client ID and paste it into the Address URL of your favorite browser. You should be prompted for your Amazon user credentials. Once you sign in, click ALLOW. You then should see an Unable to Connect error message. This is fine. What we actually need is the Token which now is shown immediately after code= in the Address URL of your browser. Copy everything after code= up to the &.
http://localhost/?code=YOURTOKEN&scope=alexa%3Aall
With YOURTOKEN, Client ID, and Client Secret in hand, proceed to the next section.
4. Activating Alexa in Incredible PBX
Log into Incredible PBX as root and navigate to the /root directory. Make a copy of grant-token.sh in case you make a mistake. Now edit grant_token.sh. Replace YOURTOKEN with your actual Token. Replace YOURCLIENTID with your actual Alexa Client ID. Replace YOURCLIENTSECRET with your actual Alexa Client Secret. Save the file and then run the script: ./grant_token.sh
.
The script will return a JSON message that includes both an access_token and a refresh_token. It will be a very long single string that you should cut-and-paste and save for a rainy day. The string can be parsed in an editor so that it looks something like this:
Access tokens expire every hour, but this refresh token never expires. We’ll use the refresh token to generate a new access token whenever Alexa is run from an Asterisk extension. So cut-and-paste the very long refresh_token and save it with your Client ID and Client Secret.
Next, change to the /var/lib/asterisk/agi-bin directory and make a copy of token.pl in case you make a mistake. Then edit token.pl and scroll to the my $post line (line 16). Replace YOUR_REFRESH_TOKEN with the refresh_token from above. Replace YOUR_CLIENT_ID with your actual Client ID. And replace YOUR_CLIENT_SECRET with your Client Secret.
Save the file.
TIP: If you decide to install Alexa on more than one of your PBXs, the setup process only takes a couple minutes. Complete Step #1 as documented above. Then copy the my $post line from token.pl that includes your credentials and replace the my $post line of token.pl script in your second PBX. Done.
Now you’re ready to try things out. From the command line, issue the command: ./token.pl
List the results like this: cat /tmp/token.resp
There should be no errors and the results should look something like this:
IMPORTANT: Don’t forget this step or future queries from Asterisk will fail since our test generated files with root permissions only: rm -f /tmp/token*
Now we’re all set to use Alexa from your PBX. From an extension on your PBX, dial 5555. When prompted, say "What’s the weather for today?" After receiving the response from Alexa, you can either hang up or say another query.
We’ve documented some Alexa queries and skills in this thread on the VoIP-Info.org Forum.
If you have problems getting all the pieces to work, check over the steps again. You may also wish to consult the original documentation. Ignore references to differing file locations.
Republished: Tuesday, August 3, 2021
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.
Free IBM Voicemail Transcription with Incredible PBX 2020
There are many commercial voicemail transcription services for Asterisk® PBXs, but none hold a candle to the speech-to-text (STT) quality of the IBM Cloud offering known as Watson® STT, formerly known as Bluemix TTS. The pricing structure is second to none. On the Standard Pricing Plan, voicemail transcription is 2¢ per minute with no rounding of minutes. Or, for voicemail transcription in most households, choose the LITE plan which offers 500 minutes a month at no cost and with no per minute rounding. When the messages are delivered by email, you’ll get the voicemail recording in MP3 format AND transcribed text courtesy of Watson TTS. With the new IBM services, all you’ll need are your Watson STT API Key and the URL for access to Watson. With the new setup, your username is always apikey.
IBM Cloud’s STT solution is a real game-changer for one simple reason. Their STT API performs more accurately than any speech recognition engine in the world. As an added bonus, you won’t have to worry about Google breaking our middleware every month. It’s worth stressing that IBM doesn’t round up minutes unlike some competitors. So transcribing three 20-second messages counts as a single minute of usage.
https://youtu.be/JWnLgZ58zsw
Overview. What we’ve done today is integrate the Watson STT API directly into Incredible PBX 2020 voicemail systems. We started with Nicolas Bernaerts’ terrific sendmailmp3 script and revised it a bit to support Watson STT. If you have deployed Incredible PBX 2020, then the setup only takes a couple of minutes.
What About the Quality? Here’s the bottom line. Speech recognition isn’t all that useful if it fails miserably in recognizing everyday speech. The good news is that IBM Watson’s speech recognition engine is now the best in the business. If you want more details, read the article below which will walk you through IBM’s latest speech recognition breakthrough:
Why IBM's speech recognition breakthrough matters for AI and IoT. Via @techrepublic https://t.co/AJi8MA3E20
— IBM Developer (@IBMDeveloper) March 15, 2017
Configuring SMTP for Outgoing Mail Delivery
Regardless of your PBX platform, you obviously need outgoing SMTP email working reliably in order to send voicemail messages to your local email address.
Start by sending yourself a test email and get that working first:
echo "test" | mail -s testmessage yourname@your-email-domain.com
If you never receive the email, edit /etc/hosts and insert noreply.incrediblepbx.com just before the localhost entry. Then edit /etc/hostname and insert noreply.incrediblepbx.com as the only entry. Finally, issue the command: hostname noreply.incrediblepbx.com
. Now send another test email. If you still don’t receive the email, chances are very good that your hosting provider is blocking SMTP messages from downstream servers. Either the Incredible PBX 2020 tutorial for CentOS 7 or the Raspberry Pi will walk you through the setup process to use Gmail as an SMTP Relay. Then send yourself another test email.
Obtaining IBM Cloud Speech to Text Credentials
Follow this link to set up your IBM account and obtain credentials for both Speech to Text (STT) and Text to Speech (TTS) services. Please note that your STT and TTS API keys will NOT be the same. So don’t accidentally use the wrong one.
Configuring Watson STT Voicemail Transcription
1. Log into your Linux CLI as root.
2. Navigate to /usr/local/sbin.
3. cp -p sendmailmp3.ibm sendmailmp3
4. Edit sendmailmp3 and insert your STT API Key on line 21. Verify URL for your region.
5. Edit watson-test and insert your STT API Key on line 3. Verify URL for your region.
6. Test your Watson STT setup: ./watson-test
HINT: Verify you’ve used correct region URL and STT API key, not your TTS API key!
7. With valid credentials, result should be: we don’t have tech support
8. Set up voicemail for an Incredible PBX extension with your email address.
9. Place a test call to the extension and record a voicemail when prompted.
10. Your message will be transcribed and delivered via email.
Originally published: Monday, March 25, 2020
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.
Return of Free Voicemail Transcription & Voice Dialing
It’s been a bumpy road for Speech-to-Text solutions with Asterisk® since Google pulled the rug out from under their (formerly) free offering. We found a partial solution with IBM’s offering which now provides 500 free minutes a month on their LITE plan, or you can choose their Standard Pricing Plan and pay 2¢ a minute for all you can eat. Be advised that the IBM offerings have changed three times in the last year. But we’ve been searching for turnkey voicemail transcription and voice dialer offerings that could be incorporated into Incredible PBX 2020 at no cost. And now we’ve found one thanks to Mozilla Machine Learning Group’s DeepSpeech project. Details here. We also want to thank @Stepan Novotill and @jerrm on the PIAF Forum for their work in bringing this project to fruition for the Asterisk community.
The instructions which follow should work fine with existing Incredible PBX 2020, Incredible PBX 16-15, and Incredible PBX 13-13 platforms running on CentOS 7. We haven’t tested on other platforms, but @jerrm has offered some tips for those using Debian/Raspbian.
Deploying Voicemail Transcription with DeepSpeech
Log into your server as root and issue these commands to install DeepSpeech components:
(NOTE: Lines 4, 5, and 6 below are actually part of a single line of code)
cd /usr/local/sbin yum -y install python3-pip wget pip3 install deepspeech wget -O - https://github.com/mozilla/DeepSpeech/releases/download/v0.6.1/deepspeech-0.6.1-models.tar.gz | tar xzv --no-same-owner chown -R asterisk:asterisk deepspeech-0.6.1-models wget http://incrediblepbx.com/sendmail-deepspeech.tar.gz tar zxvf sendmail-deepspeech.tar.gz rm -f sendmail-deepspeech.tar.gz cp -p sendmailmp3.deepspeech sendmailmp3
In the FreePBX GUI, edit your extensions and enable voicemail with settings like these:
For delivery of transcribed voicemail messages to arrive in your email, you obviously must have outbound email working on your PBX. You can test this using the following command with your actual email address:
echo "test" | mail -s testmessage yourname@gmail.com
If the email never arrives, first check your spam folder. If it’s not there, then chances are you have not configured an FQDN for your PBX properly. Try the following tips.
hostname noreply.incrediblepbx.com nano -w /etc/hosts
Make certain the 127.0.0.1 line in /etc/hosts begins like this:
127.0.0.1 noreply.incrediblepbx.com pbx.local
Deploying a Free Voice Dialer with DeepSpeech
Once you complete the steps above, it’s easy to deploy a free Voice Dialer for Asterisk on any Incredible PBX platform. This allows you to pick up a phone connected to your PBX, dial 411, and call any individual or company listed in your AsteriDex database by saying their name.
Issue the following commands to replace the default Incredible PBX Voice Dialer setup:
(NOTE: Lines 6 and 7 below are actually part of a single line of code)
cd /usr/local/sbin mv deepspeech-411.txt /var/lib/asterisk/agi-bin mv getnumber2.sh /var/lib/asterisk/agi-bin cd /etc/asterisk sed -i '\:// BEGIN Call by Name:,\:// END Call by Name:d' extensions_custom.conf sed -i '/\[from-internal-custom\]/r /var/lib/asterisk/agi-bin/deepspeech-411.txt' extensions_custom.conf asterisk -rx "dialplan reload"
Now pick up a phone on your PBX and dial 411. When prompted, say "American Airlines" and then press the pound (#) key. You’ll be connected to American Airlines reservations. Enjoy!
Originally published: Monday, January 20, 2020
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.
Going Public with Incredible PBX 16 and VitalPBX 2.3.8
As part of our ongoing development efforts, we maintain about a dozen honeypot servers across the U.S. and Canada to monitor the latest adventures of the bad guys. Security becomes especially important for those wishing to live on the bleeding edge and deploy a cloud-based, public-facing VoIP server. Today we want to walk you through our latest suggestions to set up and secure a VitalPBX platform using just the built-in FirewallD, IPset, and Fail2Ban components. If you opt to deploy VitalPBX in the Cloud, a KVM-based VPS is absolutely essential in order to take advantage of the security mechanisms we will introduce today.
Here are 6 Key Security Features in today’s public design:
- SIP Registration Lockdown by FQDN
- Extension Lockdown by IP Address
- Trunk Provider Lockdown by IP Address
- Web Access Lockdown by WhiteList
- Disguised Ports for SIP and SSH Access
- 100,000+ VOIP Blacklist for FirewallD
Is it 100% safe? Nothing ever is. That’s what backups are for. 😉
FYI: The CentOS folks reintroduced a previous FirewallD bug on October 22 which (again) broke new VitalPBX installs. On October 23, the VitalPBX developers fixed the bug (again). There should be no problems with new installs. For previous installs, see this thread on the PIAF Forum for the fix.
Taking Incredible PBX with VitalPBX to the Cloud
Because Incredible PBX with VitalPBX 2.3.8 was originally distributed as an ISO, getting it installed in the cloud was a challenge. A few cloud providers let you bring your own ISO to install on their VPS platforms, but it was still a tedious process. So today we’re pleased to introduce a new install script that can be run on any CentOS 7 platform.
We have a few cloud providers that we recommend without reservation. Both Vultr and Digital Ocean provide referral credits to Nerd Vittles to support our VoIP project development efforts. We’ve used both of them for many years with no problems. Either of the platforms works well using the $5 a month option in your choice of cities. Just be sure to choose the CentOS 7 platform, not CentOS 8. For an extra buck, you can add automatic backups.
Our favorite bargain is now CrownCloud in Los Angeles. For $25 a year, they offer a KVM VPS that is ideal as a VoIP platform. And the offering includes a free snapshot image as well. As you might imagine, it’s very popular and goes Out of Stock from time to time so check back often. For our international friends, CrownCloud offers similar platforms at the same price point in both Germany and the Netherlands.
Installing Incredible PBX with VitalPBX on CentOS 7
Once your CentOS 7 platform is up and running, here’s how to install Incredible PBX for VitalPBX. Log into your server as root using SSH or Putty. Then issue these commands:
cd /root passwd yum -y install net-tools wget nano tar wget http://incrediblepbx.com/incrediblepbx.sh chmod +x incrediblepbx.sh ./incrediblepbx.sh
Incredible PBX Cloud Setup Recipe for VitalPBX
We think the easiest way to configure your new VitalPBX platform is to follow the simple steps outlined below. This will avoid your having to jump back and forth between tutorials to get all the pieces in place. When you’re finished, you’ll have a secure VitalPBX cloud platform. Don’t be intimidated by the number of steps. If you can handle slice-and-bake cookies, you can do this!
1. Point your browser to the IP address of your server. You’ll be prompted to set a password for admin access to the GUI. Fill in the blanks to proceed. Should you ever forget your admin password, here’s how as root user to force a reset on your next login from a browser:
mysql ombutel -e 'update ombu_settings set value = "yes" where name = "reset_pwd"'
2. Register your server when prompted. The VitalPBX Dashboard will appear.
3. Decipher the public IP address of your desktop machine and any other PCs that will be used to manage your server.
4. From the VitalPBX Dashboard, navigate to Admin:Security:Firewall:WhiteList. Enter each of your IP addresses from step #3 and click Save button.
5. From the VitalPBX Dashboard, navigate to Admin:Security:Intrusion Detection:WhiteList. Enter each of your IP addresses from step #3 and click Save button.
6. Modify the default SSH port by logging in to your server as root and issuing the following commands using the year you were born in the first line replacing 2000:
sed -i 's|#Port 22|Port 2000|' /etc/ssh/sshd_config systemctl restart sshd
7. From the VitalPBX Dashboard, navigate to Admin:Security:Firewall:Services. Change the SIP port to 5080 or some other port number not in the 5060-5065 range. Change the SSH port to a 4-digit number matching the year you were born. Click Save button. Monitor your SSH log for attempted breaches and change your port if necessary:
cat /var/log/secure | grep password
8. Verify that you can log back into your server with SSH using the new SSH port number you assigned in step #6: ssh -p 2000 root@server-IP-address
9. From the VitalPBX Dashboard, navigate to Admin:Security:Firewall:Rules. Delete the HTTP and HTTPS items by clicking the Trash icon beside each entry. In the GENERAL tab, set Block ICMP Requests to YES. Click Save button. This blocks web access to everyone except those you’ve whitelisted in step #4 above. If you ever lock yourself out of web access, login to your server as shown in step #8 and temporarily whitelist the public IP address desired. This gets removed automatically the next time you save your Firewall settings from within the VitalPBX GUI.
iptables -A vpbx_white_list -s 12.34.56.78 -j ACCEPT
10. Before we get too far along, let’s put another layer of security in place for your new server. We’re going to add the VoIP Blacklist which blocks about 100,000 bad guys from around the globe. We’ll also add a cron job to update the blacklist every night. Log back into your server as root and issue these commands to put the pieces in place and enable the VoIP Blacklist.
TIP: The cron job below is scheduled to run at 20 minutes after 3 a.m. Change the time to something else so we don’t all bombard the VoIP Blacklist site for downloads at exactly the same time every night.
cd /etc wget http://incrediblepbx.com/voipbl-firewalld.tar.gz tar zxvf voipbl-firewalld.tar.gz rm -f voipbl-firewalld.tar.gz echo "20 3 * * * root /etc/update-voipbl.sh >/dev/null 2>&1" >> /etc/crontab /etc/update-voipbl.sh
11. From the VitalPBX Dashboard, navigate to Admin:Add-Ons:Add-Ons. Click Check Online button. Click Install button beside Custom Contexts. Click Install button beside Phonebooks. Click Install button beside Domotic.
12. From the VitalPBX Dashboard, navigate to Settings:Tech Settings:SIP Settings.
a. In the GENERAL tab, set the Bind Address port to 5080 or whatever port you chose in step #7 above. This is the port number together with the FQDN of your PBX (set in the next step) that any SIP phone will need to successfully register to an extension.
b. In the SECURITY tab, set Allow Guest to NO, set Auto-Domain to NO, set Allow External Domains to NO, and enter a fully-qualified domain name (FQDN) pointing to the IP address of your server in the Domain field. We cannot stress enough how important this FQDN is to the security of your cloud-based server. It limits SIP registrations to this FQDN only, and all SIP registration attempts by IP address are automatically blocked. Don’t skip this step!
c. In the NETWORK tab, enter the IP address of your server in External Address. Click the ADD button in the Local Networks section and enter the private IP addresses associated with your LAN and VPN, e.g. 192.168.0.0/255.255.0.0 and 10.0.0.0/255.240.0.0. Change NAT to Force,Comedia if your server is behind a NAT-based router.
d. In the CODECS tab, enable ULAW, ALAW, G722, and G729.
e. In the OTHERS tab, set SRV LOOKUPS to Yes. Click SAVE button.
13. From the VitalPBX Dashboard, navigate to Settings:Tech Settings:Profiles. Click Show All Profiles bar and choose Default PJSIP Profile. In the GENERAL tab, set the following entries to YES: Force rport, Rewrite Contact, Direct Media, RTP Symmetric, and Send Diversion Header. Click UPDATE button.
14. From the VitalPBX Dashboard, navigate to PBX:Applications:Parking. Click Show All Parking Profiles bar and choose Default. Change Code from 700 to 7000 and click Update button. This changes your Parking Lot extensions to the 7000 range so that 700 range can be used for Extensions, just like other versions of Incredible PBX.
15. Log out of your Dashboard and then log back in so that the menus get refreshed with the Custom Contexts addition.
16. From the VitalPBX Dashboard, navigate to PBX:Applications:Custom Contexts. Create the new sample IVR context with the following entries. Then click Save button.
- Description: IncrediblePBX
- Context: incrediblepbx
- Extension: s
- Priority: 1
- Destination: Terminate Call -> Hangup
17. From the VitalPBX Dashboard, navigate to PBX:Applications:Custom Applications. Create the custom application for the sample IVR and Save it.
- Code: 3366
- Name: DEMO
- Enabled: YES
- Destination: Custom Contexts -> IncrediblePBX
18. From the VitalPBX Dashboard, navigate to PBX:Applications:Conferences. Create the new sample conference application and Save it.
- Code: 2663
- Description: CONF
- Music on Hold When Empty: YES
- User Count: YES
- Announce Join/Leave: YES
- Announce Only User: YES
- User PIN: 1234
- Leader PIN: 4321
- Drop Silence: YES
19. If you didn’t read last week’s article on Custom Contexts, now would be a good time to do so. Here are the commands to put all those pieces in place on your new cloud-based server:
cd / yum -y install dialog wget nano tar mailx cp -p /etc/crontab /etc/crontab.bak wget http://incrediblepbx.com/incrediblepbx-vitalpbx.tar.gz tar zxvf incrediblepbx-vitalpbx.tar.gz rm -f incrediblepbx-vitalpbx.tar.gz chown asterisk:asterisk /var/lib/asterisk cd /etc/asterisk/ombutel echo "[cos-all-custom](+)" >> extensions__80-custom.conf echo "exten => 412,1,NoOp(Voice Dialer)" >> extensions__80-custom.conf echo " same => n,Answer" >> extensions__80-custom.conf echo " same => n,Goto(incrediblepbx,1,1)" >> extensions__80-custom.conf echo " same => n,Hangup()" >> extensions__80-custom.conf echo "" >> extensions__80-custom.conf echo "exten => 951,1,NoOp(News)" >> extensions__80-custom.conf echo " same => n,Answer" >> extensions__80-custom.conf echo " same => n,Goto(incrediblepbx,5,1)" >> extensions__80-custom.conf echo " same => n,Hangup()" >> extensions__80-custom.conf echo "" >> extensions__80-custom.conf echo "exten => 947,1,NoOp(Weather by ZIP)" >> extensions__80-custom.conf echo " same => n,Answer" >> extensions__80-custom.conf echo " same => n,Goto(incrediblepbx,6,1)" >> extensions__80-custom.conf echo " same => n,Hangup()" >> extensions__80-custom.conf echo "" >> extensions__80-custom.conf echo "exten => 3172,1,NoOp(DISA Voice Dialer)" >> extensions__80-custom.conf echo " same => n,Answer" >> extensions__80-custom.conf echo " same => n,Goto(incrediblepbx,9,1)" >> extensions__80-custom.conf echo " same => n,Hangup()" >> extensions__80-custom.conf echo "" >> extensions__80-custom.conf echo "exten => 4747,1,NoOp(Wolfram Alpha)" >> extensions__80-custom.conf echo " same => n,Answer" >> extensions__80-custom.conf echo " same => n,Goto(incrediblepbx,3,1)" >> extensions__80-custom.conf echo " same => n,Hangup()" >> extensions__80-custom.conf echo "" >> extensions__80-custom.conf echo "exten => 8463,1,NoOp(Time of Day)" >> extensions__80-custom.conf echo " same => n,Answer" >> extensions__80-custom.conf echo " same => n,Goto(incrediblepbx,*,1)" >> extensions__80-custom.conf echo " same => n,Hangup()" >> extensions__80-custom.conf echo "" >> extensions__80-custom.conf echo "exten => 53669,1,NoOp(Lenny)" >> extensions__80-custom.conf echo " same => n,Answer" >> extensions__80-custom.conf echo " same => n,Goto(incrediblepbx,53669,1)" >> extensions__80-custom.conf echo " same => n,Hangup()" >> extensions__80-custom.conf echo "" >> extensions__80-custom.conf echo "exten => 86329,1,NoOp(Today in History)" >> extensions__80-custom.conf echo " same => n,Answer" >> extensions__80-custom.conf echo " same => n,Goto(incrediblepbx,7,1)" >> extensions__80-custom.conf echo " same => n,Hangup()" >> extensions__80-custom.conf echo "" >> extensions__80-custom.conf systemctl restart asterisk chown asterisk:asterisk /var/lib/asterisk chown asterisk:apache /var/lib/asterisk/agi-bin
20. Create new Extensions for your PBX by navigating to PBX:Extensions:Extensions. You only need to fill in the Extension, Name, and Email Address fields. We recommend extension numbers beginning with 701. If the extension will be used from a phone behind a NAT-based router, change the NAT entry to Force,Comedia. If the phone associated with the extension has a static IP address, enter it in the Permit field for an extra layer of security. In the VOICEMAIL tab, you will note that voicemail is enabled by default with a password matching the extension number. This forces the user to set the voicemail password the first time they access voicemail with their phone. We recommend the YES setting for Attach Voicemail, Ask Password, Say CID, Say Duration, and Envelope. Then press SAVE.
21. Once you have created your extensions, you can create Ring Groups to assign multiple extensions and external numbers to a designated number which will ring all of the extensions and external numbers in the ring group either simultaneously or serially. Navigate to PBX:Call Center:Ring Groups to set this up.
22. Trunk Setup. While we don’t recommend it, if you just want to play around with some toll-free calls using option 1 in the DEMO IVR to see how everything works, here’s a simple trunk setup to get you started. First, navigate to Settings:Telephony:Channel Groups and save a group named Default with no entries. Then navigate to PBX:External:Trunks:CUSTOM. Create TollFree trunk with this Dial String: SIP/1${EXTEN}@ovh.starcompartners.com. No other entries are required. Click SAVE and reload your dialplan. Finally, create an Outbound Route for these calls in PBX:External:Outbound Routes like this:
- Description: TollFree
- Trunks: TollFree
- Dial Pattern: Pattern=NXXNXXXXXX
Save your settings and reload the dialplan. You now can skip down to step #25. NOTE: You will not be able to receive outside calls or make calls to numbers other than toll-free ones.
Our preference is that you use our Platinum Provider, Skyetel, for your default trunk and DID because they offer quadruple redundancy so you never miss a call. Sign up for Skyetel service and take advantage of the Nerd Vittles specials which include a $10 credit to kick the tires. First, complete the Prequalification Form here. You then will be provided a link to the Skyetel site to complete your registration. Once you have registered on the Skyetel site and your account has been activated, open a support ticket and request the $10 credit for your account by referencing the Nerd Vittles special offer. Once you are satisfied with the service, fund your account as desired, and Skyetel will match your deposit of up to $250 simply by opening another ticket. That gets you up to $500 of half-price calling. You can also port in your DIDs at no cost for 60 days after funding your account. Credit is limited to one per person/company/address/location. Effective 10/1/2023, $25/month minimum spend required.
We don’t recommend trunk registrations with a publicly exposed server because it creates a potential attack vector for intruders and any intrusion would be undetectable from the PBX since the attacker could make unauthorized calls after registering directly with your SIP provider. For this reason, Skyetel does not use SIP registrations to make connections to your PBX. Instead, Skyetel utilizes Endpoint Groups to identify which servers can communicate with the Skyetel service. An Endpoint Group consists of a Name, an IP address, a UDP or TCP port for the connection, and a numerical Priority for the group. For incoming calls destined to your PBX, DIDs are associated with an Endpoint Group to route the calls to your PBX. For outgoing calls from your PBX, a matching Endpoint Group is required to authorize outbound calls through the Skyetel network. Thus, the first step in configuring the Skyetel side for use with your PBX is to set up an Endpoint Group. Here’s a typical setup for Incredible PBX 16 for VitalPBX:
- Name: IncrediblePBX
- Priority: 1
- IP Address: IncrediblePBX-Public-IP-Address
- Port: 5062
- Protocol: UDP
- Description: my.incrediblepbx.com
To receive incoming PSTN calls, you’ll need at least one DID. On the Skyetel site, you acquire DIDs under the Phone Numbers tab. You have the option of Porting in Existing Numbers (free for the first 60 days after you sign up for service and fund your account) or purchasing new ones under the Buy Phone Numbers menu option.
Once you have acquired one or more DIDs, navigate to the Local Numbers or Toll Free Numbers tab and specify the desired SIP Format and Endpoint Group for each DID. Add SMS/MMS and E911 support, if desired. Call Forwarding and Failover are also supported. That completes the VoIP setup on the Skyetel side. System Status is always available here.
If you’d like additional details on why we recommend Skyetel, see this Nerd Vittles article.
On the VitalPBX side, we need to add a new Skyetel trunk. Navigate to PBX:External:Trunks:PJSIP. The VitalPBX Trunk setup should look like the following for Skyetel. If you’d like to cut-and-paste the entries for the Match field, here you go:
52.41.52.34,52.8.201.128,52.60.138.31,50.17.48.216,35.156.192.164
[popup url="https://pbs.twimg.com/media/EGDhgsXWsAIbmw1?format=jpg&name=medium" width="1200″ height="700″][/popup]
In Admin:Security:Firewall:WHITELIST, you’ll need to individually Add the five Skyetel IP addresses used in the Match field above and then SAVE your firewall settings.
Finally in PBX:Incoming Calls:CID Modifiers, add a new entry for Skyetel with Skip/Length = 2/10 and Save your settings.
23. Before your PBX can receive calls, you’ll need at least one Inbound Route. This tells the PBX how to route calls from one or more phone numbers (DIDs) that you own to a destination on your PBX, e.g. an extension, a ring group, an IVR, or custom context. Navigate to PBX:External:Inbound Routes to get started. Let’s set up a default inbound route for all the DIDs you have acquired from Skyetel in step #22. Fill in the fields shown below. Then SAVE.
- Routing Method: Default
- Description: Default Skyetel
- DID Pattern: [leave blank for ALL DIDs]
- CallerID Modifier: Skyetel
- Inbound Destination: Custom Contexts -> IncrediblePBX
24. Before you can make outbound calls from extensions on your PBX, you’ll need at least one Outbound Route. This tells the PBX which provider to use to complete calls dialed with a certain sequence of numbers. For example, you probably would want 10-digit numbers routed to Skyetel. And, if users dial 1 and then a 10-digit number, you’d probably want those calls routed to Skyetel as well. To create this outbound route, navigate to PBX:External:Outbound Routes. Fill in the fields shown below. Click ADD to add a second Dial Pattern. Click SAVE and Reload Dialplan when finished.
NOTE: While you can "spoof" any CallerID number here, it is only legal to assign CallerID numbers that you actually own. Most carriers do not forward CallerID names to destinations regardless of what you enter here. The CallerID name and number will be shown in your CDR logs: Reports:CDR Reports:CDR.
- Description: Skyetel-OUT
- Trunks: Skyetel
- Outbound CID: [Your Name and CallerID Number]
- Overwrite CID: YES
- Dial Pattern: Prepend=1 Pattern=NXXNXXXXXX
- Dial Pattern: Pattern=1NXXNXXXXXX
25. For the time being, we strongly recommend disabling IPv6 simply because we don’t have the necessary confidence that all of the security mechanisms are in place for IPv6. Here’s how on the CentOS 7 platform:
echo "net.ipv6.conf.all.disable_ipv6 = 1" >> /etc/sysctl.conf echo "net.ipv6.conf.default.disable_ipv6 = 1" >> /etc/sysctl.conf sysctl -p sed -i 's|#AddressFamily any|AddressFamily inet|' /etc/ssh/sshd_config systemctl restart sshd sed -i 's|inet_protocols = all|inet_protocols = ipv4|' /etc/postfix/main.cf systemctl restart postfix
26. Outbound email functionality is essential on your PBX. You’ll need it to be alerted to potential issues with VitalPBX, and you’ll need it for delivery of voicemail messages to users. There are a couple ways to implement it, and both are easy. If you want to use the native capabilities of Postfix to send the emails assuming your provider is not blocking outbound SMTP mail from downstream servers, then follow these steps:
- Insert your FQDN from step #12b into /etc/hosts immediately after 127.0.0.1
- Replace the contents of /etc/hostname with the same FQDN
- Issue the following command using your actual FQDN: hostname FQDN
- Sending yourself an email: echo "test" | mail -s test you@your-domain.com
If you don’t receive the test email message, then the easiest solution is to configure PostFix as an SMTP Relay using a Gmail account. You can do this easily from within the VitalPBX GUI. Navigate to Admin:System Settings:Email Settings and click the External Mail Server tab. Be sure that Gmail is selected and enter your Gmail name and password in the fields provided. Save your settings and send yourself an email using the field provided.
27. Once you get outbound email flowing, jump down to the next section and obtain IBM TTS and STT passwords. Now set up Voicemail Transcription with Email Message Delivery:
a. After logging into your VitalPBX server as root using SSH/Putty:
cd /tmp mkdir sendmail cd sendmail wget http://incrediblepbx.com/sendmailibm-vitalpbx.tar.gz tar zxvf sendmailibm-vitalpbx.tar.gz rm -f sendmailibm-vitalpbx.tar.gz mv usr/sbin/sendmailibm /usr/sbin cd /etc/asterisk/ombutel echo "[general](+)" > voicemail__60-1-transcript.conf echo "; format=wav|wav49|gsm" >> voicemail__60-1-transcript.conf echo "mailcmd=/usr/sbin/sendmailibm" >> voicemail__60-1-transcript.conf chown apache:apache voicemail__60-1-transcript.conf rm -rf /tmp/sendmail
b. Restart Asterisk core services: asterisk -rx "core reload"
c. Edit /usr/sbin/sendmailibm and insert your IBM Watson STT APIkey on line 23. Change the language on line 31 if you don’t want en-US. Then save the file.
d. Log back into the VitalPBX GUI and configure the extensions desired for email delivery of voicemail. For each extension in PBX:Extensions:General, enter an Email Address for delivery of voicemails. In PBX:Extensions:Voicemail, verify the VM settings from step #20.
28. We hesitate to even mention (free) Festival TTS as a text-to-speech alternative because it is so bad compared to IBM TTS. But for those that like always free, here’s how to install it. Once installed, you can issue Festival commands in your dialplan using the keyword Festival followed by the text to be spoken in parentheses.
yum -y install festival echo "[general]" > /etc/asterisk/festival.conf asterisk -rx "dialplan reload" festival_server & systemctl restart asterisk echo "/usr/bin/festival_server &" >> /etc/rc.d/rc.local
29. If you’d like to test the performance of your cloud-based server, here’s how to deploy and run SpeedTest:
cd /root wget -O speedtest-cli https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py chmod +x speedtest-cli /root/speedtest-cli
30. Associating CallerID Names (CNAM) with inbound calls for display on SIP phones and in the CDR logs is an often-requested PBX feature. There are a few ways to do it. First, for less than a penny a call, you can activate the feature with your DIDs in the Skyetel Dashboard. Or, for about half the cost, you can acquire an OpenCNAM account and activate it in VitalPBX by navigating to PBX:Incoming Calls:CID Lookup. Choose OpenCNAM as the Source and enter your credentials. Then SAVE your settings and reload the dialplan. Then, for each of your Inbound Routes, add OpenCNAM as the CID Lookup source and Update your configuration.
31. Unless you want a full-time job monitoring the size of your logs, remove the fail2ban Asterisk log which grows every 5 seconds. Navigate to Settings:PBX Settings:Log Files and click the Trash icon beside fail2ban. It’s probably a good idea to turn OFF the Notice option for the full log while you’re at it. Then SAVE your changes.
32. Before you do anything else, navigate to Admin:Admin:Backup & Restore, configure and run a Full Backup, and then download the file and keep it in a safe place. Be advised that Backup/Restore doesn’t restore Add-Ons, /var/lib/asterisk/agi-bin, custom contexts (extensions__80*.conf) in /etc/asterisk/ombutel, custom MySQL databases (mysqldump -u root yourDB > yourDB.sql), custom and lenny sound directories in /var/lib/asterisk/sounds, phpMyAdmin, /usr/local/sbin, and /etc/crontab.
Obtaining IBM Watson TTS and STT Credentials
Incredible PBX uses IBM Watson® for TTS and STT support. This Nerd Vittles tutorial will walk you through getting your IBM account set up and obtaining both your TTS and STT credentials. Be sure to write down BOTH sets of credentials which you’ll need in a minute. For home and SOHO use, IBM access and services generally is FREE even though you must provide a credit card when signing up. Details are provided when you sign up. If you ever forget your passwords, you can retrieve them by navigating to Resource List:Services:TTS or STT:View Full Details:Show Credentials.
Obtaining Wolfram Alpha Credentials
When people ask what exactly Wolfram Alpha is, our favorite answer was provided by Ed Borasky.
It’s an almanac driven by a supercomputer.
That’s an understatement. It’s a bit like calling Google Search a topic index. Unlike Google which provides links to web sites that can provide answers to queries, Wolfram Alpha provides specific and detailed answers to almost any question. Here are a few examples (with descriptions of the functionality) to help you wrap your head around the breadth of information. For a complete list of what’s available, visit Wolfram Alpha’s Examples by Topic. Type a sample query here. Some of our favorites include:
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 flying overhead now? (flying over your server’s location)
Ham and cheese sandwich (nutritional information)
Holidays 2012 (summary of all holidays for 2012 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 2012 (date ranges and how to set your clocks)
Tablets by Motorola (pricing, models, and specs from Best Buy)
Doughnut (you don’t wanna know)
Snickers bar (ditto)
Weather (local weather at your server’s location)
Before you can actually use our TTS implementation of Wolfram Alpha, you’ll need to obtain a free Wolfram Alpha account. As you can imagine, there have to be some rules when you’re using someone else’s supercomputer for free. So here’s the deal. It’s free for non-commercial, personal use once you sign up for an account. But you’re limited to 2,000 queries a month which works out to almost 70 queries a day. Every query requires your personal application ID, and that’s how Wolfram Alpha keeps track of your queries. Considering the price, we think you’ll find the query limitation generous compared to other web resources.
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.
Configuring Your Incredible PBX Credentials
In addition to your Wolfram Alpha APPID, there are two sets of IBM credentials to plug into the Asterisk AGI scripts. Keep in mind that there are different passwords for the IBM Watson TTS and STT services. The TTS credentials will look like the following: $IBM_password. The STT credentials look like this: $API_PASSWORD. Don’t mix them up. The username for both TTS and STT is now the single word: apikey
All of the scripts requiring credentials are located in /var/lib/asterisk/agi-bin so switch to that directory after logging into your server as root. Edit each of the following files and insert your TTS credentials in the variables already provided: nv-today2.php, ibmtts.php, and ibmtts2.php. Edit each of the following files and insert your STT credentials in the variables already provided: getquery.sh, getnumber.sh, and getnumber2.sh. Finally, edit 4747 and insert your Wolfram Alpha APPID.
If you ever want to learn how to develop applications for Asterisk, these scripts coupled with the dialplan code included in /etc/asterisk/ombutel/extensions__80-1-incrediblepbx.conf will point you in the right direction with easy to follow examples.
Managing the AsteriDex SQLite3 Database
We’ve alluded to the AsteriDex database in a couple of VitalPBX articles but never mentioned how to access it. Using a browser, point it to http://server-ip/asteridex4
. You can add, edit, display, and delete entries from there. Before you can make changes in the database, issue the following command after logging into your server as root:
chown asterisk:apache /var/lib/asterisk/agi-bin
Taking Incredible PBX for a Test Drive
You can take Incredible PBX for VitalPBX on a test drive in two ways. You can call our server, and then you can try things out on your own server and compare the results. Call our IVR by dialing 1-843-606-0555. For our international friends, you can use the following SIP URI for a free call: 10159591015959@atlanta.voip.ms. For tips on setting up your own secure, hybrid SIP URI with VitalPBX, see our original tutorial. The FreePBX® setup is virtually identical except for the location of the custom SIP setting for match_auth_username=yes. On a VitalPBX server, you will enter it here: Settings:Technology Settings:SIP Settings:CUSTOM.
With Allison’s Demo IVR, you can choose from the following options:
- 0. Chat with Operator — connects to extension 701
- 1. AsteriDex Voice Dialer (412) – say "Delta Airlines" or "American Airlines" to connect
- 2. Conferencing (2663) – log in using 1234 as the conference PIN
- 3. Wolfram Alpha Almanac (4747) – say "What planes are flying overhead now?"
- 4. Lenny (53669) – The Telemarketer’s Worst Nightmare
- 5. Today’s News Headlines (951) — courtesy of Yahoo! News
- 6. Weather by ZIP Code (947) – enter any 5-digit ZIP code for today’s weather
- 7. Today in History (86329) — courtesy of OnThisDay.com
- 8. Call Extension 701 — on your local PBX
- 9. DISA Voice Dialer (3172) — say any 10-digit number to be connected
- *. Current TIME and Date (8463) — courtesy of VitalPBX
CAUTION: We have intentionally disabled outbound calls using Option #9 and redirected callers to Lenny. The reason is that an unscrupulous caller could easily run up your phone bill by entering a number with expensive destination charges. If you wish to enable the feature, despite the risks, you can edit extensions__80-1-incrediblepbx.conf and make the change.
You can call your own IVR in a few ways. From an internal VitalPBX phone, dial D-E-M-O (2663) to be connected. Or simply dial the number of the DID you routed to the Incredible PBX Custom Context. Local users can also dial the individual feature codes shown in parentheses above. Be sure that you heed AND test the CAUTION documented above.
Originally published: Monday, October 21, 2019
Got Friends? 7 Countries Have Never Visited Nerd Vittles. 2018 Is Calling! https://t.co/wMfmlhAr16 #asterisk #freepbx #wazo #issabel #IncrediblePBX #3CX pic.twitter.com/kAmAEnwVIw
— Ward Mundy (@NerdUno) January 9, 2018
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.