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., DexStory@jabber.com). 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 jabber.com), 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 jabbercentral.com'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!)

  • JabberIM (Windows) -- A solid client that provides basic messaging functionality. Made available by the Jabber.com folks.
  • WinJab (Windows) -- Possibly the most sophisticated Windows client enabling messaging and RSS headlines functionality. Well-designed, strong performer. Written by Peter Millard.
  • Jabbernaut 0.5b3 (Macintosh) -- Greener than JabberIM and WinJab with a much less polished UI. If you're Mac only, this is your choice. If you work in a multi-platform environment, then I'd use the Windows or Linux clients for the time being until Jabbernaut matures.
  • Gabber 0.7 (Linux/Unix) -- A GNOME client that is solid, but it still needs more features. Provides good messaging functionality however.

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 jabber.com 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 jabbercentral.com.

  • Save the executable file to your hard drive, then launch it. WinJab will then be available under Start/Programs/WinJab.
  • Launch WinJab and you'll soon be greeted with a configuration dialogue box. Click "new account" and start with these settings:
    • xProfile: [Create a name or just use "Default"]
    • Server: jabber.com (unless you have a specific server in mind}
    • Port: 5222
    • Username: {I recommend the same user name you have for your other messaging services}
    • Password: {you know the drill}
    • Resource: {WinJab works fine}
    • Priority: 0 {works fine}
  • Send a message to another jabber.com user by clicking on the "open a chat window" icon, typing in his Jabber name, then clicking the send button.
  • If you don't know the Jabber name for a friend that you know has a Jabber account, go to "Roster," choose "Search for User," then "Search via Jabber User Directory." Type in the first and/or last name of the person you're looking for, and Jabber will list all of the registered users matching those criteria.
  • At this point you're up and running with basic Jabber messaging. You have a number of options you can set in the preferences window. An excellent guide to helping you set those preferences correctly is Peter Saint-Andre's WinJab HowTo page.

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, jabber.com 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:

  • Choose "Agents," then "AIM Transport."
  • Fill in your AIM user name and password under the Registration tab, then click the Register button.
  • Click OK when the Presence Info box appears.
  • To add your AIM buddies, go to Roster, Add User.
  • Select AIM Transport under User Type.
  • Add your buddy's screen name and the group to list him in.

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. Jabber.org'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 Jabber.org'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 "linux.com" is the IRC server that you want to connect to via IRC Transport on Jabber.org. My experience was that I didn't need the "irc." to precede the "linux.com" 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, jabber.org is the site for tools and news. Jabber.org 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 jabbercentral.com 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, jabber.com 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 jabberview.com. 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.

Return to the P2P DevCenter.