It’s not every day that you get an opportunity to deploy an Incredible PBX® server on a cloud platform as robust as the one offered by Oracle®. And the fact that it won’t cost you a dime EVER makes this all the more appealing. This isn’t some bargain basement, crippled cloud platform with barely enough horsepower to get your server booted. Quite the contrary. This is an ARM-based Ubuntu 20.04 platform with 6GB of RAM, 45+ GB of storage, and a 1GB network pipe. The CPU capacity is equivalent to multiple physical cores of an Intel Xeon processor with hyper threading enabled. The word you’re looking for is WOW! Our further testing suggests that, by deploying 1 OCPU instances, you can actually create 3 separate servers in your free allocation from Oracle. So let’s jump right in and get your new server up and running.

Getting Started with Oracle Cloud

For openers, you’ll need to set yourself up with a free Oracle Cloud account here. You can read all about Oracle’s Free Tier, and today we’ll be setting up an Always Free Ampere A1 Compute Resource which never expires. It provides 3,000 OCPU hours and 18,000 GB hours per month for free for VM instances using the VM.Standard.A1.Flex shape. For Always Free tenancies, this is equivalent to 4 OCPUs and 24 GB of memory. Translation: You can build an Asterisk® server to handle thousands of users with this platform. In fact, you can build FOUR of them.

Once you’ve set up your account and accessed the Oracle Cloud Dashboard, click on the 3-bar Options Menu in the upper left column. You’ll be using two key options in the menus: Compute -> Instances and Networking -> Virtual Cloud Networks. We recommend you click the PIN icon on both of these so that they become available on your Home dashboard.


To begin, navigate to Identity -> Compartments and create a new incrediblepbx compartment. Then navigate to Compute -> Instances and click the Create Instance button. Accept the default Name and choose incrediblepbx as your Compartment. In the Image and shape section, click Edit. In the Image and Shape dialog, click the Change Image button and choose the Canonical Ubuntu 20.04 option. CAUTION: 22.04 is now the default so make sure you change it to 20.04 Image with 2022-04-19 Build Date! Next, click the Change Shape button and choose Virtual Machine, Ampere, check VM.Standard.A1.Flex) and select 1 OCPU with 6GB of RAM. In the Networking section, click Edit. Choose Public Subnet, Use network security groups to control traffic: No, Assign a public IPv4 address: Yes, and DNS record: Yes. Finally, in the Add SSH Keys section, leave the Generate a key pair for me option selected, and click Save Private Key then Save Public Key to download both keys to your desktop. Click Upload public key files (.pub) button and upload the Public Key you just downloaded into your instance. Finally, click the Create button to create your new instance. Once your instance is up and running, click on Public Subnet under Primary VNIC. In the Default Security List option, add Ingress and Egress Rules with an entry for Stateless=No, Source=0.0.0.0/0, IP Protocol=ALL, Source & Destination Port Range=ALL.


Now copy the public IP address of your server which, together with your private key, you’ll need to login. From a Terminal window on your desktop PC, login to your server using the following commands where ssh-key-2022-05-24.key is the filename of your private key and 159.201.201.173 is the public IP address of your instance:

chmod 0600 ssh-key-2022-05-24.key
ssh -i ssh-key-2022-05-24.key ubuntu@159.201.201.173

Once you’re logged in, let’s configure the root account which you will need to install Incredible PBX. Begin by setting up a very secure password for root.

sudo passwd root
su root
cd ~
wget http://incrediblepbx.com/IncrediblePBX2021-Oracle.sh
chmod +x IncrediblePBX2021-Oracle.sh
./IncrediblePBX2021-Oracle.sh

We think you will find the performance is second to none. Here are our 1-OCPU results which far exceed the performance specs you’ll find at Vultr, Digital Ocean, or OVH on their 1-2 GB RAM platforms.


This is not a trivial install procedure so go have a long cup of coffee and return in about 40 minutes to press the ENTER key to kick off the Automatic Update Utility. Once that begins, you’ll need to press ENTER again in about 5 minutes when the updates are completed. Then your install will continue for a couple minutes when you will be prompted to press ENTER to reboot. Do so and you’re all set.

Managing Incredible PBX in the Oracle Cloud

All of the usual Incredible PBX features are available in the Oracle Cloud release. After rebooting, you now can login to your server as root using your root password. Be sure to login periodically so that the Automatic Update Utility is run to keep your server secure.

ssh root@oracle-server-IP-address



It’s also good practice to keep the FreePBX GPL modules up to date. Here’s how after logging in as root:

fwconsole ma upgradeall
rm -f /tmp/*
fwconsole reload
fwconsole restart
./sig-fix
./sig-fix

And don’t forget to…

Set your admin password for FreePBX GUI access: ./admin-pw-change

Set your admin password for Apache app access: ./apache-pw-change

Set your proper timezone: ./timezone-setup

Configure SendMail relay host: ./enable-gmail-smarthost-for-sendmail

Whitelist your IP addresses for access: ./add-ip and ./add-fqdn

Make a Backup and copy it off-site: ./incrediblebackup2021

Using Text-to-Speech Apps in the Oracle Cloud

Because the Oracle platform is ARM-based and most of the text-to-speech (TTS) apps are not, finding a TTS solution that actually worked was a challenge. But thanks to a tip from Dick Ollett, we’ve found a reliable alternative to PicoTTS. gTTS was easy to deploy with our existing applications and has restored the functionality of the Weather by ZIP Code (947) and News Headlines (951) applications using Incredible PBX on the Oracle Cloud platform.

Activating IBM Text-to-Speech for Oracle Cloud

IBM’s TTS offering still works reliably and, if you sign up for their LITE Pricing Plan, the first 10,000 characters per month are free. To get started, follow along in our previous IBM tutorial to sign up for service and the LITE TTS Pricing Plan which you will find by clicking on the Catalog tab in the toolbar, then choosing AI/Machine Learning, and then Text to Speech. Choose the Lite plan and make note of your API Key and access URL for the region you selected.

Next, log into your server as root and issue the following commands:

cd /var/lib/asterisk/agi-bin
wget http://incrediblepbx.com/ibmtts.tar.gz
tar zxvf ibmtts.tar.gz
rm -f ibmtts.tar.gz
./install-ibmtts-dialplan.sh

Finally, edit /var/lib/asterisk/agi-bin/ibmtts.php and insert your API Key and URL in the spaces provided. Then save the file.

Activating Amazon’s Polly TTS for Oracle Cloud

If you’d prefer to use Amazon’s Polly TTS, its pricing is incredibly reasonable, and the quality is second to none. For your first year of service, 5 million TTS characters a month are free. After that, the standard TTS cost is $4 per million characters per month prorated to actual usage. For example, with 300 TTS requests a month of 500 characters each, the monthly cost would be 60¢. We’ve previously documented the Polly TTS setup for Incredible PBX 2021 so you can follow that tutorial to deploy Polly TTS with Incredible PBX in the Oracle Cloud.

Using either service, you now should be able to obtain Weather Reports by ZIP Code by dialing 947 from any extension registered to your PBX. Get the latest News Headlines by dialing 951.

Activating OpenVPN Virtual Private Network

The OpenVPN Client software comes preinstalled with Incredible PBX. In order to activate OpenVPN, you simply need to copy your OpenVPN credentials to the server as /etc/incrediblepbx2021.ovpn. Then reboot. Your OpenVPN IP address will be shown in pbxstatus. For an overview of the OpenVPN setup procedure, read our original OpenVPN article. Then follow the simple steps on the Incredible PBX Wiki for OpenVPN Server and OpenVPN Client installs.

NOTE: Because of Oracle’s security zone policies, connecting extensions to your PBX using the public IP address may result in no audio on calls with some SIP clients. By connecting using the OpenVPN private IP address solves the problem in some cases.

Getting Started with Incredible Fax 2021

Believe it or not, there still are lots of folks that use faxes in their everyday lives. If you’re one of them, Incredible PBX has your back. Begin by logging into your server as root and running ./incrediblefax2021-ubuntu20.04.sh to install HylaFax and AvantFax on your server. You’ll be prompted a dozen or more times for information. Answer no to the secure fax question. For the rest of the prompts, just press ENTER to accept the default entries. Rebooting your server is required when the install finishes. Once your server is back on line, there will be a new AvantFax tab in the GUI. Before proceeding, be sure to set an Apache web apps password by running /root/apache-pw-change. Next, login to AvantFax with your browser. You first will be prompted for your Apache credentials. Enter admin for the username and whatever password you set up in the previous step. Then you will be prompted for your AvantFax credentials. The default is admin:password. After you enter the username and password, you will be prompted to change your admin password. The AvantFax dashboard then will display. If nothing has come unglued, you should see four green Idle icons:



You can Send Faxes from within AvantFax by choosing the Send Fax tab, or you can use one of many HylaFax clients. Google is your friend.

Configuring Inbound Routes for Fax Detection

Not all VoIP trunks support fax transmission, e.g. Vitelity. Assuming yours do and you’ll only know by trial and error, here’s how to configure FreePBX to automatically detect incoming faxes and process them for PDF delivery by email. First, make certain the Fax Configuration Module is enabled in Module Admin. Then, for each Inbound Route on which you wish to receive faxes, you’ll need to enable fax detection on each route.

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

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

To try things out, send yourself a fax at no cost in the U.S. from FaxZero.

How Sausage Is Made AND Special Thanks

While our name is associated with this build, I want to give a special tip of the hat to the important contributions from Dick Ollett on the text-to-speech deployment and Bill Simon on the CDR/CEL implementation with ODBC. AArch64 is a different beast, and we couldn’t have pulled this off without their assistance. If you’re ever curious how sausage is actually made in the open source development world, you can read all about it in this VoIP-Info.org Forum thread. THANK YOU! Should you ever need paid Asterisk consulting, these are our two go-to guys. You can find them on the forum, or you can contact us for a referral.

Originally published: Monday, May 30, 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 plus quadruple data center redundancy assures that you’ll never have a failed call. 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.
 



This article has 5 comments

  1. I’m not seeing a "Create Subnet" option on the Virtual Cloud Networks page. I see a "Create VCN" button, but when I click that, I don’t see any option to create anything public. I can’t imaging something’s changed since you published this yesterday–what am I missing?
    [WM: Sorry for the confusion. Skip that step, and you’ll get to it in the step after you create your instance.]

  2. Thanks for the article !

    FYI, I managed to have calls AND Fax working using your fax script for ubuntu (incrediblefax2021-ubuntu20.04.sh) and the following in sip_general_custom.conf :
    externip= YOUR_ORACLE_CLOUD_EXT_IP
    media_address= YOUR_ORACLE_CLOUD_EXT_IP.

    In my oracle firewall, I have the following opened :
    ICMP : 0,3,4,11,12
    TCP : 113,1723,123,4445,5353,32976
    UDP: 4569,5060-5069,10000-2000,53:9999-65535

    Cheers !

  3. When I try to reload the fwconsole I get a big red error saying:

    In Cron.class.php line 281:

    proc_open(/tmp/cron.error): failed to open stream: Permission denied.

    I am logged in as root. Any suggestions?

    [WM: Issue the command rm -f /tmp/* and then fwconsole reload]

  4. Great article. I had already installed a PBX on an always free Oracle server before you posted your article. But, I am taking it down and installing anew since your PBX has more features. I always enjoy playing around with these PBXs, and you have made this stuff so easy to do. People think I am a telephony expert. Actually, I just read the instructions and follow along. Ward…you are simply the best.

Leave a comment

Your email address will not be published.

*