Home » Technology » Smartphones (Page 15)

Category Archives: Smartphones

The Most Versatile VoIP Provider: FREE PORTING

The Incredible PBX: Remote Phone Meets the Travelin’ Man

Ever wrestled with one of those thorny problems for weeks only to wake up in the middle of the night with the answer? Thus was born Travelin’ Man, a web- based, one-click Asterisk® application that automatically reconfigures your Asterisk PBX to enable remote SIP phone access from your cellphone, iPad, remote PC, NetBook, or desktop telephone.

News Flash: Be sure to read our latest article introducing Travelin’ Man 3, a completely new security methodology based upon FQDN Whitelists and DDNS. In a nutshell, you get set-it-and-forget-it convenience and rock-solid VoIP security for your Cloud-based PBX or any PBX in a Flash server that’s lacking a hardware-based firewall and you get both transparent connectivity and security for your mobile or remote workforce.

If you’ve read the Incredible PBX series of articles on Nerd Vittles, you already know what a thorny problem remote phone access is if you want to preserve the overall security of your server. Indeed, our recommendation has been to leave SIP access closed on your hardware-based firewall because of the dangers inherent in activating remote SIP access. Now we have a better idea!

Today’s new approach works like this. First, we’ll run a little script that secures all of your extensions with permit entries locking down all these connections to the IP address range within your private network. Then we’ll open the SIP and RTP ports on your hardware and software firewalls and map these ports to your Asterisk server’s private IP address. With this setup, no one can attempt remote SIP logins to your server because Asterisk blocks all SIP extension connection attempts except those originating inside your LAN. To manage external phone connections to your server, the install script creates a new virtual Apache web server on your Incredible PBX using port 83. We’ll enable and map TCP port 83 on your hardware and software firewalls to your server as well. Web access with port 83 is limited to running the Travelin’ Man app to activate external phones.

Now we’re ready to set up access to your server for remote devices. For each extension you wish to enable for remote access, we’ll create a special web directory using an obscure, random file name which will serve as the web link for the Travelin’ Man web app. For example, in the diagram above, directory 184778 manages extension 501, directory 2389957h manages extension 701, and directory 6993h5j manages extension 702. This is accomplished by simply changing the extension number in the index.php script stored in each directory.

When one of these web links is accessed remotely, the PHP script will automatically reconfigure Asterisk to enable access to the designated SIP extension on your server using the remote IP address from which the web page was accessed. And, of course, there’s an additional layer of SIP security as well. You still need your extension credentials to actually log in to your server with a softphone to place and receive calls. The Travelin’ Man installation process takes only a couple minutes, and the remote SIP activation procedure takes just a couple seconds each time you want remote access from a different location. Here’s a quick example of how it actually works.

Let’s assume we want to use the new $3.95 Bria SIP softphone on an iPad to connect as extension 501 on our Incredible PBX back at home. The problem is that the dynamic IP address of your iPad changes at each new site on your itinerary. Some locations have WiFi while others only have 3G connections.

First, we’ll generate an icon to run Travelin’ Man from your iPad desktop. Use the same procedure with an iPhone or iPod Touch, and there’s a similar procedure for Android devices.1 You only have to do this once. Start up Safari on the iPad to access the new port 83 web server at the random web address the installer created to support extension 501. That web address is something like this using your own FQDN2: http://myserver.dyndns.org:83/184778. After establishing the link once, we’ll hit the + button in Safari and choose Add to Home Screen. This creates the TravelMan icon on the iPad. See the screenshot below of our demo iPad setup which used extension 221 instead of 501.

Once configured, it’s just two clicks to enable your remote phone anywhere: click once on the TravelMan icon. When your IP address is confirmed, return to your Home Screen and click the Bria softphone icon to establish a SIP connection back to your server. Behind the scenes, the Travelin’ Man application will generate the required permit entry for your remote IP address mapping it to the designated extension on your server, and then it will reload your SIP settings to make your Asterisk server accessible to the Bria softphone in your hotel room. The entire process takes only a couple seconds.

If your company happens to have a dozen traveling salesmen, then you’d simply assign a dedicated extension to each employee and create secure directory names for each person (e.g. 2389957h and 6993h5j in diagram above) with a copy of the Travelin’ Man app configured for that employee’s extension number. Now your entire mobile workforce has connectivity back to the home office from any location on the globe. And, when an employee leaves the company and another arrives, just create a new name for the old employee’s web directory to preserve the security of your system (e.g. 184778 in our example becomes 78hd773). Keep in mind that each time the Travelin’ Man app is run for any extension, it wipes out any previously authorized IP address entry for that extension. Thus, the security of your Incredible PBX is always preserved.

Prerequisites. Before proceeding with today’s install, you must be running a stock install of Incredible PBX with PBX in a Flash behind a properly-secured, hardware-based firewall3. We recommend the latest version of Asterisk 1.4 because it addresses a SIP vulnerability that might cause you problems if malformed SIP packets are targeted at your server. The current release of PBX in a Flash (1.7.5.5 Silver) is ideal, but any version of PBX in a Flash can be brought current with Asterisk using the update-source and update-fixes tools. Travelin’ Man assumes that you have the Incredible PBX base install of extensions: 501 plus 701-715. You can obviously add more or remove some, but you’ll need to manually adjust sip_custom_post.conf to reflect your actual extension list after the install completes.

The installer has been encrypted for your/our own protection. In source form, the script would allow anyone to defeat the Incredible PBX requirement. Doing so would mean the required IPtables security component would not be in place and properly configured to protect the underlying system from attack. So we’ve opted to play Big Brother to avoid potential security problems for all of us down the road. This article clearly explains all the necessary components if some folks want to roll their own version. We just don’t want the responsibility if something goes horribly wrong. As Forrest Gump would say, "Shit Happens." 🙂 If you don’t believe it, check out the latest security scramble in the trixbox forums.

Installation. Now we’re ready to get started. So log into your Incredible PBX as root and issue the following commands:

cd /root
wget http://incrediblepbx.com/travelinman.tar.gz
tar zxvf travelinman.tar.gz
./travelinman.x

NOTE: If you’re using PIAF2 with CentOS 6.2, you’ll need to use the updated version of Travelin’ Man because of a syntax change in the Apache config file:

cd /root
wget http://incrediblepbx.com/travelinman2.tar.gz
tar zxvf travelinman2.tar.gz
./travelinman2

The first step in the install procedure is to lock down access to all of your extensions to your private LAN subnet. In case you ever want to do this on another server not running the Incredible PBX, here’s a link to our privip.sh shell script that shows how to do it. This should work on most FreePBX-based Asterisk systems.

Once the extensions are locked down, the script will modify your IPtables and Apache configurations to permit web access on port 83. Next, it will adjust your Asterisk setup to support the Travelin’ Man permit scheme. This involves reworking of sip_custom_post.conf so that permit settings for individual extensions can be stored in files named 501.inc, 701.inc, etc. Finally, the installation procedure will set up a single web site to support extension 501 with a randomized directory name for remote access.4 This setup will be stored in /var/www/travelman. To activate support for additional extensions, you would simply copy the subdirectory giving it a new random name: cp -r dir1 dir2. Then edit config.php in the new subdirectory and change the $extension entry.

To complete the install, you must reconfigure your hardware-based firewall and map the following ports to the private IP address of your server:

TCP 83
UDP 5060
UDP 10000-20000

When the installation is completed, it will show you how to access the new web site for extension 501 using either a fully-qualified domain name or a public or private IP address. Now just follow the steps at the beginning of this article to set up your Android or iDevice, and test things out. Enjoy!

Reminders: Be sure to review the comments to this article and the related support forum thread for a week or two for late-breaking enhancements and issues. Also, Incredible PBX comes preconfigured with call forwarding activated for extension 501. Don’t forget to either disable it or set up a real call forwarding number for extension 501 if you want your cellphone to ring. From any extension on your server, just dial *72501 to set up call forwarding. To cancel call forwarding and pass calls directly to the registered 501 softphone, dial *74 and enter 501. Also be aware that the default RingAll ring group (700) configuration on Incredible PBX systems does not include extension 501. So add 501 if you want your remote extension to ring for incoming calls.


The Incredible PBX: Basic Installation Guide

Adding Skype to The Incredible PBX

Adding Incredible Backup… and Restore to The Incredible PBX

Adding Multiple Google Voice Trunks to The Incredible PBX

Adding Remotes, Preserving Security with Incredible PBX

Continue reading Basic Installation Guide, Part II.

Continue reading Basic Installation Guide, Part III.

Continue reading Basic Installation Guide, Part IV.

Support Issues. With any application as sophisticated as this one, you’re bound to have questions. Blog comments are a terrible place to handle support issues although we welcome general comments about our articles and software. If you have particular support issues, we encourage you to get actively involved in the PBX in a Flash Forums. It’s the best Asterisk tech support site in the business, and it’s all free! We maintain a thread with the latest Patches and Bug Fixes for Incredible PBX. Please have a look. Unlike some forums, ours is extremely friendly and is supported by literally hundreds of Asterisk gurus and thousands of ordinary users just like you. So you won’t have to wait long for an answer to your questions.



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. To create a desktop icon for Travelin’ Man on Android devices, navigate to the link with your browser. Then save the link as a Bookmark by clicking the Star icon in your browser then click Add. Return to the Home Screen and, from the screen on which you wish to add the icon, touch and hold your finger on the screen. When the Add to Home Screen menu appears, choose Shortcuts then Bookmarks and select the link you previously saved. As with iDevices, you only have to do this once. []
  2. FQDN = Fully-qualified domain name []
  3. We recommend the dLink Router/Firewall. Low Cost: $35 WBR-2310  Best: DGL-4500 []
  4. If you’d like to download the web site code independently from the Travelin’ Man install procedure, here’s the link. []

VoIP Softphone Shootout for iPhone, iPad, & iPod Touch

We interrupt our Incredible PBX coverage this week to bring you a summer roundup of the best and worst VoIP softphones for use with an iPhone, iPad, or iPod Touch in conjunction with Asterisk®. We’ve tested all of these products with Asterisk sitting behind a NAT-based firewall/router which introduces some additional wrinkles unless your softphone and server are connected through a virtual private network. We’ll leave the VPN discussion for another day. None of these products has native support for the iPad although all will work with any iPad as will any standard iPhone app in either 1X or 2X mode.

The three four products we’ll be evaluating are Acrobits SIP Softphone, the WiFone from Snizmo.com Ltd., the Media5-fone, and CounterPath’s just-released Bria softphone. All support SIP dialing, and the WiFone provides IAX connectivity as well. We were a bit surprised that, despite their reliance on SIP to connect calls, SIP URI support was minimal to non-existent in all but the Bria product. Before diving into the individual products, we should note that, in conjunction with our product evaluations, we received no compensation or discounted/free software from any source. We are a beta site for CounterPath’s next Bria release.

Acrobits Softphone. The Acrobits Softphone requires iPhone OS 3.0 or later and was recently updated on June 3, 2010. The softphone only supports SIP but works with both WiFi and 3G connections which makes it a perfect complement to current generation iPhones as well as the iPad-3G. The softphone also supports push notifications for inbound calls until multitasking is available with iOS 4.0. Multiple SIP accounts can be registered, and the softphone has SIP proxy, VPN, and STUN server support, a must with Asterisk sitting behind most NAT-based routers. G.711, GSM, and iLBC audio codecs are supported in the standard configuration, and we experienced excellent call quality using WiFi with no DTMF issues. As with all of these VoIP phones, 3G call quality was all over the map depending upon the reliability of your nearest cell tower. SIP URI’s can be called by cutting-and-pasting dial strings from entries in the Contacts list email address fields provided the SIP URI destination name is numeric. Quirky but it works. There’s also a speed dial feature for your 12 favorite contacts. Flexible dial strings are supported to smooth the path for international calling. With iOS 3.1, a bluetooth headset can also be used. The application sells for $7.99 in the App Store, and G.729 support can be added for an additional $9.99. G.729 is a must-have if you’ll be using a 3G network for most of your VoIP calls.

While call quality is obviously subjective, the Acrobits Softphone was our personal favorite for daily use. We routinely use it on an iPad to check Asterisk voicemails and to make outbound calls through our home Asterisk server while traveling. Setup is as simple as entering the IP address or FQDN1 of your Asterisk server and an extension number and password to handle the calls. We added a public STUN server entry because of our NAT-based Asterisk setup.

Snizmo’s WiFone. A very close runner-up in voice quality was the WiFone from Snizmo.com Ltd. This softphone has the added advantage of supporting both SIP and IAX2 connections to Asterisk. If security and ease of use matter most to you, then you can’t go wrong with this softphone. IAX2 connections are much less vulnerable to attack from the Internet and are considerably easier to configure because of the elimination of thorny NAT issues. If we had found this softphone first, we probably would have looked no further. As you can see from the screenshot, this softphone supports multiple SIP and IAX connections and is easily set up using the configuration menu. For our European friends, it also supports SMS using a dozen different providers. Echo cancellation and STUN support are available, and G.711 and GSM codecs can be individually configured for SIP and IAX connections. An Outbound Proxy is also available as well as support for international dial strings and prefixes if you need it.

For SIP accounts, simply provide the server address, a username, and password. Authorization name, SIP port, and proxy server settings are optional. For IAX accounts, server address, username, and password are the only required entries. Each account can be toggled ON and OFF to meet your individual requirements. SMS Settings provides a listing of a dozen SMS providers. Simply add your username, password, and a CallerID and SMS just works. The contacts list also synchronizes with your Mac Address Book as well as MobileMe. The call quality of both SIP and IAX connections using WiFi was excellent. 3G support is not yet available. The web-based tutorial is excellent, and the application is available in the App Store for $6.99. An international version also is available.

We could not get the SIP URI functionality to work because the Contacts list phone numbers do not support SIP URI syntax, and there’s no way to manually enter or cut-and-paste a dial string from an email address in the Contacts list. While the polish of the application was not quite up to the Acrobits Softphone, the call quality was uniformly excellent with the SIP URI limitation that we’ve noted.

Media5-fone. Our final softphone in today’s roundup is Media5-fone from Media5 Corporation. It can be downloaded from the App Store for $4.99. While the application is exclusively a SIP phone, it does have preconfigured setups for dozens of providers in the event your requirements extend beyond the Asterisk universe. Unfortunately, there is no STUN support in the current version which makes it unsuitable for use with Asterisk implementations that sit behind NAT-based routers. Multiple SIP connections are supported as are second call, call waiting, and call toggle. In the current version, both SIP over WiFi and 3G are supported using iLBC, G.711, Enhanced G.711, G.722, and iSAC codecs. SIP Info, RFC 2833, and RTP Inband DTMF methods are configurable for each SIP account. Dialing prefixes are flexible and the phone has language support for English, Arabic, French, German, Italian and Spanish which facilitates international use. The phone also includes a nice implementation of visual voicemail; however, the SIP password and voicemail password would have to be the same to function properly with Asterisk. Automatic gain control and echo cancellation also are supported. With the addition of STUN and SIP URI support, Media5-fone would be a worthy competitor.

Update: CounterPath’s Bria. As luck would have it, CounterPath released their new Bria softphone for the iPhone today. It also is iPod Touch and iPad-compatible and supports both WiFi and 3G. The softphone is available at an introductory price of $3.99 in the App Store. It’s the best bargain in the softphone market. G.729 support can be added for an additional $8.99. G.722 wideband support reportedly is coming in August. You may recall CounterPath’s terrific and free X-Lite offerings for Windows, Macs, and Linux. They’ve been one of our favorite developers ever since, and we are actually serving as a beta tester for their next release. As usual, the Bria interface offers what is hands-down the best UI in the business. The voice quality of the calls is impeccable. Our only criticism is that out-of-the-box, Bria doesn’t work for placing outbound calls with Asterisk. Registration of credentials works fine, inbound calling works great, but outbound calls to either an extension, a phone number in the Address Book, or a SIP URI all just hang with no error message or notation in the log. Only after tracing down an obscure link on their web site did we discover the problem. It turns out that one simple change of a single default setting gets things working as they should. To make the change to support Asterisk, click Settings, Advanced Settings, Network Traversal Strategy, User Specified. Then change ICE:ON to ICE:OFF. Click the Advanced button, and then Apply Changes. Aside from this one default configuration glitch, the Bria softphone would be our Editor’s Choice. We highly recommend you make your purchase while the softphone still is available at the introductory price. For an excellent review, see Alec Saunder’s Blog today.



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. FQDN = Fully-Qualified Domain Name []

The Incredible PBX: Adding Remotes, Preserving Security

Unlike most Asterisk®-based PBXs which are insecure as installed and leave it to you to implement sufficient safeguards to preserve the integrity of your system, the Incredible PBX is delivered with rock-solid, air-tight security already in place. Because it is designed to operate behind a hardware- based firewall, what you'll be doing when you want to add functionality with the Incredible PBX is loosening security rather than tightening it. The trick, of course, is to do it in a way that doesn't compromise the overall integrity of your system. As delivered, the Incredible PBX relies upon four layers of network security: a hardware-based firewall of your choice1, a preconfigured IPtables software-based Linux firewall, preconfigured Fail2Ban to monitor your logs for suspicious activity and to block specific IP addresses when abuse is detected, and random passwords for all extensions and DISA connections.

If you installed the Incredible PBX using SIPgate as the intermediate provider with Google Voice, then your hardware-based firewall should have no ports opened and forwarded to your server. If you used IPkall, then only UDP 4569 has been opened and forwarded to your server. And the Incredible PBX IPtables setup for IAX restricts access to just a few IP addresses to support IPkall.

There are obviously situations in which you will want or need additional connectivity. The most likely one involves activation of SIP telephones at remote locations, such as a branch office, or Grandma's house or a relative in college. The other obvious use is with cellphones and PDAs that support SIP clients such as Android phones, iPhones, and iPads.2

What we'd recommend you not do is open the SIP floodgate to your PBX by providing unrestricted inbound SIP access, but we'll show you how if you really want or need this functionality. As desirable as this can be, it is accompanied by an array of security issues that really are not worth the risks unless you know what you're doing and you're willing to stay on top of security updates and keep your system patched.

Let's first tackle how to provide limited inbound SIP functionality without selling the farm. If the remote site has a fixed IP address, the procedure to allow remote access to your server is fairly straight-forward: just map the SIP ports on the hardware-based firewall to your server (UDP 5000:5082 and UDP 10000:20000) and then restrict SIP access using IPtables to the remote IP address as well as the subnet of your private LAN. You can decipher your private subnet by running status. If your server's IP address is 192.168.0.123, then your private subnet would be 192.168.0.0. The IPtables firewall settings are stored in /etc/sysconfig/iptables. Edit that file and find the line that looks like this:

-A INPUT -p udp -m udp --dport 5000:5082 -j ACCEPT

Delete or comment out this entry with a leading # and insert new entries that look like the following using the public IP address(es) you wish to add plus the private subnet:

-A INPUT -p udp -m udp -s 141.146.20.10 --dport 5000:5082 -j ACCEPT
-A INPUT -p udp -m udp -s 141.146.20.11 --dport 5000:5082 -j ACCEPT
-A INPUT -p udp -m udp -s 192.168.0.0/255.255.0.0 --dport 5000:5082 -j ACCEPT


After making the changes, save the file: Ctrl-X, Y, then Enter. Then restart IPtables: service iptables restart.

Unfortunately, in many situations, the remote phone or cellphone uses an Internet connection with a dynamic IP address. So we don't know the actual IP address that will be assigned. There are a number of solutions to this problem, and we'll rank them in our order of preference. First, spend the $200 and install another Incredible PBX at the remote site. Then the two servers can be linked with IAX connections between the servers making connectivity between the systems totally transparent. Second, install VPN routers at both sites and use a private IP address to establish connectivity with the host system. In this situation, you will have the equivalent of a fixed IP address for the remote device which makes it the equivalent of the fixed IP address solution above. Third, install OpenVPN on your host system and purchase a SIP phone or cellphone that supports VPN connectivity. Most of the high-end SNOM SIP phones have this functionality as do Android phones, iPhones, and iPads. With this setup you also have the equivalent of a fixed IP address, even though it's on a virtual private network. Fourth, talk to the Internet service provider at your remote site and obtain the range of IP addresses that DHCP hands out to those using their services... or just make an educated guess.3

BEFORE Activating Full SIP Connectivity. OK. We hear you. You travel for a living, and the IP address of your cellphone changes hourly, all day, every day of the year. Then, yes, you are a candidate for a full-fledged Asterisk server with unlimited SIP access. Before covering how, let's review what responsibilities go with running such a server. Bear in mind that one compromised SIP password or otherwise vulnerable application on your server (including Asterisk, FreePBX, SSH, and hundreds of others), and you may very well be the proud owner of a whopping phone bill. And we're not talking hundreds of dollars. It could very well be tens of thousands of dollars. And it doesn't take weeks or months. It could be a few hours.

Baker's Dozen SIP Security Checklist

1. Keep Asterisk Current & Patched
2. Keep FreePBX Current & Patched
3. Make Frequent Backups
4. Visit PBX in a Flash Forums Regularly
5. Subscribe to PBX in a Flash RSS Feed
6. Secure Alphanumeric Extension Passwords
7. Secure DISA, VMail, Root, FreePBX Passwords
8. Lock Down Extensions with Deny/Permit
9. Turn Off Recurring Payments with Providers
10. Restrict Trunks to 1-2 Simultaneous Calls
11. Tighten Dialplan by Removing Wildcards
12. Eliminate Intl & Toll Calls With Providers
13. Check FreePBX Call Logs Daily for Abuse

Baker's Dozen SIP Security Checklist. Before opening the floodgates, let's review what you need to do. First, you'll need to run the very latest version of Asterisk... all the time. This means you need to monitor asterisk.org, and keep your system up to date by running update-scripts, update-source, and update-fixes regularly. The default version of Asterisk on current PBX in a Flash and Incredible PBX builds is extremely reliable, but it contains SIP and IAX vulnerabilities which should not be exposed directly to the Internet! Second, you need to run the latest version of FreePBX and apply all patches as they are released. Third, you need to make frequent backups appreciating that sometimes the Asterisk and FreePBX developers get things horribly wrong, and stuff that used to work no longer does. Believe it or not, they're human! Fourth, you need to visit the PBX in a Flash Forums daily and keep abreast of security alerts and bug reports on CentOS, Asterisk, and FreePBX. Fifth, you need to subscribe to the PBX in a Flash RSS Feed which provides regular security alerts when there are reported problems. Sixth, you need to really secure your extension passwords with very long, complex alphanumeric passwords. Ditto for your root and FreePBX passwords! Seventh, for DISA and voicemail, these passwords need to be numeric, complex, and extra long. Eighth, you need to lock down as many of your extensions as possible with deny/permit settings to restrict the IP addresses of those extensions. If you only have one or two remote SIP extensions with dynamic IP addresses, then all of the rest should have deny/permit entries! Ninth, turn off recurring payments with all of your telephony providers and keep minimal funds available in all of your accounts. This means you'll have to monitor these accounts to make sure they are not deactivated for lack of funds. Tenth, restrict all of your trunks to one or at most two simultaneous calls to reduce your call exposure in the event someone breaks into your system. Eleventh, tighten up your Trunk Dial Rules and eliminate any entries that would permit calls to anywhere in the world! If you don't regularly make international calls, there's absolutely no reason to have such entries in your dialplan. If you still have Ma Bell PSTN lines, this is even more important. In fact, consider eliminating long distance access to all of these trunks. Twelfth, where possible, configure your provider accounts to eliminate international and toll calls of all varieties. Finally, check your FreePBX call log every day to make certain no one is making calls on your nickel.

If you are unwilling or unable to perform these Baker's Dozen steps while continuing to monitor the sites provided and recheck your setup regularly (at least every week), don't activate unrestricted SIP access to your server.

Other Options. Consider using an intermediate provider such as voip.ms to provide SIP URI access to your server. Keep in mind that having a registered connection between your server and a VoIP provider alleviates the need to punch a hole in your firewall. So the idea here is to sign up for an inexpensive voip.ms account and set up the trunk connection with your server as either an IAX or SIP account with an always-on connection. Then voip.ms gives you the option of activating a SIP URI as part of a subaccount setup. Just create an internal extension on their server, and this will generate a SIP URI, e.g. 123456666@sip.us4.voip.ms where 12345 is your voip.ms account number and 6666 is the internal extension you created. This lets you connect directly with your server through the SIP URI from anywhere once you map this subaccount to an extension or IVR on your server. The charge for SIP URI calls is only $.001 per minute. The last step is to use this SIP URI in your remote SIP phone to connect back to your server. You can take advantage of the full range of Asterisk functions once these calls reach your server including IVRs and DISA. The approach is not only simple to implement, but it's also safe and economical.

There are some other alternatives as well. Use something like Google Voice or Ooma to redirect calls to your cellphone when you're traveling. Or buy an Ooma for Grandma or a MagicJack for Joe College. These options also are safe, secure, and quite inexpensive.

Just Released: Remote Phone Meets Travelin' Man

Activating Inbound SIP on Your Server. If you still are hell-bent on opening SIP access to your server, the Incredible PBX already is preconfigured to support it. Just map the SIP ports on your hardware- based firewall to your server (UDP 5000:5082 and UDP 10000:20000). Once activated, anyone can reach you through the following SIP URI using the actual public IP address of your server: mothership@12.34.56.78. You also can adjust the e164 trunk in FreePBX to route inbound calls to any destination desired. Then register your phone number on e164.org and others can call you at no cost using your traditional phone number. Enjoy!


The Incredible PBX: Basic Installation Guide

Adding Skype to The Incredible PBX

Adding Incredible Backup... and Restore to The Incredible PBX

Adding Multiple Google Voice Trunks to The Incredible PBX

Remote Phone Meets Travelin' Man with The Incredible PBX

Continue reading Basic Installation Guide, Part II.

Continue reading Basic Installation Guide, Part III.

Continue reading Basic Installation Guide, Part IV.

Support Issues. With any application as sophisticated as this one, you're bound to have questions. Blog comments are a terrible place to handle support issues although we welcome general comments about our articles and software. If you have particular support issues, we encourage you to get actively involved in the PBX in a Flash Forums. It's the best Asterisk tech support site in the business, and it's all free! We maintain a thread with the latest Patches and Bug Fixes for Incredible PBX. Please have a look. Unlike some forums, ours is extremely friendly and is supported by literally hundreds of Asterisk gurus and thousands of ordinary users just like you. So you won't have to wait long for an answer to your questions.



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. We, of course, continue to recommend a dLink Router/Firewall. Low Cost: $35 WBR-2310  Better: DIR-825  Best: DGL-4500 []
  2. We recommend the free SipAgent client for Android devices and the commercial Acrobits Softphone for iPods and iPads. []
  3. Adding an entry like the following would dramatically reduce the likelihood of a SIP attack: -A INPUT -p udp -m udp -s 141.146.0.0/255.255.0.0 --dport 5000:5082 -j ACCEPT []

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…

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…


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

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

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

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

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

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


Some Recent Nerd Vittles Articles of Interest…

Introducing the Cisco 7970 WonderPhone … Or Is It?

Cisco 7970

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

Nerd Vittles Demo Hot Line. You now can take a number of Nerd Vittles projects for a test drive... by phone! The current demos include NewsClips for Asterisk (latest news headlines in dozens of categories), MailCall for Asterisk with password 1111 (retrieve your email by phone), and Nerd Vittles Weather Forecasts by U.S. Airport Code. Just call our number (shown in the left margin) and take any or all of them for a spin. The sound quality may not be perfect due to performance limitations of our ancient Intel 386 demo machine. But the price is right.

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

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

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

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

ISP-In-A-Box: The $500 Mac mini (Skype = Free Phone Service)

No Mac mini would be complete without free local and long distance telephone service. Thanks to Skype, your prayers have been answered. You can call anyone in the world who also uses Skype and talk as long and as often as you like for free! You can also place conference calls to up to four other Skype users at a time anywhere in the world at no cost. And you can call plain old telephones (POTS) by dialing an existing area code (or country code) and phone number for about 2¢ a minute to most of your favorite places. There are no hidden charges! The complete rate table is here. For 30 euros or about $40 a year, Skype will provide you a real POTS phone number in the area code of your choice with free voice mail and free incoming calls. Then all your friends can call and irritate you whether they use Skype or not.

The key ingredient for Skype is you have to have some type of computer, and it has to be running the Skype software to place and receive calls. There are free versions of the Skype software to support Windows PCs, Macs, Linux, and Pocket PCs. You’ll also need a way to talk and listen on your phone calls. You can use either a microphone and speaker, or a Skype-compatible USB phone, or a Skype-compatible terminal adapter/router, or a Bluetooth or USB headset. Suffice it say, a new Skype-compatible phone solution is announced every week so do a little Googling if you don’t find what you want below.

Skype Alternatives for the Mac. Since the Mac mini doesn’t include a microphone or line input jack, you’ll need to add a microphone and a USB audio input device such as the iMic if you want to use the microphone/speaker approach on the mini. Hint: The Mac mini’s speaker leaves a lot to be desired. The better and cheapest solution on the Mac platform for U.S. users is the Plantronics Audio 45 USB Stereo Headset for about $30. The under $100 wireless solution in the U.S. is to purchase the Plantronics M3000 Bluetooth headset and the dLink DBT-120 USB Bluetooth adapter for your Mac, if it didn’t come with Bluetooth. Once you get the dLink adapter or, if you have Apple’s internal adapter, you’ll need to upgrade the firmware in order to use the headset. Note that this only works for the Mac’s bluetooth adapter and more recent dLink adapters! Just download the 1.2 Bluetooth Firmware here and install it. We’ve had mixed results with the bluetooth headset. If Skype were my only phone service, I’d recommend the USB headset on the Mac platform. [Footnote: Tiger totally resolves the Skype bluetooth headset problems.]

Skype Alternatives for Windows Users. For Windows users, there is the IPMate S90, a $50 router that allows you to use your regular telephones with your PC and Skype. While the S90 is a Windows-only solution, if you have an old clunker Windows machine sitting around, here’s a way to put it to good use. Other Windows-only solutions are the rapidBox and the VTA1000 Skype and SIP Gateway for $59.

European Alternatives. For our European friends, the easiest solution is the cordless DU@LPhone. In addition, the $60 USB Cyberphone K is available directly from Skype; however, the dialing keypad does not yet work with Macs. [See the comments for another great European alternative.]

USB Phone Alternative. Finally, an untested, but promising, USB phone which it is claimed works on both the Mac and Windows platforms for about $60 including shipping is the Dontronics USB phone made in Australia. Let’s us hear from you if you get one.

Installing and Using Skype. Skype is one of the easiest software packages you’ll ever install. Just download the latest version from here for your chosen operating system and follow the prompts. You’ll need to set up a Skype username and password as part of the installation process and, if you want to be able to call regular telephones, you’ll need to put a little money in your SkypeOut account on the Skype web site. Configuration is equally painless. Run the application and choose Skype->Preferences. Review the settings and make any adjustments desired. Most of the defaults are fine. Under the Audio tab, select your input and output devices, and you’re ready to make your first call. If you’re calling another Skype user, just enter their username and click Call. If you’re calling a POTS number in the U.S., enter +1 and then the area code and number and click Call. Test your Skype service by calling echo123.

Once everything appears to be working, feel free to try out your system by giving us a call if you speak English. Our Skype account name is wardmundy, or you can reach us through our Washington, D.C. phone number: +1-202-470-1646. Don’t forget the plus sign. Skype is picky about it. If the voice mail system answers (that also is available through Skype), leave a message together with your name, where you’re calling from with the time zone and the best time to return your call, and, of course, your Skype name. We return our calls, but it may take us a bit of time depending upon nerd volume. Final note: This is not a tech support service. If you need technical assistance, call a friend or former friend. You can’t afford us. Enjoy!

For another approach to free phone service, read our latest article on SIP telephony options.


Some Recent Nerd Vittles Articles of Interest…