Home » 2015 » May

Monthly Archives: May 2015

The Most Versatile VoIP Provider: FREE PORTING

Freedom and the FreePBX Cloud: Is an Apple-like Ecosystem GPL-Compliant?

Short Answer: No way, José!     Right Answer: Sangoma should fix it.     Our Answer: New GPL Repo fixes it… today!

We began our series on FreePBX® by providing a GPL-compliant alternative to the base design of the FreePBX GUI minus the elements which have made redistribution and/or code modification difficult despite the clear language of the product’s GPL licenses. In our last article, we introduced new turnkey versions of Incredible PBX for CentOS featuring your choice of the 2.11 or 12.0 Incredible PBX GUI. Coming soon will be new releases of Incredible PBX for the Ubuntu, Debian, and Raspbian platforms so hang in there.

This week we begin our examination of the actual FreePBX design and the morphing that has taken place. We want to give you the full picture of why this led to our decision to no longer support the FreePBX approach to "GPL" software design. We also will provide some additional GPL tools that open up the platform in the way the GPL license requires.

It’s important for everyone to understand the impact of commercialization on project development when organizations bend the rules to suit their own commercial purposes. None of this was Sangoma’s doing. But FreePBX is now Sangoma’s GPL project, and it’s up to them to clean up the mess. For openers, nobody forced the FreePBX developers to release the FreePBX code with a GPL license. But they did it… almost 10 years ago! Only after the product became hugely popular did these folks apparently conclude that maybe giving away their software wasn’t such a good idea after all. You can track when the wheels came off the bus by looking at the project’s history on SourceForge. Not surprisingly, it coincides with SchmoozeCom’s entry into the picture. As Richard Stallman of the Free Software Foundation would tell you, this isn’t about whether code is open source software. Some FreePBX modules are and many are not. But providing source code is merely one aspect of the GPL. So let’s start with some of the actual language from the GPL license:

When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things.

To protect your rights, we need to prevent others from denying you these rights or asking you to surrender the rights. [Emphasis added.]

Today we want to cover the first of several topics you won’t ever hear about in a (commercial) "advanced" training class for FreePBX. In case you haven’t attended one of these lovefests, the training is intended to let (paying) students learn how to customize the settings of the GUI for others willing to pay someone to build them a PBX. There’s nothing particularly wrong with that unless you believe everything associated with free software should be free. We don’t. In any case, you’ll learn how to create extensions and ring groups, inbound and outbound routes, trunk setups, and many of the other (basic) things that Nerd Vittles has been covering (for free) for years. And, of course, you will learn how to market the FreePBX brand and Sangoma-produced commercial modules.

What you won’t hear is anything about the inner workings of FreePBX much less how to customize the product for your own use, i.e. the types of modifications envisioned by the clear terms of the GPL. Those GPL "features" are available on a per customer basis for substantial "customization fees." Translation: roughly the same cost as a new Hyundai for your kid headed off to college. And there’s one other hidden surprise. Even with custom branding of FreePBX, you will remain a captive in the so-called FreePBX ecosystem.

If you’ve enjoyed Apple’s App Store approach to system lock-in, then you’ll feel right at home with FreePBX. The wrinkle is that the FreePBX approach is even more restrictive than Apple’s. For openers, anyone wishing to sell their own commercial module need not apply. Unlike Apple, no commercial offerings from anyone but Sangoma are permitted in the FreePBX ecosystem. Imagine if Digium had adopted a similar approach by barring modules from competing hardware companies from interfacing with Asterisk®. Where would that have left Sangoma? In the case of FreePBX, even if you want to give away a FreePBX-compatible GPL module, you’re out of luck with FreePBX 12 unless you’re willing to underwrite Sangoma’s unlimited legal expenses if they ever get sued. Note our emphasis on unlimited. Sangoma claims they merely copied a general indemnification provision used by others such as Rackspace. But, as one of our readers pointed out:

The link that they claim they used as a template is one I would sign. Sangoma reworded things so that ALL liability is yours, even if an issue arises in their code that affects your code (after the fact). Sangoma in that case, is responsible but YOU have to pay for their legal fees. You cannot have a final say in settlements, they do. They can select whatever priced attorneys they want (you have no say). There is no ‘reasonable’ word usage. They dropped it.

As for your GPL module, yes, you can manually load it and run it without signing the indemnification agreement, but users will have to endure nasty warnings and emails every day which suggest that their server has been compromised.1 Apple, on the other hand, screens free and non-free additions to their App Store and includes literally thousands of third-party apps without anyone having to pay Apple’s legal fees. FreePBX proclaims that "Free Stands for Freedom" but…

I’m reminded of a book that was published during the Vietnam War era: "Military Justice is to Justice As Military Music is to Music." If this is Sangoma’s idea of freedom, I’m not quite sure why anyone would want it except for the fact that they’re the only GUI game in town. The Sherman Act may be unfamiliar territory in Canada, but it might be worth a careful look.

Here’s where the GPL breaks down. Despite the best of intentions, the GPL drafters believed that handing someone the source code for a program was the best way to insure freedom to redesign and redistribute computer programs. That works well when the computer program is a couple hundred lines of code, but it breaks down quickly when you’re dealing with a program that’s been commingled with a commercial Cloud-based hosting service shrouded in secrecy and you’re staring at a million lines of code that can best be described as "engineered obfuscation." Think of it as handing someone a plate of your grandma’s cookies and, when asked for the recipe, you say, "All of the ingredients are right there in front of you." Yes, but…

This is a critically important point so let’s cover it in the context of FreePBX. What do you get and what do you not get when you install or use the product? Because the FreePBX GPL modules are written in unencrypted PHP code, you automatically get the source code when you install each module. It used to be that you also could acquire the modules on a public web site provided by the developers, now Sangoma. As noted last week, that openness came to a screeching halt with FreePBX 12. Until our repository was made available, you could scour the web high and low, but you wouldn’t find the GPL "free" modules for FreePBX 12 in a format directly usable by the FreePBX GUI and its Module Admin update feature which is perhaps the best feature of the GUI. In fact, until today, the only way to acquire the modules in a usable format with error correction was through the FreePBX GUI interface itself using the proprietary, hidden "ecosystem" maintained by Sangoma. The acquisition process itself is buried deep in a million lines of spaghetti code. Yes, you can get the source code, but…



Sangoma hopefully will ponder the words of Richard Stallman, the Founder and President of the Free Software Foundation:

Clearly that server does not respect our freedom, and we should refuse to use it, for the most part.

If we use a GUI for PBX’s, we should load our modules in some way that treats us decently.

So why the mystery with acquisition of FreePBX modules? The simple is answer is that it restricts everyone’s freedom. You can’t redistribute FreePBX without keeping Sangoma and the "non-free" FreePBX ecosystem in the middle of the equation. This provides the ongoing platform for Sangoma to peddle the sale of (only) their branded SIP trunking service as well as (only) their commercial modules. This may be their idea of freedom, but…

Last week we provided the first glimpse of freedom providing a means to break away from the trademark gimmicks of the mothership by using our reengineered GPL GUI with our repository of GPL modules for the new product. What you still lacked was the freedom to break away from our universe and go your own way. Why? Because the FreePBX developers have never revealed their Cloud’s secret sauce much less the tools necessary to create your own GPL module repository and have it function properly within the GUI. Without the cloud access and control, you lose the key module update and monitoring capabilities of the product itself plus the ability to upgrade the GUI to a later version. We used to call this CrippleWare, software with only limited functionality unless you cough up the big bucks. They’ll tell you that it’s all in the source code…

Well, not quite all. FreePBX is open source GPL software minus the secret sauce hidden in Sangoma’s Cloud which is the antithesis of the freedom component of the GPL. If you don’t appreciate the difference and why this runs counter to the GPL, read Richard Stallman’s explanation here. Because Cloud access by design is the only means provided in the FreePBX GUI to load new GPL modules, or to check for and update existing modules, or to upgrade the FreePBX GUI itself,2 the Cloud component is clearly an integral component of FreePBX. As such, it also must be licensed under the GPL and all its source code made available. In the words of the Free Software Foundation:

I’d like to incorporate GPL-covered software in my proprietary system. Can I do this?

You cannot incorporate GPL-covered software in a proprietary system. The goal of the GPL is to grant everyone the freedom to copy, redistribute, understand, and modify a program. If you could incorporate GPL-covered software into a non-free system, it would have the effect of making the GPL-covered software non-free too.

A system incorporating a GPL-covered program is an extended version of that program. The GPL says that any extended version of the program must be released under the GPL if it is released at all. This is for two reasons: to make sure that users who get the software get the freedom they should have, and to encourage people to give back improvements that they make.

However, in many cases you can distribute the GPL-covered software alongside your proprietary system. To do this validly, you must make sure that the free and non-free programs communicate at arms length, that they are not combined in a way that would make them effectively a single program.

The difference between this and “incorporating” the GPL-covered software is partly a matter of substance and partly form. The substantive part is this: if the two programs are combined so that they become effectively two parts of one program, then you can’t treat them as two separate programs. So the GPL has to cover the whole thing.

If the two programs remain well separated, like the compiler and the kernel, or like an editor and a shell, then you can treat them as two separate programs—but you have to do it properly. The issue is simply one of form: how you describe what you are doing. Why do we care about this? Because we want to make sure the users clearly understand the free status of the GPL-covered software in the collection.

If people were to distribute GPL-covered software calling it “part of” a system that users know is partly proprietary, users might be uncertain of their rights regarding the GPL-covered software. But if they know that what they have received is a free program plus another program, side by side, their rights will be clear.

Of course, every new module release brings a new opportunity to change the file and directory structure hidden in the Cloud to once again disguise the secret components required for proper GUI operation. Trust us. They have. Why else would you change a file name from modules-12 to all-12 except to conceal its identity? It’s called security through obscurity. Try searching your server for all-12 and see what you find. This hidden file is what locks you into the Sangoma commercial ecosystem. They call it freedom. It’s really anything but that. A more descriptive label would be a hidden, proprietary GOTCHA. You get some of the source code to make FreePBX work properly, but…

Building an Independent GPL Cloud Repository for the Incredible PBX GUI

Today we’re going to fix this deficiency at least for those using the new Incredible PBX GUI by offering independently developed GPL code that provides the freedom to build your own Cloud-based ecosystem should you wish to do so. We would encourage Sangoma to do the right thing. Stop listening to the former owners of the FreePBX project and become a good GPL steward. It’s your project now. You’ve owned it for almost six months! You’re also a better company than the one you bought. So start acting like it. Bring the FreePBX Cloud-based components out into the open and provide the tools necessary to use them as your GPL product license requires.

What we are providing today are all the components necessary to build an independent GPL Cloud that is compatible with the Incredible PBX GUI. This includes a base install of existing GPL modules that are compatible with versions 2.11 and 12 of FreePBX plus the toolkit to maintain an independent GPL Cloud. To load future modules and updates into your repository, you’ll need a Linux LAMP server running the latest version of Apache and at least PHP 5.4. Neither Asterisk® nor FreePBX is required on the server platform. Be advised that CentOS 6.5 and 6.6 ship with PHP 5.3 so you’ll need to perform the following steps to bring your server up to the 5.4 or 5.5 version of PHP before proceeding. Be advised that your GPL Cloud will only work with GPL-licensed versions of Incredible PBX running the 2.11 or 12 release of Incredible PBX GUI. See last week’s tutorial to get started.

Before we begin, several cautionary notes are in order. First, we can’t control Sangoma’s behavior. Assuming they decide not to comply with the GPL by keeping their Cloud service proprietary, a simple tweak on their end could change the location of their Cloud’s secret sauce at any time. That could very well break the ability to download future GPL modules from their repositories using this toolkit. But don’t worry. If that happens, we’ll be the first to let you know. We figured it out once, and we can figure it out again. You can run, but you cannot hide! We’ll also show you an alternative method to load new modules into your own repository. Second, don’t even think about using your own repository while retaining the original FreePBX GUI instead of updating to the Incredible PBX GUI. A single module update on their end could do a couple of things. It could overwrite the location of the module repositories and restore theirs. Or it could completely disable your server after detecting that you had changed the internal workings of FreePBX. Remember when Apple did just that with jailbroken iPhones? We’re not suggesting Sangoma would actually pull such a stunt. In fact, we don’t think Sangoma would ever stand for that despite a few developers that might have a different view. But we’re warning that it’s simply not worth the risk.

Before you elect to go your own way with your own repository, be advised that importing new FreePBX-compatible GPL modules without first testing each of them with the Incredible PBX GUI is a very bad idea for the reasons already mentioned. We intend to do that with the new Incredible PBX repository, and we would encourage you to adopt the same approach.

Finally, to protect the security and integrity of your GPL Cloud resources, do not include repo.php and the contents of its accompanying src directory in your public repository. Otherwise, anyone with public access to your server would be able to change the contents of your repository. The proper methodology would be to build and maintain your repository off line and then copy the files to a public web server without the tools used to actually create and update the GPL modules and accompanying XML files. The tools themselves are GPL code, and you are more than welcome to redistribute them pursuant to the GPL license. Just don’t post them in decompressed format in your repo thereby making them functional for anonymous attacks against your repository.

To begin, download GPL-repo.tar.gz from SourceForge and decompress the tarball into a folder on your private server:

mkdir repo
cd repo
touch index.html
wget -O GPL-repo.tar.gz http://sourceforge.net/projects/pbxinaflash/files/IncrediblePBX11.11%2B11.12%20with%20Incredible%20GUI/GPL-repo.tar.gz/download
tar zxvf GPL-repo.tar.gz
yum -y install php-simplexml

The file structure will look like this where modules and src are subdirectories:

Within the modules subdirectory will be a packages subdirectory that includes folders for each of the GPL modules. There’s also a licenses folder with all of the applicable GPL licenses.

Within each of the package directories, you will find one or two modules for the two currently supported GPL versions. For example, here are the entries for the framework module:

The lists of the available modules for each supported GPL version are contained in the .xml files in the top level directory: modules-2.11.xml and all-12.0.xml. modules-12.0.xml is a symlink to a previous nomenclature for version 12. These XML files are what Module Admin uses to check for updates available for existing modules on your PBX.

To add or update individual modules in your repository, issue one or both of the following commands using the actual name of the module you wish to add or update. You can decipher the actual names for the modules by checking the FreePBX source listings on GitHub. As we cautioned previously, don’t ever add or update modules without first testing the new module on an Incredible PBX server running the Incredible GUI. If an updated module blows things up, please let us know!

./repo.php 2.11 modulename
./repo.php 12.0 modulename

And here’s how to add any compatible module from any FreePBX 2.11 or 12 server or from GitHub to your repo. On the FreePBX platform, switch to the directory holding the modules: cd /var/www/html/admin/modules. By way of example, let’s assume there’s a javassh module directory.

1. Decipher the current version of the module: grep version javassh/module.xml
2. Create a gzipped tarball of that module including the version: tar -cvzf javassh-VERSION.tgz javassh/
3. Move javassh-VERSION.tgz to your /repo folder: mv javassh-VERSION.tgz /var/www/html/repo

Alternatively, you can use the included git-grab12 script to download the latest version 12 modules in tarball format directly from the FreePBX repository on GitHub:

From your /repo folder: ./git-grab12 modulename (there is no javassh version 12 module)

4. Assimilate the javassh module into your repo as either a 2.11 or 12.0 module or both:

cd /var/www/html/repo
./repo.php 2.11 javassh-VERSION.tgz
./repo.php 12.0 javassh-VERSION.tgz
rm -f javassh-VERSION.tgz

When you’re ready to go public, move the /repo folder and its subdirectories from your private server to a public web server, issue the following commands within the main destination directory on the public server to remove the GPL repo toolkit:

rm -f git-grab12
rm -f repo.php
rm -rf src

The final step is to tell the Incredible PBX GUI the new location of your module repository. For this, you will need a fully-qualified domain name (FQDN) that points to the top-level directory of the repository stored on your public web server, e.g. http://myrepo.me.com. Once you have set up a DNS entry for this address and tested it to be sure it works, all you have to do is configure the GUI to find it. Issue the following command from the Linux CLI after logging into your server as root. Be sure to substitute your actual FQDN and your actual root password for MySQL if you have changed it from passw0rd. If you’re building a number of new servers, you could simply add this line to the end of the Incredible PBX install script. Be sure to copy the entire line below. It should end with double quotes.

mysql -u root -ppassw0rd asterisk -e "update freepbx_settings set value='http://myrepo.me.com' where keyword='MODULE_REPO' and description='repo server' limit 1"

Isn’t it amazing what you can do with some GPL code and a little documentation on how to use it? Freedom At Last!

Originally published: Tuesday, May 26, 2015


Support Issues. With any application as sophisticated as this one, you’re bound to have questions. Blog comments are a terrible place to handle support issues although we welcome general comments about our articles and software. If you have particular support issues, we encourage you to get actively involved in the PBX in a Flash Forums. It’s the best Asterisk tech support site in the business, and it’s all free! Please have a look and post your support questions there. Unlike some forums, ours is extremely friendly and is supported by literally hundreds of Asterisk gurus and thousands of users just like you. You won’t have to wait long for an answer to your question.



Need help with Asterisk? Visit the PBX in a Flash 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.
 



Some Recent Nerd Vittles Articles of Interest…

  1. According to a recent tweet from one of the developers, these warnings now can be disabled. That change was more than a year in coming. []
  2. The latest versions of the GPL modules are available in FreePBX’s GIT repo. UPDATE: Although tarballs are available for individual modules, even that format on GitHub would require painstaking, individual imports within the FreePBX GUI and totally defeats the design and purpose of the Module Admin component of FreePBX. []

Introducing Incredible PBX with Incredible GUI for CentOS and Scientific Linux


[iframe-popup id="4″]
If you’re looking for a pure GPL, open source Asterisk® aggregation with a pure GPL, open source graphical user interface, then today’s your lucky day. Incredible PBX™ with the new Incredible GUI for CentOS 6.5 and 7 is an independent aggregation based solely upon GPL code. Because of the nature of the CentOS platform, it was built from the ground up. The Incredible PBX installers are pure GPL open source code so you are more than welcome (encouraged!) to examine it, improve upon it, and share your discoveries with all of us.

Incredible PBX for CentOS 6.5 and 7 follows our standard install procedure which means it’s up to you to first create a CentOS 6.5 or 7 platform. If you prefer Scientific Linux or Oracle Linux, feel free to start there. All work equally well as a base platform and are supported by a worldwide group of developers. Once your OS platform is in place, simply run the Incredible PBX installer of your choice. After 30-60 minutes of whirring, you’ll end up with an awesome (free) state-of-the-art Asterisk-based VoIP server with the very latest version of Asterisk 11 as well as dozens of turnkey Incredible PBX applications. So enjoy a nice lunch while the Incredible PBX installer works its magic. No user intervention is required during the installation procedure. All text-to-speech (TTS) applications work out of the box. You can add Google’s Speech Recognition to many Incredible PBX applications by following our 5-minute tutorial.

Installing a Base CentOS Operating System

UPDATE AND WARNING: CentOS 7 build is not yet ready for prime time. Stick with 6.5/6.6.

Let’s begin by installing 64-bit CentOS 6.5 or 7 on your favorite hardware or Desktop. Or you may prefer to use a Cloud provider1 that already offers a preconfigured CentOS image. In the latter case, you can skip this section.

For those using a dedicated hardware platform or wishing to install CentOS as a virtual machine, the drill is the same. Start by downloading the 64-bit CentOS 6.5 minimal ISO or the CentOS 7 minimal ISO or . Burn the ISO to a DVD unless you’ll be booting from the ISO on a virtual machine platform such as VirtualBox. On virtual platforms, we recommend at least 1GB RAM and a 20GB dedicated drive. For VirtualBox, here are the settings:

Type: Linux
Version: RedHat 64-bit
RAM: 1024MB
Default Drive Options with 20GB+ space
Create
Settings->System: Enable IO APIC and Disable HW Clock (leave rest alone)
Settings->Audio: Enable
Settings->Network: Enable, Bridged
Settings->Storage: Far right CD icon (choose your ISO)
Start

Boot your server with the ISO, and start the CentOS install. Here are the simplest installation steps:

Choose Language and Click Continue
Click: Install Destination (do not change anything!)
Click: Done
Click: Network & Hostname
Click: ON
Click: Done
Click: Begin Installation
Click: Root Password: password, password, Click Done twice
Wait for Minimal Software Install and Setup to finish
Click: Reboot

Configuring CentOS 6.5 or 7 for Incredible PBX Installation

Now log into your server as root and issue the following commands to put the basic pieces in place and to reconfigure your Ethernet port as eth0. Make a note of your IP address so you can log in with SSH.

setenforce 0
yum -y upgrade --skip-broken
yum -y install net-tools nano wget tar
# decipher your server's IP address
ifconfig
# patch grub and ignore any errors if your server doesn't use it
sed -i 's|quiet|quiet net.ifnames=0 biosdevdame=0|' /etc/default/grub
grub2-mkconfig -o /boot/grub2/grub.cfg
# for CentOS/Scientific Linux 6.5/6.6 platforms, perform these additional steps:
wget http://incrediblepbx.com/update-kernel-devel
chmod +x update-kernel-devel
./update-kernel-devel
reboot

If you’re on a virtual machine platform, now would be a good time to make an export or backup of your CentOS image. The minimal install is about 500MB. Don’t forget to first remove your hardware address (HWADDR) and network UUID from /etc/sysconfig/network-scripts/ifcfg-enp0s3 or whatever file name was assigned to your hardware. The saved image will be bootable with DHCP network support anywhere down the road.

NEWS FLASH: For those wanting to test things out using VirtualBox, a Scientific Linux 7 Minimal Install image (401MB) is now available on SourceForge. It gets you to right here in the install process.


Installing Incredible PBX for CentOS 6.5 or 7

Adding Incredible PBX to a running CentOS 6.5 or 7 server is a walk in the park. To restate the obvious, your server needs a reliable Internet connection to proceed. Be sure to use SSH (or Putty on a Windows machine) to begin because the installer locks the firewall down to your local network and the IP address of the machine from which you perform the install. Log into your new server as root at the IP address you deciphered in the ifconfig step in the CentOS installation procedure above.

WARNING: If you’re using a 512MB droplet at Digital Ocean, be advised that their setups do NOT include a swap file. This may cause serious problems when you run out of RAM. Uncomment ./create-swapfile-DO line below to create a 1GB swap file which will be activated whenever you exceed 90% RAM usage on Digital Ocean.

Now let’s begin the Incredible PBX install. You have a choice of GUI versions: 2.11 or 12.0.

NOTE: To more clearly identify packaging as we move forward, there has been a change in the Incredible PBX naming and numbering scheme. Henceforth, the file name and version reflects the Asterisk version, the GUI version, the Incredible PBX release number, and the OS platform. For example, incrediblepbx11-11.1.centos tells you the product includes Asterisk 11, the 2.11 GUI, .1 release number, and the CentOS platform.

To install the 2.11 GUI, log back in as root and issue the following commands:

cd /root
wget http://incrediblepbx.com/incrediblepbx11-11.2.centos.tar.gz
tar zxvf incrediblepbx*
#./create-swapfile-DO
./IncrediblePBX*

To install the version 12 GUI, log back in as root and issue the following commands:

cd /root
wget http://incrediblepbx.com/incrediblepbx11-12.2.centos.tar.gz
tar zxvf incrediblepbx*
#./create-swapfile-DO
./IncrediblePBX*
gui-fix

Once you have agreed to the license agreement and terms of use, press Enter and go have a long cup of coffee. The Incredible PBX installers run unattended so find something to do for the next 30-60 minutes unless you just like watching code compile. When the installation is complete, run /root/admin-pw-change to set the admin password for GUI access using a browser. If you’re using the version 12 GUI, don’t forget: gui-fix.

Log out and back into your server as root and you should be greeted by something like this:

Perform the following steps:

Make your root password very secure: passwd
Set your correct time zone: ./timezone-setup
Restart Asterisk: amportal restart
Create admin password for web apps: htpasswd /etc/pbx/wwwpasswd admin
Make a copy of your other passwords: cat passwords.FAQ
Make a copy of your Knock codes: cat knock.FAQ
Decipher IP address and other info about your server: status

Incredible PBX includes an automatic update utility which downloads important updates whenever you log into your server as root. We recommend you log in once a week to keep your server current. Now would be a good time to log out and back into your server at the Linux command line to bring your server up to current specs.

You can access the Incredible PBX GUI using your favorite web browser to configure your server. Just enter the IP address shown in the status display.

Choose Incredible GUI Administration from the Admin menu of the Kennonsoft GUI (shown above). The default username is admin and the password is what you set when the install completed. Now edit extension 701 so you can figure out (or change) the randomized passwords that were set up for your 701 extension and voicemail account: Applications -> Extensions -> 701. If you’re behind a hardware-based firewall, change the NAT setting to: YES.

Setting Up a Soft Phone to Use with Incredible PBX

Now you’re ready to set up a telephone so that you can play with Incredible PBX. We recommend YateClient 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’ll need the IP address of your server plus your extension
701 password. Choose Settings -> Accounts and click the New button. Fill in the blanks using the IP address of your server, 701 for your account name, and whatever password you created for the extension. Click OK.

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:


947 - Weather by ZIP Code
951 - Yahoo News
*61 - Time of Day
*68 - Wakeup Call
TODAY - Today in History

Now you’re ready to connect to the telephones in the rest of the world. If you live in the U.S., the easiest way (at least for now) is to set up a free Google Voice account. Google has threatened to shut this down but as this is written, it still works. The more desirable long-term solution is to choose several SIP providers and set up redundant trunks for your incoming and outbound calls. The PIAF Forum includes dozens of recommendations to get you started.

Configuring Google Voice

If you want to use Google Voice, you’ll need a dedicated Google Voice account to support Incredible PBX. If you want to use the inbound fax capabilities of Incredible Fax 11, then you’ll need an additional Google Voice line that can be routed to the FAX custom destination using the GUI. The more obscure the username (with some embedded numbers), the better off you will be. This will keep folks from bombarding you with unsolicited Gtalk chat messages, and who knows what nefarious scheme will be discovered using Google messaging six months from now. So keep this account a secret!

We’ve tested this extensively using an existing Gmail account, and inbound calling is just not reliable. The reason seems to be that Google always chooses Gmail chat as the inbound call destination if there are multiple registrations from the same IP address. So, be reasonable. Do it our way! Set up a dedicated Gmail and Google Voice account, and use it exclusively with Incredible PBX. It’s free at least through 2013. Google Voice no longer is by invitation only so, if you’re in the U.S. or have a friend that is, head over to the Google Voice site and register.

You must choose a telephone number (aka DID) for your new account, or Google Voice calling will not work… in either direction. Google used to permit outbound Gtalk calls using a fake CallerID, but that obviously led to abuse so it’s over! You also have to tie your Google Voice account to at least one working phone number as part of the initial setup process. Your cellphone number will work just fine. Don’t skip this step either. Just enter the provided 2-digit confirmation code when you tell Google to place the test call to the phone number you entered. Once the number is registered, you can disable it if you’d like in Settings, Voice Setting, Phones. But…

IMPORTANT: Be sure to enable the Google Chat option as one of your phone destinations in Settings, Voice Setting, Phones. That’s the destination we need for The Incredible PBX to work its magic! Otherwise, all inbound and outbound calls will fail. If you don’t see this option, you may need to call up Gmail and enable Google Chat there first. Then go back to the Google Voice Settings.

While you’re still in Google Voice Settings, click on the Calls tab. Make sure your settings match these:

  • Call ScreeningOFF
  • Call PresentationOFF
  • Caller ID (In)Display Caller’s Number
  • Caller ID (Out)Don’t Change Anything
  • Do Not DisturbOFF
  • Call Options (Enable Recording)OFF
  • Global Spam FilteringON

Click Save Changes once you adjust your settings. Under the Voicemail tab, plug in your email address so you get notified of new voicemails. Down the road, receipt of a Google Voice voicemail will be a big hint that something has come unglued on your PBX.

One final word of caution is in order regardless of your choice of providers: Do NOT use special characters in any provider passwords, or nothing will work!

Now you’re ready to set up your Google Voice trunk in the GUI. After logging in with your browser, click the Connectivity tab and choose Google Voice/Motif. To Add a new Google Voice account, just fill out the form. Do NOT check the third box or incoming calls will never ring!

IMPORTANT LAST STEP: Google Voice will not work unless you restart Asterisk from the Linux command line at this juncture. Using SSH, log into your server as root and issue the following command: amportal restart.

If you have trouble getting Google Voice to work (especially if you have previously used your Google Voice account from a different IP address), try this Google Voice Reset Procedure. It usually fixes connectivity problems. If it still doesn’t work, enable Less Secure Apps using this Google tool.

Troubleshooting Audio and DTMF Problems

You can avoid one-way audio on calls and touchtones that don’t work with these simple settings in the GUI: Settings -> Asterisk SIP Settings. Just plug in your public IP address and your private IP subnet. Then set ULAW as the only Audio Codec.

A Few Words about the Incredible PBX Security Model for CentOS

Incredible PBX for CentOS joins our previous Ubuntu build as our most secure turnkey PBX implementation, ever. As configured, it is protected by both Fail2Ban and a hardened configuration of the IPtables Linux firewall. The latest release also includes Port Knocker for simple, secure access from any remote computer or smartphone. You can get up to speed on how the technology works by reading the Nerd Vittles tutorial. Your Port Knocker credentials are stored in /root/knock.FAQ together with activation instructions for your server and mobile devices. The NeoRouter VPN client also is included for rock-solid, secure connectivity to remote users. Read our previous tutorial for setup instructions. As configured, nobody can access your PBX without your credentials AND an IP address that is either on your private network or that matches the IP address of your server or the PC from which you installed Incredible PBX. You can whitelist additional IP addresses by running the command-line utility /root/add-ip. You can remove whitelisted IP addresses by running /root/del-acct. Incredible PBX is preconfigured to let you connect to many of the leading SIP hosting providers without additional firewall tweaking. We always recommend you also add an extra layer of protection by running your server behind a hardware-based firewall with no Internet port exposure, but that’s your call. And it’s your phone bill. 😉

The IPtables firewall is a complex piece of software. If you need assistance with configuring it, visit the PIAF Forum for some friendly assistance.

Incredible Backup and Restore

We’re pleased to introduce our latest backup and restore utilities for Incredible PBX. Running /root/incrediblebackup will create a backup image of your server in /tmp. This backup image then can be copied to any other medium desired for storage. To restore it to another Incredible PBX server, simply copy the image to a server running Asterisk 11 and the same version of the Incredible PBX GUI. Then run /root/incrediblerestore. Doesn’t get much simpler than that.

Incredible PBX Automatic Update Utility

Every time you log into your server as root, Incredible PBX will ping the IncrediblePBX.com web site to determine whether one or more updates are available to bring your server up to current specs. We recommend you log in at least once a week just in case some new security vulnerability should come along.

In the meantime, we encourage you to sign up for an account on the PIAF Forum and join the discussion. In addition to providing first-class, free support, we think you’ll enjoy the camaraderie.

Originally published: Wednesday, May 20, 2015


Support Issues. With any application as sophisticated as this one, you’re bound to have questions. Blog comments are a terrible place to handle support issues although we welcome general comments about our articles and software. If you have particular support issues, we encourage you to get actively involved in the PBX in a Flash Forums. It’s the best Asterisk tech support site in the business, and it’s all free! Please have a look and post your support questions there. Unlike some forums, ours is extremely friendly and is supported by literally hundreds of Asterisk gurus and thousands of users just like you. You won’t have to wait long for an answer to your question.

NEWS FLASH: There’s a message thread to handle Bugs & Fixes for this new release. If you have issues with your install, start there.



Need help with Asterisk? Visit the PBX in a Flash 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.
 



Some Recent Nerd Vittles Articles of Interest…

  1. Some of our links refer users to Amazon or other service providers when we find their prices are competitive for the recommended products. Nerd Vittles receives a small referral fee from these providers to help cover the costs of our blog. We never recommend particular products solely to generate commissions. However, when pricing is comparable or availability is favorable, we support these providers because they support us. []

Turning the Page on Asterisk GUIs: Here’s to a New Beginning with a GUI Facelift

Having invested enormous energy in the Asterisk® and FreePBX® open source communities for a dozen years, it’s always disappointing when commercial interests fundamentally change the direction of open source projects. We witnessed it first hand with the Fonality® takeover of the Asterisk@Home and trixbox® projects many years ago. Today there is no trixbox or Asterisk@Home open source project. Fonality’s business phone systems appear to be thriving thanks in no small part to the customer base they inherited with the buyout of the Asterisk@Home and trixbox projects. Those projects also were responsible for the enormous success that FreePBX has enjoyed in the Asterisk GUI market. The demise of the trixbox project also led to creation of PBX in a Flash™. Unfortunately, history has a way of repeating itself.

As the FreePBX market share continued to increase, we began to hear concerns from vendors that were competing with the FreePBX parent company. First, there were complaints that a competing SIP provider was being barred from distributing a FreePBX-compatible module to their customers for use on their customers’ own servers. Next came complaints from a number of providers that monetary demands were being made for distributing the open source GPL version of FreePBX to customers who had subscribed to Cloud-based hosting services. In FreePBX 2.11 came commingling of commercial modules followed by a locked-in module for their own commercial SIP trunking service. Then, there was the free fax application that mysteriously disappeared to make way for a new $150 commercial application that did much the same thing. More recently, there was the module signature fiasco where Sangoma demanded unrestricted indemnification for its legal expenses in exchange for relaxation of daily email bombardments and nasty security alerts in FreePBX 12 when anyone attempted to install a module even for personal use unless the module was actually developed by Sangoma. And what used to be a publicly accessible collection of modules for each release of FreePBX going back to 2007 has now become hidden from public view with FreePBX 12 and beyond. This isn’t a disk space issue. And these aren’t mere coincidences. It’s a disturbing pattern. Ironically, many of the current FreePBX folks were among the most vocal critics of the commercialization of the trixbox project after the Fonality takeover. But when numerous people raised concerns this time around, one of Sangoma’s lapdogs launched a tirade on Reddit painting us as sufficiently despicable that we probably shouldn’t be trusted with matches

Ward believes that he can run around, signing modules that attack other peoples machines, and then when we get sued for it he can sit back and laugh. — xrobau a.k.a. Rob Thomas, Sangoma

Sounds like something we would do, doesn’t it? NB: Whose Bread I Eat, His Song I Sing1

So how do we find a middle ground that preserves the open source development process and the rights of those using open source GPL products while balancing the legitimate needs of businesses and developers to earn a living? History teaches us that you can’t do it with quasi-commercial products shrouded in open source clothing. There’s simply too much temptation to tilt the playing field in favor of the almighty dollar. This is especially true when a single company has overwhelming market share. When Digium abandoned Asterisk-GUI while signing on as a FreePBX promoter, Sangoma was handed a virtual monopoly in the Asterisk GUI marketplace. Coupling that market dominance with the events documented in the previous paragraph tells you all you need to know about the current state of the open source Asterisk community.

What we believe is needed is meaningful separation between the open source GPL modules that are included in FreePBX and the functionality of the GUI itself which has become increasingly proprietary with the commingling of commercial modules, trademark encroachment claims, the increasingly proprietary FreePBX ecosystem, and now module signatures and obfuscation. Could Sangoma have fixed these issues during the four months they have owned the project? Absolutely. Have they? We’ll let you decide that for yourself.

Truth be told, we’ve actually delayed releasing this article hoping that Sangoma would turn things around. Instead, they’ve chosen to keep things as they are while the rhetoric has become increasingly strident. So, in hindsight, this is long overdue.

Not sure why anyone would want to do it but Sangoma for quite some time has offered a tool to transform an open source PBX in a Flash server into a proprietary FreePBX Distro. Today we’re pleased to return the favor by offering a tool to enhance CentOS, Scientific Linux, and Ubuntu servers running FreePBX 2.11 by returning the project to its roots: (1) providing a public repository of FreePBX-compatible GPL modules, (2) removing the proprietary trademarks from the GUI, (3) eliminating the commercial components from the base product, (4) providing a new update utility for GPL modules that are compatible with FreePBX, (5) and publishing the licenses for all of the materials in Plain English. When you complete the setup, you’ll have the new Incredible PBX GUI platform running all of your existing modules.

Is this a fork of the FreePBX GUI project? We consider it more of a spoon to encourage Sangoma to do the right thing and to assist those that want a truly open source platform on which to build Asterisk servers. Generally speaking, we do not intend to enhance existing modules for FreePBX so, in that sense, this is not a fork of existing FreePBX open source code even though we have used GitHub’s fork utility to make duplicates of some FreePBX components pursuant to the GPL and GitHub’s terms of service. What we’ve done is a reconfiguration of the graphical user interface through the afforded design settings and module components in the product itself to better conform with what we believe is the true spirit of the GPL under which FreePBX is licensed. In the words of the GPL Preamble:

Some devices are designed to deny users access to install or run modified versions of the software inside them, although the manufacturer can do so. This is fundamentally incompatible with the aim of protecting users’ freedom to change the software. The systematic pattern of such abuse occurs in the area of products for individuals to use, which is precisely where it is most unacceptable. Therefore, we have designed this version of the GPL to prohibit the practice for those products.

By its nature, FreePBX is a toolkit that permits customization of Asterisk in numerous ways. For example, you can add extensions, trunks, routes to process calls, conferences, voicemail, and literally hundreds of other features. In addition, FreePBX modules allow sophisticated tweaking of the user interface that is displayed in the GUI itself. For years, we have offered Incredible Backup and Restore utilities that let you take snapshots of your GUI configuration which can be restored whenever and wherever necessary. FreePBX offers a more limited snapshot capability from within the GUI itself.

Today’s Incredible PBX GUI offering is essentially a snapshot of a highly customized FreePBX configuration which can be assimilated into existing FreePBX platforms. DO NOT USE THIS TOOLKIT TO UPGRADE A SERVER RUNNING THE ASTERISK-GUI OR ANY VERSION OF FREEPBX OTHER THAN VERSIONS 2.11 and 12. DO NOT USE THIS TOOLKIT IF YOU HAVE EXISTING FREEPBX COMMERCIAL MODULES YOU WISH TO USE OR PRESERVE. IF YOU HAVE PRECONFIGURED FREEPBX 2.11 OR 12 AND DO NOT WISH TO LOSE YOUR EXISTING SETUP, DO NOT UPGRADE TO THE INCREDIBLE PBX GUI. YOU CANNOT REVERT TO A TRADITIONAL FREEPBX GUI ONCE THIS UPGRADE PROCEDURE HAS BEEN EXECUTED SO MAKE A FULL SYSTEM BACKUP AND TEST IT BEFORE YOU BEGIN.

In order to insulate this new design from future changes that might alter its functionality or compatibility with the original product, we also are deploying an independent repository of the FreePBX open source modules pursuant to the existing GPL licenses. Ward Mundy & Associates, LLC will maintain this repository going forward. Future open source GPL additions to the repository will be screened and tested for compatibility before assimilation. This will not in any way hamper anyone’s ability to add modules of your choice using the existing module import capabilities of the product. Whether the imported modules are open source, closed source, proprietary, or commercial is your call so long as your use or redistribution of them conforms to the terms of the GPL. We would offer the same advice we give to those setting up a salt water aquarium for the first time. Build two separate systems so that you have one on which to test new modules before introducing them into your production machine. With tools such as VirtualBox and inexpensive cloud offerings such as Digital Ocean, CloudAtCost, and IP Systems LTD, building a secondary server is a 30-minute task. Of course, for production servers in the cloud, we continue to recommend our Platinum sponsor, RentPBX.

Will existing distributors of commercial modules modify them in such a way that they no longer function with today’s release? Unfortunately, that is a question that only the commercial providers can answer. Suffice it to say that every crippled module becomes a lost sale, but that is their call to make. What we can tell you is that both Incredible PBX and its snapshot of the Incredible GUI facelift are released as open source code for others to use or modify without restriction and subject only to the terms of the GPL license with no trademark restrictions or other gotchas on redistribution.

As time permits, we will further enhance the Incredible GUI installer to support PIAF-Green with Incredible PBX 11 as well as the standalone flavors of Incredible PBX 11 running on the Debian and Raspbian small hardware platforms.

A Word to the Wise. We shouldn’t have to cover this, but we will anyway. As someone who has been involved in software development for over 30 years, we stand ready to make any necessary tweaks to this release to address bugs or any proprietary components that may have inadvertently crept into the code base by virtue of loading pure GPL software of others. All affected parties know how to get in touch with us either by email or phone. As both a lawyer and a member of a family with a healthy collection of litigation attorneys, we also are fully prepared to play hardball if that is the path others wish to pursue. It won’t be without additional consequences. Potential adversaries would do well to take a history lesson from a really Good Book and then review their own previous conduct and our litigation history as part of any cost/benefit analysis. As one who has dealt with difficult situations throughout a lengthy legal and administrative career, suffice it to say we also have taken steps to document our design and to spread that design and accompanying tools, the repository, and all remaining open source components far and wide in the event alternative distribution methods become necessary. Capiche?

Getting Started with the new Incredible PBX GUI

Now you’re ready to begin the install. Continue reading the installation tutorial here.

Originally published: Friday, May 15, 2015


Support Issues. With any application as sophisticated as this one, you’re bound to have questions. Blog comments are a terrible place to handle support issues although we welcome general comments about our articles and software. If you have particular support issues, we encourage you to get actively involved in the PBX in a Flash Forums. It’s the best Asterisk tech support site in the business, and it’s all free! Please have a look and post your support questions there. Unlike some forums, ours is extremely friendly and is supported by literally hundreds of Asterisk gurus and thousands of users just like you. You won’t have to wait long for an answer to your question.



Need help with Asterisk? Visit the PBX in a Flash 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.
 



Some Recent Nerd Vittles Articles of Interest…

  1. NB: abbreviation for nota bene: used to mark something as particularly important. []

View from the Trenches: A Fresh Look at VoIP Project Development in the Cloud

The world of cloud-based computing has profoundly changed over the past year. And today we want to take a fresh look at the cloud landscape for those of you that spend considerable time experimenting or tweaking software applications either for customers or for your own organization.

First, a brief paragraph of history. We began our cloud experiments almost seven years ago when Amazon S3 was still in its infancy. At the time, Amazon S3 was a real bargain even with all its development quirks. The adventure continued when we moved some production level systems to Amazon’s EC2 cloud in early 2013. What we quickly learned was just how expensive cloud computing could be once you reached the end of your "free year" with Amazon. As the cloud options continued to bloom, RentPBX began providing technical and financial assistance to our projects while also offering inexpensive, production-quality VoIP services in the cloud at truly bargain basement prices: $15 a month. That barely covers the electric bill for many folks hosting their own local servers. And RentPBX servers are unique. They don’t commingle other processor-intensive applications on their servers. All of their servers are pure VoIP which makes for an incredibly reliable cloud-based platform. Our special pricing still is available for those using PBX in a Flash and Incredible PBX. Just sign up with the coupon code: NOGOTCHAS. So that’s a little background.

But there are many of us that develop systems and experiment with new offerings as part of our daily routine. We build systems. We tweak systems. We blow up systems. And we start over, sometimes dozens (hopefully not hundreds) of times. To give you an example, our typical Incredible PBX build to support a new platform goes through twenty to thirty iterations before all of the kinks are worked out of the code. And that’s before the software development teams for CentOS, Ubuntu, Asterisk, Apache, SendMail, MySQL, and the Raspberry Pi "improve" anything. A production-quality cloud service really isn’t flexible enough to support this type of activity, and an affordable local server lacks the horsepower to keep setup times reasonable. On occasion, we use a high performance iMac coupled with VirtualBox for development, but that introduces some quirks that typically aren’t found on real world servers.

The good news is that there are two relatively new cloud offerings that fit very well with the requirements needed for rapid application development. We use both of them in slightly different ways so let us share our experience in hopes that it will save many of you some time experimenting.

We can’t say enough good things about Digital Ocean. Despite a few growing pains from time to time, Digital Ocean provides a vast assortment of cloud-based servers scattered all around the world. There are servers in New York, San Francisco, Amsterdam, London, Frankfurt, and even Singapore. You can size your development platform to meet almost any requirement with prices starting at about 5¢ for a 7-hour day of development. That buys you a speedy 512MB/single-CPU platform with 20 gigs of storage and a terabyte of monthly bandwidth. Add a (free) 1GB cache to your build, and it’s the performance equivalent of our $3,000 standalone Dell servers. You can scale up from there to a platform with 64GB of RAM, 20 CPUs, 640GB SSD drive, and 9 terabytes of monthly data transfer for less than $1 an hour. The difference with this platform is you can create a CentOS, Ubuntu, Fedora, FreeBSD, or Debian server of any recent vintage in about one minute. There’s also a vast array of preconfigured applications for the specialists of the world:

Using our referral code, you get $10 of free service while we get a little spiff down the road to keep the Nerd Vittles lights on. Tear down of servers is almost instantaneous, and you simply pay for the time you used. Using the small platform for 90 minutes will set you back a whole penny. Some of our PBX in a Flash users are actually running production-level servers on this platform (which we don’t recommend), and the monthly cost is capped at $5. One of the best kept secrets at Digital Ocean is that you can take snapshots of your builds and store them at little to no cost. We have a dozen of them and have never paid a penny in storage fees. You also have the option of off-site backups for production platforms.

The new kid on the block is CloudAtCost.com. If you’re not into bleeding edge, this probably isn’t the offering for you. But it is dirt cheap. While you can pay by the month, CloudAtCost also has a revolutionary marketing strategy. You can pay for your virtual machine once (almost always at a substantial discount off the listed prices), and you get to use "your server" forever at no additional cost… at least as long as CloudAtCost stays in business. If this sounds like a pyramid scheme, you probably wouldn’t be the first to suggest that. Suffice it to say, their business has grown geometrically over the past year. And they recently announced CloudPRO which lets you pool resources from servers you previously have bought, and use them in much the same way as Digital Ocean but with no additional charges. So here’s today’s pricing:

To put things in perspective, the virtual machine equivalent of Digital Ocean’s smallest setup costs $17.50, ONE TIME! The Big Dog 3 platform with a one-time fee of $560 migrated to CloudPRO would provide you with the capability to create 8 smaller systems (1 CPU, 1GB RAM, and 10GB storage) as desired with no bandwidth limitations forever.1 Download and upload performance is fairly impressive using speedtest-cli:

So what’s the catch. Well, there are some. First, as you might imagine, these folks are much like the fella laying track in front of the steaming locomotive. Will that ever end? You’d better hope not because, when it does, the entire house of cards may come down. While Digital Ocean typically builds virtual machines in under a minute, CloudAtCost turnaround times are close to a day. Once your server is actually working, we’ve had a pretty good experience with the performance quality although there can be rough spots that usually are resolved within a day. The promise, of course, is to get build times down to a minute or two. But, frankly, we’re not holding our breath. As for platform support, there are plenty of options just like with Digital Ocean:

What is this platform good for? In our case, it’s almost perfect for off-site backups. You can judge the web performance for yourself by visiting the backup site for Nerd Vittles, or the PIAF Forum, or Incredible PBX, or PBX in a Flash. Would we use CloudAtCost for production? Not a chance. But for backups and demo servers, it’s AWESOME and CHEAP! If you’re a Nerd Vittles early bird, you can use our coupon code for an additional 20% off: Zu2eXYDYtU.

DEMO SERVER. We’ve actually set up an Incredible PBX server with Google Voice and an IVR of sample applications so you can judge the CloudAtCost performance for yourself. You can even try hacking the IP address if that’s your thing. We always love to test our firewall: nmap -sT -O 162.252.242.229. To try out Allison’s IVR, enter your 10-digit callback number below and then click the Click Here button once. Count to 10 and your phone should be ringing. After you answer the call and press 1, you’ll be connected to the IVR Demo in Canada. Don’t be shy.

Nerd Vittles IVR Demo Options
1 – Call by Name (say “Delta Airlines” or “American Airlines” to try it out)
2 – MeetMe Conference (password is 1234)
3 – Wolfram Alpha (say “What planes are overhead?”)
4 – Lenny (The Telemarketer’s Worst Nightmare)
5 – Today’s News Headlines
6 – Weather Forecast (say the city and state, province, or country)
7 – Today in History
8 – Speak to a Real Person (or maybe just Lenny if we’re out)

Originally published: Cinco de Mayo, 2015



Need help with Asterisk? Visit the PBX in a Flash 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.
 



Some Recent Nerd Vittles Articles of Interest…

  1. forever: as long as CloudAtCost.com stays in business []

Wear Something Green for May Day: The Schmoozification of Sangoma

For anyone that wants to run FreePBX® 12 with a module not produced or sold by Sangoma without being bombarded with daily emails and nasty security warnings in your GUI, here’s a portion of the agreement Sangoma would like you to sign:



And the response to those that dare claim such a practice is damaging the fabric of the Asterisk open source community:

Ward believes that he can run around, signing modules that attack other peoples machines, and then when we get sued for it he can sit back and laugh. — xrobau a.k.a. Rob Thomas, Sangoma

It’s been four months since Sangoma purchased Schmooze Com, Inc. and FreePBX®. Happy Anniversary! Silly us, thinking Sangoma was going to clean up the FreePBX mess. Here are unedited excerpts from the horse’s [insert favorite orifice] during the Sangoma free-for-all on Reddit yesterday. Read and weep…

[NOTE: What follows is data from a live feed on Reddit. For those unfamiliar with the platform, users’ comments get elevated or demoted based upon votes from other users although voting down a comment is supposed to be based upon relevance according to Reddit’s rules. User’s comments also can be edited long after the fact. Suffice it to say, there was a concerted effort to up-vote certain posts and down-vote posts that were critical of a certain point of view yesterday. In anticipation of the possibility that some comments might be physically altered in order to cast the author in a more favorable light after we published this article, we have captured all of the original text at the time this article was published. Should there be material changes in particular comments, we will post the original text below the current version so that you can draw your own conclusions.]

Original comment read as follows:

Originally published: Friday, May 1, 2015


Some Recent Nerd Vittles Articles of Interest…