Kevin has been away on a trip, but has been working while away. Yesterday he asked if I'd ever gotten a Linux-based software SIP phone working, so he could make calls without relying on the cell phone. The cell phone works fairly well, but is not really a good substitution for the VoIP connection he would normally be using. Today we played around again with various SIP phones. A lot has changed since the last time I tried Linux-based soft phones. Here's a review.
We primarily work on Laptops. The portability is nice, whether it's going to a client site, going on a trip, or just going out to the coffee shop for a change or scene. It's nice always having your environment with you. However, it means that we have a whole ton of resources available. One thing we could do is to use the laptop as a Voice Over IP (VoIP) phone. SIP (Session Initiation Protocol) is a VoIP protocol, allowing you to make phone calls.
While we should have the resources available to use our laptops to make phone calls with our PBX (which supports SIP), the state of SIP on Linux has been pretty bad. I last looked probably 6 months ago, I couldn't get a single software-based SIP phone working reliably under Linux. This time however, we were able to get 2 software phones working on our Fedora Core 4 systems.
Twinkle opens a big, honking, window, but is one of only two Linux-based soft phones we could get working. I particularly liked that you could set the audio device used for the incoming call ring-tone to be different from the audio devices used for the speaker and microphone for the call. This means that I can have the speaker on the laptop ring, but use a headset for the actual call.
It also has a nice interface for selecting which network adapter you want to use if you have multiple of them. Twinkle is a 2-line soft-phone, and supports conferencing (via the Twinkle phone, not by signaling the PBX to conference, sadly, so the conference latency between remote users is effectively doubled), redial, mute and hold. The interface is very easy to use.
RPMs aren't available, but the software required to get it working on Fedora Core 4 are all easily built from the source tar files using “rpmbuild -ta
As mentioned above, Twinkle has many selections for audio devices, and worked just fine with the OSS driver and /dev/dsp2 required for the USB headset I was using.
More audio output device options would be nice. It seems to only speak directly to the device, as opposed to being able to use esd or arts, so it's almost certain not to work when speaking to my laptop speaker directly, or to lock up the speaker device preventing other parts of my system from using it. However, most of the tools here seem to only support OSS and ALSA direct output.
KPhone is meant to be a phone component for KDE, though it doesn't seem to be included in the base KDE release. We had partial success with this phone. It worked fine for me, but it kept crashing when Kevin tried it. The window is quite small, which is nice for screen real-estate.
It has an interesting way of selecting the network adapter to use: when you start kphone, it will ask you “Do you want to use eth0”, and you answer “yes or no”, if “no”, it will ask you about another network adapter. Not my favorite, but at least they give you the choice. My laptop has at least one real adapter and two VPN adapters, so this is a big deal for me.
KPhone would let me use my USB headphone by selecting the appropriate options for driver (OSS) and device (/dev/dsp2). KPhone is available in the stock Fedora repositories.
This phone is the one I had the most hope of using. It's written in Python, and is made by the fine folks at Divmod. I didn't have any luck with it though. The standard release, version 0.02, they admit is quite old, so you need to check the code out of subversion. It depends on Twisted, not surprisingly, but my Twisted RPM was not built for the current Python I have on my laptop, and rebuilding the RPM resulted in it hanging late in the build process. It also seemed to require WX-Windows for a GUI, and I've had terrible luck with getting a usable WX-Windows Python tool-chain built as RPMs.
I'll admit that I didn't try too hard to get this working because we ended up getting both KPhone and Twinkle working while I was fiddling with Shtoom.
I do not know of any pre-built packages available for Shtoom.
Gnome Meeting is meant to do audio and video conferencing. However, the stock release only support the H.323 protocol. Apparently SIP is available in a new release called “Gnome Meeting NG”. The author got married and was expecting to release these packages when he got back just over a month ago. I was having problems reaching the download site, so I cannot verify that.
Gnome Meeting has a nice “Wizard” for doing the setup. This also includes an “echo test” for your audio hardware so you can ensure that the audio part of the system is working. It provides both visual feedback in the form of a moving bar when sound is heard as well as by echoing it back a few seconds later. This is extremely effective and is something I wish more programs had.
With VoIP there are so many places it can fail, this feedback is very important. At one point, my SIP sessions stopped working – I could hear the audio, but nothing I said was getting out. This is a fairly common failure for SIP, and can be caused by firewalls, but could also have been because of an audio resource problem.
The last update of the new on the main site here was in April of 2002. I also was unable to connect to the download site, it seems to be unreachable via pings.
There only seems to be a binary RPM release available for this. I didn't have any luck with getting it to register with my SIP server, despite numerous attempts with different values. This prevented me from doing testing of the phone.
Cornfed also comes with a CLI version, which I did not try. If you are looking for a command-line program, you might want to try this.
minisip relies on a fairly mighty set of dependencies, including 4 that may be related to this project. They don't include spec files to allow building RPMs from the released source, but they do have their own Debian repositories for both Red Hat 9 and Debian Testing/Unstable. I wasn't up to packaging them or doing a hand build/clean so I just moved on.
Linphone is packaged for Fedora Core 4.
The UI comes up, but when asking for your authentication information it will print an error about “text != NULL” assertion failure, even though I've filled in all the authentication fields, and just pops up the authentication form again. This prevented further testing of this SIP phone.
This phone relied on many other packages and did not include any packaged versions. I decided to skip it for this reason.
This package claims to support Linux, but all that's available are Windows binaries and Gentoo “ebuild"s. No source seems to be available or any information on getting or using it under even a generic Linux platform. It looks to be based on Java.
Twinkle is a great phone. KPhone is a good option, if it works for you. If neither of these options work for you, plan on spending substantial time if you'd like to try any of the others on this list.comments powered by Disqus