I'm going out on a limb with this column by focusing on a technology that's been over-hyped for years—Voice over IP (VoIP). Nevertheless, after using VoIP for the past 3 months with great success, I believe it might be one of the most important technologies to emerge for mobile devices.

Before we begin, let me provide a word of caution: VoIP is illegal in some countries, typically those that have a national telecommunications monopoly. In the United States, VoIP is perfectly legal, although telecom companies don't care for it. If you have any doubts about the law in your area, consult an attorney before experimenting with this technology.

Conceptually, VoIP is easy to understand: The sender speaks into a microphone that connects to a PC sound card. The microphone detects sound waves from the sender's voice and converts them into analog signals, which the sound card and, in turn, the PC digitize. A coder-decoder (codec) compresses the resulting digital signal into packet data that travels over the Internet. At the receiver's PC, the process is reversed to play back the sounds originally made by the sender. Conducting this process simultaneously in both directions is known as a full-duplex connection. You can even use this technology over traditional telephone lines—more on that in a minute.

When you consider that Internet packets travel over connections with much more bandwidth than a standard analog telephone line, the VoIP process should work. Nevertheless, a significant technical challenge exists: Conventional telephone transmission over the Public Switched Telephone Network (PSTN) occurs as a continuous stream of data, regardless of whether it's in analog or digital form. By contrast, packet data transmitted over the Internet doesn't necessarily arrive continuously or in order—packets can even be lost completely. Dealing with the potential for discontinuous, out-of-order, and missing packets makes writing codec software difficult. Nonetheless, it can and has been done.

So why use VoIP? Most Windows-based PCs have Microsoft NetMeeting installed—typically under Start/Programs/Accessories/Communications/NetMeeting. If you run NetMeeting on two PCs on your LAN, the first PC can call the second PC using the second PC's IP address. With headsets on both PCs, the audio quality is excellent. So why bother talking over the computer when there's probably a telephone right next to each PC? Suppose the two PCs are in offices at either end of the country. Pick up the telephone, and you'll be making a long-distance call, typically at business rates of 10 to 20 cents per minute or higher. A VoIP call, by contrast, is free.

VoIP Gateways
Making computer-to-computer calls is interesting, but to be really useful, you need to be able to call conventional telephones. To do so, you need to use a VoIP gateway, which is typically a specialized router that incorporates both IP and PSTN functionality. VoIP gateways typically use either the International Telecommunications Union (ITU) H.323 protocol (http://www.openh323.org) or the Internet Engineering Task Force (IETF) Session Initiation Protocol (SIP—http://www1.cs.columbia.edu/sip). Both protocols let you switch between real-time multimedia data streams and digital packet data.

For branch offices and small office/home office (SOHO) users like me, public VoIP gateways are available. For the past 3 months I've been using deltathree's iConnectHere gateway. This gateway isn't free, but at less than 3 cents per minute, it's considerably cheaper than conventional long distance. In addition, the iConnectHere service lets me make long-distance calls from a conventional telephone by dialing an access number and entering an account number and PIN. As a result, I can use the same account I use for in-office VoIP calls to make calls while I'm traveling—at extremely competitive rates.

deltathree provides PCPhone software, which Figure 1, page 24, shows, for use with its gateway. PCPhone runs on Windows-based desktop, notebook, and Tablet PCs. The software lets you use an IP address to call another computer, the same way you'd use NetMeeting to contact someone (PCPhone can even interoperate with NetMeeting). PCPhone can also call conventional PSTN phone numbers—the application opens a SIP session with the gateway, which in turn completes the call.

Wireless VoIP
Now that you've got a taste of what VoIP can do, you might be wondering why this discussion is relevant to mobile and wireless users. The answer is that the application and protocols work equally well over wired or wireless networks. Using PCPhone, I've been able to use my home office 802.11b wireless network to make calls from a Tablet PC. You can even make a VoIP call from a Pocket PC, using SJ Labs' SJphone, which Figure 2 shows and which is a Windows CE program that functions as a client for both SIP and H.323 connections.

For several years now, we've heard predictions about convergence devices—those that merge the functions of a cell phone and PDA. Such devices exist, but they're expensive, typically tied to one particular cellular provider, and often have limited PDA functionality. With VoIP applications, you can turn any Pocket PC, Tablet PC, or notebook PC with audio hardware into a convergence device, as long as you remain within the range of an 802.11b Access Point (AP).

VoIP Performance
Not every Internet connection works with VoIP—in particular, firewalls and gateways that use Network Address Translation (NAT) can be problematic. Depending on the protocol you use, ports on the firewall must be open to permit the creation of VoIP sessions. PCPhone provides a Network Settings test, which can help determine whether a particular Internet connection will work; I ran the test on my home office wireless LAN (WLAN), which uses NAT, and the connection works just fine. As of this writing, SJphone doesn't support NAT, but the company is promising to support NAT traversal in future releases.

Network performance can also be a concern. Before you run any VoIP application, you should perform a network response test (e.g., Ping) against the IP address of the PSTN gateway (or a typical target PC for a PC-to-PC connection). Any response that takes longer than 250 milliseconds (ms) round-trip will probably produce unacceptable results.

Corporate and enterprise IT professionals will be concerned about bandwidth requirements and scalability. According to Windows XP's built-in network monitor, VoIP calls use no more than 1 percent of typical 802.11b bandwidth (about 100Kbps), so one 802.11b wireless AP can support as many as 100 simultaneous VoIP calls. Of course, such high call volume will negatively affect network response for other applications. However, assuming a more reasonable number of callers, the performance effect should be negligible.

In addition to sending VoIP calls through a VoIP gateway, you can also receive incoming PSTN calls on a computer through a VoIP gateway, which eliminates the need for a telephone on a user's desk. However, this configuration is beyond the scope of my personal experience and might require a static IP address. Personally, I've found that using PCPhone for outgoing calls frees up my analog telephone to receive incoming calls—in effect, giving me two phone lines (the DSL line I use for Internet access carries the outgoing calls).

I've heard horror stories from several users of earlier VoIP systems, which typically delivered poor call quality with severe echoes and long delays. I haven't experienced these problems with deltathree's service or in my own experimentation with VoIP applications on the local network segment, but as the saying goes, your mileage may vary.

VoIP Savings
I haven't been able to completely wean myself from the habit of reaching for my telephone handset. Nevertheless, during the past 3 months, I've been able to cut my long distance bill in half. I expect to lower my bill even further as I become increasingly comfortable using VoIP instead of a traditional phone.

Enterprise users might be able to achieve even greater savings. Many corporate calls take place between employees in different offices. Almost invariably, these employees are sitting at desks in front of PCs. As a result, these calls can be made from computer to computer, at essentially no cost beyond the investment the company has already made to provide Internet access.

I've experimented with using VoIP to make calls while away from my office. I've had great success testing VoIP on a neighbor's 802.11b home network, and it should also work at most wireless hotspots, such as those provided by T-Mobile at most US Starbucks locations.

The Future of VoIP
I'm not alone in seeing VoIP (particularly when combined with wireless networking) as a truly revolutionary technology. Many hardware and software vendors are working on methods to include VoIP capabilities in their products. I recently learned that ViewSonic plans to include VoIP software with its V1100 Tablet PC.

One tip I can offer: All voice applications (including VoIP and speech recognition) work better with a headset than with the low-quality microphone and speakers built into most notebook and Tablet PCs. Voice applications, including both VoIP and speech recognition, are the first radically new and truly useful (not to mention money-saving) applications I've seen in many years. These technologies really work!