Sunday, March 9, 2014

The 5-Minute PBX: PIAF Virtual Machine for VirtualBox (Windows, Mac, or Linux)

For most of us, today marks the last time we’ll ever see the day, month, and year line up on the calendar in perfect harmony so Happy 12-12-12 to everyone. It’ll be 88+ years before it happens again. And the Mayans believe the world will be ending in 9 more days so there may be no need to worry about the 88 years anyway. Whatever happens, it seemed like an appropriate time to take stock of how we’re doing in the development of the Perfect PBX™. Such an assessment, of course, is in the eyes of the beholder. From our perspective, in addition to being feature-rich, it has to have three components: ease of installation, ease of use, and flexibility. The first two are self-explanatory but flexibility needs some explanation. Flexibility to us means a feature set that’s appealing not only to those just beginning the journey but also to those of us that need to make frequent changes and additions to the platform to keep it current or make it better. After all, that’s what open source is all about.
The real beauty of PBX in a Flash has not been that someone with sufficient expertise couldn’t assemble something just as good or even better. Watch the AstriCon presentations from this year if you have any doubts. The beauty of PIAF is it puts this technology down where the goats can get it. It provides a toolset that encourages further development by simplifying the learning curve for a broad cross-section of the VoIP community while not compromising functionality or flexibility. The source code for the major components is included in the build so you can customize and recompile Asterisk or load a new version of Asterisk or any additional Linux app in minutes without losing your existing setup.
As many of you know, we have literally hundreds of gurus on the PIAF Forum. That doesn’t mean any particular person or group knows everything. It’s merely a designation that a particular individual is an expert at something. The collective wisdom of the group is what makes PBX in a Flash as a project better because we’ve put in place a platform that experts from many different disciplines can build upon without needing to learn everything about everything. Simply stated, you can be a terrific chef without knowing how to build a stove!
Turning to Asterisk® 11 and FreePBX® 2.11, from everything we’re seeing, these new releases are shaping up to be a remarkable step forward both in terms of toolset and in the new mindset of the development community. That’s a good thing. For our part, we’ve wanted to get our latest preview release of PBX in a Flash with CentOS 6.3, Asterisk 11 and the new FreePBX 2.11 beta into as many hands as possible keeping in mind the objectives we outlined above.

The Ultimate VoIP Appliance: PIAF Virtual Machine for VirtualBox

Today brings us to a new plateau in the virtual machine development era. Thanks to the masterful work of Tom King on PBX in a Flash 2.0.6.3.1, we’re pleased to introduce a new product that can be installed in under 5 minutes and will run on any Windows PC, Mac, or Linux machine as well as Solaris. And, unlike the dedicated machine platforms and OpenVZ compromises of years past, today’s PIAF Virtual Machine gives you everything a bare metal install from source code would have provided. Most importantly, the components are truly portable. They can be copied to a 4GB flash drive1 for the price of a good hamburger and installed from there onto any type of machine that happens to be in front of you. Five minutes later, you have a fully functional Asterisk server with FreePBX and exactly the same feature set and source code that you would have had doing a bare metal PIAF install to a dedicated server. And we’ve built both a production-ready PIAF-Purple VM with Asterisk 1.8 and FreePBX 2.10 as well as a Pioneer edition PIAF-Green VM with Asterisk 11 and FreePBX 2.11 beta. The choice is yours. No Internet access required to perform the install. Sound too good to be true? Keep reading or, better yet, try the PIAF appliance for yourself. The install process is simple:
  1. Download and install VirtualBox onto a Desktop Machine of your choice
  2. Download and double-click on the PIAF Virtual Machine to import it into VirtualBox
  3. Select the PIAF Virtual Machine in VirtualBox Manager Window and click the Start button

Introducing Oracle VM VirtualBox

We’re late to the party, but Virtual Box®, Oracle’s virtual machine platform inherited from Sun, is really something. It’s not only free, but it’s pure GPL2 code. VirtualBox gives you a virtual machine platform that runs on top of any desktop operating system. In terms of limitations, we haven’t found any. We even tested this on an Atom-based Windows 7 machine with 2GB of RAM, and it worked without a hiccup. So step #1 is to download one or more of the VirtualBox installers from VirtualBox.org or Oracle.com. As mentioned, our recommendation is to put all of the 100MB installers on a 4GB thumb drive. Then you’ll have everything in one place whenever and wherever you happen to need it. Once you’ve downloaded the software, simply install it onto your favorite desktop machine. Accept all of the default settings, and you’ll be good to go. For more details, here’s a link to the Oracle VM VirtualBox User Manual.

Introducing the PIAF Virtual Machine

We’ll walk you through installing the PIAF-Green Virtual Machine. It’s basically the same procedure with PIAF-Purple except you get to skip the reassembly step since the PIAF-Purple.ova image is only 1.3GB.
The PIAF-Green Virtual Machine tips the scales at over 2GB. Because of the 2GB file size limit on many systems, we’ve chosen to split this download into two pieces. You need both of them. Just download them onto any flavor desktop from SourceForge. Once you’ve downloaded the two files, we need to reassemble them into a single file known as an Open Virtualization Appliance (.ova). Then verify the checksums for the reassembled file to be sure everything is in its proper place. Finally, we’ll double-click on the .ova file which will initiate the import process into VirtualBox.
So let’s begin by downloading the two halves of PIAF-Green from SourceForge: PIAFGREENaa and PIAFGREENab. If you’d prefer production-ready code, just download PIAF-Purple.ova and skip the reassembly step. There’s also a new surprise offering that’s covered in the comments to this article. :-)
The reassembly procedure depends upon your desktop operating system. For Windows PCs, you’ll need to drop down to the Command Prompt, change to the directory in which you downloaded the two files, and type the following command:

copy /b PIAFGREENaa + PIAFGREENab PIAF-Green.ova
To check the MD5/SHA1 checksums in Windows, download and run Microsoft’s File Checksum Integrity Verifier.
For Mac or Linux desktops, open a Terminal window, change to the directory in which you downloaded the two files, and type the following commands:

cat PIAFGREENa{a..b} > PIAF-Green.ova
md5 PIAF-Green.ova (use md5sum for Linux)
openssl sha1 PIAF-Green.ova

The correct MD5 checksum for PIAF-Green ( PIAF-Green.ova) is a86a018466c7045372e51100cddd42ea. For PIAF-Purple.ova, it’s 664b1afe75c3b1877029531b0fe28063. The correct SHA1 checksum for PIAF-Green is d883c5e137ac19ecb45c1e6f127180b78a9cd0af. For PIAF-Purple, it’s 15f94352745ca989fd9939d9a8ee8b765fc8388c. If you have a match, proceed. Otherwise, rinse and repeat.

Importing the PIAF Virtual Machine into VirtualBox

You only perform the import step one time. Once imported into VirtualBox, PBX in a Flash is ready to use. There’s no further installation required, just like an OpenVZ template… only better. Double-click on the .ova file you downloaded to begin the procedure and load VirtualBox. When prompted, be sure to check the Reinitialize the Mac address of all network cards box and then click the Import button. Once the import is finished, you’ll see a new PIAF virtual machine in your VM List on the VirtualBox Manager Window. Regardless of flavor, you’ll need to make a couple of one-time adjustments to the PIAF Virtual Machine configuration to account for differences in sound and network cards on different host machines.
Click on the PIAF Virtual Machine in the VM List. Then click Settings -> Audio and check the Enable Audio option and choose your sound card. Save your setup by clicking the OK button. Next click Settings -> Network. For Adapter 1, check the Enable Network Adapter option. From the Attached to pull-down menu, choose Bridged Adapter. Then select your network card from the Name list. Then click OK. Finally, click Settings -> System, uncheck Hardware clock in UTC time, and click OK. That’s all the configuration that is necessary for your PIAF Virtual Machine. The rest is automagic.

Running the PIAF Virtual Machine in VirtualBox

Once you’ve imported and configured the PIAF Virtual Machine, you’re ready to go. Highlight PIAF Virtual Machine in the VM List on the VirtualBox Manager Window and click the Start button. The PIAF boot procedure with CentOS 6.3 will begin just as if you had installed PBX in a Flash on a standalone machine. You’ll see a couple of dialogue boxes pop up that explain the keystrokes to move back and forth between your host operating system desktop and your PIAF VM.
Here’s what you need to know. To work in the PIAF Virtual Machine, just left-click your mouse while it is positioned inside the VM window. To return to your host operating system desktop, press the right Option key on Windows machines or the left Command key on any Mac. For other operating systems, read the dialogue boxes for instructions on moving around. Always shut down PIAF gracefully! Click in the VM window with your mouse, log in as root, and type: shutdown -h now.
Run the PIAF Virtual Machine behind a hardware-based firewall with no Internet port exposure!
To begin, position your mouse over the VM window and left-click. Once the PIAF VM has booted, log in as root with password as the password. Change your root password immediately by typing passwd at the command prompt. Now set up a secure maint password for FreePBX as well. Type passwd-master. If you’re not in the Eastern U.S. time zone, then you’ll want to adjust your timezone setting so that reminders and other time-sensitive events happen at the correct time. While logged into your server as root, issue these commands to download and run the timezone-setup script:

cd /root
wget http://pbxinaflash.com/timezone-setup.tar.gz
tar zxvf timezone-setup.tar.gz
./timezone-setup

Next, use a browser to log into your PIAF server by pointing to the IP address of the PIAF VM that’s displayed in the status window of the CLI. Click on the User button to display the Admin choices in the main PIAF Menu. Click on the FreePBX option to load the FreePBX GUI. You will be prompted for an Apache username and password. For the username, use maint. For the password, use whatever password you set up with passwd-master.
Now read the latest PIAF Quick Start Guide and begin your VoIP adventure. Then you’ll want to do some reading on VirtualBox. We’ve barely scratched the surface. Setting up Headless VMs that run in the background on any server is a breeze. From the command line, here’s an article to get you started. But you also can start Headless VMs from within the GUI by highlighting the VM and clicking Shift->Start. Always shut down VMs gracefully: Close->ACPI Shutdown. You’ll find more great tips at virtualbox.org and GitHub.
One of the real beauties of VirtualBox is you don’t have to use a GUI at all. The entire process can be driven from the command line. Other than on a Mac, here is the procedure to import, configure, and run PIAF-Purple Virtual Machine:

VBoxManage import PIAF-Purple.ova
VBoxManage modifyvm "PIAF-Purple" --nic1 nat
VBoxManage modifyvm "PIAF-Purple" --acpi on --nic1 bridged
VBoxHeadless --startvm "PIAF-Purple" &
# Wait 1 minute for PIAF-Purple to load. Then decipher IP address like this:
VBoxManage guestproperty get "PIAF-Purple" /VirtualBox/GuestInfo/Net/0/V4/IP
# Now you can use SSH to login to PIAF-Purple at the displayed IP address
# Shutdown the PIAF-Purple Virtual Machine with the following command:
VBoxManage controlvm "PIAF-Purple" acpipowerbutton

On a Mac, everything works the same way except for deciphering the IP address. Download our findip script for that.
Enjoy!

No comments:

Post a Comment