Published on (
 See this if you're having trouble printing code examples

Jabber Works: Here's How

by Derrick Story

I was introduced to Jabber at the O'Reilly Open Source Convention in July 2000. The notion of an open messaging system based on XML sounded like a great alternative to the proprietary battles currently raging. The possibility of using a single Jabber client to chat with friends and co-workers on AIM, IRC, and ICQ seemed even better.

But every time I mentioned this great new hope for messaging to my developer friends, I was greeted with, "Yeah, well, it sounds good. Too bad it doesn't work."

I was actually beginning to believe that it didn't work myself -- that is, until I sat down and began to play with a couple of Jabber clients. Jabber does work -- but setting it up isn't the most intuitive process in the world. Plus, the clients and servers have improved a great deal over the last two months. If you had trouble a while back with Jabber, you may want to give it another spin.

To help you toward that goal, I've listed a few popular Jabber clients and outlined their basic set-up. On the second page of the article, I discuss AIM and IRC -- including screen shot displays of the WinJab client in action.

The key to success: understanding transport modules

Related Articles:

XML Messaging with Jabber

Peer-to-Peer Makes the Internet Interesting Again

News -- view a week's worth of Jabber news via Meerkat.

More from the P2P DevCenter Previous Features

The most important words in the Jabber vocabulary are "transport modules." Essentially, they are plug-ins to the Jabber server that enable communication with non-Jabber systems such as AIM. Currently there are transports available for not only AIM, but ICQ, IRC, MSN, and Yahoo!.

When you first log on to a Jabber server, the default messaging system is basic Jabber (e.g., That's great if all of your buddies only use Jabber. But if you fire off a message to your AIM pal, he'll never see it ... that is, until you activate the AIM agent in your client.

If you log on to a Jabber server that has the AIM transport module enabled (such as, and if you've activated the AIM agent in your Jabber client, then you can chat away with your AIM buddy. In fact, he'll never even realize that you're using a different messaging software.

I'll cover how to specifically enable the various transports later in this article. The main issue here is that if you've tried using Jabber before, and were unsuccessful, this might be the reason why. (The other major cause of failure was that early Jabber clients and servers had performance problems.) The irony is that the transport modules are part of the very genius that enables Jabber's power.

Jabber clients

The second misconception often bandied about was that Jabber only supports Windows clients. Fortunately, that statement is also untrue. At the moment there are a total of 10 Jabber clients for Windows, Linux, Macintosh, and Newton. You can review and download the current list of clients at's client page.

That being said, some of the clients are certainly easier to use than others. Here's a brief look at some of the ones we've tested at O'Reilly. Please note that all of these clients are still in beta. (In other words, give 'em a break!)

Since WinJab operation is covered throughout this article, it doesn't need any further explanation here. I was interested in the Linux client, however, and I contacted one of our developers who's tried Gabber to get his views on its performance. He reports:

"The GTK interface is quite clean and fits in nicely with other GNOME apps. It's pretty self explanatory.

"I had no problem hooking into my AIM, ICQ, and Yahoo pager accounts. I've not been able to succeed in getting the IRC hookup to work, which is a major showstopper for me. One critical feature also missing is "Ignore User." I've found that my ICQ account gets spammed quite frequently: Having windows popping up while I work with spam messages is unacceptable.

"My verdict on Gabber: a good start, but needs more features before I'd run it on a daily basis. I'm sticking with IRC for now."

At this point I think it's too early to discuss the Mac client, Jabbernaut, in much detail. I could get it to work for chat and for AIM too. But its feature set is still primitive and needs refinement. I'm sure we'll see improvement in the coming months.

The basic set-up for WinJab messaging

Since Jabber clients work more or less the same, I'm going to walk through the basics of the WinJab set-up, which you can download from

Enabling AIM

Chances are that most of the buddies that you want to communicate with have AIM, ICQ, or IRC clients. You can chat with any of them using WinJab, but for the moment we're going to focus on connecting to AIM.

First you have to make sure you're connected to a Jabber server that has the AIM transport module running. Once again, is a good choice. Next you have to activate the AIM agent on your client -- you can only do this if you have an AIM account (screen name and password). To activate the AIM agent on WinJab:

Now you're set. You can communicate via AIM just as you would with your previous IM client ... just not at the same time as any other IM client. You can only chat via one AIM application at a time.

Screen shot of the WinJab Messenger window with AIM Transport activated.

In the WinJab Messenger window you can see that AIM Transport is activated with one co-worker online. Notice that the "Chat: Terrie" tab is red. That means there is a message waiting there. The other tabs show my online status and IRC activity.

Screen shot of the chat window brought forward.

Having clicked on the "Chat: Terrie" tab, I bring that window forward. If I'm summoned in the IRC window, that tab will turn red.

IRC chat in WinJab

At this point in time, the toughest aspect of using WinJab for IRC chat is finding a Jabber server that has IRC Transport loaded and running.'s server supports IRC and has performed well in my tests.

The reason why that's important is the same reason why it's important for AIM or ICQ communication via Jabber -- you need the IRC transport to connect you to the server that you really want to use. In this case, it's an IRC server. At O'Reilly, we have an IRC server that we use for our project coordination. I can't connect directly to that server via Jabber the way I can with my dedicated IRC client, but I can connect via's Jabber server with IRC transport loaded. That server in turn talks to our O'Reilly IRC server and puts me in touch with my co-workers.

Screen shot of the IRC window.

The IRC window is cleaner than many other dedicated clients. Online members are displayed in the left column. Text and IRC commands are entered in the bottom space. If summoned on another channel, that tab will turn red.

"Are there performance issues by virtue of adding an extra server?" you may be wondering. Well, none that I noticed. The only real issue is that you're dependent on two servers to get one job done, and we all know the consequences of that on certain days.

You can review a pretty good set of step-by step instructions for setting up IRC chat on WinJab at the WinJab HowTo tutorial page. One caveat I have concerning those instructions has to do with the address format that you enter in the Group field. The HowTo says that you need to enter it in this format:
"#jabber" is the group name, and "" is the IRC server that you want to connect to via IRC Transport on My experience was that I didn't need the "irc." to precede the "" URL. In fact, I couldn't get a connection until I removed it. Your results may vary.

Important Jabber web sites

There are four Jabber sites that I think are worth remembering. For developers, is the site for tools and news. also is the best location for servers that have a wide variety of transport modules loaded, such as AIM, IRC, ICQ, Yahoo!, and MSN Messenger.

I also like for end users. It has a current list of clients, easy-to-understand tutorials, and lots of Jabber news.

If you want to keep up with how Jabber is faring in the business world, is definitely the place to go. They have a good-looking site with lots of news and downloads, and they do a terrific job of waving the Jabber flag.

And finally, a site just pointed out to me by Peter Saint-Andre, is They provide a list of Jabber servers and the transport modules loaded on those servers. Very handy indeed.

The bottom line

Is Jabber a viable messaging tool? In short, even at this early stage of development, the answer is yes. I like both WinJab and JabberIM clients, and I'm guessing that the other clients will catch up quickly. The Jabber concept is refreshing in light of the proprietary battles being fought among the messaging giants.

The fact that the bulk of the Jabber community is committed to the open source approach for software development is a definite bonus.

So, not only does Jabber work, it works openly.

Derrick Story is the author of The Photoshop CS4 Companion for Photographers, The Digital Photography Companion, and Digital Photography Hacks, and coauthor of iPhoto: The Missing Manual, with David Pogue. You can follow him on Twitter or visit

Return to the P2P DevCenter.

Copyright © 2009 O'Reilly Media, Inc.