Home » Technology » Telephony (Page 2)
Category Archives: Telephony
Virtualization Trifecta: $500 Buys a Perfect Hosting Platform
We’ve been raving about Zorin OS 16 last month as the best desktop operating system available. And today we combine it with a $500 MiniPC to provide not one, but three, virtualization platforms with a single machine. You get LXC Linux Containers, VirtualBox, and the Windows 11 WSL platform all rolled into one dual-boot desktop PC. On the Linux side with Zorin OS 16, you can run multiple LXC containers (shown above) and VirtualBox virtual machines simultaneously. And on the Windows 11 platform, you get the Windows Subsystem for Linux in addition to VirtualBox. For those clamoring for a multi-tenant Asterisk®, our question is why when you can securely run standalone platforms for each tenant on one PC.
Because UEFI protections have complicated deployment of Linux on Windows 11 platforms, the secret sauce to make this magic happen is finding a hardware supplier who has elected not to cripple Linux deployment. There may be others and feel free to post a comment sharing your successes, but our favorite supplier is MINISFORUM with their Venus Series of MiniPCs. We obviously haven’t tested all of their offerings, but we are actively using the NAB6 Mini PC featuring a 12th Gen Core i7-12650H processor, 32GB of DDR4 RAM, and a 1TB PCIe4.0 SSD. It’s available on Amazon today for $440 or refurbished for $299. If you’re in the market for a gaming platform as well, the UM690 has gotten rave reviews and looks like a good fit for under $600 or refurbished UM790 Pro for $459.
As frequent visitors to our site know, referral revenue from Amazon helps keep the lights on at Nerd Vittles, but we also eat our own dog food. We recommend products we actually use.
Installing Incredible PBX 2027 with Windows 11 WSL
Let’s start with an easy virtualization platform, the Windows 11 Subsystem for Linux. To save you having to jump around behind tutorials, here’s a quick refresher on the process.
To get started, you’ll need Windows 11 (build 22000.*) or Windows 11 Insider Preview (builds 21362+) using any hardware platform that supports Windows 11. To begin, from the Windows 11 Start Menu, Search for powershell. Right click on the 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 an Ubuntu Virtual Machine: wsl --install -d Ubuntu-22.04
. 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 Ubuntu-22.04 app from the Start menu. That will straighten things out. Once the Ubuntu CLI window appears, enter the following commands to set up the root user account and begin your Incredible PBX install. Then go have a very long cup of coffee.
sudo passwd root su root # enter password you created for root cd ~ apt install wget -y wget http://incrediblepbx.com/IncrediblePBX2027-U-Win11.sh chmod +x IncrediblePBX2027-U-Win11.sh ./IncrediblePBX2027-U-Win11.sh
While you’re waiting, notice that the Windows Start Menu now includes a new Ubuntu app which you will use to launch the Incredible PBX 2027-U virtual machine down the road.
When the install finishes, reboot.
Keep in mind that Incredible PBX will be running as an Ubuntu-22.04 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 your MySQL databases.
To start the Ubuntu-22.04 virtual machine, you can do it in either of two ways. From the Windows Start Menu, double-click on the Ubuntu-22.04 app. Or from the PowerShell running as Administrator, type: wsl -d Ubuntu-22.04
. Verify it’s running like this: wsl -l -v
Once the Ubuntu CLI appears, issue the following commands to activate all of the Linux components upon which Incredible PBX depends:
su root # enter root password cd ~ ./update-IncrediblePBX pbxstatus # if pbxstatus shows non-fax apps down # then run startup below ./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.19.180.143 is the LAN address shown in pbxstatus:
ssh root@172.19.180.143
To shutdown the Ubuntu-22.04 virtual machine, first open the Ubuntu-22.04 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 Ubuntu-22.04
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 Ubuntu .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
Installing Incredible PBX with VirtualBox & Windows 11
Oracle’s virtual machine platform inherited from Sun is amazing. It’s not only free, but it’s pure GPL2 code. VirtualBox gives you a virtual machine platform that runs on top of many desktop operating systems including Linux, Windows, and Intel-based Macs. In terms of limitations, we haven’t found any. We even tested this on an Atom-based Windows 7 machine with 2GB of RAM, and it worked without a hiccup. So step #1 today is to download one or more of the VirtualBox 6.1 installers. Our recommendation is to put all of these 100MB installers on a USB thumb drive.1 Then you’ll have everything in one place whenever and wherever you happen to need it. Once you’ve downloaded the software, install it onto your Windows 11 desktop. Accept all of the default settings, and you’ll be good to go. For more details, here’s a link to the Oracle VM VirtualBox User Manual.
NOTE: A VirtualBox 6.1 platform is required with Windows 11. Adjust screen size in View -> Virtual Screen.
To install Incredible PBX, download the Incredible PBX 2027-D image with Debian 11 (3.7 GB) or the Incredible PBX 2027-U image with Ubuntu 22.04 onto your desktop.
Next, double-click on the Incredible PBX .ova image on your desktop. Be sure to check the box to initialize the MAC address of the image if you’re using an older version of VirtualBox. Then click Import. Once the import is finished, you’ll see a new Incredible PBX 2027 virtual machine in the VM List of the VirtualBox Manager Window. Let’s make a couple of one-time adjustments to the Incredible PBX configuration to account for possible differences in sound and network cards on different host machines.
(1) Click once on the Incredible PBX 2027 virtual machine in the VM List. Then (2) click the Settings button. In System tab, check Hardware Clock in UTC Time. In the Audio tab, check the Enable Audio option and choose your sound card. In the Network tab for Adapter 1, check the Enable Network Adapter option. From the Attached to pull-down menu, choose Bridged Adapter. Then select your network card from the Name list. Then click OK. That’s all the configuration that is necessary for Incredible PBX.
Once you’ve imported and configured the Incredible PBX Virtual Machine, you’re ready to go. Highlight the Incredible PBX 2027 virtual machine in the VM List on the VirtualBox Manager Window and click the Start button. The standard Linux boot procedure will begin and, within a few seconds, you’ll get the familiar Linux login prompt. During the bootstrap procedure, you may see a couple of dialogue boxes pop up that explain the keystrokes to move back and forth between your host operating system desktop and your virtual machine. Remember, you still have full access to your desktop computer. Incredible PBX 2027 is merely running as a task in a VM window. Always gracefully halt Incredible PBX just as you would on any computer.
Here’s what you need to know. To work in the Incredible PBX virtual machine, just left-click your mouse while it is positioned inside the VM window. To return to your host operating system desktop, press the right Option key on Windows machines or the left Command key on any Mac. On Linux desktops, press the right Ctrl key. For other operating systems, read the dialogue boxes for instructions on moving around. To access the Linux CLI, login as root with the default password: password.
Deploying Incredible PBX with VirtualBox on Zorin
Now let’s reboot your machine and choose Zorin as the platform to load. The Incredible PBX setup is similar to the process used with Windows 11, but UEFI machines are temperamental about which non-Windows apps can run. To enable VirtualBox on the Zorin platform, here are the steps. First, run the Terminal app and reinstall VirtualBox:
apt remove virtualbox-dkms apt install virtualbox-dkms
You’ll be prompted to set up a password for your new VirtualBox UEFI key (8 characters). Then reboot and register the new key when prompted. Enter the password when prompted. Now run VirtualBox from the Applications menu, and you should be good to go.
Once you have VirtualBox running successfully, you can install Incredible PBX 2027. Using the Firefox browser, download the IncrediblePBX2027-U with Ubuntu 22.04 image or the IncrediblePBX2027-D with Debian 11 image to your Downloads folder. From the File Manager, double-click on the .ova image to install it into VirtualBox. Click RUN to start up Incredible PBX 2027. The rest of the setup process is the same as what we described for Windows 11.
Deploying Linux Containers Using Static Routes
The beauty of Linux Containers is they run natively sharing the Linux kernel. So performance is outstanding. But, unlike VirtualBox, there is no simple way to create a Linux Container that obtains a DHCP address from the LAN’s DHCP server, so called bridge mode. This is especially true if your Zorin host is connected wirelessly. Read both of those sentences again to make sure you understand the network limitation of Linux Containers. Simply stated, networking with Linux Containers functions much like the NAT (as opposed to Bridge) option in VirtualBox. Here’s what that means.
Linux Containers are created on their own private subnet. If you wish to access them from a different device on the same LAN shared with your Zorin desktop hosting your Linux Containers, the simplest method is to create a static route to the private LXC subnet either on your LAN’s router or ON EVERY LAN DEVICE that needs to connect to your Linux Containers.
Here are the Mac and Linux commands to create, delete, and list static routes on the other LAN devices where 10.0.3.0 is the LXC subnet hosting the Linux Containers and 192.168.0.167 is the LAN address of the Zorin host PC:
sudo route add -net 10.0.3.0/24 192.168.0.167 sudo route -n delete 10.0.3.0 netstat -rn
Here are the Windows commands to create, delete, and list the same:
route add 10.0.3.0 MASK 255.255.255.0 192.168.0.167 route delete 10.0.3.0 route print
Deploying Linux Containers on the Primary LAN
If you are dead set in wanting to configure your Linux Containers to use IP addresses on the same subnet as your primary LAN, keep in mind that DHCP will not work for Linux Containers on a secured wireless network. For a tutorial on setting this up using static IP addresses, go here. It’s the only alternative that works.
Deploying Linux Containers with OpenVPN
A less painful way to accomplish the same thing is to install OpenVPN clients in your Linux Containers. To do this, you first must enable tun for Linux Containers. On your Zorin host machine, create a new 00-openvpn.conf file in /usr/share/lxc/config/common.conf.d:
lxc.cgroup.devices.allow = c 10:200 rwm lxc.mount.entry = /dev/net dev/net none bind,create=dir 0 0 lxc.mount.entry = /dev/net/tun dev/net/tun none bind,create=file
Next, create an OpenVPN client config file for your Linux Container on your OpenVPN server. Now start up the Linux Container, switch to the root user, and copy the new config file (.ovpn) into the /etc folder naming it openvpn2027.ovpn. Then restart the Linux Container and wait for about 10 seconds for the OpenVPN client to load. Running pbxstatus now will show the OpenVPN IP address in your LAN listing, and the Linux Container is accessible from any device on your OpenVPN virtual private network.
Originally published: Monday, October 2, 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.
- Many of our purchase links refer users to Amazon when we find their prices are competitive for the recommended products. Nerd Vittles receives a small referral fee from Amazon to help cover the costs of our blog. We never recommend particular products solely to generate Amazon commissions. However, when pricing is comparable or availability is favorable, we support Amazon because Amazon supports us. [↩]
Faxing Returns for Incredible PBX 2027 Platforms
As you may know, the introduction of Rocky 8, Debian 11, Ubuntu 22.04, and PHP 7.4 blew our HylaFax/AvantFax/IAXmodem faxing solution out of the water leaving all of the Incredible PBX 2027 builds with no fax capabilities. With some tips from our long-time contributor, Bill Simon, we are happy to report that an alternative solution is now available. It now provides BOTH incoming and outgoing fax support with email PDF delivery of all received faxes. While there are numerous free and paid options that support Outbound Faxing, we now have added an easy-to-use script that provides this functionality on Incredible PBX 2027 platforms.
Inbound Faxing Solution with Incredible PBX 2027
The new inbound faxing solution works much like it did with HylaFax and IAXmodem. You configure your Inbound Routes in FreePBX® to listen for fax tones. When an incoming fax is detected, the call is transferred to a SpanDSP fax context in Asterisk®. The incoming fax is then recorded as a .tiff image. When the recording is finished, we use the TIFF2PDF application to convert the image to a PDF file which is then emailed to a designated email address which you configure as part of this fax setup procedure. The prerequisite, of course, is to assure that Incredible PBX 2027 can send emails. This was covered in the initial setup tutorials, but we will repeat it below for slow learners.
Let’s first get your Incredible PBX 2027 platform configured to detect and process incoming fax calls. Log into your server as root and issue the following commands.
1. For Rocky 8 platforms: yum install libtiff && yum install libtiff-tools
For Debian, Ubuntu, and Raspberry Pi platforms: apt install libtiff-tools -y
2. Issue the following commands to put the inbound fax context in place:
sed -i '/^\[custom-fax/,/^$/d' /etc/asterisk/extensions_custom.conf echo ' [ext-group](+) exten => fax,1,Noop(Fax detected) exten -> fax,2,Goto(custom-fax-iaxmodem,s,1) [custom-fax-iaxmodem] exten => s,1,Answer exten => s,n,Wait(1) exten => s,n,Verbose(3,Incoming Fax) exten => s,n,Set(FAXEMAIL=) ; fax email address of recipient exten => s,n,Set(FAXDEST=/tmp) ; folder where faxes will be stored exten => s,n,Set(tempfax=${STRFTIME(,,%C%y%m%d%H%M)}) exten => s,n,ReceiveFax(${FAXDEST}/${tempfax}.tif) exten => s,n,System(/usr/bin/tiff2pdf -o "${FAXDEST}/${tempfax}.pdf" "${FAXDEST}/${tempfax}.tif") exten => s,n,System(/usr/bin/echo "Incoming fax is attached." | /usr/bin/mail -s "Incoming FAX Received" -A "${FAXDEST}/${tempfax}.pdf" "${FAXEMAIL}") exten => s,n,Hangup ' >> /etc/asterisk/extensions_custom.conf
3. Update the fax context to include your email address for delivery of inbound faxes. Insert your email address in the code below replacing yourname@gmail.com:
sed -i 's|FAXEMAIL=|FAXEMAIL=yourname@gmail.com|' /etc/asterisk/extensions_custom.conf
4. Download and install the Fax module for FreePBX:
fwconsole ma downloadinstall fax rm /tmp/* fwconsole reload
5. Open the FreePBX GUI and check to be sure you still have a Custom Destination called Fax (HylaFax). If not, create it:
Target: custom-fax-iaxmodem,s,1 Description: Fax (HylaFax) Return: No
6. In the FreePBX GUI, modify each of your Inbound Routes to support incoming faxes from the DIDs you’ll be using for inbound faxes. In the new Fax tab, edit the settings as shown below, save the settings, and reload your dialplan.
Yes SIP No 5 Custom Destinations Fax (HylaFax)
7. Be sure you have configured Outbound Email with SendMail using the instructions below before continuing.
8. Send a test fax from FaxZero to one of your fax-enabled DID’s while watching the Linux CLI for issues.
Configuring Gmail as Smart Relay Host
Most Incredible PBX 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 and faxes via email. Here’s how to set it up using a Gmail account.
IMPORTANT: You MUST obtain and use a Gmail App Password instead of your Gmail account password when running the script below. If you’re a Google hater, here’s an alternative.
/root/enable-gmail-smarthost-for-sendmail
Now send yourself a test email message to make sure things are working properly:
echo "test" | mail -s testmessage yourname@yourmailprovider.com
Outbound Faxing Solutions with Incredible PBX 2027
We’ve now developed a sendfax.sh script for use on Incredible PBX 2027 platforms. It lets you send any PDF document as a fax by simply copying the file to the /tmp directory and running the sendfax.sh script. You’ll be prompted for the name of the PDF file to send, the trunk to use for the call, and the phone number of the destination fax in the format required by your designated trunk. Make certain that you have provided the appropriate CallerID number in your Trunk setup, or the outbound calls may fail. After you complete the steps above to enable Inbound Faxing, issue the following commands to install this new Outbound Faxing addition:
cd /root wget http://incrediblepbx.com/sendfax2027.tar.gz tar zxvf sendfax2027.tar.gz rm -f sendfax2027.tar.gz
Now let’s be sure your platform has the necessary components to support Outbound Faxing.
On Rocky 8 platforms, issue the following commands:
yum install libtiff yum install libtiff-tools yum install ghostscript
On Debian, Ubuntu and Raspberry Pi platforms, issue the following commands:
apt update apt install libtiff-tools -y apt install ghostscript -y
Next edit /root/sendfax.sh and enter the callerid, faxheader, and faxstationid for your new Outbound Faxing Engine.
Disable the messages prompting for these components by issuing the command:
touch /etc/pbx/.sendfax
Finally, for installs before 9/27/2023, if you will be using a PJsip trunk to send outbound faxes, issue the following command to adjust the syntax in the sendfax.sh script. This is automatic for new installs.
sed -i 's|SIP/$mytrunk/$faxnumber|PJSIP/$faxnumber@$mytrunk|' /root/sendfax.sh
Now you’re ready to take Outbound Faxing for a test drive. Deposit a PDF file in the /tmp directory of your server. Then issue the following command to begin the Outbound Faxing process: /root/sendfax.sh
. When prompted, enter the file name of your PDF file, the trunk name which will be used to make the call, and the phone number for the fax destination. That’s all the setup that’s required.
When you run the script, it will stay active until the fax has been delivered in order to alert you as to whether the fax transmission was successful. If, for some reason, the fax transmission fails, you can resend it with the following commands:
cp -ap /root/sendfax.call /tmp/cf rm -f /var/spool/asterisk/outgoing_done/cf mv /tmp/cf /var/spool/asterisk/outgoing/
You can verify receipt of the new fax attempt by waiting a reasonable time and then issuing these commands:
cd /var/spool/asterisk/outgoing_done date -d @`cat cf | grep StartRetry | cut -f 2 -d "(" | cut -f 1 -d ")"` cat cf | grep Status
While it is no longer possible to send faxes directly using AvantFax, there are some additional alternatives. A free one is faxzero.com, which lets you send 5 free faxes a day with up to 3 pages of text plus a cover sheet. A second alternative for infrequent use is to pay FaxZero $2.09 per fax to send up to 25 pages with an optional cover page. Another option is to send and receive faxes from your computer or mobile phone using a dedicated fax number from a service such as FaxDeck. Outbound faxing works almost identically to AvantFax. FaxDeck lets you send and receive up to 300 pages to the U.S. and Canada for $5 a month. Or, for $10 a month, you can send and receive up to 1,000 pages. That’s a penny per page which is less than the cost of most VoIP calls. Many of our recommended providers including Skyetel, ClearlyIP, VoIP.ms, and Vitelity also offer dedicated fax numbers as well as email-to-fax solutions.
Originally published: Monday, January 30, 2023 Updated: September 27, 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.
What A Steal: Host Unlimited Email Domains for Life
In these inflationary times, it’s always refreshing to find a technology solution that has actually decreased in price. To combat spam, hosting providers including Comcast and Spectrum have made it next to impossible to deploy a downstream mail server. So a relay hosting solution has become a must-have for VoIP server platforms including Incredible PBX. We’re thrilled to introduce MXroute’s $129 lifetime, cloud-based email hosting solution which supports unlimited domains, unlimited email addresses, and 10GB of storage. But you better hurry. This special won’t last long.
To get started with MXroute, you’ll want to spend some time in their tutorials making sure that you’ve properly configured DNS for the email domains you wish to host on MXroute. Pay particular attention to resolving DMARC, DKIM, and SPF issues before you go live. MXroute’s DNS support documentation is second to none.
For our part, we’ll show you how to configure Incredible PBX 2027 with Debian 11 or Ubuntu 22.04 to use MXroute as your email relay host so that email messages leave your server and arrive at their intended destinations without a hiccup or a SPAM flag. By default, Incredible PBX 2027-D and 2027-U servers are shipped with SendMail preconfigured and an enable-gmail-smarthost-for-sendmail script. Running the script assures proper delivery of outbound email so long as you use an existing Gmail account with a generated App password. But many prefer to cut the cord to Google and host their own email accounts, and that’s where we begin today.
To get started, sign up for an MXroute Unlimited Account. With your credentials in hand, log into the DirectAdmin web portal. Create your first email domain in Account Manager -> Domain Setup. Next, drop down to Email Manager -> Email Accounts and create an email account for the domain you created. Make note of the account password you use because you can’t retrieve it after you leave the creation step. You’ll see an arrow beside the newly created email account. It will take you to a functioning, web-based email client without having to enter your email account’s password. This email client can be used to send out test messages after you get the DNS settings for your domain squared away. Don’t continue with the Incredible PBX server setup below until you can successfully send and deliver a message from within the web-based email client with at least DKIM and SPF showing as PASSED in the original message listing for the delivered email message.
Incredible PBX Using MXroute As Smart Relayhost
What follows has been tested on Incredible PBX 2027 platforms deployed with Debian 11 or Ubuntu 22.04. It will not work with RedHat, CentOS, or Rocky 8 platforms which we no longer support. See this post for RedHat tips. Configuring your server to use MXroute as a smart relay host is a two-step process. First, we’ll replace SendMail with Postfix. And then we’ll set up MXroute as your email relay to avoid issues sending email from servers downstream from your Internet Service Provider, a.k.a. Comcast or Spectrum among others.
Replacing SendMail with Postfix on Incredible PBX
Begin by logging into your Incredible PBX server as root. Then issue the following commands:
systemctl stop sendmail systemctl disable sendmail apt-get update apt-get install postfix sasl2-bin libsasl2-modules -y dpkg-reconfigure postfix # choose NO Configuration option systemctl start postfix systemctl enable postfix sed -i 's|-c sendmail|-c postfix|' /usr/local/sbin/pbxstatus echo "incrediblepbx.com" > /etc/mailname sed -i 's|SendMail| Postfix|' /usr/local/sbin/pbxstatus systemctl status postfix
Deploying MXroute with Postfix
You’ll need three pieces of information to deploy MXroute as a smart relayhost with Incredible PBX: the name of your MXroute server (e.g. friday.mxrouting.net) and both the email address and password of an active account on MXroute (e.g. myname@mydomain.com & mypassword).
With these in hand, edit and save /etc/postfix/main.cf after adding the following to the bottom of the file using your actual MXroute server name in the first line. Leave the brackets in place.
relayhost = [friday.mxrouting.net]:587 smtp_use_tls = yes smtp_tls_security_level = encrypt smtp_sasl_tls_security_options = noanonymous smtp_sasl_auth_enable = yes smtp_sasl_security_options = noanonymous smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt header_size_limit = 4096000
Next, create an /etc/postfix/sasl_passwd file with your three credentials:
[friday.mxrouting.net]:587 myname@mydomain.com:mypassword
Finally, issue the following commands to complete the setup:
chmod 600 /etc/postfix/sasl_passwd postmap /etc/postfix postmap /etc/postfix/sasl_passwd systemctl restart postfix systemctl status postfix
Testing Email with MXroute and Postfix
As a security precaution, you can only send emails through MXroute using the email address registered with Postfix as your Reply-TO address. From the command line, your outbound email should look like this:
echo "test" | mail -r myname@mydomain.com -s testmsg somebody@somewhere.com
Also be sure to adjust the FROM address for outbound voicemail messages in the FreePBX GUI. Login as admin and enter your Sender Identity Email Address in the Server Email field in Settings -> Voicemail Admin -> Settings -> Email Config.
Originally published: Monday, September 25, 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.
Zero-Day Vulnerabilities Compromise All FreePBX Systems
If you’re a user of Asterisk® and FreePBX®, the DEFCON 31 Conference in Las Vegas did not disappoint this year. It exposed not one but three critical, unpatched vulnerabilities in affected FreePBX-based platforms that can compromise your servers in under a minute. I would hasten to add that all of these vulnerabilities were disclosed to Sangoma® months ago and remain unaddressed for months. What this meant was a hacker could easily get administrator privileges on your server with a blank check to make free calls on your nickel or further infect your server with additional hidden components.
How Vulnerable Are You? Here’s a quick summary of the bugs documented in the presentation above. If you expose a port on your server to configure SIP phones, you’re compromised. If your users have public IP access to the User Control Panel (UCP), you’re compromised. Any user can delete any asterisk-owned file from your server. Use a Digium® or Sangoma® VoIP phone? You’re compromised. Actually, all you need is the MAC address of one of these phones and its password login and the User-Agent header of any Digium Phone (Digium D60 2_7_0), and you’re compromised if the dphone API RestApp is running on your server. Are you running the API module in FreePBX with public IP address access to your server? You’re compromised because of a bug in the generateDocumentation function. These are classic command injection and authentication bypass issues in FreePBX that can even be triggered from the bad guys’ servers using generated access tokens.
Sangoma, Sangoma. Wherefore Art Thou? You can read all about Sangoma’s Bug Bounty Program here. It was conveniently deleted immediately after this zero-day vulnerability was reported. We’ve reproduced the page from the Wayback Machine. So what happened? According to the good pseudonym researcher, not much. Aside from an initial response indicating that the bugs had been addressed, there was never a follow-up response when the researcher advised that the patches did not work.
What Can You Do? Your safest bet is to switch to a security model that does not expose your server or its assets to the public Internet. Incredible PBX is an out-of-the-box platform that provides this security. It’s available for Rocky 8 (not recommended), Debian 11, Ubuntu 22.04 as well as virtualization platforms including VirtualBox, VMware, Proxmox, Windows WSLg, LXC Linux Containers, and Apple’s UTM platform. OpenVPN is also strongly recommended.
At the very minimum, put your server behind a hardware-based firewall with no public Internet exposure until these bugs are properly resolved. You’ve been warned!
Follow updated comments on this issue on the FreePBX Forum and the VoIP-info.org Forum.
Originally published: Sunday, September 17, 2023 Updated: October 13, 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.
Introducing Incredible PBX 2027 for LXC Linux Containers
We introduced Zorin OS in our recent review of the latest Acer Aspire 5 notebook PC. If you’ve never heard of Zorin, it’s probably the best desktop operating system available. While it is Linux-based, it can look like any desktop you’re already familiar with including Windows 11 and even a Mac if you spring for the $39 Pro version. It can be installed on as many PCs as you personally own, and Zorin Pro provides an incredible assortment of apps including the full LibreOffice suite, VirtualBox, music apps including Clementine, video streaming with VLC Media Player, Gnome’s Gmail, Firefox, and a number of free photo editing tools. In short, any app that will run under Ubuntu will run under Zorin. If you’re a diehard OpenVPN fan like us, it works swimmingly under Zorin and is a breeze to install.
After walking you through a Zorin install, we want to introduce you to a new Linux virtualization solution called LXC Linux Containers. It offers many of the same features you’d find in the OpenVZ cloud platform including shared kernel access and almost instantaneous startups. On the Zorin platform, it’s a one-minute setup procedure. We’ve even built Incredible PBX 2027 LXC images for both Debian 11 and Ubuntu 22.04 servers so you can bring up one or more full-featured unified communications platforms in a matter of minutes.
Preparing Zorin 16 Installation Media
Prepare a USB stick after downloading the Zorin 16 ISO of your choice. The easiest method is to download and install balenaEtcher on your desktop machine. It’s available for Windows, Mac, and Linux. Insert your USB stick into your desktop computer and then run the balenaEtcher app. Choose your Zorin ISO after clicking Flash from File. Choose your USB stick from Select Target. Be sure you don’t accidentally choose your desktop’s main drive! Click the Flash button to begin. Once the ISO is transferred, gracefully eject your USB stick from your desktop machine.
Configuring Windows 11 for Dual-Boot
We won’t bore you with a tutorial on setting up Windows 11. It works much the same way on almost any modern computer. Once you get Windows 11 installed, the only change we need to make is to shrink the main Windows partition so that there is some room to install and use Zorin. For Lenovo and HP machines, don’t waste your time trying to get Zorin installed. It won’t. For other machines, from the Windows desktop, tap the Windows key and Search for “Create and format hard disk partitions”. Highlight your main Windows drive, usually called “OS (C:)”. Control-tap on the Touchpad or Right-Click your mouse in that partition and select “Shrink Volume”. Choose the amount of space to shrink the Windows partition and allocate to Zorin. We chose 250GB, but that’s your call. Reboot your machine for the changes to take effect. When the boot logo appears, press F2 repeatedly to enter the BIOS setup. Click on the Security tab and set a Supervisor Password. No other changes are necessary. If you can disable UEFI do so, but it’s not required. In the boot options, specify your USB drive as the primary boot source so we can install Zorin from a USB stick. Move to the Exit tab and choose Exit and Save Changes to initiate a reboot.
Installing Zorin 16 on a Desktop PC
Now we’re ready to install Zorin on your desktop machine. Insert the USB stick and turn on or reboot the computer. If the machine doesn’t boot Zorin from the USB stick, you may need to make the USB port your primary boot device in the BIOS settings. Choose the LIVE Session option to make sure Zorin will start on your machine. Also make sure you can configure WiFi in the Settings -> Network tab. If all goes well, click the Install Zorin link on the desktop to install Zorin onto your empty partition when prompted. Upon reboot, if UEFI is enabled, be sure to register Zorin in the UEFI whitelist when prompted. In some BIOS configurations, you may need to set NVME:ubuntu as Primary in the Boot setup’s Drive Priorities after installing Zorin. This was the case on our favorite MiniPC desktop, the MINISFORUM Venus Series NAB6 Mini PC (shown below). Now reboot and choose Zorin from the dual-boot menu.
One final tip. If you’ve activated OpenVPN on your Zorin 16 machine, all of the LXC Containers can connect to other OpenVPN servers without the need to install an OpenVPN client on each of the LXC Containers.
Setting Up LXC Containers on a Linux Desktop
1. After loading Zorin, drop down to the Terminal window from the desktop. If you haven’t previously configured the root user account, issue the following commands:
#Set up a very secure root password sudo passwd root # Login as root with your root password su root
2. Install the LXC Linux Container components:
su root apt install lxc lxc-templates lxctl lxc-checkconfig
3. Download, install, and configure an IncrediblePBX2027-U LXC container (3GB):
su root cd / wget https://filedn.com/lBgbGypMOdDm8PWOoOiBR7j/IncrediblePBX2027-LinuxContainers/iPBX2027U.tar.gz tar zxvf iPBX2027U.tar.gz lxc-start -n IncrediblePBX2027-U lxc-attach -n IncrediblePBX2027-U /etc/profile.d/helloworld.sh reboot su root cd ~ pbxstatus ./update-IncrediblePBX passwd root ./admin-pw-change ./apache-pw-change ./timezone-setup
4. Download, install, and configure an IncrediblePBX2027-D LXC container (3GB):
su root cd / wget https://filedn.com/lBgbGypMOdDm8PWOoOiBR7j/IncrediblePBX2027-LinuxContainers/iPBX2027D.tar.gz tar zxvf iPBX2027D.tar.gz lxc-start -n IncrediblePBX2027-D lxc-attach -n IncrediblePBX2027-D /etc/profile.d/helloworld.sh reboot su root cd ~ pbxstatus ./update-IncrediblePBX passwd root ./admin-pw-change ./apache-pw-change ./timezone-setup
5. Every time you start or restart the container, be sure to issue these commands:
iptables-restart fwconsole restart /root/update-IncrediblePBX pbxstatus
Mastering LXC Container Commands
Here’s a quick list of the main LXC Container commands together with examples:
Switch to root user to begin or add sudo prefix to every command!
1. List LXC Containers: lxc-ls
2. Start LXC Container: lxc-start -n IncrediblePBX2027-D
3. Information about LXC Container: lxc-info -n IncrediblePBX2027-D
4. Activate Console for LXC Container: lxc-attach -n IncrediblePBX2027-D
5. Duplicate/clone an LXC Container: lxc-copy OrigContainer -N NewContainer
6. Stop an LXC Container: halt | lxc-stop -n IncrediblePBX2027-U
7. Create Debian 11 image: lxc-create -t download -n DEBIAN11 — -d debian -r bullseye -a amd64
8. Delete/Destroy an LXC Container: lxc-destroy -n IncrediblePBX2027-D
Originally published: Monday, September 11, 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.
VirtualBox Wonder: It’s Incredible PBX 2027-D for Debian 11
If you’re new to the VoIP world and want to kick the tires to see what you’re missing, then today’s one minute setup is for you. You can purchase a $1 a month phone number in your choice of area codes from CallCentric. Setup instructions here. If you decide VoIP is not for you, you don’t have to buy anything else ever. And you can use almost any desktop computer you already own to bring up the VirtualBox® edition of Incredible PBX® with Debian 11. Apple’s new ARM-based Macs unfortunately do not support VirtualBox. Here’s a great alternative for you.
If you’ve followed Nerd Vittles over the years, you already know that VirtualBox from Oracle® is one of our favorite platforms. Once VirtualBox is installed on your desktop computer, adding Incredible PBX is a snap. Download the latest Incredible PBX 2027-D image for Debian 11, double-click on the downloaded image and boom. In less than a minute, your PBX is ready to use with the very latest components of Asterisk® 20 and FreePBX® 16. There are no hidden fees or crippleware to hinder your use of Incredible PBX for as long as you like. Of course, the Incredible PBX feature set is included as well which brings you nearly three dozen applications for Asterisk that will revolutionize your communications platform. Speech-to-text, voice recognition, and a Siri-like telephony interface are as close as your phone.
Installing Oracle VM VirtualBox
Oracle’s virtual machine platform inherited from Sun is amazing. It’s not only free, but it’s pure GPL2 code. VirtualBox gives you a virtual machine platform that runs on top of many desktop operating systems including Linux, Windows, and Intel-based Macs. In terms of limitations, we haven’t found any. We even tested this on an Atom-based Windows 7 machine with 2GB of RAM, and it worked without a hiccup. So step #1 today is to download one or more of the VirtualBox 6.1 installers. Our recommendation is to put all of these 100MB installers on a USB thumb drive.1 Then you’ll have everything in one place whenever and wherever you happen to need it. Once you’ve downloaded the software, simply install it onto your favorite desktop machine. Accept all of the default settings, and you’ll be good to go. For more details, here’s a link to the Oracle VM VirtualBox User Manual.
NOTE: A VirtualBox 6.1 platform is required. Adjust screen size in View -> Virtual Screen.
Installing the Incredible PBX for Debian 11 Image
To begin, download the Incredible PBX 2027-D image with Debian 11 (3.7 GB) onto your desktop.
Next, double-click on the Incredible PBX .ova image on your desktop. Be sure to check the box to initialize the MAC address of the image if you’re using an older version of VirtualBox. Then click Import. Once the import is finished, you’ll see a new Incredible PBX 2027-D virtual machine in the VM List of the VirtualBox Manager Window. Let’s make a couple of one-time adjustments to the Incredible PBX configuration to account for possible differences in sound and network cards on different host machines.
(1) Click once on the Incredible PBX 2027-D virtual machine in the VM List. Then (2) click the Settings button. In System tab, check Hardware Clock in UTC Time. In the Audio tab, check the Enable Audio option and choose your sound card. In the Network tab for Adapter 1, check the Enable Network Adapter option. From the Attached to pull-down menu, choose Bridged Adapter. Then select your network card from the Name list. Then click OK. That’s all the configuration that is necessary for Incredible PBX.
Running Incredible PBX 2027-D in VirtualBox
Once you’ve imported and configured the Incredible PBX Virtual Machine, you’re ready to go. Highlight the Incredible PBX 2-27-D virtual machine in the VM List on the VirtualBox Manager Window and click the Start button. The standard Linux boot procedure will begin and, within a few seconds, you’ll get the familiar Linux login prompt. During the bootstrap procedure, you may see a couple of dialogue boxes pop up that explain the keystrokes to move back and forth between your host operating system desktop and your virtual machine. Remember, you still have full access to your desktop computer. Incredible PBX 2027-D is merely running as a task in a VM window. Always gracefully halt Incredible PBX just as you would on any computer.
Here’s what you need to know. To work in the Incredible PBX virtual machine, just left-click your mouse while it is positioned inside the VM window. To return to your host operating system desktop, press the right Option key on Windows machines or the left Command key on any Mac. On Linux desktops, press the right Ctrl key. For other operating systems, read the dialogue boxes for instructions on moving around. To access the Linux CLI, login as root with the default password: password.
Setting Your Incredible PBX Passwords
When the base install finishes and the VM restarts, log back in as root. Change your root password by issuing the command: passwd
. Then update your admin password for web access: ./admin-pw-change. Also update your admin password for web applications: ./apache-pw-change. You’ll need these admin passwords to access the web GUI to manage your PBX as well as to use the AsteriDex and Reminders web apps.
Setting the Date and Time with VirtualBox
On some platforms, VirtualBox has a nasty habit of mangling the date and time of your virtual machine. Verify that you have enabled the Hardware Clock in UTC Time option for your virtual machine as documented above. If pbxstatus still shows an incorrect time, manually set the date and time and then update the hardware clock. Here’s how assuming 08130709 is the month (August), day (13), and correct time (7:09 a.m.) of your server:
date 08130709 clock -w
Configuring VoIP.ms for Incredible PBX
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 User/Password Authentication. Create a username and password for your subaccount. For Transport, choose UDP. For Device Type, choose Asterisk. 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.
Configuring Anveo Direct for Incredible PBX
To sign up for Anveo Direct service, sign up on their web site and then login. After adding funds to your account, purchase a DID under Inbound Service -> Order DID. Next, choose Configure Destination SIP Trunk. Give the Trunk a name. For the Primary SIP URI, enter $[E164]$@server-IP-address. For Call Options, select your new DID from the list. You also must whitelist your public IP address under Outbound Service -> Configure. Create a new Call Termination Trunk and name it to match your server. For Dialing Prefix, choose six alphanumeric characters beginning with a zero. In Authorized IP Addresses, enter the public IP address of your server. Set an appropriate rate cap. We like $0.01 per minute to be safe. Set a concurrent calls limit. We like 2. For the Call Routing Method, choose Least Cost unless you’re feeling extravagant. For Routes/Carriers, choose Standard Routes. Write down your Dialing Prefix and then click the Save button.
Before you can make outbound calls through Anveo Direct from your PBX, you first must configure the Dialing Prefix that you wrote down in the previous step. Log into the GUI as admin using a web browser and edit the Anveo-Out trunk in Connectivity -> Trunks. Click on the custom-Settings tab and replace anveo-pin with your actual Dialing Prefix. Click Submit and Apply Config to complete the setup.
By default, incoming Anveo Direct calls will be processed by the Default inbound route on your PBX. If you wish to redirect incoming Anveo Direct calls using DID-specific inbound routes, then you’ve got a bit more work to do. In addition to creating the inbound route using the 11-digit Anveo Direct DID, enter the following commands after logging into your server as root using SSH/Putty:
cd /etc/asterisk echo "[from-anveo]" >> extensions_custom.conf echo "exten => _.,1,Ringing" >> extensions_custom.conf echo "exten => _.,n,Goto(from-trunk,\${SIP_HEADER(X-anveo-e164)},1)" >> extensions_custom.conf asterisk -rx "dialplan reload"
Configuring a Desktop Softphone for Incredible PBX
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 a 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.
The easiest way to get started is to download a free softphone onto your desktop. We recommend Zoiper 5 for personal use. You can download and install it from here. Once installed, you’ll first need to decipher your extension password for an extension you wish to use to connect to Zoiper. Log into your Linux CLI and switch to the root user as documented above. Then run: /root/show-passwords. Specify 701 and 705 as the starting and ending extensions. Make note of the 701 extension password. Run pbxstatus and make note of your LAN IP address, e.g. 179.xx.yy.zz. Next, start up Zoiper from your desktop and choose the free version. For the desired account enter: 701@179.xx.yy.zz:5061 where 179.xx.yy.zz is the local IP address of your virtual machine. For the password, enter the 701 extension password you deciphered above. Press ENTER twice to complete the connection. When the dialer appears, try out some of the free Incredible PBX applications below.
NOTE: You must use the Keypad option shown in the right window of Zoiper after your call is connected for any app that prompts for keyboard input.
Here are some numbers to try:
123 - Reminders 222 - Timeclock for Employees (try 12345) 223 - AsteriDex Lookup & Dialer (try 335 for Delta Airlines) 947 - Weather by ZIP Code (requires keyboard entry of 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. For Android users, check out the terrific new VitalPBX Communicator. Works flawlessly with Incredible PBX.
Configuring a Softphone Extension on a Smartphone
Adding an Incredible PBX extension to your smartphone gets a little trickier. Whether you’re an iPhone or Android lover, all smartphones use batteries, and you don’t want to drain your battery by running a softphone as a foreground app all the time. Fortunately, you now have some choices in softphones engineered to work without draining your battery. While they all cost money, it’s not much money. We’ve written about all the choices, and you’ll find the links in our Softphone Provider Recommendations on the new Incredible PBX Wiki.
With PJsip extensions, you’re not limited to a single phone connection at a time, and we’ve preconfigured extension 701 to support ten simultaneous connections. The setup on the softphone side is simple. For the server, enter the actual IP address of your PBX in the following format: 22.33.44.55:5061. Then enter 701 for the username and enter the password assigned to the 701 extension on your PBX. When an incoming call arrives, all the phones registered to extension 701 will ring simultaneously. Simply answer the call on the phone that is most convenient. For extension 702, you can change the number of simultaneous connections by clicking the Advanced tab and setting the number in Max Contacts.
Configuring Incredible PBX for VirtualBox
In order to take advantage of all the Incredible PBX applications, you’ll need to obtain IBM text-to-speech (TTS) and speech-to-text (STT) credentials as well as a (free) Application ID for Wolfram Alpha.
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 are mostly FREE even though you must provide a credit card when signing up. The IBM signup process explains their pricing plans.
To use Wolfram Alpha, 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.
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 usernames and passwords for the IBM Watson TTS and STT services. The TTS credentials will look like the following: $IBM_username and $IBM_password. The STT credentials look like this: $API_USERNAME and $API_PASSWORD. Don’t mix them up. 🙂
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.
Using AsteriDex with Incredible PBX
AsteriDex is a web-based dialer and address book application for Asterisk and Incredible PBX. It lets you store and manage phone numbers of all your friends and business associates in an easy-to-use SQLite3 database. You simply call up the application with your favorite web browser: http://pbx-ip-address/asteridex4/. When you click on a contact that you wish to call, AsteriDex first calls you at extension 701, and then AsteriDex connects you to your contact through another outbound call made using your default outbound trunk that supports numbers in the 1NXXNXXXXXX format.
Keeping FreePBX 16 Modules Current
We strongly recommend that you periodically update all of your FreePBX modules to eliminate bugs and to reduce security vulnerabilities. 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
Taking Incredible PBX for a Test Drive
You can take Incredible PBX on a test drive by dialing D-E-M-O (3366) from any phone connected to your PBX.
With Allison’s Demo IVR, you can choose from the following options:
- 0. Chat with Operator — connects to extension 701
- 1. AsteriDex Voice Dialer – say "Delta Airlines" or "American Airlines" to connect
- 2. Conferencing – log in using 1234 as the conference PIN
- 3. Wolfram Alpha Almanac – say "What planes are flying overhead"
- 4. Lenny – The Telemarketer’s Worst Nightmare
- 5. Today’s News Headlines — courtesy of Yahoo! News
- 6. Weather by ZIP Code – enter any 5-digit ZIP code for today’s weather
- 7. Today in History — courtesy of OnThisDay.com
- 8. Chat with Nerd Uno — courtesy of SIP URI connection to 3CX iPhone Client
- 9. DISA Voice Dialer — say any 10-digit number to be connected
- *. Current Date and Time — courtesy of Incredible PBX
Originally published: Monday, September 4, 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.
- Many of our purchase links refer users to Amazon when we find their prices are competitive for the recommended products. Nerd Vittles receives a small referral fee from Amazon to help cover the costs of our blog. We never recommend particular products solely to generate Amazon commissions. However, when pricing is comparable or availability is favorable, we support Amazon because Amazon supports us. [↩]
Meet the $500 Multi-Purpose Powerhouse: The Acer Aspire 5
We review lots of hardware and numerous operating systems, but none come close to this steal from Amazon for under $500. The Acer Aspire 5 comes in many flavors at many price points. But, if loads of RAM (20GB) and a huge storage capacity (1TB NVMe SSD) top your list of must-haves, nothing we’ve found can touch this deal. The rest of its pedigree is equally impressive: a Ryzen 3 3350U 4-core processor (up to 3.5GHz), backlit keyboard, fingerprint reader for one-touch logins, Amazon Alexa, and Windows 11. As most of you know, our Amazon referral links provide funding to keep the lights on at Nerd Vittles, but none of our recommendations are based upon referral revenue. We eat our own dog food so these are products that we not only test but actually use.
The surprises don’t stop with this hardware discovery. Despite having read a number of articles decrying the lack of Linux support with Acer’s Aspire 5, we found quite the opposite. By setting up a dual-boot configuration, we were able to easily load our absolute favorite desktop Linux distribution, Zorin OS 16. Zorin comes in several flavors: a free offering, a School edition, and a $39 Pro version that can be installed on as many non-business computers as you own. For businesses, you can afford a license for each machine. For schools, there is no charge for the super-charged education edition. We opted for Zorin Pro whose desktop can emulate eight different desktop favorites including Ubuntu, Windows, and Mac. Here are our favorites:
Our project today is to walk you through setting up a dual-boot machine where you can elect to run Windows 11 or Zorin 16 when you startup your machine. Why have two operating systems? The primary reason is you get the best of both worlds. All of the traditional Windows 11 applications will run without a hiccup. And Zorin Pro provides an incredible assortment of apps including the full LibreOffice suite, VirtualBox, music apps including Clementine, video streaming with VLC Media Player, Gnome’s Gmail, Firefox, and a number of free photo editing tools. In short, all apps that will run under Ubuntu will run under Zorin. If you’re a diehard OpenVPN fan like us, it works swimmingly under both operating systems.
Configuring Acer Aspire 5 for Dual-Boot
We won’t bore you with a tutorial on setting up Windows 11 on the Acer Aspire 5. It works much the same way as it does on any other modern computer. Once you get Windows 11 installed, the only change we need to make is to shrink the main Windows partition so that there is some room to install and use Zorin. From the Windows desktop, tap the Windows key and Search for “Create and format hard disk partitions”. Highlight your main Windows drive, usually called “OS (C:)”. Control-tap on the Touchpad in that partition and select “Shrink Volume”. Choose the amount of space to shrink the Windows partition and allocate to Zorin. We chose 250GB, but that’s your call. Reboot your machine for the changes to take effect. When the boot logo appears, press F2 repeatedly to enter the BIOS setup. Click on the Security tab and set a Supervisor Password. No other changes are necessary. Move to the Exit tab and choose Exit and Save Changes to initiate a reboot.
Preparing Zorin 16 Installation Media
Prepare a USB stick after downloading the Zorin 16 ISO of your choice. The easiest method is to download and install balenaEtcher on your desktop machine. It’s available for Windows, Mac, and Linux. Insert your USB stick into your desktop computer and then run the balenaEtcher app. Choose your Zorin ISO after clicking Flash from File. Choose your USB stick from Select Target. Be sure you don’t accidentally choose your desktop’s main drive! Click the Flash button to begin. Once the ISO is transferred, gracefully eject your USB stick from your desktop machine.
Installing Zorin 16 on Acer Aspire 5
Now we’re ready to install Zorin on your Aspire 5. Insert the USB stick and turn on or reboot the computer. The machine will boot Zorin from the USB stick. Choose the LIVE Session option to make sure Zorin will start. Also make sure you can configure WiFi in the Settings -> Network tab. If all goes well, click the Install Zorin link on the desktop to install Zorin onto your empty partition when prompted. Upon reboot, be sure to register Zorin in the UEFI whitelist when prompted.
Enabling VirtualBox in Zorin 16
UEFI machines are temperamental about which non-Windows apps can run. If you wish to enable VirtualBox, here are the steps. First, run the Terminal app and reinstall VirtualBox:
apt remove virtualbox-dkms apt install virtualbox-dkms
You’ll be prompted to set up a password for your new VirtualBox UEFI key (8 characters). Then reboot and register the new key when prompted. Enter the password when prompted. Now run VirtualBox from the Applications menu, and you should be good to go.
Installing Incredible PBX 2027-U for VirtualBox
Once you have VirtualBox running successfully, you can install Incredible PBX 2027-U. Using the Firefox browser, download the IncrediblePBX2027-U.ova image from here. Double-click on the .ova image to install it into VirtualBox. Then click RUN to start up Incredible PBX.
Read more about Linux Containers.
Originally published: Monday, August 21, 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.
Adding Incredible PBX Goodies & More to VitalPBX 4
As continued use of FreePBX® becomes more and more precarious because of deprecated components and looming incompatibility with Asterisk® 21, the appeal of 3CX and VitalPBX as a VoIP platform becomes increasingly compelling. Whether you’re a home user, a small business, or a call center, VitalPBX provides a solution to meet your requirements. To make the transition a bit less painful, today we introduce a number of popular Incredible PBX applications for VitalPBX 4. And, as always, all of the Incredible PBX additions are free, open source, and GPL code.
If you’re unfamiliar with the VitalPBX VoIP platform, here are some features that may be of interest. First, it runs on the latest Debian 11 platform and is Asterisk-based freeware with optional commercial components. Most GPL applications designed for FreePBX will run equally well under VitalPBX without modification. Second, VitalPBX provides multi-tenant functionality with the purchase of a commercial module. Third, VitalPBX supports Asterisk High Availability (HA) failover at no cost using an open source script provided by the VitalPBX developers. Complete tutorial here. Compare this to the FreePBX HA offering which retails for $1,500. Commercial modules offer Microsoft Teams integration as well as the full complement of Sonata Suite Call Center offerings: Billing, Switchboard, Stats, Dialer, and Recordings. Faxing, Paging, Queues Callback, and Phone Provisioning modules are also available at modest cost. Keep reading if any of these are of interest to you.
Getting Started with VitalPBX
Before you can install VitalPBX applications, you’ll obviously need a VitalPBX server. You can build the platform with on-premise hardware, or in the cloud using one of our recommended providers, or on a Raspberry Pi. We recommend at least 4GB of RAM and at least a 30GB disk. Two gigs of RAM will suffice with a 2GB swap file. VitalPBX can be deployed using the VitalPBX ISO, or you can start with a fresh Debian 11 platform and then run the VitalPBX install script:
wget https://repo.vitalpbx.com/vitalpbx/v4/apt/debian_vpbx_installer.sh chmod +x debian_vpbx_installer.sh apt install sudo ./debian_vpbx_installer.sh
For Raspberry Pi deployments, here are the steps using a 32GB microSD card:
Begin by downloading Raspberry Pi Imager for PC, MAC, or Ubuntu desktop. Run the Imager from your desktop computer with the following settings after inserting your 32GB microSD card into your desktop machine (see the sidebar for an inexpensive microSD/USB device):
OS: Raspberry Pi OS (other) -> Raspberry Pi OS Lite (64-bit) Storage: Select your microSD card (32GB Type 10 recommended) Click WRITE
Remove the microSD card from your desktop computer. Insert it into your Raspberry Pi and power on the device. The initial Raspberry Pi OS setup for the United States follows. For users elsewhere, follow your nose.
Choose keyboard layout: (Other, English (US) for USA users) Keyboard Layout: English (US) username: nerd password: make it secure, type it twice login: nerd with new password sudo passwd root create new secure root password logout: exit login: root with new root password userdel nerd nano -w /etc/ssh/sshd_config edit and uncomment: PermitRootLogin yes uncomment PasswordAuthentication yes save: Ctrl-X, Y, then ENTER key run: raspi-config Settings Apply to: pi Localization: WLAN Country: US System Options: Wireless LAN: Enter your SSID and SSID passphrase System Options: Hostname: debian System Options: Power LED: YES Interface Options: SSH: YES Localization: Locale: Disable en_GB.UTF-8 and Enable en_US.UTF-8 Localization: TimeZone: America, NewYork FINISH and Reboot
Once your Raspberry Pi has restarted, login as root with your root password and run the debian_vpbx_installer.sh script from above.
Adding a Whitelist & Hardening Your Firewall
We’ve built firewall whitelist rules for some of our favorite providers: Skyetel, BulkVS, VoIP.ms, Acrobits, SignalWire, Nexmo, Callcentric, and Anveo Direct. Also included are all private LAN, non-routable IP addresses and the default OpenVPN addresses. Issuing the following commands will install this whitelist and overwrite your existing firewall whitelist, if any. WARNING: The existing VitalPBX Firewall exposes all of your SIP ports as well as SSH, HTTP, and HTTPS so deploy VitalPBX behind a hardware-based firewall unless you significantly harden the VitalPBX Firewall ports. If you’re sure you’ve whitelisted the IP addresses of all your remote PCs, extensions, and trunk providers in Admin -> Firewall -> Access Control, then you can harden your firewall and protect your server by deleting the following entries in Admin -> Firewall -> Rules: HTTP, HTTPS, SSH, PJSIP, SIP, and IAX2. Then test all your connections to make certain they still are accessible. For future additions, we strongly recommend using OpenVPN addresses which require no new Firewall additions.
cd /root wget https://filedn.com/lBgbGypMOdDm8PWOoOiBR7j/VitalPBX-4/whitelist.sql mysql -u root ombutel < whitelist.sql vitalpbx apply-firewall iptables -nL
gTTS Text-to-Speech Engine for VitalPBX
We've tested and implemented at least a half dozen text-to-speech engines to support Asterisk applications including Festival, FLITE, Amazon's Polly, IBM's Bluemix TTS, Pico TTS, and more. None are better than Google's free gTTS engine. Here's how to deploy it with VitalPBX to support all of your applications requiring TTS support. Login to your server as root and issue the following commands:
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
Adding Custom Contexts Support to VitalPBX
In addition to the commercial modules, there are a number of free VitalPBX add-ons, one of which is Custom Contexts. We would recommend adding all of the free ones to get started. After logging into the web interface as admin, navigate to Admin -> Add-ons -> Add-ons. Click the Check Online button to load the latest available add-ons. Then click the Install icon for the following add-ons: System API, Authentication Codes, Bulk Extensions, Custom Contexts, Phone Books, and Task Manager. Once these add-ons are installed, you can install the following components.
Adding Incredible PBX Starter Kit to VitalPBX
We've put together a collection of some of our favorite Incredible PBX applications to enhance the VitalPBX platform. These include telephone apps like Yahoo News Headlines (dial 951), NWS Weather Reports by ZIP Code (947), Today in History (86329), and Telephone Reminders (123). In addition, we've reworked the pbxstatus utility (above) which will display whenever you log into your server as root from the Linux command line.
Many of these applications rely upon the gTTS text-to-speech engine so be sure you install it before proceeding.
To install the Incredible PBX collection, log into your server as root and issue the following commands:
cd /etc/asterisk/vitalpbx cp extensions__80-IncrediblePBX.conf /root/extensions__80-IncrediblePBX.conf.bak cd / wget https://filedn.com/lBgbGypMOdDm8PWOoOiBR7j/VitalPBX-4/incrediblepbx.tar.gz tar zxvf incrediblepbx.tar.gz rm -f incrediblepbx.tar.gz asterisk -rx "dialplan reload" echo "0 0 * * * root /var/lib/asterisk/agi-bin/run_recurring >/dev/null 2>&1" >> /etc/crontab echo "3 0 * * * root /var/lib/asterisk/agi-bin/run_reminders >/dev/null 2>&1" >> /etc/crontab
Using Telephone Reminders with VitalPBX
Nerd Vittles Telephone Reminder System has been reworked for VitalPBX 4 and PHP 8.1. It lets you schedule reminders for future events (at least 4 minutes in the future) by telephone by dialing 123. When the appointed date and time arrives, Asterisk swings into action and places a call to the number you designate to deliver a customized reminder message. Recurring reminders also are supported. You can set up reminders that place calls daily or on weekdays as well as weekly, monthly, and annually. This means it can be used to wake you up in the morning, or to remind Granny to take her medicine every day, or to remind your Little League team of practice times and locations, or to remind you and your customers of scheduled and recurring events. External reminder calls are supported using your default outbound route's dial string, e.g. NXX-NXX-XXXX.
The complete tutorial for Telephone Reminders 4 is available here. The web interface is not yet supported on the VitalPBX platform; however, this Telephone Reminders app adds features that are not available in the *38 offering included in the VitalPBX Feature Code listing. Among these are optional recurring reminders as well as the ability to revise your reminder message before actually scheduling it.
Headline News & Weather Forecasts & Today in History
These three applications are self-explanatory. The best way to learn about them is to dial the three extensions from any phone registered on your VitalPBX server: Headline News (dial 951), Weather Forecasts by ZIP Code (dial 947), and Today in History (dial T-O-D-A-Y)
Adding OpenVPN to VitalPBX
The most secure method for accessing VitalPBX is to place your server behind a hardware-based firewall and use OpenVPN from the client PCs and phones to access the server. VitalPBX includes an OpenVPN add-on that includes both a server and a free 2-client license. For unlimited clients, you can purchase the commercial module for $120. In the alternative, you can deploy your own OpenVPN server and clients using this Nerd Vittles tutorial for Debian.
If you already have an OpenVPN server in operation, create an OpenVPN client for VitalPBX and name it incrediblepbx.ovpn. Copy it into the /etc directory of your VitalPBX server. Then issue the following commands and reboot to activate OpenVPN on your VitalPBX server:
apt-get update apt-get -y install openvpn unzip cd / wget https://filedn.com/lBgbGypMOdDm8PWOoOiBR7j/VitalPBX-4/openvpn-vitalpbx.tar.gz tar zxvf openvpn-vitalpbx.tar.gz rm -f openvpn-vitalpbx.tar.gz shutdown -r now
Getting Started with Faxing
If your deployment is for a home or home office, then VitalPBX offers a free faxing component for a single trunk. We've tested this with VoIP.ms, and it works flawlessly. Begin by enabling the Virtual Faxes module. For your Trunk, enable FAX Detection and T.38, if desired. For your Fax Device, provide a Description, Destination Email, and CallerID Name and Number. For your Inbound Route, enable Fax Detection and Fax Destination of Fax Devices selecting the Destination Description you assigned to your Fax Device. Now place a test call to your DID from FaxZero.com. The Fax Sending module worked equally well.
Adding CallerID Names for Incoming Calls
Legal Disclaimer: Most CNAM providers have restrictions regarding caching of CNAM data. The courts consistently have ruled that phonebook data is not copyrightable. And every PBX caches CNAM data. After all, that's what CDR logs are all about. Consult with your own attorney if you have concerns, or simply stop reading here. 🙂
Some providers of DIDs also offer CallerID Name (CNAM) service for incoming calls. With VoIP.ms, it's optional and costs $0.008 per call. With BulkVS, it's mandatory and costs $0.003 per call. With many DID providers, you will only receive the CallerID Number on incoming calls. Thus was born our CallerID Trifecta and later Superfecta add-ons many years ago. Most of the free sources from yesteryear have disappeared, and we've only found two commercial sources that are reasonably priced at $0.003 per call: BulkCNAM (from the BulkVS folks) and EZCNAM at same price with a 25¢ credit to let you try out their service. Both work well.
Once you have installed Custom Context module for VitalPBX as well as the Incredible PBX Starter Kit from above, here are the steps to implement CNAM lookups on your incoming calls. First, sign up for an account with one or both of the providers and obtain a SOAP API Key from BulkCNAM or a traditional API key from EZcnam. Then login to your server as root and create an executable install script using the following template for BulkCNAM:
cd /root rm -f superfecta-bulkcnam wget https://filedn.com/lBgbGypMOdDm8PWOoOiBR7j/VitalPBX-4/superfecta-bulkcnam sed -i 's|SOAP-API-KEY|actual-key|' superfecta-bulkcnam sed -i '\:// BEGIN CallerID Superfecta:,\:// END CallerID Superfecta:d' /etc/asterisk/vitalpbx/extensions__80-IncrediblePBX.conf cat superfecta-bulkcnam >> /etc/asterisk/vitalpbx/extensions__80-IncrediblePBX.conf asterisk -rx "dialplan reload"
Or create an executable install script using the following template for EZCNAM:
cd /root rm -f superfecta-ezcnam wget https://filedn.com/lBgbGypMOdDm8PWOoOiBR7j/VitalPBX-4/superfecta-ezcnam sed -i 's|=API-KEY|=actual-key|' superfecta-ezcnam sed -i '\:// BEGIN CallerID Superfecta:,\:// END CallerID Superfecta:d' /etc/asterisk/vitalpbx/extensions__80-IncrediblePBX.conf cat superfecta-ezcnam >> /etc/asterisk/vitalpbx/extensions__80-IncrediblePBX.conf asterisk -rx "dialplan reload"
In your install script of choice, replace actual-key with the SOAP API key or API key you obtained from the provider. Make the script executable (chmod +x) and then run it to install the new script in your dialplan. Then reload dialplan: asterisk -rx "dialplan reload"
As deployed, the [superfecta] context assumes you want incoming calls routed to extension 501. You can modify this in /etc/asterisk/vitalpbx/extensions__80-IncrediblePBX.conf and reload your dialplan.
In the VitalPBX GUI, login as admin and navigate to PBX -> Applications -> Custom Contexts and create a new Custom Context and reload the dialplan:
Description: CallerID Superfecta Context: superfecta Extension: s Priority: 1 Destination: Custom Contexts -> Incredible PBX
In PBX -> Calls Routing -> Inbound Routes, edit your existing Inbound Route for your incoming DID and set the Inbound Destination to: Custom Contexts -> CallerID Superfecta. Then reload your dialplan.
How It Works: When an incoming call from a new caller is detected, the Superfecta script will greet the caller and ask the caller to press 7. Once the caller presses 7, the Superfecta script will look up the CNAM entry matching the CallerID Number and then route the call to extension 501. Successful callers are whitelisted and logged in the Asterisk database: database show cidname. When the same caller calls again, the call will be routed to extension 501 without prompting to press 7. Additional routing options are available by editing the [superfecta] context.
Configuring Gmail as SMTP Relay Host
The VitalPBX Portal includes the option to configure either a self-hosted email server (which may or may not work depending upon your upstream provider) as well as an SMTP relay host such as Gmail. You'll find it under Admin -> System Settings. In the alternative, you may prefer to do it yourself. Here's how.
1. Log into your server as root and issue the following command:
dpkg-reconfigure postfix
Click OK on the first dialog. Choose Internet Site as your Type of Mail Configuration. Accept the defaults for the System Mail Name, Root and Postmaster Recipient, and Other Destinations. Choose Yes for Forced Synchronous updates. Accept the defaults for the Local Networks, Default Mailbox Size, and Local Address Extension Character. Choose IPv4 for the Internet Protocol.
2. Once Postfix is reconfigured, edit /etc/postfix/main.cf. In the second section of code beginning with relayhost =, replace the relayhost= line with the following block of commands:
relayhost = [smtp.gmail.com]:587 smtp_use_tls = yes smtp_sasl_auth_enable = yes smtp_sasl_security_options = noanonymous smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt smtp_fallback_relay =
3. Create the following new file using your Gmail account name and password.
nano -w /etc/postfix/sasl_passwd
:
[smtp.gmail.com]:587 yourname@gmail.com:yourpassword
5. Change the permissions on the sasl_passwd file:
chmod 600 /etc/postfix/sasl_passwd
6. Use postmap to compile and hash the sasl_passwd file:
postmap /etc/postfix/sasl_passwd
7. Restart Postfix: systemctl restart postfix
8. apt -y install mailutils
9. Send yourself a test email: echo "test" | mail -s "Test Mail" somebody@gmail.com
Free Voicemail Transcription of Messages
For many years, Incredible PBX has included documentation to deploy IBM's Speech-to-Text (STT) engine to transcribe voicemail messages and deliver them by email for missed calls. Today we are pleased to bring that same functionality to VitalPBX 4. To get started, make certain that you have outbound email functioning on your server using the steps in the previous section. Then open an account with IBM and sign up for their LITE Speech-to-Text service. This provides you with 500 minutes a month of free STT transcription; however, you must use it at least once every 30 days or risk having your STT account terminated. So you may wish to setup up a recurring weekly reminder at a time when your extension will not otherwise be answered. Set up a short message to assure that voicemail transcription will be triggered. This will keep your LITE plan active without using many of your allocated minutes.
Once you have signed up for the STT-LITE service, navigate to Resources:AI/Machine Learning:STT in the LITE Tier and obtain or create an API Key and URL. Copy both the API Key and URL to your desktop. You'll need them as part of the VitalPBX component install below.
Next, login to your VitalPBX server as root and issue the following commands:
cd /root apt -y install dos2unix lame wget https://filedn.com/lBgbGypMOdDm8PWOoOiBR7j/VitalPBX-4/sendmailibm.tar.gz tar zxvf sendmailibm.tar.gz rm -f sendmailibm.tar.gz nano -w sendmailibm # insert your API Key and URL and Save file: Ctrl-X, Y, ENTER cp -p sendmailibm /usr/local/sbin/. cp -p voicemail__60-1-transcript.conf /etc/asterisk/vitalpbx/. asterisk -rx "dialplan reload"
When the nano editor opens in step 6 above, insert your API Key and URL in the spaces provided. Then save the file: Ctrl-X, Y, then ENTER. Continue with the remaining steps above to complete the install.
By default, this setup assumes that incoming calls are delivered to an extension on your PBX. Assuming that is extension 501, open the VitalPBX GUI and edit your Extension's settings by adding your email address in General Settings and in the Voicemail tab specify Enable Voicemail and Attach Voicemail YES. If you wish to delete the messages from your server after sending the email, specify Delete YES. Then save your settings and reload your dialplan.
Finally, make a test call to that extension and don't answer. Leave a brief message and hang up. The transcribed voicemail together with an MP3 recording of the message should arrive within a minute or two.
You Snooze, You Lose
Sorry to say our supply of free licenses to one of our favorite add-ons, the $100 Starter Kit, has been exhausted. If we get additional ones to hand out, we'll post an update here. Here's what's included in the VitalPBX Starter Kit:
Originally published: Monday, August 7, 2023 Updated: September 13, 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.