BUY THIS BOOK
Add to Cart

Print Book $29.95


Add to Cart

PDF $23.99

Safari Books Online

What is this?

Add to UK Cart

Print Book £20.99

What is this?

Looking to Reprint or License this content?


VoIP Hacks
VoIP Hacks Tips & Tools for Internet Telephony

By Theodore Wallingford
Book Price: $29.95 USD
£20.99 GBP
PDF Price: $23.99

Cover | Table of Contents | Colophon


Table of Contents

Chapter 1: Broadband VoIP Services
Voice over IP (or VoIP for short) is a technology that allows Internet Protocol (IP) networks like the Internet to be used to enable voice communication, similar in some ways to a telephone. Some folks call VoIP IP telephony—and the technology comes in many forms, from desktop communication software to automated message recording and fax integration tools.
But in its simplest form, IP telephony enables you to place phone calls over the Internet rather than over a traditional phone line. This is a pretty big deal, since no long-distance charges or hefty federal access taxes are levied on Internet-based phone calls. Plus, IP telephony lets you integrate your desktop PC, your desk phone, and your cell phone in ways never before imagined. I'm anxious to share the details with you in this book.
In the tradition of O'Reilly's Hacks book series, you'll be using short hacks, like the basic ones in this chapter, to learn about Voice over IP and computer-based telephony. I, and a number of my peers in the telecommunications industry, have contributed some of the most useful, most educational, and coolest projects to VoIP Hacks. Hopefully, beginning right here in this chapter, you'll be saying, "I didn't know you could do that with VoIP!"
The Golden Age of broadband began with catchphrases like "surf the Web five times faster" and with promises of ultra-fast music downloads. But in the late 1990s, few would have predicted that VoIP-based telephony would be one of the biggest beneficiaries of once-hyped broadband technologies like cable Internet and DSL. Sure, web surfing at "the speed of light" and downloading music are great—but can they save you money? Legally?
VoIP telephony can—and does. For roughly half the cost of a traditional phone line, you can subscribe to a VoIP telephony service provider rather than to a phone company. You'll get a standard phone number that people from the non-VoIP world can use to call you—and you won't have to pay $5 a month extra for voicemail and caller ID.
This chapter has a handful of hacks that will show you how to maximize your broadband voice service. So, if you subscribe to a VoIP service provider, you're ready to hack. If not, what are you waiting for? "Get Connected"
Additional content appearing in this section has been removed.
Purchase this book now or read it online at Safari to get the whole thing!
Hacks 1–7: Introduction
Voice over IP (or VoIP for short) is a technology that allows Internet Protocol (IP) networks like the Internet to be used to enable voice communication, similar in some ways to a telephone. Some folks call VoIP IP telephony—and the technology comes in many forms, from desktop communication software to automated message recording and fax integration tools.
But in its simplest form, IP telephony enables you to place phone calls over the Internet rather than over a traditional phone line. This is a pretty big deal, since no long-distance charges or hefty federal access taxes are levied on Internet-based phone calls. Plus, IP telephony lets you integrate your desktop PC, your desk phone, and your cell phone in ways never before imagined. I'm anxious to share the details with you in this book.
In the tradition of O'Reilly's Hacks book series, you'll be using short hacks, like the basic ones in this chapter, to learn about Voice over IP and computer-based telephony. I, and a number of my peers in the telecommunications industry, have contributed some of the most useful, most educational, and coolest projects to VoIP Hacks. Hopefully, beginning right here in this chapter, you'll be saying, "I didn't know you could do that with VoIP!"
Additional content appearing in this section has been removed.
Purchase this book now or read it online at Safari to get the whole thing!
VoIP-Based Phone Service Providers
The Golden Age of broadband began with catchphrases like "surf the Web five times faster" and with promises of ultra-fast music downloads. But in the late 1990s, few would have predicted that VoIP-based telephony would be one of the biggest beneficiaries of once-hyped broadband technologies like cable Internet and DSL. Sure, web surfing at "the speed of light" and downloading music are great—but can they save you money? Legally?
VoIP telephony can—and does. For roughly half the cost of a traditional phone line, you can subscribe to a VoIP telephony service provider rather than to a phone company. You'll get a standard phone number that people from the non-VoIP world can use to call you—and you won't have to pay $5 a month extra for voicemail and caller ID.
This chapter has a handful of hacks that will show you how to maximize your broadband voice service. So, if you subscribe to a VoIP service provider, you're ready to hack. If not, what are you waiting for? "Get Connected" [Hack #1] describes some VoIP-based phone providers that you should evaluate as you prepare to dive into VoIP Hacks.
Additional content appearing in this section has been removed.
Purchase this book now or read it online at Safari to get the whole thing!
Get Connected
If you've got broadband, you're already using the Internet for data communication. Wouldn't it be great to use it for telephone calls, too?
Internet telephony service providers (TSPs) get your voice onto the Net, allow you to make and receive phone calls just like traditional phone companies, and tend to shrink your phone bill to boot. Some of these service providers give you a basic, free service that enables you to call other users over the Internet. Others allow you to make toll-free calls free of charge, but charge for local and long-distance calls.
TSPs that allow you to call traditional telephone service subscribers do so by connecting your standard home phone to the Net. Some TSPs also let you use a special piece of software called a softphone to place calls with your PC. To get connected to a TSP, you need a broadband Internet router configured as a DHCP server, a spare Ethernet port either on your router or on a nearby switch, and a good old-fashioned analog telephone.
TSPs are data centers with telephony servers that route calls to and from your home network or broadband VoIP device. The real-time packets that carry each call's sound over your broadband link use IP and User Datagram Protocol (UDP) protocols, and the TSP communicates key moments in the call—like dialing, connecting, and hanging up—using signaling protocols that are similar in some ways to the ones your browser uses to surf the Web.
The VoIP device that most TSPs provide to connect your home phone is known as an analog telephone adapter, or ATA. These little boxes allow you to connect a residential-style analog phone to your broadband Internet connection, and they are normally supplied by your VoIP TSP when you sign up for their service.
In addition to an ATA, some TSPs permit you to place VoIP calls using the following:
An IP phone
These telephones connect directly to an Ethernet network using a patch cable or wireless link. They have an IP address as a PC would, and they communicate with the VoIP TSP's data center over your Internet broadband link.
A softphone
Additional content appearing in this section has been removed.
Purchase this book now or read it online at Safari to get the whole thing!
Use Pure VoIP Dialing with Your TSP
By using dialing shortcuts, you can keep your phone calls on the Internet and avoid extra charges.
If you're able to make a phone call to a regular phone company subscriber using your new VoIP service [Hack #1] , you're ready to learn some cool TSP tricks.
Your VoIP phone bill is probably lower than that of your friends who still use traditional calling plans. But a lower phone bill isn't the only luxury that comes with converting your service to VoIP. Because your call uses the Internet rather than the public telephone network to route your call, you have access to several cool dialing shortcuts when you call subscribers of other VoIP services. When an IP network alone provides the pathway between caller and receiver, it's said to be pure (or native) Voice over IP.
This can actually save you money, especially if you make a lot of international calls. If you're a Free World Dialup (FWD) subscriber and you talk frequently with your buddy in Mexico, who uses Vonage, using dialing shortcuts will keep your calls pure VoIP and allow you to circumvent any related long-distance calling charges that would be assessed if your calls were to traverse the Public Switched Telephone Network (PSTN).
To make pure VoIP calls using your TSP's service, you have to be aware of the dialing shortcuts your TSP provides to route calls to other TSP networks using the Internet—instead of the PSTN—as the carrier network. Most VoIP TSPs will assume your call is destined for the PSTN—just because it's an 11-digit phone number. So these shortcuts tell the TSP that you don't want to route your call to the PSTN. Instead, you want to route it over the Internet to another VoIP TSP.
Why do this? If you have an unlimited calling plan, it won't really save you any money. The call probably won't sound any better either. But this technique does conserve your TSP's public telephone network capacity when you use pure VoIP rather than VoIP-to-PSTN calling. If your VoIP TSP bills you by the minute, it might not charge for calls that don't use its PSTN capacity. Plus, it's just cool to let the Internet replace the Bell System for your phone calls. Here's how.
Additional content appearing in this section has been removed.
Purchase this book now or read it online at Safari to get the whole thing!
Wire Your House Phones for VoIP
You can use your home phone wiring to connect all your home phones to your VoIP service.
If you're happy with your VoIP service, you might want to consider replacing your existing land-line telephone service with that of your new VoIP TSP. This means you must provide a dial tone to all of your analog phones using the ATA instead of a connection from the phone company. Your problem is that most ATAs have only a single analog phone connector, limiting you to just one phone. Radio Shack sells two-wire phone splitters that you can use to connect two analog phones to the same jack—such as the one on your ATA—but this isn't an ideal solution. Who wants telephone patch cables snaking across the floor, anyway?
Emergency 911 service is required on all VoIP lines sold in the U. S. But since VoIP TSPs handle emergency call routing differently than the old Bell system, it's best to check with your TSP to determine how they handle 911 calls. This way, you'll know what to expect should you need to dial 911.
Fortunately, you already have all the wiring you need throughout your house to share a single VoIP provider's service with multiple analog phones. The phone wiring in most homes is a two-wire or four-wire cable that runs from the telephone company's point of entry, called the demarc, to various rooms in the house. In these rooms, a standard modular phone jack provides a place to connect a phone using an RJ11-equipped telephone patch cable. Modular jacks can support up to two phone lines, since analog residential telephony requires only two wires per line. The vast majority of telephone company subscribers use only a single phone line, though.
The analog wiring in the home provides a single-loop parallel circuit, which means that you can piggyback modular jacks off each other. If you need to connect a phone in a new room, you just locate the nearest modular jack and run the wiring to it, instead of running the wiring from the new room all the way to the demarc. In the same way, you can connect the ATA to any modular jack in the house, and all of the analog phones connected to the other jacks will be able to use the service provided through the ATA.
Additional content appearing in this section has been removed.
Purchase this book now or read it online at Safari to get the whole thing!
Use a Softphone with a VoIP TSP
Get started with prevalent and freely available SIP softphones.
Depending upon which TSP you choose for your broadband VoIP service, your service agreement might limit you to using only analog phones connected to an ATA. However, if you have a lenient Bring Your Own Device (BYOD) service agreement, your TSP will allow you to use your choice of IP telephony access devices. This might mean you can use an IP phone, a PC softphone, an ATA of your choosing, or even your own telephony server (Chapter 4 is dedicated to this proposition) with the TSP's service. This hack will show you how to use Counterpath's X-Lite softphone with your TSP. But first, a little background on telephone networks, both analog and VoIP.
When you subscribe to broadband VoIP service, what you're really doing is buying a single pathway through the TSP's network. Likewise, when you subscribe to traditional phone service, you're really just leasing a telephone line. With that line, you can use cordless phones, corded analog phones, answering machines, fax machines, modems, and all kinds of other access devices. These different analog devices all use the same electrical access signaling to communicate with the phone company. You could think of this analog protocol as even more primitive than the Morse code. It's simple, but it's what allows analog phone devices to place and receive calls.
If legacy telephony devices are more primitive than the Morse code, Session Initiation Protocol (SIP), the predominant VoIP access signaling protocol, is light-years ahead of both. SIP is a suite of media-signaling software specs that define how streaming media devices (and applications) should interact.
The most significant of modern streaming media apps is IP telephony, of course, which brings me to my point.
Unlike old-fashioned telephone signaling, which is Plug and Play (PnP), using a softphone is a bit more involved. To understand how a softphone works (or an ATA or IP phone, for that matter), you must have a simple grasp of SIP. Although SIP is a sprawling specification with dozens of proposed spinoffs and major revisions, you need to know only a few things to get by with a SIP softphone.
Additional content appearing in this section has been removed.
Purchase this book now or read it online at Safari to get the whole thing!
Prioritize Packets to Improve Quality
Voice traffic competes for available bandwidth on your broadband connection. If there is not enough bandwidth, packets get dropped.
VoIP media streams require a constant, uninterrupted data flow. This data flow is composed of UDP packets that each carry between 10 and 30 milliseconds of sound information. Ideally, each packet in a media stream is evenly spaced and of the same size. In a perfect world, a packet never arrives out of sequence or gets dropped. Voice over IP media packets are framed in a highly precise, performance-sensitive way, described in more detail in Switching to VoIP (O'Reilly). Dropped packets and packet jitter (packets arriving out of order) cause problems—big problems—for an ongoing call. These problems can cause the voices on the call to sound robotic, to cut in and out, or to go silent altogether.
Most of the packet-drop problems you'll encounter while VoIPing will be the fault of your bandwidth-limited ISP connection—the link from the ISP's network to your broadband router. If you're downloading songs to your iPod, surfing the O'Reilly Network, and patching your World of Warcraft client all at once, you won't have enough bandwidth left over to support a VoIP call, but there's a way to curb all those applications' thirst for bandwidth so that you can still VoIP successfully. Read on.
To maximize call quality, the network connection carrying VoIP media packets must be as reliable and consistent as possible. The data link to the ISP should treat all voice media traffic with high priority. That is, a VoIP packet gets handled first, as it is more important than another packet—say, for your BitTorrent upload. If the data link is swamped and is out of capacity to carry any more data, less important packets are discarded before more important ones. The net result—for high-priority services like voice—is better Quality of Service, or QoS. Several standards exist to ensure that QoS can occur in a broadband VoIP setup, chief among them: Type of Service (ToS) and 802.1p.
If your broadband router is relatively new, it might support these standards—so enabling packet prioritization is just a matter of flipping some configuration switches.
Additional content appearing in this section has been removed.
Purchase this book now or read it online at Safari to get the whole thing!
Got 911?
For a multitude of technical and political reasons, Internet TSPs have been slow to make reliable Emergency 911 dispatch dialing available for their customers. Here's how to know if you've got it.
If you recently signed up for VoIP telephone service, the likelihood of you having 911 service is low, but some TSPs do offer it. The fastest way to find out if your TSP offers it is to contact them and ask. Vonage, for instance, supports 911 call routing to most public safety jurisdictions, but you've got to activate this "feature" first. Here's a snippet from Vonage's end-user agreement:
You acknowledge and understand that 911 dialing does not function unless you have successfully activated the 911dialing (sic) feature by following the instructions from the "Dial 911" link on your dashboard, and until such later date, that such activation has been confirmed to you through a confirming email. You acknowledge and understand that you cannot dial 911 from this line unless and until you have received a confirming email.
2.5 Failure to Designate the Correct Physical Address When Activating 911 Dialing
Failure to provide the current and correct physical address and location of your Vonage equipment by following the instructions from the "Dial 911" link on your dashboard will result in any 911 communication you may make being routed to the incorrect local emergency service provider.
This is a heavy-handed contract item, but what it means is that you have to use Vonage's prescribed, email-based activation routine to use its 911 call routing. Of course, I'm not a lawyer, and I can't provide an attorney's interpretation of this agreement, so contact Vonage if you're unsure about it. Other providers might handle 911 call routing similarly, so make sure you ask before you sign up if 911 is a highly important feature.
The best way to deal with this intimidating contract is to know firsthand whether your TSP has you set up for 911 calling, or be ready for an emergency in case it doesn't. That's what you're about to do.
With a traditional phone line, the power for the line and phone comes from a central power source at the phone company's exchange switch. This means that even during isolated power outages, you can still make and receive calls—including 911 calls. With VoIP, your electric company and in-house electrical circuits provide the power. If a circuit blows or the electrical supply fails, you won't be able to make any calls.
Additional content appearing in this section has been removed.
Purchase this book now or read it online at Safari to get the whole thing!
Update Your VoIP ATA Firmware
An ATA with up-to-date firmware will have fewer problems.
"Yesterday, I made phone calls through my VoIP TSP all day long! But today, I don't even hear a dial tone when I pick up the phone!" grumbled the frustrated consumer, regretting having replaced his local telephone service with a slickly advertised VoIP service from a California company called Ownage. This was the third or fourth time his VoIP service had quit working. So he grabbed his cell phone and frantically called the Support Department at Ownage.
The tech who answered wasn't especially helpful. She listened to the customer describe his recurring problem and then told him the same thing Support had been telling him ever since the first time the dial tone disappeared: "Sir, can you reboot your analog telephony adapter by removing the power cord and then plugging the power cord back in again after a few seconds? That should take care of the problem."
"But I do that every time. Ma'am, I bought this VoIP Hacks book that taught me how to wire my ATA into my home phone wiring so that I could replace my local phone service with Voice over IP, and now I'm very frustrated because every few weeks, I pick up the phone and the dial tone is gone. I have to run downstairs and reboot my ATA before I can place any calls, and I'm a little frustrated," the exasperated customer said. "Why is this happening?"
"Well, it's actually quite simple. The ATA receives an IP address from your DHCP server, which runs on your broadband router," she explained. "And your broadband router receives an address from your Internet provider's DHCP server. That IP address can change sometimes, when your DHCP lease expires, breaking the UDP socket that connects your ATA with our network here at Ownage."
"In English, please?" the customer said.
"Well, the problem occurs because your ISP assigns you a dynamic address that periodically changes," the support tech explained. "When it changes, the ATA loses communication with our VoIP server."
"So, it's my ISP's problem?"
"No, not exactly. Most ISPs use dynamic addresses for residential broadband customers to prevent them from, say, hosting their own servers. So, they have their reasons for using dynamic addresses, and there's little we can do about it," she told him.
Additional content appearing in this section has been removed.
Purchase this book now or read it online at Safari to get the whole thing!
Chapter 2: Desktop Telephony
To take advantage of computerized telephony, you don't need a VoIP gateway, a fancy Internet Protocol (IP) phone, or an open source PBX (though those are certainly fun, hackworthy telephony goodies). Your desktop PC can be the nerve center of all your voice communications, replacing your telephone, your caller ID display, your answering machine or voicemail, and possibly even your phone bill (some VoIP services will bill you electronically).
Some pretty amazing software goodies are available to make your voice communication life a real joy. Programs like Gizmo Project and Skype let you make voice calls to buddies around the globe—for free. Some of these programs have built-in voicemail and call recording, and most are cross-platform, offering support for Mac, Windows, and Linux.
Hardware contraptions and telephony automation software bring even more exciting capabilities to the table. With a telephone-line interface for the Mac or a voice modem in a Windows PC, all you need is the right software to tie your phone completely to your desktop—but don't forget your wireless headset. VoIPing is much cooler when you aren't physically bound to your PC.
So don't delay; dig in to this grab bag of desktop telephony ideas. They're just the tip of the iceberg.
Broadband VoIP providers like Vonage don't just provide phone service. If you know where to find the features, they integrate with other applications on your desktop—and with your digital life.
When you subscribed to your amazing new VoIP telephone service, you might have missed the fact that, along with your new Internet calling, money-saving VoIP service, you also picked up some nifty desktop telephony enhancements. Most of the broadband VoIP phone service providers give you some cool extras that you'd never get with a traditional phone company—stuff like web-based account management, voicemail-to-email integration, and even softphone calling from your desktop. Did you know…?
Vonage lets you place calls to your Outlook contacts with a special piece of software, an add-in called Click-2-Call, which comes on the Vonage software CD. Install it and launch Outlook. You'll notice that your Outlook contacts now have a Click-2-Call option in their Actions menu. Clicking this option dials the contact's phone number via your Vonage analog telephone adapter (ATA) and then connects the call with your phone. Pick it up; you should hear your call ringing in the handset, waiting for your contact to answer.
Additional content appearing in this section has been removed.
Purchase this book now or read it online at Safari to get the whole thing!
Hacks 8–27: Introduction
To take advantage of computerized telephony, you don't need a VoIP gateway, a fancy Internet Protocol (IP) phone, or an open source PBX (though those are certainly fun, hackworthy telephony goodies). Your desktop PC can be the nerve center of all your voice communications, replacing your telephone, your caller ID display, your answering machine or voicemail, and possibly even your phone bill (some VoIP services will bill you electronically).
Some pretty amazing software goodies are available to make your voice communication life a real joy. Programs like Gizmo Project and Skype let you make voice calls to buddies around the globe—for free. Some of these programs have built-in voicemail and call recording, and most are cross-platform, offering support for Mac, Windows, and Linux.
Hardware contraptions and telephony automation software bring even more exciting capabilities to the table. With a telephone-line interface for the Mac or a voice modem in a Windows PC, all you need is the right software to tie your phone completely to your desktop—but don't forget your wireless headset. VoIPing is much cooler when you aren't physically bound to your PC.
So don't delay; dig in to this grab bag of desktop telephony ideas. They're just the tip of the iceberg.
Additional content appearing in this section has been removed.
Purchase this book now or read it online at Safari to get the whole thing!
Access Next-Gen Voice Features
Broadband VoIP providers like Vonage don't just provide phone service. If you know where to find the features, they integrate with other applications on your desktop—and with your digital life.
When you subscribed to your amazing new VoIP telephone service, you might have missed the fact that, along with your new Internet calling, money-saving VoIP service, you also picked up some nifty desktop telephony enhancements. Most of the broadband VoIP phone service providers give you some cool extras that you'd never get with a traditional phone company—stuff like web-based account management, voicemail-to-email integration, and even softphone calling from your desktop. Did you know…?
Vonage lets you place calls to your Outlook contacts with a special piece of software, an add-in called Click-2-Call, which comes on the Vonage software CD. Install it and launch Outlook. You'll notice that your Outlook contacts now have a Click-2-Call option in their Actions menu. Clicking this option dials the contact's phone number via your Vonage analog telephone adapter (ATA) and then connects the call with your phone. Pick it up; you should hear your call ringing in the handset, waiting for your contact to answer.
If you're a BroadVoice subscriber, you've got some really cool web-based call-management tools at your disposal. Thanks to BroadVoice Call Manager, a web-based tool that BroadVoice gives you access to when you sign up, you can use a web page to control your voicemail, enable and disable call forwarding, and even tell BroadVoice how to handle your incoming calls based on their caller IDs—maybe you want to forward certain callers to one number, while allowing your BroadVoice voicemail to handle other callers. Nifty, eh?
Sad, but true. Hey, if you can get a date using the Web, why not dump people the Internet way, too? VoicePulse, a broadband VoIP carrier, provides the VoIP network framework for a service that will help you handle unwanted advances like a dating champ. You don't have to be a VoicePulse subscriber to use the service, though. Any phone user—VoIP, traditional, or cell—can dump somebody the high-tech way.
Additional content appearing in this section has been removed.
Purchase this book now or read it online at Safari to get the whole thing!
Track Vonage Account Info on Your Desktop
This tiny desktop tool helps keep track of your minutes and voicemails, too.
If you've never used Konfabulator (now known as Yahoo! Widgets) or Apple's Dashboard widget system, you should try it out. Widgets are very simple, specialized desktop apps that provide short, useful information in real time. They can be floating windows, or they can be embedded into your desktop. Remember Active Desktop from 1997, which let you dock an informational web page into your Windows desktop? Well, widgets are about nine times better.
The widget experience is best with Yahoo! Widgets, a widget framework that seamlessly integrates with Mac OS X and Windows—specifically, Mac OS X 10.2 and higher, or Windows 2000 and XP. Literally thousands of different widgets are available that run on both Mac and Windows—everything from weather reports and stock tickers to cute little iPod remote controls and telephony-related goodies. One such goody is the must-have vonageGauge widget by Martin Koistinen, which gives you a one-glance update of your remaining Vonage minutes, as well as a count of voicemails waiting to be listened to (Figure 2-1).
It's quite worth your while to install Yahoo! Widgets, even if you can't benefit from vonageGauge. Throughout this book, I reference a number of other cool Yahoo! Widgets that will aide you in your telephony travails. The place to start is http://widgets.yahoo.com/. Here, you can download a version of the Y! Widgets system for either platform.
To install on Windows, just run the installer that you downloaded. To install on Mac OS X, drag the Konfabulator icon (which might eventually become the Y! Widgets icons) from the downloaded DMG volume folder into your system's Applications folder. Then, launch it by double-clicking it.
Figure 2-1: The vonageGauge widget in action
You'll be stepped through a wizard that helps you decide where you want to store downloaded widgets as your inevitable widget addiction grows. When the wizard is complete, Konfabulator/Yahoo! Widgets will automatically launch its default set of widgets. Now, to try out vonageGauge.
Additional content appearing in this section has been removed.
Purchase this book now or read it online at Safari to get the whole thing!
Pick a Desktop VoIP Client
There's no shortage of fantastic VoIP software for Windows, Mac, and Linux. But which one (or two) do you need?
VoIP applications tend, like email, to have a few servers facilitating interaction on behalf of many clients. In the case of email, those clients are applications like Microsoft Outlook, Eudora, and Apple Mail. But in Voice over IP, clients can be standalone devices, like IP phones and interface boxes (ATAs like those described in Chapter 1), or desktop applications like softphones or instant-messaging apps. The information in this hack will help you decide which VoIP client is right for you.
Some VoIP clients use well-known standards such as the Session Initiation Protocol (SIP) and are designed for use with your choice of VoIP service providers. Others are designed specifically to attach only to a certain service— such as AOL Instant Messenger (AIM). Still others are built using open standards but are hard-wired to work with only certain services; Yahoo! Messenger uses SIP but works only with the Yahoo! service. That is, you can't use the VoIP features of Yahoo! Messenger with your own choice of VoIP service providers.
Some VoIP clients are quite functional "out of the box," such as Skype, which provides a user-friendly wizard to sign you up for Skype service and get you logged in. With others, such as X-Lite and GnoPhone—which are designed for use with your choice of service providers, or even with your own VoIP server—you really need to know what you're doing to get much use out of them. Since X-Lite and GnoPhone aren't officially sanctioned for use with a particular provider, you've got to know how to configure them yourself.
VoIP clients and servers use three common standards for signaling call events. (These events might be the beginning and end of a call, an attempt to join a voice conference, or looking up a phone number to discover the best way to reach a particular user on a VoIP network.) These three communication protocols are H.323, SIP, and IAX. Very rarely does a single client support more than one of these protocols (Firefly is an exception, and provides support for both SIP and IAX). Having a basic grasp of the different protocols will help you choose a VoIP client.
Additional content appearing in this section has been removed.
Purchase this book now or read it online at Safari to get the whole thing!
Sound Like Darth Vader While You VoIP
Using Audio Voice Cloak, you can sound like Darth Vader—or like Alvin and the Chipmunks—while you talk online.
Star Wars Episode III: Revenge of the Sith hit the screens right around the time I first tried this hack. When I filed into the very first midnight screening of the movie at my local cineplex, I was particularly excited by the prospect of again hearing the voice of the galaxy's most dysfunctional father. There's just something about James Earl Jones and the flange effect.
After all, who hasn't looked into a mirror in a private moment and said, "I am your father!" a few times? OK, maybe you're not as big a Star Wars geek as I am, but if you are a closet Wookiee lover, I've got the perfect hack for you to use the next time you chat with fellow fans.
If you think spy movies are cooler than Star Wars movies, you can also use this hack to make yourself sound like one of those disguised-voice phone informants that sound a lot like, well, Darth Vader.
Gold Software's nifty voice-changing tool, Audio Voice Cloak, lets you tweak your speaking voice, adding pitch shifting, EQ, echo, and other sound effects in real time (Figure 2-2). If you have Windows, you're in luck (Mac folks, see the sidebar). Download and install AVC from http://www.goldsoftware.com/downloads5903.html. Launch it and, after the shareware commercial, you'll be able to click the All Controls button to reveal all of the sound-altering controls available to you. The program uses the default microphone input, so if you're using a nonstandard microphone channel for your telephony or online chat, you'll need to click the Recording Source button and select the right input.
Figure 2-2: Audio Voice Cloak's main interface
While you tinker with AVC's settings, you can monitor yourself with the aptly titled Monitor Your Voice button. Beware: you'd better put on a pair of headphones, or you'll get feedback.
To get the most authentic Vader imitation (short of hiring Ben Burtt, the famed sound effects guru from Lucasfilm), you'll want a slightly southerly pitch shift (drag the pitch slider down a notch or two) and a flange effect (click the Flange Off button to toggle it on). Finally, click the Center button on the Equalization panel to flatten (or "reset") the equalizer. Then, monitor your speech to hear how you sound. You should have the familiar, convincing tone of a half-machine Sith lord.
Additional content appearing in this section has been removed.
Purchase this book now or read it online at Safari to get the whole thing!
Grow Your Social Network with Gizmo
If you love Skype but hate the fact that it isn't open and standards-based, you'll be right at home with Gizmo.
Gizmo Project, sponsored by SIPphone Inc. (http://www.sipphone.com/), seeks to create a free, peer-to-peer softphone with instant messaging à la Skype, but without the proprietary hindrances of Skype. In this regard, Gizmo does an excellent job. Its features are the same on Mac, Windows, and Linux, too—which means no more waiting two months for Windows only features to show up in the Mac and Linux clients, something Skype users are accustomed to. Another cool plus that Gizmo brings to the table is free voicemail, something Skype has yet to offer.
To get started with Gizmo, hook up your headset and microphone, and download and install the client for your platform from http://www.gizmoproject.com/. Launch the Gizmo app, and register for your Gizmo name from the login screen. This name is both your login ID and the name that other Gizmo callers will use to call you. Once you're logged in, set up your user profile, as in Figure 2-3.
Figure 2-3: Gizmo's profile dialog
Don't forget to check the "List my profile in the White Pages for public searches" checkbox if you'd like to hear from other Gizmo users. Otherwise, they won't be able to find you when searching Gizmo Project's central user database. If you'd like to search for some buddies to add to your contact list, start by clicking the Search button in Gizmo's main window. Its search function, which is similar to but less elaborate than that of Skype, shows you the city, state, and country of each user, if they've entered that information in their profile. Gizmo also has a big selection of rather cool built-in avatars (buddy icons), or you can select your own image file to use.
Placing a voice call with Gizmo is as easy as entering the Gizmo name of the person you want to talk to and clicking the round phone icon in the upper right of the main interface window. If you don't yet have any buddies in your contact list, a great place to start is the Gizmo Project Party Line, which you can call by typing
Additional content appearing in this section has been removed.
Purchase this book now or read it online at Safari to get the whole thing!
Record VoIP Calls on Your Windows PC
Unless you're using Gizmo, you probably can't record your VoIP calls without a little outside software assistance.
If you constantly forget things (which I do), or you're a private investigator (which I'm not), you might have wondered how to record calls so that you can listen to them later. Recording calls on traditional phones and IP phones is a simple matter of analog electronics (see Chapter 5), but recording softphone and instant-messenger voice calls is another matter entirely. Of course, you can set an old-fashioned tape recorder on your desk and press the Record button, but come on! In our digital world, there's got to be a better way, right?
Of course there is. You can find a handful of useful recorder apps at http://www.download.com/ and http://www.downloadsquad.com/ that can record WAV files and MP3s from any sound input or output on your Windows PC. One such application is Total Recorder, developed by High Criteria (Figure 2-6). In its default configuration, Total Recorder will record only the output (the person on the other end of the call), but not your voice.
To alleviate this, click Total Recorder's Recording Source and Parameters button and then check the "Record also input stream" checkbox. This way, your recording will be sure to contain both sides of the call. The "Remove silence" checkbox will enable a feature that doesn't save moments of silence into the recording. This might be useful if you record a ton of calls and review them regularly, as waiting through unneeded silence would certainly slow this process and use up more hard-disk space.
A real time-saver is found by checking "Convert using Recording Parameters specified below" and then clicking the Change button. In the dialog window that appears, you can adjust the sound resolution and the output format. Just about every sound codec you'd want is supported, from Windows Media to MP3. For even more sound-conversion goodness, be sure to check out "Create Telephony Sounds with SoX" [Hack #24] .
Figure 2-6: Total Recorder can save audio recordings from MSN Messenger, Yahoo! Messenger, AIM, Skype—you name it
Additional content appearing in this section has been removed.
Purchase this book now or read it online at Safari to get the whole thing!
Handle Calls with Windows Software
Have your PC screen your calls and take your messages with handy Windows tools.
If you've got a Windows PC with a standard modem (it doesn't have to be a voice modem), you can use some really cool software applications that can identify incoming calls, with their caller ID information shown on your Windows desktop. (Mac users can use Phlink for this purpose [Hack #15] .) Some of these apps can even respond to incoming calls so that you don't have to.
This kind of application is a lot of fun, because while it technically doesn't use any VoIP components (it's still strictly legacy phone technology), it will give you an idea of how much power you as a phone user have when you use software to enhance telephony applications. After all, your phone service is merely an application, and you'll be using a PC application to enhance it.
You'll need caller ID service enabled on your phone line if you want your PC to handle your calls in this way.
A cool freeware app that provides a caller ID pop-up window in the Windows system tray is appropriately named PhoneTray Free. In addition to the pop-up display, PhoneTray will log all incoming calls—handy when you've been out, and you want to know whom to call back—and it has a feature called Privacy Manager that lets you block calls from certain callers (Figure 2-7). PhoneTray also has a handy scheduler to establish your "quiet time," so you aren't receiving annoying calls in the middle of the night. While these features might be available from your local phone company, you can certainly save a few bucks by implementing them yourself with a PC tool like PhoneTray. The only hardware requirement is a modem connected to your phone line.
Figure 2-7: PhoneTray Free's Privacy Manager
For a small premium, PhoneTray's developer will sell you a version of the package, called PhoneTray Dialup, which works with caller ID–enabled modems. Using this feature, if you're a dial-up Internet user, you can receive caller ID signals on your PC desktop while remaining online. You can obtain PhoneTray from
Additional content appearing in this section has been removed.
Purchase this book now or read it online at Safari to get the whole thing!
Let Your Mac Answer and Log Your Calls
Ovolab's amazingly simple Phlink telephony package lets you do some really cool stuff on your Mac—like answer calls and remotely control your Mac with a telephone call.
Watching Steve Jobs pitching the digital lifestyle at Macworld Expo is a favorite pastime of Mac enthusiasts. In fact, there's little that Mac users love more than watching the leader of the Mac world tout new developments and cool little tweaks in Apple's flagship iLife applications: iTunes, iPhoto, iDVD, iMovie, and GarageBand. But for all the pomp and circumstance surrounding these ravishing rollouts, Apple seems to have missed a critical component of the digital lifestyle, one that was around long before DVDs or MP3s—telephony.
Fortunately, an Italian company called Ovolab has created a really cool application that serves as the missing telephony link for iLife. Phlink is a hardware-software combination that answers calls with a voicemail greeting, logs them, and even allows you to set up AppleScripts that you can control remotely from a touch-tone phone. The hardware piece of the Phlink setup is a USB device with two RJ11-type ports, one for your standard phone line and another for your analog legacy telephone. The software component (available at http://www.ovolab.com/phlink/) consists of an application that looks like iTunes (see Figure 2-10). You get all of this for less than the cost of dinner (at a really nice restaurant).
Installing Phlink is a snap. Just plug the USB interface into an available spot on your Mac or its keyboard. There's no power adapter to worry about, thankfully. Plug your phone line into the "line" port on the USB interface, and plug your analog phone into the "aux" port. Then, drag the Phlink icon from the included CD-ROM to your Mac's Applications folder.
Figure 2-10: Phlink's main interface
In Phlink's Preferences window (available by clicking Preferences from the Phlink menu), you can enable an option that shows you a pop-up window with the caller IDs of incoming calls on your screen, so you can decide whether you want to answer them without having to even take your eyes off the screen, let alone leave your desk.
Additional content appearing in this section has been removed.
Purchase this book now or read it online at Safari to get the whole thing!
Run Phlink Even When Logged Off
Phlink is a great application, but it's a desktop program, not a server app that's made to run in the background. So, when you log off, it shuts down and can't answer calls—unless you customize it to do so.
To get Phlink to launch upon login is really easy—just make it a login item for your user account in OS X Preferences. But getting Phlink to stay running even after you've logged out is a challenge. Of course, Phlink is most useful when it's running at all times, so you need to be able to do this.
Thankfully, for every unique need there's an equally unique hack. In this case, we're going to launch Phlink under a different user account. This user account will be automatically logged in at boot time, allowing the Phlink application to launch in that user account. Then, we'll create an Apple-Script login item to switch to the user-selection screen automatically, giving you the option of logging in as any user you want.
To get started, open up System Preferences and click the Accounts preference pane. Click the + icon to create a new account, and call it Phlink. Make sure it is set to log in automatically upon startup. Now, log in as this user. Be sure to enable Phlink as one of its login items. To enable login items for the Phlink user, return to System Preferences and select the Login Items tab. Now you can add Phlink to and remove it from this list, causing it to launch whenever the user phlink logs in.
Now, launch the AppleScript editor, and create a script with this single line:
	do shell script "/System/Library/CoreServices/Menu \\ Extras/User.menu/
	Contents/Resources/CGSession – suspend"
The purpose of this one-line AppleScript is to present the user-switching dialog on the screen. We'll use this AppleScript to get back to the traditional login screen once the Phlink user has logged in and the Phlink app has launched. Save this AppleScript and then make it a login item for the user phlink. (Be sure it's listed after the Phlink login item.) Then, save and exit Preferences.
Now you're ready to try it. Reboot your Mac. If all goes well, your Mac will log in as the Phlink user automatically, launch Phlink, and return you to the screen where you can choose which user to log in as (or the username and password prompt, if that's how your Mac is configured).
Additional content appearing in this section has been removed.
Purchase this book now or read it online at Safari to get the whole thing!
Greet Callers Differently Each Day
Many voicemail systems let you use a different greeting depending on the day of the week or the time of day, but not Phlink—that is, unless you know how to use cron.
As you know from "Let Your Mac Answer and Log Your Calls" [Hack #15] , a file in the /Library/Application Support/Phlink Items directory contains your outbound greeting. Either it's greeting.txt (for a synthesized voice greeting), or it's an audio file in the form of greeting.aif or greeting.mp3. But suppose you want to use a different greeting depending on the day of the week.
Thank goodness for cron—the trusty Unix relic is a workhorse. Assuming you have all of your daily greetings stored in the same place, you can create a script that cron can use to update the greeting based on the day of the week. Here's the directory listing on my machine:
	Mac-Mini:/Library/Application Support/Phlink Items kelly$ ls -al
	total 328
	drwxr-xr-x	 10 tedwalli   admin	340		 Jun		9 22:39 .
	drwxrwxr-x   16 root	   admin	544		 Jun		6 19:50 ..
	-rw-r--r--	 1 tedwalli	   admin    6148     Jun     6 19:50 .DS_Store
	-rw-r--r--   1 tedwalli    admin      94     Jun     6 19:50 greeting.txt
	-rw-r--r--    1 tedwalli    admin   755002   Jun     9 22:39 greeting_friday.aif
	-rw-r--r--    1 tedwalli    admin   740222   Jun     9 22:39 greeting_monday.aif
	-rw-r--r--    1 tedwalli    admin   700101  Jun     9 22:39 greeting_thursday.aif
	-rw-r--r--     1 tedwalli    admin   694450  Jun     9 22:39 greeting_tuesday.aif
	-rw-r--r--     1 tedwalli    admin   801006 Jun     9 22:39 greeting_wednesday.aif
	-rw-r--r--     1 tedwalli    admin   154102  Jun     6 19:41 ring.aif
Now, create a quick shell script like this one, for each day of the week:
	#!/bin/sh
	## This script is for Monday.
	cd "/Library/Application Support/Phlink Items"
	cp –f greeting_monday.aif greeting.aif
Save each daily shell script in a convenient place, perhaps in a cronjobs folder in the user profile of that phlink user we made in "Run Phlink Even When Logged Off" [Hack #16] . Don't forget to make them executable (run
Additional content appearing in this section has been removed.
Purchase this book now or read it online at Safari to get the whole thing!
Use Caller IDs in AppleScripts
One of Phlink's AppleScript hooks occurs when incoming calls arrive, which means you can create actions to handle how those calls are handled.
If Phlink didn't have AppleScript support, it wouldn't be nearly as cool as it is. In fact, when I first fired up the Phlink application, I looked at the minimal interface and thought to myself, "Is that it?"
The fact is that Phlink's most awesome functionality is in its AppleScript object model. By using Phlink's functions in tandem with other AppleScript aware applications, you can do some very cool telephony automation, from music-on-hold to greeting callers with the Mac's speech synthesis in interactive stages. Anything you can retrieve into an AppleScript variable from other Mac apps, you can pass into Phlink functions for interaction with callers. The only limit, then, is your imagination.
As I got into setting up these voice AppleScripts, I was reminded of the interprocess communication goodness of the vintage Arexx scripting language on my old Amiga 4000 computer. I got to thinking—wouldn't it be cool to do some voice hacks on that 25 MHz classic? Then I realized that the Amiga's pokey 680x0-vintage processors don't even have enough processing power to encode and decode modern audio codecs! My hopes of splashing the cover of O'Reilly's Make magazine with a really tasty Amiga VoIP hack were dashed, and I returned to the 21st century realm of VoIP Hacks.
A great place to start building Phlink AppleScript hacks is with caller ID. When Phlink receives an incoming call, the first script Phlink calls is ring, which you'll create in the /Library/Application Support/Phlink Items directory. The call doesn't have to be answered to execute this script; the line just needs to ring.
Now, while I'm not going to give you a full-blown explanation of AppleScript (O'Reilly's AppleScript: The Definitive Guide does a far better job than I could hope to, anyway), these examples should suffice to let you hack Phlink. Since we're starting out with the ring script, take a look at this example, which announces the caller ID of the call while it's ringing:
Additional content appearing in this section has been removed.
Purchase this book now or read it online at Safari to get the whole thing!
Control iTunes from Phlink
If you have a ton of iTunes tracks just sitting there on your hard drive, why not put them to work in Phlink.
One of the coolest things about Phlink is its AppleScript abilities. Much like PhoneValet and other desktop telephony packages, custom scripting is where all the fun lies. Sure, letting folks record their voicemail onto your computer is fun, but integrating the other stuff on your computer with the phone—that's even better. You've seen how to do some basic database interaction between Phlink and the Address Book [Hack #18] . That's a great starting point for this hack, because it introduces the events that can trigger scripts within Phlink. If you haven't been there already, check it out, come back, and I'll be waiting here with this iTunes hack.
Your iTunes music library makes the perfect source for on-hold music, or just for a cool telephone gimmick like a "remote phone jukebox." The following AppleScript will actually search through your iTunes music library and find non-copy-protected songs (i.e., songs imported from CDs or MP3 files, and not purchased online) to play for the caller:
	on do_action given call:my_call
		tell application "iTunes"
		set track_found to false
		set num_retries to 0
		repeat until track_found
			set my_track to some file track	of library playlist 1
			if (kind of my_track contains "Protected") is false then
				 set track_found to true
			else
				set num_retries to (num_retries + 1)
				if num_retries > 100 then
				exit repeat
				end if
			end if
		end repeat
		set my_song_file to the location of my_track
		end tell
		tell application "Ovolab Phlink"
			tell the_call to play (my_song_file as alias)
		end tell
	 end do_action
my_song_file is a variable that stores the location of a song to play for the caller, which is triggered to play in the fourth-from-last line in the script. You can trigger this bit of AppleScript from any of Phlink's event-handling scripts (ring, greeting, hangup, etc.). The Ovolab Phlink user manual, written by fellow O'Reilly author Matt Neuberg, provides a scholarly introduction to all of Phlink's event-handling scripts.
Additional content appearing in this section has been removed.
Purchase this book now or read it online at Safari to get the whole thing!
VoIP While Fragging
This sure beats typing "OWNED!" in an in-game chat window.
If you're like most übergeeks (and I say this as an admitted übergeek), there might be no pastime more satisfying to you than online gaming. Indeed, it's hard to beat the pure excitement of fragging your best friend with a rocket launcher in Quake or laying down the Horde smack onto a World of Warcraft n00b. Of course, if you're a Ventrilo or Teamspeak user, you can use Voice over IP to rub it in your opponent's face verbally when you crush him.
Ventrilo and Teamspeak provide hands-free conference calling designed for online gaming. This way, teammates can coordinate their strategies verbally, communicating by mouth without interrupting their in-game action, rather than by typed messages, which can be a real distraction. Nothing's a greater mood killer than having to stop to type a chat message to call for a rescue, only to get hit from behind by a stray rocket while typing your plea.
One great feature of both Ventrilo and Teamspeak is their "push-to-talk" capability. This allows you to treat them like a walkie-talkie—cutting out the background noise that would otherwise be transmitted if the chat were always live. With this feature, you can even forego headphones if you keep your transmissions brief so as to discourage echo.
Ventrilo, from Flagship Industries (http://www.ventrilo.com/), is a team voice chat system that uses the Global System for Mobile (GSM) codec—a very bandwidth-conservative codec that's excellent for use with games (you don't want your voice traffic to create in-game lag, so a codec like GSM is perfect). Ventrilo has client and server components. The client runs on Windows and Mac OS X, and the server runs on Mac OS X, Windows, and Linux. A version of the client for Linux is said to be in development.
To run the Windows client, you'll need DirectX 8.1 or later (available from Microsoft and standard with Windows XP and above). The Mac client requires OS X Version 10.3.2 or higher. You'll also need a microphone and a pair of headphones (the headphones are superior to using freestanding speakers, because ambient noise from the speakers will "spill" into the microphone, creating really annoying echo for your game-playing buddies).
Additional content appearing in this section has been removed.
Purchase this book now or read it online at Safari to get the whole thing!
Google for Telephony Info
Harness the world's most knowledgeable search database for your own voice purposes.
Near the end of the dotcom boom, a little search engine startup called Google was born. Today Google dominates search on the Internet. Though Google has moved into the realm of VoIP with Google Talk, its new IM client, the company's best offering to telephony is still its famously useful search engine, Google.com.
If you're looking for a particular phone number, or for a group of phone numbers to be used in telemarketing or fundraising applications, a great place to start is with Google. (And a really smart next step is the National Do Not Call Registry [http://www.donotcall.gov/] if you plan to solicit the folks you're calling. Once a call recipient informs you that his number is on the list, it's illegal for your organization to call him again.) Here are some Google search queries that you can use to turn up phone numbers.
Suppose you want to turn up numbers in a given area code and prefix. You can form your Google query like so:
	              "(440) 328" OR "440-328"
            
The quotation marks surrounding the two expressions tell Google to treat them each literally—that is, to return only instances of the entire expression ("(440) 328") and not mere instances of the elements within the expression ((440) or 328).
Google will return web page hits that contain occurrences of the area code 440 and the prefix 328 (you might get some non-telephone-rela