Considering shortcomings of various universal IM clients, be they feature or technical (see below), I opted to use a basic client of my choice with the hopes of increasing its interoperability. I was successful.
As people may know, I really like the SeaMonkey suite. I use its Address Book, web-page creator called Composer, Mail and, of course, Navigator –its browser. I’d be using Calendar (rather than Sunbird) if it hadn’t been removed (re-implementation expected at a later release date with suiterunner). Of interest to this article, SeaMonkey incorporates an IRC client called ChatZilla (which is also available as a Firefox extension for Firefox users).
I personally like ChatZilla but it only handles IRC. Its a prototype for an IM client (presumably for more than just IRC), but never made it past the IRC protocol. Bitlbee changes this, taking it from its IRC limitations –extending it to MSN, Google Talk, Jabber, ICQ, AOL, and Yahoo IM protocol interoperability. Doing so was quite easy, as you’ll see in this HOWTO. Writing this article was much more tedious. (Ignore “” surrounding commands. “” identify commands and GUI buttons).
Start of preamble or ramble
I haven’t really been taken by any IM (instant messaging) client. On occasion, I’ve been known to use ChatZilla, a basic IRC text messaging program that most (end) users use when in need of technical assistance. My favourite MSN client is aMSN, but that does not help with my Google Talk contacts (or other IM accounts) –nor does it help with ICQ, Yahoo, or Jabber. It’s a little non-Mac intuitive but reliable and always stays on top of MSN’s changing protocols (not even affected on at least two occasions). It presently has video but no sound capability, and only handles the MSN IM protocol. aMSN also supports batch editing of contacts (see paragraph below).
In contrast to aMSN, Adium initially had a great reputation for low memory usage, as an AOL (AIM) compatible client. Presently, it is more of a native (Quartz oriented) port of Pidgin (previously called Gaim) that allows IM protocol interoperability and –as far as looks– is very customizable. On the down-side, it lacks batch editing so that changing numerous contacts’ group categories requires manually editing of each buddy, making for a tremendously tedious task. It also doesn’t support video or sound either. Furthermore, I don’t know if it’s an Adium/Pidgin problem, but I’ve recently been losing my MSN contacts while I’ve never noticed Jabber/MSN gateways and aMSN to do this.
Being that I am so unhappy with the best IM clone clients, I opted to use ChatZilla. I don’t claim that ChatZilla or Bitlbee support video or sound, but given that I don’t frequently use video, sound, or file transferring, I rather use ChatZilla with increased IM interoperability via Bitlbee.
End of preamble or ramble
Without further reading, this is how to get Bitlbee and ChatZilla to connect to your IM accounts.
Connect to you local Bitlbee public gateway (for a list see <http://www.bitlbee.org/main.php/servers.html>). Note that jIRCii and ChatZilla do not use the “/connect” command as suggested on documentation reviewed but “/server”. Other IRC clients will take the “/connect” command instead of the “/server”.
Connect to a Public Server
if you’re connecting to your own biltbee server (installation not covered herein).
Deprecated (joins automatically now, contrary to Bitlbee documentation)
/join #bitlbee (in ChatZilla, although “j” will also work)
You should be greeted with a welcome message such as, “Welcome to the BitlBee gateway!”
Important Note: Bitlbee commands are input into (the) “&Bitlbee” (tab), not into the Bitlbee server (tab).
Once there you can get help by passing,
- help commands
- help quickstart
- help quickstart1
- help quickstart2
- help quickstart3
- help groupchats
- help groupchats2
You will need to identify yourself using your password on your next login, from within (the) #bitlbee (tab).
“account add <protocol> <username> <password> [<server>]”
“account add oscar herlo-aim mypassword login.oscar.aol.com”
- MSN: “account add msn <email@example.com> <yourpassword>”
- ICQ: “account add oscar <usernumber> <yourpassword> login.icq.com”
- AIM: “account add oscar <username> <yourpassword> login.oscar.aol.com”
- YIM: “account add yahoo <username> <yourpassword>”
- Jabber: “account add jabber <firstname.lastname@example.org> <yourpassword>”
- Google Talk: “account add jabber <email@example.com> <yourpassword> talk.google.com:5223:ssl” (if the 5223 port does not work try it with “5222” [see below for an updated Google Talk procedure])
- Meebo IM: “account add jabber <firstname.lastname@example.org/Home^> <yourpassword> meebo.org:5222″ or without the “/Home” bit as in, “account add jabber <email@example.com> <yourpassword> meebo.org:5222″
Note that you need to specify the fourth argument with ICQ and AOL. Pass “help account” to see more information. Meebo is not supported and –as of at least Oct. 6, 2007– Meebo seems to have fiddled with their side of things, apparently dishabilitating communication but still cuing you to accept contacts as people surf onto your page.
UPDATE (Sept. 25, 2009): At some point, the Google Talk syntax above was deprecated for a three part process.
- “account add jabber <firstname.lastname@example.org> <yourpassword>”
- then pass “account list” to get the account ID just setup and plug it into the following command. There’s no longer a need to worry about hitting the correct port (5222 or 5223).
- “account set IID/server talk.google.com”
Wait for confirmation on account adding confirmation.
“Account successfully added”
to save account additions.
and enable all IM accounts. Use this command to enable all your IM particular contacts) or
“account on 0”
and turn on the AIM account.
lists IM protocols running and IDs each one allowing you to log them on individually with the corresponding ID (“0”).
There are four ways to message someone.
Within the Main Viewer
- This is done with the following syntax. “contactUsername: blah blah blah”
- “/msg contactUsername: blah blah blah”. Once the correspondent has reciprocated, use the tab key to spit out “/msg contactUsername:” where “contactUsername” belongs to the last person that IM’ed you.
Breaking into a New Tab
- “/query contactUsername blah blah blah”.
- Opening a “Open Private Chat”, via highlighting the contact on the roster and selecting “User Commands”. This is if your contact has not initiated a chat.
- To open a private chat with it’s own tab, click on the contact that messaged you within the “viewer” (not the roster). This, is if your contact has initiated a chat.
- “account list” — lists all accounts with IDs
- “account add <protocol> <userName> <password> [<server>]”
- “account on” –turn on all IM protocols
- “account <ID>” –turn on ID corresponding IM protocol
Ordinary User Needs
- “add <account id> <handle> [<nick>]” — adds a single user to roster (if not already a contact), in practise, “add msn email@example.com>”, where “msn” is the corresponding account protocol otice that, when adding contacts, only Hotmail and Jabber (including @gmail and @meebo.org) need the complete email name (username@domainName). AIM, ICQ (both OSCAR), and Yahoo necessitate the username without the handle extension.
- “add msn
Adding contacts from multiple services that use the same protocol can be confussing. In this case you should use the protocol ID obtained from “account list” command. This differentiates ICQ and AIM (AOL) –both OSCAR protocols– and GMail and Meebo –both Jabber protocols. If you can’t recall the above syntax, just pass “account list” to jog your memory –assuming that you’ve added the accounts correctly. Notice I didn’t include Meebo as you don’t want to be adding Meebo contacts from your WordPress widget service. NickName is optional, in fact, best to leave it out with adding a GMail contact and posthumously use the “rename” command to change his contact’s nick name on your roster.
or “add 0 <
- “remove [<nick>]” –deletes a single user off of your list of contacts
- “rename <oldnick> <newnick>” –renames a contact
- “qlist” -lists pending questions, such as “allow user to contact you?” from root (answerable with “yes” or “no”)
- “yes <number>” –accepts request to accept another as contact
- “no <number>” –refuses request to accept another as contact
- “block <nick>” — blocks users already on roster
- “allow <nick>” –unblocks a contact
- “block <account>” –lists blocked contacts on account ie., “block msn”. The account ID, obtained from “account list”, is necessary for showing ICQ and AIM blocked lists. Thus, “block OSCAR” does not work for ICQ nor AIM.
- “account del <account id>” –deletes an account, that is, an IM account
- “blist” and “blist online” –lists on-line contacts
- “blist offline” –lists off-line contacts
- “blist all” –lists all contacts
- “set password <NewPassword>”–changes your Bitlbee account password
- account set <account ID>/password <NewPassword> –changes one of your locally stored IM account’s passwords
- “set private true” to have private windows pop up automatically when someone messages you ( … “false” to set back to default).
- “/away” –announces away state
- “/away Food” –announces the “Out to Lunch” away state on MSN
- “/back” –brings your presence back from the away state
Group Chat (see below)
- “channel #contact1_msn” — start a group chat with conctact1_msn
- “channel #contact1_yahoo” — start a group chat with conctact1_yahoo
- “/invite <msn contact>” –invite the contacts to your msn groupchat
- “/invite <yahoo contact>” — invite the contacts to your yahoo groupchat
Bitlbee’s character encoding sets to 8859-1. For those of you that write European languages other than English, I read that you can use iso8859-15 with this command, “set charset iso8859-15”. As a general rule, I prefer iso8859-3 for southern European languages (“set charset iso8859-3”), but I see that the (almost) universal UTF-8 sticks. The default character encoding is iso8859-1. To change it, “set <charset>” as in,
- set charset utf-8
- “set strip_html true”
strips HTML from clients that enable it, which might be convenient since ChatZilla is practically limited to displaying text (emoticons are exceptions). You should probably pass “save” after these adjustments.
There are two ways to go about this way. First of all, there is the passive method –if you’re invited to a group chat a new tab/window will open up containing contacts participating in the group chat. Second is the proactive method, when you create your own group chats. There are a few caveats, though. First of all, you can only work one IM service per group chat, meaning that each group chat can only be made up of only MSN contacts, or only Yahoo contacts, or solely Jabber contacts, etc. Inversely, a group chat cannot be made up from a combination of contacts that prescribe to varying IM services.
To explain how this second scenario works, you create a separate virtual channel with “/join #userName”. This is passed in the &bilbee tab. Then from the resulting virtual channel, use the “/invite userName” to drag the second user into your virtual channel. Repeat this last command to your satisfaction.
You may not want to manually connect to your Bitlbee server and then manually log-in to activate your IM accounts. “identify <password>” allows you with automate your connections to your IM accounts, assuming that your IRC client allows this (most probably). You’ll have to auto-connect to your server first (“/server XXXXX”).
Auto-connecting into your network
In the “im.bitlbee.org” tab, right-click, and select “Open This Network at Startup”.
Auto-logging onto your bitlbee tab/window with Auto-perform
Under the Preferences highlight your bitlebee network, look under the “Lists” tab look under “Auto-perform” and “Add …” (without inputting “/” nor “”) “identify <password>”, and press “Apply”.
(As of at least ChatZilla 0.9.83, this bit doesn’t work. Both parties (ChatZilla and Bitlbee developers) disagree on protocols. Until they get it together, just pass the “identify userName” command in ChatZilla.)
I’ve reported this as a bug with both parties.
Apparently, this is now fixed and going to be incorporated into ChatZilla 0.9.84, if my reading of the Chatzilla bug report is correct.
Lastly, smileys or emoticons are doable. For a list on them, pass “help smileys”.
Great, not only are you communicating to most IM protocols using an IRC client called ChatZilla, but you’re auto-magically logging into your Bitlbee gateway and IM accounts.
Be sure to use the same Nickname from one client to another, else the Bitlbee server will not recognize you with the identify command. Bitlbee doesn’t allow you to change your nickname, either, once logged in. I don’t think file transferring is a currently supported Bitlbee feature.
by Maurice Cepeda
Other Documentation on Bitlbee
Google Talk and Bitlbee
This is licensed under the Attribution-NonCommercial-ShareAlike 3.0 Unported Creative Commons License. All brands mentioned are properties of their respective owners. By reading this article, the reader forgoes any accountability of the writer. The reading of this article implies acceptance of the above stipulations. The author requires attribution –by full name and URL– and notification of republications.