MacDevCenter    
 Published on MacDevCenter (http://www.macdevcenter.com/)
 See this if you're having trouble printing code examples


Skype on Mac OS X: A Hands-On Approach

by FJ de Kermadec
12/28/2004

Whether you are a geek beginner or an experienced businessman, chances are that you'd prefer to use your telephone less often and other technologies more. After all, thanks to applications like iChat AV, we can do crystal-clear video conferencing at the push of a button (and it's about to get even better). But you still need to keep one of these clumsy, bulky, money-eating devices to place calls to your less technologically oriented friends and to various companies or governmental agencies that do not yet do business online.

Well, I have good news for you! Indeed, Skype, a big player in the internet telephony field, recently announced the publication of the Mac OS X version of their software, opening a whole new world of possibilities for us in the field. Even if the application is still considered in beta form, it is actually now behaving very nicely and can truly be integrated into a production workflow.

My goal today is to introduce you to the wonders of Skype and show you how to integrate it in your routine but also to point out its limits. Indeed, as cool and great as internet telephony is, it still has its share of (unavoidable) drawbacks — plus, you wouldn't want to get the iChat developers all depressed, would you?

What This is About

If you are familiar with iChat, you probably know how an audio chat works. It is all about establishing a two-way (or more) link between computers so that participants can talk freely. The application takes care of routing packets and manages input and output so that participants can hear each other even when they talk at the same time, a system known as full duplex.

The main problem with most chatting software is its lack of integration with the "real world," where telephones are still widely used to conduct business. Also, many instant messaging companies have, for political or technical reasons, chosen not to publish versions of their applications for some operating systems or to write "light" versions, offering minimal functionality. This is a big drawback and obliges users to (1) get access to a computer, (2) make sure that it runs the right operating system, (3) download the right application if it is not installed, and (4) setup an account before they can talk.

A Word of Caution
Skype is still in beta and your experience might vary slightly from what is described here. Indeed, the very nature of the technologies it uses and the rapid evolution of the Mac OS X client might introduce some differences over time. While you should not encounter any big difference, feel free to use the "talkbacks" located at the end of the article to post your comments and updates.

Skype tries to solve all these problems by interconnecting with the regular telephone network and allowing you to reach regular phones through your computer's microphone and loudspeakers. This means that you can conduct business and call almost anyone you wish right from your Mac without ever needing to lift the receiver. Its developers have also developed versions of the application for most platforms, making it less probable that you will meet someone who cannot use the network.

Of course, as an added feature, the application also allows you to use text chat and perform file transfers. Calls from computers to computers are free — much like a regular audio chat would be — and calls to a phone network are remarkably inexpensive — the network charges you a low unique rate for most destinations, no matter the place from which you call.

On a side note, Skype doesn't yet allow you to receive calls, which is a serious drawback for people looking into phone replacements. Luckily for me, nobody really phones me anymore and most of my calls are directed to companies I need to reach, so this wasn't too much of an issue.

The Skype Advantage

Why Skype? Well, sure it's not perfect, but it does have a few tricks up its sleeve that make it a sensible choice for us Mac users.

The first one is the quality of the interface. While many such applications are cross-platform and never look good on any system, the Mac OS X version of Skype has a clear, easy-to-understand interface that makes interacting with the application a lot easier. Even the toolbar icons use some system-standard metaphors and drawings (like the little flag you will find in Mail, the light switch featured in Safari and the "Do not disturb" sign to be seen in iChat), which denote the attention that went into it.

The second most remarkable aspect of Skype is its ability to cross firewalls. While testing it behind quite a hefty firewall and a NAT-enabled router, I was able to receive and place calls normally. Of course, this means that the application performs a few messy steps before logging in — it tries many outbound ports and launches traceroute repeatedly — but, luckily, these steps are invisible unless you use a reverse firewall.

The third most interesting aspect of Skype is that the SkypeOut service allows you to reach most numbers, no matter where you are calling from — and for a constant fee. This is without doubt a great plus for travelers and, unless your phone company is extremely good, is very likely to help you save some money on your regular bills.

Some Skype supporters insist on the outstanding sound quality the application provides. In my experience, sound quality can be great when there is no firewall interfering with the application and network congestion is low but can lessen easily, sometimes in the middle of a call. All in all, I would compare average Skype's quality to an audio chat through iChat. (OK, that's not a very scientific comparison, but can one compare audio chat quality scientifically?)

Related Reading

Mac OS X Panther Hacks
100 Industrial Strength Tips & Tools
By Rael Dornfest, James Duncan Davidson

Some Background Technology

An interesting aspect of Skype is that it uses a peer-to-peer network to do its work. Does the word peer-to-peer make you shiver at the thought of Limewire, Kazaa, and Napster? Well, that's good because that's the same peer-to-peer idea we are talking about — an enhanced variety, though.

Indeed, instead of routing all your calls through one single central server — or a small number of big workstations — Skype actually routes your call through other user's computers and is a lot more flexible about the nodes it chooses. This makes the system a lot more reactive to network issues; by constantly checking what the best route to the other party is and switching between them, the application is able to work around most problems that could otherwise affect another instant messaging client. For example, if a faulty router or a company firewall blocks the connection between your computer and AIM's very own Oscar (the central server), then you won't be able to easily log in and use iChat.

This also means that the network is a lot less susceptible to congestion. The more people join the network, the more bandwidth is available, and there's no need to constrain it as the number of users augments. Of course, the equation is far from perfect, and the network can sometimes get saturated or heavily slowed down, but this is a lot less likely.

In fact, this peer-to-peer structure is present in every aspect of the application. For example, there's no such thing as a central repository of Skype subscribers. Instead, the list is kept on multiple computers, spread around the network, and is therefore accessible a lot more quickly to users who log in and request it. File transfers also benefit from this supple structure and are not limited by the same bandwidth constraints as the ones set by some other instant messaging providers that need to route (or at least keep an eye on) what happens.

Of course, going through all these computers is not without risks, as this increases the chances that a malicious user tries to eavesdrop on your conversation, intercept your files, or alter your member records. To solve this, Skype heavily relies on public key encryption, and encrypts computer-to-computer communications end-to-end so that they cannot be intercepted. It's up to you to decide whether this is better than most IM clients that bet on the fact that people would have to actively tap in the stream to read your conversation but that do not encrypt anything.

How Do We Use it Then?

Now that you have learnt all about the technology behind Skype, you're probably wondering how you can actually use it — that is, unless you already fell asleep on your keyboard. The good news is that downloading and installing Skype is actually very simple, as is setting up an account.

The first thing to do is to make sure that your Mac meets the minimum requirements. Since they are particularly low, let's say that any Mac capable of running Panther should work perfectly well. Also, make sure that your internet connection is up to the task — dial-up is officially enough but, needless to say, broadband will provide you with a better and smoother experience.

Due to the very nature of Skype, its ability to bypass firewalls and tap into a vast peer-to-peer network, some network administrators have raised questions about potential security issues. Therefore, to avoid bruising any sensibilities, it may be a wise idea to discuss your installing it with your IT department, if applicable. Also, make sure that installing communication and telephony software does not interfere with your company's internet usage policy, if applicable.

To grab the latest version of the application, have a look at this page. Since Skype is in beta version, it is a good idea to keep current; this will help you avoid bugs as well as potential security issues as they are discovered and (hopefully) ironed out.

Once the disk image is downloaded onto your desktop, or the location of your choice, installing Skype is a simple matter of drag-and-drop: mount the disk-image by double-clicking on it, drag the application icon onto your Applications folder, and you're done! Knowing that Skype doesn't require an administrator password or try to install extensions in your System folder is a big comfort in itself!

When you first click on the application's icon, it is going to ask you whether you already own a Skype account or want to create one. Much like an AIM or iChat account, a Skype account identifies you on the network and allows you to log in and setup preferences and privacy options. There is, however, one important twist: since Skype's SkypeOut service requires you to use a credit card to purchase credit, a Skype account has to be more secure and protected. Therefore, even if you pick an engaging user name, it is worth selecting a secure password.

Opening an account can be done right into the application: a very nice touch compared to the various procedures required by other instant messaging clients. Once you have entered the necessary information, you are, of course, required to read a license agreement and decide whether you agree with it.

Once this is done, the application will create an account for you. Note that many user names are already taken — 921,703 users were online (i.e. actively using Skype) when I created my account — so you might want to plan ahead. The Skype login processes are actually quite messy and involve calling traceroute multiple times as well as other networking tools. Luckily, this is entirely transparent to you unless you use a reverse firewall and monitor it closely.

When the first login is done, the main Skype window will appear on your screen, proudly announcing that you have zero euros in your account and no contact online... depressing, huh? Well, why don't we place our first call?

Much like I use the AOL bot Zola (ZolaOnAOL) as a testing mechanism (if she replies to my bubbles, it means that my connection works), there is a Skype service that you can contact to test your audio and connection setup. The name of this service is "echo123," and since it is probably going to be your main Skype interlocutor for the coming weeks (that is, until you convince your friends to get a Skype account), we can add it to our "Contacts list," the Skype equivalent of a buddy list.

To do so, click on the "Add" toolbar button or use the "Contact" menu. The nice thing about the Contacts list is that it accepts both phone numbers and Skype names, allowing you to integrate real calls with computer-to-computer calls without really thinking about it. In this example, we want to reach a Skype name, so we are going to enter "echo123" in the field. The checkbox underneath this field gives you the option to allow the user to see that you are online. This makes for a much more flexible system than instant messaging clients that often only know two modes, "online" and "blocked"; some of them are experimenting with an "invisible" state, but it often makes you invisible to all your buddies, which may not be the desired effect.

Once you confirm the adding of a buddy, if you gave him or her the permission to see as you are online, you will be given the option to send a message to the person, requesting to be given permission to see when he or she is online. This is also the first time you will see a picture of this user — these robots are sure getting more and more realistic every day.

When the contact is added, you can see it in the "Contacts" tab of the main window. Right next to it, you can see the corresponding "Skype status" — the equivalent of the iChat status. To set yours, use the pop-up menu at the bottom left of the window, and look at the little icon next to it as it changes. Clicking on a contact in this window will automatically open a drawer displaying a short version of the profile.

To call the contact (in our case the test robot), click on its name and click on the big pulsating green "Call" button. The Skype echo service listens to you for ten seconds and repeats what you just said. It's perhaps not the most exciting demo ever done, but it gives you an accurate idea of the sound quality others will experience when calling you. Note that Skype tries to adapt to your network and its firewalling system: the more ports it can freely use, the better the quality of the call.

Exploring More Communication Options

Now that we have tested the voice part of Skype, what about playing with the built-in instant messaging client? In order to IM a correspondent, simply select his or her name in your contacts list and click on the golden (OK, orange) "Send IM" button.

This will open a nicely laid out IM window, complete with buddy picture and a large typing area. As a reassuring little padlock icon located at the bottom left states, your chat is happening over an "encrypted channel" — of course, you have to trust Skype on that one, so it's up to you to decide whether it really makes you feel better.

The echo service also allows you to test instant messaging by repeating what you type. Again, it is not very exciting but gives you an idea of what the service feels like in real life. In my experience, it is pretty responsive and is a good complement to the call service — if you want to send a non-confidential phone number or the name of this pastry shop you just discovered, for example.

While the IM part of Skype does the job it advertises, it lacks some of the niceties that we heavy iChat users are used to, like graphical smileys, pretty bubbles, or more flexible timestamps. This is, after all, not the main purpose of Skype and is therefore not a drawback in any way. Integration with the voice part allows you to call a buddy with which you are chatting by simply clicking on a button.

A nice history function allows you to "look back" at your preceding chats with a specific contact by clicking on a button: this opens a web page, stored in your "Library/Skype" folder. Although the page could get long very easily if you do not purge it from time to time, it is very nicely laid out. Also, any modern web browser now has a search function, making it easy to look up a reference in a history — if only iChat could do that, how much easier finding information would be. On a side note, this page allows you to contact a buddy by just clicking on the name, showing the power of "callto://" URLs, which allow for a relatively seamless integration between websites and Skype (like the "mailto" links allow sites and e-mail to interact).

Coming in Part 2

I'll wrap up my exploration of Skype in the upcoming Part 2 of this article. Now that we have the basics down, I'll take a look at some of the ways you can go further with this technology. Until then, I hope your initial Skype experience is a positive one.

FJ de Kermadec is an author, stylist and entrepreneur in Paris, France.


Return to the Mac DevCenter.

Copyright © 2009 O'Reilly Media, Inc.