Category Archives: Technology

Google Talk And Skype Are Boring, And Here’s Why

It seems that everywhere I turn on the web these days, people are excited about Google Talk and/or Skype. “Real voice conversations over the Internet for free,” people say.

True.

But, at least in the case of Skype, you are hooked into a single vendor, and at the mercy of that vendor. (I don’t know about Google Talk’s network specifically.) Neither one has done anything really innovative, either. Neither has any features that SIP doesn’t.

Really, both Google Talk and Skype are “been there, done that” technologies. And what’s more, far superior technologies exist.

So in response to all this undeserved hype, I would like to take this opportunity to talk about SIP and why I find it much more exciting for voice conversations.

What SIP Is

Put very simply, SIP, in its most common incarnation, is a protocol for carrying voice conversations over IP networks. It is used for everything from calling the kids in college from a home PC, to massive telecommunications infrastructure by some of the largest multinational corporations in the world. Wikipedia has a technical description of SIP, and you may note that some other protocols (such as RTP) are involved. For most purposes, though, these types of calls are called just “SIP”.

SIP is an open industry standard. They are players of all sizes in the SIP marketplace — from giants like Cisco, to “home VOIP” companies like Vonage, to small non-profits offering free calling services.

First, let’s take a look at some use cases for SIP. Then, I’ll describe all the variety available in the SIP marketplace, and give some examples of why it beats out Skype so easily.

SIP for free IP-to-IP calling

If you are using Skype or Google Talk on your PC, to talk to someone else over the Internet also using a PC, you are using what I’ll call “IP-to-IP” calling. That is, your call never hits the traditional (PSTN — Public Switched Telephone Network) phone system. It is carried 100% on the Internet.

This is trivial with SIP. At its most rudimentary, you can connect to someone else by giving their IP address and a “phone number” to connect to at that IP. In practice, this is rather inconvenient and is rarely used.

Rather, most people use a service such as Free World Dialup (FWD) for IP-to-IP calls. It’s completely free and works with any SIP phone. You just sign up and get how ever many FWD “phone numbers” you want. You can be as simple as you like, and treat it like Skype, or you can set up voicemail, PBX systems, whatever. A little-known fact about FWD is that they have peering agreements with many commercial VOIP providers, letting you call into and out of the FWD network for free if you’re a customer of one of these providers (or know one).

SIP for IP-to-PSTN calling

Many people are using SkypeOut, which lets you place a call from your PC to a phone on the PSTN (traditional phone network). They charge approximately $0.023/min USD for this service. With Skype, this is pretty much your only choice.

If you’re using SIP, you have — and this is no exaggeration — hundreds or thousands of choices. Personally, I use and recommend Voxee, which charges $0.011/min USD for this service, and that’s without any sort of bulk buying arrangements. SkypeOut is more than twice as expensive.

There are plenty of other options — Vonage is one that targets residential customers, and there are others that target large corporations that sell minutes in blocks of 1 million.

In SIP lingo, a company that provides IP-to-PSTN calling is known as a “termination provider” — that is, they “terminate” your call onto the PSTN.

SIP for PSTN-to-IP calling

As far as I know, Skype does not support this. (Update: there are some sketchy details on SkypeIn; see comments below.)

Many of the SIP providers linked to above also provide the reverse: they will, for a small monthly rate (often under $5), sell you a local number. When someone calls that number, the call is routed over the Internet to your VOIP system as if someone had called from another VOIP node on the Internet. Rates are usually quite low on these as well, even for 800 numbers.

In SIP lingo, companies that provide this service are said to provide “DID” (Direct Inward Dial) service.

In addition to the above, there are some other general purpose PSTN-to-IP gateways. IPKall, for instance, links regular PSTN numbers into the FWD network.

SIP Phones

With Skype, any device that you are using must be used with a PC that is running the Skype software. That may not seem like a problem to you, but it can be a surprising limitation.

Of course, there are plenty of PC-based phones available for SIP. They are called “softphones”, and there are dozens available.

You can also find “hardphones”, which are implemented in hardware. These phones require no PC to operate. They typically have an RJ-45 Ethernet jack only, and all they need is a network connection and the name of a server (or two) to go. A person could have no PC in the house at all and have a working SIP hardphone, no problem.

There are dozens of these available as well. I personally have several Sipura SPA-841 phones, which sell for about $80. Very nice. Work right out of the box, but also highly configurable.

There are also a few of SIP hardphones that use 802.11b Wifi instead of Ethernet. This market is growing.

SIP Analog Telephone Adapters

Perhaps you’d rather keep the traditional analog phone that you already have, instead of buying a new phone. No problem, you can buy SIP Analog Telephone Adapters (ATAs). ATAs for personal use sell for under $100. They typically have two ports: an RJ-45 Ethernet port, and an RJ-11 phone port. Plug in the Ethernet and phone, point it at the appropriate server(s), and you’re set. They provide dialtone, caller ID, ring voltage, etc. as appropriate to the analog phones. Once again, no need for a PC.

In more advanced settings (see below), you can also use a different type of ATA to go the other way: to integrate a line from the PSTN into your VOIP setup. More on that below.

Be Your Own Provider

You can run professional, industrial-strength PBX systems in your own home with a program such as Asterisk. This gives you all the features you’d expect from a “business” phone system: multiple extensions, voice mail, automatic call routing using least expensive lines, etc.

I’ve written about my Asterisk setup and given some details on Asterisk before, so I won’t go into a whole lot of detail here.

Suffice it to say that you can really go places with SIP and Asterisk. You can use an ATA to let your outgoing VOIP calls get routed over a PSTN line, or the Internet, depending on costs and whether the appropriate lines are available. You can get bulk concentrators, connecting dozens or hundreds of analog phone lines to a VOIP server at once. There are a bunch of options.

Common Questions

Here are some questions you may have:

What is the sound quality of SIP?

There are many different protocols, some compressed, some not, that are frequently used with SIP. In general, over my DSL link, I find SIP calls to sound better than calls I place with a traditional phone.

Is it hard to set up?

A basic setup, similar to what you would use with Google Talk or Skype, is really very easy. FWD has a nice Quick Start Guide that you might want to check out.

Obviously, if you are setting up a PBX with Asterisk on Linux, you will need a bit more expertise.

Is SIP here to stay?

Unquestionably yes. There are very big names (Linksys, Cisco, Nortel, Earthlink, SBC, etc.) using SIP. There are also community organizations that use it. It will be here for a long time.

Where can I find more information?

If you have some basic questions, you can post comments here and I will try to help you out. (I will not reply to e-mailed questions.) I highly recommend the VOIP Wiki at Voip-Info.Org. It is a thorough and amazing resource that I have referred to on many occasions.

Is it available globally?

Yes, all over the world. VoIP User, for instance, is a community-run PSTN termination service in the UK. Public and private organizations exist all over, though.

Recent Coding

I’ve been busy coding lately. Here’s what I’m up to:

  • A Haskell binding to OpenLDAP. I’ve got the groundwork laid (I can connect and bind to a LDAP server by now). Next up: searching. After that, the rest should be fairly easy. ETA about 1 week. Development sources: fetch with darcs get http://darcs.complete.org/ldap-haskell. See also the related haskell-cafe thread.
  • Packaged up and uploaded hsffig to Debian. hsffig will parse C .h files and automatically generate Haskell bindings and prototypes for them. It requires zero human assistance. Very, very, very cool. A little rough yet, but this is exciting stuff. Check out the source package with darcs get http://darcs.complete.org/debian/hsffig.
  • Packaged up and uploaded libcdk5, the latest version of the Curses Development Kit (CDK). CDK is a much more high-level tool than ncurses, and lets you say things like “show a dialog box” instead of “draw a border from 3,20 to 3,70 and make it gray”. Check out Debian source package with darcs get http://darcs.complete.org/debian/libcdk5.
  • Updated my MissingH Haskell library so it now builds and runs properly on Windows platforms. I now remember how much I detest them. (Urgh, drive letters complicate path manipulation in millions of annoying ways.)

Looking For Text-Mode Widget Library

I’m looking for a text-mode widget library. Something that has dialog-boxes, etc. for text-mode (curses/console/xterm) programs.

I’ve looked at these so far:

  • tvision/tv/turbovision: Questionable license situation, unsuitable for Debian
  • CDK: Fine on *nix, but unusable on Windows
  • CTK: Not maintained for several years, looks dead, not as good as CDK anyway

I want something with a C library, that supports *nix and Windows, and has support for things like menus, dialog boxes, etc. Any suggestions?

Drupal Doesn’t Stop Spam

I run Drupal for this site, as well as some others hosted here. My complaint about it is that the spam solutions in Drupal are ineffective and poorly-designed. The situation seems to have actually gotten a bit worse in the most recent versions of Drupal. Here are my complaints:

  • No working support for captchas. (I had lots of problems with captcha.module)
  • Spam filter is not very effective, despite being properly trained on huge volumes of spam. I get dozens, if not hundreds, of uncaught spam comments per day.
  • The “mark as spam” button has no effect on some very large spams.
  • There is no feedback to users whose comments have been marked as spam, indicating to them that the comment will be manually approved.
  • There is no auto-expiry of spam comments; they sit in the database forever unless manual action is taken.
  • Deleting spam comments — which seems to be the way that people are encouraged to use the spam module — requires: checking one checkbox per message, then selecting “delete”, and repeating this for each page of the spam comment listings (it only puts a few dozen per page; I get about 15 pages worth in a slow day.) Even with some Mozilla toolbar help, this is a slow and cumbersome process.
  • No “auto-delete” feature for spams referencing certain URLs.
  • Poor recognition of &-sequences in HTML
  • Nobody really maintains the spam filter
  • Does nothing at all to stop trackback spam

So, my question is: what blogging software has good anti-spam capabilities?

Back when I used WordPress, I used the Captcha module for it, which worked well. (Its normal anti-spam capabilities didn’t.) Drupal doesn’t have a working Captcha module, and everything else is hugely labor-intensive.

Is there something better out there for Drupal anywhere?

I often get the impression that the authors of the spam module in Drupal get less than a dozen spams per day on their blogs. It simply doesn’t scale to places that get hundreds of spams per day.

(Update: Drupal also isn’t very responsive at addressing bugs…)

Linux, Bluetooth and Mobile Phones

I got my first Bluetooth-enabled mobile phone this week, a Motorola v551. I’ve been playing with the Linux utilities for working with mobile phones and have assembled some links. Most of the pages out there seem focused on SMS features of a mobile, or using a mobile phone for Internet access for a Linux box. I’m interested in neither, and care more about phone book syncing and transferring files back and forth between the phone itself and a PC.

There seems to be quite a community built around hacking Motorola phones as well. The Hofo Guide is the authoritative resource.

HowardForums.Com is also a great site.

Albatron *Really* Sucks

So I have some complaints about the lack of support from Albatron. Here’s a fun little e-mail from them:

From: RMA Support <tan@albatronusa.com>
Date: Fri, 24 Jun 2005 17:30:52 -0700
To: John Goerzen <jgoerzen@complete.org>
Subject: RE: Status?

Dear Customer,

Thank you for contacting AlbatronUSA/Monivision Support.

At the moment, we do not have any record of the invoice. Please resubmit
with your name.
[snip]

Reaaaallly…. Let me just check my /var/log/exim4 directory…

2005-06-20 22:31:17 1DkZTh-0006Nv-JB => rma@albatronusa.com R=dnslookup 
T=remote_smtp S=21076 H=mail.albatronusa.com [66.15.159.40] C="250 2.6.0 
<20050621033048.GA8520@fritz.complete.org> Queued mail for delivery" 
QT=8s DT=1s

Ahh yes, thought so. Sent to you 4 days ago, even. 21K. Gee, perhaps it INCLUDES A PDF OF MY INVOICE, COMPLETE WITH MY FULL NAME ON IT AND IN THE HEADERS?

So here’s my dilemma. My system has one free slot. I popped a spare Ethernet card in it to restore network connectivity to my MythTV box (the problem that started all of this is that the on-board Ethernet on this Albatron motherboard went dead.) To do that, though, I had to remove the little plate that provides the S/PDIF optical audio output. I’m not using it yet, but had hoped to.

So…. do I risk sending my motherboard to a company who, in all likelihood, will lose it once it arrives (or take months to return it to me), or just deal with not being able to get audio output? (The new Stargate season starts in a few weeks, and I don’t want to miss it!)

Right now, I’m leaning towards giving up on the digital audio output and just telling anybody that reads this blog about how ALBATRON SUCKS.

There were a lot of helpful suggestions regarding their slogan “Spirit of the albatross” I mentioned in my last post. I suggested they should be “spirit of the weasel.” Some others pointed out how “Spirit of the albatross” was strangely appropriate. Here, Albatron, are some more suggestions for you:

  • “Spirit of Richard Nixon”
  • “Spirit of Digestive Biproducts”
  • “Spirit of Windows ME”
  • “Spirit of That Guy Selling Fake Rolexes In The Alley”
  • “Spirit of Blog Spammers”
  • “Spirit of Outlook”
  • “Spirit of Online Poker Sites”
  • “Spirit of Spyware”
  • “Spirit of That Crappy Paperclip In MS Office”
  • “Spirit of Microsoft Exchange”

(Yeah, that last one was really hitting below the belt, but they deserve it…)