The Most Versatile VoIP Provider: FREE PORTING

Choosing the World’s Best Mobile Phone… Again!

Up until now, we’ve resisted the temptation to wade into the iPhone vs. Nexus One battle. And there have been many thought-provoking contributions on both sides of the discussion. Our take on it is that, for many folks, it’s now come down to the Ford vs. Chevy debate. We know lots of Ford enthusiasts that would never set foot in a GM vehicle. And vice versa.

In the cellphone world, there are some differences between Apple and Google philosophically that you really don’t see in choosing between Ford and Chevy. If you’re looking for a cellphone that just works, that requires little involvement on your part, and that basically functions as a phone, a music player, and a handheld game device, then you’ll love the iPhone. Apple controls the entire user experience end-to-end, and they’ve gotten it just about right after three years of evolutionary development. If you’re looking for a cellphone that functions more as a mobile office, then the choice comes down to Blackberry vs. Nexus One at least in our book. The Blackberry still is the hands-down winner if your business runs on Microsoft Exchange although the Nexus One performs admirably. For everyone else, the Nexus One is your baby. That’s where we are today. But what about next year, and…

It’s Integration, Stupid! Unless you’ve been living under a rock, Cloud Computing should not be a new concept. The whole corporate world is moving there. Why? Because it’s too damn expensive to manage the complexities of modern data processing technology in house. And when it comes to Cloud Computing, there’s no one better at it than Google. The tight integration of email, messaging, voice communications, directories, calendaring/scheduling, and maps in the Google universe is legendary. And Google is damn close to Microsoft on the document preparation and spreadsheet front. Google’s search technology is simply the icing on the cake. But what icing! It ties all of these components together in a way that others only Bing about.

What the Nexus One brings to the table is a mobile computing platform that is fully capable of taking advantage of all of Google’s integration strengths. Email is always synchronized with your Gmail account. Your Address Book is always synchronized with your Google Address book. Your calendar is always synchronized with your Google Calendar and those of your coworkers. Your phone rings on your Nexus One at the same time it rings in your office or home. And your outbound calls, including your CallerID, can be processed just as if you were placing the same calls from your office or home. Simple, isn’t it? Can Apple do the same thing? To some extent, certainly. But the Apple MobileMe sync technology is archaic compared to the Google model. With Apple you’re synchronizing Address Books and Calendars from Apple-only desktop machines to a central server (for a fee) on a scheduled basis. That leaves 90% of corporate America out of the loop. With Google, there is only one Address Book and Calendar, and they’re both already stored in the Cloud. So you don’t have the endless problems associated with keeping a dozen or a hundred or thousands of users’ information in sync.

Long Live the Soup Nazi. For Seinfeld fans, no one can touch the Draconian deeds of the Soup Nazi. But Apple comes close: pushing out updates that reportedly bricked the iPhones of users that sought a bit more freedom in their software choices, telling the FCC that unlocked iPhones threaten the security of the national cellphone network, ruling the Apple Store with an iron fist. This is not acceptable corporate behavior in our book. For the average cellphone user, this conduct may not matter, but it should. The choice really comes down to spending your dollars with a company that fosters and encourages open source development versus a company that treats you as if you’re too dumb to know what’s good for you.

Our Pick: The Nexus One. We’ll leave you with our Baker’s Dozen reasons for choosing the Nexus One over the iPhone. YMMV! For the best and most balanced technical review to date, visit Ars Technica.

1. Google Apps Integration (see above)
2. Navigation integrated with Voice & Google Maps (video)
3. Phone-wide Speech-to-Text Voice Integration
4. Multitasking and Recent App Switcher Button
5. Back Button to non-destructively back out of anything
6. One-Touch App Directory plus 5 Custom Screens
7. Goggles & Dolphin Multi-Touch Browser
8. SIP and Google Voice integration with WiFi and Cell Nets
9. Intuitive store without corporate content control
10. Unlocked phone, easily rooted, Cyanogen
11. Replaceable battery
12. Expandable storage
13. Flash

In the immortal words of Bernie Mac, "Whatcha gonna do, America?"



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


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


 

Special Thanks to Our Generous Sponsors


FULL DISCLOSURE: ClearlyIP, Skyetel, Vitelity, DigitalOcean, Vultr, VoIP.ms, 3CX, Sangoma, TelecomsXchange and VitalPBX have provided financial support to Nerd Vittles and our open source projects through advertising, referral revenue, and/or merchandise. As an Amazon Associate and Best Buy Affiliate, we also earn from qualifying purchases. We’ve chosen these providers not the other way around. Our decisions are based upon their corporate reputation and the quality of their offerings and pricing. Our recommendations regarding technology are reached without regard to financial compensation except in situations in which comparable products at comparable pricing are available from multiple sources. In this limited case, we support our sponsors because our sponsors support us.

BOGO Bonaza: Enjoy state-of-the-art VoIP service with a $10 credit and half-price SIP service on up to $500 of Skyetel trunking with free number porting when you fund your Skyetel account. No limits on number of simultaneous calls. Quadruple data center redundancy. $25 monthly minimum spend required. Tutorial and sign up details are here.

The lynchpin of Incredible PBX 2020 and beyond is ClearlyIP components which bring management of FreePBX modules and SIP phone integration to a level never before available with any other Asterisk distribution. And now you can configure and reconfigure your new Incredible PBX phones from the convenience of the Incredible PBX GUI.

VitalPBX is perhaps the fastest-growing PBX offering based upon Asterisk with an installed presence in more than 100 countries worldwide. VitalPBX has generously provided a customized White Label version of Incredible PBX tailored for use with all Incredible PBX and VitalPBX custom applications. Follow this link for a free test drive!
 

Special Thanks to Vitelity. Vitelity is now Voyant Communications and has halted new registrations for the time being. Our special thanks to Vitelity for their unwavering financial support over many years and to the many Nerd Vittles readers who continue to enjoy the benefits of their service offerings. We will keep everyone posted on further developments.
 


Some Recent Nerd Vittles Articles of Interest…

Tweet2Dial: Free Google Voice Calling & SMS with Twitter

To celebrate the New Year, it seemed only fitting to bring Google Voice calling out of the cloud and into our favorite social hangout. For our special New Year's project, we're pleased to introduce Tweet2Dial. It lets you use Twitter or your favorite Twitter client to make free outbound calls through Google Voice to anyone in the United States or Canada. Just send a Direct Message to your new Twitter account and, in less than a minute, your phone will ring connecting you to the person's phone number you specified in your Twitter message. In addition, you also can send SMS messages to anyone with an SMS-capable device in the U.S. and Canada. All of this magic is managed on your existing Asterisk® server or almost any Linux server or Mac. There's no Asterisk overhead to process the calls and SMS messages because Asterisk isn't required! But, to start 2010 off on the right foot, we've included a little bonus at the end of this article for all the Asterisk administrators in the house. If you happen to be using an Asterisk server, you now can manage it from Twitter with Tweet2Dial, too.

For those with cellphone plans that let you designate certain numbers for free, unlimited calling (such as Sprint, AT&T, Verizon, and T-Mobile), adding your Google Voice number to your preferred number list will mean that all of your Tweet2Dial-originated cellphone calls to anyone and everyone throughout the U.S. and Canada will now also be totally free with no impact on your bucket of call minutes.

Yes, we know Jajah is working on something similar for Twitter. But you have to be invited to participate in Jajah's beta (we didn't make the cut!), free calls are limited to two minutes, and both parties have to have a Twitter account which doesn't work too well for calling grandma. So why put up with all the limitations and restrictions of Jajah when you can do it yourself?

There's been some tech chatter that the procedure we've outlined below is complicated. If you can paint by number or bake cookies from the back of a Nestle's bag, trust me. You can handle this! Getting a Mac or a Linux server set up to support Tweet2Dial only takes a minute or two. So ignore the trade rags. Some of them can barely read. 🙂

If you've already gone through our Google Voice tutorial which enables free Google Voice calling on your Asterisk server, or if you've installed our all-in-one Orgasmatron V build on your Asterisk server, or if you have a Mac or you've built your own Linux server without Asterisk, there's no need to wait for Jajah and no need to limit your calls to two minutes or to those with Twitter accounts! You can call anyone in the United States or Canada right now, talk as long as you like, and do it all for free with Tweet2Dial, Twitter, and Google Voice! If you're a Windows user, check out the Google Voice Dialer for Windows.

Prerequisites. To get started, you can use your Asterisk server configured for Google Voice as we've outlined above. We won't actually be using Asterisk to place the calls, but our previous tutorials get your server properly set up with Google Voice and the latest, awesomest1 pygooglevoice to support Tweet2Dial. Any of the Asterisk aggregations such as PBX in a Flash will work great.

If you don't have a PBX in a Flash server with Google Voice already configured, shame on you! Just kidding. Actually, any recent CentOS or Fedora Linux server will work just as well today. Log into your server as root. Run rpm -q python to make sure you have at least Python 2.4 installed on your system. If not, run: yum update python. Then execute the following commands:

cd /root
yum install python-setuptools
easy_install simplejson
wget http://pygooglevoice.googlecode.com/files/pygooglevoice-0.5.tar.gz
tar zxvf pygooglevoice*
cd pygooglevoice-0.5
python setup.py install

Tweet2Dial also will run just fine on any Mac of recent vintage. We've actually tested it with Snow Leopard. Basically, to get Python and Apache set up properly, you have to enable root access, switch to root user access with su in Terminal, activate PHP support in Apache, turn on Web Sharing in System Preferences->Sharing, run easy_install simplejson as root to install simplejson (the Python Setup Tools already are in place!), using a browser download pygooglevoice to your Downloads folder, untar it as root in Terminal with the same command as above, and then while still logged into Terminal as root, go to the Downloads/pygooglevoice-0.5 folder and run the following command: python setup.py install. The only variations in the Tweet2Dial setup will be the storage location for Tweet2Dial (there is no root folder on a Mac) and the methodology for setting up the crontab entry (HINT: we'll run crontab -e to add a crontab entry since there is no /etc/crontab file). Just follow along using the Mac-specific instructions below for details, and everything will work swimmingly.

To test whether your server is properly configured for Tweet2Dial, log in as root and type: gvoice. You should be prompted for an email address. If so, press Ctrl-C to exit. You're ready to roll. If not, pygooglevoice has not been properly installed on your server.

You'll obviously need a Google Voice account. Request an invite here or just post a brilliant comment below, and one might magically appear in your inbox. Configure your Google Voice account with all the phone numbers from which you want to place outbound calls. One of these numbers will already be the go-between number for Google Voice and your PBX in a Flash server (IPkall or SIPgate) if you've followed our previous tutorials. Now simply add additional numbers that you want to use to place outbound Google Voice calls. This would include numbers such as your cellphone, your vacation home, and your direct-dial office number. You do not need to enable them for ringing when inbound calls arrive on your GV number.

For today's project, you'll also need a new Twitter account even if you already have one. Why? Because you can't send a Direct Message to yourself with Twitter. So we'll use your primary Twitter account to send Direct Messages with dialing instructions to your secondary Twitter account. Then we'll use Tweet2Dial to poll your secondary account and retrieve the dialing instructions to actually place the outbound calls with pygooglevoice through your server. It sounds harder than it actually is. Honest! Assuming you already have Google Voice running on your Asterisk server, you'll be tweeting away in 10 minutes. If you have a current Linux server, add an extra 2 minutes to install pygooglevoice using the steps above.

Usage Considerations. Before someone asks, let's address Question #1. Can others send messages to my Twitter account in order to make outbound calls through my server using Google Voice? And the answer is yes and no. We're going to configure your new secondary Twitter account with Protect My Tweets enabled. This means you have to approve friends and also become their friend before they could send a Direct Message to your secondary Twitter account. So, yes, if you approve, any Twitter user could theoretically place calls using your Twitter secondary account. For the average reader, we wouldn't recommend it for a couple of reasons. Here's why.

Google Voice only lets you link a handful of phone numbers to your GV account. So, for your friends to be able to place calls using your GV credentials, you'd have to forfeit one of your allotted quota of numbers for each person... or their phone would never ring to place the outbound calls. Yours unfortunately would! Remember, Google Voice always places two calls to complete a connection: one to you (using one of the phone numbers defined in your GV account) and one to the person with whom you wish to speak.

The other reason for not opening this up to other callers is that Google Voice limits your account to one outbound call at a time. If others are using Twitter to make calls using your GV credentials, it means you can't. And there's no mechanism for easily identifying when a call already is in progress. So our recommendation is to keep your secondary Twitter account private and set up Following and Follower linkage only with your primary Twitter account. This will mean that Direct Messages to your secondary Twitter account can only originate from your primary Twitter account. You can still place outbound calls to anybody, but others can't!

Having said all of that, we've designed Tweet2Dial so that you can allow others to use your secondary Twitter account to place Google Voice calls using their own GV credentials. This saves them the aggravation of setting all of this up, but it means they have to trust you enough to share their Google Voice credentials. After all, what are friends for? 😉 At the end of this article, we'll walk you through how to do this if you really have the urge. We would hasten to add that the actual processing load on your server is virtually zero so don't be deterred by performance concerns. Pygooglevoice sends the calling instructions to Google Voice, and then your server is completely out of the call loop. We've still limited outbound call setup to one call per minute, but these calls do not have any impact on Asterisk resources and only very minimal impact on your server. The only drawback to hosting Tweet2Dial for your friends is that, if five simultaneous Twitter messages are sitting in the queue, it would mean the last call request won't be processed until about 5 minutes after the Twitter message was sent. But, unless you have a bunch of extremely chatty friends, call request congestion shouldn't be a problem.

One final word of caution. Twitter currently permits a maximum of 150 Twitter API calls per hour per account. There is some good news. Within the next few weeks, this limit will be increased to 1500 per hour, but it hasn't happened yet. This application is designed to poll your secondary Twitter account once a minute to retrieve and then discard your oldest, existing Direct Message. So it uses 120 of your allotted 150 API calls per hour to work its magic. You are well advised NOT to run any third-party Twitter applications with this secondary Twitter account, or you will quickly exceed the current connection limitation. When the API limit is reached, it means none of your pending call requests would be processed until the next hour rolls around... at least until Twitter raises this connection limit. Once Twitter raises the API limit, we may revisit our code and eliminate the current one call per minute limitation. So stay tuned!

Creating A Secondary Twitter Account. First, let's get your secondary Twitter account set up. Go to twitter.com and create a new account with a very secure password! You must enter a different email address than the one used for your primary account. Use one you can actually access! Log into your new account and choose Settings. Scroll down to Protect my tweets and check the box by clicking on it. Save your settings. NOTE: This check box is critically important. It keeps the entire world from being able to access your server! There are other layers in the security model, but this one is VERY IMPORTANT so verify it twice! Now log back into your primary account. Then goto http://twitter.com/SecondaryAccountName and request access. You'll get a message that your request for access has been sent. Log out and back into your secondary account once again. Authorize your primary account name as a Follower. Now log out and back into your Primary Account. We'll use it to send a Direct Message to your secondary account in a few minutes.

Installation and Configuration. To install Tweet2Dial, log into your server as root and issue the following commands:

cd /root
wget http://pbxinaflash.net/source/twitter/tweet2dial.tgz
tar zxvf tweet2dial.tgz
rm tweet2dial.tgz

If you're doing this on a Mac, there is no wget application and no root folder so you'll need to download tweet2dial.tgz with your browser. Save it to your Downloads folder. Then open a Terminal window and execute this command:

tar zxvf Downloads/tweet2dial.tgz

Now let's configure the application:

nano -w tweet2dial.php

At the top of the file, you'll see the following lines:

// Your SECONDARY Twitter account username and password
$username = "TwitterUsername";
$password = "TwitterPassword";

// Authorized Twitter users with corresponding GV credentials go below
$user['twitname'][1]="YourPrimaryTwitterUsername";
$user['gvemail'][1]="YourGoogleVoiceEmailAddress@gmail.com";
$user['gvpass'][1]="YourGoogleVoicePassword";
$user['gvcall'][1]="6781234567";

// *** Leave everything below this line alone. 🙂

Begin by entering your secondary Twitter name and password by replacing TwitterUsername and TwitterPassword with your actual credentials. Be careful here. Capitalization matters! If you set up your Twitter username as gvNerdUno, don't enter gvnerduno! Now move down to the four $user entries. The first is your primary Twitter account name. Replace YourPrimaryTwitterUsername with your actual Twitter account name. Again be careful of capitalization! Next, enter the login email address for your Google Voice account replacing YourGoogleVoiceEmailAddress@gmail.com. Next, enter your Google Voice password replacing YourGoogleVoicePassword. Finally, enter one of the 10-digit ringback numbers you've configured in your Google Voice account by replacing 6781234567. Do NOT use the one that's reserved for use by Asterisk! This is the number that will be called by default whenever you place an outbound call with Twitter. You'll have the option of overriding it, but this saves your having to enter both a destination phone number and a callback number each time you wish to place a call. Be sure to preserve the quotes around each of the entries. Once you've double-checked all of your entries for typos, save your changes: Ctrl-X, Y, then Enter.

Tweet2Dial Test Drive. Now that everything is set up, let's place a test call to be sure everything is working. Log into your primary Twitter account. Click on Direct Messages. Choose your secondary Twitter account from the pulldown menu. In the block below Send a Direct Message, enter a 10-digit number in the U.S. or Canada that's different from your default callback number. Then click the Send button. It's that simple! Once Twitter tells you the message has been sent, log into your Asterisk server and execute the following commands.

cd /root
./tweet2dial.php

If you're on a Mac, just open a Terminal window and type ./tweet2dial.php. In either case, you should get a response indicating that your call has been placed, and your default phone number should begin to ring. When you answer it, Google Voice will place a call to the 10-digit number that you entered in your Twitter direct message above.

Now, just for fun, run Tweet2Dial again: ./tweet2dial.php. If everything is working properly, you will see the following message: Nothing to do.

Finally, assuming you have configured another callback number in Google Voice that is close at hand and not your Asterisk callback number, send another Twitter direct message with the following syntax: 8439876543:6781234567 where 8439876543 is the 10-digit number of someone you wish to call and 6781234567 is a 10-digit ringback number already set up in your Google Voice account. Once the message has been sent, run Tweet2Dial again from the command prompt.

When you're sure everything is working reliably, add the following entry to the bottom of /etc/crontab unless you're using a Mac. This will run the application once a minute around the clock looking for incoming Twitter messages:

* * * * * root /root/tweet2dial.php > /dev/null

If you're running this on a Mac, add an entry to your crontab like this. From the Terminal window, run: crontab -e. Once the vi editor opens, type:

* * * * * /users/youracct/tweet2dial.php

Substitute the name of your Mac account for youracct. Then press the Esc key followed by :wq. Check your work by typing: crontab -l. Your entry should look like this:

* * * * * /users/youracct/tweet2dial.php

Sending SMS Messages with Twitter. To send SMS messages using Twitter, you'll use the same scenario outlined above to place free phone calls. Just send a direct message to your secondary Twitter account. Only those that you have authorized as friends can send direct messages to this account so it's as secure as you want it to be. The syntax for an SMS message looks like this where 6781234567 is the cellphone or Google Voice number of the SMS recipient:

SMS:6781234567:Here is a sample SMS message

Any replies to an SMS message which you send using Twitter will be forwarded to the email address that you used to set up your Google Voice account.

For Whiz Kids Only. Now let's say you want to let your spouse use her Twitter account to place calls using her very own Google Voice credentials. First, you need to authorize her as a follower in your secondary Twitter Account. Second, you need to add a new block of code in tweet2dial.php that looks like the following. Place it immediately below the existing $user entries in the file:

$user['twitname'][2]="SpousePrimaryTwitterUsername";
$user['gvemail'][2]="SpouseGoogleVoiceEmailAddress@gmail.com";
$user['gvpass'][2]="SpouseGoogleVoicePassword";
$user['gvcall'][2]="6781234567";

// *** Leave everything below this line alone. 🙂

Notice that the only change is this array subset is numbered [2] while the original was numbered [1]. You can add as many as you like so long as you increment this number and provide the credentials for each user. Now you have your own little Jajah-like sandbox, and it's absolutely free.

For Asterisk Administrators Only. Want to manage your Asterisk server from Twitter? There's an app for that. We promised you a New Year's bonus so here it is. First, read our last article which explains how to manage your Asterisk server using email messages and the Asterisk CLI. Now you can do exactly the same thing using Twitter direct messages. The only Twitter user that can do this on your server is the Twitter account name you specified in the #1 $user slot above. So you don't have to worry about your pals trashing your Asterisk server if you give them privileges with Tweet2Dial. The syntax for issuing CLI commands using Tweet2Dial looks like this:

CLI: database show cidname 8437978000

Just be sure Direct Messages from your primary Twitter account begin with CLI in all CAPS followed by a colon, a space, and then the desired CLI command. That's all there is to it. You'll get a confirmation Direct Message in your main Twitter account once the command has been executed assuming you have established Following and Follower linkage between your primary and secondary Twitter accounts. Test sending DMs in both directions to double-check it. And if you've enabled email delivery for Direct Messages in your Twitter configuration, you'll get an email confirmation as well. Because of Twitter's 140 character limitation, some commands such as help don't provide all of the output you normally would receive from the CLI. You'll only get the last line. Aside from that, the CLI functionality is identical to interacting directly with the Asterisk CLI and the email implementation we outlined previously. Here's the CLI response:

Before you can use the CLI interface in Tweet2Dial, you have to enable it. Edit tweet2dial.php and change $CLIenable=false to $CLIenable=true. And, yes, we understand there are some of you that don't trust Twitter to keep your commands secure. Well, first of all, in order to penetrate your Asterisk server, someone would have to send a Twitter Direct Message from your primary Twitter account. So they'd need your password and they'd need to know the syntax for Asterisk CLI commands AND the syntax for sending them via Twitter. But, there's always a Cracker Rapper2 somewhere. Right? So we've also built a password into the system at your server's end so you can sleep more comfortably. The default password is CLI. But feel free to change it to anything you like. Just edit tweet2dial.php and find this line: $CLIpword = "CLI";. Replace CLI (between the quotes only!) with whatever password you'd like. After saving your changes, you'll need to adjust your Twitter messages accordingly. For example, if you changed your password to FooBar, then your future Twitter CLI command syntax would look like this: FooBar: help. Enjoy!

Special Thanks. As Nerd Vittles prepares to celebrate its Fifth Birthday, we want to take a moment to thank those that have made Nerd Vittles and the PBX in a Flash project possible. Without the generous financial support of Vitelity and Google's AdSense program plus the unwavering support of our hosting providers who provide free downloads of PBX in a Flash around the globe, all of what we do would be much more difficult and expensive! It's not too late for you to kick in a nickel or two as well if a fleeting moment of generosity should strike. 😉 There's a Donate button at the top of the page. Finally, we want to thank Digium® for their continuing support of the Asterisk project and their generous contribution of hardware to the PBX in a Flash development team during 2009. Happy New Year everybody!



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


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


 

Special Thanks to Our Generous Sponsors


FULL DISCLOSURE: ClearlyIP, Skyetel, Vitelity, DigitalOcean, Vultr, VoIP.ms, 3CX, Sangoma, TelecomsXchange and VitalPBX have provided financial support to Nerd Vittles and our open source projects through advertising, referral revenue, and/or merchandise. As an Amazon Associate and Best Buy Affiliate, we also earn from qualifying purchases. We’ve chosen these providers not the other way around. Our decisions are based upon their corporate reputation and the quality of their offerings and pricing. Our recommendations regarding technology are reached without regard to financial compensation except in situations in which comparable products at comparable pricing are available from multiple sources. In this limited case, we support our sponsors because our sponsors support us.

BOGO Bonaza: Enjoy state-of-the-art VoIP service with a $10 credit and half-price SIP service on up to $500 of Skyetel trunking with free number porting when you fund your Skyetel account. No limits on number of simultaneous calls. Quadruple data center redundancy. $25 monthly minimum spend required. Tutorial and sign up details are here.

The lynchpin of Incredible PBX 2020 and beyond is ClearlyIP components which bring management of FreePBX modules and SIP phone integration to a level never before available with any other Asterisk distribution. And now you can configure and reconfigure your new Incredible PBX phones from the convenience of the Incredible PBX GUI.

VitalPBX is perhaps the fastest-growing PBX offering based upon Asterisk with an installed presence in more than 100 countries worldwide. VitalPBX has generously provided a customized White Label version of Incredible PBX tailored for use with all Incredible PBX and VitalPBX custom applications. Follow this link for a free test drive!
 

Special Thanks to Vitelity. Vitelity is now Voyant Communications and has halted new registrations for the time being. Our special thanks to Vitelity for their unwavering financial support over many years and to the many Nerd Vittles readers who continue to enjoy the benefits of their service offerings. We will keep everyone posted on further developments.
 


Some Recent Nerd Vittles Articles of Interest...

  1. No nastygrams! We know awesomest is not a 'real' word. Our spell-checker told us. 🙂 []
  2. For your final New Year's treat, be sure to watch the Cracker Rapper video! []

Introducing Phone Genie for Asterisk (Email Edition)

From Our Disney Cruise Family Scrapbook Almost two years ago, we introduced Phone Genie for Asterisk®. It let you reconfigure your Asterisk system remotely using your favorite web browser. This included the ability to set and adjust call forwarding, call waiting, and Do Not Disturb for any Asterisk extension. In addition, you could enter Asterisk CLI commands and execute a number of Linux system commands, all from the convenience of your web browser. Phone Genie for Asterisk remains one of the all-time favorite downloads of our readers.

Unfortunately, you don't always have access to a web browser when you're away from your Asterisk server. So today we introduce the perfect complement to the original Phone Genie with our new Email Edition. By following this quick tutorial, you can configure your Asterisk server to respond to any Asterisk CLI command which can be sent from almost any email client on the planet. And we'll perform all this magic with less than a dozen lines of bash scripting. Asterisk CLI commands have almost limitless possibilities. Use Phone Genie to check the status or change the functionality of just about any component on your server.

How It Works. The best way to explain how all of this works is to use a simple example. Let's assume you've left home and forgot to transfer your inbound calls for extension 701 to your cellphone. What we'll do is send a simple email message to a special user account on your Asterisk server that we've set up specifically to handle email directives for your server. Unlike most email addresses, we want this one to be unintuitive so strangers aren't sending messages to your server all the time. Let's assume the address is kxt1498@myserver.dyndns.org for this example. Using any email client, just address a message to that account. For the subject of the message, we'll use the following:

Asterisk: database put CF 701 6781234567

It doesn't really matter whether you include a message with the email. As long as the subject of the email is in the proper form, that's all that matters. The command above activates call forwarding for extension 701 and sends the calls to 6781234567. The command uses standard Asterisk CLI syntax.

On your Asterisk server, we'll have a simple bash script that runs every minute or two to check for new emails in the kxt1498 user's mailbox. If it finds a new message, it will parse the subject line, make certain there is a password match, and then send the command (unaltered) to the Asterisk Command Line Interface for processing. Here's an overview of all the CLI commands. The results of executing the command will be emailed to the address you've configured in the script. This works as both confirmation that your command has been executed and a security alert that your Asterisk system has been accessed using the Email Edition of Phone Genie. In the above example, you would receive an email at the address you've configured in the script with a subject of PhoneGenie. The body of the email would look like this:

Updated database successfully...database put CF 701 6781234567

Prerequisites. This software assumes you are using one of the Asterisk aggregations built on CentOS 5. We've tested it with PBX in a Flash. You'll also need an SMTP server (SendMail or Postfix) that is configured to send and receive emails to and from destinations on the Internet. You do not need a POP3 or IMAP mail server! We've tested this with Asterisk 1.4, but it should work fine with Asterisk 1.6 as well. FreePBX 2.5 or later is required for some functions.

Security Warning. Before we begin, let's pause for a moment to review the enormity of your problems if you do this wrong and to remind you that YOU ARE PROCEEDING AT YOUR OWN RISK. PBX in a Flash in particular is shipped with all outside access to your SMTP server blocked. We've obviously got to remove that layer of security for this software to function properly. But you need to be especially careful with SMTP servers because they can be used to relay SPAM to the entire world if you fiddle with settings that you don't understand. So... DON'T MAKE IMPROVEMENTS THAT AREN'T COVERED HERE UNLESS YOU KNOW WHAT YOU'RE DOING!

This software also gives certain email messages elevated privileges on your Asterisk server so that Asterisk itself can be reconfigured. If you compromise the email account name and password for this application, anybody worldwide can pretty much destroy the functionality of your server. In addition, calls to a certain extension could be rerouted to a very expensive destination on a cruise ship sailing around the world. If your dialplan permitted these calls and you had an account with automatic replenishment from a credit card or bank account, you've got a very expensive problem on your hands. That's one reason that reliable email notification of every Phone Genie transaction is critically important. If you're not getting timely notifications of each Phone Genie transaction, DO NOT USE THIS SOFTWARE until that problem is resolved!

Should you detect that your system has been compromised by receiving an email that indicates a command has been executed on your Asterisk server that you did not initiate, you should immediately disable or remove the script so that no further Phone Genie emails are processed on your server. Be sure to preserve any unprocessed Phone Genie emails for authorities as these may contain important information regarding the source of the emails. These email messages usually are deleted once Phone Genie completes execution of the associated Asterisk commands.

Overview. Here's the drill for today. First, we'll adjust both your hardware- based and IPtables firewalls to allow inbound email delivery to your Asterisk server. Second, we'll remove SendMail from your system and install and configure Postfix to handle the SMTP email chores. This will greatly simplify the security issues in locking down your server from unwanted emails. Depending upon your Internet service provider, installation of Postfix may break outbound email delivery from your server if your provider happens to block outbound traffic on port 25. We'll show you how to fix it. Third, we'll add a new user account on your Asterisk server that will be used exclusively to handle Phone Genie messages. Fourth, you're going to need a fully-qualified domain name for your Asterisk server so that email can be delivered reliably to your server. We'll walk you through getting this set up. Fifth, we'll install and configure the Phone Genie software and run some simple tests to make certain everything is working as it should. Sixth, we'll add the Phone Genie script as a cron job which will be run every couple of minutes to check for incoming Phone Genie emails. Finally, we'll review some of the Asterisk commands that can be executed using the Email Edition of Phone Genie for Asterisk.

Security Design. We've obviously given a great deal of thought to the security issues surrounding this application. The security model we've adopted works like this. First, for an email to get through to your Asterisk server, one and only one email address will work from the Internet. All other inbound email from the Internet will be rejected by Postfix. We strongly suggest you leave it that way. Your email address consists of the special username that we will create on your server plus a (hopefully new) fully-qualified domain name that points to your server. You are well advised to use and keep secret both a non-intuitive and complicated username AND a non-intuitive and complicated, fully-qualified domain name. Only this combination will let the email message through the Postfix filter! Using the correct username and a different FQDN that may also point to your server's correct IP address will nevertheless be rejected by Postfix. The third piece in the security model is the password. If you examine the sample Subject above, you will note that it begins with the word "Asterisk" followed by a colon, a space, and then the Asterisk CLI command. The word "Asterisk" is actually the password, and it can be changed to any password you like. So, if you change your password to FooBaR, then the subject of your message should look like this. Note that the colon followed by a space are also required!

FooBaR: database put CF 701 6781234567

Finally, it should be obvious but... DON'T SEND THESE EMAILS FROM AN UNTRUSTED CLIENT OR A PC IN A PUBLIC PLACE because your email message may get stored in a place that someone else could decipher how to access your server. If you wouldn't leave a $1000 bill beside the computer from which you're sending the email, don't send it! Otherwise, you may lose a good bit more than $1,000. To give you some idea of what's at risk with a compromised system, try sending the following email using your correct email address and password:

FooBaR: help

</sermon>

Firewall Configuration. For purposes of our example today, we're assuming that your Asterisk server is sitting behind a hardware-based firewall/router on a private subnet and that your Asterisk server includes a functioning software-based IPtables Linux firewall. This is the default PBX in a Flash setup that we always recommend. On your hardware-based firewall, you will need to redirect incoming TCP port 25 traffic to TCP port 25 on the private IP address of your Asterisk server. This change often requires a reboot of your firewall/router. Once that change is complete, log into your Asterisk server as root and edit /etc/sysconfig/iptables on PBX in a Flash systems. We need to add a new rule to IPtables which allows incoming TCP port 25 traffic through the firewall. Scroll to the bottom of the file and insert the following lines just above the COMMIT line:

# Allow inbound SMTP traffic on TCP port 25
-A INPUT -p tcp -m tcp --dport 25 -j ACCEPT

Save your additions to the file and then reload IPtables and your network:

service iptables stop
service iptables start
service network restart
service iptables status | grep "tcp dpt:25"

The last command should return an entry from IPtables showing TCP port 25 traffic is now being ACCEPTed into the server. If not, check your entries and repeat the process until this works.

Postfix Installation. Let's continue by removing SendMail from your server and installing Postfix. They both perform the same email functions, but the complexity of SendMail makes the likelihood of a configuration error too risky for us to sleep well. If you understand the intricacies of SendMail and feel comfortable implementing the security model we've described above, by all means, have at it. We'll be happy to share your results with the rest of our user community. In the meantime, here's the Postfix solution. While still logged into your server as root, issue the following commands to uninstall SendMail and install Postfix:

rpm -e --nodeps sendmail
yum -y install postfix

Choosing a Username and FQDN. Before we configure Postfix, you need to decide upon a user account name for your Asterisk server to manage Phone Genie messages. And you also need a fully-qualified domain name which points to the public IP address of your Asterisk server. As mentioned above, we strongly recommend that the username and FQDN be obscure and unguessable. For example, a combination of letters and numbers that don't spell words are good choices. Something like dlrpzh7b3@dhf34.nerdvittles.com will help you sleep well. If you don't have a static IP address and dedicated domain for your server that you can manage, then use an equally obscure FQDN from a provider such as dyndns.org. Something like dhf34.dyndns.org works. You then can configure your Asterisk server to automatically keep your dynamic IP address current. We're going to use these entries as examples below. Obviously, you should choose different entries!

To create the new user account on your server using whatever name you have chosen, here are the commands to issue while still logged into your server as root. Just substitute your chosen username for dlrpzh7b3 in both commands. Be sure to choose a secure password, too.

useradd dlrpzh7b3
passwd dlrpzh7b3

Configuring Postfix. Now let's get Postfix set up for maximum protection. First, move to postfix directory: cd /etc/postfix. Now edit main.cf: nano -w main.cf. Search for the inet_interfaces line in the file: Ctrl-W, inet_interfaces =. Add a hash mark to the beginning of each uncommented inet_interfaces line so that your entries look like this:

#inet_interfaces = $myhostname
#inet_interfaces = $myhostname, localhost
#inet_interfaces = localhost

Next, search for mydestination in the file: Ctrl-W,mydestination =. Comment out each of the lines except the one that looks like this:

mydestination = $myhostname, localhost.$mydomain, localhost

Now add the private IP address of your Asterisk server and your FQDN chosen above to the line so that it looks like this. Don't forget the commas and keep everything on one line.

mydestination = $myhostname, localhost.$mydomain, localhost, 192.168.0.118, dhf34.nerdvittles.com

Finally, move to the last line in the file and make it look like this, all on one line:

smtpd_recipient_restrictions = check_recipient_access hash:/etc/postfix/access, permit_mynetworks, reject_unauth_destination

Save your changes to the file: Ctrl-X, Y, then Enter. Now edit /etc/postfix/access. Move to the very bottom of the file and add two new lines with the following entries using the actual email address and FQDN you chose above instead of the examples. The first line tells Postfix to allow emails addressed to the specified email recipient. The next line tells Postfix to reject all other emails addressed to anyone at this domain. Other domains and public IP addressing are blocked by our mydestination entry above.

dlrpzh7b3@dhf34.nerdvittles.com OK
dhf34.nerdvittles.com REJECT recipient rejected

Save your changes to the file: Ctrl-X, Y, then Enter. Now issue the following two commands:

postmap /etc/postfix/access
service postfix restart

Testing Postfix. Now comes the important part. We need to make sure that outbound emails from your Asterisk server are delivered. And we need to make sure that incoming emails ONLY to the one email address you've designated are received and that all other emails from the Internet are rejected. We can't stress enough how important all three of these tests are. If your Postfix implementation doesn't pass all three, DO NOT PROCEED!

Testing outbound email with Postfix is easy. While logged into your server as root, issue the following command using a destination email address (instead of yourname@gmail.com) where you regularly receive emails:

echo "Hi there" | mail -s Test yourname@gmail.com

Count to 20 and refresh your email's Inbox. If the message is there, you've passed Test #1. If not, check your junk mail folder. If it's still not there, try another email address if you have one. Still no cigar? Then your Internet Service Provider is probably blocking email generated from downstream email servers. For tips on remedying the problem, see this message thread on the PBX in a Flash forums. You might also want to review the Postfix tutorial on dyndns.com. Here's another good tutorial on setting up a Gmail relay using Postfix. Then run the test again until you achieve success.

Testing inbound email to your designated email address is Test #2. Use a web client and send an email message to dlrpzh7b3@dhf34.nerdvittles.com substituting the actual email address you have chosen for your server. Count to 20, log into your server as root and type the following command to retrieve email for user dlrpzh7b3: mail -u dlrpzh7b3. The server should report that you have one new message. Type "d 1" and then "q" to delete the message and quit the mail app. If no email arrives, check the Inbox on your sending client to see if the message bounced and, if so, why. Check your email entries in /etc/postfix/access and /etc/postfix/main.cf for typos and review the steps in Configuring Postfix above. Then repeat the test until you successfully send a message to your designated email address.

Testing inbound email to an unauthorized email address on your Asterisk server is Test #3. For this test, we want to make sure that an email sent to the root account on your server fails. What you'll need for this test is the FQDN that was chosen above. Then, using a mail client, send an email message to root@dhf34.nerdvittles.com using your actual FQDN. Count to 20, log into your server as root, and type: mail. The message you sent should NOT be in the Inbox. Repeat the test by sending a message to root and dlrpzh7b3 @the actual IP address of your Asterisk server. These, too, should both fail. Once you get a passing grade on all three tests, we can move on. The hard part is behind you!

Installing Phone Genie. While logged into your server as root, issue the following commands:

cd /root
wget http://pbxinaflash.net/source/nv/phonegenie.tgz
tar zxvf phonegenie.tgz
rm phonegenie.tgz

Configuring Phone Genie. While still logged into your server as root, edit phonegenie.sh. You will note that there are 3 fields that need to be configured at the top of the file: user, pw, and notify. The user field is the designated user account name that will be used for incoming emails (dlrpzh7b3 in our example). The pw field is the word in every email Subject that precedes the colon, space, and Asterisk CLI command (Asterisk in our example). The notify field is a reliable email address where you regularly receive emails promptly. This is where the results of your Phone Genie email commands will be sent. Choose this email address wisely, as if your bank account depended upon it. It does! Once you have filled in the 3 fields (preserving the quotation marks around each entry), save the file with your changes.

Testing Phone Genie. Now we're ready to try everything out. Using an email client, send an email message to dlrpzh7b3@dhf34.nerdvittles.com (using your actual Phone Genie email name and FQDN). For the Subject, enter the following (substituting the password you created above for Asterisk)... Asterisk: help

After counting to 20, log into your Asterisk server as root and issue the following command:

/root/phonegenie.sh

You should see a display of all of the Asterisk CLI commands and within a minute or so, you should receive an email with the same information at the email address you entered into the notify field in phonegenie.sh in the previous step.

Installing Phone Genie as a Cron Job. Once you have tested several Phone Genie emails manually and you're satisfied that everything is working reliably, you can set up the Phone Genie shell script as a cron job. It should be set to execute every minute or every couple of minutes throughout the day and night. Edit /etc/crontab and insert the command shown below to have the script execute every 2 minutes:

*/2 * * * * root /root/phonegenie.sh > /dev/null

Sample Phone Genie Commands. In addition to all of the traditional Asterisk CLI commands, Phone Genie also supports a number of commands that are specific to FreePBX. These additional commands let you configure call forwarding, call waiting, do not disturb, system speed dials, and blacklist entries on your Asterisk server. For Asterisk CLI command syntax, consult voip-info.org. For FreePBX command syntax, see the listing below. Enjoy!

database put CF 302 8338116666 * Call Forwarding Enable
database del CF 302 * Call Forwarding Disable

database put CFB 302 8238221234 * Call Forwarding on Busy Enable
database del CFB 302 * Call Forwarding on Busy Disable

database put CFU 302 8038445689 * Call Forwarding Unavailable Enable
database del CFU 302 * Call Forwarding Unavailable Disable

database put CW 302 ENABLED * Call Waiting Enable
database del CW 302 * Call Waiting Disable

database put DND 302 YES * Do Not Disturb Enable
database del DND 302 * Do Not Disturb Disable

database put blacklist 6781234567 1 * Blacklist a number
database del blacklist 6781234567 * Remove blacklisted number

database put sysspeeddials 99 6781234567 * Set up Speed Dial 99
database del sysspeeddials 99 * Remove Speed Dial 99
(NOTE: Be sure you enable Feature Code *0 prefix in FreePBX!)

We wish all of you a very Merry Christmas!



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


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


 

Special Thanks to Our Generous Sponsors


FULL DISCLOSURE: ClearlyIP, Skyetel, Vitelity, DigitalOcean, Vultr, VoIP.ms, 3CX, Sangoma, TelecomsXchange and VitalPBX have provided financial support to Nerd Vittles and our open source projects through advertising, referral revenue, and/or merchandise. As an Amazon Associate and Best Buy Affiliate, we also earn from qualifying purchases. We’ve chosen these providers not the other way around. Our decisions are based upon their corporate reputation and the quality of their offerings and pricing. Our recommendations regarding technology are reached without regard to financial compensation except in situations in which comparable products at comparable pricing are available from multiple sources. In this limited case, we support our sponsors because our sponsors support us.

BOGO Bonaza: Enjoy state-of-the-art VoIP service with a $10 credit and half-price SIP service on up to $500 of Skyetel trunking with free number porting when you fund your Skyetel account. No limits on number of simultaneous calls. Quadruple data center redundancy. $25 monthly minimum spend required. Tutorial and sign up details are here.

The lynchpin of Incredible PBX 2020 and beyond is ClearlyIP components which bring management of FreePBX modules and SIP phone integration to a level never before available with any other Asterisk distribution. And now you can configure and reconfigure your new Incredible PBX phones from the convenience of the Incredible PBX GUI.

VitalPBX is perhaps the fastest-growing PBX offering based upon Asterisk with an installed presence in more than 100 countries worldwide. VitalPBX has generously provided a customized White Label version of Incredible PBX tailored for use with all Incredible PBX and VitalPBX custom applications. Follow this link for a free test drive!
 

Special Thanks to Vitelity. Vitelity is now Voyant Communications and has halted new registrations for the time being. Our special thanks to Vitelity for their unwavering financial support over many years and to the many Nerd Vittles readers who continue to enjoy the benefits of their service offerings. We will keep everyone posted on further developments.
 


Some Recent Nerd Vittles Articles of Interest...

Free U.S. & Canada Calls: Google Voice Dialer for Windows

There now are a number of ways to make free calls to anyone in the U.S. and Canada using Google Voice without having to jump through the hoops of calling into your voicemail and having Google Voice call you back. There’s our Asterisk® implementation using pygooglevoice which lets you transparently place calls through Google Voice using any phone connected to your PBX in a Flash system. You also can set up a Sip Sorcery account and make free calls through that interface using a SIP phone. And now there’s Dogface05’s stand-alone Dialer for Windows that lets you place calls from the Windows command line in seconds. Because this is such a simple alternative, everyone should add it to their Windows toolkit. Here’s how.

Prerequisites. You’ll obviously need a Google Voice account. If you don’t have one, just register for an invite. Next, you’ll need a phone number to use for placing the outbound calls. And, finally, you’ll need to download and install Dogface05’s dialer on your Windows system.

Google Voice Setup. Log into your Google Voice account and click Settings, Phones, Add Another Phone. Add the area code and phone number of the phone you’ll be using to place calls and mark it as an Office phone. You’ll have to go through Google’s confirmation drill to successfully register the number with Google Voice. After the number is confirmed, be sure there’s a check mark beside this Google Voice destination so that incoming calls to your GV number will be routed to this number.

While you’re still in the Google Voice Setup, click on the General tab. Uncheck Enable Call Screening. Turn Call Presentation Off. And set CallerID to Display Caller’s Number. Finally, uncheck Do Not Disturb. Now click the Save Changes button.

Dialer Setup for Windows. From your Windows machine, open a browser and download the Google Voice dialer to your Desktop. Unzip the downloaded file and drag gvdial.exe to your \windows directory so that it’s in your path.

Placing a Call. Let’s first make sure everything is working properly. Open a command prompt window from the Windows Desktop and enter a dialing command using the following syntax:

gvdial username password destination ani [phonetype]

where:

  • username = your Google Voice email address
  • password = your Google Voice password
  • destination = 10-digit number of person to call
  • ani = your 10-digit phone number registered with Google Voice
  • phonetype = 3

The phonetype is actually optional and can be ignored unless you happen to be using a Gizmo number in which case it needs to be 7. Never enter the brackets. That merely signifies that the entry is optional.

Assuming your registered email address with Google Voice is joe@gmail.com, your password is secret, the number you wish to call is 6781234567, and your number is 4049876543, the dial string should look like this:

gvdial joe@gmail.com secret 6781234567 4049876543

Your phone should ring at this point, and Google Voice will complete the outbound call to 678-123-4567.

Creating Speed Dial Batch Files. Using Notepad, you now can create batch files for frequently dialed numbers. For example, the entry above could be saved in a batch file called joe.bat. Then simply create a desktop icon for Joe and link it to joe.bat. Double-click on the Joe icon whenever you wish to place a call to Joe. Here’s how the batch file might look:

echo off
cls
gvdial joe@gmail.com secret 6781234567 4049876543
echo Press ENTER key after the called party answers.
pause


Surfing the Google Wave. We’ve got a dozen Google Wave invites to give away during the next week. Just post a comment on any Nerd Vittles article, and we’ll put your name in the hat. Be sure to provide a Gmail address with your comment as this is required to take advantage of the Google Wave Preview. Here’s a sample for you to try once you have Google Wave credentials:



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


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


 

Special Thanks to Our Generous Sponsors


FULL DISCLOSURE: ClearlyIP, Skyetel, Vitelity, DigitalOcean, Vultr, VoIP.ms, 3CX, Sangoma, TelecomsXchange and VitalPBX have provided financial support to Nerd Vittles and our open source projects through advertising, referral revenue, and/or merchandise. As an Amazon Associate and Best Buy Affiliate, we also earn from qualifying purchases. We’ve chosen these providers not the other way around. Our decisions are based upon their corporate reputation and the quality of their offerings and pricing. Our recommendations regarding technology are reached without regard to financial compensation except in situations in which comparable products at comparable pricing are available from multiple sources. In this limited case, we support our sponsors because our sponsors support us.

BOGO Bonaza: Enjoy state-of-the-art VoIP service with a $10 credit and half-price SIP service on up to $500 of Skyetel trunking with free number porting when you fund your Skyetel account. No limits on number of simultaneous calls. Quadruple data center redundancy. $25 monthly minimum spend required. Tutorial and sign up details are here.

The lynchpin of Incredible PBX 2020 and beyond is ClearlyIP components which bring management of FreePBX modules and SIP phone integration to a level never before available with any other Asterisk distribution. And now you can configure and reconfigure your new Incredible PBX phones from the convenience of the Incredible PBX GUI.

VitalPBX is perhaps the fastest-growing PBX offering based upon Asterisk with an installed presence in more than 100 countries worldwide. VitalPBX has generously provided a customized White Label version of Incredible PBX tailored for use with all Incredible PBX and VitalPBX custom applications. Follow this link for a free test drive!
 

Special Thanks to Vitelity. Vitelity is now Voyant Communications and has halted new registrations for the time being. Our special thanks to Vitelity for their unwavering financial support over many years and to the many Nerd Vittles readers who continue to enjoy the benefits of their service offerings. We will keep everyone posted on further developments.
 


Some Recent Nerd Vittles Articles of Interest…

Rolling Your Own Asterisk ISOs with Joe’s WonderScript

One of the enormous drawbacks of Asterisk@Home and earlier versions of trixbox was the need to generate new ISOs whenever there was a newer version of Asterisk® or the CentOS operating system. In fact, it was one of the primary motivations for creating PBX in a Flash which separated the Asterisk payload from the Linux ISO itself. Now Asterisk updates can be generated in days instead of months.

Fast forward to today when Joe Roper, one of the initial developers of PBX in a Flash, turned out a new script that lets you take a yum-updated version of PBX in a Flash and generate a new PBX in a Flash ISO that includes the very latest (as in this morning) CentOS operating system. Then, with our existing payload files, you can choose your favorite Asterisk version in both 1.4 and 1.6 flavors with Zaptel or Dahdi. Simply stated, in about an hour, you now can roll your own PBX in a Flash ISO with the very latest version of CentOS whenever you’d like. The good news for us: this decentralizes Upgrade Hell to your desktop and gets it off our plate. It also, of course, lets us generate current PBX in a Flash ISOs in just a few minutes whenever the need arises because of security issues or new operating system releases. Both of these are good things because it frees up the developers to work on new gee whiz stuff without devoting literally months each year to the task of keeping ISOs current. The other terrific part of Joe’s script is it will broaden the base of developers enormously and encourage others to add new components to these builds whenever the urge strikes. One day soon you should be able to do all of the ISO and payload generation in house by simply running a few scripts.

To give you a feel for how well this works, let us run through the process. Then you can either download our new CentOS 5.4 ISO which was built earlier today in less than an hour… or you can roll your own with Joe’s new script. The script incidentally is distributed under the GPL2 license so feel free to use it, enhance it, or rewrite it under the terms of the license.

Getting Started. If you ever watched your mom or wife bake sourdough bread, then you already know that the critical ingredient is the "bread starter" mixture. Without that, you don’t get a new loaf. The same applies here. Before you can build a new PBX in a Flash ISO, you’ll need to have a current version up and running. The current script has been engineered assuming that you’ll be starting with PBX in a Flash 1.5 beta which relies upon CentOS 5.3 as the Linux operating system. Install it in the usual fashion with your choice of Asterisk versions on either a dedicated machine or as a KVM on a virtual machine such as Proxmox. Once the install is complete, run update-scripts, update-fixes, update-source, and update-fixes. When running update-source, be sure to choose to update the operating system AND the kernel to the latest version of CentOS. When prompted, tell update-source to also run yum update. Reboot the system and make certain that Asterisk loads properly. You need not configure FreePBX at this juncture.

At this point, you actually have a version of PBX in a Flash with the latest CentOS 5.4 operating system. The problem with this approach on multiple machines is that it’s an hour-long process to update each machine using this process. Instead, what we’d like to do is take a snapshot of this newly updated system and turn it into an ISO that can be used to create additional systems with CentOS 5.4 without the hassle of the update knuckle drill.

Generating an ISO. Here are the steps to generate your new ISO. Log into your server as root and issue the following commands:

cd /root
wget http://pbxinaflash.net/source/iso/create-updated-iso.sh
chmod +x create-updated-iso.sh
./create-updated-iso.sh

When the process completes, your new ISO can be found in /root/createISO. Copy it to your favorite operating system and burn a CD from the ISO image. Boot a new machine or virtual machine using the ISO, and presto! You’ve got a PBX in a Flash boot disk featuring CentOS 5.4. Make the usual selections of keyboard, time zone, and password. Then you’re off to the races. When the Linux install completes, remove the CD before the system reboots. Then choose your favorite flavor of Asterisk and Zaptel/Dahdi once the PBX in a Flash payload file downloads. Doesn’t get much simpler than that. If you’d like to take our generated 5.4 ISO for a whirl, you can download it from the PBX in a Flash beta site. Enjoy!


Twitter Feeds on Nerd Vittles. If you glance over to the right column just above the Google Maps, you’ll see the current Twitter feed for @NerdUno. But did you know you also can read anyone else’s tweets or list from the same UI? Just scroll to the bottom of the frame and try one of these: voipusers (for the VoIP Users Conference feed) or voipusers/voip-users-conference (for recent tweets from all members of VUC). No need to type @. We’ll handle that keystroke for you. 🙂


Enhanced Google Maps. In case you haven’t noticed, we’ve added yet another Google Map to Nerd Vittles. Now, in addition to showing our location with Google Latitude, we also are displaying your location based upon your IP address. We’ll show you how to add something similar to any LAMP-based Linux system in coming weeks. It’s a powerful technology that has enormous potential. If you’re unfamiliar with Google Maps, click on the Hybrid and Satellite buttons and then check out the scaling and navigation options. Double-click to zoom. Incredible!


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



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


 

Special Thanks to Our Generous Sponsors


FULL DISCLOSURE: ClearlyIP, Skyetel, Vitelity, DigitalOcean, Vultr, VoIP.ms, 3CX, Sangoma, TelecomsXchange and VitalPBX have provided financial support to Nerd Vittles and our open source projects through advertising, referral revenue, and/or merchandise. As an Amazon Associate and Best Buy Affiliate, we also earn from qualifying purchases. We’ve chosen these providers not the other way around. Our decisions are based upon their corporate reputation and the quality of their offerings and pricing. Our recommendations regarding technology are reached without regard to financial compensation except in situations in which comparable products at comparable pricing are available from multiple sources. In this limited case, we support our sponsors because our sponsors support us.

BOGO Bonaza: Enjoy state-of-the-art VoIP service with a $10 credit and half-price SIP service on up to $500 of Skyetel trunking with free number porting when you fund your Skyetel account. No limits on number of simultaneous calls. Quadruple data center redundancy. $25 monthly minimum spend required. Tutorial and sign up details are here.

The lynchpin of Incredible PBX 2020 and beyond is ClearlyIP components which bring management of FreePBX modules and SIP phone integration to a level never before available with any other Asterisk distribution. And now you can configure and reconfigure your new Incredible PBX phones from the convenience of the Incredible PBX GUI.

VitalPBX is perhaps the fastest-growing PBX offering based upon Asterisk with an installed presence in more than 100 countries worldwide. VitalPBX has generously provided a customized White Label version of Incredible PBX tailored for use with all Incredible PBX and VitalPBX custom applications. Follow this link for a free test drive!
 

Special Thanks to Vitelity. Vitelity is now Voyant Communications and has halted new registrations for the time being. Our special thanks to Vitelity for their unwavering financial support over many years and to the many Nerd Vittles readers who continue to enjoy the benefits of their service offerings. We will keep everyone posted on further developments.
 


Some Recent Nerd Vittles Articles of Interest…

CallerID Superfecta 2.2.2: International CNAM Directories

Unlike Willie Nelson, we’ve always nurtured our software projects hoping some would grow up to be cowboys. Thanks to Tony Shiffer, Jeremy Jacobs, and a whole host of new contributors (Patrick, Zorka, Nixi, UKstevef, and others), nothing even comes close to the success that CallerID Superfecta has enjoyed. What began as Asterisk® CallerID lookups from three sources with the original CallerID Trifecta four short years ago now provides an astonishing 27 CallerID lookup sources from around the world in the latest CallerID Superfecta 2.2.2. And the real beauty of this new beast is the utility permitting new lookup sources to be added without any further software modifications. That’s the tip of the iceberg.

For those that are new VoIP telephony, a brief history lesson will get you up to speed. When you make a phone call, telephone providers have traditionally passed your CallerID number to the receiving carrier while throwing your CallerID name in the bit bucket. The duty fell on the receiving carrier to look up your name in its directory and associate it with the CallerID number for delivery to the receiving telephone. If this sounds absolutely crazy, you’d be right. Who is in a better position to know the name of the calling party: the company initiating the call or the company receiving the call? Duh! That, of course, ignores the fact that the Bell System in particular was in monopoly preservation mode. Since they initially owned both companies, it really didn’t matter. Well, it does today and government regulators for some reason have completely missed this last vestige of the Good Old Boys telephone network. Does it make any sense that over half the phones in the world are mobile phones and you never know who’s calling? </rant>

When VoIP telephony came along, we obviously had to do something about that. Thus was born the CallerID Trifecta, an Asterisk/FreePBX tool allowing you to associate names with phone numbers using your computer and publicly available resources on the Internet. Version 2.2.1 introduced worldwide CallerID lookups. Unfortunately, there was a big gotcha. Some names in other countries use special non-ASCII characters, and delivery of those characters to some telephones sent the phones into the ozone. Not exactly our problem (HINT!), but folks did still want their phones to work. 🙄 CallerID Superfecta 2.2.2 fixes that by adjusting special characters to pure ASCII until the phone manufacturers catch up with the times.

The CallerID Superfecta Design. As originally implemented, CallerID Superfecta let you choose one or more lookup sources for incoming CallerID numbers. When an inbound call arrived, the sources were queried in a specified order, and the first source that provided a matching CallerID name won. The CNAM search result was returned to Asterisk for display on your phone instruments, and the lookup procedure ended. The problem with the original design was that newer and better lookup providers continued to appear so the hard-coded search order wasn’t necessarily ideal for every user or organization, and the providers kept changing formats to make lookups more challenging. In addition, when you receive a call from another country, it made little sense to look up that number in directories in which it obviously would not appear. CallerID Superfecta 2.2.2 fixes that with its new CallerID Schemes support. This lets you tailor CallerID lookups based upon dial strings just as you would do with FreePBX inbound and outbound routes.

What Else Is New? For openers there are a number of new lookup sources as well as some tweaks to older sources that stamped out a few (more) bugs from our previous, sloppy code. 🙂 You’ll also note there’s a new checkbox to Check for New Lookup Sources Online. This lets you easily import all the new lookup sources as they are added to the repository. The web user interface (UI) for FreePBX also has been reworked. You can prioritize the lookups in the order that best meets your needs, and you can tailor lookup sources to match specific CallerID number sequences. There’s also a debug function built directly into the web user interface. By entering a telephone number in the debug field and pressing the debug button on the form, the results from your selected lookup sources together with the latency of each enabled data source can be displayed on the form for you to review. This debug function greatly enhances troubleshooting while serving as a terrific tool to assist you in fine tuning which providers to actually enable and in what order. Providers who can’t be reached, or who perform too slowly, or who provide lousy results can be turned off completely or moved to the bottom of the search order. Finally, CallerID Superfecta 2.2.2 introduces prefix code hooks. This gives developers the ability to trigger an additional outside process when the Caller ID function is initiated. For example, this feature might be used in a call center to allow the system to automatically perform an ODBC query and bring up a customer record for use by a customer service representative.

Installing CallerID Superfecta 2.2.2 Installation or upgrade should be a snap on any of the FreePBX-based Asterisk aggregations including PBX in a Flash, trixbox, and Elastix. First, using a browser on your desktop PC, download CallerID Superfecta 2.2.2 from the Superfecta repository. Do not decompress the .tgz archive. Second, open FreePBX with your browser and choose Admin, Module Admin, Upload Module. Browse and select the superfecta-2.x.x.tgz module from your desktop and click the Upload button. When the upload completes, click local module administration. Scroll down and click CID Superfecta. Click the Install or Upgrade radio button depending upon whether you have previously installed the Superfecta FreePBX module. Click Process, Confirm, Return to install the new module. Reload the Asterisk dialplan when prompted.

Configuring CallerID Superfecta 2.2.2. There really are only two steps to bring CallerID Superfecta on line. First , we’ll configure the lookup sources and search order of the lookups. And then, for each inbound route on your Asterisk system, we’ll tell FreePBX to use CallerID Superfecta as the CallerID lookup source.



To configure CallerID Superfecta, click Admin, Setup, CID Superfecta in FreePBX. If you’re using PBX in a Flash or trixbox, be sure to insert the UserName maint and your FreePBX maint password in the fields provided under General Options. Then choose the Services you’d like to use for queries by clicking on the corresponding Enabled buttons. For those in the U.S., if you’re unfamiliar with previous versions of the product, we’d recommend you start with Addresses, White Pages, Yellow Pages, Any Who, and Telco Data. If you use the Asterisk Phonebook, AsteriDex, or SugarCRM, enable those options as well. Our rule of thumb in prioritizing the searches is to move your personal directories (Asterisk Phonebook, AsteriDex, and SugarCRM) to the top of the list. For the remaining choices, we recommend you start with the following search order: Addresses, White Pages, Yellow Pages, Any Who, and then Telco Data. Telco Data normally returns only the city and state of the caller, not the caller’s name. Who Called requires registration. Once you get everything squared away, click the Save button. Then key in a few known phone numbers in the Debug section of the form and click the Debug button to make sure everything is working as you expected. Take note of the retrieval times and the results and adjust the search order to meet your needs. Remember, the first match on a name using the search sources from top to bottom wins. The other search sources are never consulted for this number.

For additional configuration options and tips on configuring SugarCRM, see this thread on the PBX in a Flash Forum.

Once you’re satisfied with your lookup sources and the search order, the only remaining step is to designate CID Superfecta as the CallerID lookup source in your inbound routes. For each inbound route on which you want CallerID lookups performed, click Admin, Setup, Inbound Routes and choose the desired route from the column of routes on the right margin. Scroll to the CID Lookup Source section of the form and choose CID Superfecta from the dropdown box. Click Submit, Apply Config Changes, Continue to save your entry.

Adding Support for More Countries. So… here’s the challenge. We need to finish the rest of the world. If your country is not yet supported in the following list of directories, do us all a favor and post a comment with a good Internet source for reverse name directory lookups in your area of the globe. This means you can plug in a phone number and the directory will return the name of the person or business associated with that number. Even if you’re not a programmer, providing this information will assist greatly in making even more sources available to everyone down the road. Here’s the list as it stands today:

Adding Your Number to Directories. We know some of you are wondering how to get your VoIP number or Google Voice number added to the phone directories. It’s easy at least in the United States! Just go to www.listyourself.net and sign up. Enjoy!


Twitter Feeds on Nerd Vittles. If you glance over to the right column just above the Google Maps, you’ll see the current Twitter feed for @NerdUno. But did you know you also can read anyone else’s tweets or list from the same UI? Just scroll to the bottom of the frame and try one of these: voipusers (for the VoIP Users Conference feed) or voipusers/voip-users-conference (for recent tweets from all members of VUC). No need to type @. We’ll handle that keystroke for you. 🙂


Enhanced Google Maps. In case you haven’t noticed, we’ve added yet another Google Map to Nerd Vittles. Now, in addition to showing our location with Google Latitude, we also are displaying your location based upon your IP address. We’ll show you how to add something similar to any LAMP-based Linux system in coming weeks. It’s a powerful technology that has enormous potential. If you’re unfamiliar with Google Maps, click on the Hybrid and Satellite buttons and then check out the scaling and navigation options. Double-click to zoom. Incredible!


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



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


 

Special Thanks to Our Generous Sponsors


FULL DISCLOSURE: ClearlyIP, Skyetel, Vitelity, DigitalOcean, Vultr, VoIP.ms, 3CX, Sangoma, TelecomsXchange and VitalPBX have provided financial support to Nerd Vittles and our open source projects through advertising, referral revenue, and/or merchandise. As an Amazon Associate and Best Buy Affiliate, we also earn from qualifying purchases. We’ve chosen these providers not the other way around. Our decisions are based upon their corporate reputation and the quality of their offerings and pricing. Our recommendations regarding technology are reached without regard to financial compensation except in situations in which comparable products at comparable pricing are available from multiple sources. In this limited case, we support our sponsors because our sponsors support us.

BOGO Bonaza: Enjoy state-of-the-art VoIP service with a $10 credit and half-price SIP service on up to $500 of Skyetel trunking with free number porting when you fund your Skyetel account. No limits on number of simultaneous calls. Quadruple data center redundancy. $25 monthly minimum spend required. Tutorial and sign up details are here.

The lynchpin of Incredible PBX 2020 and beyond is ClearlyIP components which bring management of FreePBX modules and SIP phone integration to a level never before available with any other Asterisk distribution. And now you can configure and reconfigure your new Incredible PBX phones from the convenience of the Incredible PBX GUI.

VitalPBX is perhaps the fastest-growing PBX offering based upon Asterisk with an installed presence in more than 100 countries worldwide. VitalPBX has generously provided a customized White Label version of Incredible PBX tailored for use with all Incredible PBX and VitalPBX custom applications. Follow this link for a free test drive!
 

Special Thanks to Vitelity. Vitelity is now Voyant Communications and has halted new registrations for the time being. Our special thanks to Vitelity for their unwavering financial support over many years and to the many Nerd Vittles readers who continue to enjoy the benefits of their service offerings. We will keep everyone posted on further developments.
 


Some Recent Nerd Vittles Articles of Interest…

Surfing the Google Wave

Original image courtesy of Squidoo.com... with apologies We’ve spent a week getting to know Google Wave using Chrome along with 100,000 of our closest friends. We wanted to give you a status report. Hype aside, Google Wave is an incredible tool when used for the right purpose. If you’ve been asleep or hiding under a rock for the past two weeks and missed the party, here’s a quick summary of Google’s latest invention. It’s a bird, it’s a plane… actually it’s a collaboration and communications platform that brings the full richness of Web 2.0 to your desktop. Some have suggested that it’s what email would look like if it were invented today. Our discussion focuses on the web-based Wave client, but Google Wave also is an open source development toolkit, and we’ll get to that one day soon.

Much has been written about Google Wave’s capabilities, and we won’t repeat that here. Instead, we want to address Google Wave’s potential and what we see as some of the present shortcomings of the product. We fully appreciate that this is a preview, and many of our concerns may yet be addressed before Google Wave becomes available to the general public. We can’t help chuckling at the realization that, in less than 30 years, we’ve now come full circle in data processing. What began as mainframe computing evolved into personal computing. And now Google Wave brings us much closer to being back where we started except for a state-of-the-art user interface and a new name: Cloud Computing. If IBM had addressed the user interface issues with mainframe computing, they probably never would have lost their market in the first place.

The screenshot above really can’t do justice to the richness of the client interface because you truly need a monitor as wide as your desk to get the most out of Google Wave. No, you won’t be using this on your cellphone or PDA… at least not well. For openers, Google Wave provides real-time collaboration so you actually see folks typing into various message threads (called waves) in the Land of Google. When you create a new wave, you "invite" other people in your Contacts to the wave. This puts the wave at the top of their Inbox in bold-faced type, akin to what Gmail would do with an incoming email.

There’s another frame to the right of your Inbox which actually displays the complete wave that you have selected so you’re never really jumping back and forth between selecting waves and reading them. What takes a bit of getting used to is the fact that both your Inbox and the wave you are currently reading may be changing every second with input from literally dozens of your associates or strangers if the wave you’re reading happened to be designated as public.

There’s one other dramatic difference in waves and threads of email messages. Other folks can change your stuff. As a collaboration tool with close associates, this might be desirable. With public waves, it would be a nightmare in the real world. And we don’t consider the 100,000 Google Wave previewers the real world. They are for the most part well-behaved probably out of fear that they’d be booted out if they behaved badly. That isn’t the real world as we all know. And the current Google Wave design would let a single creep destroy virtually every public wave in minutes using bots and malicious changes to documents. As presently designed, there would be little recourse other than replaying what your wave used to look like. You really can’t put Humpty back together again as some have already discovered.

Richard Nixon learned the hard way that tape recorders can be a blessing and a curse. Much has been made of the capability Google Wave offers to replay a wave so that you can playback the development of a thread of messages and see who added or deleted what and when. Google has touted the fact that everything is preserved. Well, not quite. First, there’s no capability at least presently to scroll back to a certain place in the timeline and recreate a new wave up to there. The most you can retrieve is a single posting. Second, anybody with access to the wave can use this timeline feature so wave restoration wouldn’t necessarily be desirable unless it were restricted to the original author of the wave. And, third, at least at Google someone knows how to cheat the system and delete stuff from the timeline. We only discovered this in reviewing the first public porn wave which started out prim and proper enough but quickly gathered steam when someone posted a collection of NSFW (or anywhere else) photos from their favorite collection. Within a few minutes, the postings quietly disappeared. Being the careful reviewer that we are, we immediately reached for the Playback button to check the history of the wave. Sure enough, the raunchy photos were still there. But, by the next morning, they had completely vanished from the chronology. So much for the official stance that nothing ever disappears. The real disappointment with the replay function is the lack of any capability to restore an entire wave. Because only individual messages (known as blips) can be recovered, this would prove to be next to worthless in a complex wave with hundreds of postings.

That brings us to the issue of whether public waves really make sense given the world in which we live. The good news is it works much better than IRC because of the richness of the content with attachments and hyperlinks. But, at least for public waves, the ability to edit someone else’s stuff would have to go. We try not to focus on legal nightmares in reviewing new software, but one can’t help wondering what would happen if one were to post something complimentary about a neighbor in a public wave and then another neighbor altered your posting by falsely accusing the individual of sleeping around with half of the neighborhood. Obviously, there’s still a good bit of work to do on the security front and in deciding whether allowing others to amend someone else’s postings is a good idea. Whether Google gets the security piece right will ultimately determine the success of Google Wave.

For public waves, it’s a no-brainer. You just can’t! And, to be honest, in reviewing hundreds of public waves in the preview, we can’t recall a single instance where this functionality would have been necessary. In a true (private) collaborative project, it would be wonderful but color-coding of text or some other method of identifying who wrote what would be absolutely essential from both a practical and legal standpoint. Both Microsoft Word and WordPerfect have had this capability forever. The simple way in Google Wave would be to add user’s pictures with a colored border and matching colored text whenever they make changes to someone else’s posting. With this addition, Google Wave could become a wonderful collaborative tool in both legal and technical environments.

And, speaking of word processing, Google Wave falls a bit short on the word processing scale. Despite the richness of Google’s knol platform, some of that functionality still is not available in Google Wave. The text editing and formatting is much akin to what’s available in a typical email client. You can change fonts, adjust color, indent, add hyperlinks and images, but that’s about as far as it goes. There are no headers, footers, footnotes, etc. So you can’t easily transform a wave into a formatted document for printing at this juncture. But that may come as development continues.

There are a few other things still on our Wish List. First, we’d love for Google Wave to evolve into a tool that can replace today’s forums which are not much more functional than BBS software was two decades ago. Once there is administrator control of rollback and protection of waves by granular access rights to functions, bots, and gadgets as well as the ability to block users and ranges of IP addresses, this should happen. Second, we obviously want the ability to include either read-only or read-write access to waves in a blog or web site. We already have the web site functionality working (see below for a sample), but you currently need a Google Wave account to access it. Third, we really want to assimilate all of the tools we use into the Google Wave Desktop so that everything is accessible in one place. That’s what Cloud Computing is all about, and Google Wave comes closer than anything else in meeting that need. You already can access Gmail on your Google Wave desktop and any web site that can be framed can be included in a wave as an iFrame. That doesn’t leave much once the security feature set is in place to protect all the components.

Finally, we’ll close with a brief mention of the coolest feature of Google Wave. That is its expandability which is enabled by incorporating bots and gadgets into any wave. As you might imagine, these extensions can do almost anything… good or bad. Here’s a short list of what has been developed and what’s already on the radar in just a few short weeks:

Chatbots
Eliza – ogenex@appspot.com – An implementation of the Eliza chatbot borrowed from the NLTK.
Elize – elizarobot@appspot.com – Is one of the first robots that was created by non Googler and is very useful if you are feeling alone in your Google Wave client.
Rude chatbot – notatory@appspot.com – An obnoxious chatbot borrowed from the Natural Language Processing Toolkit.
TooAngel Wave – In Progress – tooangel-wave@appspot.com – A self learning robot, that will respond to a reply in a more humanoid way

Conversion
BotURL – boturl@appspot.com – A URL Linker that replaces full URLs with hyperlinks.
Calcbot – calcbot@appspot.com – This bot will do in place calculations for simple mathematical expressions and allow you to use user defined variables.
Cartoony – cartoonybot@appspot.com – Replaces the text of every submitted blip with a cartoon balloon that contains the text instead. Colors the balloons based on username.
Dice Bot – dice-bot@appspot.com – Dice-rolling bot. Dice Bot will replace XdY (X is the number of dice; Y is the number of sides) with the results of those rolls.
Flippy – flippy-wave@appspot.com – Turns text upside-down.
Fnordlinky – fnordlinks@appspot.com – Replaces "PMID <number>" with article information from PubMed.
Hearty Emobot – hearty-emobot@appspot.com – Replaces ASCII art with wingding characters.
i-cron – i-cron@appspot.com – Evaluates Python expressions. Looks at blips in event, searches for CALC() macros and executes Python code using exec().
Insulty – megabytemb123@appspot.com – Information Needed
IPA Bot – ipa-bot@appspot.com – Changes normal letters into special characters used for phonetics.
Piratify
– piratify@appspot.com – Turns whatever you type into "Pirate Speak" .. Arrrr.
Plotzie – plotzie@appspot.com – Plots sparklines from your data.
Shortee – Wish – Change “c u l8r” to “see you later” etc.
Swedish Chef – borkforceone@appspot.com – Changes english into Swedish-Chef Speak. Bork! Bork!
Syntaxy – kasyntaxy@appspot.com – Syntaxy does blip-by-blip syntax highlighting for a variety of languages including Python, Java, C, C++, html, css and javascript.
Watexy – watexy@appspot.com – Use LaTeX mathematical language in your Waves!
Wikify – wikifier@appspot.com – Replaces specific marked up text with a link to Wikipedia or a description relevant to the marked text.

Games
Hangman – wavehangman@appspot.com – Play Hangman.
Roshambo – roshambowave@appspot.com – Play Roshambo (Rock / Paper / Scissors).
Speedy – Wish – Track the words per minute of all participants, competitive typing!

Groups
Groupy – groupy-robot@appspot.com – Robot to manage groups.

Integration
drop.io – mikeswaverobot@appspot.com – Creates a drop and puts the info into the wave whenever the robot is added as a participant.
OpenAustralia – In Progress – A robot to allow interaction with the OpenAustralia web site.
PlonieBot – In Progress – ploniebot@appspot.com – Brings wave document editing capabilities to the Plone CMS
Poppy – In Progress – poppywave@appspot.com – Helps bridge Google Wave conversations to email users outside the Wave.
Rssybot – rssybot@appspot.com – Turn google wave into an RSS reader!
Starify – starifybot@appspot.com – Lets you star waves, in sort of bookmarking style.
Tweety the Twitbot – tweety-wave@appspot.com – You can access your Twitter account.
Twiliobot – twiliobot@appspot.com – Transforms phone numbers into click-to-call links. If user clicks a link, a call is placed to his phone and to the number in the link. The call can be transcribed and inserted into the wave as text with a link to the audio.
Wave-Email – In Progress – wave-email@appspot.com – Provide an extension to Google Wave which will allow the integration of both sending and receiving emails.
Wave Live Messenger – wavelivemessenger@appspot.com – Allows you to chat to your windows live messenger contacts from inside a wave.

Language
PhilBot – Wish – A suggested solution to the problem of waves with languages you can’t read.
Rosy Etta – rosy@wavesandbox.com – Translator (40 Languages).

Polling
Polly the Pollster – polly-wave@appspot.com – Poll Bot.

Search / Aggregation
Dr Maps – dr-maps@appspot.com – Updates a wave by inserting a map associated to an address.
Dr Weather – shiny-sky@appspot.com – Gives the weather for a City
Embedded Search Results – wave-sandbox@appspot.com – Web and Image searches inline.
FML Blipper – fmlblipper@appspot.com – displays random FML story from www.fmylife.com
Grauniady – grauniady@appspot.com – Searches the latest items from The Guardian for a given phrase.
Stocky – stocky-wave@appspot.com – Detects stock symbols from a wave and updates it with the live stock price.
Wavethingy – wavethingy@appspot.com – Searches Amazon for DVDs and books, and gives the author a cut of any purchases made off the links.
Yelpy – yelpful@appspot.com – Searches Yelp with a user defined location and category.

Utilities
AmazonBot – amazon-withwaves-com@appspot.com – Enables social product research and shopping on Amazon.com. Wave participants can share products & reviews with contacts in real-time thanks to automatic queries by the AmazonBot against conversation keywords. The AmazonBot gadget can detect products and return inline product links or a custom full product browser.
Bloggy
– blog-wave@appspot.com – Information Needed
Bit.ly Bot – bitly-bot@appspot.com – Shortens the url using bitly.
Botty – Wish – Will automatically add a set of useful bots to a wave according to a collection of bots (so they don’t have to individually be added when you use them all the time.
CountColon – countcolon@appspot.com – Adds text statistics to your blips (words, lines, etc.)
Companion Sphere – companionsphere@appspot.com – Collection of geek utils, first working verb is "lookup" for wikipedia/wiktionary one-line descriptions.
Databot – Wish – Will start as soon as the GData interface is published.
Emoticony – emoticonbot@appspot.com – Replaces text representations of emoticons with the relevant image.
JBREAKOUT – jbreakout@appspot.com – Debug utility that reports event triggers.
Maison – maison@appspot.com – Makes blips public at http://maison.appspot.com.
Multi – multi-wave@appspot.com – A quote collector. Reply a blip you want to quote with ‘quote this’ and randomly display a quote with ‘quote <wave @account.com>’. The bot is still being under development but you can try playing with it.
Natural Language Processing – knowledge-books@appspot.com – Adds blips with NLP analysis.
Nokar – lab2market@appspot.com – Has many features such as translations, image insertion, insert last tweets etc.
Posterous – posterous-robot@appspot.com – A robot for posterous.com user to post blog in Google Wave. Here is how to write a blog using Google Wave Robot for Posterous.
Publisher – wave-publisher@appspot.com – Information Needed
Skimmy – wave-skimmy@appspot.com – Converts text emoticons, from : ) to img. Has a bookmarklet which creates a popup menu to insert emoticons for which the code is unknown.
Smiley – smiley-bot@appspot.com – Changes the smiley symbols to smiley images.
Smiley – In Progress – smiley-robot@appspot.com – Changes the smiley symbols to smiley images.
Style Chart – stylechart@appspot.com – Inserts a chart into a wave.

Wave Management
Bouncy – bouncy-wave@appspot.com – Allows you to remove robots from a wave. Doesn’t seem to work on real people though, and laughs if you try to ask it to kick itself out. To get it to kick a bot out, type "bounce:name@domain.com"
Linear – Wish – Enforce all replies to be to the main wave. If a user replies to a reply, remove it and place it as a reply to the main wavelet.
Read Onlie – readonliebot@appspot.com – Records the original wave content. Whenever it’s edited, the content is replaced with the original. Simple as that.
Seekdroid – seekdroid@appspot.com – You can list Robots, add them and find them out, easy to use. In continuous development. Website with all the information seekdroid.appspot.com.
Sweepy – sweepy-wave@appspot.com – Remove empty, whitespace-only blips.
Taggy – taggy-wave@appspot.com – Recognize #hashtags and add them as tags to the wave.
Tocgen – tocgen@appspot.com – Table of Contents auto-generated and updated based on the h1,h2,h3,h4 in a wave.
Twitusernames – twitusernames@appspot.com – Replaces all Twitter @username with links to the Twitter accounts.

Gadget Utilities
Ajax Animator – In Progress – http://antimatter15.com/ajaxanimator/wave/manifest.xml – A fully integrated multi-user web based vector graphic animation authoring environment.
AmazonBot Gadgett – http://amazon-withwaves-com.appspot.com/gadgets/AmazonProductList.xml – The AmazonBot gadget can detect products and return inline product links or a custom full product browser.
Bidder – http://wave-api.appspot.com/public/gadgets/bidder.xml – Simple Auction.
Checky – http://wave-gadgets.appspot.com/checky.xml – Basecamp-like checklists with drag-and-drop.
Click me – http://wave-api.appspot.com/public/gadgets/hellowave.xml – Shows a button with a counter. Each time the button gets clicked, the counter is incremented by one. Shows off how the state interaction works.
HTML – http://wave-ide.appspot.com/html.xml – Embed any HTML into a wave.
iFrame – http://wave-ide.appspot.com/iframe.xml – Embed any web page into a wave.
iWave – http://gadget.wave.to/iWave/iWave.xml – Allows you to create a profile on wave to make wave just a little more personal. Uses facebook connect to retrieve your details if you sign in.
Licensing – In Progress – http://wave-license.appspot.com/license_gadget.xml – Creative Commons RDF Embedding – Planning Stage.
Maps – http://hosting.gmodules.com/ig/gadgets/file/101415471413908368316/mappy.xml -Embed Google Map.
Napkin – http://my-wave-gadgets.appspot.com/wave/NapkinGadget.xml – Example of Flash/Flex Wave Gadget, similar to Whiteboard gadget above – source on Google Code.
QuakeBot – In Progress – Server information on the Quake 3 protocol.
Raffly – http://raffly.googlecode.com/svn/trunk/sandbox/raffly-xml1/raffly.xml – Insert this gadget to select a random participant from your wave to be the winner. The winner of what? Well that’s up to you 🙂
Ratings – http://google-wave-resources.googlecode.com/svn/trunk/samples/extensions/gadgets/ratings/ratings.xml – Lets participants rate and review a topic (movie, restaurant, etc) in a wave and shows a tally of the result.
Slashdot Gadget – http://www.m1cr0sux0r.com/slashdot.xml – Loads latest Headlines from Slashdot.
Troco – An experimental peer-to-peer currency – http://troco.ourproject.org/gadget/org.ourproject.troco.client.TrocoWaveGadget.gadget.xml – Aims to provide a decentralized complementary community currency system, that is, a peer-to-peer currency system. Also you can see it as an IOU or promissory note based system. More info click here.
Vector Editor – http://jsvectoreditor.googlecode.com/svn/trunk/wave/vectoreditor.xml – A cross platform collaborative real time vector graphics editor.
Whiteboard – http://vps.michaelrose.id.au/canvas.xml – Draw on a virtual whiteboard.
Who is Coming? – http://wave-api.appspot.com/public/gadgets/areyouin/gadget.xml -Show a list of all people that have said whether they will come or not.

Gadget Games
Backgammon – Wish – Remove all of one’s own checkers from the board before one’s opponent can do the same. [Wikipedia]
Battleship – Wish – Displays different board based on user.
Boxes – In Progress – Connect lines to make boxes and win.
Connect 4/Four-in-a-row – In Progress – sdunster@wavesandbox.com – http://www.sdunster.com/wave/four.xml – 2 users + observers, turn locking, just waiting to write win-detection code.
Floodit – http://gadget.wave.to/floodit/game.xml – 2 player race to fill a board with colors.
Magnetic Poetry – http://hosting.gmodules.com/ig/gadgets/file/107558585548952247431/fridge-11.xml – Re-arrange random words to form poetry.
Match them colors! – In Progress – Match 3 / gem matching game.
Othello – Wish – Play Reversi.
Sudoku – http://blah.appspot.com/wave/sudoku/sudoku.xml – Play Sudoku.
The Button – http://hyperthese.net/wave-gadgets/the-button.xml – A useless (I mean USELESS) game.

Hooks
CVS integration – Wish – CVS history can be converted into a wave with playback.
GIT integration – Wish – GIT history can be imported and played back (dffs).
SVN integration – Wish – SVN History can be converted into a wave with playback.

Appearance
Google Wave Scrollbars – http://www.uniformedopinion.com/google-wave-native-scrollbars-extension/google-wave.crx – Changes the wave scrollbars to the default system scrollbars.


Enhanced Google Maps. In case you haven’t noticed, we’ve added yet another Google Map to Nerd Vittles. Now, in addition to showing our location with Google Latitude, we also are displaying your location based upon your IP address. We’ll show you how to add something similar to any LAMP-based Linux system in coming weeks. It’s a powerful technology that has enormous potential. If you’re unfamiliar with Google Maps, click on the Hybrid and Satellite buttons and then check out the scaling and navigation options. Double-click to zoom. Incredible!


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



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


 

Special Thanks to Our Generous Sponsors


FULL DISCLOSURE: ClearlyIP, Skyetel, Vitelity, DigitalOcean, Vultr, VoIP.ms, 3CX, Sangoma, TelecomsXchange and VitalPBX have provided financial support to Nerd Vittles and our open source projects through advertising, referral revenue, and/or merchandise. As an Amazon Associate and Best Buy Affiliate, we also earn from qualifying purchases. We’ve chosen these providers not the other way around. Our decisions are based upon their corporate reputation and the quality of their offerings and pricing. Our recommendations regarding technology are reached without regard to financial compensation except in situations in which comparable products at comparable pricing are available from multiple sources. In this limited case, we support our sponsors because our sponsors support us.

BOGO Bonaza: Enjoy state-of-the-art VoIP service with a $10 credit and half-price SIP service on up to $500 of Skyetel trunking with free number porting when you fund your Skyetel account. No limits on number of simultaneous calls. Quadruple data center redundancy. $25 monthly minimum spend required. Tutorial and sign up details are here.

The lynchpin of Incredible PBX 2020 and beyond is ClearlyIP components which bring management of FreePBX modules and SIP phone integration to a level never before available with any other Asterisk distribution. And now you can configure and reconfigure your new Incredible PBX phones from the convenience of the Incredible PBX GUI.

VitalPBX is perhaps the fastest-growing PBX offering based upon Asterisk with an installed presence in more than 100 countries worldwide. VitalPBX has generously provided a customized White Label version of Incredible PBX tailored for use with all Incredible PBX and VitalPBX custom applications. Follow this link for a free test drive!
 

Special Thanks to Vitelity. Vitelity is now Voyant Communications and has halted new registrations for the time being. Our special thanks to Vitelity for their unwavering financial support over many years and to the many Nerd Vittles readers who continue to enjoy the benefits of their service offerings. We will keep everyone posted on further developments.
 


Some Recent Nerd Vittles Articles of Interest…



For those of you that already have Google Wave accounts, here’s a sample of how a wave will look in a WordPress posting. You can even add content to the wave! This works in Safari and Chrome most of the time, Firefox some of the time (if you turn on Accept 3d Party Cookies), and IE almost never. For those of you that are not part of the Google Wave preview, you’ll just have to wait patiently until Google turns on at least read-only access to this functionality:

Meet The iPhone Terminator: The World’s Best Mobile Phone

Photo courtesy of HTC and androidcommunity.com

With apologies to Arnold’s infamous line, all we can say to iPhone enthusiasts of the world is that once you try this Android phone, you won’t ever go back. Google has done for the mobile phone what Apple did with Mac OS X except Google also opened up the hardware platform. Unfortunately, Apple opted for locked and proprietary hardware and software in rolling out its iPhone. Now that the second-generation Android phones are appearing, the difference is palpable.

Update. There’s now a third-generation Android phone that’s even better than this one. You can read all about it in our latest article.

Choosing the World’s Best Cell Phone is obviously fraught with peril. All other things being equal we would have bestowed the honor on Nokia’s E71 which we reviewed recently and have personally used until a month ago. That’s when we jumped into the Android World which we will tell you up front is still a bit of a work in progress. But, all we can say is WOW! The openness, the technology, and the creativity showcased in the new Android phones point to an inescapable conclusion. Google once again has struck the Mother Lode. Seeing is believing as they say. And today we’ll digress from our usual format to bring you a pictorial tour of the HTC Magic. No. You don’t have to carry a white one like Arnold. Heh. A shiny black one is readily available. We actually had planned to walk through the process of rooting the phone, but we’ll leave that for another day primarily because this mobile phone provides sufficient flexibility in its native state to deliver an almost perfect cellphone experience even without root access.

We’ve already covered our objections to the iPhone in a previous article so we won’t repeat them here other than to note that SIP clients can’t run in the background on an iPhone which makes them next to worthless for inbound calls. Yes, there are kludgey workarounds, but these open yet another can of worms. We’ll dispose of the Nokia product line by telling you they’re headed in the wrong direction just like Microsoft with the wrong operating system(s), the wrong product design, and the wrong technology mix. Just when the world is finally looking for a mobile platform that provides flexibility in transitioning between the cellular networks, WiFi, and WiMax, Nokia kills the SIP stack and SIP client on its entire line of new cellphones. So a company that once was THE innovative cell phone manufacturer in the world suddenly is looking a bit like Yahoo, lots of thrashing around but no cigar. Sadly, it’s mostly the result of self-inflicted wounds. But we’re not going to dwell on the past today. We’re going to look at what the future holds in mobile communications. And the one word that best sums up our hopes for future mobile telephony is Google… more precisely, Google’s totally open source Android Platform.

So let’s again go about this by the book… with a requirements analysis! You can match it to your own wish list. We want a cellphone that makes cellular calls from most locations, and we want the ability to decide which cell provider we use depending upon where we are. We want the option to make phone calls through our own SIP provider, or Asterisk® server, or Google Voice whenever we feel like it with or without a Wi-Fi connection. And, of course, we want VoIP Prioritization. This means we want our cell phone to prioritize incoming and outgoing calls by attempting to use VoIP services first, cellphone carrier second. We also want to be able to check our email using gMail, POP3 and IMAP servers at 3G data speeds. For the business community, we also think Microsoft Exchange support is indispensable. When we need to send or receive something on our notebook computer and there’s no WiFi around, we want our cellphone to provide data connectivity. We’re not going to be downloading movies and 1,000-page books all day long. We just want to get an important file attachment from the office so we can read it on a normal screen. If the cellphone provided a PDF viewer, so much the better. And, finally, we’d like a QWERTY keyboard for messaging, and we want to be able to change our own battery, add a memory chip, and swap out SIM cards whenever we’d like. We also want the ability to gain root access should we ever wish to do so. After all, it’s our phone! Bluetooth for phone calls and A2DP for music in the car would be great, and a good camera as well as GPS functionality would be nice to have on the phone as well. For those in the U.S., we’d add one additional requirement: support for AT&T’s 3G network so you’re not stuck with T-Mobile’s dog-slow (and incompatible) wireless data network. Most of the Android phones currently flunk this test leaving you with nothing but EDGE service if you use a provider other than T-Mobile. Of course, with T-Mobile, you get mostly EDGE service in the U.S. as well. 🙄

And the winner is…

Our pick is the unlocked Rogers HTC Magic phone, the only Android phone that we could find which supported rooting and AT&T’s 3G network in the U.S… albeit from a Canadian provider. That’s the price U.S. consumers pay for a government that continually rewards the telephone oligopoly with exclusivity rip-offs. So how does the HTC Magic stack up to our wish list? We’d give it a 94. It does everything on our Wish List… and more. The images which follow incidentally were taken using the screen capture utility that’s part of the Android 1.5 SDK. It is easily installed on either a Windows or Linux PC or your favorite Mac (except Snow Leopard for the moment). There’s a great tutorial on how to install the Android SDK as well as a YouTube video and tutorial on rooting the Rogers HTC Magic phone should you desire further information on those topics.

Getting Started. Before proceeding, set yourself up a Gmail account if you don’t already have one. As with most provider-specific cellphones, this HTC Magic phone is hard-coded to the Rogers network in Canada. Assuming you want to use AT&T’s network in the U.S., step #1 is to enter AT&T APN settings when you first turn on the phone. After inserting the AT&T SIM and booting the phone, press the Menu key before doing anything else. Next click Add APN. Enter the following values leaving the remaining fields blank:

Name: att
APN: wap.cingular
Password: CINGULAR1

Now press the Menu button again and choose Save. For other providers, try this Google Search.

Main Screen. Once you’ve entered your Gmail credentials, the phone will boot and display a Main menu. It actually is three screens wide. You can move to the other screens by swiping your finger to the left or to the right. You’ll notice a thumb tab at the bottom of the display. By dragging this up, you can access all of the other applications on the phone. Move it back out of the way by dragging it back down or pressing the Back button (←) which is the third from the left button just below the screen display.

Applications. Here’s the first page of our Applications. You scroll through the list using the trackball, or you can drag your finger vertically on the screen to reposition the display up or down. Tapping on an entry starts the application. Pressing the Home button on the far left just below the screen display returns you to the Main Screen. Every app is displayed in this listing except for Widgets. Widgets are more like scripts and typically are used to toggle functions on and off. In the left Main screen above are four widgets to toggle WiFi, BlueTooth, GPS, and Ringer/Vibrate/Silent functions of the phone.

Android Market. All of these applications didn’t necessarily come with the phone. Google’s Android Market has been set up for developers to display their wares. You can become a developer, too. And, unlike the iPhone apps, most of the Android apps still are free. Just another advantage to open source technology. To access the Market from your phone, just choose the Market app and follow the intuitive menus. There’s a great Search function. Again, unlike the iPhone, these applications get stored on a MicroSD card. A 2GB card comes with the phone. Do yourself a favor and start with a $50 16GB card.

Messaging. As you might expect from Google, the Android platform excels at messaging of all flavors. Whether it’s text messaging, Gmail, or POP3/IMAP email connectivity, Android has you covered (see above). And the support for Microsoft Exchange is nothing short of brilliant. In the social networking department, there’s full-featured support for Twitter and Facebook, among others. Using the Search function in the Android Market, you can have your phone set up with your favorite tools in just a few minutes.

Android Security. Securing your phone is also nothing short of brilliant on the Android 1.5 platform. Simply draw an unlock code pattern using your finger, and that becomes the signature for future access to your cellphone. Also works pretty well as a sobriety test. 🙂 If you can’t unlock your phone, don’t unlock your car! You also can lock your SIM card to your phone and set a password if you’re nervous about losing your $500 crown jewel. What the security system really demonstrates is that the open source community has nothing to apologize for. The quality of this software is every bit as good if not better than the software produced by the other cellphone players.

Placing Calls. Yes, we hear you. What about making phone calls? You’ll be pleased to know that the HTC Magic can do that, too. We were just saving the best for last. In fact, this phone can make calls in three different ways: through your cellphone provider, through SIP using your Asterisk server or another provider, and through Google Voice. Once you install the Google Voice application from the Android Market, simply configure it with either your cellphone number or an intermediate provider such as SIPgate or IPkall. You then have a choice of whether to make Google Voice the primary or secondary calling source. Or you can choose to be prompted for each call as shown above. Google Voice calls that go out through your WiFi data network connection incur no charges in the U.S. and Canada.

SIP calls are placed using the SIPdroid application which also is available in the Android Market. Shown to the left is a sample setup for SIPdroid to connect to your Asterisk server on a private home network. In the SIPdroid Call Options, specify whether to use WiFi and/or 3G/EDGE for the SIP calls. And set a preference for how your calls should be placed, i.e. cellphone carrier or SIP. The only tricky part is the Extension Settings on your Asterisk server. Just create an extension in the usual way using FreePBX. But make sure your settings include the following entries: canreinvite=no, nat=yes, and qualify=no.

To route outbound calls through SipDroid instead of your cellphone provider, just append + to the end of the phone number. You can generate a + symbol on your phone keypad with a long press of the 0 button.

Android Backups. No article would be complete without some mention of backups. The Android platform currently supports four options: Android images, MyBackup, and Google and Exchange Synchronization. Android images can only be created if you gain root access to your phone or load a different image on your phone. MyBackup is a $9.95 app from the Android Market that lets you backup your Applications and Data separately onto your MicroSD card. Unless you’re a techie, it’s well worth the money. Google and Exchange Synchronization you will find under Settings, Data Synchronization. With Google Sync, you can back up your Gmail, Calendar, and Contacts data automatically and as a background task. Be sure to activate it. Finally, you’ll see displayed above a browser display from mundy.org/whereib that you may find helpful from time to time. It displays not only a map of your current location based upon your IP address, but also shows your public IP address.

Android 3Gtest. We’ll leave you with a hot tip about one additional application: 3Gtest. Just download and install it from the Android Market and then run it. You’ll be amazed by the results. Not only will it tell you how good your upload and download speeds are, it also will tell you some interesting tidbits about whether your provider is living up to their oft-repeated promise of Net Neutrality. Our download 3G speed in Charleston, South Carolina was actually close to T-1 performance. Interestingly, our upload speed was pitiful… about as fast as a circa 1860’s telegraph machine.

Android System Backup. We said we weren’t going to cover rooting your phone, but we do want to point you in the right direction and also show you how to get a perfect image backup of your phone. If you’re not comfortable entering system commands, stop here! We are Mac snobs so what follows is the Mac way of doing things which is incredibly simple compared to the hassle with Windows in getting the correct USB driver loaded to make things function properly. If you’re determined to use Windows, be sure to install the Android SDK before you connect your phone to your PC. And read up on how to install the appropriate USB driver for Windows. With a Mac, all of this just works… out of the box. As we mentioned previously, we’ve only tested this with Leopard and Snow Leopard, and Snow Leopard does NOT work!

Before proceeding, you must enable USB Debugging on your phone. You’ll find it here: Settings->Applications->Development->USB Debugging

To get your Mac set up with the proper toolkit, do the following. There’s nothing tricky here. Just don’t skip any steps. And you only have to do this once! First, download the Android 1.5 SDK for the Mac from here. Unzip android-sdk-mac_x86-1.5_r3.zip on your Desktop and rename the folder to android-sdk. Now drag that folder into your Applications directory. Next, open a Terminal window and create/edit .bash_profile: nano -w .bash_profile. Add the following entry: export PATH=${PATH}:/Applications/android-sdk/tools. Then save the file: Ctrl-X, Y, Enter. Now run the same command from the CLI prompt to update your PATH now: export PATH=${PATH}:/Applications/android-sdk/tools. Next, download fastboot-mac onto your Desktop from the HTC Support site. Unzip the file and rename the file to fastboot. Then, download recovery-new.img to your Desktop. Drag both fastboot and recovery-new.img into the Applications/android-sdk/tools folder.

Now we’re ready to make your backup. Plug your phone into your Mac using the USB cable that came with the phone. Open a terminal window on your Mac and change to the SDK tools directory: cd /applications/android-sdk/tools. Run the following command and make certain your phone shows up in the listing: adb devices. You should get a display with the serial number of your phone:

List of devices attached
HT95RNK02843 device

Assuming your phone shows up in the list, you’re ready to proceed with a backup. Turn off your phone. Then, while pressing the Volume Down button, turn your phone back on. Hold down both buttons until you see a screen that says <BACK> FastBoot Mode with dancing Androids on skateboards at the bottom of the display. Press the BACK button (←) and the FASTBOOT USB menu will display. In your computer’s Terminal window (NOT on your phone), type: fastboot boot recovery-new.img. Your phone will reboot and display a screen with several options in blue. Use your phone’s trackball to carefully scroll down to the Nandroid Backup 2.1 option. Then depress the Trackball button to begin the backup. You’ll see a yellow display message indicating that the backup is proceeding. When the backup completes, choose the Reboot System Now option to restart your phone normally.

You’ll find the new backup on the SD card. To copy it to a safe place on your Mac, drag down the Message Bar at the top of the display after your phone has rebooted. Tap the USB Connected Select to copy files to/from your computer option. Then tap the Mount button. A new drive NO NAME will appear on your Desktop. Double-click on it and drag the nandroid folder to a safe place for permanent storage of your backup. To unmount the phone, do it on your Mac desktop first. Then reverse the mount process we initially used on the phone to mount it. Simple!

Rooting Your Phone. We have NOT done this so you’re on your own. You’ll probably void the warranty on your phone by proceeding. The best article we could find on the procedure for rooting and restoring your phone is here. But it doesn’t have the correct backup image. If you restore the wrong image, your phone’s radio may no longer work on your provider’s network. The consensus seems to be that the proper image for a rooted Rogers HTC Magic is here. The best tutorial for actually performing the magic appears to be here. But we would stress again that we have not actually tried this, and you really, really are on your own if you proceed past reading this article. It’s your $500 phone… or brick as the case may be. Before doing anything further, we would strongly recommend you make several backup images as outlined above and also spend some time doing a careful review of the postings in this forum until you are very comfortable with all of the wrinkles and procedures. If something goes wrong, post your problems there, not here. 🙂 We’re handing you the map, but it’s your choice whether to jump off the cliff. Enjoy!

Update: The unlocked Rogers HTC Magic phone used for this review is now available for purchase from Nerd Vittles. It supports 3G networks of both Rogers in Canada and AT&T in the United States. Just make us an offer we can’t refuse. It’s still a terrific phone!



The Future of Android. For a glimpse of what the future holds for Android, see this Giga OM article published on October 7.


Web Site of the Week. For all of your favorite Nerd gifts, don’t miss the new Mashable collection.

Articles of the Week. For another excellent technical review of the HTC Magic, check out TechRadar UK’s review. And be sure to check out Justin West’s Free Homebrew VoIP with Google Voice and Intel Atom.


Enhanced Google Maps. In case you haven’t noticed, we’ve added yet another Google Map to Nerd Vittles. Now, in addition to showing our location with Google Latitude, we also are displaying your location based upon your IP address. We’ll show you how to add something similar to any LAMP-based Linux system in coming weeks. It’s a powerful technology that has enormous potential. If you’re unfamiliar with Google Maps, click on the Hybrid and Satellite buttons and then check out the scaling and navigation options. Double-click to zoom. Incredible!


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



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


 

Special Thanks to Our Generous Sponsors


FULL DISCLOSURE: ClearlyIP, Skyetel, Vitelity, DigitalOcean, Vultr, VoIP.ms, 3CX, Sangoma, TelecomsXchange and VitalPBX have provided financial support to Nerd Vittles and our open source projects through advertising, referral revenue, and/or merchandise. As an Amazon Associate and Best Buy Affiliate, we also earn from qualifying purchases. We’ve chosen these providers not the other way around. Our decisions are based upon their corporate reputation and the quality of their offerings and pricing. Our recommendations regarding technology are reached without regard to financial compensation except in situations in which comparable products at comparable pricing are available from multiple sources. In this limited case, we support our sponsors because our sponsors support us.

BOGO Bonaza: Enjoy state-of-the-art VoIP service with a $10 credit and half-price SIP service on up to $500 of Skyetel trunking with free number porting when you fund your Skyetel account. No limits on number of simultaneous calls. Quadruple data center redundancy. $25 monthly minimum spend required. Tutorial and sign up details are here.

The lynchpin of Incredible PBX 2020 and beyond is ClearlyIP components which bring management of FreePBX modules and SIP phone integration to a level never before available with any other Asterisk distribution. And now you can configure and reconfigure your new Incredible PBX phones from the convenience of the Incredible PBX GUI.

VitalPBX is perhaps the fastest-growing PBX offering based upon Asterisk with an installed presence in more than 100 countries worldwide. VitalPBX has generously provided a customized White Label version of Incredible PBX tailored for use with all Incredible PBX and VitalPBX custom applications. Follow this link for a free test drive!
 

Special Thanks to Vitelity. Vitelity is now Voyant Communications and has halted new registrations for the time being. Our special thanks to Vitelity for their unwavering financial support over many years and to the many Nerd Vittles readers who continue to enjoy the benefits of their service offerings. We will keep everyone posted on further developments.
 


Some Recent Nerd Vittles Articles of Interest…