Happy Freakin’ New Years, Linux fans. Its 2005.
Almost exactly four years ago, in my January 2001 column for Linux Magazine
), I wrote a rather long diatribe about how many predictions in Stanley Kubrick’s 2001: A Space Odyssey
(based on the novel by Arthur C. Clarke) have been left unfulfilled.
Among those was the common use of videophones, used in a visually dramatic scene where Dr. Heywood Floyd, a senior government official representing the United States space agency, calls from the space station to wish his daughter to wish her a happy birthday. At the end of the call, Floyd is charged$ 1.70, an obscenely inflated amount by 1968 standards($ 1.70 back then would have bought you five gallons of gasoline), but only a modest amount today, especially for a long-distance pay phone call.
Although the technology required for videophones is readily available, very few people use 2-way video communication today. For one thing, unless you use a dedicated connection and your upstream speeds are as good as your download speeds, broadband 2-way audio/video conferencing is still pretty choppy. And, as I said back in 2001, nobody wants to be caught off guard answering their phone in Jockey shorts (or Jockey panties). Perhaps my January 2010 column will appraise things differently, but I’m not placing any bets.
VOIP for the Masses
Still, there has been some advancement in communication in the last four years, and that includes the use of Voice Over Internet Protocol (VOIP) technology. In case you’ve been living under a rock (or on a space station), VOIP allows you to compress voice communication over a TCP/IP connection and communicate over the public Internet instead of using the legacy “Ma Bell” phone network, which charges you bookoo dollars for calling out of state or from geosynchronous orbit at Space Station 5.
Some companies, such as Vonage (http://www.vonage.com
) can supply you with an inexpensive appliance that allows you to hook up conventional POTS telephones to your broadband Internet connection. Services like Vonage charge you an inexpensive monthly flat fee (around$ 25 a month) to make all the long distance telephone calls you want in the continental United States for free. But another company, Skype, a company started by the founders of KaZaA, the peer-to-peer file sharing network, seeks to bring VOIP technology directly to your PC.
Sure, there have been attempts to do this sort of thing in the past, such as the Grace Network WebPhone, but the voice quality was crappy, the implementation lackluster, and to top it all off, it wasn’t usable on Linux or even the Macintosh.
Skype, on the other hand, is written in Trolltech AS’s Qt cross-platform development toolkit (the same toolkit used to create KDE and the Opera web browser), so it runs equally as well on Windows, the Windows-powered Pocket PC, Mac OS X, and most important, Linux. With Skype, all communications are fully encrypted end-to-end, you can conference up to four people at once, and you can do all of this with crystal clear, better than telephone sound quality.
Once you and your friends start using Skype, you will never want to go back to regular instant messaging again. I’ve talked with friends all over the US, Europe, and Asia, and it’s so clear that it’s like talking to someone in the next cubicle. You can also call people who don’t have Skype, but you’ll need to purchase online credits on Skype’s web site. The rates are quite competitive.
To get started with Skype, the first thing you want to do is get a device that can record your voice, preferably a USB headset. I’m partial to the models from Logitech, as they are well-made, inexpensive (The Premium Model 300 retails for less than$ 40 on Amazon), are fully certified for use with Skype, and run on Linux without any fuss. You just plug the sucker in, and bada bing! It just works. I’ve also heard of people getting very good results with Plantronics USB headsets as well, although those are more expensive($ 50-$ 90, depending on the model).
Okay, perhaps I am simplifying this just a bit. If you plug your USB headset into a computer running a Linux distribution running a 2.6.x kernel (I’d recommend anything using 2.6.7 or higher) you should be able to find messages similar to the following if you type dmesg at your friendly command-line prompt while logged in as root:
usb 2-1: new low speed USB device using address 2
input: USB HID v1.00 Keyboard [0430:0005] on usb-0000:01:03.0-1
usb 2-3: new low speed USB device using address 3
input: USB HID v1.00 Mouse [0430:0100] on usb-0000:01:03.0-3
usb 3-1: new full speed USB device using address 2
input: USB HID v1.00 Device [Logitech Logitech USB Headset] on usb-0000:01:03.1-1
The third line, referring to the Logitech USB Headset, indicates that it’s a detected device conforming to the USB HID protocol. If you don’t see this message, chances are you need a newer kernel or a kernel with this support compiled in as loadable modules. With an up-to-date Fedora Core 2 or Fedora Core 3, Xandros 3.0, or SuSE 9.2, you’re pretty much golden.
Additionally, after looking for and finding these USB kernel messages, you should find a directory tree under /proc named /asound/Headset, indicating that the headset is also an ALSA compatible sound device.
If you’re too cheap to buy yourself a USB headset or are running an older version of Linux that doesn’t support USB HID devices, you can also use one of those older minijack-style headsets (the Plantronics or Andrea kind) or microphones used for some of the older voice recognition software packages you wasted your money on back when you were using Windows. Just plug it into your sound card’s microphone jack. Your outgoing sound quality won’t be as good and your friends will laugh at you, but it will still work. If anything, it will prove to you that you need to buy a USB headset.
If you are using KDE, you’ll want to run the kmix application (shown in Figure One) to adjust the ALSA mixer properties of the headset for microphone and stereo headphone volume, as well as the volume levels of your PC stereo speakers, if you have them.
[ BEGIN FIGURE ONE: The kmix application]
[ END FIGURE ONE]
If you’re a GNOME user, the gnome-volume-control application (shown in Figure Two) effectively does the same thing. Keep these mixer controls open, because you are going to need them.
[ BEGIN FIGURE TWO: The gnome-volume-control application]
[ END FIGURE ONE]
Okay, now for the fun part. Download the Skype software for Linux to your home directory. You can get it for free off the Skype.com web site.
Skype offers a few different versions, depending on what Linux distro you run. If you are a Fedora Core 2 or Fedora Core 3 user, download the Fedora Core 2 RPM.. There’s also a SuSE version you can use for SuSE 9.1 and 9.2, and Novell Linux Desktop 9. If you’re a Debian or Xandros user, get the dynamic binary tar.bz2 file, provided that you have the Qt 3.2 library already installed on your system. If you’re using KDE 3.3 or KDE 3.2.x, you should be fine. If you’re strictly a GNOME user and don’t have Qt on your system (which is unlikely), get the statically linked version of Skype. It takes up a few more megabytes of space, but works just fine.
If you’ve downloaded the RPM for Fedora or SuSE, go to your download directory and issue the following command as root:
# rpm –Uvh skype-0.92.0.12-fc2.i386.rpm
(By the time you read this, the Skype software for Linux might have a higher version number and the filename may be different.)
If the rpm –Uvh command completes without yelling at you, you’re good to go, and you can fire up Skype with the command skype. There should also be a nice Skype icon in your “Internet applications” menu of KDE and GNOME.
If you’re using Debian or some other distro, and have downloaded either the shared or static Qt library tar.bz2 file, run:
# bzip2 –d skype-0.92.0.12.tar.bz2
# tar xvf skype-0.92.0.12.tar
This creates a subdirectory named skype-0.92.0.12 (or skype_staticQT-0.92.0.12, depending on which version you downloaded. (Again, the filenames and directory names may vary depending on the version number.)
As root, using your favorite file manager, such as Konqueror or Nautilus, rename the skype-0.92.0.12 directory to something sane like skype by right-clicking on the folder name and choosing “Rename.” Then move the directory to /usr/share, so that every user on your Linux machine has access to it. Make sure that the skype directory and all of its files are mode 777 (read, write, execute by all). You’ll then want to make an icon link to the Skype executable in that directory using your desktop GUI. In KDE 3.x, that’s right clicking on the desktop, and choosing “Create New, File, Link To Application.” There’s a nice set of Skype icons you can choose from in the icons subdirectory of the Skype folder.
Skype Me, Baby, Skype Me! Oh Yeah!
The first time you fire up Skype, you must create a new user ID on the Skype network. Go thru the prompts, create an ID, and supply them with your basic profile information — all it really needs is your user ID, name, and email address, but the more information you give, the easier it is for your friends to find you, especially if you have a common name or if your buddies don’t know your exact user ID.
After you’ve signed into the network, tell Skype that you have a headphone installed. From the “File” menu, pick “Options,” and click on the “Headsets” tab. Although you’re likely using a Linux kernel with ALSA, Skype happens to be written with the legacy OSS sound system interface, which ALSA supports through a backward compatibility mode. If you have an existing sound card on the system in addition to the USB headphones, the USB headphones are enumerated as /dev/dsp1, as opposed to /dev/dsp, which is the sound input channel for the sound card. You’ll want to choose /dev/dsp1. Click on Save, and you’re set to go.
If you haven’t gotten a buddy to join Skype and pick up a USB headset, feel free to add my ID to your contacts list and say hello. I’m “jperlow” on Skype. Make sure you state in your “About” section of your user profile that you’re a Linux Magazine reader, or I’m probably going to think twice about authorizing you. I’ve currently got my Skype set to only answer from “Authorized” users, which means that when someone initiates contact for the first time, I have to approve them on my “Contacts” list.
You can set your client to receive calls from anyone on the Skype network by choosing “Skype Me! ” instead of the default “Online” in the lower left hand corner of the client window, but I don’t recommend it unless you want to get all sorts of wacky calls from people.
You’ll really love Skype, once you start using it. It may not be streaming two-way video from 100 miles up in space, but it sure beats those annoying companies that constantly solicit you for your long distance service.