Home » 2006 (Page 2)

Yearly Archives: 2006

The Most Versatile VoIP Provider: FREE PORTING

Introducing Nerd Vittles’ PBX-in-a-Flash

This is a research week for us, but we wanted to take a minute or two and tell you what we’re working on. It’s called PBX-in-a-Flash™, and it’s a self-contained PBX on a flash drive that includes the best of TrixBox, and Asterisk®, and freePBX, and Apache, and MySQL, and phpMyAdmin, and, of course, all the Nerd Vittles goodies. All you’ll do is plug it into your favorite Windows machine and watch it whir away installing everything with just one mouse click. We hope to have a version for Linux as well down the road a bit. When the install finishes, you can remove the flash drive and keep it as a backup, or you can erase the flash drive and use it to store your favorite music or photos. Or, better yet, pass it along to a friend. Then crank up the software in a window on your desktop machine, plug in a phone or load your softphone, and you’re in the IP telephony business with your very own PBX, weather station, news center, and kitchen sink.

Down the road, we’ll find someone to actually bundle PBX-in-a-Flash™ with their flash drives. But, for now, we’re going to play Santa Claus early. To celebrate our 150th column, we’re giving away one of these each week for the next six weeks to the person who leaves the best comment on Nerd Vittles. It can be a tip, a correction, or just a comment about something on Nerd Vittles that really helped you get started with Asterisk. Be sure to post your comment with a correct email adddress. It won’t be published on the site but will be used to contact you if you are our Commenter Extraordinaire. All winners should expect to receive your PBX-in-a-Flash™ units before Christmas … this year. It’s our way of thanking all of you for making Nerd Vittles one of the best Asterisk resources on the web.

P.S. A new, stable TrixBox 1.2.2 is now available including a new VMware build. Make sure you apply the following patch after installation. Thanks, Andrew!


Nerd Vittles Fan Club Map. Thanks for visiting! We hope you’ll take a second and add yourself to our Frappr World Map compliments of Google. 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.

Nerd Vittles Demo Hot Line. You now can take a number of Nerd Vittles projects for a test drive… by phone! The current demos include NewsClips for Asterisk (latest news headlines in dozens of categories), MailCall for Asterisk with password 1111 (retrieve your email by phone), and Nerd Vittles Weather Forecasts by U.S. Airport Code. Just call our number (shown in the left margin) 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.

Hosting Provider Special. Just an FYI that the Nerd Vittles hosting provider, BlueHost, has raised the bar again on hosting services. For $6.95 a month, you can host up to 6 domains with 30GB of disk storage and 750GB of monthly bandwidth. Free domain registration is included for as long as you have an account. That almost doubles last month’s deal, and it really doesn’t get any better than that. Their hosting services are flawless! We oughta know. We’ve tried the best of them. If you haven’t tried a web hosting provider, there’s never been a better time. Just use our link. You get a terrific hosting service, and we get a little lunch money.

Want More Projects? For a complete catalog of all our previous Asterisk projects, click here. For the most recent articles, click here and just scroll down the page.

Headline News for the Busy Executive and the Lazy Loafer. Get your Headline News the easy way: Planet Asterisk, Planet Gadget, Planet Mac, and Planet Daily. Quick read, no fluff.

Got a PDA or Web-Enabled Smartphone? Check out our new PDAweather.org site and get the latest weather updates and forecasts from the National Weather Service perfectly formatted for quick download and display on your favorite web-enabled PDA, cellphone, or Internet Tablet. And, of course, it’s all FREE!

Introducing Version 2 of the Plug-And-Play Asterisk IP PBX for Windows

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 birthday week at Nerd Vittles, and today you get the party favor as we introduce the second generation of our free turnkey (aka preconfigured) Asterisk system: nv-TrixBox-1.1.2. As with the first version, it runs on the desktop of any Windows XP home or office computer. If you want a state-of-the-art phone system, look no further. Out of the box, it supports eight extensions and two lines with integrated voicemail and immediate email delivery of your incoming voicemail messages. To add additional extensions takes about 5 seconds. This PBX features the latest build of Asterisk (1.2.12.1) and is just the ticket for a small business or a school or even a fraternity or sorority house. It's also perfectly suited for your home. You get every imaginable PBX telephony feature including music on hold, call forwarding, and call transfer as well as a preconfigured AutoAttendant which lets your friends and colleagues direct an incoming call to any of your extensions or even your cellphone. For those with the magic password, you can even dial in and get dialtone to make five hours of free calls each week to dozens of countries around the world including all of the U.S. and Canada, most of Europe, South and Central America, Australia and all your Far East favorites including China, Taiwan, Russia, and Japan. And the total cost: about $12.50 for each three months of service. All incoming calls are free, and you even get your very own area code and phone number to pass out to your friends that are still chained to plain old telephones or cellphones.

And, yes, all your favorite Nerd Vittles applications are preinstalled and ready to go including weather forecasts for 1,000 airports, MailCall for Asterisk to read you your email messages, NewsClips for Asterisk to read you the news, the AsteriDex robodialer complete with a web interface to place your outbound calls and to serve up customized CallerIDs for your incoming calls, and our new GabCast (podcasting) Player for Asterisk. Last but not least, you get all of the bundled TrixBox 1.1 applications including the latest upgrade of freePBX (2.1.2), SugarCRM, Samba for Windows networking, FTP and SSH support, WebMin, PHP, MySQL, Perl, Apache, SendMail, integrated fax-to-email support, calling card billing, and more. And it all runs quite peacefully in a CentOS 4.3 Linux wrapper with the 2.6.9-34 Linux kernel which doesn't appear to have the timing problems that reared their ugly heads in CentOS 4.4 and TrixBox 1.2. We've used Andrew's trixbox numbering scheme to indicate that this build began with TrixBox 1.1 and includes the 1.1.1 updates as well as the latest versions of Asterisk and freePBX. Hence, version 1.1.2 is born. While it's not quite the latest and greatest everything that you'd find in TrixBox 1.2, it has one advantage running on almost all VMware Windows platforms: it works! And, to the Tinkerers of the World, a word of caution: don't attempt to run yum update or trixbox-update.sh on this build, or you'll break it. freePBX updates are safe using Tools->ModuleAdmin->Connect to Online Repository.

Prerequisites. To take advantage of all this magic, there are only three things you really need that aren't provided here. First, you'll want a desktop computer from a reputable manufacturer that is less than two years old. It should be running a fully-patched, current version of Windows XP with at least 384MB of RAM and 3 spare gigs of disk space. The more RAM the better, and 1GB is ideal if you'll be using your Windows desktop for other simultaneous tasks. Second, a broadband Internet connection with a network firewall/switch that hands out internal IP addresses using DHCP is required. Finally, you'll need to set up accounts with two Internet Telephony Hosting Providers (ITHPs). And we recommend you go for three! That's where the $12.50 comes in. Everything else you'll need can be downloaded at no cost using links in this article. So let's get started.

Installing the VMware Player. VMware is virtualization software which lets you run another operating system on your desktop. The TrixBox/Asterisk PBX application runs under CentOS Linux which is a RedHat Linux derivative. Your desktop is Windows XP, hence the need for VMware. The VMware Player software is free, and it lets you "play" the nv-trixbox-112 prebundled Linux application in a window on your Windows Desktop. On a current generation PC with plenty of RAM, this VMware application runs as fast as Asterisk on a dedicated Linux machine so don't worry too much about performance. Based upon our testing, it's a non-issue. We're going to provide the preconfigured application (all 658.29 megabytes of it!), but you'll first need to download the free VMware Player and install it on your Windows system. Just follow the prompts and accept the defaults. Once the install completes, reboot your Windows machine.

Today's Game Plan. As was true in version 1 of nv-trixbox, what we've done is build a TrixBox 1.1 system from the ground up. Then we loaded all the Linux, TrixBox, and freePBX updates through version 1.1.1 in addition to the latest builds of Asterisk and freepBX. Then we added the dozens of enhancements which we write about each week. Finally we configured the system so that it's ready to go ... out of the box! Once you secure the system with your own passwords and plug in the account names and passwords provided by your ITHPs, you're all set. We'll walk you through plugging in IP telephones, or regular cordless telephones such as our Vtech favorite (below) using a Sipura SPA-1001 (under $60 on Froogle), or downloading a free IP softphone. And, in about 15 minutes, you're done! Phones ring, voicemail works, voicemail messages get delivered to your email account, and music on hold works. We've even provided a working Stealth AutoAttendant that we'll tell you about shortly. And, for all our Mac fans, not to worry. VMware will have a player for your shiny, new Intel-based Mac shortly. Sign up for the beta here.


While you're enjoying your new phone system, you can read all about TrixBox and Asterisk and freePBX using our Quick Reference Guides, and then you can reconfigure the system to your heart's content. If you happen to break something, simply start over by reinstalling the VMware image (which hopefully you will zip up and burn to a CD for safekeeping). In exchange, you'll avoid the all-day knuckle drill of getting everything set up again from scratch. For those that are already TrixBox addicts, you may want to install this version just to take a look at how we've integrated most of the tips and tricks we've written about this past year. And feel free to share your own enhancements as comments to this article. We'll update the VMware image from time to time to take advantage of everyone's suggestions.

Let me also offer my usual apology to our foreign friends. This project necessarily required some assumptions in order to preconfigure everything. So here they are. We've assumed that you live in the United States, and that you place calls by dialing a 1 + a 3-digit area code + a 7-digit number or by dialing a 3-digit area code and a 7-digit number. Our out-of-the box configuration can be easily changed to support other telephone systems and dialplans around the world. Ninety per cent of our readers are in the United States so the system was built with that in mind. We've also left international calling out of the dialplan. It, too, can be added easily. The reason we left international calling out was to minimize the risk of abuse and associated financial problems. While many international calls are free or almost free with the providers we are recommending, there are numerous locations (including most countries surrounded by water not to mention cruise ships circling the globe) where telephone calls are still VERY expensive. Our recommendation is to adjust your dialplan to accommodate international calls where you know what the cost of the calls will be and you're willing to absorb those costs. One other cautionary note, and we'll get started. As configured, this system does not support 911 calls. Some ITHPs support 911, but the ones we're going to be talking about today do not. So plan accordingly NOW!

Finally, a word about bandwidth. This application is huge. The download weighs in at over 700MB. Don't even try it with a modem! Bandwidth to cover downloads costs money. We've sprung for a terabyte of bandwidth each month just to support downloads of this application ... which is and always will be free. Funding for this bandwidth was provided by some generous readers of our past columns. Thank you! If there are sufficient future donations during the coming months, we'll buy additional bandwidth. Otherwise, the application will vanish when the terabyte of bandwidth is exhausted. It will be available again on the 11th day of the coming month until the terabyte is once again exhausted. So, as they say, the early bird ...

Installing nv-TrixBox 1.1.2a. After you have the VMware Player installed, you're ready to download today's application. If you know how to use BitTorrent, please grab the torrent file from here and save our precious bandwidth. Otherwise, our good friends at VMwarez.com and MojoMonster.com have agreed to host this download. So just click here or BubbaPCguy's mirror, and download the file. If, for some reason, those sites are down, you can download the image from our site by clicking here. Then save the zipped file to your Windows Desktop.

Once the download finishes, click on the nv-trixbox-112a.zip file on your Desktop. Choose extract all files. When prompted for the destination to unarchive the files, type C:trixbox and press Enter. Have a cup of coffee while the archive decompresses. When it's finished, run the VMware Player. Accept the license agreement and then browse to the trixbox folder on Drive C and select trixbox.vmx. If you get an error about a missing IDE drive, just tell VMware not to look for it again and continue. When prompted whether to create a new identifier, choose Create and click OK. The Linux Kudzu Configuration Utility may load advising you that it can't find my network card in your computer. Move your cursor to the VMware Player window and click once to give it focus. Then press Enter to run the utility. With Remove Configuration highlighted for the network card, press Enter again. When Configure your network card is highlighted, press Enter again. Finally, when the Configure TCP/IP screen appears, press the Space Bar to select Use Dynamic IP Configuration. Then tab to the OK button and press Enter. Linux will whir away for a minute or two and boot your TrixBox system.

At the Linux login prompt, type root for your username and press Enter. Then type password for your password and press Enter again. We're not going to remind you to press Enter any more. After entering commands in Linux, you press Enter to execute them. Now you're an expert! Once you're logged in, your TrixBox server will tell you the private IP address for your system (to access it with a web browser). Write it down! Now issue the command ifconfig and write down the MAC address of your network card: HWaddr. We'll need them both in a minute.

NOTE: If, for some reason, you get an error about a mismatched IP and MAC address when trixbox-112a loads or if no IP address is shown once you log in as root, it means you've lost Internet connectivity. You can restore it easily once you're logged into your system as root. Just issue the following commands:

cd /root
./fixmacaddr

Securing Your TrixBox System. You don't leave your keys in your car at a shopping center, and you don't run a Linux system with a root password of password. There are numerous passwords on this system. If you're going to be the one and only administrator, we recommend setting them all to the same, secure password. Don't forget it, or you go back to Go! Now enter the following commands to reset the passwords:

passwd
passwd admin
passwd-maint
passwd-amp
passwd-meetme

We don't recommend exposing your Asterisk system to the public Internet unless you are an expert in all things Internet ... especially security. This is even more true with this TrixBox system. There are lots of applications running that crackers love to attack: SendMail, FTP, Windows Networking, Apache Web Server, PHP, and even Asterisk. As delivered, this system includes a Windows share of the entire TrixBox system which is wide open and requires no password to access it. This makes it easy for you to copy stuff to your new system from any Windows, Mac, or Linux machine. It also makes it incredibly easy for an outsider to totally destroy your system. That's why you made a backup CD of the nv-trixbox-112.zip file. Right?

Securing and Activating A2Billing. This web-based application allows you to generate and issue calling cards to individuals so that they can place calls remotely through your Asterisk server. If you've always wanted to be just like AT&T, here's your Big Chance! There's very little that you can do with an AT&T calling card that can't be done as well or better by you using A2Billing. And, it won't take an M.B.A. to undercut AT&T's calling card rates and still make buckets of money. All you need now are a few customers. But first, a word of caution. Assuming your Asterisk server has web exposure on the Internet, you need to secure the admin and root passwords in this application whether you use it or not. To access the application, go to http://trixboxIPaddress/a2billing/ using the actual internal IP address of your Asterisk server which you wrote down. Log in as root with a password of myroot. Click on the ADMINISTRATOR tab in the left column and then click Show Administrator. Now click on the Edit button beside each of the two administrator accounts and change the passwords to something secure. If you really would like to learn more about it, documentation for the application is available here. And, if you decide to use the application, you'll need to uncomment six actual dialplan lines in extensions_trixbox.conf and reload Asterisk. But we'll save that for another day.

Securing SugarCRM Contact Management. TrixBox includes the best open source contact management application on the planet, SugarCRM. You access the application with a web browser: http://trixboxIPaddress/crm/ substituting the private IP address of your Asterisk box, of course. Specify admin for your username and password for your password. Whether you use the application or not, change the admin password. It's easy. Just click the Administrator link under Welcome admin. Then click the Change Password button. Complete documentation for the application is available here. If contact management is your thing, knock yourself out, and we'll talk to you next spring when you finish getting everything set up to run your business. It's a great product, but be prepared to invest lots of time in the project if you expect to use it productively.

Reserving An IP Address in Your Router. Your PBX has to consistently boot up with the same IP address or your phones (and calls) won't be able to find the Mother Ship. Since we're using DHCP to initially obtain the IP address, we need to tell your router to always hand out this same address to your TrixBox system. Almost all routers make it easy to preassign DHCP addresses. Use a web browser to access your router's configuration screens. What we're looking for is generally under the tab for LAN IP Setup or DHCP Configuration and is usually called something like Reserved IP table. Just add an entry and call it Asterisk PBX and specify the IP address and MAC address that you wrote down above. Now each time you reboot your Asterisk server, your router will assign it this same IP addreess.

Linux 101. If you're new to Linux and/or Asterisk, here are a few commands you'll need from time to time. And, if you didn't already know, you don't just pull the plug on a Linux system ... even if it's running in a window on your Windows Desktop. Linux caches lots of stuff to speed up processing. So always shut things down gracefully if your data matters.

df -h ... Free disk space remaining on your Linux system. Be sure you always have the required 3GB of Windows space for this app!
logout ... Logs you out of the Linux system.
Ctrl-Alt ... Gives your Windows cursor back and lets you run other Windows apps until you click again in the nv-TrixBox window.
asterisk -r ... Runs the Asterisk Command Line Interface (CLI) after you've logged in as root.
quit ... Exits gracefully from the Asterisk CLI
amportal restart ... Restarts Asterisk.
/etc/webmin/start ... Starts up WebMin, the Swiss Army Knife of Linux. Access it with a web browser: https://TrixBoxIPaddress:10000/
shutdown -h now ... Shut down your Linux system right now. Wait for VMware Player window to close!
shutdown -r now ... Reboot your Linux system right now.
nano -w filename ... Edit any file in your Linux system. Ctrl-X, Y, then Enter saves your changes.
cd dirname ... Changes to another directory below current directory.
cd /dirname ... Changes to another directory below the root directory.
ls ... The Linux equivalent of dir to get a directory listing.
cd /var/www/html ... Home of the TrixBox web server files accessed at http://TrixBoxIPaddress/ or https://TrixBoxIPaddress/
cd /var/lib/asterisk/agi-bin ... Home of the TrixBox and Asterisk scripts for Asterisk apps.
cd /var/lib/asterisk/sounds ... Home of Allison and all the voices prompts that make up the Asterisk system.
cd /etc/asterisk ... Home of all the Asterisk, TrixBox, and freePBX configuration files.

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 three choices. 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. The preconfigured extensions are set up as 500 through 508 with voicemail activated for extension 500 presently. To keep things simple, enter House Phone as the Display Name. Enter 500 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 611 to get a current weather report or dial 511 to get today's news headlines.

Using an IP Softphone. If you're like us, you've gone to all this trouble downloading your fancy new PBX, and you sure as hell don't want to wait a week for your Sipura 1001 to arrive before trying it out. So here's the quick and dirty solution. There's software that will run on your Windows, Mac, or Linux desktop that acts like a telephone. You obviously need speakers and a microphone on your system for this to work. Assuming you have those, go to CounterPath's web site and download X-Lite for your favorite OS. There's a manual there, too, but you probably won't need it. Once the download completes, click on it to start the install. Accept the obnoxious license agreement and install the software in the default directory. Unless you want X-Lite to load every time you restart your machine, uncheck the Launch on Startup checkbox. Reboot your system and, if it's also running your TrixBox system, restart it first. Then run the X-Lite application. Click No to turn off X-Lite's spyware. When the "SIP Accounts" window opens, click the Add button and fill in the following data:

Display Name ... House Phone
User name ... 500
Password ... 1234
Auth. User Name ... 500
Domain ... the IP address of your TrixBox system

Leave the other defaults and click on the Check Voicemail tab. For the Number to Dial to Check Voicemail, enter *97. Then click OK and Close. If your Windows Firewall is doing what it's supposed to, it will probably block the connection to your Asterisk system. When prompted, tell it to allow future connections. If this happens and X-Lite does not register with your Asterisk system, click the Down Arrow at the top of the softphone (Show Menu). Click SIP Account Settings, Properties, OK, and Close again. You now should be registered. Dial 611 and get your first weather report. To exit from X-Lite, click the Down Arrow and then Exit.

Using a SIP Phone with Your System. There's loads of SIP Phone hardware in the marketplace, some better than others. We've written about some of them on Nerd Vittles, and you can use Google or the Asterisk forums to get a good feel for which ones work and which ones are a waste of money. If you want the bleeding edge phone that supports virtually every feature that Asterisk has to offer, then the GrandStream GXP-2000 is the phone for you. We use one and love it. Some of my colleagues think it is better suited for the non-business environment. In any case, it's a great phone to learn about Asterisk. With careful shopping, you can find one for about $80. Don't buy support or an extended warranty. They're both a waste of money. You configure the phone almost identically to softphone shown above. For home use, we still think the SPA-1001 and a good 5.8 GHz cordless phone system with multiple handsets is the way to go.

Adding Internet Telephony Hosting Providers. Just as you need an account with an Internet Service Provider to reach Google or Yahoo or Dreadful AOL, if you want to make phone calls to folks with Plain Old Telephones outside your Asterisk system, then you've got to have telephone trunks to carry conversations from you to them and back again. For the default system today, we've preconfigured it to support an outbound trunk from VoipDiscount.com and an inbound and outbound trunk from StanaPhone.com. Before you sign up for anything, read our two articles about these providers by clicking on the links in this paragraph. In a nutshell, VoipDiscount.com provides incredibly cheap outbound calling to a number of countries. However, you have to cough up about $12.50 every three months to keep your account "current." They're also a little slick in that they frequently change calling rates and calling locations which are free. Having said all that, it's still the best calling deal on the planet. You just need to understand the ground rules and the slippery slope issues so you don't get blind-sided. StanaPhone provides free DID numbers in a New York area code and free incoming calls for those with an account. Even their charges for outbound calls are quite reasonable. To get your system working, you'll need to go to each of these providers' web sites using Internet Explorer on a Windows PC, sign up for an account, and download their softphones. That's the only way you can figure out what your account name and password are. We also recommend you put $10 in your StanaPhone account. Then, based upon reports from lots of users, you'll never have to worry about them disconnecting your free incoming service or your free phone number. Again, read our two articles which will tell you everything you need to know. Don't worry about all the settings, we've taken care of all of that for you. The objective is to get your free phone number and your account names and passwords. Then we'll plug those into your Asterisk system so you can start enjoying free incoming calls and mostly free outbound calls. Once you get your account numbers and passwords, move on to the next step, and we'll show you how to plug them into your Asterisk system and begin making and receiving calls.

There are others who want a local phone number and more reliable service. For them, we continue to recommend TelaSIP. $14.95 a month gets you unlimited calling in the U.S. and a local phone number in your choice of area code. If you want to start out on a pay-as-you-go plan, $5.95 a month gets you a local phone number and 2¢ per minute calls in the U.S. They don't provide a lot of hand-holding, but their service is rock-solid reliable. For a list of all our service provider reviews, go here. Or just read our Internet Telephony Provider Shootout to see why TelaSIP remains our top pick. If you decide to go with TelaSIP, our Newbie's Guide to TrixBox will show you how to configure it.

Configuring Your TrixBox System. This should take you less than five minutes! We've eliminated most of the configuration hassles with your new Asterisk system by preconfiguring almost everything. About all that you'll need to do to get a fully-functioning system is to plug in your account names and passwords for your two ITHPs and enter your email address for delivery of your voicemails and faxes. Here's how.

Using a web browser, point it to the IP address of your new TrixBox system. When the TrixBox Main Menu appears, click System Administration. When prompted for your username, enter maint followed by the password you configured for your system above. When the Configuration and Administration Menu appears, click freePBX. freePBX is another open source project that puts an incredibly simple but complete web interface on your Asterisk PBX. When the freePBX Main Menu displays, click Setup. Now click Trunks in the left column of the display. On the Trunks setup screen in the right column, you'll see that we've preconfigured two trunks: one for voipdiscount and one for stanaphone. Click on SIP/voipdiscoun to display the voipdiscount setup screen. Scroll down to the PEER Details section. Replace yourname with your account name in three places: authuser, fromuser, and username. Replace yourpassword with your password in the line which reads secret=yourpassword. Now scroll to the Registrationsection at the bottom of the screen. Replace yourname:yourpassword@sip.sipdiscount.com with your actual account name and password. Leave everything else as it is. When you finish, click the Submit Changes button and then the Red Bar to reload Asterisk.

We're going to make similar changes in the Stanaphone trunk settings. Click on SIP/stanaphone to display the StanaPhone setup screen. In the Outbound Caller ID field, enter the 10-digit phone number you were assigned by Stanaphone. In the Peer Details section, replace youraccountnumber in username=youracctnumber with your assigned account number, not your phone number! Replace yourpassword in secret=yourpassword with your assigned password. Repeat the drill in the User Details section on the form. Then, in the Registration String, carefully plug in your account number, then a colon, then your password, then @sip.stanaphone.com/, then your assigned 10-digit phone number. Leave everything else as it is. When you finish, click the Submit Changes button and then the Red Bar to reload Asterisk.

If you want voicemails delivered to you by email, you'll need to plug in your email address. Click on Extensions in the left column of freePBX. Then click Home - 500 in the right column to display the settings for extension 500. Scroll down to the VoiceMail and Directory section of the form, and enter your email address in the email address field. Then change the Email Attachment field to Yes. If you'd like the system to automatically delete your voicemails after emailing them to you (with the message), change the Delete Vmail option to Yes. When you finish, click the Submit Changes button and then the Red Bar to reload Asterisk. Your system now is fully operational.

If you'd like to add support for transferring calls to your cellphone, click Misc Destinations in the left column of freePBX, and then click Cellphone in the right column. Enter your 10-digit cellphone number in the Dial field. When you finish, click the Submit Changes button and then the Red Bar to reload Asterisk.

If you'd like to add fax support so that incoming faxes to your Stanaphone number get emailed to you, click on General Settings in the left column. Scroll down to Email address to have faxes emailed to and plug in your email address. Do NOT change the origination email address, or you won't receive anything. When you finish, click the Submit Changes button and then the Red Bar to reload Asterisk.

Setting the Default Time Zone. Your TrixBox system is set to use Eastern daylight or standard time (depending upon the time of the year) as the default time zone. This matters when you're scheduling reminders and wake up calls. If it's not correct for your location, the easiest way to change the time zone is using WebMin. Log into your server as root and issue the following command to start WebMin: /etc/webmin/start. Then, using a web browser, go to: https://TrixBoxIPaddress:10000/. Log into WebMin with the username root and the password you assigned to your root account. At the WebMin Main Menu, click Hardware then System Time. Scroll down to the TimeZone section and use the pull-down menu to select the desired time zone. Then click the Save button immediately below the Time Zone field. When you restart your TrixBox system, the time zone will be correct, and WebMin will automatically be shut down.

Taking Your TrixBox For A Spin. For a list of Feature Codes supported by your new system, click on Feature Codes in freePBX and print the list. Pick up a phone and dial any one of them. To make an outgoing call, take a phone off-hook and dial either a 10-digit number in the U.S. or 1+10-digit number. Then, using a cellphone or someone else's POTS phone, dial your Stanaphone number to be sure it's working. You should get a welcome message, and then your phone or softphone will ring.

We call the welcome message a Stealth AutoAttendant. What that means is that, while the message is playing, you can do some other things with your system. For example, by pressing 1, your call will immediately ring extension 500 on your system. Pressing 2 will ring extension 501. Pressing 3 will ring your cellphone. Pressing 8 and entering 56789# will give you dial tone to make a long distance call through your PBX. Pressing nothing will cause all of the extensions on your system to ring two seconds after the message completes.

DISA Security. Getting remote dialtone can be a dangerous thing in the wrong hands so let's put your own password (of any length) on the DISA function that is triggered by pressing 8 above. Click DISA in the left column of freePBX and then DialTone in the right column. Now enter a PIN that will let you sleep well at night ... knowing that you are paying for all outbound DISA calls. When you finish, click the Submit Changes button and then the Red Bar to reload Asterisk.

What Time Is It? On some computers (mostly high end ones as it happens), VMware has a hard time keeping the correct time. Since many telephony applications are time sensitive, you'll want to monitor this for a few days and see if your system is having problems. Logging in to your server and typing date will display what time your computer thinks it is. We've added a cron job to this application that updates the time using NTP every 10 minutes. That should resolve the problem. If not, post a comment and let us know.

The Nerd Vittles Collection. We'll wrap it up for this week by pointing you to some tutorials for the Nerd Vittles applications that are preloaded in this TrixBox build. AsteriDex and MailCall require some quick configuration so take a look at the tutorials. You also may want to change the Telephone Reminders default password of 123 in line 28 of /etc/asterisk/extensions_trixbox.conf. If you do, remember to restart Asterisk for the change to take effect.

AsteriDex - The Poor Man's Rolodex (http://TrixBoxIPaddress/asteridex/)

NewsClips for Asterisk - Get the News By Telephone (Dial 511)

MailCall for Asterisk - Get Your Email By Telephone (Dial 555)

Weather Reports by Airport Code - Get the Latest Weather Forecasts for 1,000 U.S. Cities (Dial 611)

Telephone Reminders for Asterisk - Appointment Reminders By Telephone (Dial 123)

GabCast Studio for Asterisk - Create and Play PodCasts Using Your Phone (Dial *422 and 422)

Where To Go From Here. If you're new to the Asterisk world, you have lots of fun (and learning) ahead of you. The best place to start is our Newbie's Tutorial. We've already done most of the work for you. It's an easy read which covers many topics that we didn't get to today. So start there. You'll also want to get plugged into the TrixBox Forums. That's the place to ask questions after you do some reading. Posting support questions on Nerd Vittles just doesn't work because of the cumbersome blog format. Don't email me questions either! We only accept thank you notes. Finally, take a look at our catalog of articles, projects, and Asterisk resource links. You'll find just about everything you'll ever need there. Enjoy!

Nerd's Corner. If you've been following TrixBox developments recently, you know that there were some technical problems with TrixBox 1.2 on some platforms, especially VMware builds such as our bundle. We don't work under the hood of our car, and we're not especially comfortable under the hood of Linux or Asterisk either. So, it's been a difficult couple of weeks trying to come up with a mix of products that provides the latest Asterisk and frePBX builds as well as a stable operating environment. Thanks to Rob of freePBX fame and Bubba, one of the very best troubleshooters in the TrixBox business, we've come up with a compromise package that works great with VMware and the Nerd Vittles goodies, but could still use a little debugging for anyone that wants to run it on a standalone Linux machine. Why? Because we got everything to work reliably except zaptel which never would compile on our VMware platform. Our solution was pretty simple. We just disabled it in /etc/asterisk/modules.conf because zaptel isn't supported under VMware anyway. And, no, Asterisk doesn't use it for timing any longer so the missing zaptel module shouldn't cause you any headaches. If one of the geniuses gets it working again, we'll post an update in a comment to this article. But, as we said, zaptel is an academic exercise in the VMware world anyway so ... not to worry! Zaptel has been fixed in the version 2a image which is now available for download.



Nerd Vittles Demo Hot Line. You now can take a number of Nerd Vittles projects for a test drive... by phone! The current demos include NewsClips for Asterisk (latest news headlines in dozens of categories), MailCall for Asterisk with password 1111 (retrieve your email by phone), and Nerd Vittles Weather Forecasts by U.S. Airport Code. Just call our number (shown in the left margin) 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 compliments of Google. 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.

Hosting Provider Special. Just an FYI that the Nerd Vittles hosting provider, BlueHost, has raised the bar again on hosting services. For $6.95 a month, you can host up to 6 domains with 30GB of disk storage and 750GB of monthly bandwidth. Free domain registration is included for as long as you have an account. That almost doubles last month's deal, and it really doesn't get any better than that. Their hosting services are flawless! We oughta know. We've tried the best of them. If you haven't tried a web hosting provider, there's never been a better time. Just use our link. You get a terrific hosting service, and we get a little lunch money.


Some Recent Nerd Vittles Articles of Interest...

Introducing the Cisco 7970 WonderPhone … Or Is It?

Cisco 7970

We didn't know quite how to begin this article so we decided to try and find a picture that sums up what you're up against installing a Cisco 7970 color IP telephone with Asterisk®. The disturbing part of this photo is that it shows the lengths to which Cisco will go to provide literally picture-perfect documentation for how to hang this phone on a wall while there is close to ZERO documentation for how to use it as a SIP telephone with anything other than Cisco's proprietary CallManager telephone system. It's almost like they don't want it used that way. LOL! Since the entire world is moving to SIP, Cisco obviously needed to be able to say they supported SIP ... but just barely. If you've never had to deal with Cisco or, better yet, Cisco's web site, lucky you! For those of us that ran Internet services in a former life, there was Cisco or Cisco when it came to routers. Luckily, that's not the case in the IP telephony business, and fortunately it's now changed in the router business as well. Guess why? Creativity and software quality have gone down the rat hole. And Cisco shareholders wonder why their company is losing market share.

It wasn't quite right to reduce Cisco's beautiful (and I do mean beautiful) new COLOR IP telephone to a nuts-and-bolts image. But we're trying to paint a picture of how it works, not how it looks. The good news for Asterisk users is that IF you ever get the 7970 working with your Asterisk system, you'll never go back. The quality of calls with the Cisco 7970G is head-and-shoulders above all of the competition. Embarrassingly good! Having said that, it's more than a little disappointing to encounter Version 8 of their SIP firmware and discover that it functions about like a .8 beta release of most telephony software. Many things don't work. Some buttons still crash the phone. And it appears that Cisco has little or no intention to make things much better ever. You might be asking, "Why would a company act like this?" It's really pretty simple: monopoly (they wish!) and money (ditto!). The phone can be purchased for under $500 from many on line retailers such as our favorite (shown above). The CallManager license adds another $250 to the retail price of each and every phone. You'd want a monopoly, too, with that sort of pricing structure.

SPECIAL NOTE: We have one, gently used Cisco 7970 for sale. It actually was used to prepare this article. Make us an offer, or we'll make you a deal you can't refuse. If you're interested, contact us.

So how do we get the damn phone to work with Asterisk? Well, here's where it gets a little tricky. The first thing you should do is watch Kerry Garrison's great video on setting up the phone. You'll find it at AsteriskTutorials.com. What you'll learn in the tutorial is that most of the configuration of the phone is done through XML config files which are ordinary text files with nested (special) keywords in brackets that tell the phone how and what to do when. You then copy these config files to a TFTP server and reboot the phone after pointing it to the IP address of your TFTP server. If you don't have a TFTP server, Kerry will even tell you about a great one for Windows that you can download for free: TFTPd32.

Welcome to TFTP Hell. As with everything Cisco, there are a few instant gotcha's with the installation process. First, Cisco provides no documentation with the phone and has published no documentation on the XML config files. Why? Monopoly and Money. The official answer would be that you don't need to know nothin' 'bout no stinkin' config files. Just use (buy!) their CallManager, and it generates the config files out of thin air. Now you get it. The only problem with the Cisco Scenario is that then your phone will only talk to the CallManager, not Asterisk. In fairness, we should note that Cisco documentation is available for the SIP firmware on the phone, but it all pertains to CallManager. Big surprise there. And, by the way, be sure to order the phone with SIP firmware, not SCCP, and a 7970 Power Supply or you're really S.O.L. with a dim phone to boot. So it's Go Back to Go time.

The second gotcha is that the phone has to know where to find the TFTP server before you can change anything. You can't manually set the TFTP IP address with something like telnet or ssh. That would be too simple. You can set it on the phone keypad provided the existing firmware is configured to allow changes. The default firmware load isn't. So what's left? Well, you'll need a DHCP server that understands Option 66. Most don't. What Option 66 does is store the IP address of your favorite TFTP server so that when a client obtains an IP address for IP access, it also can obtain an IP address for a TFTP server containing updated config files... or new firmware. If you don't have a router with DHCP that supports Option 66, not to worry. TFTPd32 includes it as well.

Gotcha #3 is that you can't just run TFTPd32 on your LAN and expect things to work. Why? Because your existing LAN probably already has a DHCP server (without Option 66) that's already handing out IP addresses. Can't we just disable our existing DHCP server? Absolutely, but you'll wipe out any preconfigured IP addresses that depend upon your DHCP pool of IP numbers which is the way most mere mortals reserve IP addresses on LANs without having to manually configure IP addresses, and subnet masks, and DNS server addresses for every device on your LAN. So ... the quickest, pain-free way to get started is to boot up a Windows machine on your network. Then replace the network cable connected to your PC with a crossover cable. Now connect the other end of the crossover cable to your shiny new Cisco phone. When the phone is rebooted, it will find the only remaining DHCP server in town (with Option 66 which you must set to match the first number in your DHCP pool since this number will be grabbed by your Windows machine when you plug in the crossover cable): the TFTPd32 DHCP server. If this sounds convoluted, hang on to your hat 'cause we're just getting started. Remember, we haven't changed anything yet!

Cisco 7970The Right Way, The Wrong Way, and The Cisco Way. While we're on a roll with DHCP and TFTP, let's assume for a moment that we already have your phone making calls through your Asterisk server which it isn't, of course. Now you've decided that you'd like a different ring tone or picture on your phone. Can the phone handle it? Absolutely. Is it intuitive? No way. To perform either of these feats of magic, the drill goes something like this. You create another XML config file for both the pictures and the ring tones. Then you load the config files in a secret place on your TFTP server. Then you copy your new ring tones and cover art to the same secret locations. Now you go to each phone and drill down through layer after layer of menu options until you finally come to a screen which will display available ring tones or background images. The phone then will kick off a TFTP session using your TFTP server (which hopefully is still on line). Once it retrieves the file names or thumbnails after querying the XML config file, you get a list of choices. Highlight the desired choice and the phone makes another TFTP connection to download the desired file into your phone. Rube Goldberg would be proud of what Cisco engineers have been able to dream up. I'd fire all of them. Here's a silly idea. Ever heard of HTTP and a web page. There's even HTML support already on the damn phone. Of course, it doesn't work, but who cares. Why fix it when you can dream up an installation scenario like this one? Who in their right mind would ever design an installation system which forces you to keep an insecure TFTP server running on your network all the time?

Call us picky, but here's another little detail. One disgruntled employee with a crossover cable and a notebook computer running TFTPd, and your entire Cisco phone system runs the very real risk of being toast. The problem with Option 66 is that whoever has physical access to your phones can wreak all sorts of havoc since the phones will connect to any available TFTP server. Holding down the pound key for 10 seconds while the phone reboots and then pressing all 12 buttons on the phone's dialpad (in order), and your phone is now MY PHONE. And, this is from a company that has been thinking about network security longer than almost anybody. We should point out that there is a phonePassword field in the config file which defaults to blank, and it may or may not help on the security front. My guess is that most companies never touch it. And, with the ink barely dry on our maintenance contract and given the other configuration quirks of this phone, we were reluctant to test this password feature for fear of turning the device into little more than a boat anchor. We'll leave that testing for you to try out on your new $500 phone. If there's some other, more obtuse security feature (such as tftpDefault) that we've missed, we're pretty confident that some diehard Cisco cheerleader will point it out to us in a comment shortly. In the meantime, we'll continue our head scratching. Memo to Cisco: There are lots of reasons that folks expect documentation with their equipment. Not the least of these is SECURITY.

Earth to Asterisk. Can You Read Me? Well, enough of the Cisco bashing. We really do want to get this phone working with Asterisk. And did we mention? We wouldn't trade the Cisco 7970 for ANY other phone on the planet. The voice quality with both the headset and the speakerphone is that good! For openers, to use the phone with Asterisk, you'll need at least Asterisk 1.2 to get any connectivity. Asterisk 1.09 won't cut it. And the 7970 ought to work fine with any version of TrixBox as well as Asterisk@Home versions going back to 2.0, all of which include at least Asterisk 1.2. Now for the fun part.

First, download the Sample Config Files from Kerry Garrison's AsteriskTutorials.com site. Unzip the file which will give you a configs folder with three files. Turn your phone over and write down the MAC address which is the number beginning with 00 and consists of 12 hex digits. Rename the SEP000E84E8E3D5.cnf.xml file substituting the MAC address you wrote down for 000E84E8E3D5 in the existing file name. If this config file name doesn't include the actual MAC adddress of your phone, your phone won't process any updates. Now press the Settings button on your phone. It's the one on the right side with a check mark on it. Then press 5, 3 and write down the version of the firmware that's loaded on your phone. If it doesn't start with SIP, send it back and tell the vendor that you requested a Cisco 7970 with SIP firmware. Unless the firmware version is SIP70.8-0-3S, you'll need to change the firmware version in both the SEP config file we renamed above and also in the XMLDefault.cnf.xml file. Use the Windows TextEdit program to search for SIP70.8-0-3S and replace it with the firmware version you wrote down.

Before we get too far along, let's be sure that your phone is locked in such a way that you can't manually specify a TFTP server's IP address. Press the Settings button again and then 2, 8. A closed padlock should appear in the upper right corner of the display. Pressing **# will attempt to unlock the phone. The padlock should open within a few seconds. If so, there may also be a new, gold Edit tab above the second (of six) softkey buttons on your phone. If the Edit button is not dimmed out, then you can press it and manually enter an IP address for a TFTP server. Otherwise, you'll need to go through the knuckle drill we 've previously outlined using a crossover cable. Be aware that each time you change or reenter the TFTP IP address, your phone will automatically reconnect to the TFTP server to check for updates as soon as you Save the IP address. This is worth remembering because it's an easy way to force a config reload on your phone.

We're almost ready to set up an extension to connect to your Asterisk server. But first, you'll need to be sure you have created an available SIP extension on your Asterisk system. Using AMP or freePBX, choose the Extensions option and Add a new SIP extension. Choose an available extension number and password. In the Device Options section, set the qualify field to No and set the mailbox option to something like 500@default instead of 500@device (using your chosen extension number, of course). Set up a voicemail account with the same password you specified for the extension. Then Submit your changes and click the Red Bar to reload Asterisk.

Now we're ready to edit the SEPxxxxxxxxxxxx.cnf.xml file using NotePad. First, search for 192.168.5.50 and replace every instance with the internal IP address of your Asterisk box. It should come as no surprise that Cisco has a different way of handling SIP connections through NAT and a firewall, and it's not yet compatible with the way the rest of the world (including Asterisk) do it. So, for the time being, forget using a 7970 outside your firewall unless you enjoy Water Torture. Beginning on line 10 of the file, you'll see two entries that look like this:

<datetemplate>M/D/Y</datetemplate>
<timezone>Pacific Standard/Daylight Time</timezone>

The top line tells the phone to display the date as MO/DA/YR with time in 24-hour military time. If you'd prefer a 12-hour clock with am and pm indications, add a lower case a immediately after the Y. Change Pacific on the second line to match your time zone. Leave the rest of it alone unless you live in a freaky Daylight Savings location. If you do, you'll know what I'm talking about. Otherwise, don't worry about it.

The 7970 theoretically can support 8 extensions on the eight buttons along the top right side of the phone. That only seems to work if all the designated extensions are housed on the same Asterisk server, i.e. one IP address. Here's what a typical entry for an extension should look like. To add another one, just duplicate the code, increment the line button number, and enter the appropriate settings for the next extension.

<line button="1">
<featureID>9</featureID>
<featureLabel>Ext. 400</featureLabel>
<proxy>192.168.0.108</proxy>
<port>5060</port>
<name>400</name>
<displayName>Ward Mundy</displayName>
<autoAnswer>
<autoAnswerEnabled>2</autoAnswerEnabled>
</autoAnswer>
<callWaiting>3</callWaiting>
<authName>400</authName>
<authPassword>1234</authPassword>
<sharedLine>false</sharedLine>
<messageWaitingLampPolicy>1</messageWaitingLampPolicy>
<messagesNumber>*97</messagesNumber>
<ringSettingIdle>4</ringSettingIdle>
<ringSettingActive>5</ringSettingActive>
<contact>7b452e87-4496-4762-e11f-b26751a1884b</contact>
<forwardCallInfoDisplay>
<callerName>true</callerName>
<callerNumber>false</callerNumber>
<redirectedNumber>false</redirectedNumber>
<dialedNumber>true</dialedNumber>
</forwardCallInfoDisplay>
</line>

We've shown the entries that worked for us. Most of the entries can be left alone. Just change the Proxy entry to the IP address of your Asterisk box. Then enter your extension number in featureLabel, name, and authName. Enter a displayName for calls from this extension, and enter your extension password in authPassword.

In addition to using these eight buttons for Extensions, you also can use them for Speed Dial entries. And these entries can be any sequence that your Asterisk server understands. For example, you could assign *8 to a button to do a Call Pickup. Here's what the entry would look like to assign this to the eighth button:

<line button="8">
<featureID>2</featureID>
<featureLabel>Call Pickup</featureLabel>
<speedDialNumber>*8</speedDialNumber>
</line>

Aside from assuring that the featureID code is 2, you can assign a Speed Dial entry to any button number and label it any way you choose. The speedDialNumber should be the exact string of numbers you would normally dial to place the call using the dialpad of your phone.

There are some other entries in the Config file, you'll want to take a look at. Near the bottom of the file you'll find settingsAccess. If this is set to zero, you'll want to change it to 1 so that you can avoid the TFTP knuckle drill we've outlined above. Once this configuration change is loaded into the phone, you should be able to manually enter a TFTP IP address as we described above.

Finally, there's a group of entries in the vendorConfig section of the file that determine when the 7970's display will be active and for how long. The entries look like this:

<daysDisplayNotActive>1,7</daysDisplayNotActive>
<displayOnTime>08:00</displayOnTime>
<displayOnDuration>10:30</displayOnDuration>
<displayIdleTimeout>01:00</displayIdleTimeout>

These are self-explanatory for the most part. The first line tells the phone which days of the week not to turn on the display automatically. If you want it on every day, delete 1,7. The displayOnTime tells the phone what time of day in your time zone to turn on the display (24 hour clock). The next line tells the phone how many hours and minutes to leave the display lit. And the last line tells the phone how long to leave the phone lit up when you manually turn on the display by pressing the sixth Display button (which will display a green light when the phone display is off).

To load the configuration changes we've made above, just copy the three files in your Config directory to the default directory you set up on your TFTP server. Then unplug the phone and plug it back in once you have your TFTP server with its DHCP server configured and running.

After reading the next paragraph, we think you'll understand why we're abbreviating the implementation step with this phone. I'd venture to say that not one of our daily readers is going to buy this phone after reading our review. If some of you prove us wrong with your comments, we'll be glad to add the missing pieces. Or you can go here and find most of the information you'll need to get started. Here are a few helpful hints on replacing the default photo and ring tone on the phone. A link for dozens of ring tones appears earlier in the column. Step 2 is to create a distinctiveringlist.xml file and put it in the root directory of your TFTP server together with the .raw sound files. In the XML file, you merely list the sound files. And it looks like this:

<CiscoIPPhoneRingList>
<Ring>
<DisplayName>Fun 1</DisplayName>
<FileName>CTU1.raw</FileName>
</Ring>
</CiscoIPPhoneRingList>

To load a new Ring Tone for your first extension, crank up the TFTP server. Then press the Settings button on your phone followed by 1, 1, 2. Then follow the prompts to Select your desired Ring Tone for each extension.

You do something similar for photos except you need two PNG images for each photo you want to make available for display on the phone. One is a thumbnail (80x53) and the other is the photo itself (320x212 in 12 bit color). Don't worry about the 12 bits. The phone will convert 16 bit images, but keep the full-size images relatively small, e.g. 100K. Once you have your photos, create a Desktops folder off the root directory of your TFTP server. Then create a subdirectory inside it called 320x212x12. Using Notepad, create an XML file there and name it List.xml. Capitalization matters! Sample entries are shown below. Now copy all of your images to the 320x212x12 folder.

<CiscoIPPhoneImageList>
<ImageItem Image="TFTP:Desktops/320x212x12/MyGirlsTN.png" URL="TFTP:Desktops/320x212x12/MyGirls.png"/>
</CiscoIPPhoneImageList>

To change the desktop photo, crank up your TFTP server. Then press the Settings button on the phone followed by 1, 2. Then pick the desired photo and press the Select button. Save your change and you're done.

In theory, there are all sorts of other neat things you should be able to do with this phone. For example, there's a message waiting light. Doesn't work. Then there's a stutter dial tone with message waiting. Doesn't work. The phone is designed to display a listing of Phonebook Entries out of an XML file on your web site when you press the Directory button. Doesn't work. It's also supposed to display a page of helpful tips when you hit the question mark button. Doesn't work. Then there's the ability to run a web-based XML application. No cigar there either. And, when you answer a call on the phone, don't dare press the Transfer button unless you like watching core dumps. Fortunately, # transfers still work with Asterisk. Well, you get the idea. And this is Version 8? Can you even imagine what Version 1 looked like? And the sad part of all of this: the Cisco 7970 probably has the best voice quality of any telephone we've ever used. And we've used lots of them. Here's how we've decided to use the phone in our pure-VoIP environment. It's a variant of the old adage: "Don't Call Us, We'll Call You." We put the 7970 on a separate table in our high tech office and, whenever we need to talk to someone important, we'll call from our cushiest chair using this phone. For the rest of our incoming calls and our voicemail, we'll use another phone ... that works and better supports IP telephony but sounds more like a cellphone call. So, if you get a crystal-clear call from us, you can stand a little taller knowing how important you are. It's a call from the Cisco 7970!

The Hobson's Choice for most folks boils down to this. Do you want great sounding IP phone calls with a phone that costs two to five times as much as other IP phones while giving up virtually every other feature that has made IP telephony great? While it will let you retrieve your voicemail messages from your Asterisk server, unfortunately you'll never know you have a message unless you dial in regularly and manually check. This phone has been pitched as the perfect phone for the busy executive. The first busy executive that misses an important meeting because the message waiting lamp never lit up, and this phone would be out the window. Too bad!

Perhaps more than any other American company, Cisco is responsible for getting IP telephony off the ground. So it's especially disappointing to see what an absolutely crappy job they've passed off to the Internet community as their SIP offering. If you're one of their corporate customers, we hope you'll take the time to drop a line to John Chambers at Cisco and give him your thoughts. Cisco didn't get to where they are today with software that just barely passes the smell test.


Nerd Vittles Fan Club Map. Thanks for visiting! We hope you'll take a second and add yourself to our Frappr World Map compliments of Google. 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.

Nerd Vittles Demo Hot Line. You now can take a number of Nerd Vittles projects for a test drive... by phone! The current demos include NewsClips for Asterisk (latest news headlines in dozens of categories), MailCall for Asterisk with password 1111 (retrieve your email by phone), and Nerd Vittles Weather Forecasts by U.S. Airport Code. Just call our number (shown in the left margin) 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.

Hosting Provider Special. Just an FYI that the Nerd Vittles hosting provider, BlueHost, has raised the bar again on hosting services. For $6.95 a month, you can host up to 6 domains with 30GB of disk storage and 750GB of monthly bandwidth. Free domain registration is included for as long as you have an account. That almost doubles last month's deal, and it really doesn't get any better than that. Their hosting services are flawless! We oughta know. We've tried the best of them. If you haven't tried a web hosting provider, there's never been a better time. Just use our link. You get a terrific hosting service, and we get a little lunch money.

Want More Projects? For a complete catalog of all our previous Asterisk projects, click here. For the most recent articles, click here and just scroll down the page.

Headline News for the Busy Executive and the Lazy Loafer. Get your Headline News the easy way: Planet Asterisk, Planet Gadget, Planet Mac, and Planet Daily. Quick read, no fluff.

Got a PDA or Web-Enabled Smartphone? Check out our new PDAweather.org site and get the latest weather updates and forecasts from the National Weather Service perfectly formatted for quick download and display on your favorite web-enabled PDA, cellphone, or Internet Tablet. And, of course, it's all FREE!

Tricking Out Your TrixBox

With apologies to the original Comic BookNOTE: 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.

For those that thought we’d dropped off the face of the planet, good news. Not yet. If you haven’t heard, there’s a new version of TrixBox, 1.2. And we’ve given it the old college try for a week or two with about that same results pictured in this old comic book. On some platforms, it runs just fine. On others, including our VMware for Windows machines, it’s a nightmare. The voice synthesis system is again broken, freePBX can’t reload Asterisk without completely shutting down and restarting Asterisk (amportal restart). And there appear to be all sorts of interrupt or timing problems that we’ve never seen before … going back to Asterisk@Home 1.2. We attribute many of the problems to a new version of CentOS and Asterisk, both of which are bundled into the TrixBox 1.2 package, but who knows. What we do know is TrixBox 1.2 is a little too Bleeding Edge for our taste, and most of the Nerd Vittles goodies that depend upon the Flite speech engine no longer work on many machines. We have seven systems in our testing lab (aka home) so it’s not like we haven’t tried. And others are reporting much the same thing. Our testing primarily focused on VMware builds for Windows implementations using the .iso image, and that was a total bust. So, at least for now, TrixBox 1.1.1 and the Nerd Vittles VMware Build are the way to go if you want to run a TrixBox system and Asterisk PBX on your Windows Desktop. And, steer clear of the trixbox-update shell unless you’re damn sure you have a system that is compatible with the new 1.2 code. How do you know? Beats me. With that disappointing intro, we thought we’d step back this week and cover some tips and tricks for configuring your TrixBox 1.1.1 system for the real world. And, if you’re one of the lucky ones with a machine that works reliably under 1.2, most of this stuff should work for you as well.

One other comment about TrixBox 1.2, and we’ll shut up about it. Andrew Gillis almost single-handedly puts these TrixBox builds together. And he does an incredible job with it. The issues that sometimes arise are rarely of his making. It’s usually a bug in a product he’s bundling that causes the bundle to come down like a house of cards. So, just to be clear, these problems are not of Andrew’s making. We’re confident that he put together the 1.2 build with the same attention to detail that he always employs. It just happens that this time we ended up with a rotten apple somewhere in the mix. Within a couple weeks, someone will find the culprit and there will be another clean build without the problems. Having said all that, these problems do highlight the need for Andrew to consider opening up the development process a bit so that he can get some talented assistance. Folks can’t live without a phone system for several weeks while bugs are sorted out. And, unfortunately, the old adage still applies: “You can always spot the pioneers by the arrows in their backs." The arrows in our back account for the brevity of this week’s column. Our apologies!

freePBX Feature Codes. Thanks to freePBX, your TrixBox system comes with dozens of PBX bells and whistles. These include call forwarding of many flavors, call waiting, zap barge, do not disturb, gabcast, talking clock, talking extension numbers, and more. For a list of the codes, open freePBX with a web browser (http://yourIPaddress/admin/) and navigate to Setup->Feature Codes. You also can disable any of them if you’d like.

Transferring an Answered Call to Another Extension. To transfer a call you’ve already answered, press the pound key (#), and then dial the extension number using your permissible dialplan dial strings. This can be another extension, or it could be an outside call (e.g. to your cellphone) as long as your dialplan supports it.

Transferring an Answered Call to Your VoiceMail. To transfer an incoming call that you’ve already answered to your voicemail, press the pound key (#), and then dial your own extension number.

Transferring an Unanswered Call to Your VoiceMail. Suppose you want to not answer a call and immediately transfer the call to your voicemail. Just press the Hangup button with X-Lite or with a cordless phone connected to an SPA-1001. Note: You must have voicemail activated on the extension that’s receiving the call.

Retrieving Your VoiceMail Messages. If you want to access voicemail messages for the extension from which you are calling, just pick up the phone and dial *97. To access voicemail for any other extension, pick up any phone and dial *98. You’ll be prompted for the voicemailbox number and password for the desired account.

Returning VoiceMail Message Calls With One Button. Calling back a person that left you a voicemail is easy. When setting up VoiceMail for the extension, be sure to include callback=from-internal in the vm-options field in freePBX. Then, once you listen to a voicemail message, choose advanced options (3) and then option 2 to return the call.

Putting Calls on Hold with Asterisk. You can easily put any call on hold with Asterisk by quickly pressing and releasing the switchhook or flash button. Your caller will get your default Music on Hold until you return to the call by pressing the flash button again.

Communicating with the freePBX Developers for Online Support. If you have a problem that you can’t find an answer to after Googling and visiting both the TrixBox and freePBX forums, you may want to take advantage of the IRC client built into freePBX. Just open up freePBX with your browser and navigate to Tools->Online Support. Then click Start IRC and enter a nickname that’s unique to you. When prompted for username and password, enter maint and the password you assigned when you set up your system. HINT: The reigning PBX King lives in Australia so evenings (Australia time) are a good time to pose hard questitons.


AsteriDex for Smartphones. For those of you using our AsteriDex RoboDialer for Asterisk, we’ve got a new piece of code for you if you happen to have a smartphone or PDA phone and want access to your AsteriDex database for dialing. You’ll need something like a Blackberry, 6700 smartphone, Treo 650 or 700 that includes a real web browser (not WAP!) and web service from your cellphone provider. Install AsteriDex using the link above. Then open up port 80 on your firewall and point it to the private IP address of your TrixBox system so that you can access the web server running on your TrixBox system. To install the software, log into your server as root and execute the following commands:

cd /var/www/html
mkdir cellphone
cd cellphone
wget http://nerdvittles.com/wp-content/cellphone.zip
unzip cellphone.zip
rm -f cellphone.zip
chown asterisk:asterisk index.php
chmod 775 index.php

Now you can access your AsteriDex database entries from the web browser on your cellphone by pointing the browser to: http://PublicIPaddress/cellphone/ or http://AsteriskFQDN/cellphone/. If your smartphone is fairly "smart" you can also dial any number in your AsteriDex database by simply clicking on the desired phone number. At least with Sprint cellphones, you also have the option of sending a text message to anyone with a cellphone by clicking on any phone number entry. Please note that these outbound calls will be made directly through your cellphone provider, not through your Asterisk system (as was the case with the original AsteriDex web-dialing project). The reason is pretty simple. Most smartphones don’t support simultaneous use of your web browser and phone so there’s no way for your Asterisk box to call you without getting your voicemail. Yes, we did try it!

Additional Tips and Tricks. Have you got a favorite trick you use with your TrixBox system? Add it as a comment below and share it with the rest of your nerdly brethren.


Nerd Vittles Demo Hot Line. You now can take a number of Nerd Vittles projects for a test drive… by phone! The current demos include NewsClips for Asterisk (latest news headlines in dozens of categories), MailCall for Asterisk with password 1111 (retrieve your email by phone), and Nerd Vittles Weather Forecasts by U.S. Airport Code. Just call our number (shown in the left margin) 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 compliments of Google. 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.

Hosting Provider Special. Just an FYI that the Nerd Vittles hosting provider, BlueHost, has raised the bar again on hosting services. For $6.95 a month, you can host up to 6 domains with 30GB of disk storage and 750GB of monthly bandwidth. Free domain registration is included for as long as you have an account. That almost doubles last month’s deal, and it really doesn’t get any better than that. Their hosting services are flawless! We oughta know. We’ve tried the best of them. If you haven’t tried a web hosting provider, there’s never been a better time. Just use our link. You get a terrific hosting service, and we get a little lunch money.

Want More Projects? For a complete catalog of all our previous Asterisk projects, click here. For the most recent articles, click here and just scroll down the page.

Headline News for the Busy Executive and the Lazy Loafer. Get your Headline News the easy way: Planet Asterisk, Planet Gadget, Planet Mac, and Planet Daily. Quick read, no fluff.

Got a PDA or Web-Enabled Smartphone? Check out our new PDAweather.org site and get the latest weather updates and forecasts from the National Weather Service perfectly formatted for quick download and display on your favorite web-enabled PDA, cellphone, or Internet Tablet. And, of course, it’s all FREE!

Introducing a Complete Podcast Studio for Everyman: Your Telephone

With apologies to the Univ. of Wisc. for this spoofFor those that have been chomping at the bit to play with podcasting, today's your lucky day. We're going to show you how to do anything you've ever wanted to do with podcasts using your plain old telephone. All you need is a shiny new TrixBox server or any Asterisk® server with freePBX installed. If you don't have a TrixBox system, take advantage of our new one that'll run on your Windows Desktop. The free download and 15-minute installation tutorial are both here. Once you get everything installed, you're half way there. As it happens, freePBX (included as part of every TrixBox) has a podcast recording system built right in. It uses a free service called GabCast. To start podcasting, just sign up for a free GabCast account.

GabCast Overview. Out of the box, there are two things you can do with your TrixBox system and GabCast. First, you can create podcasts. And, second you can host conference calls. Today Nerd Vittles adds the third leg to the stool. With the new GabCast Player for Asterisk, you'll be able to listen to any GabCast channel feed using a garden-variety, touchtone phone. So long as you know the channels you want to listen to, you can kiss your iPod and web browser goodbye and listen to these podcasts by telephone from anywhere. We'll show you how.

We're not going to spend much time talking about conference calls today. Suffice it say, with GabCast, the first 30 minutes are free. After that, it's 10¢ a minute. It takes about 30 seconds to set up a conference call and start using it. The steps to create your own podcast are pretty simple as well. You set up a GabCast account. You configure the GabCast module in freePBX. You dial into GabCast from a phone on your Asterisk system or by calling a toll-free number and entering your channel number and password. Then you start recording your podcast. Press the pound key and decide whether to publish your masteripiece. It's that simple. Once you post your new recording on the system, GabCast automatically generates an RSS Feed alerting subscribers that you've added an episode to your channel. The podcasts can be played back either using a web browser, iTunes, or today's addition: a plain old telephone. Before we get started, we've set up a demo system as usual so you can take the new GabCast Player for Asterisk for a spin. Just dial the number in the left margin and enter 1707 when prompted for the channel number. Enjoy the Nerd Vittles (sick) Joke of the Day. We promise not to add any more! Give us a break. It's just a demo site. If you're interested in some good Asterisk podcasts, try Phoneboy's channel 229 or one of the many Asterisk and TrixBox channels: 292, 1327, and 1493 to name a few. Now where were we?

GabCast Signup. Getting set up with GabCast couldn't be any easier. Go to their web site. Click the Sign Up tab. Agree to the Terms of Service and tell 'em you're older than 13. Fill in the blanks on the form including the password you want to use and a valid email address that you'll use to sign in. Wait for your return email, and you're all set. Log in to your account and click Create a new channel. Fill in the form and be sure to assign a numeric password to the channel. Click Submit and you're done. You'll use your channel number and the numeric password assigned for this channel to access your account by phone and record podcasts. Sign out of GabCast for the time being.

freePBX Setup. Setting up your TrixBox system for GabCast is equally simple. Log in to the freePBX administration section of your TrixBox server using a web browser: http://192.168.0.125/admin. Be sure to use your IP address, not ours. Type maint for your username and whatever password you created when you set up your system. Click on the Setup tab, and Gabcast should be in the list of options in the left column if you set up your system using the Nerd Vittles tutorial. If not, click Tools->ModuleAdmin, Connect to On Line Repository, check the Gabcast module, and then Download and Install it. Now reread this paragraph.

By clicking on the Gabcast link under the Setup tab, you can assign a phone number on your system that you dial to record new podcasts. Just enter the gabcast channel, the numeric password for the channel, and the extension number to be assigned to this channel. Save your settings and click the Red Bar to reload Asterisk. The alternative is to dial *422 (which spells G-A-B) to access GabCast. Then you'll be prompted for your channel number and password. Either way works ... unless you happen to be using a Sipura device for POTS phones. In this case you'll have to activate *422 in the Sipura dial plan to use it. Otherwise, you'll get a fast busy when you dial *422.

Sipura SPA-1001 Setup. If you took our recommendation and are using a Sipura device to enable use of plain old telephones in your home or office, then you'll need to modify the Dial Plan slightly. Point a web browser to the IP address of your device and then click Admin Login and then Advanced. Now click on the Line 1 tab and scroll to the bottom of the form. You'll see a field named Dial Plan. Carefully insert *422| after the first vertical bar in the field. So your dial plan entry should now look like this:

(*xx*xxxxxxxxxxx.|*422|*x*xxxxxxxxxxx.|[3469]11|0|00|[2-9]xxxxxx|xxxxxxxxxxxx.)

Click the Submit All Changes button and wait for your Sipura device to restart. Then pick up a phone connected to the device and dial *422, enter your channel number and password, and begin your recording career. Move over Elvis!

Accessing Your GabCasts. The gabcast site explains in detail the available options for listening to gabcasts. Just click on the Listen tab. Then click on a channel, and you can play the feed in your web browser. Or you can Subscribe to a channel and plug the RSS Feed into your favorite RSS Reader/Player including iTunes, Safari, and more than a dozen web portals. You also can insert a Player right into your web site.

Introducing GabCast Player for Asterisk. What was missing from all these features was a simple way to play gabcasts on your plain old telephone. Leave it to Nerd Vittles to close the gap, and today we do by introducing our new Gabcast Player for Asterisk. Once installed, you just pick up a phone and dial 422 for G-A-B. Choose the Channel you want to listen to and select the desired Episode to play. Then just sit back and listen on any phone or speakerphone connected to your Asterisk system. If you really want to get fancy, you can redirect a DID on your system to extension 422, and the whole world can dial into your GabCast Player from anywhere on the planet.

GabCast Player Installation. To get everything working, there are four steps. We'll add a little code to your dialplan in the extensions_trixbox.conf file in the /etc/asterisk folder. Then we'll download the player into /var/lib/asterisk/agi-bin and add a few custom sounds from Allison. And finally we'll add a new Misc Destination using freePBX Setup.

Adding the Dialplan Code. There are a couple of ways to add dialplan code. You can either log in to your server as root and use the nano editor to modify the dialplan (nano -w /etc/asterisk/extensions_trixbox.conf, or you can use the TrixBox web interface pointed to the IP address of your server: http://192.168.0.125/maint. Then choose Config Edit and pick extensions_trixbox.conf to edit. So pick your poison and add the following code into to the [from-internal-trixbox] context (a.k.a. section) of the file. Then save your changes.

exten => 422,1,Answer
exten => 422,2,Wait(1)
exten => 422,3,DigitTimeout(5)
exten => 422,4,ResponseTimeout(7)
exten => 422,5,Read(GABCAST,custom/gabcast-channel,5)
exten => 422,6,NoOp(${GABCAST})
exten => 422,7,AGI(gabcast.php|${GABCAST})
exten => 422,8,Playback(thank-you-for-calling)
exten => 422,9,Playback(custom/gabcast-visit)
exten => 422,10,Playback(goodbye)
exten => 422,11,Hangup

With nano, you save your updates by pressing Ctrl-X, Y, then Enter. With the web editor, you simply click the Update button. Remember that anytime you change your dialplan you'll need to reload your Asterisk settings for the changes to take effect. We're not going to do that just yet because we have to make a change in freePBX which will automatically reload Asterisk when we click the big Red Bar.

Installing the GabCast Player and Sound Files. Custom Asterisk apps such as our Gabcast Player live in /var/lib/asterisk/agi-bin on your Asterisk server. Custom sound bites go in the /var/lib/asterisk/sounds/custom directory. So log in as root and issue the following commands in order:

cd /var/lib/asterisk/agi-bin
wget http://nerdvittles.com/gabcast/player.zip
unzip player.zip
rm -f player.zip
chown asterisk:asterisk gabcast.php
chmod 775 gabcast.php
cd /var/lib/asterisk/sounds/custom
wget http://nerdvittles.com/gabcast/sounds.zip
unzip sounds.zip
rm -f sounds.zip
chown asterisk:asterisk gabcast*
chmod 664 gabcast*

Adding a Miscellaneous Destination to freePBX. One more step and we're finished. Start up freePBX using the IP address of your server: http://192.168.0.125/admin. Click Setup then Misc Destinations. For the Description, type gabcast. For Dial, type 422. Leave the --featurecode-- the way it is and click Submit Changes then the Red Bar. We're done. Just pick up a phone on your system and dial 422. When prompted for the channel, press 1707#. When prompted for the epidsode, just pick one or two and press the pound key... with apologies (in advance) to the ladies and others that are easily offended. You're a gabcast expert now. Enjoy!

Nerds' Corner. Today we introduce a new addition to our free software articles. In Nerds' Corner, we'll provide some insights into the programming hurdles, tips and tricks, and even some feeble insights into the actual code writing to give would-be Asterisk programmers a leg up with future projects. Let us hasten to add a disclaimer. We don't write PHP code that most good PHP programmers would be proud to claim. But our way makes this a one-day project instead of a week or a month. And our code is easy to read and easy to follow, almost self-documenting (which is every programmer's wet dream). It is anything but efficient. But with today's computers and the interactive nature of the applications we are writing, it really doesn't matter. If you'd prefer to study good PHP code writing, study the code for freePBX or a2billing, not ours. Having said that, let us hasten to add that our code works and is usually pretty close to bug-free. Why? Because we can actually read it and find problems before you do. Here's hoping we haven't jinxed ourselves. Be sure to also read the Comments posted below this article just in case.

The difficult issues implementing a player for gabcast all revolved around the MP3 files that actually store the podcasts. First, you need a way to figure out the filenames since they are stored in a hidden directory. Second, you need a way to convert the files into a format that Asterisk can play. And third, of course, you need a player that works with Asterisk and a telephone. Let's tackle them in reverse order. Asterisk includes an MP3Player command which would appear the likely candidate for playing MP3 files. Wrong! It doesn't work on TrixBox systems so we needed a way to convert the MP3 podcasts into a format that a TrixBox system actually could play. As luck would have it, the folks over at the Michigan Telephone Blog already had tackled this issue for podcasts so we started there. The final sticky wicket had to do with actually deciphering the file names of the MP3 files containing the podcasts. Well, the good folks at GabCast.com solved that one for us. It was so obvious it almost bit us. The RSS feed for each channel actually includes an enclosure tag with the MP3 filename in the metadata for each gabcast episode. It was smooth sailing after that. Take the channel number and retrieve the RSS feed for that channel. Then parse the metadata to strip out the MP3 filenames and subjects for each episode. Then prompt the caller for the desired episode, convert the MP3 file (using lame) to an MP3 format that will actually play using the Asterisk AGI playback command. It can play MP3 files if they are in the correct format and if you don't include .mp3 in the filename on the playback command line. Also embedded in the gabcast.php code, you'll find a good example of how to implement IVR technology in an Asterisk PHP script. In this case, we tell the user how many episodes are available and then prompt the user for the desired episode to play after using Flite to play the subjects of the five most recent episodes. If the user enters a number which is outside the appropriate range of existing episodes, then we play the most recent episode whether the user likes it or not. One final gotcha has to do with the numbering of the available episodes. If you look at a few channels on the gabcast site (such as ours), you'll notice that it isn't uncommon for a publisher to delete certain episodes leaving episode numbers which might look like this: 1, 4, 6, 8, 9. This information is available in the RSS feed, but it would complicate the IVR system. So we chose to merely count the episodes in the RSS feed and then number them from 1 to the total number of episodes reserving the highest number for the most recent episode. For most folks, this won't pose a problem because they probably won't be retrieving podcasts with both a web browser and a phone. Thus the mismatched numbering shouldn't matter. If it does, oh well!

One final note of caution. As distributed, the Nerd Vittles Gabcast Player is implemented as a single-user system. Each time someone calls 422, the system erases all existing podcast MP3 files from the previous session. Simultaneous calls would obviously be a problem with this architecture. But we did it so that the code would run efficiently even on a VMware TrixBox implementation. These MP3 files can be quite large depending upon the length of the podcast which can be up to 60 minutes long. The bottom line is that, if you plan to deploy this in a multi-user environment with multiple people simultaneously calling 422, then you'll need to modify the section of the code that deletes the previous MP3 files. You'll find it at line 165 with some commented-out code above it that will work better in a multi-user environment (but will consume more disk space saving prior MP3 podcast sessions).

Finally a special word of thanks to Allison Smith for doing her usual fine job recording voice prompts for this application. One day turnaround would be shocking and downright laughable in most businesses. Not so with Allison. It's her usual way of doing business which makes articles and applications like this one possible. Thanks, Allison!

BroadVoice Strikes Again. The BroadVoice geniuses are burning the midnight oil again. They've finally implemented Basic 911 "Service" for customers in the United States. Here is the important part of last night's customer announcement:

BroadVoice's main concern is customer safety and
satisfaction. For this reason, BroadVoice has made
Basic 911** service available to all U.S Customers.
...
** Basic 911 service is available for all U.S. customers.
Customers who have basic 911 service will receive one (1)
free 911 emergency call per year. Any subsequent calls
within a year will have a fee of $100.00 per call.

[BV goes on to say that "Enhanced" 911 Service calls are free
IF you register your address AND IF you agree to the following:]

YOU ACKNOWLEDGE AND UNDERSTAND THAT BROADVOICE
WILL NOT BE LIABLE FOR ANY SERVICE OUTAGE AND/OR
INABILITY TO DIAL 911 USING THE BROADVOICE SERVICE
OR TO ACCESS EMERGENCY SERVICE PERSONNEL DUE TO
THE CHARACTERISTICS AND LIMITATION OF THE BROADVOICE
SERVICE AS SET FORTH IN THIS DOCUMENT. YOU AGREE TO
DEFEND, INDEMNIFY, AND HOLD HARMLESS BROADVOICE,
ITS OFFICERS, DIRECTORS, EMPLOYEES, AFFILIATES, AND
AGENTS AND ANY OTHER SERVICE PROVIDER WHO FURNISHES
SERVICES TO YOU IN CONNECTION WITH THE SERVICE, FROM
ANY AND ALL CLAIMS, LOSSES, DAMAGES, FINES, PENALTIES,
COSTS, AND EXPENSES (INCLUDING, WITHOUT LIMITATION,
REASONABLE ATTORNEY FEES) BY, OR ON BEHALF OF, YOU OR
ANY THIRD PARTY USER OF THE SERVICE RELATING TO THE
FAILURE OR OUTAGE OF THE SERVICE, INCLUDING THOSE
RELATED TO THE BV 911 SERVICE.


We're guessing that the BroadVoice Bean Counters decided that, if they made the disclaimer obnoxious enough and the fee high enough for this great new service, it might cause all of their customers to have heart attacks which in turn would generate loads of 911 calls. Talk about kicking your customers while they're down. Now read the first sentence again... and then the part in the BIG LETTERS. They really do think the world is full of idiots, don't they? Yikes!


Nerd Vittles Demo Hot Line. You now can take a number of Nerd Vittles projects for a test drive... by phone! The current demos include NewsClips for Asterisk (latest news headlines in dozens of categories), MailCall for Asterisk with password 1111 (retrieve your email by phone), and Nerd Vittles Weather Forecasts by U.S. Airport Code. Just call our number (shown in the left margin) 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 compliments of Google. 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.

Hosting Provider Special. Just an FYI that the Nerd Vittles hosting provider, BlueHost, has raised the bar again on hosting services. For $6.95 a month, you can host up to 6 domains with 30GB of disk storage and 750GB of monthly bandwidth. Free domain registration is included for as long as you have an account. That almost doubles last month's deal, and it really doesn't get any better than that. Their hosting services are flawless! We oughta know. We've tried the best of them. If you haven't tried a web hosting provider, there's never been a better time. Just use our link. You get a terrific hosting service, and we get a little lunch money.

Want More Projects? For a complete catalog of all our previous Asterisk projects, click here. For the most recent articles, click here and just scroll down the page.

Headline News for the Busy Executive and the Lazy Loafer. Get your Headline News the easy way: Planet Asterisk, Planet Gadget, Planet Mac, and Planet Daily. Quick read, no fluff.

Got a PDA or Web-Enabled Smartphone? Check out our new PDAweather.org site and get the latest weather updates and forecasts from the National Weather Service perfectly formatted for quick download and display on your favorite web-enabled PDA, cellphone, or Internet Tablet. And, of course, it's all FREE!

Introducing A Plug-And-Play Asterisk PBX for Windows

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.

Well, it's back-to-school time, and today we introduce the first free turnkey (aka preconfigured) Asterisk system. And it runs on the desktop of any Windows XP home or office computer. If you want a state-of-the-art phone system, look no further. Out of the box, it supports eight extensions and two lines with integrated voicemail and immediate email delivery of your incoming voicemail messages. To add additional extensions takes about 5 seconds. This PBX is just the ticket for a small business or a school or even a fraternity or sorority house. It's also perfectly suited for your home. You get every imaginable PBX telephony feature including music on hold, call forwarding, and call transfer as well as a preconfigured AutoAttendant which lets your friends and colleagues direct an incoming call to any of your extensions or even your cellphone. For those with the magic password, you can even dial in and get dialtone to make five hours of free calls each week to dozens of countries around the world including all of the U.S. and Canada, most of Europe, South and Central America, Australia and all your Far East favorites including China, Taiwan, Russia, and Japan. And the total cost: about $12.50 for each three months of service. All incoming calls are free, and you even get your very own area code and phone number to pass out to your friends that are still chained to plain old telephones or cellphones. And, yes, all your favorite Nerd Vittles applications are preinstalled and ready to go including weather forecasts for 1,000 airports, MailCall for Asterisk to read you your email messages, NewsClips for Asterisk to read you the news, and the AsteriDex robodialer complete with a web interface to place your outbound calls and to serve up customized CallerID for your incoming calls. Last but not least, you get all of the bundled TrixBox applications including freePBX, SugarCRM, Samba for Windows networking, FTP and SSH support, WebMin, PHP, MySQL, Perl, Apache, SendMail, integrated fax-to-email support, calling card billing, and more. It slices, it dices ... You get the idea.

Prerequisites. To take advantage of all this magic, there are only three things you really need that aren't provided here. First, you'll want a desktop computer from a reputable manufacturer that is less than two years old. It should be running a fully-patched, current version of Windows XP with at least 384MB of RAM and 3 spare gigs of disk space. The more RAM the better, and 1GB is ideal if you'll be using your Windows desktop for other simultaneous tasks. Second, a broadband Internet connection with a network firewall/switch that hands out internal IP addresses using DHCP is required. Finally, you'll need to set up accounts with two Internet Telephony Hosting Providers (ITHPs). And we recommend you go for three! That's where the $12.50 comes in. Everything else you'll need can be downloaded at no cost using links in this article. So let's get started.

Installing the VMware Player. VMware is virtualization software which lets you run another operating system on your desktop. The TrixBox/Asterisk PBX application runs under CentOS Linux which is a RedHat Linux derivative. Your desktop is Windows XP, hence the need for VMware. The VMware Player software is free, and it lets you "play" today's prebundled Linux application in a window on your Windows Desktop. On a current generation PC with plenty of RAM, this VMware application runs as fast as Asterisk on a dedicated Linux machine so don't worry too much about performance. Based upon our testing, it's a non-issue. We're going to provide the preconfigured application (all 640 megabytes of it!), but you'll first need to download the free VMware Player and install it on your Windows system. Just follow the prompts and accept the defaults. Once the install completes, reboot your Windows machine.

Today's Game Plan. For long-time readers of Nerd Vittles, be advised that today's article is a little different. We're actually going to be eating our own dog food. What we've done is build a TrixBox system from the ground up. Then we loaded all the Linux, TrixBox, and freePBX updates as well as the dozens of enhancements which we write about each week. Then we configured the system so that it's ready to go ... out of the box! Once you secure the system with your own passwords and plug in the account names and passwords provided by your ITHPs, you're all set. We'll walk you through plugging in IP telephones, or regular cordless telephones such as our Vtech favorite (below) using a Sipura SPA-1001 (under $60 on Froogle), or downloading a free IP softphone. And, in about 15 minutes, you're done! Phones ring, voicemail works, voicemail messages get delivered to your email account, and music on hold works. We've even provided a working Stealth AutoAttendant that we'll tell you about shortly. And, for all our Mac fans, not to worry. VMware will have a player for your shiny, new Intel-based Mac shortly. Sign up for the beta here.


While you're enjoying your new phone system, you can read all about TrixBox and Asterisk and freePBX using our Quick Reference Guides, and then you can reconfigure the system to your heart's content. If you happen to break something, simply start over by reinstalling the VMware image (which hopefully you will zip up and burn to a CD for safekeeping). In exchange, you'll avoid the all-day knuckle drill of getting everything set up again from scratch. For those that are already TrixBox addicts, you may want to install this version just to take a look at how we've integrated most of the tips and tricks we've written about this past year. And feel free to share your own enhancements as comments to this article. We'll update the VMware image from time to time to take advantage of everyone's suggestions.

Let me also offer an apology to our foreign friends. This project necessarily required some assumptions in order to preconfigure everything. So here they are. We've assumed that you live in the United States, and that you place calls by dialing a 1 + a 3-digit area code + a 7-digit number or by dialing a 3-digit area code and a 7-digit number. Our out-of-the box configuration can be easily changed to support other telephone systems and dialplans around the world. Ninety per cent of our readers are in the United States so the system was built with that in mind. We've also left international calling out of the dialplan. It, too, can be added easily. The reason we left international calling out was to minimize the risk of abuse and associated financial problems. While many international calls are free or almost free with the providers we are recommending, there are numerous locations (including most countries surrounded by water not to mention cruise ships circling the world) where telephone calls are still VERY expensive. Our recommendation is to adjust your dialplan to accommodate international calls where you know what the cost of the calls will be and you're willing to absorb those costs. One other cautionary note, and we'll get started. As configured, this system does not support 911 calls. Some ITHPs support 911, but the ones we're going to be talking about today do not. So plan accordingly NOW!

Finally, a word about bandwidth. This application is huge. The download weighs in at over 600MB. Don't even try it with a modem! Bandwidth to cover downloads costs money. We've sprung for a terabyte of bandwidth each month just to support downloads of this application ... which is and always will be free. Funding for this bandwidth was provided by some generous readers of our past columns. Thank you! If there are sufficient future donations during the coming months, we'll buy additional bandwidth. Otherwise, the application will vanish when the terabyte of bandwidth is exhausted. It will be available again on the 11th day of the coming month until the terabyte is once again exhausted. So, as they say, the early bird ...

Installing nv-TrixBox. After you have the VMware Player installed, you're ready to download today's application. If you know how to use BitTorrent, please grab the torrent file from here and save our precious bandwidth. Otherwise, our good friends at vmwarez.com have agreed to host this download (and Jim has embellished it a bit from our original creation to include some VMware tools which enhance the performance of the application). So just click here or BubbaPCguy's mirror, and download the file. If, for some reason, those sites are down, you can use our site by clicking here. Then save the zipped file to your Windows Desktop.

Once the download finishes, click on the nv-trixbox.zip file on your Desktop. Choose extract all files. When prompted for the destination to unarchive the files, type C:trixbox and press Enter. Have a cup of coffee while the archive decompresses. When it's finished, run the VMware Player. Accept the license agreement and then browse to the trixbox folder on Drive C and select trixbox.vmx. If you get an error about a missing IDE drive, just tell VMware not to look for it again and continue. When prompted whether to create a new identifier, choose Create and click OK. The Linux Kudzu Configuration Utility will load advising you that it can't find my network card in your computer. Move your cursor to the VMware Player window and click once to give it focus. Then press Enter to run the utility. With Remove Configuration highlighted for the network card, press Enter again. When Configure your network card is highlighted, press Enter again. Finally, when the Configure TCP/IP screen appears, press the Space Bar to select Use Dynamic IP Configuration. Then tab to the OK button and press Enter. Linux will whir away for a minute or two and boot your TrixBox system.

At the Linux login prompt, type root for your username and press Enter. Then type password for your password and press Enter again. We're not going to remind you to press Enter any more. After entering commands in Linux, you press Enter to execute them. Now you're an expert! Once you're logged in, your TrixBox server will tell you the private IP address for your system (to access it with a web browser). Write it down! Now issue the command ifconfig and write down the MAC address of your network card: HWaddr. We'll need them both in a minute.

Securing Your TrixBox System. You don't leave your keys in your car at a shopping center, and you don't run a Linux system with a root password of password. There are numerous passwords on this system. If you're going to be the one and only administrator, we recommend setting them all to the same, secure password. Don't forget it, or you go back to Go! Now enter the following commands to reset the passwords:

passwd
passwd admin
passwd-maint
passwd-amp
passwd-meetme

We don't recommend exposing your Asterisk system to the public Internet unless you are an expert in all things Internet ... especially security. This is even more true with this TrixBox system. There are lots of applications running that crackers love to attack: SendMail, FTP, Windows Networking, Apache Web Server, PHP, and even Asterisk. As delivered, this system includes a Windows share of the entire TrixBox system which is wide open and requires no password to access it. This makes it easy for you to copy stuff to your new system from any Windows, Mac, or Linux machine. It also makes it incredibly easy for an outsider to totally destroy your system. That's why you made a backup CD of the nv-trixbox.zip file. Right?

Securing and Activating A2Billing. This web-based application allows you to generate and issue calling cards to individuals so that they can place calls remotely through your Asterisk server. If you've always wanted to be just like AT&T, here's your Big Chance! There's very little that you can do with an AT&T calling card that can't be done as well or better by you using A2Billing. And, it won't take an M.B.A. to undercut AT&T's calling card rates and still make buckets of money. All you need now are a few customers. But first, a word of caution. Assuming your Asterisk server has web exposure on the Internet, you need to secure the admin and root passwords in this application whether you use it or not. To access the application, go to http://trixboxIPaddress/a2billing/ using the actual internal IP address of your Asterisk server which you wrote down. Log in as root with a password of myroot. Click on the ADMINISTRATOR tab in the left column and then click Show Administrator. Now click on the Edit button beside each of the two administrator accounts and change the passwords to something secure. If you really would like to learn more about it, documentation for the application is available here. And, if you decide to use the application, you'll need to uncomment six actual dialplan lines in extensions_trixbox.conf and reload Asterisk. But we'll save that for another day.

Securing SugarCRM Contact Management. TrixBox includes the best open source contact management application on the planet, SugarCRM. You access the application with a web browser: http://trixboxIPaddress/crm/ substituting the private IP address of your Asterisk box, of course. Specify admin for your username and password for your password. Whether you use the application or not, change the admin password. It's easy. Just click the Administrator link under Welcome admin. Then click the Change Password button. Complete documentation for the application is available here. If contact management is your thing, knock yourself out, and we'll talk to you next spring when you finish getting everything set up to run your business. It's a great product, but be prepared to invest lots of time in the project if you expect to use it productively.

Reserving An IP Address in Your Router. Your PBX has to consistently boot up with the same IP address or your phones (and calls) won't be able to find the Mother Ship. Since we're using DHCP to initially obtain the IP address, we need to tell your router to always hand out this same address to your TrixBox system. Almost all routers make it easy to preassign DHCP addresses. Use a web browser to access your router's configuration screens. What we're looking for is generally under the tab for LAN IP Setup or DHCP Configuration and is usually called something like Reserved IP table. Just add an entry and call it Asterisk PBX and specify the IP address and MAC address that you wrote down above. Now each time you reboot your Asterisk server, your router will assign it this same IP addreess.

Linux 101. If you're new to Linux and/or Asterisk, here are a few commands you'll need from time to time. And, if you didn't already know, you don't just pull the plug on a Linux system ... even if it's running in a window on your Windows Desktop. Linux caches lots of stuff to speed up processing. So always shut things down gracefully if your data matters.

df -h ... Free disk space remaining on your Linux system. Be sure you always have the required 3GB of Windows space for this app!
logout ... Logs you out of the Linux system.
Ctrl-Alt ... Gives your Windows cursor back and lets you run other Windows apps until you click again in the nv-TrixBox window.
asterisk -r ... Runs the Asterisk Command Line Interface (CLI) after you've logged in as root.
quit ... Exits gracefully from the Asterisk CLI
amportal restart ... Restarts Asterisk.
/etc/webmin/start ... Starts up WebMin, the Swiss Army Knife of Linux. Access it with a web browser: https://TrixBoxIPaddress:10000/
shutdown -h now ... Shut down your Linux system right now. Wait for VMware Player window to close!
shutdown -r now ... Reboot your Linux system right now.
nano -w filename ... Edit any file in your Linux system. Ctrl-X, Y, then Enter saves your changes.
cd dirname ... Changes to another directory below current directory.
cd /dirname ... Changes to another directory below the root directory.
ls ... The Linux equivalent of dir to get a directory listing.
cd /var/www/html ... Home of the TrixBox web server files accessed at http://TrixBoxIPaddress/ or https://TrixBoxIPaddress/
cd /var/lib/asterisk/agi-bin ... Home of the TrixBox and Asterisk scripts for Asterisk apps.
cd /var/lib/asterisk/sounds ... Home of Allison and all the voices prompts that make up the Asterisk system.
cd /etc/asterisk ... Home of all the Asterisk, TrixBox, and freePBX configuration files.

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 three choices. 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. The preconfigured extensions are set up as 500 through 508 with voicemail activated for extension 500 presently. To keep things simple, enter House Phone as the Display Name. Enter 500 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 611 to get a current weather report or dial 511 to get today's news headlines.

Using an IP Softphone. If you're like us, you've gone to all this trouble downloading your fancy new PBX, and you sure as hell don't want to wait a week for your Sipura 1001 to arrive before trying it out. So here's the quick and dirty solution. There's software that will run on your Windows, Mac, or Linux desktop that acts like a telephone. You obviously need speakers and a microphone on your system for this to work. Assuming you have those, go to CounterPath's web site and download X-Lite for your favorite OS. There's a manual there, too, but you probably won't need it. Once the download completes, click on it to start the install. Accept the obnoxious license agreement and install the software in the default directory. Unless you want X-Lite to load every time you restart your machine, uncheck the Launch on Startup checkbox. Reboot your system and, if it's also running your TrixBox system, restart it first. Then run the X-Lite application. Click No to turn off X-Lite's spyware. When the "SIP Accounts" window opens, click the Add button and fill in the following data:

Display Name ... House Phone
User name ... 500
Password ... 1234
Auth. User Name ... 500
Domain ... the IP address of your TrixBox system

Leave the other defaults and click on the Check Voicemail tab. For the Number to Dial to Check Voicemail, enter *97. Then click OK and Close. If your Windows Firewall is doing what it's supposed to, it will probably block the connection to your Asterisk system. When prompted, tell it to allow future connections. If this happens and X-Lite does not register with your Asterisk system, click the Down Arrow at the top of the softphone (Show Menu). Click SIP Account Settings, Properties, OK, and Close again. You now should be registered. Dial 611 and get your first weather report. To exit from X-Lite, click the Down Arrow and then Exit.

Using a SIP Phone with Your System. There's loads of SIP Phone hardware in the marketplace, some better than others. We've written about some of them on Nerd Vittles, and you can use Google or the Asterisk forums to get a good feel for which ones work and which ones are a waste of money. If you want the bleeding edge phone that supports virtually every feature that Asterisk has to offer, then the GrandStream GXP-2000 is the phone for you. We use one and love it. Some of my colleagues think it is better suited for the non-business environment. In any case, it's a great phone to learn about Asterisk. With careful shopping, you can find one for about $80. Don't buy support or an extended warranty. They're both a waste of money. You configure the phone almost identically to softphone shown above. For home use, we still think the SPA-1001 and a good 5.8 GHz cordless phone system with multiple handsets is the way to go.

Adding Internet Telephony Hosting Providers. Just as you need an account with an Internet Service Provider to reach Google or Yahoo or Dreadful AOL, if you want to make phone calls to folks with Plain Old Telephones outside your Asterisk system, then you've got to have telephone trunks to carry conversations from you to them and back again. For the default system today, we've preconfigured it to support an outbound trunk from VoipDiscount.com and an inbound and outbound trunk from StanaPhone.com. Before you sign up for anything, read our two articles about these providers by clicking on the links in this paragraph. In a nutshell, VoipDiscount.com provides incredibly cheap outbound calling to a number of countries. However, you have to cough up about $12.50 every three months to keep your account "current." They're also a little slick in that they frequently change calling rates and calling locations which are free. Having said all that, it's still the best calling deal on the planet. You just need to understand the ground rules and the slippery slope issues so you don't get blind-sided. StanaPhone provides free DID numbers in a New York area code and free incoming calls for those with an account. Even their charges for outbound calls are quite reasonable. To get your system working, you'll need to go to each of these providers' web sites using Internet Explorer on a Windows PC, sign up for an account, and download their softphones. That's the only way you can figure out what your account name and password are. We also recommend you put $10 in your StanaPhone account. Then, based upon reports from lots of users, you'll never have to worry about them disconnecting your free incoming service or your free phone number. Again, read our two articles which will tell you everything you need to know. Don't worry about all the settings, we've taken care of all of that for you. The objective is to get your free phone number and your account names and passwords. Then we'll plug those into your Asterisk system so you can start enjoying free incoming calls and mostly free outbound calls. Once you get your account numbers and passwords, move on to the next step, and we'll show you how to plug them into your Asterisk system and begin making and receiving calls.

There are others who want a local phone number and more reliable service. For them, we continue to recommend TelaSIP. $14.95 a month gets you unlimited calling in the U.S. and a local phone number in your choice of area code. If you want to start out on a pay-as-you-go plan, $5.95 a month gets you a local phone number and 2¢ per minute calls in the U.S. They don't provide a lot of hand-holding, but their service is rock-solid reliable. For a list of all our service provider reviews, go here. Or just read our Internet Telephony Provider Shootout to see why TelaSIP remains our top pick. If you decide to go with TelaSIP, our Newbie's Guide to TrixBox will show you how to configure it.

Configuring Your TrixBox System. This should take you less than five minutes! We've eliminated most of the configuration hassles with your new Asterisk system by preconfiguring almost everything. About all that you'll need to do to get a fully-functioning system is to plug in your account names and passwords for your two ITHPs and enter your email address for delivery of your voicemails and faxes. Here's how.

Using a web browser, point it to the IP address of your new TrixBox system. When the TrixBox Main Menu appears, click System Administration. When prompted for your username, enter maint followed by the password you configured for your system above. When the Configuration and Administration Menu appears, click freePBX. freePBX is another open source project that puts an incredibly simple but complete web interface on your Asterisk PBX. When the freePBX Main Menu displays, click Setup. Now click Trunks in the left column of the display. On the Trunks setup screen in the right column, you'll see that we've preconfigured two trunks: one for voipdiscount and one for stanaphone. Click on SIP/voipdiscoun to display the voipdiscount setup screen. Scroll down to the PEER Details section. Replace yourname with your account name in three places: authuser, fromuser, and username. Replace yourpassword with your password in the line which reads secret=yourpassword. Now scroll to the Registrationsection at the bottom of the screen. Replace yourname:yourpassword@sip.sipdiscount.com with your actual account name and password. Leave everything else as it is. When you finish, click the Submit Changes button and then the Red Bar to reload Asterisk.

We're going to make similar changes in the Stanaphone trunk settings. Click on SIP/stanaphone to display the StanaPhone setup screen. In the Outbound Caller ID field, enter the 10-digit phone number you were assigned by Stanaphone. In the Peer Details section, replace youraccountnumber in username=youracctnumber with your assigned account number, not your phone number! Replace yourpassword in secret=yourpassword with your assigned password. Repeat the drill in the User Details section on the form. Then, in the Registration String, carefully plug in your account number, then a colon, then your password, then @sip.stanaphone.com/, then your assigned 10-digit phone number. Leave everything else as it is. When you finish, click the Submit Changes button and then the Red Bar to reload Asterisk.

If you want voicemails delivered to you by email, you'll need to plug in your email address. Click on Extensions in the left column of freePBX. Then click Home - 500 in the right column to display the settings for extension 500. Scroll down to the VoiceMail and Directory section of the form, and enter your email address in the email address field. Then change the Email Attachment field to Yes. If you'd like the system to automatically delete your voicemails after emailing them to you (with the message), change the Delete Vmail option to Yes. When you finish, click the Submit Changes button and then the Red Bar to reload Asterisk. Your system now is fully operational.

If you'd like to add support for transferring calls to your cellphone, click Misc Destinations in the left column of freePBX, and then click Cellphone in the right column. Enter your 10-digit cellphone number in the Dial field. When you finish, click the Submit Changes button and then the Red Bar to reload Asterisk.

If you'd like to add fax support so that incoming faxes to your Stanaphone number get emailed to you, click on General Settings in the left column. Scroll down to Email address to have faxes emailed to and plug in your email address. Do NOT change the origination email address, or you won't receive anything. When you finish, click the Submit Changes button and then the Red Bar to reload Asterisk.

Setting the Default Time Zone. Your TrixBox system is set to use Eastern daylight or standard time (depending upon the time of the year) as the default time zone. This matters when you're scheduling reminders and wake up calls. If it's not correct for your location, the easiest way to change the time zone is using WebMin. Log into your server as root and issue the following command to start WebMin: /etc/webmin/start. Then, using a web browser, go to: https://TrixBoxIPaddress:10000/. Log into WebMin with the username root and the password you assigned to your root account. At the WebMin Main Menu, click Hardware then System Time. Scroll down to the TimeZone section and use the pull-down menu to select the desired time zone. Then click the Save button immediately below the Time Zone field. When you restart your TrixBox system, the time zone will be correct, and WebMin will automatically be shut down.

Fixing Our Oversight. If you're going to be using the weather and news apps, you'll need to delete the sound files that are built on the fly each time you use them. The easiest way is to add a cron job that just deletes them each night. Log in as root and edit the main crontab file:

nano -w /etc/crontab

Then move to the bottom of the file and add this line:

01 0 * * * root rm -f /var/lib/asterisk/sounds/tts/tts*

Now save the file: Ctrl-X, Y, then press Enter. You're done.

Taking Your TrixBox For A Spin. For a list of Feature Codes supported by your new system, click on Feature Codes in freePBX and print the list. Pick up a phone and dial any one of them. To make an outgoing call, take a phone off-hook and dial either a 10-digit number in the U.S. or 1+10-digit number. Then, using a cellphone or someone else's POTS phone, dial your Stanaphone number to be sure it's working. You should get a welcome message, and then your phone or softphone will ring.

We call the welcome message a Stealth AutoAttendant. What that means is that, while the message is playing, you can do some other things with your system. For example, by pressing 1, your call will immediately ring extension 500 on your system. Pressing 2 will ring extension 501. Pressing 3 will ring your cellphone. Pressing 8 and entering 56789# will give you dial tone to make a long distance call through your PBX. Pressing nothing will cause all of the extensions on your system to ring two seconds after the message completes.

DISA Security. Getting remote dialtone can be a dangerous thing in the wrong hands so let's put your own password (of any length) on the DISA function that is triggered by pressing 8 above. Click DISA in the left column of freePBX and then DialTone in the right column. Now enter a PIN that will let you sleep well at night ... knowing that you are paying for all outbound DISA calls. When you finish, click the Submit Changes button and then the Red Bar to reload Asterisk.

What Time Is It? On some computers (mostly high end ones as it happens), VMware has a hard time keeping the correct time. Since many telephony applications are time sensitive, you'll want to monitor this for a few days and see if your system is having problems. Logging in to your server and typing date will display what time your computer thinks it is. We've added a cron job to this application that updates the time using NTP every 15 minutes. That should resolve the problem. If not, post a comment and let us know.

The Nerd Vittles Collection. We'll wrap it up for this week by pointing you to some tutorials for the Nerd Vittles applications that are preloaded in this TrixBox build. AsteriDex and MailCall require some quick configuration so take a look at the tutorials. You also may want to change the Telephone Reminders default password of 123 in line 28 of /etc/asterisk/extensions_trixbox.conf. If you do, remember to restart Asterisk for the change to take effect. In our next column, we'll cover some setup tips and other neat tricks you can do with TrixBox and freePBX and Asterisk including customization of the AutoAttendant to meet your specific needs.

AsteriDex - The Poor Man's Rolodex (http://TrixBoxIPaddress/asteridex/)

NewsClips for Asterisk - Get the News By Telephone (Dial 511)

MailCall for Asterisk - Get Your Email By Telephone (Dial 555)

Weather Reports by Airport Code - Get the Latest Weather Forecasts for 1,000 U.S. Cities (Dail 611)

Telephone Reminders for Asterisk - Appointment Reminders By Telephone (Dial 123)

Where To Go From Here. If you're new to the Asterisk world, you have lots of fun (and learning) ahead of you. The best place to start is our Newbie's Tutorial. We've already done most of the work for you. It's an easy read which covers many topics that we didn't get to today. So start there. You'll also want to get plugged into the TrixBox Forums. That's the place to ask questions after you do some reading. Posting support questions on Nerd Vittles just doesn't work because of the cumbersome blog format. Don't email me questions either! We only accept thank you notes. Finally, take a look at our catalog of articles, projects, and Asterisk resource links. You'll find just about everything you'll ever need there. Enjoy!


Nerd Vittles Demo Hot Line. You now can take a number of Nerd Vittles projects for a test drive... by phone! The current demos include NewsClips for Asterisk (latest news headlines in dozens of categories), MailCall for Asterisk with password 1111 (retrieve your email by phone), and Nerd Vittles Weather Forecasts by U.S. Airport Code. Just call our number (shown in the left margin) 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 compliments of Google. 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.

Hosting Provider Special. Just an FYI that the Nerd Vittles hosting provider, BlueHost, has raised the bar again on hosting services. For $6.95 a month, you can host up to 6 domains with 30GB of disk storage and 750GB of monthly bandwidth. Free domain registration is included for as long as you have an account. That almost doubles last month's deal, and it really doesn't get any better than that. Their hosting services are flawless! We oughta know. We've tried the best of them. If you haven't tried a web hosting provider, there's never been a better time. Just use our link. You get a terrific hosting service, and we get a little lunch money.

Want More Projects? For a complete catalog of all our previous Asterisk projects, click here. For the most recent articles, click here and just scroll down the page.

Headline News for the Busy Executive and the Lazy Loafer. Get your Headline News the easy way: Planet Asterisk, Planet Gadget, Planet Mac, and Planet Daily. Quick read, no fluff.

Got a PDA or Web-Enabled Smartphone? Check out our new PDAweather.org site and get the latest weather updates and forecasts from the National Weather Service perfectly formatted for quick download and display on your favorite web-enabled PDA, cellphone, or Internet Tablet. And, of course, it's all FREE!


Some Recent Nerd Vittles Articles of Interest...

Introducing AsteriDex III: A Web-Based Robodialer for Asterisk and Trixbox

It's another free software day at Nerd Vittles, and we have the third generation of our Asterisk® database dialer utility for you. The original AsteriDex was a web-based AutoDialer on Steroids. It let you store and manage phone numbers of all your friends and business associates with an easy-to-use MySQL database. Then you could call up the application in your favorite web browser from anywhere and click on the contact you wanted to call, and Presto! AsteriDex first called you at the number you designated for this contact, and then AsteriDex connected you to your contact through an outbound call made using your Asterisk server.

For those lucky enough to have GrandStream's GXP-2000 IP phone with AutoAnswer, you could even configure AsteriDex to automatically activate the speakerphone and then place the call to the contact you selected. In short, the original worked much like Microsoft's TAPI software without the configuration nightmare or your favorite (required) Micro$oft bloatware. Installation and configuration for your Asterisk@Home system was a snap and took less than 10 minutes. It also worked with vanilla Asterisk running the Asterisk Management Panel (AMP) software. AsteriDex was quick to implement and simple to use because it only did one thing, but did it well. The AsteriDex autodialer placed calls to all your favorite callees using a web interface.

Version Two added two new features. First, you could use AsteriDex to automatically look up CallerID Names in your MySQL database for all your incoming calls. And, second, you could dial a person in your database by spelling up to five characters of the person's name using any phone in your home or office, and AsteriDex automatically placed the call for you just as if you'd use the web browser interface. To use this feature, you just dialed 00 plus the one to five-digit code of the person to call. In Version Three, we've cleaned things up a bit more. The web interface now displays contact phone numbers and speed dial numbers regardless of whether you're using Internet Explorer, Firefox, or Safari. The speed dialer now tells you who's being called using the Flite speech synthesis engine built into every new (free) TrixBox server. And, last but not least, we'll show you how to install AsteriDex for multiple people in your home or office.

In case you're wondering, "Can you do the same thing with SugarCRM?" Well, sorta but not really. If you need full-blown contact management, then SugarCRM may be your thing. Just don't expect it to be a weekend project. CRM is really for folks whose lifeblood is contact management. If that's you, great! But for the rest of us that just wanted a phone and web-based autodialer that's simple to set up and easy to use, AsteriDex is just the ticket. You can add a contact to AsteriDex in under 10 seconds. You can delete one faster than that. And making changes to existing entries is a breeze as well. So let's get started.

AsteriDex Overview. Here's a brief overview of how all this works and the installation process. Then we'll install the pieces. How does it work? It's simple. When you call up the web application, you're presented with a tabbed and alphabetized listing of all your friends and business associates. You add the names and phone numbers of friends and business associates to a MySQL database table on your Asterisk machine. We'll show you how, and we've even provided the names and numbers of some of your favorite airlines to get you started. For each entry, you specify not only the phone number of the contact but also your phone number for placing calls to this party. You can also tell it to use a default phone extension for outbound calls. When you click on someone's name in the web application, AsteriDex swings into action and places two calls. First, it calls you at the number you've designated. When you answer or your answering machine does, AsteriDex places a second call to the person or business you selected. It then joins the two calls together, and presto: a phone conversation is born. It works exactly the same way with the phone-initiated speed dialer. Just dial 00 and then up to five characters of your friend's name to place a call. And, in our next column, we'll wrestle with CallerID enhancements for TrixBox and show you how to configure AsteriDex and TrixBox to display a matching CallerID Name out of your customized database.

To install AsteriDex, we'll first download the software. Then, we'll walk you through the two-minute drill to configure the app to meet your own requirements. Next, we'll put the pieces in the right places on your Asterisk server. And finally, we'll crank up AsteriDex and make a test call.

Securing AsteriDex. If AsteriDex came preinstalled on your TrixBox system, there may be a security vulnerability. Just to make sure your system is protected, download and install this simple patch. Log into your Asterisk server as root and issue the following commands:

cd /var/www/html/asteridex
rm -f callboth.php
wget http://nerdvittles.com/trixbox11/callboth.zip
unzip callboth.zip
rm -f callboth.zip
chown asterisk:asterisk callboth.php
chmod 775 callboth.php

AsteriDex Prerequisites. To make all this work, we recommend you install TrixBox using our soup-to-nuts tutorial. It won't cost you a dime if you have an old clunker PC lying around. Otherwise, you'll need to install Flite, freePBX, the Apache web server with PHP, phpMyAdmin, and MySQL support on your Asterisk machine. Also make certain that your Asterisk server is secure before exposing your web server to the Big Bad Internet. You can read all about it here. Finally, we recommend using an SSH client and/or a secure FTP client to load and configure stuff on your Asterisk machine unless you just like sitting in front of your server. SSH comes with every Mac and the syntax is simple: ssh root@AsteriskIPaddress. If you're still chained to Microsoft, download Putty from the Mother Country, and you can do the same thing using any Windows machine.

Downloading AsteriDex. Step 1 is to download the application, and you can do that by clicking here. We've packaged AsteriDex in a ZIP file so save it to your Desktop and unzip the file so you can get to the asteridex folder. If you're upgrading from a previous version of AsteriDex, export your asteridex MySQL database and then import it into your TrixBox system. We'll show you how below.

Installing AsteriDex Into MySQL. If you're using AsteriDex for the first time, here's how to load the MySQL database for AsteriDex. Access your TrixBox system using a web browser and go to Asterisk->System Administration->phpMyAdmin. When the program loads, look in the left pane immediately below the phpMyAdmin logo and click on the SQL icon. When the SQL window opens, click on the Import Files tab and then the Choose File button. Click on Desktop->Asteridex->mysql and choose the asteridex.sql file. The file name now should be displayed in the SQL window pane. Using the default utf-8 character set, click the Go button to load the database into MySQL. You should get a pretty display which says, "Your SQL query has been executed successfully." Just to be sure, click on the user1 table in the left pane, and then click the Browse tab at the top of the right pane. This is one way to make changes to your Asteridex address book: Asterisk->System Administration->phpMyAdmin->Asteridex database->user1 table->Browse. You can click the pencil icon beside an entry you want to modify, or click the red X icon to delete an entry from your table. It's permanent so be careful. To Add new entries to the table, click the Insert tab at the top of the right phpMyAdmin panel. Leave the ID and DialCode fields blank. ID will get filled in automatically, and DialCode is the speed dial entry for this person. Enter a name for the person or business. For people, we recommend Lastname, Firstname. If you leave the asterisk (*) in the IN field, AsteriDex will call you on your default phone before placing the outbound call. We'll get to default calls in a minute. If you'd prefer to always be called at a specific extension, enter the extension number, e.g. 204. Do not enter sip/204! We'll do the heavy lifting for you. Congratulations! You're now a database expert. Just come back and fill up your Little Black Book once we get finished with the installation. Actually, you won't have to use phpMyAdmin, but we wanted you to know it's always an option.

Upgrading AsteriDex Using an Existing AsteriDex MySQL Database. If this is your first time using AsteriDex, you can skip this section. If you've been using AsteriDex with an Asterisk@Home or Asterisk system and want to move your database over to a new TrixBox system, here's how. On your old system, use phpMyAdmin to access MySQL. It's under the Maintenance tab in AMP with Asterisk@Home systems. Once you're in, click on the Export link in the right frame. Click on asteridex in the database column to select it, and then uncheck Use hexadecimal for binary fields. Finally, click the Save As File checkbox and then the Go button to export the database to your desktop. You'll end up with a file named localhost.sql on your Desktop. That completes the export.

To import your MySQL database into your new TrixBox system, point your web browser at the IP address of your machine. Then click System Administration and enter maint for your username and whatever password you assigned when you set up your system. Now click on phpMyAdmin and follow the installation steps above except use localhost.sql from your Desktop when prompted for the name of the database to import.


Configuring TrixBox for AsteriDex. There are a couple configuration steps for the AsteriDex application before we can drop in the web code and try it out. We need to add a dialout context at the bottom of the extensions_trixbox.conf file. A copy of the context is included in the /freePBX subfolder of the asteridex folder on your desktop. Here's the code you'll need, but you can't just drop it in. First, you need to figure out which dialout trunk will be used to place the outbound leg of the AsteriDex calls. Just keep in mind that, using the web interface, AsteriDex actually places two calls, one to you and one to the person you want to talk to. So be sure you have a channel for each of the calls if you opt to use a non-local extension for your incoming call. Anyway, what you need below is the trunk number that you want to use for the outbound calls. You can look these up by going to TrixBox->System Administration->Config Edit->extensions_additional.conf. Then look at the Global variables OUT_0, OUT_1, etc. Identify the number of the one for the VoIP provider you want to use and then replace the bolded 0 in line 3 below with that number. If you want a fallback provider in case your first choice is down, then copy the line 3 code below to the next line, substitute your second choice provider number for 0, and then renumber the lines: 1, 2, 3, 4, and 5. Once you get the code the way you want it, cut and paste just the code snippet below to the end of the extensions_trixbox.conf file and restart Asterisk.

[custom-callboth]
exten => _1NXXNXXXXXX,1,Wait(1)
exten => _1NXXNXXXXXX,2,Background(pls-wait-connect-call)
exten => _1NXXNXXXXXX,3,Macro(dialout-trunk,0,${EXTEN},)
exten => _1NXXNXXXXXX,4,Macro(outisbusy) ; No available circuits

Editing the Caller Location. One more configuration step, and we'll be ready to drop in our web application. Open the asteridex folder on your desktop and then, using your favorite text editor, open callboth.php (nano -w callboth.php). We're going to set four variables (beginning on line 26) to meet your local needs. The variables look like this now.

$INdefault = "SIP/200" ;
$INtrunk="SIP" ;
$LDprefix="1" ;
$CallerID="6781234567" ;

Move to the above lines using your editor, and set $INdefault to the extension you want to ring where you want to take phone calls being placed with AsteriDex. If it's a SIP phone or a PSTN phone connected to an ATA, the sip syntax shown is correct. Just plug in the appropriate extension. If you'd prefer to send the calls to a ring group so multiple phones ring when you place a call, the syntax is local/222@from-internal where 222 is the number of the ring group you want to use. If you're using an IAXy extension, the syntax is IAX2/244. You also have the option of ringing any other telephone or cellphone even though it's not a local extension on your Asterisk PBX. Just make sure you have sufficient outbound trunks to support two simultaneous calls. The syntax for an external phone is SIP/telasip-gw/16785551212. Substitute your VoIP provider for telasip-gw and plug in the phone number with the prefix, if any, required to place calls through this provider. For those lucky enough to have GrandStream's GXP-2000 IP phone with AutoAnswer, you can configure the GrandStream phone to automatically answer and activate the speakerphone for incoming calls on a specified extension. To take advantage of this, just set $INdefault to this extension (SIP/267), and your GrandStream will go off-hook automatically each time you place a call using AsteriDex. Too cool! P.S. Some Aastra/Sayson IP phones can do the same trick.

$INtrunk defines the protocol which will be used to place calls to you (i.e. inbound) assuming you make entries in your database that specify an actual extension rather than using an asterisk (*) to force incoming calls to the $INdefault setting. For SIP phones or PSTN phones through an ATA, use SIP. For IAXy extensions, use IAX2. For PSTN calls using Asterisk cards, use ZAP.

$LDprefix defines the dialing prefix to be used for outbound calls to numbers stored in your database. Our recommendation is to enter all phone numbers in your AsteriDex database as 10-digit numbers. Then control the required dial string for your outbound provider by adding this dialing prefix. If your provider doesn't require a prefix for outbound calls, just delete the 1 above and leave the two double quotes with no space between them.

$CallerID defines the CallerID string for your outbound call. Most VoIP providers (other than TelaSIP) don't let you change this so just enter the 10-digit number associated with your outbound trunk, if any.

When you finish making all the entries above, save the file in ASCII text format.

Loading AsteriDex On Your Apache Web Site. The web site that is served by your Asterisk machine is stored in /var/www/html. For use behind your firewall/router, you can access the site at http://192.168.0.133/ substituting the private IP address of your Asterisk machine, of course. What we want to do now is copy the asteridex folder on your desktop to /var/www/html so that the site can be accessed at http://192.168.0.133/asteridex/. Don't forget the trailing slash mark, or you may see nothing. If you have turned on Internet access to your web server by mapping http and port 80 traffic to the private IP address of your Asterisk server, then keep in mind that ANYONE can run the application by simply going to your public IP address/asteridex with a web browser. This probably isn't a real good idea. There are numerous methods to protect the AsteriDex web site if you decide to go "public." The most secure way is to copy the asteridex folder into /var/www/html/maint. Apps in this folder require your maint username and password for access. So you then could access AsteriDex at this site address: http://192.168.0.133/maint/asteridex/ (substituting the private IP address of your Asterisk machine or your public IP address, of course)


Activating AsteriDex Admin Interface. You didn't really think we'd leave you with nothing but phpMyAdmin to maintain your AsteriDex database, did you? Well, you were right. There is an admin interface for AsteriDex. But, before you can use it, you have to designate the IP address of the desktop machine you'll be using with it. Go to the AsteriDex directory on your Asterisk web site: cd /var/www/html/asteridex. Now carefully edit the admin interface program: nano -w admin.php. On the second line, you'll see the following IP address: 192.168.0.107. Unless this just happens to be the IP address of your desktop machine that you want to use to administer AsteriDex, it needs to be changed to the correct IP adddress. Don't change anything else including the punctuation. Now save your changes: Ctrl-X, Y, then press enter. You now should be able to call up the Admin interface with the following link: http://asteriskboxIPaddress/asteridex/admin.php. That's a big pain in the rear if the only person that will be using this system is you. So here's a shortcut. While you're in the AsteriDex directory, enter the following command: echo 123 > admin and press enter. That will create a file called admin with 123 as the contents. Henceforth, when you run AsteriDex, the admin option will appear as an additional tab. You still have to be using the correct machine to access it, however. Not sure of your machine's IP address? Just access the Admin option once, and it will quietly return you to the ABC tab. But, if you look in your browser's command window, it will have the IP address of your workstation identified following ip= on the command line. That's the IP number you need to insert on the second line of the admin.php file. We're going to gamble that once you see the interface, you'll be able to figure it out on your own. Just a word of warning: the delete entry option does just that. No warnings. No second chances.

Taking AsteriDex For A Test Run. Once you drop the folder in place on your web site and get it named, you should be ready to roll. Use your favorite web browser to call up AsteriDex and click on one of the included airlines to place a test call. Your web browser will display the contact's phone number as you drag the mouse over an entry. Once you click on a link, a separate browser window will pop up momentarily, and then the default phone you designated should start to ring. Pick it up, and your outbound call will be placed. Book a nice trip to Hawaii for your friend, Ward Mundy, and then hang up and send me the ticket. Wasn't that easy!

Activating the RoboDialer. We mentioned at the outset that this updated version of AsteriDex now lets you place calls from any touchtone phone using your AsteriDex phonebook. Here's how. First, as you add new entries, specify a one to five-digit DialCode for the entry. These codes must be numbers that correspond to the numbers on your touchtone phone obviously. You can make them anything you like. We prefer a number that matches the first four characters of our friends' first names, but again that's up to you. Once you get your database loaded up with DialCodes, then we need to drop another little block of code in the top section of the extensions_trixbox.conf file. Here's what the code looks like so just add it to the [from-internal-trixbox] context at the top of the file. This setup will use your default TrixBox dialing rules for the calls:

exten => _00.,1,SayDigits(${EXTEN:2},) ; extensions dialed with 00 prefix get looked up in AsteriDex
exten => _00.,2,EAGI(asteridex.agi|${EXTEN})
exten => _00.,3,GotoIf($["${DIAL:0:2}" = "00"]?97)
exten => _00.,4,NoOp(Number to Dial: ${DIAL})
exten => _00.,5,NoOp(Person to Dial: ${DUDE})
exten => _00.,6,Flite("Connecting to: ${DUDE}. One moment please.")
exten => _00.,7,Goto(outbound-allroutes,${DIAL},1)
exten => _00.,8,Hangup()
exten => _00.,97,Playback(num-not-in-db)
exten => _00.,98,Playback(goodbye)
exten => _00.,99,Hangup()

Finally, we have an AGI script which you'll find in the agi-bin folder of the asteridex code you downloaded to your desktop. The file name is asteridex.agi. Copy this file to the /var/lib/asterisk/agi-bin folder on your TrixBox server and, while logged in as root, change the ownership of the file: chown asterisk:asterisk /var/lib/asterisk/agi-bin/asteridex.agi. And then change the file permissions to make the file executable: chmod 775 /var/lib/asterisk/agi-bin/asteridex.agi. After you reload Asterisk (amportal restart), you should be all set. Pick up a phone on your system and dial 00 plus the DialCode of someone in your database and Shazam!

Configuring AsteriDex for Multiple Sites. The web-based interface of AsteriDex is designed to call you at a specific phone number or ring group when you click on a contact in the database. But suppose you want to use AsteriDex either in multiple locations or with simultaneous users each with a different phone number. The only trick here is to decide up front whether all of the sites and/or users will be sharing the same phone book.

If all of the users or sites will be sharing the same phone book, then it's quite simple to customize AsteriDex for multiple users or locations. Just copy the /var/www/html/asteridex directory to a new location with a new name, e.g. /var/www/html/lakehouse or /var/www/html/janet. Once you've copied all the files, you'll need to adjust the callback number and IP address of this site or user. To adjust the callback number, review the Editing the Caller Location section above. To adjust the IP address, review the Activating AsteriDex Admin Interface section above.

If you want each user or site to have their own phone book, then the project is more complex. You either have to make duplicate copies of the asteridex database (with different names, of course) or you have to make additional user1 tables such as user2, user3, etc. You'll also need to create a duplicate asteridex.agi script with a new name for each user. Then you'd edit the asteridex_lookup subroutine to match your new database or table name. Next you'll need to repeat the steps above to duplicate the asteridex web directory. Once you have the new directory in place, you'll need to edit each of the php files and change all instances of either the database or table name and the agi script name to match your new file names. Finally, you'll need to adjust the dialplan code in Activating the RoboDialer to match your new script name. HINT: As currently written, AsteriDex really wasn't designed to have different databases for different users. In case you haven't caught on yet, it would be just about as easy to start over as to try and rework our code to make the square peg fit in the round hole. Note that the existing database does have a facility to support different call back numbers for different entries in your database. So it's really quite easy to build entries which ring different phones based on the entry. For the Contact Name, you might want to use a prefix such as Lake: Wendy's which would mean ring the lake house phone when I want to call Wendy's. Then, for the Your Extension entry, enter the phone number of the lake house phone instead of an asterisk. Piece o' cake!

AsteriDex for Smartphones. Since this article was originally published, we've added a new piece of code for those that happen to have a smartphone or PDA phone and want access to your AsteriDex database for dialing. You'll need something like a Blackberry, 6700 smartphone, Treo 650 or 700 that includes a real web browser (not WAP!) and web service from your cellphone provider. Install AsteriDex as outlined above. Then open up port 80 on your firewall and point it to the private IP address of your TrixBox system so that you can access the web server running on your TrixBox system. To install the smartphone software, log into your server as root and execute the following commands:

cd /var/www/html
mkdir cellphone
cd cellphone
wget http://nerdvittles.com/wp-content/cellphone.zip
unzip cellphone.zip
rm -f cellphone.zip
chown asterisk:asterisk index.php
chmod 775 index.php

Now you can access your AsteriDex database entries from the web browser on your cellphone by pointing the browser to: http://PublicIPaddress/cellphone/ or http://AsteriskFQDN/cellphone/. If your smartphone is fairly "smart" you can also dial any number in your AsteriDex database by simply clicking on the desired phone number. At least with Sprint cellphones, you also have the option of sending a text message to anyone with a cellphone by clicking on any phone number entry. Please note that these outbound calls will be made directly through your cellphone provider, not through your Asterisk system (as was the case with the original AsteriDex web-dialing project). The reason is pretty simple. Most smartphones don't support simultaneous use of your web browser and phone so there's no way for your Asterisk box to call you without getting your voicemail. Yes, we did try it!

Update for International Calling. The robodialer originally only supported 10-digit phone numbers. That's now been fixed thanks to chandave, our non-resident Perl genius.

Enhancing CallerID with AsteriDex. Once you get AsteriDex up and running, learn how to use it to look up CallerID names for all your incoming calls. Click here (including all the comments) for details. We're going to revisit this project especially for TrixBox in the next week or two.


Nerd Vittles Demo Hot Line. You now can take a number of Nerd Vittles projects for a test drive... by phone! The current demos include NewsClips for Asterisk (latest news headlines in dozens of categories), MailCall for Asterisk with password 1111 (retrieve your email by phone), and Nerd Vittles Weather Forecasts by U.S. Airport Code. Just call our Stanaphone number (shown in the left margin) 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 compliments of Google. 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.

Hosting Provider Special. Just an FYI that the Nerd Vittles hosting provider, BlueHost, has raised the bar again on hosting services. For $6.95 a month, you can host up to 6 domains with 30GB of disk storage and 750GB of monthly bandwidth. Free domain registration is included for as long as you have an account. That almost doubles last month's deal, and it really doesn't get any better than that. Their hosting services are flawless! We oughta know. We've tried the best of them. If you haven't tried a web hosting provider, there's never been a better time. Just use our link. You get a terrific hosting service, and we get a little lunch money.

Want More Projects? For a complete catalog of all our previous Asterisk projects, click here. For the most recent articles, click here and just scroll down the page.

Headline News for the Busy Executive and the Lazy Loafer. Get your Headline News the easy way: Planet Asterisk, Planet Gadget, Planet Mac, and Planet Daily. Quick read, no fluff.

Got a PDA or Web-Enabled Smartphone? Check out our new PDAweather.org site and get the latest weather updates and forecasts from the National Weather Service perfectly formatted for quick download and display on your favorite web-enabled PDA, cellphone, or Internet Tablet. And, of course, it's all FREE!

Get Your News By Telephone: Introducing NewsClips for Asterisk

Well, we're on a roll adding new tricks to our TrixBox. In the last month, we've added Weather Reports for 1,000 U.S. Airports. And last week, we taught our TrixBox system to read email over the telephone with MailCall for Asterisk®. Today, we add another 'Speak-And-Spell' application: an RSS newsreader for your phone. With today's free software and any phone that can connect to your Asterisk system, you get access to all of the RSS News Feeds from Yahoo. There are dozens available with more to come. The news feeds include the latest headlines, sports, health, technology, show biz, politics, business, and many more. NewsClips for Asterisk joins dozens of other RSS newsreaders with a couple of important differences. First, of course, our app is FREE! And second, you can use a Plain Old Telephone to get your one-minute news fix whenever you like. And the feeds are always current. Yahoo!

How does it work? It's simple. You pick up a telephone and dial an extension on your TrixBox or Asterisk system. And NewsClips for Asterisk reads you the latest news headlines in your choice of news categories. Can it handle multiple news feeds? Absolutely. Do I need a Yahoo account? Nope. Are there any restrictions on its use? Yep. You have to abide by Yahoo's Terms of Use for their news feeds. After all, it's their news, and they paid the license fees to the Big Boys to access it. In a nutshell, the news feeds are for personal, non-commerical use. Non-profit organizations also can freely use the news feeds. If you happen to be running a current version of TrixBox, then deploying NewsClips for Asterisk will take you about 15 minutes. For other versions of Asterisk, you'll need to install Apache, PHP, and the Flite voice processing system. You can scratch around on Nerd Vittles for most of the tutorials. But the easiest way to get this up and running quickly is to install TrixBox and get the most recent updates using our latest tutorial.

Try It, You'll Like It. At the risk of bringing our clunker TrixBox development server (with a whopping 128MB of RAM) to its knees, we decided to make it easy for you to see how NewsClips for Asterisk works. You can call our Stanaphone number and take it for a spin. Just dial the number shown in the left margin. And understand that the sound quality may not be perfect due to performance limitations of this ancient Intel 386 machine. We'll show you how to set up something similar toward the end of this article... hopefully with better hardware.

Getting Started. Let's take first things first. Before proceeding with the installation, make sure you are running at least TrixBox 1.1.1 by pointing a web browser at the IP address of your TrixBox server. If you're running an earlier version, log into your server as root, and type trixbox-update.sh update twice to get everything current. Then reboot. If you're running pure Asterisk on some other type of Linux box, come back the day after tomorrow when you finish installing and configuring Apache, PHP, SendMail, and the Flite speech synthesis engine. Once you get all of the pieces properly configured and talking to each other, you'll be in the same place as those that used our tutorial last week to install TrixBox 1.1.1 at no cost in about an hour.

Modifying Your TrixBox Dialplan. We need to add a little code to the extensions_trixbox.conf file for each news feed you want to access. The basic code looks like this:

exten => 511,1,Answer
exten => 511,2,Wait(1)
exten => 511,3,AGI(nv-news.php|topstories)
exten => 511,4,Flite("Thank you for calling. Good bye.")
exten => 511,5,Hangup

The only change you need to make is in the extension number (511) on each line and the default news category (topstories) in line 3. The extension number tells Asterisk what number you'll be calling to access your news headlines. If you want to access more than one news feed, then you simply duplicate the above code with different extension numbers and a different news feed category in line 3. Or you can run NewsClips for Asterisk in demo mode and choose from ten different news feeds each time you call. Here are some of the news categories that Yahoo News currently supports. For the complete list of Yahoo RSS News feeds, go here. By the way, there's no error checking for typos so type the category name exactly and carefully.

topstories
world
tech
showbiz
oped
business
politics
elections
iraq
mideast
sept11
sports
nasashuttle
science
health
education
hurricanes
oddlyenough
hotzone
adventures
obits
mostemailed
mostviewed
highestrated
mostblogged

Just be sure that all 5 lines of each code snippet above have the same extension number. Now open up the TrixBox web interface by pointing a web browser at your TrixBox server. Then choose Config Edit on the main Configuration and Administration screen. Once phpconfig opens, click on extensions_trixbox.conf. Add the above code in the [from-internal-trixbox] context (section) of the file. And click the Update button once you've adjusted the extension numbers and news feed category to meet your needs.

Installing NewsClips for Asterisk. Now we're ready to install the actual application. Log into your server as root and issue the following commands in order:

cd /var/lib/asterisk/agi-bin
wget http://nerdvittles.com/trixbox11/newsclips.zip
unzip newsclips.zip
rm -f newsclips.zip
chown asterisk:asterisk nv*.php
chmod 775 nv*.php

The zip file contains the NewsClips application: nv-news.php. Once you install the application, restart Asterisk: amportal restart. Now pick up a phone on your Asterisk system and dial 511. Presto! Your news has arrived ... on your telephone! If you want to play the same news feed each time you call a particular extension instead of the menu giving you a choice of ten different news feeds, then you'll need to make one change in the nv-news.php application file using your favorite editor (nano -w /var/lib/asterisk/agi-bin/nv-news.php). Just edit the line which reads $demomode=1 ; and change it to $demomode=0;. After saving this change (Ctrl-X, Y, then Enter), you won't get the news group options when the NewsClips app swings into action. Instead you can set up multiple extensions to handle different news feeds.

Remote Access to NewsClips for Asterisk. You may or may not want access to NewsClips for Asterisk from phones outside your Asterisk system. If you do, here's a simple way to implement it. In a nutshell, you'll want to set up an account with a provider such as Stanaphone which provides a free DID number and free incoming calls. Or just add an extra DID number to your TelaSIP account. Then add a miscellaneous destination to your system using freePBX and configure it for extension 511 or whatever number you used for NewsClips for Asterisk. Finally, create an Incoming Route in freePBX which sends incoming calls on the Stanaphone or TelaSIP DID number to misc destination: NewsClips. Why not just forward the calls to 511 directly? Until you set up a miscellaneous destination for NewsClips, freePBX doesn't know about the 511 extension since it's embedded in the extensions_trixbox.conf file.

First, add a miscellaneous destination to your system using Setup->Misc Destinations->Add Misc Destination. Name it NewsClips and enter the extension number you assigned to this application, e.g. 511. Next, add a trunk for your StanaPhone number. We covered the Stanaphone setup process in our TrixBox tutorial. Finally, choose Setup->Inbound Routes->Add Incoming Route in freePBX. Add entries that look like this using your new StanaPhone DID number:

DID Number 3473451234
CallerID Number [leave blank]
Zaptel Channel [leave blank]
FAX Extension freePBX default
FAX Email [leave blank]
FAX Detection Type nvfax
Pause After Answer 2
Privacy Manager no
Alert Info [leave blank]
Misc Destinations: NewsClips

Click the Submit button when you finish and then the Red Bar to reload Asterisk. Now you can dial your Stanaphone number from any phone anywhere to access your news. This is exactly how the Nerd Vittles NewsClips demo works.

Adding Additional News Feeds to NewsClips for Asterisk. Here's a refresher on adding an additional news category to your system. Step 1 is to add 5 more lines of dialplan code (as we did above) to your extensions_trixbox.conf file using a new extension number, e.g. 512, and a different news category from the list above. Second, restart Asterisk: amportal restart. Now dial the extension and be sure it works. Reminder: Be sure to turn off demomode if you want to use different news feeds on different extensions.

NewsClips for Asterisk Wish List. This is just version 1 of what we hope will be a helpful addition to your Asterisk applications collection. Your feedback can help us with future versions. If there are news feeds that don't get decoded properly, post a comment and let us know the details. And leave a valid email address so that we can get back to you if we need additional information. Your email address does NOT get published in the comment. We'd also appreciate your posting a comment if you have a suggestion for version two down the road. Enjoy!


Nerd Vittles Fan Club Map. Thanks for visiting! We hope you'll take a second and add yourself to our Frappr World Map compliments of Google. 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.

Hosting Provider Special. Just an FYI that the Nerd Vittles hosting provider, BlueHost, has raised the bar again on hosting services. For $6.95 a month, you can host up to 6 domains with 30GB of disk storage and 750GB of monthly bandwidth. Free domain registration is included for as long as you have an account. That almost doubles last month's deal, and it really doesn't get any better than that. Their hosting services are flawless! We oughta know. We've tried the best of them. If you haven't tried a web hosting provider, there's never been a better time. Just use our link. You get a terrific hosting service, and we get a little lunch money.

Want More Projects? For a complete catalog of all our previous Asterisk projects, click here. For the most recent articles, click here and just scroll down the page.

Headline News for the Busy Executive and the Lazy Loafer. Get your Headline News the easy way: Planet Asterisk, Planet Gadget, Planet Mac, and Planet Daily. Quick read, no fluff.

Got a PDA or Web-Enabled Smartphone? Check out our new PDAweather.org site and get the latest weather updates and forecasts from the National Weather Service perfectly formatted for quick download and display on your favorite web-enabled PDA, cellphone, or Internet Tablet. And, of course, it's all FREE!