Nerd Vittles

Download a free Plug-and-Play Asterisk IP PBX for Windows, Intel Macs, or Linux! Plug in a Phone, and You're Done.


Friday, November 14, 2008

The Lean, Mean Asterisk Machine: And Now It’s a Fax Machine, Too!

Filed under: — ward @ 3:00 am

Hard to believe it’s been a year since PBX in a Flash hit the street, but today’s the Big Day! So Happy Birthday to us. With an estimated 100,000 downloads worldwide, you might be wondering what keeps us going with all the reported venture capital behind Big Orange and Lime Green. Well, we’re glad you asked. Truth be told, it’s the cushy offices (in our kitchens) and the endless flow of generous contributions from grateful users. Heh, heh! Seriously, there are some real reasons that account for the popularity of PBX in a Flash. Bottom Line: It Just Works! And here’s a representative sample of other feedback from our fan club:

  • Currency - The PBX in a Flash distribution is always up to date. Our separate payload file makes it easy. No one else has anything close. So their builds are almost always long in the tooth.
  • Upgradability - Unlike the competition, you don’t have to start all over each time a new version of Asterisk or Linux hits the street. We’ll have more to say about our new SUSHI (Software Update Service - Hyperlinked, Interactive) in coming weeks.
  • Flexibility - PBX in a Flash remains the only distribution that builds Asterisk from source. Even Digium’s own distribution now uses RPMs. When you add new hardware or upgrade the Linux kernel to plug a security vulnerability, you’ll understand why this is critically important.
  • Support - PBX in a Flash has the best support group in the business. It’s called the PBX in a Flash Forum, and it’s free. Unlike the competition, you don’t have to pay to get help on basic technical issues with our product. And you don’t normally wait more than an hour or two for a response. That’s what Open Source is all about!
  • Security - We take security seriously. It’s our number one priority. When there’s a known problem, we don’t hide it or ignore it. We fix it right now. And the RSS Feed that’s part of our KennonSoft User Interface lets you know about it immediately. You can make your own comparisons and draw your own conclusions with regard to the other distributions.
  • No Slimeware - We’re up front about the way we operate and why. We don’t create backdoors or Trojan Horses in our distribution that phone home for any reason. We notify users of issues through an RSS Feed. We believe it’s up to you, not Big Brother, to decide whether to protect your own system. As permitted by the GPL, we do encrypt some of our freeware installation scripts because of the conduct of some in this business that pass off the work product of others as their own.
  • No Bugs - People chuckled when we began a year ago with this mantra because of the experience we all had in days of old. We still believe it and do our best to keep the PBX in a Flash distribution bug free. If you don’t believe it, visit our forums and then visit the others. Some bugs obviously are beyond our control, but we do endeavor to steer users toward stable versions of open source products that can be used reliably in almost any business environment.

So there’s a quick update on how we’re doing and why we do things the way we do. Unlike a year ago, there are lots of choices now in the marketplace. If you’re still on the fence, the nice part of the open source movement is that it doesn’t cost you anything to try several flavors and make your own decision. Ultimately, we think you’ll choose PBX in a Flash for all of the reasons we’ve mentioned.

Welcome Back Faxing. That brings us to today’s topic: adding a fax machine to your PBX in a Flash system. With all the distributions, there have been numerous fax options. And the one word that describes most of them is P-A-I-N-F-U-L. We’ve been searching for a way to return to the good ol’ Asterisk@Home days with NVfax. It just worked. Well, today it works again with PBX in a Flash and Asterisk 1.4. And, yes, it should work on the other distributions as well. I’ve had mixed emotions about whether to protect the install script, but I’ve chosen to release it in unencrypted format because I think we all can benefit from the contributions of others while still giving credit to those that contribute. And, yes, I know there’s a difference of opinion about this… for some very good reasons. But the Nerd Vittles contribution to VoIP technology has always been distribution agnostic, and we’ve decided to keep it that way. We’re equally delighted that Philippe Lindheimer has left the hooks in FreePBX to support NVfax so, once you complete this install, you can manage incoming fax calls from the comfort of the FreePBX user interface… even in distributions which no longer call it FreePBX. Ever wonder why these folks didn’t also rename Asterisk while they were in the lobotomy business?

How It Works. There are two pieces to the new faxing mechanism. For inbound faxing, you simply set FreePBX to use NVfax to listen for a fax tone on inbound trunks. We’ve found that 5 is the magic number for detecting a fax tone on most inbound calls. YMMV! You also can dial local extension 329 (F-A-X) and the extension will listen for an incoming fax. In either instance, if a fax tone is detected, the call is routed to a fax context that converts the incoming fax to a PDF document which is then sent to your email address specified in your Fax Handling setup for each Inbound Route on your system. The correct answers for Fax Handling are Fax Extension: System, Fax Email: any email address that works, Fax Detection Type: NVFax, and Pause After Answer: 5. Don’t forget to also enter the Fax Machine Settings under the Setup->General Settings tab in FreePBX. For outbound faxing, we can’t recall this ever working with NVfax, but it does now. Here’s how to set things up. Create a PDF document of anything you wish to send by fax. Name the document so that it corresponds with the phone number of the fax destination, e.g. 6789991234.pdf would mean you plan to send the PDF document to a fax device at the following phone number: 678-999-1234. Now place the document in the /tmp directory on your server. Next, pick up a phone on your system and dial 32948 (F-A-X-I-T). When prompted for the destination fax phone number, key in 6789991234. Once you receive an acknowledgment that your fax has been sent, hang up. It doesn’t get much easier than that.

Prerequisites. Well, there are lots of them. But a stock installation of Asterisk with CentOS works great so long as you also have outbound emailing working and you’ve installed a text-to-speech engine. Either Flite or Cepstral works just fine. All of the bundled distributions should suffice. We actually only use TTS to generate the voice prompts for the outbound faxing so, if you don’t need that functionality, no TTS engine is required. If you need help with outbound emailing, see our PBX in a Flash knol. There also are setup instructions for Gmail and Comcast in the PBX in a Flash forum.

Installing the Fax Software. We’ve written a script which handles all of the heavy lifting for you. Just log into your server as root and issue the following commands:

cd /root
wget http://pbxinaflash.net/source/fax/fax.pbx
chmod +x fax.pbx
./fax.pbx

In less than a minute, you should be all set.

Configuring the Fax Software. First, edit the [faxit] context in /etc/asterisk/extensions_custom.conf to plug in your actual fax number to be displayed on outbound faxes. It should be the 17th line up from the bottom of the file. Save your changes and reload Asterisk: amportal restart. Now load FreePBX using your favorite browser and make the Fax Machine entries in Setup->General Settings. Remember that your return email address must match your server domain name that you set up in /etc/hosts to get outbound email flowing, e.g. pbx.dyndns.org. Next, for each of your Inbound Routes in which you wish to enable fax detection, edit the entry and fill in the Fax Handling options we previously mentioned. To repeat, the correct answers are Fax Extension: System, Fax Email: any email address that works, Fax Detection Type: NVFax, and Pause After Answer: 5. Finally, add Misc Destinations for Fax (329) and FaxIt (32948). Reload your dialplan, and you should be ready to go.

Testing Things Out. The easiest way to assure that your system is properly configured is to attach a real fax machine to an FXS device on your system. Then send a fax to extension 329 (F-A-X). You should receive the fax via email shortly thereafter. That’s only half the battle unfortunately. If you want to receive faxes from outside your PBX, you also need to find a VoIP provider that properly supports faxing. Suffice it to say, all VoIP providers are not created equal when it comes to fax support. Our Best of Nerd Vittles article on faxing will provide some suggestions as well as a few tips and tricks. If you have a standard POTS line connected to an FXO device on your Asterisk server, that’s an even better option. Just make certain that fax detection is enabled on the inbound route for that line.

Don’t be misled by the brevity of this article. It in no way is a measure of the effort that it’s taken to make NVfax work again. One way that you can show your appreciation for the good deeds of others is through the Donate link at the top of our page. There’s no obligation, of course, but it does keep the Little Mrs. from regularly asking, “Tell me again why you do this?” Enjoy and thanks in advance.



Getting Started with PBX in a Flash. There’s a great deal of literature on PBX in a Flash that is yours for the taking. But we wanted to mention a terrific new series of articles in Mark Berry’s blog that are especially well suited for those just learning about VoIP. Have a look. We think you’ll agree.



Hosting Provider Mega Deal. Just an FYI that the Nerd Vittles hosting provider, BlueHost, has raised the bar again on hosting services. For $6.95 a month, you can host unlimited domains with unlimited web hosting disk storage and unlimited monthly bandwidth. Free domain registration is included for as long as you have an account. It really doesn’t get any better than that. And their hosting services are flawless! Just use our link. You get a terrific hosting service, and we get a little lunch money.


New Fonica Special. If you want to communicate with the rest of the telephones in the world, then you’ll need a way to route outbound calls (terminations) to their destination. For outbound calling, we recommend you establish accounts with several providers. We’ve included two of the very best! These include Joe Roper’s new PBX in a Flash service as well as our old favorite, Vitelity. To get started with the Fonica service, just visit the web site and register. You can choose penny a minute service in the U.S. Or premium service is available for a bit more. Try both. You’ve got nothing to lose! In addition, Fonica offers some of the best international calling rates in the world. And Joe Roper has almost a decade of experience configuring and managing these services. So we have little doubt that you’ll love the service AND the support. To sign up in the USA and be charged in U.S. Dollars, sign up here. To sign up for the European Service and be charged in Euros, sign up here. See the Fonica image which tells you everything you need to know about this terrific new offering. In addition to being first rate service, Fonica is one of the least expensive and most reliable providers on the planet.
 
 
 

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 PBX in a Flash project gets 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…

Monday, November 10, 2008

It’s a Dell With Asterisk, Dude: Introducing the Orgasmatron II for the $299 Dell SC440, Part II

Filed under: — ward @ 4:00 pm

For those of you that missed the Dell SC440 at $199 last month and want to use the Nerd Vittles Orgasmatron II build for Asterisk, now’s your chance. The machine is once again on sale for $299 until November 19. And now it includes a second hard disk. Still a steal. Be sure to upgrade to 2GB of RAM for the additional $19. How fitting for PBX in a Flash Birthday Week. Enjoy!

Wednesday, November 5, 2008

Cloud Computing 101: Using Amazon’s S3 (Simple Storage Service) for Off-Site Asterisk Backups

Filed under: — ward @ 5:00 am

When we began the PBX in a Flash project, one of our key design requirements to distinguish our product from other Asterisk aggregations was to include an automated, rock-solid reliable, backup solution that backed up not only Asterisk but your entire server in a way that could be restored painlessly without manually reinstalling the initial PBX in a Flash image. After almost a year in production, PBX in a Flash remains the only distribution with a complete backup solution. In the Orgasmatron builds of PBX in a Flash, we've gone a step further. Automated weekly backups to a flash drive are preconfigured. All it takes to get started is a $15 flash drive. Insert the stick and run the usbformat.sh script. Thereafter, a full backup is run each Sunday night, and the self-booting ISO images are conveniently placed on the flash drive for easy restoration of your entire system should the need ever arise.

We appreciate, however, that others running Asterisk and FreePBX need backup solutions as well. And, while today's tutorial won't get you a full system backup which is comparable to what's available on PBX in a Flash systems, what it will do is provide an automated off-site backup storage solution for all of your critical FreePBX data for pennies a day. Beginning last year, FreePBX started offering a backup solution for FreePBX data as an integral part of the FreePBX web interface. The FreePBX solution lets you define a schedule for backing up your voicemail, system recordings, system configuration, CDR, and operator panel. What the restore process won't do is put Humpty back together again without first reinstalling your operating system and Asterisk environment. For those using PBX in a Flash, you've got the best of all worlds with these two backup solutions. For everyone else, the FreePBX backup alternative is certainly better than nothing. It also is a terrific tool for moving from one distribution to another (hint!) or to a new server environment. So long as the versions of FreePBX on both systems match, users have reported excellent results.

In addition to the need to recreate your server environment from scratch, there's an additional problem with the FreePBX backup solution. It gets stored on the same drive as your Asterisk server. That works great until your hard disk dies or your house catches on fire. Backups are written to /var/lib/asterisk/backups and placed in subdirectories matching the Schedule Name you assign to the backup procedure. For reasons which will become obvious, it's a good idea to name your schedules without any spaces in the name, e.g. DailyBackup. The only thing we've really found missing in the FreePBX solution is an off-site storage option to protect you in the event of a catastrophe.

A Picture Is Worth A Thousand Words. We recently were reminded of the importance of off-site storage when a neighbor's house caught fire in the middle of the night. Fortunately, the entire family escaped without injury. But all of the contents of the home were destroyed either by the fire or by the water used to put out the fire. After being awakened by a neighbor in the middle of the night, there was less than 5 minutes to extract mom and dad and four young children from the house before it was totally engulfed in flames. Moving computers out of harm's way most assuredly was the furthest thing from their minds. Enter: Amazon S3 aka Cloud Storage. A recent InformationWeek poll found that "storage--including archiving and disaster recovery--was cited as the service category most likely to be outsourced to the cloud, ahead even of business applications."

If this is all news to you, here's a quick thumbnail on Amazon S3 from the Wikipedia:

"Amazon S3 (Simple Storage Service) is an online storage web service offered by Amazon Web Services. Amazon S3 provides unlimited storage through a simple web services interface. Amazon launched S3, its first publicly-available web service, in the United States in March 2006 and in Europe in November 2007. Since its inception, Amazon has charged end users $0.15 per gigabyte-month, with additional charges for bandwidth used in sending and receiving data. As of November 1, 2008, pricing will move to tiers where end users storing more than 50 terabytes per month will receive discounted pricing. Amazon claims that S3 uses the same scalable storage infrastructure that Amazon.com uses to run its own global e-commerce network. Amazon S3 is reported to store more than 29 billion objects as of October 2008. This is up from 14 billion objects as of January 2008, and from 10 billion in October 2007. S3 uses include web hosting, image hosting, and a back-up system. S3 comes with no guarantee that customer data will not be lost."

To give you some idea of pricing, our current FreePBX daily backups are roughly 50 megabytes in size. A new PBX in a Flash install yields a 20MB FreePBX backup. Using a cable modem connection, uploading our 50MB daily backup to Amazon S3 takes about 5 minutes and costs 2¢. Storage of a full month's worth of rotating backups would add another quarter to the monthly cost. Thus, the tab to upload and store 30 backups a month runs less than one dollar, pretty cheap insurance by any measure. And, unless you tinker with your system as much as we do, daily backups probably are overkill. The tab for weekly uploads and storage on Amazon S3 would run less than 25¢ a month assuming you remove all but the last five backups from S3 in each subsequent month. So... what are you waiting for?

Configuring Weekly Backups with FreePBX. The first step is to set up the automated backup process in FreePBX. Using a browser, open FreePBX and choose Tools, Backup & Restore. Click Add Backup Schedule and name the schedule WeeklyBackup. Select all of the radio buttons to backup everything possible with FreePBX. For the time of the backups, leave the Follow Schedule Below option selected. Choose a time for the backup by clicking on the appropriate settings. We recommend 3:05 a.m. which means you click on 5 in the minutes column and 3 in the hours column. Finally, click the Selected option button under Weekdays and then click Wednesday. Click Submit Changes to save your settings.

Creating an Amazon S3 Account. Before you can create backups on Amazon S3, you'll obviously need an account. Here's the link to sign up: http://www.amazon.com/s3. Once you sign up, you'll receive an email with this link to manage your new account. Log in using your Amazon username and password. Write down your Access Key ID. Next click on the button to generate a new Secret Access Key. Once it's generated, click on the link provided to display it. Write it down, too. You'll need both your Access Key and your Secret to use Amazon's S3 service.

Installing s3cmd to Manage Your S3 Backups. There are a number of tools available to interact with Amazon S3. We've chosen s3cmd which happens to be free and uses python which is preconfigured on PBX in a Flash systems. Another great tool is JungleDisk, but it costs $20. It uses s3sync and Ruby which you'd need to install: yum install ruby. It also requires SSL certificates which complicates things a bit. For an excellent tutorial, see Chris Sherwood's writeup. Of course, time marches on, and today we can do all of the same things at no cost. So let's get started.

To install and configure s3cmd, log into your server as root and issue the following commands:

cd /root
wget http://downloads.sourceforge.net/s3tools/s3cmd-0.9.8.3.tar.gz?modtime=1217338796&big_mirror=0
tar zxvf s3cmd*
mv s3cmd-0.9.8.3 s3cmd
cd s3cmd
./s3cmd --configure

You'll be prompted to enter your Access Key and Secret Key to access Amazon S3. Next you'll be asked to provide an encryption password to protect your data while being transmitted to Amazon. Make up a random collection of letters and numbers. For the path to the GPG program, press Enter to choose the default: /usr/bin/gpg. Choose whether to use HTTPS to transmit your data. It's a little slower, but it's secure so we recommend choosing it. We're going to automate the backup process so you're not going to be watching the file transmission process anyway. Next, you'll be asked whether to test S3 access using the credentials you've supplied, Type y and be sure you get a success message. Otherwise, recheck your Access Key and Secret Key for typos. Finally, you'll be asked whether to save the settings. Choose Y. Your settings will be saved in /root/.s3cfg. Be sure to erase the file if you give your server to someone else!

Using the s3cmd Command Line Interface. s3cmd is a command line tool so we'll walk you through the basics before we automate the weekly backup process. There's an excellent tutorial for s3cmd that is available here, and more S3 tools are on the way. What you really need to know about S3 file storage is that files are stored in disk volumes which S3 calls buckets. You can have up to 100 buckets. Wildcards don't work the way Linux wildcards do, and S3 is picky about the use of periods. Our recommendation: don't use them for the time being. Also be aware that bucket names are like domain names. They must be unique across the S3 cloud. So... daily-backup and weekly-backup won't work on your system because we already own those buckets. The easiest naming convention is probably to use your full name or company name for the bucket name and then create directories below there for your data. For other tips, see the S3 FAQ. Now let's run down the basic list of commands in the order you typically would use them:

Create a New Bucket: /root/s3cmd/s3cmd mb s3://weekly-backup (Remember: Must be a unique bucket name on S3!)
List Your Buckets: /root/s3cmd/s3cmd ls
List Bucket Contents: /root/s3cmd/s3cmd ls s3://weekly-backup
Upload a File: /root/s3cmd/s3cmd put filename.xyz s3://weekly-backup/filename.xyz
Download a File: /root/s3cmd/s3cmd get s3://weekly-backup/filename.xyz filename.xyz
Delete a File: /root/s3cmd/s3cmd del s3://weekly-backup/filename.xyz
Delete a Bucket: /root/s3cmd/s3cmd rb s3://weekly-backup (NOTE: Bucket must be empty!)

Automating the Off-Site Backups to Amazon S3. We now have all the pieces we need build a weekly cron script to automate the backup process to our new Amazon S3 storage facility. So let's build the script. For purposes of this example, we will assume that you have followed our instructions above in setting up the backup process with FreePBX. We obviously need to know when new backups are made so that we can configure a cron script at the proper time to copy the backup file up to the Amazon S3 server. We also need to know the name of the FreePBX directory with the backups and will assume that it's /var/lib/asterisk/backups/WeeklyBackup. Finally we need to know the name of the bucket to be created on Amazon S3 to store the backups and we'll assume it's s3://weekly-backup as we used in the examples above.

Step 1 is to build the script. Using your favorite editor, create a file and name it /root/s3backup.sh: nano -w /root/s3backup.sh. Here's what should go in it:

#!/bin/bash
cd /var/lib/asterisk/backups/WeeklyBackup
thisbackup=`find *.gz -mtime -1 | tail -n 1`
/root/s3cmd/s3cmd put /var/lib/asterisk/backups/WeeklyBackup/$thisbackup s3://weekly-backup/$thisbackkup

Save the file: Ctrl-X, Y, then Enter and make the script executable: chmod +x s3backup.sh. Note that, for this script to actually work, you must run it on the same day AND after FreePBX has first generated a backup.

Step 2 is to create a cron job that will execute the above script shortly after 3:05 a.m. on Wednesday morning making sure we leave enough time for FreePBX to complete the backup task. To be safe, we'll set it up for 4 a.m. every Wednesday. Edit /etc/crontab and add an entry at the bottom of the file that looks like the following:

0 4 * * 3 root /root/s3backup.sh > /dev/null

If you just wanted a basic backup system using Amazon S3, congratulations! You've graduated. But there's so much more if you don't mind getting your hands a little dirty.


We're Getting Close. Before we tackle the techie stuff, let us pause for a moment and provide a progress report on the VPN in a Flash project. Thanks primarily to Tom King, we've made enormous progress in the last couple weeks. And, again, the accompanying picture says it better than words. We're also nearing completion of the documentation. The idea behind this project was to provide a mobile and transportable, full-featured VoIP PBX for under $500. For those with satellite offices or remote construction sites or branch offices, the Acer Aspire One is ideal. But it also can serve as a secure traveling companion for those that are often on the road. And, of course, it's an almost perfect fit for a home, a home office, a vacation home, or any hotel room with WiFi. Not only does it have an incredibly small footprint, but it also has computing power to spare with the new Intel Atom motherboard, a gig of RAM, and a 120GB hard disk. Yes, it's got wired AND wireless covered seamlessly, and it offers the Orgasmatron II build including fax capability plus the Hamachi VPN for secure connections within your own private network of servers and PCs. And our custom build offers the very latest KDE GUI with the brand-new Fedora 10 and performance to spare. The 1024x600 screen resolution you've simply got to see to believe. This photo doesn't do it justice. Plus we've added the Zoiper softphone which works nicely with the integrated microphone and speaker to let you place secure calls back through your home office PBX or directly through the fully-functional Asterisk 1.4 PBX which runs silently in the background with the new FreePBX 2.5 web interface. We hope to begin taking orders on or before the first anniversary of PBX in a Flash, November 14. For more details, click here or check out our forum posting. We now return you to your regularly scheduled program...


Using Fuse, s3fs, and Rsync with Amazon S3. At the outset, we want to express our special thanks to John Eberly for his article laying the foundation for much of what follows. The S3 technology has advanced dramatically since it first was introduced. So much so that you now can mount an Amazon S3 bucket as a local device on your server and use it like any other mounted device. This means you can use standard Linux tools to copy, list, delete, and move files. And you can use the built-in intelligence of tools such as rsync to actually keep directories in sync without recopying data that already exists in both locations and without manually deleting data which already has been removed from the source directory. For long time readers of Nerd Vittles, you know that rsync is one of our favorite Asterisk tools. It works flawlessly!

Unfortunately, with CentOS 5, the Linux Fuse file system installation process is a bit quirky, but here we go anyway. First, you'll need the Dag Wieers YUM repository to install some of these applications. The easiest way to activate the repository is to just execute the following commands while logged into your server as root. When we're finished with the repository, we'll delete /etc/yum.repos.d/dag.repo so that you don't accidentally use it unintentionally for other yum updates down the road:

cd /etc/yum.repos.d
wget http://pbxinaflash.net/source/s3/dag.repo
cd /root
yum -y install fuse-devel
rm /etc/yum.repos.d/dag.repo
wget http://downloads.sourceforge.net/fuse/fuse-2.7.4.tar.gz?modtime=1217019944&big_mirror=0
tar zxvf fuse-2.7*
cd fuse-2.7.4
./configure
make
make install
cd ..

If you're a Linux whiz kid, you're probably scratching your head wondering why we would install an RPM version of fuse and then turn around and install it again by compiling it from source. The short answer is "hell if I know." The longer answer is that fuse won't work unless you do it this way. Sorry. If you really are a whiz kid, you can educate all of us as to why this is necessary by posting a comment.

Now that the Linux fuse file system is installed, we need one more application. It's the glue between Linux fuse and Amazon S3: s3fs. So let's download, compile, and install the s3 file system application:

cd /root
wget http://s3fs.googlecode.com/files/s3fs-r177-source.tar.gz
tar zxvf s3fs*
cd s3fs
make -f Makefile
mkdir /mnt/s3fs
cp s3fs /usr/bin/.
cd ..

Finally, to simplify mounting of your S3 file system, we need to store your Access Key and Secret Key in a config file just as was done with s3cmd above. So create a new file named /etc/passwd-s3fs and add your AccessKey:SecretKey in the file, e.g. 12345:67890


To mount your S3 bucket (the unique one you created above): s3fs weekly-backup /mnt/s3fs

To check your available storage space on Amazon S3: df -h /mnt/s3fs

To synchronize your WeeklyBackup directory with S3: rsync -avz --delete /var/lib/asterisk/backups/WeeklyBackup /mnt/s3fs

To dismount your S3 bucket: umount /mnt/s3fs

For the steps to integrate this directly into FreePBX to assure that your backups are automatically saved to S3, see Comment #1 below.


Hosting Provider Mega Deal. Just an FYI that the Nerd Vittles hosting provider, BlueHost, has raised the bar again on hosting services. For $6.95 a month, you can host unlimited domains with unlimited web hosting disk storage and unlimited monthly bandwidth. Free domain registration is included for as long as you have an account. It really doesn't get any better than that. And their hosting services are flawless! Just use our link. You get a terrific hosting service, and we get a little lunch money.



New Fonica Special. If you want to communicate with the rest of the telephones in the world, then you'll need a way to route outbound calls (terminations) to their destination. For outbound calling, we recommend you establish accounts with several providers. We've included two of the very best! These include Joe Roper's new PBX in a Flash service as well as our old favorite, Vitelity. To get started with the Fonica service, just visit the web site and register. You can choose penny a minute service in the U.S. Or premium service is available for a bit more. Try both. You've got nothing to lose! In addition, Fonica offers some of the best international calling rates in the world. And Joe Roper has almost a decade of experience configuring and managing these services. So we have little doubt that you'll love the service AND the support. To sign up in the USA and be charged in U.S. Dollars, sign up here. To sign up for the European Service and be charged in Euros, sign up here. See the Fonica image which tells you everything you need to know about this terrific new offering. In addition to being first rate service, Fonica is one of the least expensive and most reliable providers on the planet.
 
 
 

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 PBX in a Flash project gets 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...

Tuesday, October 28, 2008

Introducing Noojee Click for Asterisk: The Free Click-to-Dial Solution for Firefox Using AJAM

Filed under: — ward @ 3:00 pm

AJAM is a new technology available in Asterisk 1.4 which allows web browsers or other HTTP-enabled applications and web pages to directly access the Asterisk Manager Interface (AMI) via HTTP. You can read muppetmaster's complete writeup at voip-info.org. Because of Apache, it was Asterisk's mini-web server that rarely was needed or enabled with PBX in a Flash, Elastix, trixbox, or any other Asterisk aggregation... until recently. Then along came a terrific app called Noojee Click for Firefox from Noojee Telephony Solutions in Australia. What this little gem provides is Asterisk click-to-dial functionality with AJAM for any phone number found on any web page you happen to be browsing with Firefox. See, for example, the U.S. Senate web site (shown below). You'll note that little Noojee icons are displayed beside each senator's telephone number. So give Barack and John a call, and tell them what's on your mind. To call your favorite senator, just click on the desired icon. And, because it's a Firefox Addon, it's operating system agnostic so it works well on almost any desktop computer. We're going to walk you through getting everything set up today with Asterisk, but we have one cautionary note.

WARNING: We strongly urge you NOT to expose AJAM or the Asterisk Manager Interface to public access over the Internet or to untrusted users! Doing so almost certainly will compromise the integrity of your Asterisk system without a significant amount of additional work (not covered in this article) to harden and broaden the number of passwords and to better secure these services. Having said that, Noojee Click is a terrific tool for use on a private intranet where you trust ALL of the users or via VPN access where you trust ALL of the users with VPN access. And that's what we'll cover today in this tutorial.

Prerequisites. In order to follow along in this tutorial, you'll need a properly configured Asterisk 1.4 system as well as the Noojee Click Addon for Firefox which must be installed and properly configured on your client machines. We also are assuming that your Asterisk 1.4 implementation includes a relatively current version of FreePBX that is functioning reliably. We've given up installing every release of every Asterisk aggregation on the planet. So... what follows assumes you're using PBX in a Flash. If the other aggregations are properly configured, the same instructions should work without any changes. But we haven't tested them so proceed at your own risk.

Activating AJAM. Asterisk 1.4 as compiled on PBX in a Flash systems comes with AJAM support built in but not activated. Here are the three steps to activate and test that it's working properly.

1. Copy the sample AJAM config file into the /etc/asterisk directory:

cp /usr/src/asterisk/configs/http.conf.sample /etc/asterisk/http.conf

2. Using your favorite editor, edit http.conf so that it looks like the following. Be sure to change the private IP address 192.168.0.236 to reflect the private IP address of your Asterisk server or, in the alternative, you can use the VPN IP address of your Asterisk server .

;
; Asterisk Builtin mini-HTTP server
;
;
[general]
;
; Whether HTTP interface is enabled or not. Default is no.
;
enabled=yes
;
; Whether Asterisk should serve static content from http-static
; Default is no.
;
;enablestatic=yes
;
; Address to bind to. Default is 0.0.0.0
;
bindaddr=192.168.0.236
;
; Port to bind to (default is 8088)
;
bindport=8088
;
; Prefix allows you to specify a prefix for all requests
; to the server. The default is "asterisk" so that all
; requests must begin with /asterisk
;
prefix=asterisk
;
; The post_mappings section maps URLs to real paths on the filesystem. If a
; POST is done from within an authenticated manager session to one of the
; configured POST mappings, then any files in the POST will be placed in the
; configured directory.
;
;[post_mappings]
;
; In this example, if the prefix option is set to "asterisk", then using the
; POST URL: /asterisk/uploads will put files in /var/lib/asterisk/uploads/.
uploads = /var/lib/asterisk/uploads/
;

3. Now issue the following commands to configure and restart Asterisk and make sure AJAM is functioning properly:

mkdir /var/lib/asterisk/uploads
chown asterisk:asterisk /var/lib/asterisk/uploads
amportal restart
asterisk -rx "http show status"

You should receive a response that looks something like the following:

HTTP Server Status:
Prefix: /asterisk
Server Enabled and Bound to 192.168.0.236:8088
Enabled URI's:
/asterisk/httpstatus => Asterisk HTTP General Status
/asterisk/manager => HTML Manager Event Interface
/asterisk/rawman => Raw HTTP Manager Event Interface
/asterisk/static/... => Asterisk HTTP Static Delivery
/asterisk/mxml => XML Manager Event Interface

Adjusting Security Settings to Permit Noojee Click Access. Two of the default security settings on PBX in a Flash systems would prevent Noojee Click running on any PC inside or outside your private network from accessing your Asterisk server to place a call. We want you to be fully aware that we are loosening up security to permit this access so that you'll know how to reverse it if you change your mind. First, the IPtables firewall blocks TCP port 8088 access to your Asterisk server from any external machine. Second, the default Asterisk Manager configuration blocks access to the Asterisk Manager Interface except from the Asterisk server itself. So the next two sections will walk you through adjusting both the IPtables firewall setup and the Asterisk Manager configuration to permit Noojee Click access.

Adjusting IPtables for TCP Port 8088 Access. We always recommend that your Asterisk server be installed behind a hardware-based firewall/router with all web access blocked. IPtables is configured to permit access to port 80 and several other web ports; however, this is intended to allow private intranet access to your server, not public Internet access. We're going to unblock TCP port 8088 with the same cautionary note. Do NOT expose TCP port 8088 to the public Internet! If you cannot live without Internet access to your server, use a VPN tunnel to make the connection so that all of the data is secured and the connection does not expose unencrypted data and passwords to the public Internet.

To open TCP port 8088 on your IPtables firewall, add the following line to the bottom of /etc/sysconfig/iptables just above the COMMIT line:

-A INPUT -p tcp -m tcp --dport 8088 -j ACCEPT

Then restart the IPtables service:

service iptables stop
service iptables start

Adjusting Asterisk Manager for Local Subnet Access. Giving any user Asterisk Manager access is equivalent to handing over the keys to your Asterisk castle. If you have any doubt about the integrity of any user on the subnet on which your Asterisk server is running, don't follow these instructions. Instead, consult an expert and limit access by individual IP addresses with separate account names and passwords for each trusted machine on your network, e.g. permit=192.168.0.31/255.255.255.255. This also could be the VPN address of any remote machine. To enable Noojee Click access to the Asterisk Manager for your entire local subnet, edit /etc/asterisk/manager.conf and add a new context at the bottom of the file that looks like the following using the actual subnet address of your intranet instead of 192.168.0.0. AND be sure to use a very secure password:

[noojee]
secret = YourVerySecurePasswordGoesHere
deny=0.0.0.0/0.0.0.0
permit=192.168.0.0/255.255.255.0
read = system,call,log,verbose,command,agent,user
write = system,call,log,verbose,command,agent,user

In the [general] context of the same file, add the following entry:

webenabled = yes

Save your changes and restart Asterisk: amportal restart.

Testing AJAM on Your Server. The easiest way to be sure you have a correct setup on your system is to try to access AJAM with a browser. First, install the text-based lynx browser. Issue the command: yum install lynx. Once installed, type lynx to start it up. Then choose G and enter the following URL using your actual IP address and password from above, of course:

http://192.168.0.236:8088/asterisk/manager?action=login&username=noojee&secret=YourVerySecurePasswordGoesHere

Installing and Configuring Noojee Click. Now that AJAM is humming along, you're ready to install Noojee Click on each of your desktop machines. On every machine, you'll need to fire up Firefox and go to this link. Click on the provided link to install Noojee Click for Asterisk. Firefox will display the following message just under the tab bar: 'Firefox prevented this site (www.noojee.com.au) from asking you to install software on this computer.' Click the 'Allow' button on the right hand side of your browser to allow Noojee Click to be installed. Then repeat the process again. You'll need to restart Firefox to finish the install. When Firefox reloads, you'll see the Noojee logo in the bottom right hand corner of the Firefox status bar. Click on it and choose Configuration. Enter the following settings using the IP address of your Asterisk server, noojee for the username, and whatever password you chose above for Asterisk Manager access:

ServerType: AJAM (Asterisk 1.4+)
Host: Internal IP Address of Your Asterisk Server
Port: 8088
Username: noojee
Password: YourVerySecurePasswordGoesHere
Phone Extension: the extension number where you will pick up this outbound call (works like AsteriDex!)
Context: from-internal
Enable Autoanswer: your choice
Phone Type: your choice (use Aastra for softphones)
Dial Prefix: only if required by your existing trunk setup
International Prefix: only if required by your setup
Pattern: leave the ones that are there and add the following for calls in the U.S.
XXX-XXX-XXXX
(XXX) XXX-XXXX
Enable Logging: your choice

Press the Escape key to save your settings. Now access a web page with some phone numbers and click on the Noojee icon beside a phone number to place an outbound call. The extension you specified in the Configuration should begin to ring. Answer the call, and the outbound call will be placed. Enjoy!


Hosting Provider Mega Deal. Just an FYI that the Nerd Vittles hosting provider, BlueHost, has raised the bar again on hosting services. For $6.95 a month, you can host unlimited domains with unlimited web hosting disk storage and unlimited monthly bandwidth. Free domain registration is included for as long as you have an account. It really doesn't get any better than that. And their hosting services are flawless! Just use our link. You get a terrific hosting service, and we get a little lunch money.



New Fonica Special. If you want to communicate with the rest of the telephones in the world, then you'll need a way to route outbound calls (terminations) to their destination. For outbound calling, we recommend you establish accounts with several providers. We've included two of the very best! These include Joe Roper's new PBX in a Flash service as well as our old favorite, Vitelity. To get started with the Fonica service, just visit the web site and register. You can choose penny a minute service in the U.S. Or premium service is available for a bit more. Try both. You've got nothing to lose! In addition, Fonica offers some of the best international calling rates in the world. And Joe Roper has almost a decade of experience configuring and managing these services. So we have little doubt that you'll love the service AND the support. To sign up in the USA and be charged in U.S. Dollars, sign up here. To sign up for the European Service and be charged in Euros, sign up here. See the Fonica image which tells you everything you need to know about this terrific new offering. In addition to being first rate service, Fonica is one of the least expensive and most reliable providers on the planet.
 
 
 

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 PBX in a Flash project gets 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...

Thursday, October 23, 2008

It’s a Dell With Asterisk, Dude: Introducing the Orgasmatron II for the Dirt-Cheap Dell SC440

Filed under: — ward @ 5:00 am

About 20 years ago, we began our migration from proprietary DEC VAX minicomputers by acquiring two of the first Dell servers ever manufactured. They were serial numbers 6 and 7. And we were just about as excited about the transition as the folks on Sesame Street. The machines were quickly named Bert and Ernie, and there was even a scrolling LCD display on the units showing the machine names. Considering that this all occurred inside a federal courthouse, it was revolutionary at the time. Michael Dell has gotten a little richer since that initial $10,000 investment (a bargain at the time!), and I'd have to say Dell servers have improved a good bit as well. So we finally bit the bullet last week and bought two of Dell's SC440 servers when they went on sale for a whopping $199 each. For this price, you got Dual Core Intel® Pentium®E2180, 2.0GHz processors with 1MB Cache, an 800MHz FSB, an 80GB 7.2K RPM Serial ATA 3Gbps 3.5-in Cabled Hard Drive connected to the onboard SATA controller, 512MB of 667MHz DDR2 RAM, a 48X CD-ROM Drive, and an On-Board Single Gigabit Network Adapter. For $19 more, you got 2GB of RAM. We hope some of you also took advantage of the offer because today we're releasing our plug-and-play Osgasmatron II for the SC440. Nov. 13 NEWS FLASH: Dell once again is offering the SC440 with Dual-Core processor but it now includes a second hard disk for $299 until November 19. It's still a great deal on a top-notch server. To get email alerts when the SC440 again goes on sale, go to techbargains.com and search for SC440. Then click on Send Email Deal Alert. Be sure to confirm the alert by replying to the email. These units have gone on sale roughly every two weeks since early September.

If you've missed the last two week's articles, the Orgasmatron II is the Ultimate Kitchen Sink for Asterisk. It includes PBX in a Flash 1.3 in all its glory plus the newly released FreePBX 2.5 and so much more. From the time you insert the CD 'til you have a functioning Asterisk PBX with all the bells and whistles imaginable... 15 minutes!

If you've been following along with our articles, you already know that we've identified what we believe to be the perfect Asterisk SIP phone, the Aastra 57i. But our previously anointed perfect small business/home computer on which to run a production Asterisk server for about 50 employees, the Everex gPC2 (aka "The WalMart Special"), is no more. So this build moves to a different platform and a very different performance level. You'll see about twice the performance on the SC440 compared to the WalMart Special. Today's build provides a preconfigured SC440 installation on a 2-disk ISO image backup of the whole system using Mondo. And, NO, it won't work with any other hardware! Once you download the ISO images and burn your CDs, it's a 15-minute No-Brainer to install the entire image onto your own SC440. Wait to install any add-on cards until after you complete the Orgasmatron install. You must have an SC440 configured as above, or this Mondo restore will not work. So accept no substitutes, or you may end up with an Electronic Brick instead of an Orgasmatron II.

We've preconfigured some extensions on your new system as well as outbound and incoming trunks from some terrific providers including our second homegrown entry for VoIP terminations. Joe Roper and his business partner in Spain now offer a terrific IAX VoIP termination service. You can choose penny a minute service in the U.S. and most of Canada, or you can opt for premium VoIP service at about 2¢ a minute in the U.S. International rates also are VERY reasonable! You literally can sign up for service, plug in your phones, and have a system in full operation in under an hour.

So... what do you get with this preconfigured build? In addition to all of the goodness of a stock PBX in a Flash 1.3 build including Asterisk 1.4.21.2 running under CentOS 5.2 with a version of Zaptel that actually works with legacy cards. You also get the brand new FreePBX 2.5 as well as the latest versions of Apache, MySQL, PHP, and SendMail. And you get a Baker's Dozen preconfigured Nerd Vittles applications. Complete documentation is available here.

  • Inbound and Outbound VoIP Faxing Using nvFax... finally!
  • FONmail for Asterisk to send voice messages to any email address on the planet
  • AsteriDex RoboDialer and Telephone Directory
  • Telephone Reminders with Support for Recurring Reminders and Web-based TTS Reminder Messages
  • NewsClips for Asterisk featuring Dozens of Yahoo News Feeds (TTS)
  • Weather Reports by Airport Code (TTS)
  • Weather Reports by ZIP Code (TTS)
  • Worldwide Weather Forecasts (TTS)
  • xTide for Asterisk (TTS)
  • MailCall for Asterisk: Get Your Email By Telephone (TTS)
  • TeleYapper 4.0 Message Broadcasting System
  • CallWho for Phone Lookup and Dialing of Entries in the AsteriDex Database (TTS)
  • TFTP Server with preconfigured setups for 10 Aastra 57i SIP telephones

In addition, you get dozens of preconfigured telephony applications and functions that would take even an expert the better part of a year or two to build independently. And, unlike all of the other distributions, we build Asterisk from source so it's simple to modify and upgrade whenever you feel the need. Here's a short list of what you have to look forward to:

  • Stealth AutoAttendant with Welcome and Application IVRs
  • Key Telephone Support Using Park and Parking Lot
  • Intercom/Paging Support
  • Bluetooth Proximity Detection with Automatic Call Forwarding to Cell Phone
  • DISA
  • Blacklisting with Web and Telephony Interfaces
  • CallerID Name Lookups from Numerous Providers
  • Weekly Automated System Backups to a Flash Drive
  • One Touch Day/Night Service
  • Music on Hold
  • Voicemail with Email Delivery of Messages and Pager Notification
  • Voicemail Blasting
  • Visual Voicemail for Asterisk with Aastra phones and the Apple iPhone
  • Cell Phone Direct Dial
  • Call Forward: All, Busy, No Answer
  • Call Waiting
  • Call Pickup
  • Zap Barge
  • Call Transfer: Attended and Blind
  • Dictation Service with Email Delivery
  • Do Not Disturb
  • Gabcast
  • Phonebook Dial by Name
  • Speed Dial
  • Flite Text to Speech (TTS)
  • Windows Networking with SAMBA
  • Linux Firewall and Fail2Ban with SSH, HTTP, and SIP/IAX login protection
  • PBX in a Flash Software Update Service To Keep Your System Current
  • One-Click Cepstral TTS Install with Allison... Just Type install-cepstral

Prerequisites. As mentioned, you'll need an SC440 configured with the specs outlined above including the 2GB RAM upgrade. We also recommend a 4GB USB flash drive on which to store automatic weekly backups of your new system. Just plug it into your new machine, log in as root, and type: /root/usbformat.sh. That's it! Every Sunday night, you'll get a new backup in ISO format on your flash drive. If something goes wrong on your system, copy the ISOs to CDs and reboot with Disk 1. It doesn't get any easier than that. And you can always check on the latest backup by issuing the command: /root/usbcheck.sh

Finally, you'll need to cough up a whopping $5 to download the two-disk ISO image for this build. And, yes, we eat our own dog food. The ISO images you'll be downloading were captured as a backup on the flash drive of one of our SC440 lab machines. We got 'em yesterday! If you use this special build, it seemed only fair that you cover the cost of the bandwidth to download it. As most of you know, we don't have the luxury of freeloading off SourceForge for our downloads. And we didn't want to impose upon our existing bandwidth providers to bring you this custom image. The good news is that, once you download the image from DreamHost, you are more than welcome to pass it along to one or more of your friends or business acquaintances at no charge. You can even do it electronically through the DreamHost Files Forever program. And, if you'd like to host this image for your fellow man at no cost, be our guest... and thank you! Bottom line: For under $250, you'll have the slickest, fastest, most reliable PBX and fax machines on the planet with rock-solid weekly backups and, of course, access to the one-of-a-kind PBX in a Flash Software Update Service!

Getting Started. Once you have your SC440 in hand, take it out of the box, plug it into your LAN with DHCP and DNS support and Internet connectivity. You'll need a USB keyboard for typing temporarily. We also strongly recommend that you always keep your system running behind a NAT-based firewall/router. We strongly recommend the dirt-cheap dLink WBR-2310 WiFi router which handles NAT issues with VoIP masterfully. Don't redirect any ports to the machine and don't turn the PC on just yet.

Download the two ISO images for the SC440 from here. If you don't know how to create a CD from an ISO image, read that section from our previous article. In fact, read the whole article. It'll help you immensely down the road. Once you have the two CDs in hand, turn on the SC440 and quickly insert Disk 1 into the CD drive and close the drive. If you don't see a Mondo Rescue screen within a minute or less, turn the machine off and then back on again. At the Mondo Rescue main screen, type nuke and press the Enter key. This will erase, repartition, and reformat your hard disk in case you didn't know. This is normal. If you get any kind of errors about incorrect drive or partition names, halt the install by pressing CTL-ALT-DEL and remove the CD. Otherwise, ignore the errors. You'll need to install PBX in a Flash using our standard ISO which is available here. Otherwise, go have a cup of coffee and come back in about 10 minutes. After fileset #87 is restored, you'll be prompted to insert Disk 2 and press Enter to finish the install. When the second CD finishes, eject it and wait for the prompt. Then type "exit" and press Enter. Your SC440 will reboot, and you're ready to go.

After the reboot finishes, type root at the login prompt for your username and password for your password. The IP address assigned by your DHCP server should appear near the top of the screen. Write it down. If there is no IP address, your machine does not have network connectivity or access to a DHCP server with an available IP address. Correct the problem and reboot. You can safely ignore the warning that Fail2Ban is OFFLINE. We've updated the Fail2Ban software to protect Asterisk SIP and IAX connections, and our status program isn't up to date as this article goes to press. update-fixes will get you a new version from our Software Update Service shortly.

Securing Passwords. We're going to change five passwords now. For the time being (until you've done some reading), think up one really difficult password (that you won't forget) and use it for all five passwords. At the root@pbx:~ $ command prompt, type the following commands and type in your new password when prompted. Don't forget your password or you'll get to put in your two CDs and start over.

passwd
passwd-maint
passwd-wwwadmin
passwd-meetme
/usr/libexec/webmin/changepass.pl /etc/webmin root yournewpasswordhere

Now, using a web browser, go to the IP address of your new PBX in a Flash server. Click the Admin tab and then choose the FreePBX Administration botton. Log in as maint with your new maint password. Before you do anything else, change ALL of the 10 extension passwords to something secure... as if your phone bill depended upon it! Click Setup, Extensions and then choose each extension, modify BOTH the device secret and Voicemail Password, and click Submit. When you finish all the extensions, then reload the dialplan to save your changes. Finally, change your DISA password to something very, very secure: Setup, DISA, DISAmain, PIN. Reload your dialplan once again to save your changes.

Regardless of what you may read elsewhere, the Orgasmatron II has all the very latest security patches as of today. If you want more security, take our advice and add a hardware-based firewall/router between your Internet connection and your new Orgasmatron II and don't expose port 80 (the web interface) to the Internet!

Permanently Setting the IP Address. There are different schools of thought on whether to use a fixed or dynamic IP address. Most hardware-based routers support DHCP IP address reservations. The simplest way to permanently secure the existing IP address for your server is to reserve it on your router. If you'd prefer to assign your own IP address, we have included the deprecated netconfig utility which can be run after logging into your server as root. Sometimes you will need to run it once, enter your settings, reboot, and then repeat the drill. Then you should be all set. Either way, you need a permanent IP address for your machine when all is said and done. Once you have a permanent IP address, hop on over to dyndns.org and sign up for your own fully-qualified domain name (FQDN), e.g. mypbx.dyndns.org. You're going to need it for a whole host of things with your new PBX, and dyndns.org is about the easiest way to do it. Once you have your FQDN and DynDNS username and password, log in as root and edit: /etc/ddclient/ddclient.conf. Search (Ctl-W) for ***. Fill in your username and password and uncomment those two lines. Then search for *** again, uncomment the next three lines and fill in your fully-qualified domain name. Save the file and service ddclient restart. To make sure everything worked, issue the following command: ddclient -force. Assuming there are no errors, issue the following command to start ddclient each time your server reboots: /sbin/chkconfig --add ddclient. Now the IP address of your Asterisk server will always resolve to your FQDN from DynDNS. And anyone can call you via SIP for free using the following SIP URI: mothership@yourFQDN.dyndns.org. You can take this a step further and sign up for a free incoming phone number at ipkall.com. For your account type, choose SIP. For your SIP phone number, enter: mothership. For your SIP proxy, enter the fully-qualified domain name (FQDN) for your server, e.g. mypbx.dyndns.org. Choose a password and enter your real email address, and they will beam you a Washington state phone number within a day or so. You can't beat the price!

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 (highly recommended). 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 (the size of a pack of cigs) known as an SPA-2102. 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. Once you get it, plug the device into your LAN, and then plug your phone instrument into the SPA-2102. Note that this adapter supports two-line cordless phones! Your router will hand out a private IP address for the SPA-2102 to talk on your network. You'll need the IP address of the SPA-2102 in order to configure it to work with Asterisk. After you connect the device to your network and a phone to the device, pick up the phone and dial ****. At the voice prompt, dial 110#. The device will tell you its DHCP-assigned IP address. Write it down and then access the configuration utility by pointing your web browser to that IP address.

Once the configuration utility displays in your web browser, click Admin Login and then Advanced in the upper right corner of the web page. When the page reloads, click the Line1 tab and then repeat this drill for the Line2 tab if you want to connect the device to two extensions on your Asterisk system. Scroll down the screen to the Proxy field in the Proxy and Registration section of the form. Type in the private IP address of your Asterisk system which you wrote down previously. Be sure the Register field is set to Yes and then move to the Subscriber Information section of the form. Assuming you're using the preconfigured extensions starting with 701, do the following. Enter House Phone as the Display Name. Enter 701 as the User ID. Enter your actual password for this extension in the Password field, and set Use Auth ID to No. Click the Submit All Changes button and wait for your Sipura to reset. In the Line 1 Status section of the Info tab, your device should show that it's Registered. You're done. Now repeat the drill for Line2 using extension 702. Pick up a phone and dial 1234# to test out BOTH extensions.

Downloading a Free Softphone. Unless you already have an IP phone, the easiest way to get started and make sure everything is working is to install an IP softphone. You can download a softphone for Windows, Mac, or Linux from CounterPath. Or download the pulver.Communicator. Here's another great SIP/IAX softphone for all platforms that's great, too, and it requires no installation: Zoiper 2.0 (formerly IDEfisk). All are free! Just install and then configure with the IP address of your PBX in a Flash server. For username and password, use one of the extension numbers and passwords which you set up with FreePBX. Once you make a few test calls, don't waste any more time. Buy a decent SIP telephone. We think the best phone out there is the Aastra 57i for under $200. Another $100 buys you the Aastra 57i CT with a cordless DECT phone.

Configuring Aastra 57i SIP Phones. Your new system comes preconfigured to automatically configure up to 15 Aastra 57i phones. Plug each phone into your network and wait for it to boot. Once it boots, press the Option button, then Phone Status (3), then IP & MAC Address (1). Write down each phone's IP address and MAC address. Then press Done to exit from the menus.

Next, we need to tell your phone to use your new Asterisk server as the TFTP server to obtain its setup. Press the Option button again, then Admin Menu (5). Type 22222 for the admin password and press Enter. Then choose Config Server (1), then TFTP Settings (2), then Primary TFTP (1), enter the IP address of your new server, and press Done a half dozen times.

Log back into your server as root. Switch to the TFTP directory: cd /tftpboot. You'll notice that there are config files for up to 15 phones. Simply choose the extension number you wish to use for each phone AND rename each file (filenames are 701.cfg to 715.cfg) to the MAC address of each phone.cfg. Do NOT use hyphens in the MAC address. One final step and you'll be ready to load up your phones. We need to set the correct IP address to tell each phone where your server is located. So... issue the following command using the IP address of your new server instead of 192.168.0.123. Leave the rest of the command as it is!

sed -i 's|192.168.0.0|192.168.0.123|g' /tftpboot/aastra.cfg

Now restart each phone by pressing the Option button and then Restart Phone (6) and then the Restart button. Once the phone reboots, you can make a test call by dialing 1-2-3-4. You can get the latest news by dialing 5-1-1. Or get a weather forecast by airport code (6-1-1) or zip code (Z-I-P).

A Word About Ports. For the techies out there that want to configure remote telephones or link to a server in another town, you'll need to know the ports to remap to your new server from your firewall. Here's a list of the ports available and used by PBX in a Flash. We don't recommend exposing UDP 5038 which is used to communicate with Asterisk via the Asterisk Manager.

TCP 80 - HTTP (needed to access the web sites on your server from the Internet... not recommended!!!)
TCP 22 - SSH (needed if you want remote SSH access)
TCP 9001 - WebMin (needed if you want remote WebMin access... not recommended!!!)
UDP 10000-62000 - RTP (needed for SIP communications)
UDP 5004-5037 - SIP (ditto)
UDP 5039-5082 - SIP (ditto)
UDP 4569 - IAX2 (needed for IAX communications typically between Asterisk servers)

Setting Up Trunks for Outgoing and Incoming Calls. If you want to communicate with the rest of the telephones in the world, then you'll need a way to route outbound calls (terminations) to their destination. And you'll need a phone number (DIDs) so that folks can call you. Unlike the Ma Bell world, you need not rely upon the same provider for both. And nothing prevents you from having multiple outbound and incoming trunks to your new PBX. At a minimum, however, you do need one outbound trunk and one inbound phone number unless you're merely planning to talk to other extensions set up on your system. We've actually put all the hooks in place to make it easy for you to interconnect to other Asterisk servers, but we'll save that for another day. For today, we want to get you a functioning system so that you can place outbound calls to anywhere in the world and can receive incoming calls from anywhere in the world.

For outbound calling, we recommend you establish accounts with several providers. We've included the necessary setups for Joe Roper's new PBX in a Flash service as well as Vitelity and AOL. To register for the PBX in a Flash service, just visit the web site and register. To sign up to the service in the USA and be charged in US Dollars, please sign up here. To sign up for the European Service and be charged in Euros, sign up here.

In addition to being one of the least expensive providers, there's also the premium service option. You can prefix any number with 000 to try it out. Give it a try. We think you'll be pleased with the service AND the pricing. We don't yet sell DIDs for inbound service, but Vitelity certainly does, and there's a link below to get you started.

Vitelity: One of the Best Providers on the Planet. If you're seeking the best flexibility in choosing an area code and phone number plus reasonable entry level pricing plus high quality calls, then Vitelity is a 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 PBX in a Flash project gets 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. For PBX in a Flash users, 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. You can't beat the price (except with us) and the call quality is excellent as well. We've tried just about everybody.

To sweeten the pot a bit more, we've preconfigured both inbound and outbound Vitelity trunks for you. For the vitel-inbound trunk, all you'll need to do is plug in your username, password, and host assigned by Vitelity and adjust the registration string to match your assigned username and password. In FreePBX, click Setup, Trunks, SIP/vitel-inbound and make the changes. Then adjust the vitel-outbound trunk to reflect your actual username in the fromuser and username entries, your real password in the secret entry, and the correct host provided by Vitelity for your outbound calls, and you're all set. In FreePBX, click Setup, Trunks, SIP/vitel-outbound and make the changes. The same setup drill will get you going the the PIAF VoIP service as well.

To test things out, pick up a phone configured on your system and dial an area code and number of someone in the United States or Canada. Now get someone to call you using your new number. Presto! You have inbound and outbound phone service. And, if you'd like to see just how good SIP service can be, pick up a phone on your system and dial D-E-M-O. This will connect you to the PBX in a Flash hosted demo applications server at Aretta Communications.

An Alternate Outbound Calling Solution. As we said, it costs you almost nothing to add an alternate outbound calling solution to your new system. As luck would have it, adding a third outbound calling provider is now a breeze because AOL just entered the SIP terminations market with a product called AIM Call Out. We wrote about it recently, and you can read the article here. All you need is an AOL or AIM account name and $5 to get you started. The system you've just installed is preconfigured to use AIM Call Out. All you have to do is plug in your username and password, and you can immediately make calls to anywhere in the United States for under 2¢ per minute. Adding international calling is as easy as inserting the correct dial string. If you never use it, it doesn't cost you a dime. So $5 is mighty cheap insurance in our book.

First things first. Sign up for the service at this link. Your username will look something like this: johndoe@aim.com. You also will be assigned a password. Using your web browser, open FreePBX by pointing to the IP address of your new server and choosing Administration, then FreePBX. Type in admin as your username and the password you assigned to your system. From the main FreePBX menu, choose Setup, Trunks, and click on SIP/AIM in the far right column. Scroll down to the Peer Details section of the form and replace yourAIMpassword with your new password. Then replace yourAIMaccountname with your actual AIM account name. Now click the Submit Changes button and then Apply Configuration Changes and Continue with Reload.

Setting Up an Alternate DID for Incoming Calls. You also may want to consider a second phone number where people can call you. For example, if Grandma and Grandpa happen to be in another state and still have an old fashioned telephone, you might consider adding an additional DID to your system in their area code. They then can make a local call to reach you by dialing the local DID. On the les.net pay-as-you-go plan, it costs less than a dollar a month plus a penny a minute for the calls. Money well spent if we do say so... and you'll sleep better.

If this setup looks a bit complicated, don't be intimidated. Remember, we're connecting your PBX to the rest of the world so people can call you! With les.net, you have a choice of rate plans for most DIDs. You either can pay $3.99 a month for unlimited inbound calls with two concurrent channels or 99¢ per month and 1.1¢ per minute with four concurrent channels. Just visit their site and click Signup to register. Once you are registered, click Login and then Order DIDs. Pick a phone number. Then click Peers/Trunks and Create New Peer. Write down the Peer Name as you will need it in a minute to set up your connection. Choose SIP for Peer Technology, RFC2833 for DTMF Mode, G.711 for Codecs, Registration for Peer Type, enter the public IP address of your server for Peer Address, make up a secure password and write it down also, specify an Outbound CallerID for your calls, and check the 10-digit dialing box. Leave voicemail unchecked since you'll handle this on your end. Save your changes.

Now choose Your DIDs and click on the one you just ordered. We now need to tie the phone number to the Peer setup you just created above. Click on the DID and select the Route to Peer which you just created. Check the Send DID Prefix box and leave everything else blank. Click Save Changes and you're finished at the les.net end. Now let's set up your inbound DID trunk in Asterisk using FreePBX.

Log into FreePBX using a web browser. Click Setup, Trunks and then Add SIP Trunk. Fill in the CallerID and then drop down to the Outgoing Settings section of the form. For Trunk Name, use the Peer Name that you created above and wrote down. It ought to look something like this: 1092832198. For Peer Details, enter the following using the Peer Name and Password you assigned at les.net:

canreinvite=no
context=from-trunk
fromuser=1092832198
host=did.voip.les.net
insecure=port,invite
nat=yes
secret=yourpassword
type=peer
username=1092832198

For Incoming Settings, use from-pstn for the User Context and enter the following User Details:

canreinvite=no
context=from-pstn
dtmfmode=rfc2833
insecure=port,invite
nat=yes
type=user

For the registration string, enter a string like the following using your Peer Name and Password:

1092832198:yourpassword@did.voip.les.net/1092832198

Now click the Submit Changes button and then Apply Configuration Changes and Continue with Reload.

Choosing a VoIP Provider That Supports Faxing. We've included a reliable fax solution in this build, and we'll cover all the details soon. We do want to give you a head start if you plan to use your new machine to handle inbound faxes. To test your machine, you can connect a real fax machine to one of the lines on an SPA-2102. Then send a fax to extension 329 (F-A-X). But first you must configure your email address in two places using FreePBX: Setup, General Settings, Email address to have faxes emailed to AND Setup, Inbound Routes, any DID / any CID, fax Email. Once you've saved your settings, send the fax and see if it's delivered to your email address. If it works reliably, then the fax and email applications on your machine are configured correctly. Unfortunately, that's only half the battle. To receive faxes from outside your system, you'll also need a DID from a provider that supports faxing. And then it's still only about a 90% proposition... on a good day. We've tested this with many, many VoIP providers. Some work. Many don't. Some, such as Vitelity, offer a faxing service for a fee. Guess what? Their regular VoIP setup doesn't support faxing. Our old friends at Telasip.com still support faxing. We've also had good luck with Future-Nine and Teliax. You can read the beginnings of our fax dissertation here for more details. With the exception of the trunk setup covered in the article, all of the remaining setup steps already have been completed on your new server!

Interconnecting Two Asterisk Servers. We've preconfigured this build to support an IAX interconnect to a second PBX in a Flash system. The trunk setup for the second machine to match the setup on this build can be printed out. The filename is /root/MainPeerTrunkSetup.gif.

Choosing a Preferred Provider. Finally, you'll need to decide whether to use PIAF-USA or AOL or Vitelity as your primary terminations provider. HINT: We're the cheapest! So we've set things up this way. This is handled in FreePBX in the Outbound Routes tab under the Default entry. You can adjust easily these in any way you like by adding trunks or moving entries up and down the list to change their priority. Just be sure to leave ENUM at the top of the list since ENUM calls are always free. If a free call isn't possible, your server will automatically drop down to the next trunk in the priority list. Don't add Vitelity to the list unless you have actually created a Vitelity account since they handle unsuccessful connections in a non-standard way which will cause FreePBX not to drop down to the next trunk to attempt a connection.

Activating the Stealth AutoAttendant for Inbound Calls. By default, all incoming calls are routed to the Day/Night Code 1 context which allows you to toggle calls between a Day setting and a Night setting by pressing *281. For builds before Rev. D, the Day setting for Code 1 is set to Ring Group 700 which rings all of the extensions on your system. If you'd prefer our Stealth Autoattendant which plays a brief greeting during which you can choose other options or direct dial extensions on your system before the call is passed to Ring Group 700, then edit Day/Night Code 1 and set the Day option to IVR: MainIVR.

A Word About Mondo Rescue. We would be remiss if we didn't mention what a fantastic open source product Mondo Rescue is. It's the sole reason that today's build was possible. Our special thanks go to the development team: Bruno Cornec, Andree Leidenfrost, and Hugo Rabson. It is the first (and only) backup software for Linux builds that actually works reliably. The best way to prove that for yourself is to download this build and try it for yourself on your Dell, dude. It has much more flexibility than what you will experience, but that would take another dozen pages to explain. We'll save that for another day. In the meantime, if you'd like more information, visit the Mondo Rescue web site.

What you need to know today is that the device name for your USB flash drive may differ from the setting of /dev/sdb1 that is preconfigured depending upon the Dude that built your Dell. If you have the Rev. D build (shown at the bottom of the DreamHost download site), simply log into your server as root and type: /root/usbdevice.sh. You're all set. With prior builds, to find out the identity of your USB stick, plug it into one of the front USB ports, log in as root, and type dmesg. Included in the output will be a section that looks something like this:

USB Mass Storage support registered.
Vendor: VBTM Model: Store 'n' Go Rev: 5.00
Type: Direct-Access ANSI SCSI revision: 00
SCSI device sdb: 2013184 512-byte hdwr sectors (1031 MB)
sdb: Write Protect is off
sdb: Mode Sense: 23 00 00 00
sdb: assuming drive cache: write through
SCSI device sdb: 2013184 512-byte hdwr sectors (1031 MB)
sdb: Write Protect is off
sdb: Mode Sense: 23 00 00 00
sdb: assuming drive cache: write through
sdb: sdb4

If the entry in bold above does not say "sdb1" then you have a little work to do. First, edit /root/usbcheck.sh and change sdb1 on the mount line to the sdb# entry shown above in bold. Save your change: Ctrl-X, Y, then Enter. Now edit /root/usbformat.sh and make the same change in the fdisk AND mkdosfs lines of the script. Save your changes. Finally edit /etc/asterisk/disk-backup.conf. Press Ctl-W and search for sdb1. Change the entry to the device name in bold above. Save your change. Now restart Asterisk with the command: amportal restart. Finally, format your new flash drive and you're ready to go: /root/usbformat.sh. Be sure to check your flash drive periodically to make certain you're getting backups: /root/usbcheck.sh.

Installing Cepstral on Your New Server. If you want real text-to-speech with Allison's familiar voice, then you'll need to buy Cepstral. It's dirt cheap for single, non-commercial use. To install it, there's still a problem with the script on your new machine unfortunately. Something has happened to Darren Sessions' archives, but luckily we still have backups. This has been fixed in Rev. D. Otherwise, to point to the uncorrupted version of the software, log in to your server as root and issue the following two commands:

sed -i 's|www.darrensessions.com/pub|pbxinaflash.net/source|' /root/install-cepstral
sed -i 's|www.darrensessions.com/pub|pbxinaflash.net/source|' /usr/local/sbin/install-cepstral

Then run install-cepstral from the command prompt. At one point you'll be asked whether to create a missing directory for the Cepstral installation. Be sure to type y at the prompt rather than just pressing the Enter key. Instructions for registering your copy of Cepstral are displayed when the install completes. For complete documentation, read our previous tutorial.

Addendum: Enabling Parking Lot. As configured, FreePBX gets confused by the 700 ring group thinking it is your default parking lot. To fix the problem, simply enable the Parking Lot feature from the FreePBX Setup tab. Click on the Enable checkbox, leave the default 70 extension to place calls in the parking lot, and choose a default location to which to send orphaned parking lot calls. Then everything works normally.

Where To Go From Here. Well, we've covered a good bit of territory today. When you're ready, move on to the second part of this article at the link below. In the meantime, you have a new phone system that works. And there are a number of PDF documents in the /root folder on your new system which are worth a read. Better yet, you can browse through all of the documentation which is available for PBX in a Flash by going here. You also can dial D-E-M-O on your new system and see just how powerful direct SIP connections can be to other Asterisk hosts (in this case, ours!)... at no cost. Finally, you can log into your server and type help-pbx for access to a treasure trove of additional features. Enjoy!

Continue reading Part II...


Some Recent Nerd Vittles Articles of Interest...

Friday, October 10, 2008

Orgasmatron II for Asterisk: A $199 Turnkey PBX Install in Under 15 Minutes, Part II

Filed under: — ward @ 4:00 am

We began our 15-minute adventure with a turnkey install of Asterisk onto either a $199 Everex gPC2 or a $199 Dell SC440 using a fully-customized version of PBX in a Flash. If you haven't yet read the first article, start there. In Part II, we want to cover what components are included and walk you through using most of them. When we're finished, you'll have a good idea why PBX in a Flash is not only different but also a quantum leap forward in the turnkey IP telephony marketplace. We'll also cover the new fax addition to this build as well as adding RAID 1 redundant drive support to your new gPC2 server (not the Dell) for about $40.

Putting Your Backup System Into Operation. Hopefully, you heeded our recommendation and purchased a $20 4GB USB flash drive to store backups of your new PBX in a Flash system. Cheap insurance! Now let's put it into production. In the /root folder of your new system, you'll find a PDF with complete documentation for the new Mondo Rescue backup system. If you flip to Appendix A, it will walk you through formatting your new flash drive for use with the backup software. If you'd prefer the easy way, log into your new server as root and type: /root/usbformat.sh. That's it. Your flash drive is now ready to make automatic backups of your entire system every Sunday night. Let's kick off one backup just to be sure everything is working. Log into your server as root and type /etc/cron.weekly/disk-backup.cron. Now go have a cup of coffee. When the command prompt returns in about 30 minutes, type /root/usbcheck.sh to get a listing of the files on your USB flash drive. Now you can sit back and relax knowing that every Sunday night a new full system backup will be loaded onto your flash drive. Should something go horribly wrong with your main drive down the road, it's a simple matter to burn CDs of the ISO backup images and reload everything, the same process you used to build your new system in the first place. Remember, we provided you