Voicestream (now T-Mobile, though voicestream.com hasn't worked in months) has unlimited Internet for $20/month in the US. Unlike 802.11 hotspots, this works while on the move and just about anywhere humans (in the US) actually go. So I got this bright idea to cancel my voice plan and just do data, and use my laptop as my cell phone by way of Voice over IP since I take it with me almost everywhere I go anyway (especially anywhere I go for an extended period of time, such as vacation or the coffee house). So I start investigating VoIP. Here are my findings.
"SIP", or H323, is the most common standard for VoIP. It's what Microsoft Netmeeting uses and it's what most of the big-boys like Vontage use. Vontage seems creepy and like most commercial providers, they're obsessed with physical Ethernet or wireless Ethernet phones. Thier service might work with a software phone but they won't tell you that it does and they're going to give you this stupid hardware phone "for free" and then lock you into a contract to recoup the cost. And of course the thought of lugging around a software phone that's about 20 times the size of a cell phone with my laptop to Starbucks and plugging it into the laptop with a crossover cable so I can receive calls is absurd. http://sipphone.com is Lindow's venture into VoIP and they get it. They'll sell you an inexpensive adapter (D-Link brand) that you can plug into your Ethernet lan and then plug your standard RJ7 analog phones into. You could have the circa 1930 Swiss phone that served as the hardline in The Matrix and when someone calls you, it'll ring. But they'll also just let you use a bloody software phone and tell you how to configure it yourself. You'd think the hundreds of other players would get the clue and just state they support software phones but instead they're all trying to emulate each other even though none of them are making any money yet but they're going to make a whole lot of money real soon because hey VoIP is going to be big, right? Idiots. Lindows also wrote and released phone-gaim, a hacked up version of Gaim that supports SIP VoIP. So I'll talk about SIP softphones next.
They all suck. phone-gaim might be really spiffy but due to deep and severe brain damage in GTK manifested as chicken and egg scenarios, I can't build it, and they don't offer a nice simple statically linked executable you can download and run. However, if you happen to run Lindows OS, you can grab it from click-n-run. So, if you aren't a Lindows customer, screw you, we don't want you as a SIPPhone customer either. No problem. SIP is a standard, right? There are plenty of other software phones. Next up: Gnomemeeting. I had to download and build ALSA, the more complicated therefore better sound system for Linux, to meet the requirements for Gnomemeeting as Gnomemeeting doesn't work without ALSA. It turns out that Gnomoemeeting also doesn't work with ALSA. Next! kphone looks small and simple, the Qt people are on a lot less crack than the GTK people (binary gconf points to the config files which point to the binary which points to the config files that point to the libdir, bindir, and includedir, and if you aren't root, you're completely hosed, even if you change your environment variables to heck, and have fun trying to install gconf and a billion other things to find this out). So I fire up kphone. Naturally, it isn't conrrectly configured for what the Lindows people are offering. That's okay. I change the settings. In order for the changes to take affect, I have to restart kphone. No problem. I quit out, saving things as I go and picking the nice "Exit" option from the menu and start it up again, and lo, there is the new user configuration screen, blank as a sheet, ready to accept changes that will need a restart before they take affect. Yet another chicken and egg problem. I sence a theme. Next up: Linphone. Linphone has lots of blanks that aren't clearly labeled and have no examples of how the data should be input, and the SIP community hasn't standardized on URL-like things, values broken out into individual fields, host:port notation, user@host notation, or so on. Getting it wrong in Linphone won't stop Linphone from trying with obviously bad values, and when it times out from trying, it gives the only error message it has: "Not permitted". After failing to obtain a permit after a few dozen tries, I moved on. olphone is a command line application. If there's sanity anywhere, it's in command line applications. olphone probably works great, but I can't figure out SIP well enough to turn all of the right things on and all of the wrong things off. When I last left it, it couldn't find a "gateway server", I don't know what the hell a gateway server is, and I can't convince it not to look for one. Next!
Oh, crud, that's all of the SIP clients I could find, so that's the end of the road for http://www.sipphone.com. I remember hearing about Skype from one of those P2P software companies. It's either the one that makes Morpheus or Kazaa. I don't remember which it is but it's one of the evil ones where the client is full of spyware even though they say it isn't and they either try to lock everyone else out of the network or they don't place nice on the network. So, against better judgement, I download the static executable for Linux (they support Linux as well as MacOS X and Windows! Yay! They have a static executable! Yay!) and run it. Under Knoppix. Let's see it infect Knoppix with spyware. That'll be good for a laugh. If it fails to install spyware, it fails silently, but maybe it's trying to distract me with pointless forms while it does. I have no idea. I can't see a damn thing. The window is 65,536 pixels wide and 65,536 pixels tall. Haha, software pulled a boner. That's okay. I'll just use the -geometry command line argument that every X program since the dawn of time recognizes. Except this one. It's 65,536 pixels tall and wide or nothing. I think I see the edge of a small control on the screen but I'm not sure. I could move the border over then drag the window back onto the screen and repeat about 65 times to make it narrow enough to fit on to the screen and then repeat about 80 times to make it tall enough to fit on the screen (the LCD's resolution is 1024x800) but that would take a while. And besides, the bad feeling I had about this program got worse after visiting the site to file a bug report, being directed by the FAQ to visit the users forum to get support if I'm having problems (I'm fine, it's your software that's sucking eggs), having to create yet another user id in addition to the one I already created on the site to post to the forum, and seeing about 25 pages worth of Linux users screaming "it doesn't work!" in all of its various and sundry permutations. This software doesn't work.
Nothing works. The editors choice is: tin cans with a string. As a tie breaker for second place, though, Skype works through a firewall, and SIP doesn't. So let me take a moment to pontificate on how utterly stupid it is to make a protocol that requires users to open up ports in their firewall in order to work. A lot of us work at jobs where we don't control the firewall. A lot of us have GPRS service from providers that run a firewall that we don't control. The rest of us are merely too stupid to know that that shiney little 802.11 AP has a firewall built in that needs to be opened (and that WEP should be turned on). Especially since there are well known techniques for puncturing holes through firewalls that only require a neutral 3rd server that isn't firewalled to coordinate the hole poking (when two firewalled hosts want to talk to each other, they just send each other a nice little UDP packet and then the firewalls start letting UDP packets to the same port in from the other host - SIP is UDP based for voice data, so this would be trivial).
Everyone is on crack. No one can write software. In the rare case that something actually starts to work acceptably well, a million zealots descend from the sky and decry it to be old and in need of massive overhaul that increases the complexity thirty times while failing to offer any new utility and then use the oppertunity to demonstrate their inability to design.
-scott
Re:Packages?
scrottie on 2005-02-05T00:56:08
Hey, I'm glad they work for you! Are you trying to clarify my conclusion and accidentially drawing attention away? I decided VoIP wasn't ready for prime time, was too difficult for the average user to get going, wasn't oriented towards Free Software or Linux users, and on Linux, isn't ready for prime time. You say it's my package system [wrong - testing was done on Knoppix as well as plain old Debian], say that Skype works [wrong - the infinately large bug is due to a window manager interaction but again Skype should offer -geometory], and make a number of other assertitions that seem to have nothing to do with my premise and fail to be correct at the same time. Oh lord how I hate replying to people who didn't comprehend the original post in the first place...
This gets back to my rant on "labratory conditions". Ask any statistician about a sample size of one and what can be gleaned from it. They'll hem and haw a lot and admit that there are error margins and such for dealing with this, but they'll go on to discourage you from ever trying to use this data for anything. The "it worked for me!" people (you) are almost as obnoxious and idiotic as the "it doesn't work!" people (me). At least I, after a week of dicking with it, came to the conclusion that quality is subpar (not that none of them really work).
So, in case anyone else accidentally stumbles on your post, let me try to do some damage control here and summerize my original post (none of whose assertions you've actually challenged):
1. SIP doesn't work through NAT for a firewall.
2. Average users don't know how to open up their firewalls.
3. Corporate and mobile users usually can't open their firewalls.
4. Skype shows serious signs of amature design and the support forums back this up.
5. Linux packages (and Linux' package system) are not reliable except in labratory conditions. In the real world, there are manu failure scenarios in which they fail just as consistency as they work under other scenarios.
Let me take a moment to remind everyone that software sucks, no matter what software it is. Even Linux. Remember mutt's motto: "mutt sucks. It just sucks less than other mail readers".
-scottRe:Packages?
autarch on 2005-02-05T04:30:46
Wow, you're a total asshole.Re:Packages?
scrottie on 2005-02-05T06:18:47
That's the first thing you've gotten right;)
-scott
Just found your blog entry while scouring google trying to see if anyone has found a systematic way to get softphones working on Linux, even under ALSA. It's 2006, and you're still absolutely right on all your points -- I'm not even trying to do anything fancy like operate through a firewall. I just...want...the...f******...microphone...to...work on ALSA. Because, hey, it usually works out of the box on Windows, and when it doesn't, there is a regularized and systematic way to get it working rather than the mojimbo voodoo that I need to even get sound out working in Linux.
Thankfully, ALSA sound out has been starting to work for me the past few years on such wildly exotic systems as a CMedia or the Intel's i810 integrated sound card. Sort of. But sound input, even under ALSA, is sort of where sound out was in ca 2000. That is, in a free-as-in-clinic sort of shoddy quality that no one else seems to address. For example, sometimes the device is busy, sometimes it isn't, and why ever would there be something as useful as a debug log you could submit?
What I'm saying is, you're right that VoIP on Linux is a complete nonstarter. Even if the code that runs your softphone is perfect, if the microphone or speakers don't work properly, then it's not even worth s***.