September 30, 2005

Four Linux softphones reviewed

Author: Paul Virijevich

Many businesses are turning to Voice over IP (VoIP) to save money on infrastructure and communications costs, but just ripping out your existing phone system and replacing it with VoIP will not work. VoIP systems require IP phones or analog telephone adapters to allow your existing phones to work. If equipment costs are stopping you from experimenting with VoIP, softphones can provide an inexpensive way for businesses to get up and running with VoIP, as I recently discovered by putting Kiax, Linphone, Twinkle, and CounterPath's X-Lite to the test.

A softphone runs on your computer and provides all the features and functionality of a regular phone. I tested the four Linux-based programs using an Asterisk server and multiple Linux workstations on an internal LAN. Kiax, Linphone, and Twinkle are open source. X-Lite is not, but is available as a free download.

Three out of the four support Session Initiation Protocol (SIP), a signalling protocol under development by the Internet Engineering Task Force (IETF) to establish VoIP connections. With its IETF backing, SIP is quickly becoming the standard protocol for VoIP. Kiax is exception. It uses Digium's Inter Asterisk Exchange (IAX) protocol. The main advantage of IAX over SIP is its transparency to firewalls. IAX softphones work behind firewalls without the need for external proxy servers or the need to change firewall settings.

In addition to a signalling protocol, VoIP endpoints need to specify codec software that turns analog voice communication into digital packets for transmission over the network and back again at the receiver's end. The choice of codec depends on the bandwidth available. The codec that gives the highest voice quality is the G.711u, which is the standard codec that traditional plain old telephone service (POTS) providers use. G.711u provides high voice quality but requires high bandwidth. Because we did our testing on a switched 100Mbps LAN -- in other words, a very fast network -- we used the G.711u codec with all the products, and found voice quality was not a distinguishing issue. Under these conditions, they all delivered roughly the same voice quality.

Let's take a look at what does set these softphones apart.

Kiax

What makes Kiax stand out is its simple interface. Making and receiving calls is intuitive. Kiax sports a call register that lists all calls made and received. A nice touch is the ability to sort calls in the register based on whether they were incoming, outgoing, or missed. There is not much more to Kiax's interface; simplicity is a good thing sometimes.

The major drawback for Kiax is its lack of SIP support. If there is an Asterisk server between Kiax (or another IAX client) and a SIP client, everything will work out. If not, forget it. Kiax can talk to SIP clients only through an Asterisk server.

Kiax has packages available for Debian, Red Hat, and SUSE, as well as a plain tarball with the Kiax binary. I opted for the tarball, and installation went without a hitch.

Linphone

Linphone is more than four years old, making it the grandfather of the bunch. Linphone is distributed only as source code; no binary packages are available from the project. Linphone requires the libosip2 package, which is included in Linphone's download directory. An optional package providing support for the iLBC codec is there as well.

Along with meeting your VoIP needs, Linphone also has a simple instant messenger application built in. This eliminates the need to have two separate applications open for basic communication tasks. The default interface is simple, but offers power users a little more, which you can access by clicking on the "show more" check box in the main window.

Linphone's biggest strength is its outstanding codec support. It not only supports multiple bit-rates for Speex, it even supports the very poor quality, but extremely low bandwidth, DoD 1015 codec. With all the codecs it supports out of the box, it is surprising that it requires a patch for iLBC support.

Linphone was not without its share of problems, all of which can be traced to the fact that I was upgrading to the latest release and not doing a fresh install. Version 1.1 requires Speex. That should not have been a problem, as I already had Speex installed. Of course, it required the latest version of Speex. No problem, I had the latest Speex installed. But wait, Linphone will not install without the speexenc program in /usr/bin. The only problem is that the Speex installation places it in /usr/local/bin. This is not a difficult problem to solve, but it's something the user should not have to take care of.

The other problem after upgrading is that Linphone would no longer authenticate to my Asterisk server. Removing the password requirement from the Asterisk's SIP configuration file did the trick. This may be fine on a LAN where you trust the users, but it's probably not a good idea if you will be connecting to the outside world.

Despite the problems with upgrading, Linphone was otherwise rock-solid, as you might expect from a product that has been around for a long time.

Twinkle

Twinkle is the most ambitious of the group. At this time, Twinkle is only available as source code. It also requires GNU Common C++ and GNU ccRTP, and you can get both from its main download page. Once the requirements are out of the way, Twinkle installs without a hitch.

Twinkle supports a long list of features and has the most professional feel of the open source softphones. It supports two line appearances. If you are talking on line one and another call comes in, you have the option of placing the first call on hold and switching to line two to take the second. The User Profile section for account setup is the most intuitive and the best out of the four.

Twinkle comes with a few added services to simplify the user's life. If you do not feel like talking, the Do Not Disturb feature will generate a SIP "480 Temporarily Not Available" response to anyone trying to call you. If you enjoy talking no matter who is calling, the Auto Answer feature connects all calls without your interaction. My favorite Twinkle feature is Call Redirection. With it, you can send calls to another user. Redirection can be set up for all calls, or for calls that come in when your lines are busy, or if you do not answer the call within a certain amount of time.

What's not to like about Twinkle? Well, it lacks an address book and call history reports, though these features are planned for future releases. Twinkle is definitely a softphone to keep your eye on.

CounterPath X-Lite

Last, but not least, is X-Lite, the only proprietary softphone of the bunch. Although it's not open source, it is free as in beer for personal or commercial use. Unlike the other softphones in this review, X-Lite is also available for Windows and Mac OS X. The Linux version is provided as a tarball with the X-Lite binary. Just download, unzip, and run.

X-Lite's Audio Tuning Wizard runs when you start it for the first time. This is a feature the other softphones should adopt. It allows you to confirm that X-Lite is playing nice with your sound card and microphone. It even calibrates your microphone to adjust for the ambient noise level around the computer. These settings can be adjusted at any time by right-clicking the X-Lite client.

X-Lite's biggest strength is the usefulness of its interface. Without accessing any menus you can adjust the speaker volume, adjust the microphone volume, and choose which codecs are enabled. Another advantage is its three line appearances, one more than Twinkle supports. As far as features go, X-Lite has just about everything you can expect in a softphone.

Well, almost. While its interface is simple, its menu options are not. X-Lite has an overwhelming number of settings. For example, why have a menu option to disable codecs when they can be toggled on and off directly from the main interface? Another downside is that some of the features the other softphones offer, like Auto-Answer and Do Not Disturb, are locked. I only found this out after trying to enable them with no luck. For those features to work, you must purchase X-Lite's successor, CounterPath's eyeBeam video and softphone. An audio-only version runs $30, and no Linux versions of eyeBeam are available at this time.

Which one wins?

Each of the four softphones has pros and cons. Kiax is mean and lean but works only in an Asterisk environment. Linphone is stable and mature, but may not be wise to deploy in an Asterisk environment due to authentication issues. Twinkle has a lot to offer, but is a relative newcomer to the game. X-Lite works on multiple platforms, but its free version comes crippled, and its paid version isn't available on Linux.

Regardless of their individual issues, one thing is for sure: Each of these free softphones can help you evaluate whether VoIP is right for your company without expensive additional equipment.

Paul Virijevich is working to eliminate the "Linux consultants cost more" TCO myth. He recently started a consultancy providing cost-effective open source solutions to small businesses.

Softphone protocol and codec support KiaxLinphoneTwinkleX-LiteProtocol Support    SIPNoYesYesYesIAXYesNoNoNoCodec Support    G.711u 64 KbpsYesYesYesYesG711a 64 KbpsNoYesYesYesGSM 13 KbpsYesYesYesYesiLBC 13.3-15.5 KbpsYesWith patchNoYesSpeex 2.15-44.2 KbpsYesYesNoYesDoD 1015 2.4 KbpsNoYesNoNo

Click Here!