Home » Posts tagged 'fax'

Tag Archives: fax

The Most Versatile VoIP Provider: FREE PORTING

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.
 



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.
 



Building a Dirt-Cheap Communications Platform with VoIP



There are literally thousands of options when you finally ditch your landline and stagger into the VoIP world. We’re often asked, "What would you recommend if price was the major criteria?" Our response goes something like this. You get what you pay for and our recommended providers continue to be ClearlyIP and Skyetel in no particular order. Having said that, if price is your primary consideration, here’s our Plan B which we use regularly.

First, a word of explanation. This is not the Ma Bell days any longer so you’re not limited by cost to a single provider. It costs little more to have several VoIP providers than to have one since most VoIP services are pay-as-you-go. So, in our least costly category, we actually recommend two providers, BulkVS for VoIP calling and VoIP.ms for VoIP messaging. Faxing also works incredibly well with both of these providers. Just follow our fax tutorial to get started. In terms of deployment, it means you will have one primary phone number for making and receiving calls and a second number for sending and receiving SMS messages. Incoming SMS messages can optionally be delivered to either your primary email account and/or a third phone number such as your cellphone.

Obtaining a phone number to make and receive phone calls through BulkVS will set you back 6¢ a month with a 25¢ initial setup fee. Incoming calls are $0.0023 per minute. Optional 911 support is 49¢/month. Outbound calls to North America are $0.004 per minute. SMS messaging at BulkVS is cost-prohibitive. A phone number (DID) at VoIP.ms to send and receive both calls and messages runs $0.85 per month. Incoming calls run $0.009 per minute. Outbound U.S. calls are a penny a minute while calls to Canada are $0.0052 per minute. SMS messages are $0.0075 per message while MMS messages are 2¢.

We’ll be using Incredible PBX 2027 and PJsip with Asterisk® 20 and FreePBX® 16 to set the trunks up today. We’ll configure the default route for outbound calling to be BulkVS with VoIP.ms as an outage failover. All incoming calls from both DIDs can be directed to a phone, ring group, or IVR of your choice. For SMS messaging, we’ll use the FreePBX GUI to set things up. Scripts also are provided in /root/sms-voip.ms to send messages. We’ll configure the VoIP.ms messaging defaults to also relay incoming messages to both an email address and a cellphone. For additional alternatives, check out our VoIP.ms tutorial.

Getting Started with BulkVS

To get started, click the sign up link on the main BulkVS page. Then fund your account with $25 using PayPal. Or you can sign up for Net 15 billing and pay by check or credit card if you’re not in a rush to get started.

BulkVS offers two ways to set up your BulkVS trunking: IP-based authentication and SIP registration. If you don’t have a firewall which means you’re not using Incredible PBX, the first method is a little safer because nobody can spoof the IP address of your Asterisk® PBX. But it’s not for everyone. For example, if you’re behind a NAT-based firewall or if your server has a dynamic IP address, then IP-based authentication really isn’t an option. Similarly, if you don’t have control of the router that your PBX is sitting behind, then IP-based authentication won’t work since you have to forward both the SIP port (UDP 5060) and the RTP ports (10000-20000) to your PBX. The beauty of SIP registrations is they work from almost anywhere including double-NAT environments. We’ll cover the SIP registration approach below which will work for everyone. See our BulkVS tutorial for additional options.

BulkVS Setup with PJsip Registration

Step 1: Go to Inbound -> DIDs – Purchase and buy one or more DIDs for your PBX.

Step 2: Go to Interconnection -> Host – Add and add your PBX’s public IP address. Leave the port as 5060 for both chan_sip and chan_pjsip setups.

Step 3: Go to Interconnection -> Trunk Group – Add and create a Trunk Group.

Step 4: Go to Interconnection -> Trunk Group – Manage and add the Primary IP Address for your new Trunk Group. Set Delivery Type to 11DIGITS.

Step 5: Go to Interconnection -> SIP Registration and write down the credentials for one of the SIP credentials you wish to use to register your new trunks.

Step 6: Go to Inbound -> DIDs – Manage and select each telephone number. Then set the Trunk Group to the SIPREG Trunk Group you chose in the previous step. Click Update button.

Step 7: Wait 15 minutes for the new IP and Trunk Group settings to propagate to SBC nodes.

FreePBX PJsip Setup with BulkVS Registration

On your Incredible PBX server, navigate to Connectivity -> Trunks after logging into the FreePBX GUI as admin. Choose Add a PJsip trunk. Name the trunk BulkVS and then click on the pjsip Settings tab. Fill out the form as shown below substituting the BulkVS registration account name you chose above. Any of the three SIP registrations offered for your account under Interconnection -> SIP Registration in the BulkVS portal will work as long as you use the matching password.

Next, click on the Advanced tab and enter the following in the Match (Permit) field.

162.249.171.198,76.8.29.198,69.12.88.198,192.9.236.42,52.206.134.245

In the Codecs tab, enable ULAW and ALAW. Then click Submit and reload your dialplan.

With PJsip registrations, you may also need to add the following lines to the end of extensions_custom.conf in /etc/asterisk using your actual DID. Then reload your dialplan: asterisk -rx "dialplan reload"

[from-sip-external]
; BulkVS
exten => 18005551212,3,Goto(from-trunk,${DID},1)

VoIP.ms Messaging Services

One of our favorite VoIP.ms features is the variety of SMS and MMS messaging options they provide AT LOW COST. Virtually all of their DIDs now support messaging. With incoming messages, you have the choice of routing the messages to an email address, another SMS destination, the VoIP.ms Message Portal, an SMS URL callback destination, and now an SMS SIP account. The steps below set up SMS SIP messaging with Incredible PBX 2027. You also can send quick messages in response to incoming calls using your Clearly Anywhere softphone.

Configuring VoIP.ms for SMS SIP Messaging

Prerequisites: DID supports messaging, SMS SIP messaging enabled on the DID

First, use our VoIP.ms signup link to create a VoIP.ms account. Next, create an Asterisk SubAccount using the SIP protocol with User/Password Authentication. In the Security section, enter the public IP address of your PBX, and Save your Settings. Next, acquire a DID in the VoIP.ms portal. Then choose the Manage DIDs option and edit your DID configuration. For Call Routing, select the SIP/IAX option and pick your SubAccount. Choose a DID POP location near your PBX. In the Message Service section, enable SMS SIP Account and pick your SubAccount. Then Apply Changes.

Configuring Incredible PBX for SIP Messaging

Prerequisites: PJsip VoIP.ms Trunk, PJsip Extension for SMS, sms-in and sms-out Contexts

Both PJsip Trunks and PJsip Extensions in FreePBX now support a Messages Context option in the Advanced tab of the setup GUI. Using the sms-in and sms-out contexts documented below, FreePBX now can process incoming and outgoing SMS messages. A typical use case in the Incredible PBX 2027 would be to quickly respond to an incoming call to the Clearly Anywhere app on your smartphone to indicate that you were in the midst of another call and would return the caller’s call. It is anything but a robust SMS messaging application for your smartphone, but it is a welcome addition for many mobile users that have to juggle both cellphone calls and office calls forwarded from a PBX to your smartphone. VoIP.ms has developed an excellent SMS Management Portal that is included in the VoIP.ms Dashboard. It allows you to read, respond, and manage SMS messages sent to your VoIP.ms DIDs.

Once you have completed the necessary setup steps on the VoIP.ms side, there are three steps to activate SMS SIP messaging with Incredible PBX 2027: (1) create and register your VoIP.ms PJsip Trunk, (2) create and configure a PJsip extension to receive incoming calls and SMS messages, (3) add the sms-in and sms-out contexts to extensions_custom.conf dialplan.

(1) Create a PJsip Trunk for VoIP.ms in the FreePBX GUI to process calls and SMS messages:


In the PJsip Settings tab, fill out the General tab. The Username will be your VoIP.ms account number followed by an underscore and then the name of the SubAccount you created above, e.g. 12345_mypbx. The Password will be the password you assigned to your VoIP.ms SubAccount. For SIP Server, enter VoIP.ms POP assigned to your DID, e.g. atlanta1.voip.ms. Accept the remaining defaults in the General tab. Click on the Advanced tab and scroll down to Message Context and enter sms-in. Click Submit and Reload your Dialplan.

(2) Next create a PJsip Extension in the FreePBX portal. This will be used to process calls and send SIP messages. NOTE: Incredible PBX 2027 ships with a number of extensions preconfigured. Only extension 701 is a PJsip extension. Do NOT use the others. If needed, create an additional PJsip extension for messaging. The General tab should look something like this:



Click on the Advanced tab and scroll down to Max Contacts and enter a number that is one more than twice the number of phones that will be connected simultaneously to this extension. For example, if you have 3 smartphones connecting to this extension, enter 7. Scroll down to Message Context and enter sms-out. Click Submit and Reload your Dialplan.

(3) Finally, cut-and-paste the following code into the bottom of extensions_custom.conf in the /etc/asterisk directory:

[sms-out]
exten => _.,1,NoOp(Outbound Message dialplan invoked)
exten => _.,n,NoOp(To ${MESSAGE(to)})
exten => _.,n,NoOp(From ${MESSAGE(from)})
exten => _.,n,NoOp(Body ${MESSAGE(body)})
;
; add your VoIPms info in the next 3 lines
exten => _.,n,Set(VOIPMS_ACCOUNT="123456_subacct")
exten => _.,n,Set(VOIPMS_POP="atlanta.voip.ms")
exten => _.,n,Set(VOIPMS_TRUNK="VoIPms-PJsip") ; actual VoIP.ms trunk in FreePBX
;
exten => _.,n,Set(NUMBER_TO=${CUT(CUT(MESSAGE(to),@,1),:,2)})
exten => _.,n,Set(EXTENSION_FROM=${CUT(CUT(MESSAGE(from),@,1),:,2)})
;
; Now map your sending extensions EXTENSION_FROM to corresponding DIDs NUMBER_FROM
exten => _.,n,Set(CASE_701=6005550101) ; ext 701 msgs originate from 6005550101
exten => _.,n,Set(CASE_702=6005550102) ; ext 702 msgs originate from 6005550102
exten => _.,n,Set(CASE_703=6005550101) ; ext 703 msgs originate from 6005550101
;
exten => _.,n,Set(NUMBER_FROM=${CASE_${EXTENSION_FROM}})
exten => _.,n,Set(ACTUAL_FROM="${NUMBER_FROM}" )
exten => _.,n,Set(ACTUAL_TO=pjsip:${VOIPMS_TRUNK}/sip:${NUMBER_TO}@${VOIPMS_POP})
exten => _.,n,MessageSend(${ACTUAL_TO},${ACTUAL_FROM})
exten => _.,n,NoOp(Send status is ${MESSAGE_SEND_STATUS})
exten => _.,n,Hangup()
;-------------------------------------------------------------------------

[sms-in]
exten => _.,1,NoOp(Inbound SMS dialplan invoked)
exten => _.,n,NoOp(To ${MESSAGE(to)})
exten => _.,n,NoOp(From ${MESSAGE(from)})
exten => _.,n,NoOp(Body ${MESSAGE(body)})
;
; enter your default incoming SMS extension below
; if you want SMS messages delivered to multiple extensions,
; clone additional MessageSend lines below with extension numbers
exten => _.,n,Set(EXTENSION=701)
;
exten => _.,n,Set(ACTUAL_FROM=${MESSAGE(from)})
exten => _.,n,Set(HOST_TO=${CUT(MESSAGE(to),@,2)})
exten => _.,n,Set(NUMBER_TO=${MESSAGE_DATA(X-SMS-To)})
exten => _.,n,MessageSend(pjsip:${EXTENSION}@${HOST_TO},${ACTUAL_FROM})
exten => _.,n,NoOp(Send status is ${MESSAGE_SEND_STATUS})
exten => _.,n,Hangup()
;-------------------------------------------------------------------------

In the pasted [sms-out] context, insert your actual VOIPMS_ACCOUNT, VOIPMS_POP, and VOIPMS_TRUNK name in the lines provided. Then map each extension from which you wish to send SMS messages to a VoIP.ms DID on your PBX in the lines provided. In the pasted [sms-in] context, enter the EXTENSION number which should receive incoming messages from the PJsip trunk in which you designated [sms-in] as the Message Context. There is no magic to the [sms-in] context name. If you have more than one PJsip trunk, simply create additional incoming contexts (such as [sms-in-2]) for each additional trunk and clone the [sms-in] code designating the desired extension to receive incoming messages from each DID. For the [sms-out] context, it can be used as the Message Context for multiple extensions that should be enabled to send outbound SMS messages.

Save the file, and reload the Asterisk dialplan: asterisk -rx "dialplan reload"

Once all the pieces are in place, SMS messages sent to your VoIP.ms DID will be delivered to the FreePBX trunk registered to the SMS SIP destination specified in your VoIP.ms DID setup. And here’s one more tip. If you happen to have a Yealink T46G (not T48G) or a Grandstream GXV phone that is also registered to that extension, the messages will also pop up on your desktop phone with an alert tone. On Grandstream GXV Android phones, we recommend dragging the SMS app to the main screen so that the incoming message count appears beside the SMS icon when new messages are received.

FreePBX Inbound & Outbound Route Configuration

Finally, we need to tell FreePBX how to route calls and messages into and out of your PBX. In the FreePBX GUI under Connectivty -> Inbound Routes, add a new route for BulkVS specifying the 11-digit DID you purchased from BulkVS. Choose a Destination for the incoming calls, save your settings, and reload the dialplan. Repeat this process for your VoIP.ms DID making sure to enable faxing if you’ve completed the fax tutorial.

Next, navigate to Connectivity -> Outbound Routes and modify the default Outbound Route for all outgoing calls. Assign the BulkVS trunk as the first entry in the call sequence and the VoIP.ms trunk as the second entry. In the Dial Patterns tab, you would want match patterns for 1NXXNXXXXXX and NXXNXXXXXX. For the latter entry, be sure to add a Prepend entry of 1. Then save your settings and reload the dialplan.

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



One Minute Wonder: It’s Incredible PBX for Proxmox 7


What a difference a decade makes! We haven’t spent much time with Proxmox for well over a decade so we decided to experiment with a new server and the latest Proxmox 7.4 release to see how things have changed. And it was quite a surprise. Not only has the hardware footprint changed dramatically, but the Proxmox software itself is like a new animal. If you haven’t explored Proxmox lately, we would encourage you to give it a careful look before deciding on a virtual machine platform. In this tutorial we’ll cover everything you need to get started both with Proxmox and with Incredible PBX 2027.

Hardware Options for the Proxmox Server Platform

We do most of our shopping on Amazon not only because it’s cheap and easy but also because they financially support our projects through referral revenue. If those considerations bother you, feel free to do your own research. For this review, in terms of requirements, we were looking for a small-footprint, quiet machine with a robust processor, lots of RAM, and ample disk space. Our office has about a foot of remaining space in a bookshelf that already houses a UPS, two Internet routers, three notebook PCs (Windows 11, MacBook, and System76), a VMware ESXi server, a combination WEBDAV/SAMBA server, and a Raspberry Pi 400.


We narrowed the search down to Beelink’s SER5 Pro (shown above) with an AMD Ryzen 7 5800H 8 Core CPU(Up to 4.4GHz) with 32GB DDR4 RAM, and a 500GB NVME M.2 SSD for $429 and the ASUS PN52 Mini PC, AMD Ryzen 9 5900HX(8C/16T, Up to 4.6GHz) with 32GB DDR4 RAM, and a 512GB PCIe SSD for $699. Both are shipped with Windows 11 which was the major issue since we wanted to run Proxmox natively. From reading everything we could find on the web, it sounded as if the Beelink stumbled if you attempted to run any Linux flavor other than Ubuntu 20.04. So we gambled and ordered both machines knowing we could return either or both of them at no cost if Proxmox wouldn’t install. Gotta love Amazon!

Because the Beelink machine was $270 cheaper, we decided to start our testing there. To our surprise, pressing DEL on bootup to access the BIOS let us reconfigure the boot mode from UEFI to LEGACY with one click and reorder the boot order to first boot from a USB stick, neither of which we were able to do on our recently purchased Acer Aspire 5 notebook PC.

Installing the Proxmox 7 Server Platform

We began by downloading the Proxmox 7.4 ISO. Then we burned it to a USB flash drive using Balena Etcher. When we powered on the Beelink machine after inserting the USB stick and plugging in a network cable, keyboard, mouse, and monitor, presto! The Proxmox installer appeared, and Proxmox installed without a hitch. We quickly logged in as root via SSH and ran: apt update | apt dist-upgrade. We added Proxmox free repo to /etc/apt/sources.list: deb http://download.proxmox.com/debian/pve bullseye pve-no-subscription. Next, we deleted the commercial repo from /etc/apt/sources.list.d. And reissued: apt update. Finally, we removed the subscription nag by following this tutorial. That got everything squared away. And we were ready to log into the web portal at https://server-ip:8006 using the root password we set up as part of the install.

A Word to the Wise: Keep your Proxmox server behind a hardware firewall unless you’re a savvy network administrator.

Interacting with the Proxmox Server

There are two basic ways to administer your Proxmox server, either through the Linux command line interface (CLI) or using the Proxmox GUI. With the CLI, you will probably want to enable root logins using SSH. With the GUI, you will access it using a browser pointed to the IP address of your server at port 8006: https://server-ip:8006. With both CLI and GUI access, login as root with the password you set up when you installed Proxmox.

Installing Linux ISOs on Proxmox Server

We always like to begin our setup of virtual machine platforms by installing the ISOs for Debian 11, Ubuntu 22.04, and Rocky 8. CAUTION: Even though Ubuntu 22.04.2 is now available, the Ubuntu 22.04.1 ISO was necessary to install earlier releases of Incredible PBX 2027-U. To be on the safe side, install both flavors so they will be available for other tasks.

In the Proxmox portal, navigate to Folder View -> Storage -> local -> ISO Images. You can begin by either downloading the desired ISO images to your desktop and then clicking Upload. Or you can download the ISO images directly from the web by clicking Download from URL. Here are the direct ISO links for Debian 11.7.0, Ubuntu 22.04.1, Ubuntu 22.04.2, and Rocky 8.8. Please note that new ISO images are released regularly which means these links will fail at some point in the future. Please let us know if you discover it first by sending a kind note to support [at] incrediblepbx.com. If you’re in a hurry, try bumping up the value in the point release of the download link. Or download these versions from the new Incredible PBX Repo.

Installing Linux Containers on Proxmox Server

For slightly better performance by sharing the kernel instance with the physical server, you may wish to use Containers instead of Virtual Machines. If you’re familiar with OpenVZ templates, Proxmox Containers are nearly identical. The downside is you cannot migrate LXC Containers. Play with both and choose for yourself. To install Debian 10 and 11, Ubuntu 22.04, and Incredible PBX 2027-U Container templates, here’s how. Log into your Proxmox CLI as root and issue these commands:

pveam update
pveam available
pveam download local debian-10-standard_10.7-1_amd64.tar.gz
pveam download local debian-11-standard_11.6-1_amd64.tar.zst
pveam download local ubuntu-22.04-standard_22.04-1_amd64.tar.zst
cd /var/lib/vz/template/cache
wget -O incrediblepbx2027U.tar.zst https://bit.ly/3nxswhc

We’ll cover how to create an Incredible PBX 2027-U Container from a template below.

Installing Incredible PBX 2027-U on Proxmox Server

Now for the fun part. Once you deploy the latest Incredible PBX 2027-U image on your Proxmox server, your VMs will be up and running in less than a minute. Here are the steps. Begin by logging into the command line interface (CLI) as root. Then issue the following commands using a unique number for the virtual machine image you wish to create, e.g. 777:

cd /var/lib/vz/dump
wget -O vzdump-qemu-ipbx2027u.vma.zst https://bit.ly/42v7RcB
# verify MD5 checksum: 8f86465e88ce3dfcf7b510bdc3b60393
md5sum vzdump-qemu-ipbx2027u.vma.zst
# create virtual machine with unique VM number, e.g. 777
qmrestore vzdump-qemu-ipbx2027u.vma.zst 777

To create additional VMs, you can either issue the qmrestore command above with a different VM number while positioned in the CLI at /var/lib/vz/dump, or you can create them in the GUI by navigating to Server View -> proxmox -> local and choosing Backups. Then highlight the vzdump-qemu-ipbx2027u.vma.zst backup image and click Restore. Now give the new VM a unique number and then click Restore to build the virtual machine.

Installing Incredible PBX 2027-D on Proxmox Server

To deploy the latest Incredible PBX 2027-D image with Debian 11 on your Proxmox server, issue the following commands from the CLI:

cd /var/lib/vz/dump
wget -O vzdump-qemu-ipbx2027d.vma.zst https://tinyurl.com/y8uucckd
# create virtual machine with unique VM number, e.g. 777
qmrestore vzdump-qemu-ipbx2027d.vma.zst 777

Create additional VMs using the steps documented in the previous section.

Installing Incredible PBX 2027-R on Proxmox Server

To deploy the latest Incredible PBX 2027-R image with Rocky 8 on your Proxmox server, issue the following commands from the CLI:

cd /var/lib/vz/dump
wget -O vzdump-qemu-ipbx2027r.vma.zst https://tinyurl.com/5n6u2ecw
# create virtual machine with unique VM number, e.g. 777
qmrestore vzdump-qemu-ipbx2027r.vma.zst 777

Create additional VMs using the steps documented in the previous section.

Installing Incredible PBX 2021-D on Proxmox Server

Believe it or not, there still are folks that depend upon faxing in their daily lives. While a somewhat kludgy fax solution exists for Incredible PBX 2027, it’s not the same as the slick Incredible Fax application using HylaFax and Avantfax. If you really need faxing, the problem is easily solved by deploying Incredible PBX 2021-D with Debian 10, Asterisk 18, FreePBX 15, and Incredible Fax. We’ve even freshened up the 2021-D Proxmox image to current specs. Here’s how to deploy it. Once you deploy the latest Incredible PBX 2021-D image on your Proxmox server, your VMs will be up and running in less than a minute. Here are the steps. Begin by logging into the Proxmox CLI as root. Then issue the following commands using a unique number for the 2021-D virtual machine you wish to create, e.g. 555:

cd /var/lib/vz/dump
wget -O vzdump-qemu-ipbx2021d.vma.zst https://bit.ly/3M3Xo2v
# verify MD5 checksum: b37e6fba28fd03fbcf99760e0bdbf866
md5sum vzdump-qemu-ipbx2021d.vma.zst
# create virtual machine with unique VM number, e.g. 555
qmrestore vzdump-qemu-ipbx2021d.vma.zst 555

To create additional VMs, you can either issue the qmrestore command above with a different VM number while positioned in the CLI at /var/lib/vz/dump, or you can create them in the GUI by navigating to Server View -> proxmox -> local and choosing Backups. Then highlight the vzdump-qemu-ipbx2021d.vma.zst backup image and click Restore. Now give the new VM a unique number and then click Restore to build the virtual machine.

We would encourage you to try both the Incredible PBX 2027-U image and the Incredible PBX 2021-D image. Both are absolutely free so you have nothing to lose by experimenting a bit.

Incredible PBX Startup Steps with Proxmox

When the upload finishes, log into your Proxmox web portal: https://server-ip:8006

Then navigate to Folder View -> Virtual Machine -> 555 or 777 -> Start. Choose the Console option and wait for your virtual machine to boot up. Then log in as root with the default password: password. Press ENTER to kick off the brief setup procedure. Create a very secure root password as well as an admin password for the FreePBX GUI and Apache web apps. Press ENTER to keep your local version of sshd_config. Carefully read the configuration messages when the setup completes. Press ENTER to reboot.


After the server reboots, log back in as root using the Console option and your new root password. The Automatic Update Utility will load any late-breaking security fixes and then the pbxstatus screen will display. Make note of your private IP address. All private IP addresses are whitelisted in the firewall; however, if you will be accessing your Proxmox VM from a public IP address, then there’s one additional step. Run /root/add-ip and whitelist the IP address of your desktop machine replacing mypc and 12.34.56.78 in this example with a label for the PC and its actual public IP address: /root/add-ip mypc 12.34.56.78.

You now can log into the VM’s Linux CLI as root at the IP address you deciphered above. And you can log into the FreePBX Web GUI as admin by pointing a browser to that same IP address and entering the FreePBX password you assigned during setup.

Creating Incredible PBX Containers on Proxmox

If you wish to compare performance with Containers, here’s how to set up an Incredible PBX 2027-U Container from the Incredible PBX 2027-U template you installed previously. We don’t recommend containers for production use.

Log into your Proxmox web portal: https://server-ip:8006. Navigate to Server View -> proxmox. Click Create CT. Assign a CT ID (the next available number is the default). Enter a root password twice for the Container. Click Next. Choose incrediblepbx2027U.tar.zst from the Template pulldown menu. Click Next. For disk size, we recommend 20GB but you can set any size above 15GB. Click Next. Assign the number of Cores desired for your Container. 1 is ample. Click Next. For Memory, we recommend 2048. For Swap, we recommend 1024. Click Next. For Network settings, we recommend DHCP for both IPv4 and IPv6. Click Next. Leave the default DNS settings. Click Next. Review your Settings and then click Finish. Once the Container is created, close the window and start the new Container. Then follow the Incredible PBX Startup Steps outlined above.



 
Continue your journey by hopping over to our tutorials for Incredible PBX 2027-U and Incredible PBX 2021-D. Enjoy!

Originally published: Monday, May 8, 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.
 



Deploying Incredible PBX 2027 with Apple M1 and M2 Silicon


In the old days, virtual machine choices were limited to VMware, Proxmox, and VirtualBox with the first two requiring a dedicated hardware platform before you ever got started. So it looked like VirtualBox solved the problem of being able to use existing hardware for other functions as well as being able to host virtual machines. And all was well in the Intel world until Apple created its M1 chip integrating the CPU, GPU, Neural Engine, I/O, and more into a single system on a chip (SoC). Because it was based on the ARM architecture, VirtualBox no longer worked. And, despite a new beta claiming ARM compatibility, it still fails at least as a platform for Debian 11, Ubuntu 22.04, and Incredible PBX 2027.

Last week we introduced WSL, the new kid on the virtual machine block for Windows 11. And today we turn our attention to the Mac platform with Apple’s UTM offering. In a word, it’s fantastic: machine-speed virtual platforms that coexist with other Mac apps, relatively easy to install, and simple to backup and restore. So… farewell VirtualBox and hello UTM.

While UTM will run on AMD64 Macs, our focus today is the new generation of M1 and M2 Macs. There are many to choose from including multi-colored iMacs as well as MacBook Air and Pro notebooks. You won’t be disappointed by the migration. And UTM is unique in that it can reliably run both ARM applications and x86_64 apps. So let’s get started. This is a three-step process today. First, we’ll install Apple’s UTM app on your M1 or M2 machine. Second, we’ll build an Ubuntu 22.04 x86_64 platform running as a virtual machine under UTM. Third, we’ll install Incredible PBX 2027-U on the Ubuntu platform.

Before we get started, here are a couple of tips. Creating the Ubuntu 22.04 platform is a little tedious. So, once you go through the 30-minute setup process, your very next step should be to shut it down and clone it. In that way, you never have to spend time setting up the Ubuntu virtual machine platform again. You can simply reuse what you’ve already built. Our second tip is to make backups of both your original Ubuntu virtual machine AND your Incredible PBX 2027-U machine. Then store those backups off site. We’ll document the procedure below.

Installing Apple’s UTM Application


UTM requires macOS 11.3 or later. You have two ways to install Turing Software’s UTM app. You can download and install it through Apple’s App Store for $9.99 in which case you get automatic updates and also fund future development of the platform. Or you can download and install the application from GitHub at no cost and handle the installation and updates yourself. You get exactly the same software from either location. If you elect to use the free version, download the UTM.dmg file to your desktop. Then double-click on the file and drag the UTM app to your Applications folder. From there, you can run it as you would any other Mac application. To update the UTM app, you simply replace the existing installation and all your virtual machines will be retained.

Installing Ubuntu 22.04 (x86_64) VM

This is not a difficult procedure, but it has a lot of steps and takes about half an hour so hang in there and don’t skip any steps. If you’re lazy and would prefer the quick-and-dirty method to install the Ubuntu 22.04 UTM image, skip to the next section of this tutorial… but you won’t learn how to do it yourself.

1. Download the Ubuntu 22.04 Server ISO to your Desktop.

2. Open the UTM app from your Applications folder.

3. Click "Create a New Virtual Machine" icon.

4. On the Start menu, choose Emulate to emulate the AMD64 platform on your Mac M1 or M2.

5. In the Operating System menu, choose Linux. Click Browse. Select Ubuntu 22.04 ISO on your desktop. Click Continue.

6. Change the Memory setting to 2048 MB. Change CPU Cores to 2. Click Continue.

7. For the Virtual Machine Size, we recommend 20GB but the choice is yours. Click Continue.

8. On the Shared Directory menu, just click Continue.

9. On the Summary menu, check Open VM Settings. Click Save.

10. In the VM Settings, enter Incredible PBX 2027 for Name.

11. Click Network tab. Change the Network Mode to Bridged (Advanced). Click Save.

12. Start your virtual machine app by clicking on it in the Start menu.

NOTE: DO NOT MINIMIZE THE UTM APP! You’ll need to return to it and remove the ISO before reboot.

13. Click "Try to Install Ubuntu Server" to kick off the Ubuntu install.

14. After about 3 minutes of setup, the install prompts will appear.

15. Choose your Language (default English) and press ENTER.

16. Choose your Keyboard (default English US) and press ENTER.

17. In the Type Install, tab down to Ubuntu Server (minimized) and press Space Bar.
Tab down to Done and press ENTER.

18. On the Network menu, your default DHCPv4 IP address should be shown. Press ENTER.

19. On the Proxy menu, press ENTER.

20. For the Ubuntu mirror, press ENTER.

21. On the Storage Layout menu, tab to LVM option and press Space Bar.
Tab down to Done and press ENTER.

22. Review File System Summary. If all OK, press ENTER.

23. On the Confirm menu, tab to Continue and press ENTER to continue.

24. Set up your profile. We recommend:

   Your name: nerd (we’re going to destroy this account later)
   Your server name: ubuntu
   Username: nerd (we’re going to destroy this user account later)
   Password: password (type it twice)

   Tab to Done and press ENTER.

25. If you want to pay for Ubuntu Pro, you can do it on the next screen.
Otherwise, press ENTER.

26. On the SSH Setup menu, press space bar to enable SSH. Tab to Done. Press ENTER.

27. On Server Snaps menu, use the Down cursor to scroll to Done and press ENTER.

28. You’re now at the 15-minute mark and the screen will say Install complete! It’s not.
The Ubuntu install will now continue in unattended mode. Have a cup of coffee.
Return in about 7 minutes and await the Reboot Now prompt at the bottom of the screen.

29. Press ENTER and immediately switch back to the UTM app’s Main Menu.

30. Scroll down to CD/DVD line and click the Option bar and choose Clear.

31. UTM will now reboot into your new Ubuntu server.

   If it redisplays the initial Ubuntu install menu, verify Step #30 completed.
   Then kill the virtual machine and restart it.

32. Log in as nerd with the password you set up above.

33. Now set up a password for the root user:

   sudo passwd root

34. Log out as user nerd: exit

35. Login as root.

36. Remove the nerd user account:

   userdel -r nerd

37. Install the nano editor:

   apt install nano -y

38. Edit the sshd_config file to allow remote root SSH access:

   nano -w /etc/ssh/sshd_config

39. Adjust and uncomment the following settings:

   PermitRootLogin yes
   PasswordAuthentication yes

   Save the file: Ctrl-X, Y, then ENTER

40. Restart SSH: systemctl restart ssh

Now you’re ready to install Incredible PBX 2027-U. But, before you do anything else, shutdown the VM. Then right-click on the VM and choose Clone to make a duplicate. Now fire up the duplicate and install Incredible PBX 2027-U by following the steps in our current tutorial.

Installing Ubuntu 22.04 UTM Tarball

If you completed the steps above, you can skip this section. But, if Lazy is your middle name, here’s an alternate method that saves you some time. Begin by downloading the ubuntu2204utm.tar.gz file from our Incredible PBX repo to your Desktop. Then run the Terminal app and issue the following commands:

cd ~/Library/Containers/com.utmapp.UTM/Data/Documents
tar zxvf ~/Desktop/ubuntu2204utm.tar.gz

Now run the UTM app. Then start the Ubuntu 22.04 virtual machine. Login as root with default password of password. Now begin the Incredible PBX 2027-U install procedure as documented in our tutorial here.

Installing Debian 11.6.0 UTM Tarball

If you would prefer to build your Incredible PBX 2027 server on the Debian 11 platform, begin by downloading the debian116utm.tar.gz file from our Incredible PBX repo to your Desktop. Then run the Terminal app and issue the following commands:

cd ~/Library/Containers/com.utmapp.UTM/Data/Documents
tar zxvf ~/Desktop/debian116utm.tar.gz

Now run the UTM app. Then start the Debian 11.6 virtual machine. Login as root with default password of password. Now begin the Incredible PBX 2027-D install procedure as documented in our tutorial here.

Making Backups of UTM Applications

The trick to backing up and transferring an existing UTM image is to create a tarball of the desired .utm directory in ~/Library/Containers/com.utmapp.UTM/Data/Documents. The ubuntu2204.tar.gz file is about 2 gigabytes in size. Then untar it on the target platform in the same directory after installing the UTM app on that platform. It’s quite difficult to navigate to this directory with Finder so you’re better off using Terminal. The only other wrinkle after transferring a backup image to an Intel Mac is you’ll have to edit the UTM’s Network setting (right-click on .utm app in UTM GUI). Adjust the setting to match your new platform. So, on your target machine, run ifconfig and decipher the name of the adapter that actually shows your machine’s LAN IP address. It was en0 on our MacBook Air M1 and en1 on our old iMac Intel machine. YMMV.

TIPS: If you want LAN access to the virtual machine from devices other than the Mac on which the VM is installed, you’ll need to edit the UTM, click +New in the Devices section of the Edit menu and choose Network. Click Save to update settings. This will enable Shared Network Mode in addition to Bridged Mode, and a LAN IP address will be assigned on VM restart. When first logging into virtual machine, do NOT issue the unminimize command.

A snapshot of this tutorial in PDF format is available here.

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



$1 a Month Buys a Cloud Powerhouse for Incredible PBX 2027

We lied. Sorry. This cloud-based solution for Incredible PBX 2027 will set you back $12.98 a year which works out to just under $1.10 a month. If you’ve never used a cloud platform, now’s your chance at a truly unbelievable price. You can barely cover the electric bill for on-premise hardware at this price, and that’s before you buy the hardware. We cover a number of cloud-based solutions over the course of a year, but you’ll be hard-pressed to find a comparable offering that’s as easy to install and maintain as this one.

RackNerd’s New Year’s Special1 provides KVM platform with a gig of RAM and 25 gigs of SSD storage and 4 terabytes of monthly bandwidth in your choice of locations: New York, New Jersey, Atlanta, Dallas, or Seattle. You can double your bandwidth allocation by posting a comment with your order number here. With over 700 pages of comments, you can rest assured this is not a fly-by-night operation. And it’s not as if you’re mortgaging your house to kick the tires.

Setup is a breeze. Choose your location, specify Debian 11 as the Operating System, plunk down your $12.98 and wait about 5-10 minutes for the VPS to spin up. Log in as the root user with SSH using the password specified in your email deployment message. Immediately change the password by issuing the command: passwd

Next, issue the following commands to download the Incredible PBX 2027 for Debian 11 installer and begin the install:

wget http://incrediblepbx.com/IncrediblePBX2027-D.sh
chmod +x IncrediblePBX2027-D.sh
./IncrediblePBX2027-D.sh

Hang around for a couple minutes and respond to the SSH config prompt by accepting the default. Then go have a nice, long cup of coffee. When you return, restart your virtual machine when prompted. Wait a couple minutes and log back in as root. Let the Automatic Update Utility bring your server up to current specs, and then issue the following commands to set your time zone, and create admin credentials for FreePBX® and our Apache Reminder and AsteriDex applications:

/root/timezone-setup
/root/admin-pw-change
/root/apache-pw-change

Now head over to the Incredible PBX 2027 tutorial and set up your phones and trunks. Enjoy!

Originally published: Monday, March 20, 2023



Need help with Asterisk? Visit the VoIP-info Forum.


 

Special Thanks to Our Generous Sponsors


FULL DISCLOSURE: ClearlyIP, Skyetel, Vitelity, DigitalOcean, Vultr, VoIP.ms, 3CX, Sangoma, TelecomsXchange and VitalPBX have provided financial support to Nerd Vittles and our open source projects through advertising, referral revenue, and/or merchandise. As an Amazon Associate and Best Buy Affiliate, we also earn from qualifying purchases. We’ve chosen these providers not the other way around. Our decisions are based upon their corporate reputation and the quality of their offerings and pricing. Our recommendations regarding technology are reached without regard to financial compensation except in situations in which comparable products at comparable pricing are available from multiple sources. In this limited case, we support our sponsors because our sponsors support us.

BOGO Bonaza: Enjoy state-of-the-art VoIP service with a $10 credit and half-price SIP service on up to $500 of Skyetel trunking with free number porting when you fund your Skyetel account. No limits on number of simultaneous calls. Quadruple data center redundancy. $25 monthly minimum spend required. Tutorial and sign up details are here.

The lynchpin of Incredible PBX 2020 and beyond is ClearlyIP components which bring management of FreePBX modules and SIP phone integration to a level never before available with any other Asterisk distribution. And now you can configure and reconfigure your new Incredible PBX phones from the convenience of the Incredible PBX GUI.

VitalPBX is perhaps the fastest-growing PBX offering based upon Asterisk with an installed presence in more than 100 countries worldwide. VitalPBX has generously provided a customized White Label version of Incredible PBX tailored for use with all Incredible PBX and VitalPBX custom applications. Follow this link for a free test drive!
 

Special Thanks to Vitelity. Vitelity is now Voyant Communications and has halted new registrations for the time being. Our special thanks to Vitelity for their unwavering financial support over many years and to the many Nerd Vittles readers who continue to enjoy the benefits of their service offerings. We will keep everyone posted on further developments.
 



  1. Follow this thread for the latest developments in the pending criminal case against the owner of RackNerd. []

Deploying Incredible PBX 2027 with Microsoft Windows 11



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

Lo and behold, Microsoft was offering their Windows Subsystem for Linux GUI (WSLg) on GitHub. You may recall that we introduced a Debian 10 offering for this platform in July, 2022. Unfortunately, "improvements" in the WSLg platform appear to have permanently broken that offering. But, hope springs eternal, and today we’re pleased to introduce Incredible PBX 2027 for WSLg running on their Ubuntu 22.04 platform. You can read all about the lengths to which Microsoft has gone to integrate WSLg into Windows 11 here.


In our original article we provided a referral link to this (now updated) tiny, $220 Windows 11 powerhouse. These referral commissions help keep the lights on at Nerd Vittles. But any Windows 11 hardware will work just fine. In fact, our current favorite that we personally use is this Windows 11 Acer notebook that currently sells for $519 with a whopping 20 gigs of RAM, a one terabyte NVMe SSD, and every bell, whistle, and port you could ever want. But we digress. Today we’re installing Incredible PBX 2027-U on the Windows 11 WSL platform.


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

Next Steps with Incredible PBX 2027

Before you can manage your PBX through a web browser, you first will need to set the admin passwords for FreePBX and Apache web apps such as Reminders and AsteriDex. These all can be set by logging into your server as root and issuing the following commands: /root/admin-pw-change and /root/apache-pw-change.

Outbound mail functionality needs to be working so that you can receive voicemail messages and faxes by email. To prevent SPAM, most ISPs and ITSPs block messages from downstream mail servers. That would be you. The easiest way to resolve this is to configure SendMail using Gmail as an SMTP Smarthost. You obviously need a Gmail account to implement this and you also will need to obtain an App password for your Gmail account, and use that in lieu of your regular Gmail password when configuring SendMail. With your Gmail username and App password in hand, log into your server as root and run: /root/enable-gmail-smarthost-for-sendmail.

To correctly set the time on your PBX, run: /root/timezone-setup.

By default, the voicemail password for each of the configured extensions (701-705) is set to the extension number. This means the user will be prompted to set a voicemail password on the first login to voicemail for each extension. A phone must be registered to the actual extension to access its voicemail account. For example, once a phone is registered to extension 701, the voicemail setup can be accessed by dialing *98701.

Adding a Destination for Blacklisted Calls. The first time you log into the FreePBX GUI with your admin credentials using a web browser, you will be prompted to enter a destination for blacklisted callers. Navigate to Admin -> Blacklist -> Settings in the GUI and enter a Destination for Blacklisted Callers. We recommend Extension 53669. That’s our buddy, Lenny, who is great with spammers. Then clear the message from the Dashboard Overview.

Adding Faxing to the Incredible PBX 2027 Platform. We had to live without faxing on the new Incredible PBX 2027 platforms since the beginning of the year. But those days are over. If you’d like to add fax support to your virtual machine, head over to our new Fax Tutorial to install the components. It only takes a couple minutes.

Connecting a Softphone to Make Your First Call. The easiest way to get started is to download a free softphone onto your Windows desktop. We recommend Zoiper 5 which you can download and install 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 pbxstataus and make note of your LAN IP address, e.g. 179.xx.yy.zz. Next, start up Zoiper from your Windows 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 keyboard 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
947 - Weather by ZIP Code (requires keyboard entry of ZIP code)
951 - Yahoo News
TODAY - Today in History
LENNY - The Telemarketer's Worst Nightmare

Configuring Trunks with Incredible PBX GUI

Perhaps the most difficult component to configure in the PBX is the Trunk. Almost every provider has a different way of doing things. We’ve taken some of the torture out of the exercise by providing a script which will configure settings for dozens of providers in seconds. Once installed, all you need to do is edit the desired Trunk (Connectivity:Trunks), change the Disable Trunk entry to No, and insert your credentials in both the PEER Details and Registration string of the SIP Settings Outgoing and Incoming tabs. Skyetel is enabled by default and needs no setup on the PBX side.

Configuring Skyetel for Incredible PBX 2027

If you’ve decided to go with Skyetel, here’s the drill. Sign up for Skyetel service and take advantage of the Nerd Vittles specials. First, complete the Prequalification Form here. You then will be provided a link to the Skyetel site to complete your registration. Once you have registered on the Skyetel site and your account has been activated, open a support ticket and request the $10 credit for your account by referencing the Nerd Vittles special offer. Once you are satisfied with the service, fund your account as desired, and Skyetel will match your deposit of up to $250 simply by opening another ticket. That gets you up to $500 of half-price calling. Credit is limited to one per person/company/address/location. Effective 10/1/2023, $25/month minimum spend required.

Skyetel does not use SIP registrations to make connections to your PBX. Instead, Skyetel utilizes Endpoint Groups to identify which servers can communicate with the Skyetel service. An Endpoint Group consists of a Name, an IP address, a UDP or TCP port for the connection, and a numerical Priority for the group. For incoming calls destined to your PBX, DIDs are associated with an Endpoint Group to route the calls to your PBX. For outgoing calls from your PBX, a matching Endpoint Group is required to authorize outbound calls through the Skyetel network. Thus, the first step in configuring the Skyetel side for use with your PBX is to set up an Endpoint Group. Here’s a typical setup for Incredible PBX 2027:

  • Name: MyPBX
  • Priority: 1
  • IP Address: PBX-Public-IP-Address
  • Port: 5060
  • Protocol: UDP
  • Description: my.incrediblepbx.com

To receive incoming PSTN calls, you’ll need at least one DID. On the Skyetel site, you acquire DIDs under the Phone Numbers tab. You have the option of Porting in Existing Numbers (free for the first 60 days after you sign up for service) or purchasing new ones under the Buy Phone Numbers menu option.

Once you have acquired one or more DIDs, navigate to the Local Numbers or Toll Free Numbers tab and specify the desired SIP Format and Endpoint Group for each DID. Add SMS/MMS and E911 support, if desired. Call Forwarding and Failover are also supported. That completes the VoIP setup on the Skyetel side. System Status is always available here.

Configuring VoIP.ms for Incredible PBX 2027

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

Configuring V1VoIP for Incredible PBX 2027

To sign up for V1VoIP service, sign up on their web site. Then login to your account and order a DID under the DIDs tab. Once the DID has been assigned, choose View DIDs and click on the Forwarding button beside your DID. For Option #1, choose Forward to IP Address/PBX. For the Forwarding Address, enter the public IP address of your server. For the T/O (timeout) value, set it to 2o seconds. Then click the Update button. Under the Termination tab, create a new Endpoint with the public IP address of your server so that you can place outbound calls through V1VoIP. In the Incredible PBX GUI, be sure to enable all of the V1VoIP trunks.

Configuring Anveo Direct for Incredible PBX 2027

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. Enable the Trunk. Then click on the custom-Settings tab and replace anveo-pin with your actual Dialing Prefix. Click Submit and Apply Config to complete the setup. In the Incredible PBX GUI, be sure to enable all of the remaining Anveo trunks.

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 Outbound Routes in Incredible PBX GUI

Outbound Routes serve a couple of purposes. First, they assure that calls placed by users of your PBX are routed out through an appropriate trunk to reach their destination in the least costly manner. Second, they serve as a security mechanism by either blocking or restricting certain calls by requiring a PIN to complete the calls. Never authorize recurring charges on credit cards registered with your VoIP providers and, if possible, place pricing limits on calls with your providers. If a bad guy were to break into your PBX, you don’t want to give the intruder a blank check to make unauthorized calls. And you certainly don’t want to join the $100,000 Phone Bill Club.

To create outbound routes in the Incredible PBX GUI, navigate to Connectivity:Outbound Routes and click Add Outbound Route. In the Route Settings tab, give the Outbound Route a name and choose one or more trunks to use for the outbound calls. In the Dial Patterns tab, specify the dial strings that must be matched to use this Outbound Route. NXXNXXXXXX would require only 10-digit numbers with the first and fourth digits being a number between 2 and 9. Note that Outbound Routes are searched from the top entry to the bottom until there is a match. Make certain that you order your routes correctly and then place test calls watching the Asterisk CLI to make sure the calls are routed as you intended.

Configuring Inbound Routes in Incredible PBX GUI

Inbound Routes, as the name implies, are used to direct incoming calls to a specific destination. That destination could be an extension, a ring group, an IVR or AutoAttendant, or even a conference or DISA extension to place outbound calls (hopefully with a very secure password). Inbound Routes can be identified by DID, CallerID number, or both. To create Inbound Routes, choose Connectivity:Inbound Routes and then click Add Inbound Route. Provide at least a Description for the route, a DID to be matched, and the Destination for the incoming calls that match. If you only want certain callers to be able to reach certain extensions, add a CallerID number to your matching criteria. You can add Call Recording and CallerID CNAM Lookups under the Other tab.

Audio Issues with Incredible PBX 2027

While it is always a good idea anyway, if you experience one-way or no audio on some calls, be sure to add your external IP address and LAN subnet in the GUI by navigating to Settings -> Asterisk SIP Settings. In the NAT Settings section, click Detect Network Settings. Click Submit and Apply Settings to save your changes.

Bug Fixes with Incredible PBX 2027

It’s a good idea to check back here regularly for any late-breaking bug fixes. Here’s the first one, and it involves remote SSH connections using Ubuntu 22.04. It appears to be more prevalent where one or both ends of the connection are wireless. If you experience delays in the SSH connection, try this syntax where 10.8.xx..yy is your server’s private OpenVPN IP address:

ssh -o IPQoS=none root@10.8.xx.yy

Originally published: Friday, March 3, 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.
 



5 Minute Wonder: Incredible PBX 2022 in Cloud for $25/Yr.



We’ve been building turnkey Incredible PBX® servers for virtual machine platforms for many years. Because the servers are built from images, typical install times have been 5 minutes or less with Proxmox, VirtualBox, and VMware ESXi. But the missing piece has been a similar image install on a true cloud-based platform. This limitation was primarily due to the fact that we don’t own or control the available cloud platforms which typically limit image installs to operating systems such as CentOS, Debian, Ubuntu, and Windows. However, CrownCloud was good enough to add our Incredible PBX 2021 Debian image and the Incredible PBX 2020 CentOS 7 image to their portfolio. And, today, we have more good news. CrownCloud has now added the Incredible PBX 2022 image for Rocky 8 as well.

These 5-minute turnkey installs of Incredible PBX 2020 for CentOS 7, Incredible PBX 2021 for Debian 10, and now Incredible PBX 2022 for Rocky 8 are being offered at the jaw-dropping price of $25 a year. The monthly cost is cheaper than a cup of coffee at Starbucks, and you’ll have a fully-functioning, production-ready KVM platform including a free snapshot with 1GB RAM, 20GB SSD storage, and 1TB of monthly bandwidth in your choice of server locations including Los Angeles and Atlanta in the United States as well as Germany and the Netherlands in Europe. And, unlike all of the other Asterisk® aggregations, Incredible PBX still provides a source code-based platform that can be tailored to meet any special requirements your organization may need.

We don’t make a nickel on these offerings so consider this our special thanks to all of our loyal fans.

Here are the links to sign up for the service and take advantage of these Incredible PBX deals:

When you sign up for the service, choose any traditional OS for the base install. Once it’s on line, go into CrownPanel and choose Reinstall. Then select Incredible PBX 2022 for Rocky from the Application Images pulldown as your new install. In less than 5 minutes, your server will be ready for you to login. Be sure to use SSH and NOT the VNC utility included in CrownPanel. This will assure that your desktop machine’s IP address gets whitelisted in the Incredible PBX firewall. Otherwise, you won’t be able to SSH into your server from your desktop. Once you login, the Incredible PBX configurator will prompt you to set passwords for root login, admin login to FreePBX, and admin login credentials for Apache to access AsteriDex and Reminders. Add a trunk provider (Skyetel is preconfigured and enabled by default) and a softphone or Incredible PBX SIP phone, and your PBX is fully operational. Check out the CrownCloud Wiki.


Planning Ahead for That Rainy Day

One of our favorite features of Crown Cloud is the free snapshot (a.k.a. backup) at no additional charge. We recommend you take snapshots regularly as you make major changes in your server’s configuration. In this way, if something comes unglued, you can easily restore the snapshot and never miss a beat. You’ll find the Remote Snapshot option in your CrownPanel menu.

Configuring Skyetel for Incredible PBX

If you’ve decided to go with Skyetel, here’s the drill. Sign up for Skyetel service and take advantage of the Nerd Vittles specials. First, complete the Prequalification Form here. You then will be provided a link to the Skyetel site to complete your registration. Once you have registered on the Skyetel site and your account has been activated, open a support ticket and request the $10 credit for your account by referencing the Nerd Vittles special offer. Once you are satisfied with the service, fund your account as desired, and Skyetel will match your deposit of up to $250 simply by opening another ticket. That gets you up to $500 of half-price calling. Credit is limited to one per person/company/address/location. Effective 10/1/2023, $25/month minimum spend required.

Skyetel does not require SIP registrations to make connections to your PBX. Instead, Skyetel can use Endpoint Groups to identify which servers can communicate with the Skyetel service. An Endpoint Group consists of a Name, an IP address, a UDP or TCP port for the connection, and a numerical Priority for the group. For incoming calls destined to your PBX, DIDs are associated with an Endpoint Group to route the calls to your PBX. For outgoing calls from your PBX, a matching Endpoint Group is required to authorize outbound calls through the Skyetel network. Thus, the first step in configuring the Skyetel side for use with your PBX is to set up an Endpoint Group. Here’s a typical setup for Incredible PBX:

  • Name: MyPBX
  • Priority: 1
  • IP Address: PBX-Public-IP-Address
  • Port: 5060
  • Protocol: UDP
  • Description: my.incrediblepbx.com

To receive incoming PSTN calls, you’ll need at least one DID. On the Skyetel site, you acquire DIDs under the Phone Numbers tab. You have the option of Porting in Existing Numbers (free for the first 60 days after you sign up for service) or purchasing new ones under the Buy Phone Numbers menu option.

Once you have acquired one or more DIDs, navigate to the Local Numbers or Toll Free Numbers tab and specify the desired SIP Format and Endpoint Group for each DID. Add SMS/MMS and E911 support, if desired. Call Forwarding and Failover are also supported. That completes the VoIP setup on the Skyetel side. System Status is always available here. Everything is already in place on the Incredible PBX 2022 side of the house so you can start making and receiving calls immediately.

Configuring ClearlyIP SIP Trunking

For the tightest integration with FreePBX, no SIP provider holds a candle to Incredible PBX SIP Trunking with ClearlyIP. The reason is fairly obvious. The ClearlyIP folks were the original developers of FreePBX. In addition to all of the traditional SIP trunking services, you also get CNAM support and state-of-the-art E911 service which can be deployed in full compliance with Kari’s Law and the Ray Baum Act. If you’re a system integrator and don’t know about your financial liability for failure to comply with the new rules, it’s time to do some reading.

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 Static IP Authentication and enter your Incredible PBX server’s public IP address. For Transport, choose UDP. For Device Type, choose Asterisk, IP PBX, Gateway or VoIP Switch. Order a DID in their web panel, and then point the DID to the SubAccount you just created. Be sure to specify atlanta1.voip.ms as the POP from which to receive incoming calls. In the Incredible PBX GUI, be sure to enable the VoIP.ms trunk.

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. Enable the Trunk. Then click on the custom-Settings tab and replace anveo-pin with your actual Dialing Prefix. Click Submit and Apply Config to complete the setup. In the Incredible PBX GUI, be sure to enable all of the remaining Anveo trunks.

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 SIP Phone for Incredible PBX 2022

We’re in the home stretch now. You can connect virtually any kind of telephone to your new PBX. Plain Old Phones require an analog telephone adapter (ATA) which is 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. We obviously recommend the Incredible PBX IP phones from ClearlyIP which are the most versatile.

If you’ve been keeping up with recent Nerd Vittles developments, then you already know that we have just introduced a new Cellular Phone which connects directly to your PBX and serves as a perfect remote extension and traveling companion. You can read all about it here.

Software devices such as the YateClient softphone are another option for desktop machines. 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 VoIP-Info.org Forum when you’re ready to get serious about VoIP telephony.

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

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

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

If you are a Mac user, another great no-frills softphone is Telephone. Just download and install it from the Mac App Store. For Android users, check out the terrific new VitalPBX Communicator. Works flawlessly with Incredible PBX.

For smartphone solutions, visit the Incredible PBX Wiki for our softphone recommendations.

Configuring SendMail with Incredible PBX

In order to receive voicemails by email delivery, outbound mail functionality from your server obviously is required. We strongly recommend configuring SendMail using either your ISP or Gmail as an SMTP Relay Host. NOTE: If you are using a Gmail account with 2-step verification enabled, you MUST use a Gmail App Key instead of your Gmail account password. You also must enable Less Secure Apps access to the Gmail account.

Configuring a Gmail account with Incredible PBX 2022 is as simple as entering your Gmail credentials. Just run this script: /root/enable-gmail-smarthost-for-sendmail.

Here are the steps using a Gmail account with Incredible PBX 2020:

cd /etc/mail
yum -y install sendmail-cf
hostname -f > genericsdomain
touch genericstable
cd /usr/bin
rm -f makemap
ln -s ../sbin/makemap.sendmail makemap
cd /etc/mail
makemap -r hash genericstable.db < genericstable
mv sendmail.mc sendmail.mc.original
wget http://incrediblepbx.com/sendmail.mc.gmail
cp sendmail.mc.gmail sendmail.mc
mkdir -p auth
chmod 700 auth
cd auth
echo AuthInfo:smtp.gmail.com \\"U:smmsp\\" \\"I:user_id\\" \\"P:password\\" \\"M:PLAIN\\" > client-info
echo AuthInfo:smtp.gmail.com:587 \\"U:smmsp\\" \\"I:user_id\\" \\"P:password\\" \\"M:PLAIN\\" >> client-info
echo AuthInfo:smtp.gmail.com:465 \\"U:smmsp\\" \\"I:user_id\\" \\"P:password\\" \\"M:PLAIN\\" >> client-info
# Stop here and edit client-info (nano -w client-info) in all three lines.
# Replace  user_id with your gMail account name without @gmail.com
# Replace password with your real gMail password OR
#  use your Gmail App Key if 2-step verification is enabled
# Be sure to replace the double-quotes shown above if they don't appear in the file!!!
# Save your changes (Ctrl-X, Y, then Enter)
chmod 600 client-info
makemap -r hash client-info.db < client-info
cd ..
make
systemctl restart sendmail

Even though these servers are hosted in the cloud, we still recommend using a SmartHost to minimize email delivery problems.

Test outbound mail using this command with your actual email address:

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

On some implementations, you may notice in the FreePBX GUI that the mail queue has failed. Here's the fix:

chmod 777 /var/spool/mqueue
service sendmail restart

Once you are sure your emails are being delivered reliably, here's a sample GUI voicemail configuration for an extension:



Be advised that Google has hinted that the Gmail Smarthost landscape may be changing. See our recent article for a simple SmartHost alternative.

Incredible PBX Administration

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

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

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

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

admin-pw-change is used to set the admin password for access to the FreePBX/Incredible PBX web GUI using a browser pointed to the local IP address of your server.

apache-pw-change is used to set the admin password for access to Apache/Incredible PBX apps including AsteriDex and Reminders. This provides a password layer of protection for access to these applications.

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

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

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

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

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

ssh-regen.sh allows you to reset the SSH keys for your server for added security.

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

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

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

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

Keeping FreePBX 15 Modules Current

We strongly recommend that you periodically update all of your FreePBX modules to eliminate bugs and to reduce security vulnerabilities. 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
/root/sig-fix

Where To Go From Here

Complete documentation on the ClearlyIP Devices Module is available here.

Complete documentation on the FreePBX GPL Modules is available here.

Complete documentation on the Incredible PBX additions is available here.

An introduction to configuring extensions, trunks, and routes is available here.

Free voicemail transcription with email delivery. Tutorial available here.

Setting Up a VPN for Your PBX: OpenVPN or NeoRouter
 

Originally published: Monday, March 28, 2022



Need help with Asterisk? Visit the VoIP-info Forum.


 

Special Thanks to Our Generous Sponsors


FULL DISCLOSURE: ClearlyIP, Skyetel, Vitelity, DigitalOcean, Vultr, VoIP.ms, 3CX, Sangoma, TelecomsXchange and VitalPBX have provided financial support to Nerd Vittles and our open source projects through advertising, referral revenue, and/or merchandise. As an Amazon Associate and Best Buy Affiliate, we also earn from qualifying purchases. We’ve chosen these providers not the other way around. Our decisions are based upon their corporate reputation and the quality of their offerings and pricing. Our recommendations regarding technology are reached without regard to financial compensation except in situations in which comparable products at comparable pricing are available from multiple sources. In this limited case, we support our sponsors because our sponsors support us.

BOGO Bonaza: Enjoy state-of-the-art VoIP service with a $10 credit and half-price SIP service on up to $500 of Skyetel trunking with free number porting when you fund your Skyetel account. No limits on number of simultaneous calls. Quadruple data center redundancy. $25 monthly minimum spend required. Tutorial and sign up details are here.

The lynchpin of Incredible PBX 2020 and beyond is ClearlyIP components which bring management of FreePBX modules and SIP phone integration to a level never before available with any other Asterisk distribution. And now you can configure and reconfigure your new Incredible PBX phones from the convenience of the Incredible PBX GUI.

VitalPBX is perhaps the fastest-growing PBX offering based upon Asterisk with an installed presence in more than 100 countries worldwide. VitalPBX has generously provided a customized White Label version of Incredible PBX tailored for use with all Incredible PBX and VitalPBX custom applications. Follow this link for a free test drive!
 

Special Thanks to Vitelity. Vitelity is now Voyant Communications and has halted new registrations for the time being. Our special thanks to Vitelity for their unwavering financial support over many years and to the many Nerd Vittles readers who continue to enjoy the benefits of their service offerings. We will keep everyone posted on further developments.