The Most Versatile VoIP Provider: FREE PORTING

Just Say No: Hidden BOTs and Asterisk Don’t Mix

You may have read that a user discovered last week that current trixbox systems as recently as today include a remotely-configurable BOT, a software program that can execute certain commands locally once it receives its instructions. Reportedly, trixbox’s registry.pl "phones home" to Fonality via the Internet at 3:41 a.m. each morning to get a list of Linux commands to run. It then executes those Linux commands on your server while you’re sleeping. If the assertions of trixbox end users are true and we have no reason to believe otherwise, the existence of this remotely-configurable BOT had never been disclosed to unsuspecting users whether they were individuals or corporations. In fact, it doesn’t appear that even trixbox resellers were aware of the existence of the remotely-configurable BOT.

Let me hasten to add that Chris, Andrew, and Kerry have been good business partners of Nerd Vittles for years even though I’ve never personally met any of them. So I would never suspect that any one of them would use a tool like this for improper purposes. Our objection is more fundamental and goes to the existence of the tool itself and the failure to disclose it. Unfortunately, a remotely configurable BOT with root access privileges is a bit like giving someone a blank check… with your signature affixed. And it’s worse in this case because users had no notice that they were handing over the keys to their castle by installing and using trixbox. One can’t help wondering if Fonality management really grasps how dangerous such a system design is in this day and age. This isn’t about the commands that Fonality was executing. It’s about the commands that could be executed if this system were ever compromised. We have daily logs full of attempts to hack our systems using, you guessed it, remotely controlled BOTS.

We don’t for a minute believe that Chris Lyman and other senior management of Fonality knew about this in advance, but they certainly know now! The problem is that many programmers, in attempting to perfect the world’s finest software app, fail to consider what would happen if a tool like this one got into the wrong hands, for example the hands of a disgruntled employee. Unfortunately, just about every organization has at least one not-so-happy camper, and companies usually don’t know how dangerous such employees are until it’s too late. We obviously have no idea what safeguards Fonality may have put in place to monitor access and prevent abuse of this tool. For everyone’s sake in the Asterisk® community, we would hope LOADS OF THEM! A security breach at Fonality would basically hand over all of these trixbox systems for remote command execution as root. Or, if anyone’s DNS system is compromised, affected trixbox servers are now everyone’s worst nightmare. Hello!!!

As with many business decisions presented to organizations, the balancing act here is whether the benefits of collecting what have been represented to be marketing and usage statistics outweighed the risks if your absolute worst imaginable scenario came to pass. Merely revealing the existence of this tool made most folks shudder. And it’s still in operation. Remember, any Linux command or application could be executed with root privileges using this BOT. Take a look at the 25+ pages of comments on the trixbox forum, Google’s VoIP Users Conference, VOIPSEC, and now Slashdot if you have any doubts about the user reaction. Do we really think the crackers of the world can’t read? Is this what we want folks to remember when they hear about Asterisk?

Now imagine control of a tool like this getting into the wrong hands where someone could actually compromise the security of outside companies that knew nothing about its existence. All it took to execute commands on every newly-deployed trixbox server in the world was creation of a list of commands presumably stored on a server within the Fonality organization somewhere. Now you can appreciate how threatening a software design decision can be.

Having a hard-coded reporting mechanism that everyone is notified about up front was one thing, and that’s where this collection process began with trixbox 2. But it morphed into an open-ended, remotely-configurable BOT. And that is something quite different and downright dangerous. Suffice it to say, if we ever hope to seriously introduce Asterisk into the business community, there’s no room for BOTs in the equation, much less hidden ones. No business would knowingly tolerate an open-ended, remotely configurable BOT running on any server inside its corporate firewall, particularly one with the breadth of Linux applications at its disposal that one would normally find on trixbox systems.

This clever software should have been reviewed by senior management before it ever saw the light of day. The episode gives all of us a golden opportunity to stop and think about what we’re doing and what our fundamental obligations are to those who use our code. Hopefully, Fonality will turn this BOT off… permanently! The problem, of course, is that it’s hard to unring a bell. This BOT is already in the wild. Luckily there’s a very quick solution in this case. Here’s the command that should be added to tomorrow morning’s Fonality script: rm -f /var/adm/bin/registry.pl. We’ll all sleep better.

We hope everyone in the Asterisk development community will make a pledge to be open about the existence and scope of any future data collection processes associated with Asterisk offerings. Then users can make an informed choice on whether to use your software. A new trixbox forum member put it this way:

There is an understanding between users and developers. The understanding is often tacit but is nonetheless there. The understanding goes, "I will be executing something you wrote. I do not have the time/ability to check it all, but as professionals, I expect you to behave in a manner befitting that trust." –Minupla

We couldn’t have said it better. As for our own software, we want to be crystal clear: No Remotely-Configurable BOTs Ever! They have no legitimate purpose when weighed against the very substantial security risks they pose to all of us.

Full Disclosure. With the help of some very talented partners, Nerd Vittles now has an Asterisk-based PBX offering of its own, PBX in a Flash. It arguably "competes" against Fonality’s trixbox ce even though both offerings are free for the taking. Having written over 100 columns touting the beauties of trixbox, we felt some obligation to warn our users who may have upgraded to a more recent version of Fonality’s software. You may also want to review this article from Philippe Lindheimer, the lead developer of FreePBX.


Some Recent Nerd Vittles Articles of Interest…

Ho, Ho, Ho: Some Asterisk Stocking Stuffers from Santa

As if we haven't given you enough Christmas presents already, today we have another stocking-full of goodies that you can add to your new PBX in a Flash lean, mean Asterisk® machine. Remember the Nerd Vittles promise when we began this adventure a month ago? No Bloatware and No Bugs. We promised to provide a rock-solid, ultra-reliable Asterisk platform that could be embellished with scripts to meet your every need. We think we've already delivered the ultimate Asterisk development platform. And with over 20,000 downloads in the first month, we're pretty thrilled with the response. There seems to have been a little pent-up demand. Heh, heh! You can, of course, make up your own mind. Just visit the PBX in a Flash Download Site and join the party. It's free and completely open source so that you can add all the bells and whistles you like without begging someone else to make the changes for you. And, yes, there's loads of documentation from a step-by-step installation guide with pretty pictures to our soup-to-nuts article that'll have you up and running in about 30 minutes. And there's the new Nerd Vittles Forum with lots of tips and tricks from the whiz kids. But that's only the beginning of the fun.

The real beauty of PBX in a Flash is the ease with which you can customize it to meet your every need. And today we again throw our financial aspirations to the wind and offer you a stocking full of free add-on scripts that'll really make your nerdy pals drool. For today only, we'll call them Apps-in-a-Flash. Going forward, they're just plain old scripts. Most of these scripts will only work on PBX in a Flash systems because we want to be sure that folks using these scripts have a reliable, solid base on which to run our goodies. We also need to know how your system is configured to write the scripts. And what's so special about Apps-in-a-Flash? Well, all of these scripts install turnkey applications in under a minute flat. Of course, if you prefer a shaky platform on which to build your telephony applications, there still are plenty of other options out there for you. But, when it comes to the ultimate script site for Asterisk, we've got you covered with our all-new PBX in a Flash Script Site. Catchy name, huh? And we've got some new scripts for you today that haven't even been posted on the site yet. You may also want to visit the Best of Nerd Vittles script repository from time to time, or just sign up for the RSS Feed to stay updated automatically.

Text-to-Speech Returns! If you've been following Nerd Vittles for a while, you already know that our favorite applications for any telephony server are text-to-speech apps. The idea behind all of these applications is that you can pick up a phone to find out the same information that you could obtain with a web browser, or a television, or a radio... only faster as in instantaneous. These applications also free you from the home sofa. You can dial in for the information using almost any telephone from anywhere in the world. Well, that was the theory. For those that have endured the last year of kitchen-sink Asterisk implementations, you also know that text-to-speech was the first casualty in the migration from CentOS 4 and Asterisk 1.2 to CentOS 5 and Asterisk 1.4. Well, guess what? We've finally resolved the choppy sound glitch and text-to-speech and Flite are back with PBX in a Flash, and soon we'll have support for other text-to-speech applications as well.

Bluetooth Is Back! The other casualty in the migration to CentOS 5 and Asterisk 1.4 was Bluetooth support. That was really unfortunate because CentOS 5 has incredible Bluetooth support, and it even works with virtual applications such as VMware. And why does Bluetooth matter? Well, for long-time readers of Nerd Vittles, you'll recall that we first introduced Follow-Me Phoning several years ago. In the trade, it's known as Proximity Detection. The idea here is that, when you're in your home or office carrying your Bluetooth cellphone, your calls ring on your local phones. And, when you leave your home or office with your cellphone in hand, your Asterisk server automatically transfers your incoming calls to your cellphone. With the latest version of FreePBX which is included in all PBX in a Flash installations, you can activate Follow Me Phoning in under 5 minutes. Step 1 is to read our latest article that explained how to install everything. You can ignore the parts about needing an Asterisk 1.2 server or activating Bluetooth. We've solved all of that for you with PBX in a Flash out of the box. All you really need to do is download our Bluetooth script and configure it with your telephone extension number and the number of your cellphone. Add one line of code to your cron jobs, plug in a DBT-120 Bluetooth dongle, and it just works. The really good news is that DBT-120's used to cost $30-$40. Now there is a generic clone called Vista 2.0 which we have tested that works just as well for $1.99 plus the usual $5.99 shipping gouge. Here is the eBay link.

Welcome Home to the Asterisk Weather Station. If you've missed dialing in for a quick weather report from your Asterisk server this past year, the wait is finally over. Today, Nerd Vittles is proud to announce the return of all three of our weather applications for Asterisk: Weather by Airport Code, Weather by Zip Code, and International Weather Forecasts. There's one major difference this time around. With PBX in a Flash and our three weather scripts, you can install all three applications in less than one minute each. In fact, you'll probably spend more time typing the commands to execute the scripts than it will take the scripts to run. So let's get started. For each of these installs, simply log into your PBX in a Flash server as root and execute the commands shown below. Two words of caution: First, only run each script once on the same server. These scripts do lots of stuff behind the scenes including populating MySQL databases and modifying your Asterisk config files. So, if you run the same script more than once, you will most assuredly get a mess. Second, if you have changed your default password for MySQL, you will need to edit these scripts and insert your new password before running them.

Asterisk Weather Reports by Airport Code. After logging into your PBX in a Flash server as root, here are the commands to execute to install this application:

cd /root
wget http://bestof.nerdvittles.com/applications/weather-airport/weather.pbx
chmod +x weather.pbx
./weather.pbx
amportal restart

To use this application, pick up any phone on your PBX in a Flash system and dial 611. Then enter the three-character airport code for the weather report you wish to retrieve. Keep in mind that there are a lot more airport codes than letter combinations on your phone so we had to make some choices. You can change these if there are missing airports that you care about. Complete documentation is available on our Best of Nerd Vittles web site. Installation time: under 15 seconds.

Asterisk Weather Reports by Zip Code. After logging into your PBX in a Flash server as root, here are the commands to execute to install this application:

cd /root
wget http://bestof.nerdvittles.com/applications/weather-zip/weatherzip.pbx
chmod +x weatherzip.pbx
./weatherzip.pbx
amportal restart

To use this application, pick up any phone on your PBX in a Flash system and dial Z-I-P (947). Then enter the five-digit U.S. zip code for the weather report you wish to retrieve. No configuration of this application is really necessary. Complete documentation is available on our Best of Nerd Vittles web site. Installation time: about 30 seconds. Sorry it's so slow, but we're loading the entire zip code data base for the United States into MySQL.

International Weather Forecasts for Asterisk. After logging into your PBX in a Flash server as root, here are the commands to execute to install this application:

cd /root
wget http://bestof.nerdvittles.com/applications/weather-world/weatherworld.pbx
chmod +x weatherworld.pbx
./weatherworld.pbx
amportal restart

To use this application, pick up any phone on your PBX in a Flash system and dial 612. Then enter the one-digit code for the weather forecast you wish to retrieve. This application comes preconfigured for the ten international cities shown below. Here are the default city codes:

0. Tokyo
1. Washington
2. Berlin
3. Florence
4. Gough Island
5. London
6. Moscow
7. Sydney
8. Toronto
9. Zurich

You can easily change these to meet your needs. Complete documentation is available on our Best of Nerd Vittles web site. Installation time: under 15 seconds.

Yahoo NewsClips for Asterisk. After logging into your PBX in a Flash server as root, here are the commands to execute to install this application:

cd /root
wget http://bestof.nerdvittles.com/applications/newsclips/newsclips.pbx
chmod +x newsclips.pbx
./newsclips.pbx
amportal restart

To use this application, pick up any phone on your PBX in a Flash system and dial 511. Then enter the one-digit code for the news headlines you'd like to hear. This application comes preconfigured for nine Yahoo news feeds. These can be customized to meet your own requirements. Here are the default news feeds:

1. Top Stories
2. Sports
3. Technology
4. Showbiz
5. Business
6. Politics
7. Most Read
8. Most Sent
9. Hurricanes

Complete documentation and customization tips are available in this Nerd Vittles article. Installation time: under 15 seconds.

AsteriDex for PBX in a Flash. After logging into your PBX in a Flash server as root, here are the commands to execute to install this application. Only use this script if you live in the United States and can place outbound calls on your server by dialing 1-areacode-phonenumber. Otherwise, install the software manually using our Best of Nerd Vittles tutorial.

cd /root
wget http://bestof.nerdvittles.com/applications/asteridex4/asteridex.pbx
chmod +x asteridex.pbx
./asteridex.pbx
amportal restart

AsteriDex, as you may know, is The Poor Man's Rolodex. It has an easy-to-use web interface which you can access by pointing your web browser to the IP address of your web site. Then click the Administration tab and click on the AsteriDex button. Or you can go directly to the site: http://ipaddress/asteridex4/. You now can set the phone on your system to use for placing calls from within the web interface. If you want to access the AsteriDex directory from your cellphone and you've enabled web access through your firewall, here's the link: http://publicIPaddress/cellphone/. There's also a speed dialer which is explained in the documentation.

Complete documentation and customization tips are available in this Best of Nerd Vittles article. Installation time: under 15 seconds.

Needy Nerd's Fund. As long time readers know, we don't often solicit donations. But these are special times, and we need some help. The new Nerd Vittles Forum is already a big hit. While it uses very little bandwidth, it's a huge processor hog. We really need something other than a shared host on which to run this forum. There are a couple ways you can help. First, you can click on the Donate link at the top of this page and chip in even a little bit so that we can lease a dedicated server. Or, if you happen to be in the hosting business, you could provide a dedicated server in exchange for some terrific advertising on the Nerd Vittles site. Most of our readers have deep pockets. We're just frugal. So now's the time that you can really make a difference in this project. Thanks in advance for your help.

That's All Folks. Well, there you have it. We're going to take a breather for a few weeks. Enjoy all your new goodies. The Nerd Vittles crew wishes you a very Merry Christmas. We may slip in a few more surprises between now and New Year's, or we may not. Just check out the Nerd Vittles forum once in a while for late-breaking tips and tricks. And maybe we'll throw in another script or two as well. Enjoy!


Some Recent Nerd Vittles Articles of Interest...

Asterisk on Steroids: PBX in a Flash Turns 21

In honor of the 21st birthday of PBX in a Flash, we are proud to introduce version 1.1. Yep, PBX in a Flash turns 21 today. That’s 21 as in days old. Joe Roper and Tom King have put together a special birthday bundle for you. On the ISO side, we have a new version 1.1. It still relies upon CentOS 5 which is extremely stable. And, yes, we know that CentOS 5.1 has just been released. If you’ve been following along the last few weeks, then you already know that the PBX in a Flash design is different. You don’t get the kitchen sink in the ISO. Instead you get a rock-solid base operating system on which to build your Internet telephony server. When your server reboots after installation of the ISO, we then download a payload file that compiles Asterisk®, installs FreePBX, and puts you in business. For anything else you choose to add, simply download and run a script. The design theory is simple: No Bloatware and No Bugs!

Update: Much has happened in the 2+ years since this article was first published. If you’re just getting started with Asterisk and VoIP telephony, please take a look at our most recent article for the latest and greatest. Thanks for visiting. –wm

Today we’re proud to introduce the 1.1 release of PBX in a Flash for Linux, Windows, and Macs. It’s a lean, mean Asterisk machine designed to meet the needs of hobbyists as well as business users. And there’s nothing "beta" about PBX in a Flash. That explains why we’re averaging over 1,000 downloads of the ISO per day. So now we have invested 3 weeks in development and 3 weeks in production. Give it a try and see what you’ve been missing. Text-to-speech works, Bluetooth works, the platform is open, the install scripts are available for your use and modification. And PBX in a Flash is rock-solid reliable on Day 21 for a production environment.

For the early adopters, there’s always the question, "Should I upgrade?" Well, the answer is "No." If you’ve added the additional sound files and applied the two-line tweak to get rid of our one and only bug, you’ve already got a near perfect system. Here’s the link to read about any reported bugs. This version does add Asterisk 1.4.15, but the security fixes won’t affect you unless you’re using Postgres with Asterisk. And you can always upgrade Asterisk independently. Keep reading to see how easy it is! For the complete list of additions, see this message thread on the Nerd Vittles Forum.

That’s just half of the story for this birthday bash, of course. While Joe Roper has been tweaking the ISO and payload files to get them just about perfect, Tom King has been turning out some unbelievable scripts for PBX in a Flash. Take a tour of the PBX in a Flash Script Site. You won’t be disappointed. Ever wrestled with updating Asterisk on another all-in-one system? Then you know what an absolute nightmare it used to be. Not any more! Tom’s new Update Source script gets you the latest and greatest version of Asterisk any time you want it. In fact, you can download the script and use it over and over. It will always download, compile, and install the latest version of Asterisk on your PBX in a Flash system, and you’ll be back in business in about 15 minutes. And, if you’re like us, the #1 Missing Component in every other Asterisk implementation has been a way to make a mirror-image backup of your whole system that can be easily restored when there’s a system failure. There’s nothing quite like building a new PBX from scratch when your entire company has lost their phone service. Well, worry no more. Those days are behind you. For PBX in a Flash systems only, there now is a Full Backup Script that builds you a mirror image of your system in ISO format on a collection of CDs or DVDs, or on a separate USB drive, or on a Windows share, or on a remote FTP site. Your choice! And, when the dreaded day arrives, replace the failed component and boot up from the rescue disk and, presto, you’re back in business.

So, if you’re new to PBX in a Flash, keep reading. Otherwise, stop here and check back next week when we’ll begin the transition of all our previous Nerd Vittles applications to PBX in a Flash.

As mentioned above, our design model differs from other Asterisk implementations. The .iso download gives you a rock-solid CentOS 5 Linux implementation which is designed for installation on a dedicated machine. Yes, your hard disk will be erased. Once Linux is installed, the system will reboot and fetch the latest, greatest collection of add-on’s. Once the install completes, you’ll have a high-performance turnkey Asterisk PBX that’s easy to upgrade with a simple migration path to either managed PBX service or hosted PBX service. You never have to migrate if you don’t want to, and the stand-alone product will always have virtually identical functionality minus the peace of mind that comes with managed or hosted PBX service. In short, the stand-alone product isn’t ever going to be crippleware to entice you to migrate. We’ll have more about the managed and hosted options in coming weeks. There also will be a script shortly to transform your system from a solid, lean run-time system into an Asterisk development platform. In the meantime, PBX in a Flash includes Asterisk 1.4.15, FreePBX 2.3.1, Apache, MySQL, PHP, phpMyAdmin, SendMail, Perl, Flite, and much more. You also can choose from dozens of upcoming scripts to add all of the Nerd Vittles goodie bag: AsteriDex, Weather Reports, News Feeds, Email by Phone, TeleYapper, Telephone Reminders, Podcasts by Phone, and on and on. There will also be fax support, turnkey phone scripts, hosting providers with free DIDs and minutes to get you started, and lots of new stuff from developers who already are working on compatible add-on’s. You add features when you need additional functionality. Otherwise, you skip the bloatware. And you can add your own feature requests to the growing Wish List on the Nerd Vittles Forum. Visit today and sign up. Just like everything else at Nerd Vittles, it won’t cost you a dime.

For those that don’t have a dedicated Linux machine, we’ve got a VMware version of PBX in a Flash for you today as well. It’ll run on almost any fairly new Windows XP or Vista Desktop as a virtual Linux server. You can even run it as a virtual machine on a Linux desktop. Just download and install the free VMware Player. For Mac users, you’ll have to buy and install VMware Fusion. Then download and unzip pbxinaflash.zip (4K) into C:\pbxinaflash. The directory name is important, or nothing will work! Next, download the pbxinaflash.iso into C:\pbxinaflash from your favorite download site. Now open Windows Explorer and double-click on the .vmx file in your C:\pbxinaflash folder. And presto! You’ve got a PBX in a Flash… about 30 minutes to be exact. That wasn’t too hard, was it?

For those with a dedicated Linux machine, our goal today is to get everyone off on the right foot with a clean, reliable install. If you have problems with the install or spot a bug, post your questions and suggestions on the Nerd Vittles Forum. We can’t stress strongly enough that this is a collaborative adventure, and you are cordially invited to participate as not only a user but also a contributor. Whether that contribution takes the form of developing scripts or merely contributing bandwidth for .iso downloads, all of us will appreciate your efforts! Nerd Vittles hosts the payload files, the blog, and the message forum. Tom King hosts the PBX in a Flash script collection. And a group of terrific Nerd Vittles supporters now host all of the free ISO downloads. All ISO images include a checksum to make it easy for you to verify that you have The Real McCoy. At the initial installation prompt, you also can type linux mediacheck and press the <Enter> key to verify that you have a reliable CD. The size of the 1.1 ISO image is 678,385,664 bytes. And the MD5 checksum is 058a25fe23b7d1dc4265a2de2e28d8db.

Download Tips. We want to apologize for the difficulties some of you are experiencing downloading our new baby. There are LOTS of you! We are averaging over 1,000 downloads a day so, if at all possible, please use BitTorrent. It’s actually faster. Many have reported download times of under 15 minutes! In fairness to everyone, we have taken the following steps to improve the reliability of the install process. We now have six free download sites in operation with more to come. You also can obtain a free torrent as well as the VMware modules and install scripts from pbxinaflash.net and most of the other sites. If all of the free download sites are busy, we have put up a pay-as-you-go download site as well. The way this works is that you pay $5 with a credit card to download the ISO. You then can email the link to a friend who pays nothing for the download. When that friend releases the link that is provided, you can give it to another friend at no cost. Only the original download is not free, but it is dirt cheap and provides lots of backup bandwidth. So, if you get in a crunch, spring for the $5. Otherwise, check back at a different time of day and try again. Or better yet, use the torrent. The more torrents that are seeded, the easier this will be for everyone.

Getting Started with PBX in a Flash. Just like all the other offerings, you need to begin this adventure by downloading the ISO image for PBX in a Flash (646.96 MB). As new locations for ISO downloads come on line, we will add them to the download list. Just click on the location nearest to you. Once you’ve got the image in hand, use your favorite tool to burn it to a bootable CD. You’re going to need a dedicated PC for this installation unless you’re using VMware to run PBX in a Flash on your Windows or Mac desktop. A current PC in the $200-$300 price range from your favorite Big Box store should perform nicely as a dedicated Linux machine. We recommend at least 512MB of RAM and more won’t hurt. And, remember, your hard disk will first be erased by this install. You’ve been warned… twice.

On the machine you wish to use for your new PBX in a Flash system, insert the CD containing the pbxinaflash.iso and then reboot. After reading the initial prompts and warnings, press the Enter key to begin the installation. Or, if you want to first check the media for corruption, type linux mediacheck and then press the <Enter> key. For Windows users, be sure you’re doing this in the VMware window on your Desktop and not on the main screen of your PC! Erase the existing partition and accept the default for the partition layout when prompted. Then choose your time zone and leave the UTC system clock option unchecked. Next choose a root password for your new system. Make it secure, and write it down. We plan to use this password for virtually everything on your new system. The install process begins. This includes MySQL, Apache, PHP, CUPS, Samba, WebMin, Subversion, SendMail, Yum, Bluetooth support, SSL, Perl, Python, the kernel development package, and much more. In about 15 minutes depending upon the speed of your PC, the install will pause to allow you to eject the CD. Click the Proceed button to continue. After reboot, the system will start up with CentOS 5, then download and install Asterisk and FreePBX, and search for the necessary installation script and payload file on pbxinaflash.net. If you don’t have Internet connectivity, then the installation cannot complete. When the installation finishes, reboot your system and log in as root. The IP address of your PBX in a Flash system will also be displayed once you log in. Write it down, too. We’ll need it in a minute.

Now that you’ve logged in as root, you should see the IP address displayed with the following command prompt: root@pbx:~/. If instead you see bash displayed as the command prompt and it’s not green, then the installation has not completed successfully. This is probably due to network problems but also could be caused by the time being set incorrectly on your server. You can’t compile Asterisk if the time on your computer is a date in the past! For this glitch you have to start over. If it’s a network issue, fix it and then reboot and watch for the eth0 connection to complete. Assuming it doesn’t fail the second time around, the installation will continue. Likewise, if you do not have DHCP on your network, the installation will fail because the PBX will not be given an IP address. Simply type netconfig, fill in the blanks and reboot. The install will recommence. You can obtain the IP address of your server at any time by issuing the ifconfig command.

Required Steps to Complete the Install. There are three important things to do to complete the installation. First, from the command prompt, run genzaptelconf. This sets up your ZAP hardware as well as a timing source for conferencing. Second, decide how to handle the IP address for your PBX in a Flash server. The default is DHCP, but you don’t want the IP address of your PBX changing. Phones and phone calls need to know how to find your PBX, and if your internal IP address changes because of DHCP, that’s a problem. You have two choices. Either set your router to always hand out the same DHCP address to your PBX in a Flash server by specifying its MAC address in the reserved IP address table of your router, or run netconfig at the command prompt and assign a permanent IP address to your server. If you experience problems with the process, see this message thread on the forum. The third configuration requirement probably accounts for more beginner problems with Asterisk systems than everything else combined. Read the next section carefully and do it now!

Getting Rid of One-Way Audio. There are some settings you’ll need to add to /etc/asterisk/sip_custom.conf if you want to have reliable, two-way communications with Asterisk: nano -w /etc/asterisk/sip_custom.conf. The entries depend upon whether your Internet connection has a fixed IP address or a DHCP address issued by your provider. In the latter case, you also need to configure your router to support Dynamic DNS (DDNS) using a service such as dyndns.org. If you have a fixed IP address, then enter settings like the following using your actual public IP address and your private IP subnet:

externip=180.12.12.12
localnet=192.168.1.0/255.255.255.0      (NOTE: The first 3 octets need to match your private IP addresses!)

If you have a public address that changes and you’re using DDNS, then the settings would look something like the following:

externhost=myserver.dyndns.org
localnet=192.168.0.0/255.255.255.0      (NOTE: The first 3 octets need to match your private IP addresses!)

Once you’ve made your entries, save the file: Ctrl-X, Y, then Enter. Reload Asterisk: amportal restart. If you assigned a permanent IP address, reboot your server: shutdown -r now.

Activating Email Delivery of Voicemail Messages. We’ve previously shown how to configure systems to reliably deliver email messages whenever a voicemail arrives unless your ISP happens to block downstream SMTP mail servers. Here’s the link in case you need it. As it happens, you really don’t have to use a real fully-qualified domain name to get this working. So long as the entry (such as pbx.dyndns.org) is inserted in both the /etc/hosts file and /etc/asterisk/vm_general.inc with a matching servermail entry of vm@pbx.dyndns.org (as explained in the link above), your system will reliably send emails to you whenever you get a voicemail if you configure your extensions in freePBX to support this capability. You can, of course, put in real host entries if you prefer. For 90% of the systems around the world, if you just want your server to reliably e-mail you your voicemail messages, make line 3 of /etc/hosts look like this with a tab after 127.0.0.1 and spaces between the domain names:

127.0.0.1     pbx.dyndns.org pbx.local pbx localhost.localdomain localhost

And then make line 6 of /etc/asterisk/vm_general.inc look like the following:

serveremail=voicemail@pbx.dyndns.org

Now issue the following two commands to make the changes take effect:

service network restart
amportal restart

The command "setup-mail" can be used from the Linux prompt to set the fully-qualified domain name (FQDN) of the mail that is sent out from your server. This may help mail to be delivered from the PBX. One of things mail servers do to reduce spam is to do a reverse lookup on where the mail has come from, checking that there is actually a mailserver at the other end. You can only do this if you have set up dynamic DNS or if you have pointed a hostname at your fixed IP address. Once you have done this, and assuming your ISP is cooperative, then you will receive your voicemails via email if you wish (this is set within FreePBX),and your PBX will email you when FreePBX needs an update. You set this feature in FreePBX General Settings.

If your hosting provider blocks downstream SMTP servers to reduce spam, here’s a link on the PBX in a Flash forum to get you squared away.

Setting Passwords and Other Stuff. While logged into your server as root, you can configure many of the ‘lesser’ passwords on your system (i.e. those passwords with less than root privileges) as well as phones, ZAP hardware, and other goodies. The only command you have to remember is help-pbx. Be aware that there are four different usernames and passwords that are enforced in the web interface to your PBX:

maint... to go everywhere
wwwadmin... for users needing FOP and MeetMe access
meetme... for users needing only MeetMe access
FreePBX... default username:password for admin access is admin:admin

Configuring WebMin. WebMin is the Swiss Army Knife of Linux. It provides TOTAL access to your system through a web interface. Search Nerd Vittles for webmin if you want more information. Be very careful if you decide to enable it on the public Internet. You do this by opening port 9001 on your router and pointing it to the private IP address of your PBX in a Flash server. Before using WebMin, you need to set up a username and password for access. From the Linux prompt while logged in as root, type the following command where admin is the username you wish to set up and foo is the password you’ve chosen for the admininstrator account. HINT: Don’t use admin and foo as your username and password for WebMin unless you want your server trashed!

/usr/libexec/webmin/changepass.pl /etc/webmin admin foo

To access WebMin on your private network, go to http://192.168.0.123:9001 where 192.168.0.123 is the private IP address of your PBX in a Flash server. Then type the username and password you assigned above to gain entry. To stop WebMin: /etc/webmin/stop. To start WebMin: /etc/webmin/start. For complete documentation, go here.

Updating and Configuring FreePBX. FreePBX is installed as part of the PBX in a Flash implementation. This incredible, web-based tool provides a complete menu-driven user interface to Asterisk. The entire FreePBX project is a model of how open source development projects ought to work. And having Philippe Lindheimer’s as the Captain of the Ship is just icing on the cake. All it takes to get started with FreePBX is a few minutes of configuration, and you’ll have a functioning Asterisk PBX complete with voicemail, music on hold, call forwarding, and a powerful interactive voice response (IVR) system. There is excellent documentation for FreePBX which you should read at your earliest convenience. It will answer 99% of your questions about how to use and configure FreePBX. For the one percent that is not covered in the Guide, visit the FreePBX Forums which are frequented regularly by the FreePBX developers. Kindly post FreePBX questions on their forum rather than the PBX-in-a-Flash Forum. This helps everybody. Now let’s get started.

NOTE: PBX in a Flash comes with the IPtables firewall enabled on your system. If this causes problems with access to the FreePBX repository (for loading the FreePBX updates below), you can easily (and temporarily) turn off the firewall. Type help-pbx for assistance. Don’t forget to restart the firewall especially if your system has any Internet exposure!

Now move to a PC or Mac and, using your favorite web browser, go to the IP address you deciphered above for your new server. Be aware that FreePBX has a difficult time displaying properly with IE6 and IE7 and regularly blows up with older versions of Safari. Be safe. Use Firefox. From the PBX in a Flash Main Menu in your web browser, click on the Administration link and then click the FreePBX button. The username and password both default to admin. Click Apply Configuration Changes, Continue with Reload, and then Refresh your browser screen. Now click the Module Administration option in the left frame once FreePBX loads. Now click Check for Updates online in the upper right panel. Next, click Download All which will select every module for download and install. The important step here is to move down the list and Deselect Speed Dials and PHPAGI from the download and install options. You may also want to deselect Zork. Once these apps have been deselected, scroll to the bottom of the page and click Process, then Confirm, then Return once the apps are downloaded and installed, then Apply, then Continue with Reload. Now repeat the process once more and do not deselect the two applications, then Process, Confirm, Return, Apply Config Changes, and Continue with Reload. Finally, scroll down the Modules listing until you get to the Maintenance section. Click on each of the following and choose Install: ConfigEdit, Sys Info, and phpMyAdmin. Then click Process, then Confirm, then Return once the apps are downloaded and installed, then Apply, then Continue with Reload. All three of these tools now are installed in the Maintenance section of the Tools tab of FreePBX. One final step, and you’re good to go. An update of FreePBX has been released. Click Check for Updates online. Then choose Download and Upgrade for the Core, FreePBX Framework, and System Dashboard modules. Then click Process, then Confirm, then Return once the apps are downloaded and installed, then Apply, then Continue with Reload. You now have an up-to-date version of FreePBX. You’ll need to repeat the drill every few weeks as new updates are released. This will assure that you have all of the latest and greatest software. To change your Admin password, click on the Setup tab in the left frame, then click Administrators, then Admin in the far right column, enter a new password, and click Submit Changes, Apply Configuration Changes, and Continue with reload. We’re going to be repeating this process a number of times in the next section so… when instructed to Save Your Changes, that means "click Submit Changes, Apply Configuration Changes, and Continue with reload."

Choosing Internet Telephony Hosting Providers for Your System. Before you can place calls to users outside your system or to receive incoming calls, you’ll need at least one provider (each) for your incoming phone number (DID) and incoming calls as well as a provider for your outbound calls (terminations). We have a list of some of our favorites here, and there are many, many others. Within a few weeks, we also will have some providers that will offer you some free minutes for trying their service with PBX in a Flash. You basically have two choices with most providers. You can either pay as you go or sign up for an all-you-can-eat plan. Most of the latter plans also have caps on minutes, and there are none of the latter plans for business service. In the U.S. market, the going rate for pay as you go service is about 1.5¢ per minute rounded to the tenth of a minute. The best deal on DIDs is from les.net. They charge $3.99 a month for a DID with unlimited, free incoming calls. We will have a free offer from les.net for PBX in a Flash users shortly. Another new provider with excellent service and per minute rates is Aretta Communications out of Atlanta. They also have agreed to co-host our ISO downloads for the U.S. East Coast. Thanks, Aretta! WARNING: Before you sign up for any all-you-can-eat plan, do some reading about the service providers. Some of them are real scam artists with backbilling and all sorts of unconscionable restrictions. You need to be careful. Our cardinal rule in the VoIP Wild West is never, ever entrust your entire PBX to a single hosting provider. As Forrest Gump would say, "Stuff happens!" And life’s too short to have dead telephones, even if it’s a rarity.

Setting Up FreePBX to Make Your First Call. There are four components in FreePBX that need to be configured before you can place a call or receive one from outside your PBX in a Flash system. So here’s FreePBX for Dummies in less than 50 words. You need to configure Trunks, Extensions, Outbound Routes, and Inbound Routes. Trunks are hosting provider specifications that get calls delivered to and transported from your PBX to the rest of the world. Extensions are internal numbers on your PBX that connect your PBX to telephone hardware or softphones. Inbound Routes specify what should be done with calls coming in on a Trunk. Outbound Routes specify what should be done with calls going out to a Trunk. Everything else is basically fluff.

Trunks. When you sign up with most of the better ITHP’s that support Asterisk, they will provide documentation on how to connect their service with your Asterisk system. If they have a trixbox tutorial, use that since it also used FreePBX as the web front end to Asterisk. Here’s an example from les.net. And here’s the Vitelity support page although you will need to set up an account before you can access it. We also have covered the setups for a number of providers in previous articles. Just search the Nerd Vittles site for the name of the provider you wish to use. You’ll also find many Trunk setups in the trixbox Trunk Forum. Once you find the setup for your provider, add it in FreePBX by going to Setup, Trunks, Add SIP Trunk. Our AxVoice setup (which is all entered in the Outgoing section with a label of axvoice) looks like this with a Registration String of yourusername:yourpassword@sip.axvoice.com:

allow=ulaw
authname=yourusername
canreinvite=no
context=all-incoming
defaultip=sip.axvoice.com
disallow=all
dtmfmode=inband
fromdomain=sip.axvoice.com
fromuser=yourusername
host=sip.axvoice.com
insecure=very
nat=yes
secret=yourpassword
type=friend
user=phone
username=yourusername

And our Vitelity Outbound Trunk looks like the following (labeled vitel-outbound) with no registration string:

allow=ulaw&gsm
canreinvite=no
context=from-pstn
disallow=all
fromuser=yourusername
host=outbound1.vitelity.net
secret=yourpassword
sendrpid=yes
trustrpid=yes
type=friend
username=yourusername

Extensions. Now let’s set up a couple of Extensions 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 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 ... 1234
dtmfmode ... rfc2833
Voicemail & Directory ... Enabled
voicemail password ... 1234
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

Now create several more extensions using the template above: 202, 203, 204, and 205 would be a good start. Keep the passwords simple. You’ll need them whenever you configure your phone instruments.

Outbound Routes. The idea behind multiple outbound routes is to save money. Some providers are cheaper to some places than others. We’re going to skip that tutorial today. You can search the site for lots of information on choosing providers. Assuming you have only one or two for starters, let’s just set up a default outbound route for all your calls. Using your web browser, access FreePBX on your server and click Setup, Outbound Routes. Enter a route name of Everything. Enter the dial patterns for your outbound calls. In the U.S., you’d enter something like the following:

1NXXNXXXXXX
NXXNXXXXXX

Click on the Trunk Sequence pull-down and choose your providers in the order you’d like them to be used for outbound calls.Click Submit Changes and then save your changes. Note that a second choice in trunk sequence only gets used if the calls fails to go through using your first choice. You’ll notice there’s already a 9_outside route which we don’t need. Click on it and then choose Delete Route 9_outside. Save your changes.

Inbound Routes. We’re also going to abbreviate the inbound routes tutorial just to get you going quickly today. 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 recommend you first build a Ring Group with all of the extension numbers you have created. Once you’ve done that, choose Inbound Routes, leave all of the settings at their default values and move to the Set Destination section and choose your Ring Group as the destination. Now click Submit and save your changes. That will set up a default incoming route for your calls. As you add bells and whistles to your system, you can move the Default Route down the list of priorities so that it only catches calls that aren’t processed with other inbound routing rules.

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!

Tom King now has put together a detailed tutorial complete with screenshots to get you started with PBX in a Flash. If you are installation-challenged, have a look at the pretty pictures.

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 (the size of a pack if cigs) known as a Sipura SPA-1001. It’s under $60. 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 SPA-1001 into your LAN, and then plug your phone instrument into the SPA-1001. Your router will hand out a private IP address for the SPA-1001 to talk on your network. You’ll need the IP address of the SPA-1001 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 Sipura 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. 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 your extensions were set up starting with 201, do the following. Enter House Phone as the Display Name. Enter 201 as the User ID. Enter 1234 as the Password, 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. Pick up the phone and dial 1234# to test it out.

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 or the snom 360 Softphone which is a replica of perhaps the best IP phone on the planet. 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 value in the marketplace with excellent build quality and feature set (but probably not the best sound quality) is the $79 GrandStream GXP-2000. It has support for four lines, speaks CallerID numbers, has a lighted display, and can be configured for autoanswer with a great speakerphone. Some other great choices are the Aastra 9133i and the Siemans Cordless Dect phone. Do some reading before you buy. The Voxilla forums are a good place to start.

A Word About Ports. For the techies out there that want "the rest of the story" to properly configure firewalls, here’s a list of the ports available and used by PBX in a Flash:

TCP 80 - HTTP
TCP 9080 - Duplicate HTTP
TCP 22 - SSH
TCP 9022 - Duplicate SSH
TCP 9001 - WebMin
UDP 10000-20000 - RTP
UDP 5004-5082 - SIP
UDP 4569 - IAX2
UDP 2727 - Media Gateway

A2Billing Installation. Our first example of how we plan to build up PBX in a Flash systems is the installation script for A2Billing. If you want A2Billing installed on your system, then log in as root and type install-a2billing. If you don’t want A2Billing, then you don’t download or run the script. When you return to the main web page for your server after installing A2Billing, you will have two new links for A2Billing customers and A2Billing admin. You will have to install the callback funtionality manually from the docs supplied in the install. A2Billing was created by Areski, who some of you may know was responsible for Web MeetMe, ConfigEdit, and the CDR reports included with FreePBX. A2Billing is sufficiently comprehensive that it warrants an article on its own, so we will save that for another day. Some of the projects we will be looking into are how to pass calls from FreePBX to A2Billing for least-cost routing, departmental billing services, building a calling card server, and a VoIP termination platform. Then you can change your name to Ma Bell and start selling minutes to all the people for whom you have installed PBX-in-a-Flash. If you can’t wait, visit asterisk2billing.org.

Where To Go From Here. Our new script repository is now up and running at pbxinaflash.org. Tom King, the ultimate scripting guru is managing that site. So check it often. And now that PBX in a Flash 1.1 is out the door, we’re chomping at the bit to get all of the Nerd Vittles Goodies ported over. If you want to try one yourself, start with Weather by Airport Code which installs in under 5 minutes. Put your dialplan code in extensions_custom.conf, and be sure to heed the Asterisk 1.4 mod which is explained in the article. Hold off on AsteriDex because we have an updated version of that one for you within the next few weeks. If you still have a DBT-120 Bluetooth adapter, you’ll be happy to learn that it works out-of-the-box with both the Linux and Windows versions of PBX in a Flash. Dust off our two-year old articles on Proximity Detection and see if you can’t configure your system to transfer your phone calls to your cellphone when you leave the house carrying your Bluetooth cellphone. If not, we’ll walk you through it with an iPhone in coming weeks. Now spend some time reading up on FreePBX and enjoy your new toy. Santa came early this year!

Bug Fixes. We’re back down to zero bugs with PBX-in-a-Flash 1.1, but we wanted to provide a way to report them and to address them. So there’s a new PBX-in-a-Flash forum dedicated to bug reporting and fixes. Be sure to visit once in a while just to keep your system current.


Some Recent Nerd Vittles Articles of Interest…

Week #2: PBX in a Flash … The Lean, Mean Asterisk Machine

Doesn’t seem like only two weeks ago today that we introduced PBX in a Flash to the world. And there’s already been one reported bug. Not to worry. It was trivial. I do know that our development elves have been hard at it ever since the release date. Joe Roper, who is responsible for much of the initial offering, has fielded close to 1,000 questions on the forums while already developing content for the next ISO release. But it’s not as if there is any big hurry. As promised, the first release has been rock-solid reliable. Compare that to the other options out there in Telephony Land, and you’ll come to appreciate why PBX in a Flash has become a big hit for experimenters and Asterisk® consultants looking to rapidly deploy a stable, all-purpose telephony server. There already have been close to 10,000 downloads of PBX in a Flash from our download sites. And over half of those were using torrents with download times of under 15 minutes for the 628MB ISO. Finally, we have enough free bandwidth to support the worldwide demand. And our special thanks go to all the great Nerd Vittles supporters who have made that happen. The huge initial demand gave us an opportunity to test DreamHost’s Files Forever service where you pay $5 per download for unlimited bandwidth. It, too, worked like a champ. Once you’ve coughed up your five bucks and downloaded the ISO image, you can email the download link to one additional friend at a time. And each friend then can download the ISO without paying another nickel. No, we did not make enough on the downloads to fund free cruises for Joe and Tom. Sorry about that. In fact, the "profits" barely covered the costs of my weekly supply of Krispy Kremes.

Meanwhile, Tom King has been incredibly busy building our bricks-and-mortar scripts repository that is going to make PBX in a Flash the all-purpose solution for any telephony requirement. He also wrote a step-by-step tutorial for installing PBX in a Flash that includes screen shots of every single step in the process. If you haven’t visited pbxinaflash.org, you’re missing a treat.

Finally: A Real Backup Solution for Asterisk. If we had to tally the votes for the single-most requested feature addition for Asterisk systems, it would be an easy-to-use backup and restore system that makes recovery from a serious disk failure painless. Today’s your day. Tom King has just released his Whole Disk Backup System for PBX in a Flash that takes ISO-style snapshots of your entire PBX in a Flash system. And, when the dreaded day for a system restore arrives, it’s as simple as inserting your backup CD or DVD and rebooting on any new PC of your choice. How much simpler can it get? If you have been one of the hundreds of thousands of Asterisk users who never has had a reliable, full backup of your telephony system, sleep easy tonight. Those days are officially over!

Developer’s Corner. There’s also a new PBX in a Flash Development Environment that brings every development tool to your Asterisk desktop including X Windows with KDE, Anaconda for creating your own custom ISO’s, and, of course, tons of binaries to handle any development task you can imagine. It also downloads, installs, and recompiles the lastest and greatest version of Asterisk whenever you decide you want it. For those new to Linux that just want to add a graphical interface with X Windows-KDE, there’s a script to install that as well. There’s even a tutorial that will show you how to control your PBX in a Flash system remotely using the VNC graphical user interface.

If you happen to just want the latest, greatest version of Asterisk installed, there’s a simple script to handle that for you, too. It’ll even figure out what the latest version is so you don’t have to worry about mixing and matching components. Using this script, you also can add Asterisk 1.2 sound file support as well as Digium®’s High Performance Echo Cancellation (HPEC) System. You’ll need to acquire a license for HPEC from Digium.

First Steps. If you’re just getting started with PBX in a Flash, here’s our recommended approach. Download and read the initial Nerd Vittles tutorial and Tom’s Installation Guide. Then download and install the system either on a dedicated PC or on a Windows or Mac desktop using the VMware option. Once you finish configuring your system in accordance with our tutorials, go to the Nerd Vittles Forums and read the postings in the Open Discussion, Help, and Bug Fixes forums. Then take a look at the Providers forum and our Best of Nerd Vittles Providers and make your selections. Now you should be ready to go. Visit pbxinaflash.org and download your favorite scripts, and you’ll be off to the races.

Asterisk 1.4.15 Security Fixes. The two security issues that were patched today in Asterisk 1.4.15 are not required in the default install of PBX in a Flash. Unless you’re using the Postgres modules, there’s nothing to fear.

Coming Attractions. For those interested in monitored or hosted service for your PBX in a Flash system, we plan to tackle those options shortly. In the meantime, keep a sharp lookout on pbxinaflash.org. New content is added almost every day. Happy Birthday to Us! Two weeks and counting!! Yippee!!!


Some Recent Nerd Vittles Articles of Interest…

Introducing PBX in a Flash: The Lean, Mean Asterisk Machine

Well, it's Hammer Time at Nerd Vittles, time to put up or shut up. And we've never been accused of being a wallflower. If you've longed for the good ol' days of Asterisk@Home, welcome back to the new steroid-enhanced version. Today we're proud to introduce the first release of PBX in a Flash for Linux, Windows, and Macs. It's a lean, mean Asterisk® machine designed to meet the needs of hobbyists as well as business users. And you won't find the word "beta" in the rest of this article. Our extra special thanks go to Joe Roper, Tom King, and Tony Vincent for their untiring efforts in moving this project from a dream to reality. Just measure the 3 weeks of development work in this project against the years in some other projects, and you will have a good idea about the incredible contribution these guys have made! Nothing's ever perfect, but this is a good one folks. And you need to give it a try to see what we've all been missing this past year. Text-to-speech works, Bluetooth works, the platform is open, the install scripts are available for your use. We believe it is sufficiently reliable on Day 1 for a production environment. It may be two weeks past Halloween, but this is a real treat!

UPDATE: This article now qualifies as ancient. Click here for the latest and greatest.

Our design model differs from other Asterisk implementations. The .iso download gives you a rock-solid CentOS 5 Linux implementation which is designed for installation on a dedicated machine. Yes, your hard disk will be erased. Once Linux is installed, the system will reboot and fetch the latest, greatest collection of add-on's. Once the install completes, you'll have a high-performance turnkey Asterisk PBX that's easy to upgrade with a simple migration path to either managed PBX service or hosted PBX service. You never have to migrate if you don't want to, and the stand-alone product will always have virtually identical functionality minus the peace of mind that comes with managed or hosted PBX service. In short, the stand-alone product isn't ever going to be crippleware to entice you to migrate. We'll have more about the managed and hosted options in coming weeks. There also will be a script shortly to transform your system from a solid, lean run-time system into an Asterisk development platform. In the meantime, PBX in a Flash includes Asterisk 1.4.13, FreePBX 2.3.1, Apache, MySQL, PHP, phpMyAdmin, SendMail, Perl, Flite, and much more. Once we're sure we have a stable base platform (and we're pretty sure!), you'll be able to choose from dozens (if not hundreds) of scripts to add all of the Nerd Vittles goodie bag: AsteriDex, Weather Reports, News Feeds, Email by Phone, TeleYapper, Telephone Reminders, Podcasts by Phone, and on and on. There will also be fax support, turnkey phone scripts, hosting providers with free DIDs and minutes to get you started, and loads of new stuff from developers who already are working on compatible add-on's. You add features when you need additional functionality. Otherwise, you skip the bloatware. And you can add your own feature requests to the growing Wish List on the Nerd Vittles Forum. Visit today and sign up. Just like everything else at Nerd Vittles, it won't cost you a dime.

For those that don't have a dedicated Linux machine, we've got a VMware version of PBX in a Flash for you today as well. It'll run on almost any fairly new Windows XP or Vista Desktop as a virtual Linux server. Just download and install the free VMware Player. For Mac users, you'll have to buy and install VMware Fusion. Then download and unzip pbxinaflash.zip (4K) into C:\pbxinaflash. The directory name is important, or nothing will work! Next, download the pbxinaflash.iso into C:\pbxinaflash from your favorite download site. Now open Windows Explorer and double-click on the .vmx file in your C:\pbxinaflash folder. And presto! You've got a PBX in a Flash... about 30 minutes to be exact. That wasn't too hard, was it?

For those with a dedicated Linux machine, our goal today is to get everyone off on the right foot with a clean, reliable install. If you have problems with the install or spot a bug, post your questions and suggestions on the Nerd Vittles Forum. We can't stress strongly enough that this is a collaborative adventure, and you are cordially invited to participate as not only a user but also a contributor. Whether that contribution takes the form of developing scripts or merely contributing bandwidth for .iso downloads, all of us will appreciate your efforts! Nerd Vittles is donating the first ten terabytes of download bandwidth each month. After that, we need some help. Send us an email with your location if you would be willing to co-host the pbxinaflash.iso. Money donations through the PayPal link at the top of this page also buy bandwidth. We average over 50,000 visitors a week so we're going to need some help to keep the lights on. Ultimately, we hope to let others host the ISO downloads. That will free up our bandwidth to maintain and host the PBX in a Flash script collection. All ISO images will include a checksum to make it easy for you to verify that you have The Real McCoy. At the initial installation prompt, simply type linux mediacheck and press the <Enter> key. The size of the ISO image is 658,966,528 bytes.

Our Apologies. We want to apologize for the difficulties some of you are experiencing downloading our new baby. Apparently, a few others are equally excited about its release. Here's the problem. There are LOTS of you! Our download site, pbxinaflash.net, originally was used not only for ISO downloads, but it also provided the VMware modules and install scripts that bring PBX in a Flash to life for everybody. Without access to pbxinaflash.net, no one could complete the install process. Because of the hammering the site was taking with all of the huge ISO downloads, it meant that even those that got the ISO could not complete the install because, by then, they probably lost access to the site. Don't worry. You can reboot later to finish the installation. In fairness to everyone, we took the following steps. We now have five download sites in operation with more to come. You also can obtain a free torrent as well as the VMware modules and install scripts from pbxinaflash.net and most of the other sites. If all of the free download sites are busy, we have put up a pay-as-you-go download site as well. The way this works is that you pay $5 with a credit card to download the ISO. You then can email the link to a friend who pays nothing for the download. When that friend releases the link that is provided, you can give it to another friend at no cost. Only the original download is not free, but it is dirt cheap and provides lots of backup bandwidth. So, if you get in a crunch, spring for the $5. Otherwise, check back at a different time of day and try again. Or better yet, use the torrent. You'll have it by morning. The more torrents that are seeded, the easier this will be for everyone during the mad rush. Our apologies!!

Getting Started with PBX in a Flash. Just like all the other offerings, you need to begin this adventure by downloading the ISO image for PBX in a Flash (628.44 MB). As new locations for ISO downloads come on line, we will add them to the download list. Just click on the location nearest to you. Once you've got the image in hand, use your favorite tool to burn it to a bootable CD. You're going to need a dedicated PC for this installation unless you're using VMware to run PBX in a Flash on your Windows or Mac desktop. A current PC in the $200-$300 price range from your favorite Big Box store should perform nicely as a dedicated Linux machine. We recommend at least 512MB of RAM and more won't hurt. And, remember, your hard disk will first be erased by this install. You've been warned... twice.

On the machine you wish to use for your new PBX in a Flash system, insert the CD containing the pbxinaflash.iso and then reboot. After reading the initial prompts and warnings, press the Enter key to begin the installation. Or, if you want to first check the media for corruption, type linux mediacheck and then press the <Enter> key. For Windows users, be sure you're doing this in the VMware window on your Desktop and not on the main screen of your PC! Erase the existing partition and accept the default for the partition layout when prompted. Then choose your time zone and leave the UTC system clock option unchecked. Next choose a root password for your new system. Make it secure, and write it down. We plan to use this password for virtually everything on your new system. The install process begins. This includes MySQL, Apache, PHP, CUPS, Samba, WebMin, Subversion, SendMail, Yum, Bluetooth support, SSL, Perl, Python, the kernel development package, and much more. In about 15 minutes depending upon the speed of your PC, the system will reboot. Be sure you eject the CD, or it will get installed again, and again. HINT: Hang around your machine at about the 15 minute mark. After reboot, the system will start up with CentOS 5, then download and install Asterisk and FreePBX, and search for the necessary installation scripts in the /scripts folder on pbxinaflash.net. If you don't have Internet connectivity, then the installation cannot complete. When the installation finishes, reboot your system and log in as root. The IP address of your PBX in a Flash system will also be displayed once you log in. Write it down, too. We'll need it in a minute.

Now that you've logged in a root, you should see the IP address displayed with the following command prompt: root@pbx:~/. If instead you see bash displayed as the command prompt and it's not green, then the installation has not completed. This is probably due to network problems. Fix these, then reboot and watch for the eth0 connection to complete. Assuming it doesn't fail the second time around, the installation will continue. Likewise, if you do not have DHCP on your network, the installation will fail because the PBX will not be given an IP address. Simply type netconfig, fill in the blanks and reboot. The install will recommence. You can obtain the IP address of your server at any time by issuing the ifconfig command.

There are three important things to do to complete the installation. First, from the command prompt, run genzaptelconf. This sets up your ZAP hardware as well as a timing source for conferencing. Second, decide how to handle the IP address for your PBX in a Flash server. The default is DHCP, but you don't want the IP address of your PBX changing. Phones and phone calls need to know how to find your PBX, and if your internal IP address changes because of DHCP, that's a problem. You have two choices. Either set your router to always hand out the same DHCP address to your PBX in a Flash server by specifying its MAC address in the reserved IP address table of your router, or run netconfig at the command prompt and assign a permanent IP address to your server. If you experience problems with the process, see this message thread on the forum. The third configuration requirement probably accounts for more beginner problems with Asterisk systems than everything else combined. Read the next section carefully and do it now!

Getting Rid of One-Way Audio. There are some settings you'll need to add to /etc/asterisk/sip_custom.conf if you want to have reliable, two-way communications with Asterisk: nano -w /etc/astersk/sip_custom.conf. The entries depend upon whether your Internet connection has a fixed IP address or a DHCP address issued by your provider. In the latter case, you also need to configure your router to support Dynamic DNS (DDNS) using a service such as dyndns.org. If you have a fixed IP address, then enter settings like the following using your actual public IP address and your private IP subnet:

externip=180.12.12.12
localnet=192.168.1.0/255.255.255.0      (NOTE: The first 3 octets need to match your private IP addresses!)

If you have a public address that changes and you're using DDNS, then the settings would look something like the following:

externhost=myserver.dyndns.org
localnet=192.168.0.0/255.255.255.0      (NOTE: The first 3 octets need to match your private IP addresses!)

Once you've made your entries, save the file: Ctrl-X, Y, then Enter. Reload Asterisk: amportal restart. If you assigned a permanent IP address, reboot your server: shutdown -r now.

Activating Email Delivery of Voicemail Messages. We've previously shown how to configure systems to reliably deliver email messages whenever a voicemail arrives unless your ISP happens to block downstream SMTP mail servers. Here's the link in case you need it. As it happens, you really don't have to use a real fully-qualified domain name to get this working. So long as the entry (such as pbx.dyndns.org) is inserted in both the /etc/hosts file and /etc/asterisk/vm_general.inc with a matching servermail entry of vm@pbx.dyndns.org (as explained in the link above), your system will reliably send emails to you whenever you get a voicemail if you configure your extensions in freePBX to support this capability. You can, of course, put in real host entries if you prefer. For 90% of the systems around the world, if you just want your server to reliably e-mail you your voicemail messages, make line 3 of /etc/hosts look like this with a tab after 127.0.0.1 and spaces between the domain names:

127.0.0.1     pbx.dyndns.org pbx.local pbx localhost.localdomain localhost

And then make line 6 of /etc/asterisk/vm_general.inc look like the following:

serveremail=voicemail@pbx.dyndns.org

Now issue the following two commands to make the changes take effect:

service network restart
amportal restart

The command "setup-mail" can be used from the Linux prompt to set the fully-qualified domain name (FQDN) of the mail that is sent out from your server. This may help mail to be delivered from the PBX. One of things mail servers do to reduce spam is to do a reverse lookup on where the mail has come from, checking that there is actually a mailserver at the other end. You can only do this if you have set up dynamic DNS or if you have pointed a hostname at your fixed IP address. Once you have done this, and assuming your ISP is cooperative, then you will receive your voicemails via email if you wish (this is set within FreePBX),and your PBX will email you when FreePBX needs an update. You set this feature in FreePBX General Settings.

If your hosting provider blocks downstream SMTP servers to reduce spam, here's a link on the PBX in a Flash forum to get you squared away.

Setting Passwords and Other Stuff. While logged into your server as root, you can configure many of the 'lesser' passwords on your system (i.e. those passwords with less than root privileges) as well as phones, ZAP hardware, and other goodies. The only command you have to remember is help-pbx. Be aware that there are four different usernames and passwords that are enforced in the web interface to your PBX:

maint... to go everywhere
wwwadmin... for users needing FOP and MeetMe access
meetme... for users needing only MeetMe access
FreePBX... default username:password for admin access is admin:admin

There also is an Administration password which can be set in the KennonSoft UI which appears when you point a browser at the IP address of your server. Do NOT use the same Admin password here that you use elsewhere because this one is not overly secure.

Configuring WebMin. WebMin is the Swiss Army Knife of Linux. It provides TOTAL access to your system through a web interface. Search Nerd Vittles for webmin if you want more information. Be very careful if you decide to enable it on the public Internet. You do this by opening port 9001 on your router and pointing it to the private IP address of your PBX in a Flash server. Before using WebMin, you need to set up a username and password for access. From the Linux prompt while logged in as root, type the following command where admin is the username you wish to set up and foo is the password you've chosen for the admininstrator account. HINT: Don't use admin and foo as your username and password for WebMin unless you want your server trashed!

/usr/libexec/webmin/changepass.pl /etc/webmin admin foo

To access WebMin on your private network, go to http://192.168.0.123:9001 where 192.168.0.123 is the private IP address of your PBX in a Flash server. Then type the username and password you assigned above to gain entry. To stop WebMin: /etc/webmin/stop. To start WebMin: /etc/webmin/start. For complete documentation, go here.

Updating and Configuring FreePBX. FreePBX is installed as part of the PBX in a Flash implementation. This incredible, web-based tool provides a complete menu-driven user interface to Asterisk. The entire FreePBX project is a model of how open source development projects ought to work. And having Philippe Lindheimer's as the Captain of the Ship is just icing on the cake. All it takes to get started with FreePBX is a few minutes of configuration, and you'll have a functioning Asterisk PBX complete with voicemail, music on hold, call forwarding, and a powerful interactive voice response (IVR) system. There is excellent documentation for FreePBX which you should read at your earliest convenience. It will answer 99% of your questions about how to use and configure FreePBX. For the one percent that is not covered in the Guide, visit the FreePBX Forums which are frequented regularly by the FreePBX developers. Kindly post FreePBX questions on their forum rather than the PBX-in-a-Flash Forum. This helps everybody. Now let's get started.

NOTE: PBX in a Flash comes with the IPtables firewall enabled on your system. If this causes problems with access to the FreePBX repository (for loading the FreePBX updates below), you can easily (and temporarily) turn off the firewall. Type help-pbx for assistance. Don't forget to restart the firewall especially if your system has any Internet exposure!

Now move to a PC or Mac and, using your favorite web browser, go to the IP address you deciphered above for your new server. Be aware that FreePBX has a difficult time displaying properly with IE6 and IE7 and regularly blows up with older versions of Safari. Be safe; use Firefox. From the PBX in a Flash Main Menu in your web browser, click on the Administration link and then click the FreePBX button. The username and password both default to admin. Click Apply Configuration Changes, Continue with Reload, and then Refresh your browser screen. Now click the Module Administration option in the left frame once FreePBX loads. Now click Check for Updates online in the upper right panel. Next, click Download All which will select every module for download and install. The important step here is to move down the list and Deselect Speed Dials and PHPAGI from the download and install options. You may also want to deselect Zork. Once these apps have been deselected, scroll to the bottom of the page and click Process, then Confirm, then Return once the apps are downloaded and installed, then Apply, then Continue with Reload. Now repeat the process once more and do not deselect the two applications, then Process, Confirm, Return, Apply Config Changes, and Continue with Reload. Finally, scroll down the Modules listing until you get to the Maintenance section. Click on each of the following and choose Install: ConfigEdit, Sys Info, and phpMyAdmin. Then click Process, then Confirm, then Return once the apps are downloaded and installed, then Apply, then Continue with Reload. All three of these tools now are installed in the Maintenance section of the Tools tab of FreePBX. You now have an up-to-date version of FreePBX. You'll need to repeat the drill every few weeks as new updates are released. This will assure that you have all of the latest and greatest software. To change your Admin password, click on the Setup tab in the left frame, then click Administrators, then Admin in the far right column, enter a new password, and click Submit Changes, Apply Configuration Changes, and Continue with reload. We're going to be repeating this process a number of times in the next section so... when instructed to Save Your Changes, that means "click Submit Changes, Apply Configuration Changes, and Continue with reload."

Choosing Internet Telephony Hosting Providers for Your System. Before you can place calls to users outside your system or to receive incoming calls, you'll need at least one provider (each) for your incoming phone number (DID) and incoming calls as well as a provider for your outbound calls (terminations). We have a list of some of our favorites here, and there are many, many others. Within a few weeks, we also will have some providers that will offer you some free minutes for trying their service with PBX in a Flash. You basically have two choices with most providers. You can either pay as you go or sign up for an all-you-can-eat plan. Most of the latter plans also have caps on minutes, and there are none of the latter plans for business service. In the U.S. market, the going rate for pay as you go service is about 1.5¢ per minute rounded to the tenth of a minute. The best deal on DIDs is from les.net. They charge $3.99 a month for a DID with unlimited, free incoming calls. We will have a free offer from les.net for PBX in a Flash users shortly. Another new provider with excellent service and per minute rates is Aretta Communications out of Atlanta. They also have agreed to co-host our ISO downloads for the U.S. East Coast. Thanks, Aretta! WARNING: Before you sign up for any all-you-can-eat plan, do some reading about the service providers. Some of them are real scam artists with backbilling and all sorts of unconscionable restrictions. You need to be careful. Our cardinal rule in the VoIP Wild West is never, ever entrust your entire PBX to a single hosting provider. As Forrest Gump would say, "Stuff happens!" And life's too short to have dead telephones, even if it's a rarity. NEWS FLASH: Here's a link to an AxVoice offer of free setup, a free DID in your choice of area codes, and a month's free minutes to get you started in the U.S. and Canada.

Setting Up FreePBX to Make Your First Call. There are four components in FreePBX that need to be configured before you can place a call or receive one from outside your PBX in a Flash system. So here's FreePBX for Dummies in less than 50 words. You need to configure Trunks, Extensions, Outbound Routes, and Inbound Routes. Trunks are hosting provider specifications that get calls delivered to and transported from your PBX to the rest of the world. Extensions are internal numbers on your PBX that connect your PBX to telephone hardware or softphones. Inbound Routes specify what should be done with calls coming in on a Trunk. Outbound Routes specify what should be done with calls going out to a Trunk. Everything else is basically fluff.

Trunks. When you sign up with most of the better ITHP's that support Asterisk, they will provide documentation on how to connect their service with your Asterisk system. If they have a trixbox tutorial, use that since it also used FreePBX as the web front end to Asterisk. Here's an example from les.net. And here's the Vitelity support page although you will need to set up an account before you can access it. We also have covered the setups for a number of providers in previous articles. Just search the Nerd Vittles site for the name of the provider you wish to use. You'll also find many Trunk setups in the trixbox Trunk Forum. Once you find the setup for your provider, add it in FreePBX by going to Setup, Trunks, Add SIP Trunk. Our AxVoice setup (which is all entered in the Outgoing section with a label of axvoice) looks like this with a Registration String of yourusername:yourpassword@sip.axvoice.com:

allow=ulaw
authname=yourusername
canreinvite=no
context=all-incoming
defaultip=sip.axvoice.com
disallow=all
dtmfmode=inband
fromdomain=sip.axvoice.com
fromuser=yourusername
host=sip.axvoice.com
insecure=very
nat=yes
secret=yourpassword
type=friend
user=phone
username=yourusername

And our Vitelity Outbound Trunk looks like the following (labeled vitel-outbound) with no registration string:

allow=ulaw&gsm
canreinvite=no
context=from-pstn
disallow=all
fromuser=yourusername
host=outbound1.vitelity.net
secret=yourpassword
sendrpid=yes
trustrpid=yes
type=friend
username=yourusername

Extensions. Now let's set up a couple of Extensions 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 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 ... 1234
dtmfmode ... rfc2833
Voicemail & Directory ... Enabled
voicemail password ... 1234
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

Now create several more extensions using the template above: 202, 203, 204, and 205 would be a good start. Keep the passwords simple. You'll need them whenever you configure your phone instruments.

Outbound Routes. The idea behind multiple outbound routes is to save money. Some providers are cheaper to some places than others. We're going to skip that tutorial today. You can search the site for lots of information on choosing providers. Assuming you have only one or two for starters, let's just set up a default outbound route for all your calls. Using your web browser, access FreePBX on your server and click Setup, Outbound Routes. Enter a route name of Everything. Enter the dial patterns for your outbound calls. In the U.S., you'd enter something like the following:

1NXXNXXXXXX
NXXNXXXXXX

Click on the Trunk Sequence pull-down and choose your providers in the order you'd like them to be used for outbound calls.Click Submit Changes and then save your changes. Note that a second choice in trunk sequence only gets used if the calls fails to go through using your first choice. You'll notice there's already a 9_outside route which we don't need. Click on it and then choose Delete Route 9_outside. Save your changes.

Inbound Routes. We're also going to abbreviate the inbound routes tutorial just to get you going quickly today. 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 recommend you first build a Ring Group with all of the extension numbers you have created. Once you've done that, choose Inbound Routes, leave all of the settings at their default values and move to the Set Destination section and choose your Ring Group as the destination. Now click Submit and save your changes. That will set up a default incoming route for your calls. As you add bells and whistles to your system, you can move the Default Route down the list of priorities so that it only catches calls that aren't processed with other inbound routing rules.

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!

A more detailed tutorial complete with screenshots is under development and will be available shortly, but we wanted to provide those just getting started with Asterisk sufficient information today to get a working system.

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 (the size of a pack if cigs) known as a Sipura SPA-1001. It's under $60. 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 SPA-1001 into your LAN, and then plug your phone instrument into the SPA-1001. Your router will hand out a private IP address for the SPA-1001 to talk on your network. You'll need the IP address of the SPA-1001 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 Sipura 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. 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 your extensions were set up starting with 201, do the following. Enter House Phone as the Display Name. Enter 201 as the User ID. Enter 1234 as the Password, 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. Pick up the phone and dial 1234# to test it out.

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 or the snom 360 Softphone which is a replica of perhaps the best IP phone on the planet. 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 value in the marketplace with excellent build quality and feature set (but probably not the best sound quality) is the $79 GrandStream GXP-2000. It has support for four lines, speaks CallerID numbers, has a lighted display, and can be configured for autoanswer with a great speakerphone. Some other great choices are the Aastra 9133i and the Siemans Cordless Dect phone. Do some reading before you buy. The Voxilla forums are a good place to start.

A Word About Ports. For the techies out there that want "the rest of the story" to properly configure firewalls, here's a list of the ports available and used by PBX in a Flash:

TCP 80 - HTTP
TCP 9080 - Duplicate HTTP
TCP 22 - SSH
TCP 9022 - Duplicate SSH
TCP 9001 - WebMin
UDP 10000-20000 - RTP
UDP 5004-5082 - SIP
UDP 4569 - IAX2
UDP 2727 - Media Gateway

A2Billing Installation. Our first example of how we plan to build up PBX in a Flash systems is the installation script for A2Billing. If you want A2Billing installed on your system, then log in as root and type install-a2billing. If you don't want A2Billing, then you don't download or run the script. When you return to the main web page for your server after installing A2Billing, you will have two new links for A2Billing customers and A2Billing admin. You will have to install the callback funtionality manually from the docs supplied in the install. A2Billing was created by Areski, who some of you may know was responsible for Web MeetMe, ConfigEdit, and the CDR reports included with FreePBX. A2Billing is sufficiently comprehensive that it warrants an article on its own, so we will save that for another day. Some of the projects we will be looking into are how to pass calls from FreePBX to A2Billing for least-cost routing, departmental billing services, building a calling card server, and a VoIP termination platform. Then you can change your name to Ma Bell and start selling minutes to all the people for whom you have installed PBX-in-a-Flash. If you can't wait, visit asterisk2billing.org.

Nerd Vittles Coming Attractions. First, we will have a new script repository up and running in a few days at pbxinaflash.org. Tom King, the ultimate scripting guru will be managing that site. So check it often. And now that PBX in a Flash is out the door, we're chomping at the bit to get all of the Nerd Vittles Goodies ported over. If you want to try one yourself, start with Weather by Airport Code which installs in under 5 minutes. Put your dialplan code in extensions_custom.conf, and be sure to heed the Asterisk 1.4 mod which is explained in the article. Hold off on AsteriDex because we have an updated version of that one for you within the next few weeks. If you still have a DBT-120 Bluetooth adapter, you'll be happy to learn that it works out-of-the-box with both the Linux and Windows versions of PBX in a Flash. Just take a look at our recent iPhone article on Proximity Detection, and you can configure your system to transfer your phone calls to your cellphone when you leave the house carrying your Bluetooth cellphone in about 5 minutes. Now spend some time reading up on FreePBX and enjoy your new toy. Santa came early this year!

Bug Fixes. There's only been one reported bug (horrors!) in PBX-in-a-Flash, but we wanted to provide a way to report them and to address them. So there's a new PBX-in-a-Flash forum dedicated to bug reporting and fixes. Be sure to visit once in a while just to keep your system current.


Some Recent Nerd Vittles Articles of Interest...

Announcing PBX-in-a-Flash: A New Asterisk Platform for Everyman… and Woman!

We’ve been keeping a low profile for a few weeks, and now it’s time to let the cat out of the bag. As some of you know, we just haven’t been thrilled with the direction of the trixbox project lately. Without boring everyone with a lot of detail, suffice it to say that it’s just gotten a little too proprietary, too closed, and too commercial for our open source, puritanical tastes. So today, with a bunch of help from some really sharp folks, we embark upon a new open source project that we hope will become the best-of-breed Asterisk®-based development platform. Our design goals are simple: a very modular system that meets the needs of Asterisk experimenters as well as those looking for a reliable, scalable, IP-based business telephony solution with all the bells and whistles.

Our up front promise is to keep the project open, participatory, reliable, and fun. After all, that’s what the Asterisk revolution was and is all about. The plan is to provide a free ISO-based offering for home or office use that will run on a dedicated Linux machine. There also will be a VMware image that will run on a Windows desktop. And, for the Mac desktop, we’ll provide both a VMware and a Parallels image. Down the road, when you get sick of babysitting your own hardware and worrying about fault tolerance and backups, there will be a transparent option to migrate your entire system to a dedicated, hosted service with very reasonable pricing for one trunk or hundreds. The system can be scaled to meet almost every business need. And, if you ever want to reverse-migrate back to a system that you maintain, that option will be available as well. The hosted option is about 1 millisecond off the Internet backbone in Atlanta so we’re doubtful there will be a lot of reverse migrations.

The free ISO-based offering as well as the hosted alternative will include a bucket of minutes for some free calls in the U.S. to get you started. You can add your own providers at any time or provide a credit card and continue to use the preconfigured services. For the desktop, both the ISO-based and hosted offerings will include instructions for use of a preconfigured softphone. Or you can purchase an auto-configurable phone.

As for the ISO-image, it’ll have all your favorites: CentOS 5, Asterisk 1.4, FreePBX, Apache, MySQL, PHP, phpMyAdmin, SendMail, Perl, Flite, and, of course, all of the Nerd Vittles Goody Bag: weather forecasts by zip code, airport code, and international forecasts as well as the NewsClips news reader, the MailCall email reader, AsteriDex phone directory, TeleYapper, Telephone Reminder System, Podcast Studio, and more. Everything else is optional. There will be free scripts to install every Asterisk-compatible application on the planet. Can you add your own stuff? Absolutely. Can you help by adding stuff to the PBX-in-a-Flash repository? We hope you will. And, last but not least, there’s a new Nerd Vittles Forum where you can get lots of help at no cost when you get stumped. Sign up now, and you’ll be all set. We’re all ears for suggestions already!

Show Me the Beef. Yeah. We wish it were ready today, too. But we’re shooting for early November unless we eat too much candy on Halloween. Either way, it won’t be long. Can we tell you who all the players are today? Well, we could, but then we’d have to shoot you. So hang in there for a couple more weeks, and we’ll have the first beta for you to sink your teeth into.


Some Recent Nerd Vittles Articles of Interest…

Apple’s iPhone: Free At Last!

We raved about the iPhone when it was first released. And today we wanted to give you a brief update because of some very good news. Other than the cost which now has been addressed, the two serious shortcomings that we’ve seen with the iPhone both centered around Apple’s decision to lock the platform. This led to two major drawbacks. First, it forced at least those in the U.S. to use AT&T for wireless service. To say they are a dreadful provider just really doesn’t cover it. For any of you that hated Sprint three years ago and left, guess what? All those people you hated seem to have moved to AT&T… with reinforcements. The good news is that Sprint now has some of the most courteous, helpful staff of any provider in the industry. Go figure?

WARNING: Do not attempt any of the following if the firmware on your iPhone is 1.1.1 or higher. Read this forum for details.

The second major limitation was the inability to add any applications other than Apple’s to the iPhone. Yes, you can do instant messaging through some stranger’s web site with your web browser if you don’t mind sharing your usernames and passwords with folks you don’t know. We can’t wait for the online banking scams. Can’t you see it now? Log into your favorite bank through our site, and you can transfer funds (to us!) quicker than we can say Ka-ching! Sorry, but Web 2.0 is an absolutely lousy platform for any application that collects or uses personal information. The intermediate web site operator can harvest every piece of information you type. Yes, you should make certain that you trust the provider before using their site. Try telling that to a bunch of teenagers that miss their free instant messaging.

So, where were we? All of the above has changed in the last couple weeks, and today we’ll walk you through how to easily unlock your iPhone in about 5-10 minutes to take advantage of the changes. Once you do this, you’ll be in your own iPhone Orbit which means no more Apple updates to the iPhone unless you’re willing to completely wipe everything off your phone and start over. This isn’t as big a deal as it sounds since most of your stuff (photos, address book, and music) is stored in iTunes anyway. What will you have when you’re finished? A perfect iPhone! You can add your own applications in seconds. And there are close to a hundred apps already. And you can use any SIM card you like. So, when you travel out of the country, you can purchase an El Cheapo SIM card in Mexico and have a functioning, low cost iPhone.

Unlocking Your iPhone. Let’s start with the obvious. Make certain you have a properly functioning, up to date iPhone before you begin. If you haven’t upgraded your firmware to 1.0.2 using iTunes, do that first and be sure everything is still chugging along before attempting to unlock the phone. And, of course, the obligatory warnings. YOU’RE DOING ALL OF WHAT FOLLOWS AT YOUR OWN RISK. Read the whole article first and be sure you appreciate the risks AND you’re comfortable performing all of the steps. If you’re not willing to assume the risk that accompanies living on the Bleeding Edge, then leave your iPhone alone and wait for Apple to release 1.0.3 or whatever.

The Mac Solution. If you happen to live in a household with both Macs and PCs, then you can perform this magic just as we did. The Mac needs to be running Tiger. The PC needs Windows XP with SP2 although Vista reportedly works as well. We didn’t try Vista! For Mac users, the easiest process is to follow this guide. First, download and install iNdependence 1.1.1 on your Mac, not the newer version. Next, download the 91MB iPhone 1.0.2 restore files and put the decompressed folder where you can find it. Plug your iPhone into your Mac and shut down iTunes if it autostarts. Kill the iTunes Helper app using Activity Monitor. Then load iNdependence. Click the Jailbreak tab and then the Perform Jailbreak button. Using the Finder dialog box, find the folder location where you stored the 1.0.2 restore files and click Open. Now, for the tricky part. Step 6 involves holding down the Home and Sleep buttons on your iPhone until you see the spinning pizza wheel. This occurs shortly after the iPhone begins its reboot. Release the buttons immediately. If your iPhone reboots normally (as ours did on the first try), you waited too long. Just repeat the steps again and work on your timing. When you do it correctly, you’ll see a pretty picture of a jail cell. When the Jailbreak is completed, iNdependence will return to its native state. Click on the SSH tab and then the Install SSH/SFTP/SCP button. Once you get the Jailbreak success message, do a special reboot of your iPhone by holding Home + Sleep buttons down for 3 seconds. Then power off your iPhone in the standard way. Now Power On your iPhone and wait while the software is loaded. When it finishes, do another special reboot as above. And you’re done. Skip the Return to Jail step for now.

Changing the Root Password on Your iPhone. A special word of caution is in order here. The root password for your iPhone is dottie. Just about everyone in the world knows that now. With SSH and SFTP now installed on your iPhone, anybody that deciphers your IP address can log into your iPhone unless the password is changed. Hmmm. The bad news. The passwd app is NOT loaded on the iPhone, and we have yet to find a trustworthy copy of it. If you don’t change the root password on your phone, anyone at any Starbucks has a good shot at trashing your phone. All they need is your IP address: ssh -l root 192.168.0.122. For the time being, the easiest way to make the change is first to generate a new password file at this web site. Once you have the text file in hand, hop on over to this site and follow the instructions to update the /etc/master.passwd file on your iPhone.

The Windows Approach. You no longer need a Mac to perform the jailbreak. Reportedly, iBrickr can do the same thing. Just watch the video on the IBrickr web site for details on the jailbreak process. There’s also a Mac-compatible version called Breezy which we haven’t tried. We’re going to use iBrickr for a different purpose, however. It’s become the very best tool for loading custom applications onto your jailbreaked iPhone. You also can use it to load custom ringtones and wallpaper. Download and store iBrickr 0.8 on your Windows PC. Once downloaded, plug in your iPhone and click on the folder location where you unzipped the iBrickr files and double-click ibrickr.exe to run the application.

iBrickr installs files in the PXL image format. There’s a pxl installer on the iPhone that does all the dirty work so all you have to do is find the application you want with a PXL installer. You’ll find about about 50 of them on Nate True’s site or the mirror site, and there’s a growing collection on this Google Code site. So download your favorites into a folder on your PC.

Installing Applications with iBrickr. To install the applications, run the iBricker.exe program while your iPhone is connected to your PC and choose Applications. Then click Install from PXL file. Click on the application desired and wait for your phone to beep after a software refresh. It’s about a 30-second exercise for most applications. The new application will appear in the bottom row of the SpringBoard. Keep in mind that there’s only room for four more applications on the iPhone SpringBoard. If you want more than that, install the Launcher application as one of your first four choices or load the SpringBoard rearranger.

Unlocking the AT&T SIM. Thousands of articles have already been written about this. The price went from $100 to $0 in less than a day. Now you can simply install the anySIM 1.01 PXL image and run it to switch SIM chips on your phone. Be sure to first consult their web site for late-breaking announcements. Enjoy!


Some Recent Nerd Vittles Articles of Interest…

Back to School Time: The Bleeding Edge of Asterisk, Part 1

NOTE: The system referenced in this article is no longer supported by Nerd Vittles as this version of Asterisk has been phased out. For the latest and greatest, please consider our new PBX in a Flash offering.

It's been almost a year since we released our turnkey trixbox 1.2.3 system for Windows which relied upon CentOS 4 and Asterisk 1.2 and included all of the Nerd Vittles goodies. There have been dozens of security patches not to mention entirely new generations of Asterisk, trixbox, FreePBX, CentOS, MySQL, and PHP code. Just look at our pathetic graphic, and you'll know how much things have changed in the last year while we were building applications. As school begins this week, we decided to get a little education on our own, and we've begun the process of building a VMware image of trixbox 2.x with CentOS 5 and Asterisk 1.4 support. As frequent readers of our column already know, our #1 Pet Peeve is programmers that write new code that breaks other folks' existing code for no reason. We can quibble about what that means but basically Asterisk 1.4 needlessly breaks a lot of applications because of rip-and-replace syntax changes. It's certainly okay to add new command syntaxes, but why would you trash thousands of perfectly functional applications by refusing to add a few lines of code to translate the old syntax into the new one? Here's a good example. In previous versions of Asterisk, you set the timeout for responses from an IVR system with code that looked like this: exten => 611,4,ResponseTimeout(7). To do the same thing in Asterisk 1.4, the syntax looks like this: exten => 611,4,Set(TIMEOUT(response)=7). No big deal, you might be saying. Well, it's a VERY BIG DEAL! It breaks every IVR application on Planet Asterisk. <end of rant... well, almost>

Way back when we actually worked with programmers in years' past, we always started with the proposition that you shouldn't break something that already works when new versions of code are released. Unfortunately, this is a problem in the open source community and especially in our VoIP World. People get so excited to include new stuff in a new version that they forget/ignore/don't test features that were previously available. But we understand that betas do not have complete code sets, and we're using a trixbox 2.3 beta today to have some fun on the bleeding edge. So, be forewarned that everything may not be quite perfect. And, unfortunately, the new trixbox design makes it virtually impossible for mere mortals to add much code on their own to fix things. Lucky for all of us, there are some terrific scripts produced by Tom King. Tom has single-handedly taken over much of the drudgery of smoothing out some of the wrinkles in trixbox. And, thanks to Tom, we've pretty much gotten out of that business... until today.

One of the concerns expressed when Fonality acquired trixbox was that the trixbox code would languish. It certainly hasn't done that, but Bleeding Edge code can pose some problems of its own. We're going into this with our eyes wide open and our sleeves rolled up so... not to worry! We would hasten to add that Andrew and Kerry and the rest of their crew at Fonality have been tireless in their dedication to the trixbox platform. We're all grateful for all that they've done and continue to do. And Chris Lyman's support of the open source Asterisk community has been nothing short of fantastic as well! We just hope that some of what we cover today will find its way into the final trixbox 2.4 release... so we don't have to do this all over again in a month or two.

First, the Bad News. We don't have a finished VMware product for you yet because there was lots of Nerd Vittles code to rewrite. But we're darn close to a perfect Asterisk 1.4 platform with a huge helping hand from Tom. We thought it might be equally useful to walk through some of the challenges that await anyone who decides to try this alone (without Tom's script) on a dedicated Linux box. So here we go...

Let's begin with a summary of what we're starting with and what our objective will be. Digium® is pushing everyone to get off the 1.2 Asterisk® platform and move on to Asterisk 1.4. In fact, the end of life date for Asterisk 1.2 was August 1, 2007. We're going to avoid the temptation of explaining how unreasonable that date is in the telephony business (most phone systems are designed to last for a decade, not a year). Well, we did tell you. But let's move on. Then there's freePBX which is the terrific front-end to Asterisk. Remember, Asterisk 1.4 broke large chunks of their code. Here's their take on life with 1.4. The silver lining is that the freePBX development crew released the production version of 2.3 supporting Asterisk 1.4 this past Saturday. Now we get to trixbox which rolls together dozens of other products and has had to make generational leaps in the Linux distribution, MySQL,and PHP plus upgrades to the web server, FTP server, Perl, and on and on. When you recall that none of these products were designed by the same groups, you'll start to appreciate how daunting this task can become. Then there are the whiners like us that just write application software so that people can do cute tricks with their phone systems.

Once we get all the pieces talking to one another and functioning, there's the final issue of hardware. With CentOS 5 and Asterisk 1.4, the processor demands particularly to run this Asterisk-based PBX under VMware on your Windows desktop are substantial. For those accustomed to our speedy TrixBox 1.2.3 image, this one is not equivalent. We've always recommended using the free Process Explorer tool to bump up the Process Priority of vmware-vmx.exe and vmware.exe to 13 (High) on your Windows Desktop. Just highlight each application in the list of running apps and click Process, Set Priority, High. To get equivalent voice synthesis performance with CentOS 5 and Asterisk 1.4 on the identical machine now requires a setting of 24 (Realtime) for these apps which is all but unheard of on a Windows machine. If you happen to have a multi-processor machine or a new dual-core system with lots of RAM, you may be able to avoid this step. Just be forewarned that this new application probably isn't going to run satisfactorily on grandma's 3-year old Windows XP desktop.

Let the Downloads Begin. We begin this process by downloading the trixbox image. The one you'll want is 2.3.0.1 (not 2.3.0.2!). It has CentOS 5, Asterisk 1.4, and freePBX 2.3. Unfortunately, they're not the current and patched versions of any of these products because the world keeps changing every day. So you have a Hobson's Choice to make here. You can stick with the trixbox team and wait for them to release each little piece of the puzzle. Or you can convert your system into a more vanilla Linux distribution so that you can make changes yourself. Once you do this, however, you may break some of the cradle-to-grave trixbox support and the trixbox upgrade mechanism which also happens to require registration. Tom indicates that for most updates, this is not the case. Either way, we're doing this to enjoy the bleeding so, of course, we want the free and open model. This assures we can load what we need. YMMV! This conversion process used to be really painful, but now it's not. Why? Because Tom King has made it easy by providing a script that does all the conversion and upgrade work for you. Documentation for the script can be downloaded from Tom's site. We would hasten to add that we've been comparing notes with Tom so today's edition of Tom's script now includes almost all of the tweaks that follow.

After you install trixbox 2.3.0.1 (and we're doing this using VMware Workstation on a Windows desktop but it'll work similarly on a dedicated Linux installation), it's time to run Tom's script. Log into your trixbox server as root and issue the following commands. Note to NEWBIES: This column probably is not the best place for you to start your Asterisk exploration. Try one of the links at the top of this page. They just work... out of the box.

cd /root
wget http://nerdvittles.com/trixbox2/updatesrc14.sh.gz
gunzip updatesrc14.sh.gz
chmod +x updatesrc14.sh
dos2unix updatesrc14.sh
./updatesrc14.sh

The script takes a while to run and you're well advised to also open a separate SSH session to your new trixbox server with putty (also free) so that you can supply needed commands when prompted without having to stop and reboot your server to continue the upgrade process. The script may stop once in a while and, if it does, pressing <enter> will gets things moving again.

Upgrading freePBX. The most critical component of this new system is freePBX. Complete documentation for this incredible Asterisk web GUI can be accessed here. There's also an active set of forums plus the trixbox forums for more immediate assistance. Of particular note, there are only three known bugs with this version of freePBX, and those are minor. In fact, the final release of FreePBX 2.3 was released as we were putting the finishing touches on this article.

To get things going, restart your system after completion of the script above. Once Asterisk is running, use a web browser to access freePBX at the following address: http://serverIPaddress/admin/. The username is maint and the password is password. Click on the Setup tab and then Module Admin. Click Check for Updates on line. You'll need to download these in clumps. If you get errors loading some of them, skip those and move on. When you finish the rest, go back and try the ones that didn't install again. Then your system will be up to date. When you click the FreePBX System Status tab in the left column, the system will now tell you which new updates are available. Stay current! New goodies arrive regularly. You can safely ignore the warnings about the default MySQL and Asterisk Manager passwords being used. The default setup of trixbox protects these applications from the outside world so, unless you change the default settings to permit Internet access to MySQL or the Asterisk Manager, this isn't a problem.

Restoring Text-to-Speech Capabilities Using Flite. Most of the Nerd Vittles goody bag is dependent upon text-to-speech voice synthesis with Flite. It doesn't work with tribox 2.x as delivered. Here's how to restore it, but Tom's script will now do all of this for you. Otherwise, after a reboot, log into your trixbox server as root and issue the following commands (in order):

cd /root
wget http://mirrors.tummy.com/pub/fedora.redhat.com/fedora/linux/extras/5/i386/flite-1.3-8.fc5.i386.rpm
wget http://mirrors.tummy.com/pub/fedora.redhat.com/fedora/linux/extras/5/i386/flite-devel-1.3-8.fc5.i386.rpm
rpm -Uvh flite*
yum install subversion subversion-devel
svn co https://dialogpalette.svn.sourceforge.net/svnroot/dialogpalette dialogpalette
cd dialogpalette/trunk/asterisk-flite
make
make install
shutdown -r now

If, for some reason, one or more of the above sites isn't working, you can download and install the files directly from Nerd Vittles with these commands:

cd /root
wget http://nerdvittles.com/trixbox2/flite.zip
unzip flite.zip
cd flite
rpm -Uvh flite*
cd dialogpalette/trunk/asterisk-flite
make
make install
cd /root
rm -r flite
rm -f flite.zip
shutdown -r now

Bringing Music On Hold Back From the Dead. After the freePBX updates (and maybe before), Music on Hold didn't function for things as simple as placing an incoming call on hold. Here's how to get it back. Tom's script now includes the necessary code to fix this as well. Suffice it to say, there was a missing directory. And a license file was improperly named which caused Message on Hold to fail. For the time being, you need both a /var/lib/asterisk/moh and a /var/lib/asterisk/mohmp3 directory, and both need to contain all of your music on hold files. You also need to remove the LICENSE text file from both directories and copy one of the existing files to a new file named LICENSE.wav in both directories. Then music on hold will work.

Activating Email Delivery of Voicemail Messages. We've previously shown how to configure any trixbox system to reliably deliver email messages whenever a voicemail arrives unless your ISP happens to block downstream SMTP mail servers. Here's the link in case you need it. Just search for the following heading: Activating Email Delivery of VoiceMail Messages. As it happens, you really don't have to use a real fully-qualified domain name to get this working. So long as the entry (such as trixbox1.dyndns.org) is inserted in both the /etc/hosts file and /etc/extensions/vm_general.inc with a servermail entry of vm@trixbox1.dyndns.org (as explained in the link above), your system will reliably send emails to you whenever you get a voicemail if you configure your extensions in freePBX to support this capability. You can, of course, put in real host entries if you prefer.

Resurrecting phpMyAdmin. Many of the Nerd Vittles applications also rely heavily upon MySQL databases. The only way to make installation of these apps relatively painless to install is to have phpMyAdmin working on your trixbox system. Unfortunately, it's missing from the 2.3 beta and the trixbox repository. The easiest way to remedy this deficiency now is to run Tom's script. If you'd prefer to do it manually, here are the steps. Log into your server as root and issue these commands:

cd /var/www/html/maint
wget http://nerdvittles.com/trixbox2/phpmyadmin.zip
unzip phpmyadmin.zip
cd /var/lib/php
chmod -R o+rwx session

Once installed, you can access phpMyAdmin with your web browser by pointing to the IP address of your Asterisk server with a command like the following:

http://192.168.0.22/maint/phpmyadmin/

Reviving Asterisk Weather Station by Airport Code. We'll finish for today by getting one of the major Nerd Vittles weather apps working under Asterisk 1.4 just to demonstrate that text-to-speech functionality is back from the dead. In coming weeks, we'll fix the rest of our applications. The complete installation tutorial is available on our Best of Nerd Vittles site. Complete the Database Setup and Changing Preferred Airport Codes steps as explained in the tutorial. The Dialplan Setup is already included in the trixbox beta, but it uses some Asterisk 1.2 commands that no longer work. Here's how to fix it. While still logged into your Asterisk server as root, edit the extensions_trixbox.conf file:

nano -w /etc/asterisk/extensions_trixbox.conf

Scroll down the dialplan until you find the lines beginning with exten => 611. Replace lines 3 and 4 with the following new code:

exten => 611,3,Set(TIMEOUT(digit)=7)
exten => 611,4,Set(TIMEOUT(response)=10)

Save your changes: Ctrl-X, then Y, then <Enter>. Then complete the freePBX Setup, AGI Script Setup, and System Setup sections of the tutorial. Restart Asterisk and you're good to go: amportal restart. The whole process should take you less than 5 minutes to complete.

The Future is Now. Now that we've whetted your appetite, take a look at some of Tom's other scripts for trixbox. There's almost nothing you can't do with a few more minutes of work: X Windows/KDE, Daily Backups, G729 and G723 codecs, server SSL, and who knows what else by tomorrow. Enjoy your new sandbox!


Nerd Vittles Demo Hot Line (courtesy of les.net). You now can take a number of Nerd Vittles projects for a test drive... by phone! The current demos include (1) MailCall for Asterisk with password 1111 (retrieve your email by phone), (2) NewsClips for Asterisk (latest news headlines in dozens of categories), (3) Weather Forecasts by U.S. Airport Code, and (4) Weather Forecasts by U.S. ZIP Code. You're not prompted for #4 yet, but it does work! Just call our number (shown above) and take any or all of them for a spin. The sound quality may not be perfect due to performance limitations of our ancient Intel 386 demo machine. But the price is right.

Nerd Vittles Fan Club Map. Thanks for visiting! We hope you'll take a second and add yourself to our Frappr World Map. In making your entry, you can choose an icon: guy, gal, nerd, or geek. For those that don't know the difference in the last two, here's the best definition we've found: "a nerd is very similar to a geek, but with more RAM and a faster modem." We're always looking for the best BBQ joints on the planet. So, if you know of one, add it to the map while you're visiting as well.