[Editor's note: This is the first in a series of "Project Reviews" suggested by freshmeat staff member Catie Flick. They're meant to draw people's attention to worthy software they might not know. If you there's a particular unsung project you'd like to sing, let me know. Please don't review your own project, or at least make appropriate disclaimers.]
There are several other instant messaging software packages. The most famous ones are AIM, Yahoo! Messenger, ICQ, MSN, and Jabber. I have a number of friends using Yahoo! and ICQ, and I like to have the same online contact with them as I have with others on the IRC networks. This means that I have to keep at least two more applications on the screen and be ready to open several windows if I want to chat with them. Of course, there are many IM clients which offer different features like grouping chat or message windows, auto-hiding, etc. This is great, but I had this dream: To have only XChat on my desktop. The only way to achieve this was to somehow transform my Yahoo! and ICQ buddies into IRC friends.
A few weeks ago, I saw an announcement on freshmeat for an application called "BitlBee" which has this description:
"BitlBee allows users to talk to people on the MSN, ICQ, Jabber, Yahoo!, and AIM networks with any IRC client by emulating an IRC server. A virtual channel is created with all of the user's buddies in it, who can be talked to in the channel or in a query."
I was thrilled!
I pointed my Mozilla right to BitlBee's site to check whether this is really the thing I've dreamed of. One hour later, I had BitlBee running on my machine, and with great satisfaction, I removed all Yahoo! and ICQ clients from my hard drive.
After nearly a month, I'm still using BitlBee, and I'm still amazed at how wonderful the idea behind it is. My dream came true; I have a single XChat on my desktop connecting me to everyone I want.
BitlBee is server software which runs like an IRC server, and you can connect to it with standard IRC clients. When you connect, it creates virtual IRC users who represent your IM contacts.
It has a system control channel named #BitlBee, and you are joined to it automatically. There is also a system user named "root" who will process your commands. All IM contacts who are online are shown in the usual IRC user list for the #bitlbee channel. In the control channel, you can issue commands to root or talk to your IM contacts. You can also open private dialog channels (/QUERY) to any of your contacts.
I'll explain the few steps you need to follow before you can start sending "Hello! I'm back online..." to your buddies. All the commands below should be typed in the control channel (#bitlbee) or a separate private (query) window with "root". You can always request "help" there.
First, you have to register yourself as a user. This is necessary so the server can distinguish different users. You identify yourself with your current IRC nick and a password. Here is how you do this:
register <password> identify <password>
You should replace <password> with the secret word you want to use to access your accounts and setup. You just have to "register" the first time, then "identify" every time you connect. You can even use the common IRC command "/msg nickserv identify <password>" to identify yourself, which happens to be very useful when you want to use it with the auto-connect commands in most IRC clients.
BitlBee uses the term "account" (connection) to represent different IM services. You have one connection to ICQ, one to Yahoo!, etc. Connections are numbered 0, 1, 2... in the order you add them. Here is the command which is used to add a new connection:
irc> account add <protocol> <username> <password> [<server>]
<server> is optional, but I'll use it in the following examples.
To add your ICQ account:
irc> account add oscar 11111111 mypassword login.icq.com
and "root" will respond with:
<root> Account successfully added
Similarly, for Yahoo!:
irc> account add Yahoo cade myihaapass
At this point, you will have two accounts which you can check with the command "account list". The result will be:
<root> 0. OSCAR, 11111111 on login.icq.com <root> 1. YAHOO, cade <root> End of account list
Finally, you have to add your buddies:
irc> add 0 222222222 realp <root> User "222222222" added to your contact list as realp irc> add 1 nik <root> User "nik" added to your contact list as nik
Now I have two friends added, "realp" with ICQ number 222222222 and "nik" who uses Yahoo! IM. The second argument to "add" is mandatory and is the account number.
What happens now? Nothing that you have not already seen on IRC! When your friends go online, you'll see them joining #bitlbee and can talk as usual:
--> nik (nik@YAHOO) has joined #BitlBee --> realp (firstname.lastname@example.org) has joined #BitlBee <cade> nik: hola, thanks for the book! <cade> realp: can you send me the nat hints? <realp> cade: nat hints?! ...
BitlBee also supports "away" or "n/a" states, which are shown with the IRC voice attribute. All your contacts that are online and not away have voice. If your buddy is away or not available, he/she will be shown without voice. You can use various IRC commands like /WHO and /QUERY. Of course, many IRC commands cannot be used, but this is the fault of the IM protocols, not BitlBee.
I hope that this is a true step toward merging all instant messengers into one frontend or even merging them into one protocol. Unfortunately, this will not happen in the near future, but BitlBee leaps quite far forward, and I'd say it is close enough to what I'd like to have. Perhaps it is not exactly what someone else may want, but it is definitely worth trying!
See you online!
BitlBee: http://freshmeat.net/projects/bitlbee/ authors: Wilmer van der Gaast <email@example.com> Sjoerd Hemminga <firstname.lastname@example.org> Maurits Dijkstra <email@example.com> XChat IRC client: http://freshmeat.net/projects/xchat/ IRC: http://www.irc.org/ http://www.irchelp.org/ Yahoo! IM: http://messenger.yahoo.com/ MSN: http://messenger.msn.com/ Jabber: http://freshmeat.net/projects/jabber/ ICQ: http://www.icq.com/