Home » Incredible PBX (Page 6)

Category Archives: Incredible PBX

The Most Versatile VoIP Provider: FREE PORTING

Today in History Returns to Incredible PBX with gTTS



If you’re a history buff and want a convenient way to find out everything that ever happened Today in History, then this week’s upgraded text to speech (TTS) application for Asterisk® should be just what you need. Pick up any phone connected to your Asterisk system and dial T-O-D-A-Y (86329 for the spelling-impaired). The script will retrieve today’s historical events of interest from HistoryOrb.com and play the results back to you over the phone using last week’s gTTS engine update. To speed up the retrieval process, you can also set this up as a cron job to download the latest events each day while you’re sleeping. Thereafter, when you dial T-O-D-A-Y, the results are played back instantaneously.

Prerequisites. If you’re using Incredible PBX®, then all of the tools you’ll need are already in place with the exception of gTTS. So start there if you have not previously installed gTTS. Then return here and download the script that installs Today in History 3.0 in a few seconds.

Overview. If you’ve previously installed other Nerd Vittles text to speech applications, then the drill this time around is quite similar. There’s a new PHP/AGI script which gets updated in /var/lib/asterisk/agi-bin. This new script (nv-today.php) uses the new gTTS engine. If you want to compare the quality of the old Flite TTS engine, then begin by dialing 86329 now from a phone connected to Incredible PBX. The dialplan snippet is already in place.

How It Works. The PHP/AGI script only does real work once a day. It always checks to see if there is an existing /tmp/today.txt file with today’s file stamp. If there is, it exits gracefully. If today’s file doesn’t exist or if the file’s time stamp is earlier than midnight, then the script downloads the latest information for today in history and creates a text file of the data. Then the gTTS engine is used to convert the text file into /tmp/today.wav. The dial plan code answers calls to extension 86329. Then it runs the PHP/AGI script, and finally it plays back /tmp/today.wav. Note: The PHP/AGI script, if run as a cron job or from the command prompt, should never be run as the root user, but only as the asterisk user. Otherwise, the today.txt and today.wav files cannot be replaced by the script when it subsequently is run.

Script Installation. Log into your Incredible PBX server as root and issue the following commands:

cd /var/lib/asterisk/agi-bin
wget http://incrediblepbx.com/today3.tar.gz
tar zxvf today3.tar.gz
rm -f today3.tar.gz

Automatic Updates Using crontab. If you’d like to automatically generate the Today in History files each day, add the following entry to the bottom of /etc/crontab:

01 0 * * * asterisk /var/lib/asterisk/agi-bin/nv-today.php

Running the Application. Now you’re ready for a test run. Pick up any phone connected to your Asterisk system and dial T-O-D-A-Y. After a brief pause to download the data, today’s events in history will be played back over your phone. To eliminate the pause the first time the application is run each day, simply add the crontab entry as outlined above. Enjoy!

Originally published: Monday, August 22, 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.
 



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.
 



Deploying Incredible PBX with Microsoft Windows 11



Miracles happen every so often, but we never expected our Linux-based Incredible PBX platform to be running natively on the Microsoft Windows 11 desktop. Some have asked why you’d even want to do this when VirtualBox is available for Windows, and Incredible PBX VirtualBox images are available for Debian 10 and Rocky 8. The short answer is we got kernel crashes on our cheapo Windows 11 hardware. The longer answer is the VirtualBox days are numbered as it won’t run on any of the new ARM-based platforms including Apple’s new Macs. That sent us searching for an alternative. We finally solved kernel crashes in VirtualBox by adding a second CPU core and maxing out the display graphics to 128MB in each VM.

Lo and behold, Microsoft was offering their Windows Subsystem for Linux GUI (WSLg) on GitHub. But, before we could explore the Ubuntu offering, we discovered that they also supported many other distros including Debian. Who’da thunk you could even run LibreOffice from your Windows desktop? So we set out to build not one but two WSLg VMs, one for Ubuntu to run a free office suite and a second for Debian to run Incredible PBX. The icing on the cake is the length to which Microsoft has gone to integrate WSLg into Windows 11. You can read all about it here.


Today, our focus is on showing you how to deploy Incredible PBX on a tiny, $207 Windows 11 powerhouse. If you’re interested in running the LibreOffice suite with Ubuntu, just follow the instructions documented in the GitHub posting. To get started, you’ll need Windows 11 (build 22000.*) or Windows 11 Insider Preview (builds 21362+). To begin, from the Windows 11 Start Menu, search for powershell and then right click on app and choose Run As Administrator.

Here are some wsl commands you’ll want to keep handy:

List Available Linux Offerings  : wsl --list --online
Show Installed Linux Platforms  : wsl -l -v
Install a Linux Virtual Machine : wsl --install -d {distro}
Startup a Linux Virtual Machine : wsl -d {distro}
Shutdown Running Virtual Machine: wsl --terminate {distro}
Remove any Linux Virtual Machine: wsl --unregister {distro}
Backup any Linux Virtual Machine: wsl --export {distro} {filename.tar}
Restore a Linux Virtual Machine : wsl --import {distro} {filename.tar}

Let’s begin by installing a Debian Virtual Machine: wsl --install -d Debian. You’ll be prompted to create a user account and password, e.g. nerd and password. If you’re not prompted to create a user account, reboot your Windows machine and reopen the Debian app which will straighten things out. Once the Debian CLI window appears, enter the following commands to set up the root user account and begin your Incredible PBX install:

sudo passwd root
su root
# enter password you created for root
cd ~
apt install wget -y
wget http://incrediblepbx.com/IncrediblePBX2021-win11.sh
chmod +x IncrediblePBX2021-win11.sh
./IncrediblePBX2021-win11.sh

Stick around long enough to answer a couple of initial prompts, and then go have a very long cup of coffee. The install typically takes 30-45 minutes depending upon your computer’s horsepower. While you’re waiting, notice that the Windows Start Menu now includes a new Debian app which you will use to launch the Incredible PBX virtual machine down the road.

When the install finishes, run the following commands from the Debian CLI:

cd ~
./update-IncrediblePBX
service sendmail start
pbxstatus

Keep in mind that Incredible PBX will be running in a Debian virtual machine under Windows 11. So it’s important to know how to start things up and shut things down. As with any operating system, you don’t want to simply pull the plug and risk damaging both the file system and the MySQL databases.


To start the Debian virtual machine, you can do it in either of two ways. From the Windows Start Menu, double-click on the Debian app. Or from the PowerShell running as Administrator, type: wsl -d Debian. You can verify it’s running like this: wsl -l -v

Once the Debian CLI appears, issue the following commands to activate all of the Linux components upon which Incredible PBX depends:

su root
# enter root password
cd ~
./startup
pbxstatus

The LAN IP address is only accessible from your Windows machine. To run the Automatic Update Utility, you’ll need to SSH into this LAN address from the PowerShell running as Administrator where 172.29.80.223 is the LAN address shown in pbxstatus:

ssh root@172.29.80.223

To shutdown the Debian virtual machine, first open the Debian app and switch to the root user. Issue the halt command. This gracefully shuts down Asterisk, MySQL, and Apache. When the script completes, return to the PowerShell and issue this command to halt the virtual machine: wsl --terminate Debian

Deploying OpenVPN with Incredible PBX. We strongly recommend deploying an OpenVPN client as part of your WSLg install and also on the Windows 11 desktop. It will simplify access to the server both from within Windows and also from any external source without having to wrestle with your firewall settings. This Incredible PBX Wiki article will walk you through creation of an OpenVPN Server platform, and this Incredible PBX Wiki article will walk you through the OpenVPN Client setup process. Simply name your Debian .ovpn config file incrediblepbx.ovpn and save it in the /etc directory for automatic startup.

CAUTION: Be sure to create and use a separate .ovpn configuration file for your Windows desktop including these additional settings documented in the Wiki:

pull-filter ignore redirect-gateway
route-nopull
route 10.8.0.0 255.255.255.0

Originally published: Monday, July 11, 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.
 



Happy Fourth: Our Gift to You — 17+ Years of Nerd Vittles


Originally published: Monday, July 4, 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.
 



$300 Chromebook Faceoff: ARM vs. x86? Which Is Better?



We’ve written about the Chromebook before, but today presents an interesting dilemma. Should you choose an ARM-based Chromebook for a bit better performance or an x86-based Chromebook for application flexibility? This becomes even more interesting when one recalls that Apple is poised to dump Intel processors and move exclusively to the ARM platform for all of its next generation machines. The short answer is it depends upon your use case. Cell phones and tablets traditionally have relied upon ARM processors while desktop computers are almost exclusively based upon either Intel or AMD processors. The Chromebooks fall somewhere in the middle because they can perform traditional web browsing and also run dedicated applications traditionally reserved for desktop computing platforms. So we decided to put two of the least expensive Chromebooks to the test. We managed to grab both the ARM64-based Chromebook (pictured above) and the AMD-based Chromebook (pictured below) for equivalent discounted prices of about $300. The HP Chromebook included a rechargeable pen, detachable keyboard and stand, 11″ touchscreen display, and power adapter while the Acer Chromebook included a mouse, backlit keyboard, convertible 14″ touchscreen display, case, and power adapter. Both weigh about 4 pounds with 8GB RAM and 64GB disk.


We decided to test these Chromebooks by determining how well each could perform as a sales demonstration unit for those in the VoIP business. Suffice it to say, there’s nothing quite like a LIVE showing for a potential customer demonstrating how their future Unified Communications platform would work. And the fact that you can pull this is off with what looks very much like a computer tablet is icing on the cake. Both Chromebooks passed the test with ease although we massaged the Incredible PBX installer a bit to accommodate the ARM64 platform. If you decide to try this out for yourself, we’ve documented the process on the VoIP-Info.org Forum.

Because the Acer Chromebook was AMD-based, the installation process for Incredible PBX was much easier simply because the traditional Incredible PBX installer for Debian 10 runs without a hitch. Begin by opening the Chrome browser to chrome://flags. Enable Chrome extensions. Set Upgrade Crostini to Bullseye to Disabled. Set Debian Version to Buster. And set Allow Resizing Crostini Disks to Enabled. Restart the Chromebook to continue. Then navigate to Settings -> Advanced -> Developers -> Linux Development Environment. Set the Disk Size to 15GB. Then Enable Linux Development Environment. Once your Chromebook is restarted, run Terminal app. PIN it to task bar with Alt-Click.

Issue the following commands to install Incredible PBX for Debian 10:

sudo passwd root
# set a very secure root password
su root
cd ~
apt update
apt upgrade
apt install cron nano -y
wget http://incrediblepbx.com/IncrediblePBX2021.sh
chmod +x IncrediblePBX2021.sh
nano -w /etc/profile

Edit /etc/profile to look like this at the top. Save the file and restart your Chromebook.



Log back into your Chromebook’s Terminal app as root, and issue the following commands:

su root
cd ~
apt update
./IncrediblePBX2021.sh

Here are the remaining steps to configure Incredible PBX:

  • chmod 775 /
  • touch /var/log/auth.log
  • chown asterisk:asterisk /var/log/asterisk/*
  • Add OpenVPN client credentials as /etc/incrediblepbx.ovpn
  • Add gTTS following steps at this link
  • Run /root/enable-gmail-smarthost-for-sendmail using your Gmail app password
  • Remove ssh-block file from /ssh
  • Uncomment port with a port number above 1000 in sshd_config
  • Restart SSH: systemctl restart sshd
  • Remove UCP daemon: fwconsole setting NODEJSENABLED 0
  • fwconsole ma upgradeall
  • fwconsole reload
  • Clear errors, if any, from reload (several times) by doing what the prompts say
  • Run /root/sig-fix twice

So there you have it. A desktop demo machine in a tablet form-factor. Not to come across as an x86 snob, but there still are things we like to do on the Intel and AMD platforms that you simply cannot pull off using an ARM-based computer, at least not yet. At the top of that list is running VirtualBox. Many have tried, but VirtualBox is not an emulator. It’s a virtualization platform which means it runs other x86 applications using the existing x86 platform on which it was installed. Oracle has shown little interest in porting it to ARM processors and, even if it did so, you would only be able to run other ARM applications. As you also probably noticed, unless you find a really good sale, ARM-based Chromebooks are about $100 more expensive than their x86 competitors. So our tip of the hat goes to Acer Chromebook this time around.

If you’d like to put your name in the hat for one of our Chromebook test units, post a meaningful comment to this article and include your email address which won’t be published. The comment must be posted before the last day of July, 2022. We’ll publish the winner when we randomly make a selection in August, 2022. The winner will also be notified by email using the address included with your comment. Here’s the not-so-fine print:

NO PURCHASE IS NECESSARY IN ORDER TO WIN, AND YOU MAY ONLY SUBMIT A SINGLE COMMENT PER HOUSEHOLD. YOU MUST BE 18 YEARS OF AGE OR OLDER ON THE DATE OF ENTRY, AND YOU MUST BE A LEGAL RESIDENT OF ONE OF THE 50 STATES OF THE UNITED STATES OR THE DISTRICT OF COLUMBIA. THE CONTEST IS SUBJECT TO ALL FEDERAL, STATE, AND LOCAL LAWS AND REGULATIONS. IF YOUR JURISDICTION BANS PARTICIPATION IN FREE CONTESTS, YOU ARE DISQUALIFIED AND MAY NOT ENTER THE CONTEST. BY PARTICIPATING IN THIS CONTEST, YOU AGREE TO BE BOUND BY THE CONTEST RULES AND AGREE TO BE BOUND BY THE DECISIONS OF NERD VITTLES, THE SPONSOR, WHICH ARE FINAL. THE WINNER MUST PROVE COMPLIANCE WITH THESE TERMS AND CONDITIONS BEFORE THE PRIZE IS DISTRIBUTED, AND THE WINNER MUST PROVIDE A PHOTOCOPY OF A VALID U.S. DRIVER'S LICENSE OR OFFICIAL STATE PHOTO ID WITH YOUR ACTUAL MAILING ADDRESS. WINNER WILL BE DISQUALIFIED IF PROOF OF COMPLIANCE IS NOT RECEIVED WITHIN 10 DAYS OF EMAIL TRANSMISSION ANNOUNCING THE WINNER. IN SUCH CASE, AN ALTERNATE WINNER WILL BE RANDOMLY SELECTED UNDER THE SAME TERMS AND CONDITIONS. IF THE ALTERNATE WINNER IS SUBSEQUENTLY DISQUALIFIED, THE PRIZE WILL REMAIN UN-AWARDED. IN THE EVENT THE CONTEST IS IMPAIRED IN ANY WAY FOR ANY REASON AS DETERMINED BY THE SPONSOR IN ITS SOLE DISCRETION, THE SPONSOR MAY TERMINATE CONTEST WITHOUT AWARDING THE PRIZE. 

BY PARTICIPATING IN THE CONTEST, YOU AGREE TO RELEASE AND HOLD HARMLESS NERD VITTLES, WARD MUNDY & ASSOCIATES LLC, AND WARD MUNDY FROM ANY AND ALL CLAIMS AND CAUSES OF ACTION ARISING OUT OF PARTICIPATION IN THE CONTEST OR AWARD TO THE WINNER. ANY CLAIM MUST BE FILED INDIVIDUALLY WITH A WAIVER OF CLASS ACTION STATUS IN THE U.S. DISTRICT COURT FOR THE NORTHERN DISTRICT OF FLORIDA. CLAIMANT FURTHER AGREES TO COVER ALL LEGAL AND COURT COSTS OF THE DEFENDANT IN ADDITION TO CLAIMANT'S OWN LEGAL EXPENSES. ALL QUESTIONS OF LAW SHALL BE RESOLVED IN ACCORDANCE WITH THE LAWS OF THE STATE OF FLORIDA. IN THE EVENT CLAIMANT PREVAILS AT TRIAL AND AS A CONDITION FOR ENTRY INTO THE CONTEST, PLAINTIFF AGREES TO ACCEPT NO MORE THAN $1 AS THE ACTUAL AND PUNITIVE DAMAGE AWARD.

Originally published: Monday, June 27, 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.
 



Introducing Incredible PBX 2022 for the Raspberry Pi



It’s been a year and a half since our last Incredible PBX® release for the Raspberry Pi platform, and the RasPi enhancements just keep coming. The latest RasPi 4 supports dual 4K monitors, two USB 2.0 ports, two USB 3.0 ports, gigabit Ethernet, a USB-C power supply, a Broadcom BCM2711, Quad core Cortex-A72 (ARM v8) 64-bit SoC running at 1.5GHz, and POE connectivity with the addition of the POE Hat. You can read all about it here. Incredible PBX 2022 supports the latest RasPi boards and keyboard and is backwards compatible.

UPDATE: Download the latest Incredible PBX 2027 image for RasPi here.

We’ve preserved the Raspbian 10 platform in this build because the Debian 11 release has broken free faxing, at least for the short term. This build features Asterisk® 16 or 18 with the latest FreePBX® 15 GPL modules plus the feature set you know and love. We’ve added PJSIP support for Skyetel and the new gTTS release for terrific text-to-speech applications including our News Headlines (951) and Weather Forecasts by ZIP Code (947). It’s all rolled into one terrific bundle that can be installed in about a minute after you download the image from SourceForge and burn the image to a microSD card.

Unlike other aggregations, there’s nothing to compile with Incredible PBX/FAX 2022 for Raspbian. And, unlike the FreePBX Distro, we don’t rely on static packages which make it difficult to add future modifications on your own. Instead, Incredible PBX/Fax 2022 offers a snapshot image with a complete toolkit to make future modifications as desired. And, of course, Incredible PBX/Fax 2022 features the ClearlyIP module repository which protects you from proprietary modifications that limit or cripple your PBX moving forward.

What’s Included? Incredible PBX/Fax 2022 serves up a never before available VoIP powerhouse featuring Asterisk 16 or 18 and all FreePBX 15 GPL modules, an Apache web server, the latest MariaDB SQL server (formerly MySQL), Exim4 mail server, Incredible Fax with turnkey Hylafax and AvantFax, and most of the Incredible PBX feature set including SIP, PJSIP, SMS, voice recognition, AsteriDex, gTTS Text-to-Speech VoIP applications plus email delivery of faxes in PDF format, Click-to-Dial, News, Weather, Telephone Reminders, and hundreds of features that typically are found in commercial PBXs: Conferencing, IVRs and Email Delivery of transcribed voicemails, AutoAttendants, Voicemail Blasting, and more. We’ve also incorporated the Zero Trunk Configuration feature from the LITE build which lets you sign up with one of our VoIP providers and start making and receiving calls instantly. Or you can use the new ClearlyIP trunking module included in the GUI for seamless integration of SMS messaging into FreePBX and its User Control Panel.

Choosing a SIP Provider. As we mentioned, Incredible PBX/Fax 2022 comes preconfigured to support many of the major SIP providers including those that financially support Nerd Vittles and our open source projects: ClearlyIP, Skyetel, and VoIP.ms. As the old saying goes, they may not be the cheapest, but you get what you pay for. With all our providers, you only pay for minutes you use so signing up with more than one provider is a smart idea. For the full list of supported VoIP providers, visit the Incredible PBX Wiki.

>

Assembling the Required Raspberry Pi Components

Before you can deploy Incredible PBX 2022, you’ll first need the necessary Raspberry Pi hardware. To support the enhanced Incredible PBX/Fax platform, we strongly recommend either the Raspberry Pi 400 or the Raspberry Pi 4B with at least 2GB RAM for under $42. You can choose a reseller below for quicker delivery. Assuming you already own an HDMI-compatible monitor and a USB keyboard (only required if you don’t buy a RasPi 400)…

  • Raspberry Pi 4B or Raspberry Pi 400
  • $8 USB-C RasPi 4 (only) Power Supply
  • $11 32GB microSDHC Class 10 card (strongly recommended!)
  • $5 Official RasPi 4B Case or see above for our favorite
  • Getting Started with Incredible PBX 2022

    Here’s our 10-Step Guide to installation and setup. "Automatic" means just watch. Steps #1 and #2: follow the links. For the remaining steps, we’ll further document the procedures.

    1. Download and unzip latest Incredible PBX/FAX 2022.6 image from SourceForge
    2. Transfer Incredible PBX/FAX 2022 image to microSD card and Boot server
    3. Login to RasPi console as root:password to initialize your server (Automatic)
    4. In Localization Options, set Locale, TimeZone, Keyboard, & WiFi Country
    5. Reboot after writing down your server IP address (Automatic)
    6. Login via SSH or Putty as root:password to set passwords & setup firewall (Automatic)
    7. Enter an email address for receipt of incoming faxes in PDF format
    8. Run admin-pw-change to set the admin password for access to the web GUI
    9. Register for and configure at least one trunk provider for Incredible PBX 2022
    10. Set up and test your Exim mail server as documented below

    ALERT: Reportedly, the latest Raspberry Pi 4 board will not boot with earlier Incredible PBX images. Today’s updated image solves that, but you may wish to simply move your existing build to the latest RasPi hardware and preserve your data. If you have an older (working) Raspberry Pi, simply issue the following commands on the old platform. Following shutdown, insert the new microSD card into your new RasPi 4.

    apt update
    apt dist-upgrade
    halt
    

    First Boot of Incredible PBX 2022 with Wi-Fi

    Incredible PBX 2022 requires Internet connectivity to complete its automated install. If you’re using a wired network connection, you can skip to the next section. With the Raspberry Pi 3B, 4B and 400, WiFi is built into the hardware. But you still have to insert your SSID name and SSID password to make a connection to your WiFi network. To do so, follow these next steps carefully. Insert the Incredible PBX 2022 microSD card into your Raspberry Pi and apply power to the hardware. When the bootup procedure finishes, login as root with the default password: password. At the first prompt, DO NOT PRESS THE ENTER KEY! Instead, press Ctrl-C to break out of the setup script. At the command prompt, issue the following commands to bring up the WiFi config file:

    cd /etc/wpa_supplicant
    nano -w wpa_supplicant.conf
    

    If your WiFi network does not require a password, uncomment or insert the four lines below and save the file: Ctrl-X, Y, then Enter. Now restart your server: reboot. When the reboot finishes, you now should have network connectivity.

    network={
     key_mgmt=NONE
     priority=1
     country=US
    }
    

    If your WiFi network requires a password, uncomment or insert the following into wpa_supplicant.conf:

    ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
    update_config=1
    country=US
    
    network={
     ssid="YourSSID"
     psk="YourSSIDpassword"
     key_mgmt=WPA-PSK
     scan_ssid=1
     priority=7
    }
    

     
    Then scroll down to the SSID entry and replace YourSSID with the actual SSID of your WiFi network. Make sure you preserve the entry with the quotes as shown. Next, replace YourSSIDpassword with the SSID password of your WiFi network. Save the file: Ctrl-X, Y, then Enter. Now restart your server: reboot. When the reboot finishes, you now should have network connectivity.

    Once the reboot process finishes, you should see an entry on about the middle line displayed on your monitor which reads: "My IP address is…". Write down the IP address shown. You’ll need it in a minute. Skip the next section since you are using a WiFi connection.

    If you don’t see an IP address assigned to your server, then correct the network deficiency (invalid WiFi credentials, DHCP not working, Internet down), and reboot until you see an IP address assigned to your server. DO NOT PROCEED WITHOUT AN ASSIGNED IP ADDRESS. NOTE: The Raspberry Pi 400 requires the latest Incredible PBX image for Wi-Fi connectivity.

    You’ll also need to change the default PortKnocker setting to your wireless LAN connection:

    sed -i 's|eth0|wlan0|' /etc/default/knockd
    service knockd restart
    

     

    First Boot of Incredible PBX Using Wired Connection

    Incredible PBX 2022 requires Internet connectivity to complete its automated install. After connecting your server to your local network with a network cable, insert the Incredible PBX 2022 microSD card into your Raspberry Pi and apply power to the hardware. When the bootup procedure finishes, you should see an entry on about the middle line displayed on your monitor which reads: "My IP address is…". Write down the IP address shown. You’ll need it in the next step.

    If you don’t see an IP address assigned to your server, then correct the network deficiency (cable not connected, DHCP not working, Internet down), and reboot until you see an IP address assigned to your server. DO NOT PROCEED WITHOUT AN ASSIGNED IP ADDRESS.

    Completing the Incredible PBX Initialization Procedure

    Unless your desktop PC and RasPi are both on the same private LAN, the remainder of the install procedure should be completed from a desktop PC using SSH or Putty. This will assure that your desktop PC is also whitelisted in the Incredible PBX firewall. Using the console to complete the install is NOT recommended as your desktop PC will not be whitelisted in the firewall. This may result in your not being able to log in to your server. Once you have network connectivity, log in to your server as root from a desktop PC using the default password: password. Accept the license agreement by pressing ENTER. You then will be redirected to raspi-config. This is the utility used to expand your Incredible PBX 2022 image to use your entire microSD card; however, this new build does this for you so you can skip this step. Next, choose Localization Options and set Locale, TimeZone, Keyboard, & WiFi Country. Review the other items and then exit and reboot.

    Once your server reboots and you log back in as root, you’ll first be prompted to enter an email address for delivery of incoming faxes in PDF format. All of your passwords then will be randomly assigned with the exception of the root user Linux password and your admin passwords for access to the web GUI and AvantFax. You can set the root password by issuing the command: passwd. Set the admin password for access to the web GUI with this command: /root/admin-pw-change. Set the admin password for access to AvantFax with this command: /root/avantfax-pw-change. With the exception of these passwords, the remaining passwords can be displayed using the command: /root/show-passwords.

    Finally, if your PBX is sitting behind a NAT-based router, you’ll need to redirect incoming UDP 5060-5061 and UDP 10000-20000 traffic to the private IP address of your RasPi. This is required for all of the SIP providers included in the Incredible PBX 2022 build. Otherwise, all inbound calls will fail.

    Configuring Skyetel for Incredible PBX 2022

    If you’ve decided to go with Skyetel, here’s the drill. Sign up for Skyetel service and take advantage of the Nerd Vittles Free $10 credit and BOGO special. 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 happy with the service, open another ticket after funding your account and request that Skyetel match your deposit of up to $250. That gets you up to $500 of helf-price calling. Credit is limited to one per person/company/address/location. If you have numbers to port in, you can do it at no cost after funding your account. Effective 10/1/2023, $25/month minimum spend required.

    Skyetel typically does not require 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 2022:

    • Name: MyPBX
    • Priority: 1
    • IP Address: PBX-Public-IP-Address
    • Port: 5061
    • Protocol: UDP
    • Description: 2022.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 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.

    Configuring VoIP.ms for Incredible PBX 2022

    To sign up for VoIP.ms service, may we suggest you use our signup link so that Nerd Vittles gets a referral credit for your signup. Once your account is set up, you’ll need to set up a SIP SubAccount and, for Authentication Type, choose Static IP Authentication and enter your Incredible PBX 2022 server’s public IP address. For Transport, choose UDP. For Device Type, choose Asterisk, IP PBX, Gateway or VoIP Switch. Order a DID in their web panel, and then point the DID to the SubAccount you just created. Be sure to specify atlanta1.voip.ms as the POP from which to receive incoming calls. On the Incredible PBX side, simply Enable the VoIPms trunk and save your update.

    Adding a Bootable SSD to Raspberry Pi

    Shown below are the two components that make up the 256GB storage solution for the Raspberry Pi. These include the M.2 SSD SATA drive and the M.2 enclosure which provides a USB connector that’s compatible with your RasPi. Assembly of the components takes less than a minute as shown in the steps below:




    You can order the M.2 SSD SATA drive and the UGREEN M.2 enclosure using our Amazon referral links which help support Nerd Vittles and the Incredible PBX open source project.

    Once you have assembled your SSD in the sleeve, log back in as root using SSH or Putty. For best performance, insert the SSD drive into one of the blue USB 3.0 ports and verify that /dev/sda device is shown when you issue the command: fdisk -l

    Now proceed with the following steps to copy the image from your microSD card to the new SSD SATA drive:

    rpi-clone -l -e sda -f sda
    # answer prompts with yes and incred2022
    # once the image is copied, dismount the drive when prompted
    mount /dev/sda2 /mnt/clone
    cd /mnt/clone/boot
    cp -p -r /boot/* .
    sed -i 's|sda2|mmcblk0p2|' /boot/cmdline.txt
    cd /
    umount /mnt/clone
    halt
    

     
    Now you’re ready to restart your Raspberry Pi from the SSD SATA drive. Remove the microSD card and reboot your server.



    Configuring a Softphone for Incredible PBX 2022

    We’re in the home stretch now. You can connect virtually any kind of telephone to your new PBX. Plain Old Phones require an analog telephone adapter (ATA) which can be a separate board in your computer from a company such as Digium. Or it can be a standalone SIP device such as ObiHai’s OBi100 or OBi110 (if you have a phone line from Ma Bell to hook up as well). SIP phones can be connected directly so long as they have an IP address. These could be hardware devices or software devices such as the YateClient softphone. We’ll start with a free one today so you can begin making calls. You can find dozens of recommendations for hardware-based SIP phones both on Nerd Vittles and the PIAF Forum when you’re ready to get serious about VoIP telephony.

    We recommend YateClient for Windows which is free. Download it from here. Run YateClient once you’ve installed it and enter the credentials for the 701 extension on Incredible PBX. You can find them by running /root/show-passwords. You’ll need the IP address of your server plus your extension 701 password. In the YateClient, fill in the blanks using the IP address of your Server, 701 for your Username, and whatever Password was assigned to the extension when you installed Incredible PBX. Click OK to save your entries.

    Once you are registered to extension 701, close the Account window. Then click on YATE’s Telephony Tab and place some test calls to the numerous apps that are preconfigured on Incredible PBX. Dial a few of these to get started:

    DEMO - Apps Demo
    123 - Reminders
    947 - Weather by ZIP Code
    951 - Yahoo News
    TODAY - Today in History
    LENNY - The Telemarketer's Worst Nightmare
    

    If you are a Mac user, another great no-frills softphone is Telephone. Just download and install it from the Mac App Store.

    Audio Issues with Incredible PBX 2022

    Only if you experience one-way or no audio on some calls, add your external IP address and LAN subnet in the GUI by navigating to Settings -> Asterisk SIP Settings. In the NAT Settings section, click Detect Network Settings. Click Submit and Apply Settings to save your changes.

    Configuring Gmail as Exim Smart Relay Host

    Most Raspberry Pi implementations will be on networks managed by companies like Comcast, Spectrum, and AT&T that block downstream mail servers (that’s you) from sending email. The solution is to use Gmail or your local ISP as a smart relay host to send mail from your server. You’ll need this to deliver voicemails via email. Here’s how to set it up using a Gmail account without two-step authentication. Log into your server as root and run dpkg-reconfigure exim4-config. Choose "mail sent by smarthost; received via SMTP or fetchmail." Accept all the defaults until you get to Outgoing Smarthost prompt. Enter: smtp.gmail.com::587. At the following prompts, choose NO, NO, mbox, and NO. When the setup completes, edit /etc/exim4/passwd.client and insert the following line using your Gmail AcctName and AcctPW. NOTE: Because insecure Gmail access is going away, you MUST use a Gmail App Password instead of your Gmail account password.

    smtp.gmail.com:AcctName@gmail.com:AcctPW
    

    Save the file and then issue the following commands to complete the setup:

    update-exim4.conf
    systemctl restart exim4
    exim4 -qff
    

    Now send yourself a test email message to make sure things are working properly:

    echo "test" | mail -s testmessage yourname@yourmailprovider.com
    

    Once you have email messages flowing, incoming faxes automatically will be delivered to the email address you assigned when setting up your PBX. You can change this email address with the command: avantfax-email-change.

    Fixing Corrupted rc.local File & More

    Some prefer an email notification whenever your server is booted. Also fixes the corrupted rc.local file. Once you have configured a relay host above, you can add the feature by editing /etc/rc.local and making the file look like this replacing name@domain.com with your actual email address:

    #!/bin/sh -e
    
    # Print the IP address
    _IP=$(hostname -I) || true
    if [ "$_IP" ]; then
      printf "My IP address is %s\n" "$_IP"
    fi
    
    _PRIVATE="Private IP: `cat /etc/hostip | cut -f1-2 -d " "`"
    _PUBLIC="Public: $(dig TXT +short o-o.myaddr.l.google.com @ns1.google.com | sed 's|"||g')"
    echo "$_PRIVATE   $_PUBLIC" | mail -s "Incredible PBX 2022.6 has booted" name@domain.com
    
    sleep 5
    
    service knockd start
    sleep 30
    chmod -R 777 /var/www/html/avantfax
    exit 0
    

    Configuring Inbound Routes for Fax Detection

    Not all VoIP trunks support fax transmission, e.g. Vitelity. Assuming yours do and you’ll only know by trial and error, here’s how to configure FreePBX to automatically detect incoming faxes and process them for PDF delivery by email. The default inbound route is preconfigured to support email delivery of your faxes. So, any trunks using that default route require no further configuration. If you add additional Inbound Routes, here’s how to enable fax detection on those routes.

    Under the Fax tab of each new Inbound Route, enter the following settings:

    Detect Faxes: YES
    Fax Detection Type: SIP
    Fax Ring: YES
    Fax Detect Time: 4
    Fax Destination: Custom Destinations -> Fax (Hylafax)
    



    Managing Faxes with AvantFax

    You can manage your incoming and outgoing faxes using AvantFax. Click on the AvantFax tab in FreePBX to access it. The default credentials are admin:password. When you first access AvantFax with a browser, you may get a missing page error. Just press the back arrow key in your browser and the AvantFax main page will appear.

    If you want to change the admin password for AvantFax, log into your server as root with SSH/Putty and issue the command: /root/avantfax-pw-change.

    Send yourself a fax at no cost in the United States from FaxZero.

    Building the Incredible PBX Demo IVR

    If you’d like to try your hand at building an IVR, here are the steps to build the Incredible PBX Demo IVR. From the FreePBX Dashboard, choose Applications -> IVR -> Add IVR. Then fill in the template using the entries shown below. Then click Submit and Reload Dialplan.



    Building the Incredible PBX Stealth AutoAttendant

    Many users prefer to play an announcement to incoming callers with a brief pause thereafter which indicates that the call is being connected. If configured properly, this lets you embed several dial codes which can be entered while the announcement is playing and the call is being transferred. For example, you might wish to route incoming calls to Lenny if a caller presses 0. Or you might wish to immediately route an incoming call to a Ring Group if the caller presses 1. Here’s a sample IVR setup to get you started.


    Incredible PBX 2022 Administration

    We’ve eased the pain of administering your new PBX with a collection of scripts which you will find in the /root folder after logging in with SSH or Putty. Here’s a quick summary of what each of the scripts does.

    admin-pw-change lets you update the admin password for web browser access to the Incredible PBX GUI.

    apache-pw-change lets you update the admin password for Apache applications such as AsteriDex and Reminders.

    avantfax-pw-change lets you update the root password for AvantFax access (coming soon!).

    add-fqdn is used to whitelist a fully-qualified domain name in the firewall. Because Incredible PBX 2022 blocks all traffic from IP addresses that are not whitelisted, this is what you use to authorize an external user for your PBX. The advantage of an FQDN is that you can use a dynamic DNS service to automatically update the IP address associated with an FQDN so that you never lose connectivity.

    add-ip is used to whitelist a public IP address in the firewall. See the add-fqdn explanation as to why this matters.

    del-acct is used to remove an IP address or FQDN from the firewall’s whitelist.

    configure-exim-email lets you reconfigure the email server if you need to use an SMTP relay such as Google to get outbound email flowing. Tutorial here.

    iptables-restart is the ONLY command you should ever use to restart the IPtables firewall and Fail2Ban.

    knock.FAQ contains your PortKnocker credentials for emergency access to your server if the firewall locks you out. Tutorial here.

    proximity (once configured) will automatically forward calls to your cellphone when you are out of BlueTooth range from your RasPi. Also must enable running of script in /etc/crontab.

    reset-conference-pins is a script that automatically and randomly resets the user and admin pins for access to the preconfigured conferencing application. Dial C-O-N-F from any registered SIP phone to connect to the conference.

    reset-extension-passwords is a script that automatically and randomly resets ALL of the SIP passwords for extensions 701-705. Be careful using this one, or you may disable existing registered phones and cause Fail2Ban to blacklist the IP addresses of those users. HINT: You can place a call to the Ring Group associated with all five extensions by dialing 777.

    reset-reminders-pin is a script that automatically and randomly resets the pin required to access the Telephone Reminders application by dialing 123. It’s important to protect this application because a nefarious user could set up a reminder to call a number anywhere in the world assuming your SIP provider’s account was configured to allow such calls.



    rpi-clone is a utility that makes it easy to make a bootable image of the microSD card used to start your Raspberry Pi. You’ll need a USB-to-microSD adapter to begin. Insert a backup microSD card large enough to hold all of the data on the primary microSD card (df -h). Insert the USB stick with the card. Identify the backup microSD card, usually sda (fdisk -l). Format the backup microSD card: mkfs.vfat /dev/sda1 && mkfs.ext4 /dev/sda2. Then issue the following command to clone the primary microSD card: rpi-clone -f sda. Tutorial here.

    show-feature-codes is a cheat sheet for all of the feature codes which can be dialed from any registered SIP phone. It documents how powerful a platform Incredible PBX 2022 actually is. A similar listing is available in the GUI at Admin -> Feature Codes.

    show-passwords is a script that displays ALL of the passwords associated with Incredible PBX 2022. This includes SIP extension passwords, voicemail pins, conference pins, telephone reminders pin, and your Anveo Direct outbound calling pin (if configured). Note that voicemail pins are configured by the user of a SIP extension the first time the user accesses the voicemail system by dialing *97.

    timezone-setup lets you reconfigure the correct time zone for your server.

    purge-cdr-cel-records cleans out all existing entries in both the CDR and CEL tables of the Asterisk CDR database.

    log-cleanup removes all entries from most of the logs in /var/log.

    sig-fix disables module signature checking in FreePBX. It is automatically disabled upon installation.

    readme-RonR.txt documents the scripts provided from RonR build. We do NOT recommend using the FCC Blacklist because of its current size.

    update-asterisk16 is a utility that updates Asterisk 16 to the latest release. This should only be necessary when a security issue or bug is identified that affects the operation of your PBX.

    update-IncrediblePBX is the Automatic Update Utility which checks for server updates from incrediblepbx.com every time you log into your server as root using SSH or Putty. Do NOT disable it as it is used to load important fixes and security updates when necessary. We recommend logging into your server at least once a week.

    pbxstatus (shown above) displays status of all major components of Incredible PBX 2022.

    Forwarding Calls to Your Cellphone. Keep in mind that inbound calls to your DIDs automatically ring all five SIP extensions, 701-705. The easiest way to also ring your cellphone is to set one of these five extensions to forward incoming calls to your cellphone. After logging into your PBX as root, issue the following command to forward calls from extension 705 to your cellphone: asterisk -rx "database put CF 705 6781234567"

    To remove call forwarding: asterisk -rx "database del CF 705"

    Keeping FreePBX 15 Modules Current

    We strongly recommend that you periodically update all of your FreePBX modules to eliminate bugs and to reduce security vulnerabilities. Make a backup image with rpi-clone first! From the Linux CLI, log into your server as root and issue the following commands:

    rm -f /tmp/*
    fwconsole ma upgradeall
    fwconsole reload
    /root/sig-fix
    systemctl restart apache2
    /root/sig-fix
    

    Upgrading Asterisk 16 to Asterisk 18

    For those that enjoy living on the bleeding edge, we’ve create a script which makes it easy to upgrade Incredible PBX 2022 to Asterisk 18. The tutorial is available on the new Incredible PBX Wiki along with dozens of other tutorials.

    Resolving an Expired Certificate Alert

    1. Navigate to Admin -> Certificate Management in the FreePBX GUI
    2. Click the Trashcan to delete the Self-Signed Certificate
    3. Click New Certificate -> Generate Self-Signed Certificate
    4. In the Description field, type: Default
    5. Click Generate Certificate button

    Continue Reading: Icing on the Cake for Incredible PBX and Raspberry Pi

    Now Available: Amazon’s Polly TTS for Incredible PBX. Works great on the RasPi platform!

    Originally published: Tuesday, March 24, 2022  Updated: Monday, February 22, 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.