This is the initial release of the BitlBee User Guide
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. You may obtain a copy of the GNU Free Documentation License from the Free Software Foundation by visiting their Web site or by writing to: Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
Table of Contents
Table of Contents
The latest BitlBee release is always available from http://www.bitlbee.org/. Download the package with your favorite program and unpack it: tar xvfz bitlbee-<version>.tar.gz where <version> is to be replaced by the version number of the BitlBee you downloaded (e.g. 0.73, 0.74a, 0.80).
BitlBee's build system has to be configured before compiling. The configure script will do this for you. Just run it, it'll set up with nice and hopefully well-working defaults. If you want to change some settings, just try ./configure --help and see what you can do.
Some variables that might be of interest to the normal user:
config - The place where BitlBee will save settings for all the users. /var/lib/bitlbee/ is the default value.
tcpd - If you enable this one, you can specify what hosts should be allowed to use your BitlBee by editting /etc/hosts.deny and/or /etc/hosts.deny.
After running configure, you should run make. After that, run make install as root.
By default, BitlBee runs as the user nobody. You might want to run it as a seperate user (some computers run named or apache as nobody).
Since BitlBee uses inetd, you should add the following line to /etc/inetd.conf:
6667 stream tcp nowait nobody /usr/local/sbin/bitlbee bitlbee
Inetd has to be restarted after changing the configuration. Either killall -HUP inetd or /etc/init.d/inetd restart should do the job on most systems.
You might be one of the.. ehr, lucky people running an xinetd-powered distro. xinetd is quite different and they seem to be proud of that.. ;-) Anyway, if you want BitlBee to work with xinetd, just copy the bitlbee.xinetd file to your /etc/xinetd.d/ directory (and probably edit it to suit your needs).
You should create a directory where BitlBee can store it's data files. This should be the directory named after the value 'CONFIG' in Makefile.settings. The default is /var/lib/bitlbee, which can be created with the command mkdir -p /var/lib/bitlbee. This directory has to be owned by the user that runs bitlbee. To make 'nobody' owner of this directory, run chown nobody /var/lib/bitlbee. Because things like passwords are saved in this directory, it's probably a good idea to make this directory owner-read-/writable only.
Since BitlBee acts just like any other irc daemon, you can connect to it with your favorite irc client. Launch it and connect to localhost port 6667 (or whatever host/port you are running bitlbee on).
Once you are connected to the BitlBee server, you are automatically joined to #bitlbee on that server. This channel acts like the 'buddy list' you have on the various other chat networks.
The user 'root' always hangs around in #bitlbee and acts as your interface to bitlbee. All commands you give on #bitlbee are 'answered' by root.
Although BitlBee has quite some functionality it is still beta. That means it can crash at any time, corrupt your data or whatever. Don't use it in any production environment and don't rely on it.
http://www.bitlbee.org/ is the homepage of bitlbee and contains the most recent news on bitlbee and the latest releases.
Table of Contents
BitlBee help system
Register yourself
Identify yourself with your password
Drop your account
IM-account list maintenance
List all the buddies in your contact list
List all the unanswered questions root asked
Add a buddy to your contact list
Request user information
Rename (renick) a buddy
Remove a buddy from your contact list
Block someone
Unblock someone
Save your account data
Miscellaneous settings
Accept a request
Deny a request
Change friendly name, nick
Copy local buddy list to server (normally only needed when upgrading)
Syntax: account add <protocol> <username> <password> [<server>]
Adds an account on the given server with the specified protocol, username and password to the account list. Specifying the server is optional and principally only necessary when using oscar. The following protocols are supported at the moment: jabber, msn, yahoo and oscar (For AIM/ICQ. For AIM use server login.oscar.aol.com, for ICQ use server login.icq.com. For Jabber the server is part of the username (e.g. sjoerd@hemminga-online.nl), it should not be passed in any other way in the command. (E.g.: account add jabber sjoerd@hemminga-online.nl funnypass) For the other protocols you don't have to specify a server.)
Example:
<wilmer> account add oscar 72696705 hobbelmeeuw login.icq.com <root> Account successfully added
Syntax: account del <id>
This commands deletes an account from your account list. You should signoff the account before deleting it.
The account ID can be a number (see account list), the protocol name or (part of) the screenname, as long as it matches only one connection.
Syntax: account on [<id>]
This command will try to log into the specified account.
The account ID can be a number (see account list), the protocol name or (part of) the screenname, as long as it matches only one connection. Without any account number, BitlBee will just try to restore any lost connection.
Syntax: account off <id>
This command disconnects the connection for the specified account.
The account ID can be a number (see account list), the protocol name or (part of) the screenname, as long as it matches only one connection.
Syntax: account list
This command gives you a list of all the accounts known by BitlBee, including the numbers you'll need for most account commands.
Syntax: add <connection> <handle> [<nick>]
Adds the given buddy at the specified connection to your buddy list. The account ID can be a number (see account list), the protocol name or (part of) the screenname, as long as it matches only one connection.
If you want, you can also tell BitlBee what nick to give the new contact. Of course you can also use the rename command for that, but sometimes this might be more convenient.
Example:
00:15 < ctrlsoft> add 3 gryp@jabber.org grijp 00:15 -!- grijp (gryp@jabber.org) has joined #bitlbee
Syntax: info <connection> <handle> info <nick>
Requests IM-network-specific information about the specified user. The amount of information you'll get differs per protocol. For some protocols (ATM Jabber and MSN) it'll give you an URL which you can visit with a normal web browser to get the information.
Example:
00:20 < ctrlsoft> info 0 72696705 00:20 < root> User info - UIN: 72696705 Nick: Lintux First/Last name: Wilmer van der Gaast E-mail: lintux@lintux.cx
Syntax: remove <nick>
Removes the specified nick from your buddy list.
Example:
00:14 < ctrlsoft> remove gryp 00:14 -!- gryp [gryp@jabber.jabber.org] has quit [Leaving...]
Syntax: block <nick> block <connection> <handle>
Puts the specified user on your ignore list. Either specify the user's nick when you have him/her in your contact list or a connection number and a user handle.
Syntax: allow <nick> allow <connection> <handle>
Reverse of block. Unignores the specified user or user handle on specified connection.
Syntax: set [<variable>] [<value>]
Without any arguments, this command lists all the set variables. You can also specify a single argument, a variable name, to get that variable's value. To change this value, specify the new value as the second argument.
To get more help information about a setting, try:
00:25 < ctrlsoft> help set private
Syntax: save
This command saves all your nicks and accounts immediately. Handy if you have the autosave functionality disabled, or if you don't trust the program's stability... ;-)
Type: string Default: none Possible values: you can get a list of all possible values by doing 'iconv -l' in a shell
The charset setting enables you to use different character sets in BitlBee. These get converted to UTF-8 before sending and from UTF-8 when receiving. For now, this only works for Jabber, Yahoo! and MSN.
If you don't know what's the best value for this, iso8859-15 is the best choice for most Western countries.
Type: boolean Default: False
If value is true, messages from users will appear in separate query windows. If false, messages from users will appear in the control channel.
This setting is remembered (during one session) per-user, this setting only changes the default state. This option takes effect as soon as you reconnect.
Type: boolean Default: True
If enabled causes BitlBee to save all current settings and account details when user disconnects. This is enabled by default, and these days there's not really a reason to have it disabled anymore.
Type: string Default: nostrip Possible values: strip, nostrip
Determines what BitlBee should do with HTML in messages. If set to nostrip, HTML in messages will not be touched. If set to strip, all HTML will be stripped from messages. Unfortunately this sometimes strips too much.
Type: boolean Default: False
Some debugging messages can be sent to the control channel if you wish. They're probably not really useful for you, unless you're doing some development on BitlBee.
Type: string (max 2 chars) Default: ': '
It's customary that messages meant for one specific person on an IRC channel are prepended by his/her alias followed by a colon ':'. BitlBee does this by default. If you prefer a different character, you can set it using set to_char.
Please note that this setting is only used for incoming messages. For outgoing messages you can use ':' (colon) or ',' to separate the destination nick from the message, and this is not configurable.
Type: boolean Default: False
Sends you a /notice when a user starts typing a message (if the protocol supports it, MSN for example). This is a bug, not a feature. (But please don't report it.. ;-) You don't want to use it. Really. In fact the typing-notification is just one of the least useful 'innovations' ever. It's just there because some guy will probably ask me about it anyway. ;-)
Type: string Default: both Possible values: both, root, user, none
Some people prefer themself and root to have operator status in #bitlbee, other people don't. You can change these states using this setting.
The value "both" means both user and root get ops. "root" means, well, just root. "user" means just the user. "none" means nobody will get operator status.
Type: boolean Default: true
With this option enabled, the root user devoices people when they go away (just away, not offline) and gives the voice back when they come back. You might dislike the voice-floods you'll get if your contact list is huge, so this option can be disabled.
Type: string Default: root Possible values: root, add, add_private, add_channel, ignore
Messages from unknown users are echoed like this by default:
<root> Unknown message from handle 3137137: <root> j0000! 1 4m l33t h4x0r! kill me!
If you want this lame user to be added automatically, you can set this setting to "add". If you prefer to ignore messages from people you don't know, you can set this one to "ignore". "add_private" and "add_channel" are like add, but you can use them to make messages from unknown buddies appear in the channel instead of a query window.
Auto-added users aren't added to your real contact list. This is because you don't want the user to get authorization requests. So when you restart BitlBee, the auto-added user will be gone. If you want to keep the person in your buddy-list, you have to fixate the add using the add command.
Type: boolean Default: true
With this option enabled, when you identify BitlBee will automatically connect to your accounts, with this disabled it will not do this.
Type: boolean Default: false
If an IM-connections breaks, you're supposed to bring it back up yourself. Having BitlBee do this automatically might not always be a good idea, for several reasons. If you want the connections to be restored automatically, you can enable this setting.
See also the auto_reconnect_delay setting.
Type: integer (seconds) Default: 300
Tell BitlBee after how many seconds it should attempt to bring an IM-connection back up after a crash. It's not a good idea to set this value very low, it will cause too much useless traffic when an IM-server is down for a few hours.
See also the auto_reconnect setting.
Type: boolean Default: false
By default, when you send a message to someone, BitlBee forwards this message to the user immediately. When you paste a large number of lines, the lines will be sent in separate messages, which might not be very nice to read. If you enable this setting, BitlBee will buffer your messages and wait for more data.
Using the buddy_sendbuffer_delay setting you can specify the number of seconds BitlBee should wait for more data before the complete message is sent.
Please note that if you remove a buddy from your list (or if the connection to that user drops) and there's still data in the buffer, this data will be lost. BitlBee will not try to send the message to the user in those cases.
Type: integer (seconds) Default: 1
Tell BitlBee after how many seconds a buffered message should be sent.
See also the buddy_sendbuffer setting.
Type: string Default: root Possible values: root, last
With this value set to root, lines written in the control channel without any nickname in front of them will be interpreted as commands. If you want BitlBee to send those lines to the last person you addressed in the control channel, set this to last.
Type: boolean Default: false
With this option enabled, root will inform you when someone in your buddy list changes his/her "friendly name".
Type: string Default: lifo Possible values: lifo, fifo
This changes the order in which the questions from root (usually authorization requests from buddies) should be answered. When set to lifo, BitlBee immediately displays all new questions and they should be answered in reverse order. When this is set to fifo, BitlBee displays the first question which comes in and caches all the others until you answer the first one.
Although the fifo setting might sound more logical (and used to be the default behaviour in older BitlBee versions), it turned out not to be very convenient for many users when they missed the first question (and never received the next ones).
Syntax: rename <oldnick> <newnick>
Renick a user in your buddy list. Very useful, in fact just very important, if you got a lot of people with stupid account names (or hard ICQ numbers).
<itsme> rename itsme_ you * itsme_ is now known as you
Syntax: yes [<number>]
Sometimes an IM-module might want to ask you a question. (Accept this user as your buddy or not?) To accept a question, use the yes command.
By default, this answers the first unanswered question. You can also specify a different question as an argument. You can use the qlist command for a list of questions.
Syntax: no [<number>]
Sometimes an IM-module might want to ask you a question. (Accept this user as your buddy or not?) To reject a question, use the no command.
By default, this answers the first unanswered question. You can also specify a different question as an argument. You can use the qlist command for a list of questions.
Syntax: register <password>
BitlBee can save your settings so you won't have to enter all your IM passwords every time you log in. If you want the Bee to save your settings, use the register command.
Please do pick a secure password, don't just use your nick as your password. Please note that IRC is not an encrypted protocol, so the passwords still go over the network in plaintext. Evil people with evil sniffers will read it all. (So don't use your root password.. ;-)
To identify yourself in later sessions, you can use the identify command.
Syntax: identify <password>
BitlBee saves all your settings (contacts, accounts, passwords) on-server. To prevent other users from just logging in as you and getting this information, you'll have to identify yourself with your password. You can register this password using the register command.
Once you're registered, you can change your password using set password <password> (as always, without the brackets..).
Syntax: drop <password>
Drop your BitlBee registration. Your account files will be removed and your password will be forgotten. For obvious security reasons, you have to specify your NickServ password to make this command work.
Syntax: blist [all|online|offline|away]
You can get a better readable buddy list using the blist command. If you want a complete list (including the offline users) you can use the all argument.
Syntax: nick <connection> [<new nick>]
This command allows to set the friendly name of an im account. If no new name is specified the command will report the current name. When the name contains spaces, don't forget to quote the whole nick in double quotes. Currently this command is only supported by the MSN protocol.
<wouter> nick 1 "Wouter Paesen" <root> Setting your name on connection 1 to `Wouter Paesen'
Syntax: import_buddies <connection>
This command copies the locally stored buddy list to the server-side buddy list. This command exists for upgrading purposes. Before version 0.90, BitlBee did not support server-side buddy lists for ICQ, so it stored the list on the server.
Since version 0.90 however, server-side contact lists are supported for all protocols, so the contact list stored on the BitlBee server is now ignored. When you're upgrading from an older BitlBee to version 0.90, you might need this command to get your buddy list back.
The only argument this command needs is your ICQ account identification.
Table of Contents
Welcome to BitlBee, your IRC gateway to ICQ, MSN and other IM systems.
Center of BitlBee is the control channel, #bitlbee. Two users will always be there, you (you can't leave the channel) and the system user, root. (That's me and I'm not going to leave you alone.. ;-)
Because all your IM-settings (passwords, contacts, etc) are saved on the server it's important that you pick a good password before continuing. Register this password using the register command. This is quite simple. Just type register <password> (without the brackets!).
When finished, type help quickstart2 to continue.
So BitlBee knows your password now. Remember this password, next time you connect to the Bee just type identify <password> and you'll be recognized and logged in to all the IM-services automatically!
Now it's time to speak to some people. Suppose you got an ICQ account with UIN 72696705 with password QuickStart. Add this account to the account list using the account add command:
<itsme> account add oscar 72696705 QuickStart login.icq.com <root> Account successfully added
Your turn now. Try to add accounts. Other available IM names are jabber, msn, and yahoo. Oscar is the protocol used by ICQ and AIM. For oscar, you need to specify the IM-server as a fourth argument. For AOL Instant Messenger, the server name is login.oscar.aol.com. For ICQ, the server name is login.icq.com.
See help account add for more information about the syntax. When finished, use the account on command to enable all your accounts and type help quickstart3 to continue.
So you're logged in to your favourite IM-server now. For most protocols (currently MSN, Jabber, Yahoo and AIM) the Bee can download the contact list automatically from the server and all the on-line users should appear in the control channel. Suppose there's some funny person in the list with the ID itsme@therealme.homelinux.org. BitlBee give him/her the nickname itsme_ (after all you're itsme already!).
Such a nick doesn't really look nice, does it? Try the rename command. A name like you might be better for persons like this. Try it:
<itsme> rename itsme_ you * itsme_ is now known as you
Now it's time to give all the people on your contact list useful names. Have fun! :-)
When finished, type help quickstart4 to continue.
Time to add some more contacts. That's what the add command's for. It needs two arguments: a connection ID (which can be a number (try account list), protocol name or (part of) the screenname) and the user's handle.
<itsme> add 0 grijpmonster@jabber.com -!- grijpmonster has joined #bitlbee
Looks like grijpmonster's online, since he/she joins the channel immediately! (If you don't like the nick, of course you can use the rename command to change it.) Now you can talk to him/her. If you're in luck, you might even get something back.. ;-)
<itsme> grijpmonster: Hi, how are you? <grijpmonster> itsme: I'm fine, and you?
Of course, if you're that kind of person who wants to have five or more conversations at once, you can talk to someone outside the channel as well. Just use the /msg or /query command like you always do on IRC.
Okay, you know the basics now. If you want to get to know more about the Bee, please type help quickstart5.
So you want more than just chatting? Or maybe you're just looking for a feature? That's cool.
It happens quite often that people ask us about features which exist for ages already. For example, if you're having problems with charsets or HTML, we know about your problem and BitlBee can solve it already. Just type help set to learn more about the possible BitlBee user settings.
For more subjects (like groupchats and away states), please type help index.
We hope that you know enough now. If you're still looking for something, please visit us in #bitlbee on the OFTC network (irc.bitlbee.org, for example), or mail us your problem/suggestion. Good luck and enjoy the Bee!
All MSN smileys (except one) are case insensitive and work without the nose too.
Thumbs up
Thumbs down
Beer mug
Martini glass
Girl
Boy
Devil smiley
Vampire bat
Right hug
Left hug
MSN Messenger or Windows Messenger icon (think a BitlBee logo here ;)
Crooked smiley (Confused smiley)
Embarrassed smiley
Smiley with sunglasses
Angry smiley
Angel smiley
Red heart (Love)
Broken heart
Red lips (Kiss)
Gift with bow
Red rose
Wilted rose
Camera
Film strip
Telephone receiver
Cat face
Dog's head
Coffee cup
Light bulb
Half-moon (Case sensitive!)
Star
Musical eighth note
Envelope
Birthday cake
Clock
This list was extracted from http://help.msn.com/!data/en_us/data/messengerv50.its51/$content$/EMOTICONS.HTM?H_APP=.
Since version 0.85, BitlBee supports groupchats on the MSN and Yahoo! networks. This text will try to explain you how they work.
As soon as someone invites you into a groupchat, you will be force-joined or invited into a new virtual channel with all the people in there. You can leave the channel at any time, just like you would close the window in regular IM clients. Please note that root-commands don't work in groupchat channels, they only work in the control channel (or to root directly).
You can also create your own groupchats, if you really think they work better than regular IRC channels... Read more about this with help groupchats2.
If you want to start a groupchat with the person jim_msn in it, just join the channel #jim_msn. BitlBee will refuse to join you to the channel with that name, but it will create a new virtual channel with root, you and jim_msn in it.
Now you'll think "Dude, this is just a channel with two people in it, that's not what I want!". Yes, I know. But just try to invite some other people to the channel. (I guess you already know about your client's /invite command?) Please do keep in mind that all the people have to be on the same network and contact list! You can't invite Yahoo! buddies into a MSN groupchat.
This is all you'll probably need to know. If you have any problems, please read help groupchats3.
About the virtual channel names (#chat_xxx): Please just learn to live with them. Channels don't have (useful) names on most IM-networks, so we just had to find an algorithm which generates 'unique' names. You can't rename them, and I think that'd not be too useful anyway...
If BitlBee fails to create the channel (root should tell you about it), there might not be an available 'switchbox' to the person you chose. Just send the person an ordinary message then, and the switchbox will be created. You can retry the join then.
Have fun! Please keep in mind that this is 'fresh' funtionality, so things might go wrong. Please warn me if anything weird happens.
As you might've expected, you can just use the /away command in your IRC client to set an away-state. BitlBee supports most away-states supported by the protocols.
Not all away states are supported by all protocols, and some protocols have different names for them. BitlBee will try to pick the best available alias from this list for every connection:
Away from computer, Away, Extended away |
NA, N/A, Not available |
Busy, Do not disturb, DND, Occupied |
Be right back, BRB |
On the phone, Phone, On phone |
Out to lunch, Lunch, Food |
So /away Food will set your state to "Out to lunch" on your MSN connection, and for most other connections the default, "Away" or "Away from computer" will be chosen.
You can also add more information to your away message. Setting it to "Busy - Fixing BitlBee bugs" will set your IM-away-states to Busy, but your away message will be more descriptive for people on IRC. Protocols like Yahoo! and Jabber will also show this complete away message to your buddies.