Thumbs Up: A New Flash Drive Installer for PIAF2 + CentOS6

Original photo courtesy of Green House Co. Ltd.

With the advent of netbooks and the gradual disappearance of optical drives, it’s just a matter of time until USB thumb drives will be the only remaining physical installation method still available for most software. Look no further than Apple’s Lion OS if you don’t believe it. Of course, if Microsoft has its way, no installation of Linux will be available with some Windows 8 hardware… for your own safety, of course. We’ll leave that for the courts to sort out.

Since inception, one of the key goals of the PBX in a Flash™ project has been to provide an install option that works reliably with USB thumb drives. Thanks to the great work of bmore on the PIAF Forums, a USB Flash Drive installer was developed for PBX in a Flash 1.7.5.6.2. And today, we’re pleased to deliver a more flexible thumb drive installation method for 32-bit PIAF2™ installs running under CentOS™ 6.2. With this new thumb drive installer comes support for every current version of Asterisk® and FreePBX®.

With PIAF2, you get your choice of Asterisk 1.8.8.0 or 10.0.0 as well as FreePBX 2.8, 2.9, or 2.10. And, with the standard PIAF2 ISO installer, you also have the option of exiting to the Linux command prompt to compile a network driver or to select from a broad selection of newer Asterisk releases. If you choose this option, you’ll be prompted to log into your server as root with the root password you chose initially. Once logged in, you can execute any series of Linux commands or issue one of the following commands to choose a specific release of Asterisk:

  • piafdl -p beta_1881_purple (loads Asterisk 1.8.8.1)
  • piafdl -p beta_1882_purple (loads Asterisk 1.8.8.2)
  • piafdl -p beta_1890_purple (loads Asterisk 1.8.9.0)
  • piafdl -p beta_1891_purple (loads Asterisk 1.8.9.1)
  • piafdl -p beta_1892_purple (loads Asterisk 1.8.9.2)
  • piafdl -p beta_1893_purple (loads Asterisk 1.8.9.3)
  • piafdl -p beta_1001_red (loads Asterisk 10.0.1)
  • piafdl -p beta_1010_red (loads Asterisk 10.1.0)
  • piafdl -p beta_1011_red (loads Asterisk 10.1.1)
  • piafdl -p beta_1012_red (loads Asterisk 10.1.2)
  • piafdl -p beta_1013_red (loads Asterisk 10.1.3)

WARNING: Asterisk 10.1.x releases reportedly break Google Voice! The good news is that the new PIAF deployment policy for Asterisk releases is working. We no longer incorporate the latest Asterisk releases as the default PIAF install before independent testing. You, of course, are free to load and test any of the releases you wish using the commands outlined above.

If you compiled a network driver and wish to resume the installation process, just reboot the server. If you chose a specific flavor of Asterisk, simply accept the license agreement and the customized PIAF2 install will continue. Here’s a quick overview of what happens next.

The PIAF2 installer then syncs the time on your server to NTP, installs the latest yum updates for CentOS 6.2, installs the versions of Asterisk and FreePBX you selected (HINT: Incredible PBX requires FreePBX 2.9) and some other utilities including WebMin, Festival and Flite text-to-speech support for Asterisk, and, of course, the Google Voice GUI which lets you configure PIAF2 to make free calls in the U.S. and Canada in a matter of seconds. Finally the PIAF2 installer patches your system to activate the IPtables firewall for both IPv4 and IPv6 as well as adding Fail2Ban monitoring for Asterisk, SSH, and your Apache web server.

As part of the install procedure, you also will be prompted to choose a version and master password for FreePBX and the other VoIP web utilities. Once your server reboots, you can log into the Linux CLI using your root password to obtain the IP address of your server. Then you can access the PIAF2 web GUI with a browser pointed to the same IP address. To access the FreePBX GUI, choose that icon from the Admin menu. Just click on the User button to get there. When prompted for your username and password, the username is maint. The password will be the FreePBX master password you chose during the PIAF2 install. We’ll walk you through the install steps once we get your USB thumb drive set up.

PBX on a Flash

Here’s the 5-minute drill to get a USB thumb drive loaded with the latest and greatest 32-bit PIAF2 ISO. Once you get that far, follow the PIAF2 install steps outlined below to get your system up and running. In less than an hour, you’ll have a fully functioning, rock-solid reliable PBX that can meet all of your telephony requirements. And, remember, it’s free and always will be™.

Prerequisites. To get everything installed on your USB Flash Drive, you’ll obviously need at least a 1GB Flash Drive. HINT: 2GB flash drives may be cheaper! Next, you’ll need a Windows XP/Vista/7 computer on which to set up the thumb drive. On the Windows PC, you’ll need to download and install the latest, greatest version of ISO2USB from SourceForge. We recommend you also download and install the HP Formatting Utility for flash drives. Finally, you’ll need to download the 32-bit PIAF 2.0.6.2.1 ISO from SourceForge.

Creating USB Flash Drive. Step #1 is to partition and format your USB flash drive as a FAT32 device. Some flash drives are temperamental about the formatting step. We can’t recommend strongly enough using the HP Formatting Utility to make certain you get a reliable, properly formatted thumb drive! Also be careful that you are, in fact, formatting your thumb drive and not your Windows hard disk!

Step #2, once the device is properly formatted, run ISO2USB. You’ll get a screen that looks like what is shown above. Click on the … button to the right of DiskImage ISO and choose the PIAF2 ISO that you downloaded to your Desktop. Make certain that the destination device shown on the bottom line of the display is your USB flash drive. You do not want to accidentally trash your primary drive!

Here’s the tricky part to this. You need to know the drive names of the devices on the target machine where you ultimately will be using this thumb drive. Try these commands on your target machine using a Linux LIVE CD if you’re unsure: dmesg | grep logical AND dmesg | grep sectors. For most modern machines with IDE drives, the names will be sda, sdb, etc. For older machines, they may be hda, hdb. You’ll know if it doesn’t work. :-)

The gotcha with CentOS 6.x is that, whenever you boot a machine using a USB flash drive with CentOS 6.x, the device names get switched for that boot only. The USB boot device becomes sda even if your hard disk on the system shows up as sda when it is running without a thumb drive. So… in the ISO2USB setup, change the Hard Disk Name to sdb, and change the USB Device Name to sda. For Foxconn hardware and AMD BIOS machines, use sdc instead of sdb. A few other systems use sdd. In all cases, use sda for the USB Device Name. And, as we noted, you’ll know quickly if you made the wrong choice. Just recreate the thumb drive using the next letter in the alphabet. :wink:

Once you’ve double-checked your USB destination drive (HINT: the drive size is quite different), choose OK to begin. When the ISO install completes, don’t forget to Eject your USB flash drive before removing it from the Windows PC!

Using the USB Flash Installer. When using the new flash installer, remember that we need to boot your new machine from the thumb drive. On most newer Atom-based computers, you accomplish this by inserting the USB device, turning the machine on, and then pressing F12 during the boot sequence to choose the boot device. You’ll just have to watch the screen of your new computer to see if some other key is used to pull up the boot selection screen. If all else fails, you can adjust the boot sequence in the BIOS settings to boot first from the USB device. If you change your BIOS boot sequence, just remember to remove the device when the initial install of CentOS completes and the PIAF2 reboot sequence begins. If instead you again see the initial PIAF2 install screen warning you that your disk is about to be erased, then remove the thumb drive and reboot the machine once again.

PIAF Installation. Once you’ve booted with your PIAF2 thumb drive, you’ll be prompted to choose an installation method. For most users, simply pressing the Enter key will get things started. Choose a time zone when prompted and then enter a very secure root password for your new server. The installer then will load CentOS 6.2 onto your server. When complete, your server will reboot. Remove the thumb drive at this point, and you’ll be prompted to choose the version of Asterisk to install. See the discussion above for making a selection. If you see a Linux login prompt instead, it means sdb was the wrong device name for your server’s hard disk. Log in as root using the password you set up previously and issue the following commands to decipher the correct device name. Then rebuild your thumb drive using the correct device name and start again.

ls /dev/sd*
ls /dev/dd*

If all went well, after choosing the version of Asterisk to install, you’ll be prompted for a version of FreePBX and a master password for FreePBX. Make it very secure! We recommend FreePBX 2.9 if you plan to use Incredible PBX. Once you’ve made your choices, the PIAF2 installer will load Asterisk, FreePBX, and all the other PBX in a Flash components including Google Voice.

Once your server reboots, log into the Linux CLI using your root password and write down the IP address of your server from the status display.

Security Warning: Always, always, always run PBX in a Flash behind a secure, hardware-based firewall with no PBX in a Flash ports exposed to the Internet! After all, it’s your phone bill.

FreePBX Setup. Most of your life with PBX in a Flash will be spent using the FreePBX web GUI and your favorite browser. Just click on the image below to enlarge. To access the FreePBX GUI, point your browser at the IP address you wrote down. Read the RSS Feed in the PIAF GUI for late-breaking security alerts. Then click on the Users button which will toggle to the Admin menu. Click the FreePBX icon. When prompted for your username and password, the username is maint. The password will be the FreePBX master password you chose in completing the PIAF2 install.

To get a minimal system functioning, here’s the 5-minute drill. You’ll need to set up at least one extension with voicemail, configure a free Google Voice account for free calls in the U.S. and Canada, configure inbound and outbound routes to manage incoming and outgoing calls, and plug your maint password into CallerID Superfecta so that names arrive with your incoming calls. Once you add a phone with your extension credentials, you’re done.

Extension Setup. Now let’s set up an extension to get you started. A good rule of thumb for systems with less than 50 extensions is to reserve the IP addresses from 192.x.x.201 to 192.x.x.250 for your phones. Then you can create extension numbers in FreePBX to match those IP addresses. This makes it easy to identify which phone on your system goes with which IP address and makes it easy for end-users to access the phone’s GUI to add bells and whistles. To create extension 201 (don’t start with 200), click Setup, Extensions, Generic SIP Device, Submit. Then fill in the following blanks USING VERY SECURE PASSWORDS and leaving the defaults in the other fields for the time being.

User Extension … 201
Display Name … Home
Outbound CID … [your 10-digit phone number if you have one; otherwise, leave blank]
Emergency CID … [your 10-digit phone number for 911 ID if you have one; otherwise, leave blank]

Device Options
secret … 1299864Xyz [make this unique AND secure!]
dtmfmode … rfc2833
Voicemail & Directory … Enabled
voicemail password … 14332 [make this unique AND secure!]
email address … yourname@yourdomain.com [if you want voicemail messages emailed to you]
pager email address … yourname@yourdomain.com [if you want to be paged when voicemail messages arrive]
email attachment … yes [if you want the voicemail message included in the email message]
play CID … yes [if you want the CallerID played when you retrieve a message]
play envelope … yes [if you want the date/time of the message played before the message is read to you]
delete Vmail … yes [if you want the voicemail message deleted after it's emailed to you]
vm options … callback=from-internal [to enable automatic callbacks by pressing 3,2 after playing a voicemail message]
vm context … default

Write down the passwords. You’ll need them to configure your SIP phone.

Extension Security. We cannot overstress the need to make your extension passwords secure. All the firewalls in the world won’t protect you from malicious phone calls on your nickel if you use your extension number or something like 1234 for your extension password if your SIP or IAX ports happen to be exposed to the Internet. Incredible PBX automatically randomizes all of the extension passwords for you.

In addition to making up secure passwords, the latest versions of FreePBX also let you define the IP address or subnet that can access each of your extensions. Use it!!! Once the extensions are created, edit each one and modify the permit field to specify the actual IP address or subnet of each phone on your system. A specific IP address entry should look like this: 192.168.1.142/255.255.255.255. If most of your phones are on a private LAN, you may prefer to use a subnet entry in the permit field like this: 192.168.1.0/255.255.255.0 using your actual subnet.

Courtesy of wordle.net

Adding a Google Voice Trunk. There are lots of trunk providers, and one of the real beauties of having your own PBX is that you don’t have to put all of your eggs in the same basket… unlike the AT&T days. We would encourage you to take advantage of this flexibility. With most providers, you don’t pay anything except when you actually use their service so you have nothing to lose.

For today, we’re going to take advantage of Google’s current offer of free calling in the U.S. and Canada through the end of this year. You also get a free phone number in your choice of area codes. PBX in a Flash now installs a Google Voice module for FreePBX that lets you set up your Google Voice account with PBX in a Flash in just a few seconds once you have your credentials.

Signing Up for Google Voice. You’ll need a dedicated Google Voice account to support PBX in a Flash. 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 rather than creating a separate account. Take our word for it. 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… set up a dedicated Gmail and Google Voice account, and use it exclusively with PBX in a Flash. Google Voice no longer is by invitation only. If you’re in the U.S. or have a friend that is, head over to the Google Voice site and register. If you’re living on another continent, see MisterQ’s posting for some tips on getting set up.

You must choose a telephone number (aka DID) for your new account, or Google Voice calling will not work… in either direction. 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 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 PBX in a Flash to function with Google Voice! Otherwise, inbound and/or 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 and enable it. Be sure to try one call each way from Google Chat in Gmail. Then disable Google Chat in GMail for this account. Otherwise, it won’t work with PIAF.

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.

Configuring Google Voice Trunk in FreePBX. All trunk configurations now are managed within FreePBX, including Google Voice. This makes it easy to customize PBX in a Flash to meet your specific needs. Click the Setup tab and choose Google Voice in the Third Party Addons. To Add a new Google Voice account, just fill out the form:

Phone number is your 10-digit Google Voice number. Username is your Google Voice account name without @gmail.com. NOTE: You must use a Gmail.com address in the current version of this module! Password is your Google Voice password. NOTE: Don’t use 2-stage password protection in this Google Voice account! Be sure to check all three boxes: Add trunk, Add routes, and Agree to TOS. Then click Submit Changes and reload FreePBX. Down the road, you can add additional Google Voice numbers by clicking Add GoogleVoice Account option in the right margin and repeating the drill. For Google Apps support, see this post on the PIAF Forum.

Outbound Routes. The idea behind multiple outbound routes is to save money. Some providers are cheaper to some places than others. It also provides redundancy which costs you nothing if you don’t use the backup providers. The Google Voice module actually configures an Outbound Route for 10-digit Google Voice calling as part of the automatic setup. If this meets your requirements, then you can skip this step for today.

Inbound Routes. An Inbound Route tells PBX in a Flash how to route incoming calls. The idea here is that you can have multiple DIDs (phone numbers) that get routed to different extensions or ring groups or departments. For today, we’ll build a simple route that directs your Google Voice calls to extension 201. Choose Inbound Routes, leave all of the settings at their default values except enter your 10-digit Google Voice number in the DID Number field. Enable CallerID lookups by choosing CallerID Superfecta in the CID Lookup Source pulldown. Then move to the Set Destination section and choose Extensions in the left pull-down and 201 in the extension pull-down. Now click Submit and save your changes. That will assure that incoming Google Voice calls are routed to extension 201.

IMPORTANT: Before Google Voice calling will actually work, you must restart Asterisk from the Linux command line interface. Log into your server as root and issue this command: amportal restart.

CallerID Superfecta Setup. CallerID Superfecta needs to know your maint password in order to access the necessary modules to retrieve CallerID information for inbound calls. Just click Setup, CID Superfecta, and click on Default in the Scheme listings in the right column. Scroll down to the General Options section and insert your maint password in the Password field. You may also want to enable some of the other providers and adjust the order of the lookups to meet your local needs. Click Agree and Save once you have the settings adjusted.

General Settings. Last, but not least, we need to enter an email address for you so that you are notified when new FreePBX updates are released. Scroll to the bottom of the General Settings screen after selecting it from the left panel. Plug in your email address, click Submit, and save your changes. Done!

Adding Plain Old Phones. Before your new PBX will be of much use, you’re going to need something to make and receive calls, i.e. a telephone. For today, you’ve got several choices: a POTS phone, a softphone, or a SIP phone. Option #1 and the best home solution is to use a Plain Old Telephone or your favorite cordless phone set (with 8-10 extensions) if you purchase a little device known as a Sipura SPA-3102. It’s under $70. Be sure you specify that you want an unlocked device, meaning it doesn’t force you to use a particular service provider. This device also supports connection of your PBX to a standard office or home phone line as well as a telephone.

Configuring a SIP Phone. There are hundreds of terrific SIP telephones and softphones for Asterisk-based systems. Once you get things humming along, you’ll want a real SIP telephone such as the $50 Nortel color videophone we’ve recommended previously. You’ll also find lots of additional recommendations on Nerd Vittles and in the PBX in a Flash Forum. If you’re like us, we want to make damn sure this stuff works before you shell out any money. So, for today, let’s download a terrific (free) softphone to get you started. We recommend X-Lite because there are versions for Windows, Mac, and Linux. So download your favorite from this link. Install and run X-Lite on your Desktop. At the top of the phone, click on the Down Arrow and choose SIP Account Settings, Add. Enter the following information using 201 for your extension and your actual password for extension 201. Then plug in the actual IP address of your PBX in a Flash server instead of 192.168.0.251. Click OK when finished. Your softphone should now show: Available.

Enabling Google Voicemail. Some have requested a way to retain Google’s voicemail system for unanswered calls in lieu of using Asterisk voicemail. The advantage is that Google offers a free transcription service for voicemail messages. To activate this, you’ll need to edit the [googlein] context in extensions_custom.conf in /etc/asterisk. Just modify the last four lines in the context so that they look like this and then restart Asterisk: amportal restart

;exten => s,n(regcall),Answer
;exten => s,n,SendDTMF(1)
exten => s,n(regcall),Set(DIAL_OPTIONS=${DIAL_OPTIONS}aD(:1))
exten => s,n,Goto(from-trunk,gv-incoming,1)

But I Don’t Want to Use Google Voice. If you’d prefer not to use Google Voice at all with PBX in a Flash, that’s okay, too. Here’s how to disable it and avoid the chatter in the Asterisk CLI. Log into your server as root and edit /etc/asterisk/modules.conf. Change the first three lines in the [modules] context so that they look like this. Then restart Asterisk: amportal restart.

autoload=yes
noload => res_jabber.so
noload => chan_gtalk.so

There’s now a patch that automatically adjusts Asterisk to accommodate Google Voice whenever you have added Google Voice extensions to your system. To download and install the patch, visit the PIAF Forum.

Where To Go From Here. We’ve barely scratched the surface of what you can do with your new PBX in a Flash system. If you’re new to all of this, then your next step probably should be the Nerd Vittles’ Incredible PBX 3.0 and Incredible Fax 2.0 tutorial. It’s a 5-minute addition. And, of course, all 50 Asterisk applications in Incredible PBX are free and always will be. Enjoy!

PBX on a Flash

Getting Your Own PIAF Thumb Drive. Some of you have asked about how to obtain your very own PIAF thumb drive. Well, it’s easy. Just make a contribution of $50 or more to the Nerd Vittles and PBX in a Flash projects by clicking the PayPal Donate button at the top of this page, and we’ll get one off to you pronto. And, thanks in advance for your support of freeware and open source projects!

Originally published: Monday, February 20, 2012




Need help with Asterisk? Visit the PBX in a Flash Forum.
Or Try the New, Free PBX in a Flash Conference Bridge.


whos.amung.us If you’re wondering what your fellow man is reading on Nerd Vittles these days, wonder no more. Visit our new whos.amung.us statistical web site and check out what’s happening. It’s a terrific resource both for us and for you.


 
New Vitelity Special. Vitelity has generously offered a new discount for PBX in a Flash users. You now can get an almost half-price DID and 60 free minutes from our special Vitelity sign-up link. If you’re seeking the best flexibility in choosing an area code and phone number plus the lowest entry level pricing plus high quality calls, then Vitelity is the hands-down winner. Vitelity provides Tier A DID inbound service in over 3,000 rate centers throughout the US and Canada. And, when you use our special link to sign up, the Nerd Vittles and PBX in a Flash projects get a few shekels down the road while you get an incredible signup deal as well. The going rate for Vitelity’s DID service is $7.95 a month which includes up to 4,000 incoming minutes on two simultaneous channels with terminations priced at 1.45¢ per minute. Not any more! For PBX in a Flash users, here’s a deal you can’t (and shouldn’t) refuse! Sign up now, and you can purchase a Tier A DID with unlimited incoming calls for just $3.99 a month and you get a free hour of outbound calling to test out their call quality. To check availability of local numbers and tiers of service from Vitelity, click here. Do not use this link to order your DIDs, or you won’t get the special pricing! After the free hour of outbound calling, Vitelity’s rate is just 1.44¢ per minute for outbound calls in the U.S. There is a $35 prepay when you sign up. This covers future usage and any balance is fully refundable if you decide to discontinue service with Vitelity.
 


Some Recent Nerd Vittles Articles of Interest…

Be Sociable, Share!

One Response to “Thumbs Up: A New Flash Drive Installer for PIAF2 + CentOS6”

  1. LW says:

    Just a heads up to anyone. Setup piaf on a zotac zbox using this guide. Did not need to switch the drive letters during the “Creating USB Flash Drive” step.
    Great guide!

Ringbinder theme by Themocracy