Articles / BitlBee: IRC vs. Instant Me…

BitlBee: IRC vs. Instant Messengers

I like IRC. Actually, I like it very much. Usually, I start my XChat early in the morning and keep it on a desktop nearly all day. It works quite well for me, I can find my friends there for a chat, ask for help, or even help someone else. Also, XChat (like other IRC clients) allows me to write small plugins in Perl or Python to do various tasks like paging me on the mobile phone when I'm away. IRC clients and all kinds of programs and plugins surrounding them are well-deployed on nearly every platform. Unfortunately, IRC is not enough to keep in touch with everyone.

[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.]

Wandering Around

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.

Inside BitlBee

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.

Introducing Yourself

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.

Alive!

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 (222222222@login.icq.com) 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.

Hope

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!


References

    BitlBee:          http://freshmeat.net/projects/bitlbee/
             authors: Wilmer van der Gaast <wilmer@gaast.net>
                      Sjoerd Hemminga <sjoerd@hemminga-online.nl>
                      Maurits Dijkstra <mauritsd@xs4all.nl>

    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/

Recent comments

18 Sep 2004 18:34 Avatar davidbl

BitlBee one step closer to anarchy
When i looked at the article by Vladi, it was like a deja-wu.

I to started out with IRC back in the oldschool days where bbs was &quot;in&quot; and im to one of those who use my irc hookup to manage diffrent tasks and controle/command my machines directly from it. Iv'e even gorn that far that i recive my mail notify's/subjects directly on IRC (made a phpbot that parses the incomming mail from a .qmail forward). And when i need to write a mail i use one of my bots to do it through. Iv'e even made a mail2irc gateway. But that's only on the email side. Iv'e always been into socket programming and iv'e advanced onto php atm. So I always tries to find new things i can convert to be managed from IRC. (Yes im a controle freak, and irc temps me even further).

Today i controle my shoutcast,winamp,email,server status,freshmet projects,mail server,domain lookups,cluster apt install (for debian) and loads of other stuff like getting RSS/XML feeds and so on from IRC ;)

But some of the last things that nag me is that i have to fire up CenterICQ or Gaim when i need to work on the MSN/ICQ/AIM side. BitlBee was also avaible at the time i looked for alternatives. But at that time i tryed it but the results was something that was ment for /dev/null if you get my drift heh. So bugged and half the messages did'nt got sent and the keymap was screwed up. But today the project BitlBee just rules. And that is why i wrote in my topic &quot;BitlBee one step closer to anarchy&quot; as we move in the right direction, on ruler, one leader. The more we can gather in one place it will optimice our work progress actuly. I know this ain't essential when sitting at home snoozing on some channel on irc. But even without you knowing it, you actuly save time and it's more easy to get the full overview.

I just love BitlBee, it's clever - it works like a charm. And i must admit, in the last few days iv'e skipped CenterICQ to used BitlBee. And is Vladi, i to removed most of my chat clients. The only one i kept was CenterICQ as i use it alot, also to see rss feeds. But CenterICQ aint online that mutch anymore as BitlBee runs ;)

2 Thumbs up for BitlBee, it's a must try for the real hardcore IRC fan.

19 Jul 2004 18:37 Avatar trejkaz

But Jabber _is_ a true step!
&quot;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&quot;...

You may not know this, but Jabber _is_ already a true step toward merging all instant messengers into one frontend, _and_ even one protocol.

A single Jabber client supports one protocol with various extensions, and the transports take care of the translation between the current legacy IM systems (only because those legacy IM systems didn't support Jabber. If they did, you would be able to talk to them directly, without the transport!)

Transports exist for ICQ, MSN, AIM, Yahoo!, and believe it or not, even IRC.

What the world needs, though, is for IRC servers to run a Jabber frontend so that Jabber users can connect directly to the network. That would be the ideal scenario, IMO. :-)

25 Feb 2004 05:44 Avatar managementboy

Re: cool!
% Any sugestions?

Responging to my own question... check out: http://cgiirc.sourceforge.net/ for a nice php interface to IRC... this enables you to have a valid html to irc to messenger interface (http firewall compliant interface)

works for me

14 Feb 2004 06:16 Avatar managementboy

cool!
I have compiled and installed it on SuSE 9. Works like a charm. Right now I use it with MSN, Yahoo and ICQ.

I was looking into something like this, as my company has a (VERY) restrictive (Microsoft) firwall/proxy. Right now I am searching for a PHP or Java frontend to IRC sucht that I can install it on my home server.

Any sugestions?

No, I can not install anything on my work PC. I don`t have admin rights and it is forbidden.

12 Feb 2004 04:16 Avatar toop

My view
I've used Licq with console plugin on my non-24/7 Debian GNU/Linux, but couldn't get this working on my 24/7 OpenBSD. The Licq port for OpenBSD is dead too. Because i also didn't want to use a seperate MSN program and the integration with IRC sounded awesome i decided to run BitlBee. Later i replaced &quot;Theocracy&quot; with FreeBSD on which Licq with console plugin does work, but i'd care less now! This is great software! BitlBee misses a few common features, but that's okay with me, because it means i only need to have 1 screen'ed program which has all the things in it i want: Irssi with loads of windows (and Irssi-proxy + SSL as well).

If you're comming to FOSDEM you can buy a BitlBee t-shirt over there. Pictures of it are available on the site. I already have one, it's good of quality.

(Sorry Wilmer, but i'll be at FOSDEM :-)

Screenshot

Project Spotlight

Kigo Video Converter Ultimate for Mac

A tool for converting and editing videos.

Screenshot

Project Spotlight

Kid3

An efficient tagger for MP3, Ogg/Vorbis, and FLAC files.