Full-Time Jabber

Friday, May 19, 2006 by darco
Posted in , ,

A few months ago I made a post telling the world that as of my birthday of this year I would no longer be using AOL Instant Messenger, MSN Messenger, Yahoo Messenger, or ICQ—and use federated IM services (Specifically those using the Jabber protocol) exclusively. Well, guess what: Today's my birthday.

For those of you who are still confused as to what exactly Jabber is, read on and I'll break it down for you one more time.

What's the problem?

I know a lot of friends who have Hotmail accounts. I also know a lot of friends who have GMail accounts. I personally don't use either, I have my own email server at deepdarc.com. Do I need to have an account on Hotmail in order to email my friends who use Hotmail, or a GMail account to email my friends who use GMail? Of course not—that would be absurd. Yet, that is exactly the situation we tolerate with respect to instant messaging.

I have friends who use only AIM, I have friends who use only MSN, and I have friends who use only Yahoo. In order to be able to keep in contact with all of them, I have to have accounts on each one. AIM users can't talk to MSN users. Yahoo users can't talk to ICQ users.

Why is this the case? Is there some sort of technological barrier? IMHO, the only excuse for this situation is corporate greed. But it doesn't have to be this way. This is where Jabber comes in. Instead of having the majority of the world's IM capability in the hands of three large American corporations, Jabber allows anyone with a domain name to set up their own Jabber server.

Jabber is different from the "legacy" IM systems in that if I have an account on Google Talk, and my friend has an account on Gizmo Project, we can still communicate. In fact, communicating with someone who has an account on another server is just as easy as communicating with someone on your own server.

Why am I not using legacy services anymore?

Quite simply, to encourage something called the network effect. Wikipedia sums it up quite well:

The network effect is a characteristic that causes a good or service to have a value to a potential customer dependent on the number of customers already owning that good or using that service.

In other words, in order for Jabber as an open communications platform to be successful and useful, people must use it. Often in my evangelical fits, I'll hear the excuse, "I don't know anyone who uses Jabber who doesn't already use a service that I am already on". Well, now they do—me.

I don't expect other people to do the same thing that I am doing. Feel free to continue using the legacy services like AIM, MSN, etc... I'm only asking that you have a jabber account, and that you use that account as much as you would use those other legacy services. If you have and use a GMail account, then you are practically doing this already!

But just what exactly is Jabber?!

When you hear someone (probably me) talking about Jabber, they are usually referring to one of the following:

  • The XMPP (Jabber) Protocol
  • The Public Federated Jabber Network (PFJN)
  • The Jabber Platform (which includes the previous items, as well as jabber chat clients, devices, transports, etc.)

Jabber is, strictly speaking, the informal name of an open-standard decentralized instant messaging protocol officially called XMPP.

NOTE: It is also the name of a company called Jabber Inc., which sells Jabber-based products. However, the Jabber platform is much larger than this single company. Don't let this confuse you! If you want to go to the authoritative website about jabber, that would be jabber.org, not jabber.com!

The network of independent Jabber servers on the internet make up the Public Federated Jabber Network. If you have an account on a server on the PFJN, then you can communicate with anyone else who has an account on a PFJN server. This means that Google Talk users can communicate seamlessly with Gizmo-Project users (and vice-versa), as both of these services are on the Public Federated Jabber Network.

About Spam/Spim/Spoofing

With respect to network topography, Jabber is similar to eMail. Messages are sent from the client to the server, which then sends that message to the destination user's server, which then sends the message to the other user's computer. However, there is one very important distinction to make between the way email works and the way Jabber works: A Jabber server requires some sort of authentication from servers trying to connect to it, whereas an email server does not.

This is a critical flaw in today's email infrastructure, and is directly responsible for the deluge of spam that we all receive on a daily basis. Email servers take no steps to ensure that the messages they are receiving were actually sent by who they say they are.

Authentication is all about knowing that who you are talking who is who they say they are, and it is a required part of the XMPP protocol.

There are two ways that servers can authenticate themselves to other servers: Server Dial-Back, and Certificates. There is plenty of documentation as to how each of these work, so I'll avoid duplicating that information here. The important part to remember is that with Jabber you can be quite sure when you receive a message that it is from who it says it is from.

Jabber IDs

Jabber IDs look a lot like email addresses, and this is intentional. You have a username and a server, separated by a "@" symbol. They are often called JIDs for short. My JID is darco@deepdarc.com.

Use Jabber!

When I say that you should "Use Jabber", I mean that you should have an account on a server which is on the PFJN (Or, more simply, a "Jabber server"). There are many services on the PFJN which allow anyone to register for an account:

Not all of these services offer the same features, so shop around!

Choosing a program

If you have an account on a Jabber server, then you have a choice as to which jabber client you can use. Here are some of the most popular, broken down by operating system. Note that some of them will only work with a specific service, but that doesn't mean you can't use a different client with that service.