3.1. Hacks 2840: Introduction
If you don't already use Skype, you really don't know what you're missing. Skype is the predominant desktop VoIP application: a softphone and a peer-to-peer (P2P) network that operate over the Internet to link people of all stripes around the globe. In fact, Skype has become a verb as well as a noun. You can use Skype to call people, or you can Skype peoplehence this chapter's title. Ohand you don't have to worry about finding somebody to call (that's been my problem with iChat AV), since Skype has been downloaded 150 million times and averages anywhere from 1 million to 2 million people logged in at a time.
Skype lets you make free, Internet Protocol (IP)-based phone-style calls to any other Skype user and allows you, through optional paid services called SkypeOut and SkypeIn, to place and receive calls to and from regular phones via the Public Switched Telephone Network (PSTN). Skype's sound quality is often reported to be superior to that of a traditional telephone, to boot.
Skype has several things going for it that other VoIP softphone solutions don't. It's the only P2P softphone application that runs on Windows, Mac, Pocket PC, and several flavors of Linux (Fedora, SuSE, Debian, and Mandrake, anyway). It's also the only softphone application that implements its own network and signaling protocol.
There's a reason for this proprietary characteristic of Skype's design despite all the great open VoIP standards such as Session Initiation Protocol (SIP). Since Skype uses its own P2P network and proprietary signaling protocol, it can get around the biggest problems facing the open-standard SIP protocol, which often breaks when used on phones that have to connect to the Internet through a broadband firewall router. SIP was designed without firewalls in mind, so SIP-based VoIP can prove frustrating for home users who just want to call a friend without a lot of technical hassle. By solving this problem, Skype has become the most widely used desktop VoIP application in the world. This might be why Skype's official slogan is "it just works."
Yet this is also why Skype inspires some controversy. VoIP advocates want to leverage Skype's ubiquity to advance VoIP's popularity, but to do this it needs to support the open standard for VoIP signaling: SIP. Perhaps at some point, Skype will provide for SIP compatibility or open the proprietary Skype signaling standard so that VoIP hackers can bridge the gaps between SIP-based apps and the Skype network.
Perhaps Skype's coolest feature isn't a feature at all. The Skype application programming interface (API) is a development framework that allows programmers to build übercool add-ons for the Skype network. I've pointed out a few of the coolest ones in this chapter.
3.1.1. How Skype Works
Unlike centralized voice networks like Yahoo! Chat and MSN Messenger, Skype uses a P2P network. This means that call routing is handled by a collective, serverless group of PCs running the Skype client software. As peers on the same network, each Skype node is responsible for routing calls on behalf of other nearby nodes. This gives its proprietors advantages over traditional, SIP-based VoIP telephony service providers (TSPs). For instance, Skype has less centralized infrastructure to maintain, compared to a VoIP TSP like Vonage, which has to have server capacity dedicated to every call it handles.
There are some centralized features in the global Skype network, of course. The contact search function wouldn't work so hot if it weren't able to query a global database of user information. Centralized functionality like this is clustered around Skype supernodes, which are actually just PCs like yours that are running Skype. Like a P2P file-sharing network, centralized search functions are facilitated using certain member PCs that are elected to have specific duties, like cataloging user data for searches and facilitating the logon process.
3.1.2. What It Does and Doesn't Do
Skype is largely feature-complete on all the platforms it officially supports, which makes it preferable for voice chat to something like Yahoo! Chat, which is a web-based party-line system that really works only with Windows. Skype is great for two-party direct voice calls, multiparty conference calls with up to fifty participants, and text chatting. Even cooler is the fact that Skype's user directory has advanced search functions, so you can find somebody of a certain age, gender, name, or country.
But Skype doesn't have the social networking depth of the Yahoo! system, so if you're looking for a voice chat "room" where people can freely come and go from the conversation, Skype is inferior to Yahoo! Chat. And unlike the Yahoo! and iChat instant messaging tools, there's no built-in support for videoconferencing. For that, you'll need to download and install one of the video add-ons [Hack #39].
3.1.3. What About Security?
As an ethically concerned VoIP hacker, you're probably wondering if this P2P network is secure. The answer is that Skype is and isn't secure. The fact that Skype encrypts all call signaling and media transmission does point to security, but the fact that your calls are routed using anonymous PCs that are members of the Skype P2P network points to lack of security. As computers become faster and faster, it might someday be trivial to crack Skype's encryption, and when that day comes, the P2P network itself will be a security flaw. For the time being, Skype is fortunately quite secure, so dig in. One hundred fifty million downloaders can't be wrong. If you need more information than what is provided in this chapter, take a look at Skype Hacks (O'Reilly).