connwrap - initialize gnutls session in cw_connect
[centerim.git] / README
blob6f31bd5cbe71ab4070d634ed3aecae5e62d2c6fa
1 CenterIM documentation.
3 This document was originally written by Konstantin Klyagin <k@thekonst.net>.
4 2001-2005
6 Currently modified by the CenterIM community. 2007, version 1.0
8 Contents
9 --------
11 1. Introduction
12     1.1. Creation history
13     1.2. Features overview
14     1.3. Requirements
15     1.4. First time start
16 2. IM accounts registration
17     2.1. ICQ accounts
18     2.2. Yahoo! accounts
19     2.3. AIM accounts
20     2.4. IRC accounts
21         2.4.1. IRC channels
22     2.5. Jabber accounts
23         2.5.1. Jabber groupchat conferences
24     2.6. LiveJournal
25     2.7. Gadu-gadu
26     2.8. MSN
27     2.9. Updating details
28 3. User interface
29     3.1. The ESC key
30     3.2. The main screen
31     3.3. Menus
32     3.4. Dialogs
33     3.5. Hotkeys in dialogs
34     3.6. Some UI tips
35 4. Configuration
36     4.1. Migrating from other ICQ software
37     4.2. Event sounds
38     4.3. Color schemes
39     4.4. Key bindings
40     4.5. URL open action (web browser support)
41     4.6. Hostnames and port numbers (for crazy firewall admins)
42         4.6.1. ICQ
43         4.6.2. Yahoo!
44         4.6.3. AIM TOC
45         4.6.4. IRC
46         4.6.5. Jabber
47         4.6.6. LiveJournal
48         4.6.7. Gadu-gadu
49         4.6.8. MSN
50     4.7. Binding to various IP addresses
51 5. Online status
52     5.1. "Auto Away" and "Auto N/A"
53 6. Contact list
54     6.1. Finding and adding users
55         6.1.1. Some useful hints
56         6.1.2. ICQ search specific modes
57     6.2. Removing users
58     6.3. Users' details
59     6.4. Groups of contacts
60 7. Sending and receiving events
61     7.1. Messages
62     7.2. URLs
63     7.3. SMSes
64     7.4. Contacts
65     7.5. Files
66     7.6. E-mail express messages
67     7.7. WebPager messages
68     7.8. Away messages
69     7.9. Events history
70 8. Ignore, visible and invisible lists
71     8.1. Ignore list
72     8.2. Visible list
73     8.3. Invisible list
74 9. Advanced features
75     9.1. Arabic and Hebrew languages support
76     9.2. Command line facilities
77         9.2.1. Sending events
78         9.2.2. Changing current IM status
79     9.3. External actions and auto-responses
80         9.3.1. IM answering machine
81         9.3.2. Elizatalk: making fun with your friends
82         9.3.3. Remote control with external actions
83         9.3.4. Forwarding events
84         9.3.5. Hiding from scary ones
85         9.3.6. "Manual" external actions
86     9.4. Internal RSS reader
87     9.5. Protocol debug mode
88     9.6. "Friendly" logging
89     9.7. Custom base directories
90     9.8. Latest CVS snapshots
91 10. Lynx
92     10.1. The program homepage
93         10.1.1. CenterIM mailing list
94         10.1.2. German fan-club of the program :-)
95     10.2. IM protocols
96 11. Help to the project I would appreciate
97     11.1. Feedback
98     11.2. Patches
101 1. Introduction
102 ---------------
104   CenterIM is a text mode menu- and window-driven IM interface. ICQ,
105 Yahoo!, AIM TOC, IRC, MSN, Gadu-Gadu and Jabber protocols are currently
106 supported. It allows you to send, receive, and forward messages, URLs,
107 SMSes and, contacts, mass message send, search for users (including extended
108 "whitepages search"), view users' details, maintain your contact list
109 directly from the program (including non-icq contacts), view the
110 messages history, register a new UIN and update your details, be
111 informed on receiving email messages, automatically set away after the
112 defined period of inactivity (on any console), and have your own ignore,
113 visible and invisible lists. It can also associate events with sounds,
114 has support for Hebrew and Arabic languages and allows to arrange
115 contacts into groups. There is also an internal RSS reader and even a
116 LiveJournal client!
118   CenterIM is known to build and work well under Linux, FreeBSD,
119 OpenBSD, NetBSD, Sun Solaris, MacOS X/Darwin and Microsoft
120 Windows (built with cygwin).
123 1.1. Creation history
124 ---------------------
126   This program was written because of a very simple cause. I just
127 couldn't find any console based ICQ clients with really useful user
128 interface. When I started it I had quite a slow computer at home. Having
129 X window running on it took incredibly a lot of resources making whole
130 the system really slow. I didn't like an idea of launching it just to be
131 on ICQ, but there were several good programs only for X. For console
132 they had only mICQ and zicq. The former was ok, but its interface made
133 me cry. I know, it's of quite a UNIX style, and I don't have anything
134 against command line, but typing nicks and uins all the time was
135 terrible. The second thing, zicq, was an attempt to implement menus
136 and windows for ICQ in text-mode, but its author couldn't go further
137 than just splitting the screen into two windows, one with contact list
138 and another with usual mICQ output :) Actually it was all based on mICQ
139 code. I don't wanna say mICQ was bad, for it was the first ICQ client
140 for Linux, and its author made a great job exploring and sniffing the
141 protocol.
143   After looking at freshmeat and some "icq for linux" pages the hope to
144 find something worth was finally lost. I decided to put some effort into
145 making a program which would be really useful for me. It took me about
146 two weeks to write and then 1 week to test before releasing the first
147 version.
149   Since that time the software suffered a lot of changes, including
150 rewrite resulted into the version 3.0.0, and then adding more IM protocols
151 since 4.1.0. Now I'm continuing to develop it, going the standard way of
152 adding new features and fixing bugs. And feedback from users helps me a
153 lot in it.
156 1.2. Features overview
157 ----------------------
159   CenterIM's ICQ module has almost all the functionality including
160 extended issues that Mirabilis client has. Speaking of other protocols,
161 it has quite full support for features of Yahoo!, AIM, IRC and
162 Jabber.
164   Beside simple things like sending and receiving messages, changing
165 online status and basic user information, CenterIM advanced features
166 such as "White pages" and keyword search, an ability to update almost
167 all the fields in user's details, send URLs and SMSes, etc. I hope you
168 enjoy it a lot :)
171 1.3. Requirements
172 -----------------
174 In order to build the software the following libraries are required:
176 ncurses (at least 4.2 version)
177     A CRT screen handling and optimization package.
178         http://dickey.his.com/ncurses/ncurses.html
180 openssl
181     The secure communications library. Optional, but you will require
182     if you want SSL support for Jabber. Previous versions of the library
183     called SSLeay will work with CenterIM too.
184         http://www.openssl.org/
186 gnutls
187     The secure communications library. Optional. An alternative to
188     OpenSSL distributed under the GNU Public License.
189         http://www.gnutls.org/
191 gpgme
192     This is for PGP support in Jabber. Optional also.
193         http://www.gnupg.org/(en)/download/index.html#gpgme
195 Please note that in order to compile CenterIM from source on Redhat
196 based systems you should have *-devel RPM packages of the above
197 mentioned libraries installed.
199 For more information on the software requirements, take a look at:
200 - http://www.centerim.org/index.php/Requirements
202 It's possible to disable support of various protocols during the build
203 phase. Just take a look at the --disable-xxx parameters for configure.
204 You can invoke the scripts command line help with the following command:
206 $ ./configure --help
209 1.4. First time start
210 ---------------------
212   Upon the first execution, the program shows its configuration screen
213 and then gets to the next stage, the account manager dialog. All the
214 configuration dialog items are self-descriptive, so there must be no
215 problems to customize your CenterIM. As soon as you're finished with
216 it, using the right allow key, move cursor to the "Done" button and
217 press Enter.
219   Russian speaking users should pay attention to the "Russian
220 translation" item of the registration dialog. It's vital to set its
221 value to "yes" to be able to use cyrillic. In most cases. Unless you use
222 win1251 as a default charset, about what I doubt a lot :) Unfortunately
223 we have two different encodings for our language, koi8-r is default for
224 UNIX like systems and win1251 is used in Windows. Since ICQ comes from
225 Windows we need to recode every sent and received message in order for
226 it to be readable.
229 2. IM accounts registration
230 ---------------------------
232   This section says a bit about registering new and entering existing
233 accounts' details into configuration of your CenterIM. Everything that
234 CenterIM can do about it is available through the "Accounts" dialog
235 displayed at the start and then residing under the f4->Accounts.. menu
236 item.
239 2.1. ICQ accounts
240 -----------------
242   To be able to use the ICQ IM service you should have a UIN (I think it
243 stands for something like "user identification number"). You can either
244 use an already existing UIN or register a new one selecting appropriate
245 items in the "Account manager" dialog. Some attention should only be
246 paid to the "server address" field. The default value will be
247 substituted unless something is set there, i.e. empty "server" field is
248 quite ok. In the majority of cases you do not need to change it. The
249 only exception is if you have your own ICQ server on LAN.
252 2.2. Yahoo! accounts
253 --------------------
255   CenterIM doesn't support registering new Yahoo! IDs, so if you don't
256 have one yet, just visit the homepage Yahoo! messenger at
257 http://messenger.yahoo.com/ and select the "Acct info" link in the top
258 right corner.
261 2.3. AIM accounts
262 -----------------
264   AIM accounts can be created with the AOL's web interface at
265 http://my.screenname.aol.com/ by clicking on the "Get a Screen Name"
266 link. Don't also forget to set your profile information with "Update
267 your details" item in the Account manager dialog.
270 2.4. IRC accounts
271 -----------------
273   This service is completely different from others supported by
274 CenterIM. You don't need to register to connect to irc. All you need is
275 just choose a nick which is not used by anyone else. Otherwise it'll be
276 reported as soon as you try to log in. So set any nick and a host name of
277 the server you want to chat on, and go ahead!
279   For the advanced IRC users there can be a need for so-called NickServ
280 authentication using a password to identify himself. Sometimes it's
281 used to protect your nickname from overtaking on a specific IRC network.
282 CenterIM does support this too, providing a non-obligatory password
283 field.
286 2.4.1. IRC channels
287 -------------------
289   IRC channels behave theirselves like usual contacts, though the set of
290 actions possible to perform upon them is different. Using the F2-menu
291 and hotkeys it's possible to join or leave a channel, view the list of
292 users, etc. Please note, in order to stay on a channel you should have
293 it on your contact list. As soon as a channel is deleted, you leave it
294 automatically.
297 2.5. Jabber accounts
298 --------------------
300   Jabber is the most advanced open source and free instant messaging
301 solution. Since the version 4.8.8 it's been supported by CenterIM. Due
302 to its being open and developed by the wide community, CenterIM can
303 register new nicknames in it very easily.
306 2.5.1. Jabber groupchat conferences
307 -----------------------------------
309    Like IRC channels, they're controlled like usual contacts, too.
312 2.6. LiveJournal
313 ----------------
315   Though LiveJournal is not actually an IM service, but I hope you
316 forgive me for that. LiveJournal is a weblogs community. Its URL is
317 http://www.livejournal.com/. CenterIM makes use of their open source
318 and well-documented client-server protocol, and makes it possible to
319 post items and read friends' RSS feeds directly from its interface. So
320 if you want an account, go to http://www.livejournal.com/ and see how to
321 get it. If you don't like the rules, you can always download their
322 server software and install it on your own. Long live open source!
325 2.7. Gadu-gadu
326 --------------
328   If you have libjpeg installed in your system and the configure script
329 does find it, CenterIM can register a UIN on this network for you.
330 Otherwise you can only register one with the official client that can be
331 downloaded from the official site at http://www.gadu-gadu.pl/
334 2.8. MSN
335 --------
337   An account for MSN can also be registered through a web interface at
338 http://chat.msn.com/ though it seems that they block access from Linux
339 based web browsers.
342 2.9. Updating details
343 ---------------------
345   If you have just registered on the ICQ network only basic fields of
346 your details were set. Now, if you want to provide the world with more
347 information about yourself, you should invoke the "Update ICQ details"
348 dialog. First go to the "Accounts" dialog which can be accessed through
349 the global menu, and there in the ICQ node select "Update user details".
350 You can fill in information that will be visible to other ICQ users.
351 They also will be able to find you with specifying what you filled in
352 their "find users" requests.
354   It's possible to update your ICQ and AIM details any time you're
355 online with the dialog. Details within other networks are possible to be
356 updated with respective web interfaces, I believe.
359 3. User interface
360 -----------------
362   The text UI CenterIM has, as well as UI of other programs for console
363 I have written, is very simple. There are menus, windows, menus and
364 input lines. In the bottom line of the screen there is a status bar. It
365 usually contains hints about what to press to invoke various menus,
366 dialogs, and perform various actions.
369 3.1. The ESC key
370 ----------------
372   This key is used for termination of input, if you wanna cancel the
373 operation you wanted to perform. Say, if "send message" operation is
374 chosen (invoked just with a press of "Enter" on a contact), an editor
375 window appears. As status bar says, you can use "Ctrl-X" to send it, and
376 ESC to cancel. The only hint is that you have to press the ESC key
377 twice. It's a common practice for console based UNIX programs (Midnight
378 commander is a good example), because checking for only one ESC would
379 spoil arrow key processing. The point is that they have correspond
380 sequences that start with an ASCII#27 character which is actually ESC.
382   If you still want to press a simple key combination to close a dialog
383 or cancel something, try Alt-ESC. Though it's not guaranteed to work on
384 all terminals.
386   The ESC key can also help you to issue shortcuts and key combinations
387 such as Alt-? or F<x>. The former, if Alt-Shift-/ doesn't work can be
388 produced by first pressing ESC and then Shift-/ (i.e. "?"). And instead
389 of any F-key the ESC and then a number can be used.
392 3.2. The main screen
393 --------------------
395   The main screen of CenterIM consists of three parts. First is contact
396 list which is situated to the left. Next is information window which is
397 used to show received events, users' details, and also to edit events
398 that are going to be sent. And the smallest one is a log window in which
399 you can see messages about what CenterIM is doing right now.
402 3.3. Menus
403 ----------
405   No need to say, menus are a common way to provide a user with an
406 ability to select one (or several) items from a certain list. To make a
407 difference between single and multiple choice menu you gotta just have a
408 look at the items. If square brackets stand next to items text in every
409 line, a multiple selection is requested. Otherwise you can only select
410 one item. To do it, just press "Enter" on it. To make a multiple
411 selection, press "Space" on items and use "Enter" to finish the
412 selection. ESC does also work in all menus to cancel the selection.
414   I will mention two menus below. They are global menu and contact
415 context menu, invoked with F4 and F2 correspondingly. The former allows
416 to execute various actions of global kind, such as find and add users,
417 manage ignore, visible and invisible lists, change settings, etc. With
418 the context menu you can do various current contact specific things.
421 3.4. Dialogs
422 ------------
424   Every dialog in CenterIM has a tree-like view. When I was about to
425 write classes for form-based input, I remembered that there was a
426 "treeview" class written by me before. So, I decided to use it for
427 dialogs and was right. There was no need to re-design the whole form in
428 case I need to add some controls, or so. I just add it as a node or a
429 leaf it scrolls, and nothing gets spoiled. Everything really nice is
430 always simple :)
433 3.5. Hotkeys in dialogs
434 -----------------------
436   Dialogs of CenterIM usually have a bar with buttons. To access a
437 button without moving the highlighted bar over it with the arrow keys
438 you can use shortcuts. It's enough to press the first capital letter of
439 a button name to access the function behind it.
442 3.6. Some UI tips
443 -----------------
445   There at some quite standard key combinations supported by CenterIM I
446 wanna tell you about. Here they go.
448     Ctrl-L
449       Redraws the screen in any place of program execution. If output of    
450     some kind of background programs or system messages spoil your screen
451     just press it so CenterIM display is refreshed.
453     Ctrl-Y
454       In a message writing mode removes entire current line.
456     Ctrl-K
457       Single line edit mode.
458       Kills entire content.
460     Ctrl-U
461       Single line edit mode.
462       Kills a part of line to the left from cursor.
464     Alt-H
465       Single line edit mode.
466       Invokes history of recently entered lines.
469 4. Configuration
470 ----------------
472   The majority of CenterIM settings can be found in the "Configuration"
473 dialog which can be invoked by selecting an appropriate items in the
474 global menu (the one you see on pressing F4). There are only three
475 things you should setup from outside the program with modifying the
476 program's configuration files. They are event sounds, actions (see
477 below) and color schemes.
479   With the "Configuration" dialog you can turn on and off various
480 features, as well as change the ICQ server address and adjust network
481 settings. All the items there are self-explanatory and their meaning is
482 quite obvious. I suppose the program users are usually not dumb :) so I
483 won't cover all of the items here in the documentation.
486 4.1. Migrating from other ICQ software
487 --------------------------------------
489   If you decided to migrate to CenterIM from another ICQ software or
490 have a need to you something else in parallel, there is a way to convert
491 the contact list. This means you can migrate without loosing your
492 contacts and history.
494   How to do it? There is a Perl script named cicqconv. It's usually
495 installed on "make install" under @prefix@/bin (/usr/local/bin in the
496 majority of cases). Its usage is very simple. You should only pass one
497 parameter to it, telling from what kind of ICQ software it's to convert
498 your data. To see the list of supported software, run the script without
499 parameters.
502 4.2. Event sounds
503 -----------------
505   As it was said before, CenterIM can play sounds on various events.
506 It's done the following way. Upon, say, receiving a message, CenterIM
507 executes an external command. Actually it can be whatever you want, but
508 original idea is to execute a command line WAV player.
510   There are three WAV sound files which CenterIM has by default. They
511 are sounds taken from Mirabilis ICQ. When you set "Change sound device
512 to" item to "sound card", the program generates a file named sounds in
513 the .centerim/ directory in your home folder. The default file has
514 commands to execute a "play" utility (from sox package) with a name of a
515 file to play, one of the default ones. If you wanna change the player or
516 a sound simply edit ~/.centerim/sounds.
518   If you use ESD (Enlightenment Sound Daemon) to have some extra sound
519 facilities such as mixing streams, or playing on another computer, you
520 might wish to change the "play" command to "esdplay".
523 4.3. Color schemes
524 ------------------
526   It's possible to customize colors in the CenterIM's user interface.
527 It's done with the ~/.centerim/colorscheme configuration file. Its
528 contents are self-descriptive, and parameter names mean exactly that
529 they're named after. Please note, that among the standard color names
530 it's possible to specify "transparent" which is useful when the program
531 is used in terminals with background images set.
533   Started for the first time, CenterIM creates the default colorscheme
534 file filled in with settings of one of default schemes that the
535 Configuration dialog proposes. Also its contents are re-written every
536 time you change color scheme from the dialog.
538   To define your own color scheme, feel free to modify the default
539 colors configuration file or choose one of contributed ones that can be
540 found under the contrib/ directory of the source tarball.
542   More "visual" explanation can be found here at the CenterIM.de:
543 http://centericq.de/misc/colorscheme_helper.png
546 4.4. Key bindings
547 -----------------
549   Key bindings are also configurable in CenterIM. On the first start it
550 creates a file called keybindings in your ~/.centerim/ directory. You can
551 use its initial contents for reference. If you want to change something,
552 well, it's all there.
555 4.5. URL open action (web browser support)
556 ------------------------------------------
558   CenterIM can extract URLs from messages and user information records
559 for you. And it also can launch your preferred web browser to view them.
560 No need to have a big attention to notice "F2 to URLs" text in the
561 status bar when you view either a message or user's details. The "open
562 URL" action starts right after you make a selection in the menu invoked.
563 The ~/.centerim/actions file is responsible for this. By default it has
564 a command to execute netscape, but you can change to whatever you want.
565 Please only note that you cannot put lynx or any other text mode based
566 browser starting in the same console there. The commands from "actions"
567 run in parallel with CenterIM, so please only pass your URLs to scripts
568 or to X based browsers, but to nothing interactive.
570   Though, if you're using CenterIM under screen(1) there is a solution.
571 Jochen Sprickerhof <jochen.sprickerhof@web.de> advised it having read
572 the statement in the previous paragraph. He proposes to define open URL
573 action the following way: "openurl screen lynx $url$", in order to open
574 lynx in a new screen window as soon as an URL to browse it chosen.
577 4.6. Hostnames and port numbers (for crazy firewall admins)
578 -----------------------------------------------------------
580   I'm frequently asked what ports and hostnames CenterIM uses to
581 connect to various IM services. To avoid further buzz, I just include
582 them here.
585 4.6.1. ICQ
586 ----------
588   Hostname: login.icq.com
589   Port: 5190
591   Here a small note is needed. To a great displeasure of network admins,
592 the ICQ main server listens on all the TCP ports, from 1 to 65535. So
593 if in your network the 5190 is blocked, don't be upset, set it to 80 or
594 to 21 or whatever is not restricted by firewall and it will work :)
597 4.6.2. Yahoo!
598 -------------
600   Hostname: scs.msg.yahoo.com
601   Port: 5050
604 4.6.3. AIM TOC
605 --------------
607   Hostname: toc.oscar.aol.com
608   Port: 9898
611 4.6.4. IRC
612 ----------
614   For this network you gotta choose a server yourself, because the
615 auditory of people you chat with and other things depend exactly on this
616 choice. However, by default, CenterIM sets the following parameters:
618   Hostname: irc.freenode.net
619   Port: 6667
622 4.6.5. Jabber
623 -------------
625   There are many Jabber servers in the world, also the solution is
626 widely used for in-house communications inside various companies, so you
627 can choose the server yourself. At the other hand, the default server
628 open to the public is the following:
630   Hostname: jabber.com
631   Port: 5222
634 4.6.6. LiveJournal
635 ------------------
637   Since LiveJournal, despite of its being not an IM network, is also a
638 completely open source and free (in the "free speech" sense) solution,
639 you can find LiveJournal servers installed anywhere. You can even
640 install one on your own. Just in case, here I'm giving you parameters of
641 their main server:
643   Hostname: livejournal.com
644   Port: 80
647 4.6.7. Gadu-gadu
648 ----------------
650   Hostname: appmsg.gadu-gadu.pl
651   Port: 80
654 4.6.8. MSN
655 ----------
657   Hostname: messenger.hotmail.com
658   Port: 1863
661 4.7. Binding to various IP addresses
662 ------------------------------------
664   If the box you're running CenterIM on has several IPs and you would
665 like to use a certain one of them for IM connections, there is a command
666 line parameter made especially for you, --bind <IP address> or shortly,
667 -B <IP address>.
670 5. Online status
671 ----------------
673   With CenterIM you can be either on or off the ICQ network. The status
674 can be changed with the "Status" menu invoked either with F3 or "S" key
675 or from the global menu. It provides you with a choice to switch between
676 online statuses along with an ability to go offline. If one of online
677 statuses if selected when you're offline, CenterIM will connect and
678 switch the status to what was chosen.
680   With an online status you can indicate to those who are in touch with
681 you your being away, occupied, free for chat, not available, etc.
684 5.1. "Auto Away" and "Auto N/A"
685 -------------------------------
687   Also there is a way to switch status to Away and N/A (not available)
688 after a certain period of inactivity, to show your friends or colleagues
689 you're somewhere away from computer.
691   The very useful thing about is that CenterIM detects inactivity for
692 all the consoles if you use it locally. So it won't change your status
693 if you're just working in another console and only don't tweak it.
695   The auto periods can be changed with the "Configuration" dialog. Zero
696 value means the feature is off.
699 6. Contact list
700 ---------------
702   The list of your contacts is displayed to the left on the CenterIM
703 main screen, and has a tree-like structure. There are "Online" and,
704 unless the "Hide offline users" options is on, "Offline" nodes, groups
705 (if switched on). If a user has a birthday today, a smiley face ":)" is
706 shown next to his or her nickname.
708   If a contact is online, a status letter in square brackets is shown
709 for him. Though, the brackets kind can vary. Besides the square ones,
710 there can be {x} and <x> items. The former means a contact is on your
711 invisible list, and the latter represents your "always visible" status
712 for a contact.
714   Finally, if there is an unfinished (postponed) message for a certain
715 contact, the ">" character will appear between status and nickname.
718 6.1. Finding and adding users
719 -----------------------------
721   The most common way to add an IM contact to your list is to use the
722 "find/add user(s)" dialog invoked from the global menu. First you have
723 to find the contact you wanna add. CenterIM allows you to search for
724 users with various parameters in various networks.
726   In ICQ, you can add a user knowing his UIN, or see a list of people
727 matching your criteria. In fact, ICQ server sends only first 40 matching
728 UINs, but usually it's quite enough.
730   Note that in ICQ search requests you can use simple wildcards in the
731 text input fields. It's possible to put "*" there. For example, you don't
732 remember my last name exactly, but know only several first letters. Then
733 just type in a first name ("Konstantin") and fill in the "last name" field
734 with "Klyag*". The same trick can be done with other fields: "city",
735 "nickname", "company", etc..
737   The Yahoo!, AIM, IRC and Jabber networks support in CenterIM
738 does only allow to add users by nicknames.
740   With IRC it's possible to get users from channels. For more info on
741 channels and other IRC related stuff, please refer to http://www.irc.org/.
742 So, with CenterIM you can either fetch a list of users for a specified
743 channel, or (sic!) find users that stay on several channels simultaneously.
744 To perform the latter, just put several channel names separated with spaces.
745 For example, the "#CenterIM #linux" query will show a list of users that
746 are currently talking on both channels.
749 6.1.1. Some useful hints
750 ------------------------
752   You can skip the finding step by issuing one of the following shell
753 commands to add a user (depends on an IM type):
755     $ mkdir ~/.centerim/<UIN of a user to add>
756         This one is for ICQ
758     $ mkdir ~/.centerim/y<nickname>
759         For Yahoo!
761     $ mkdir ~/.centerim/a<nickname>
762         For AIM
764     $ mkdir ~/.centerim/i<nickname>
765         For IRC
767     $ mkdir ~/.centerim/j<nickname>
768         For Jabber
769         
770         $ mkdir ~/.centerim/i<msn-mailaddress>
771         For MSN
773 Don't forget to restart CenterIM so that it re-reads the contact list.
774 Though, it's better anyway to follow the usual find/add procedure.
776   Another intresting ICQ related trick I wanna share with you. Because of
777 a natural curiosity, sometimes names of people get me interested in finding
778 out about their ethnical origin. Once I saw a last name, Aslam, which seemed
779 like a Muslim one, but I had no idea which country the guy originated
780 from. I decided to use ICQ to find out. Opened the "find/add" dialog and
781 typed that in. After looking at several matched contacts I noticed the
782 majority of people were from Pakistan, so I realized where the guy was
783 from and my curiosity was satisfied.
785   I go the same way to find out in which country a certain city is
786 located, and so on. This makes ICQ extremely useful for me. Just use
787 your imagination to find other ways to use such a great statistics
788 database :)
791 6.1.2. ICQ search specific modes
792 --------------------------------
794   The "find/add users" dialog for ICQ besides the obvious parameters
795 does also contain two interesting items such as "Random chat group" and
796 "Keywords". With the help of the former you can easily look for chat
797 partners from standard 10 groups, if you're bored or just feel like
798 chatting with someone. You never know who can be there. Also, you can
799 make yourself available for others so that they can find you in random
800 chat groups. Just set the corresponding parameter in the "Update your
801 details" dialog for ICQ.
803   The keyword search feature allows to search for contacts by specified
804 keywords that are taken from interests, geographical location and other
805 places, and indexed somehow by the Mirabilis guys. Quite an interesting
806 feature too.
809 6.2. Removing users
810 -------------------
812   Removing users is a very simple procedure. You can either hit DEL on a
813 certain contact or select an appropriate item in the context menu. After
814 confirmation the contact is removed.
817 6.3. Users' details
818 -------------------
820   On the ICQ network, every user has a set of details that can be
821 browsed and used in search queries by others. To browse details of a
822 specific user on the contact list it's enough just to press '?' on a
823 corresponding to a contact item.
825   Please don't hesitate to do it before asking people who they are. It
826 takes time to explain, though it can be looked up so easily.
829 6.4. Groups of contacts
830 -----------------------
832   In case you have a lot of people on contact list, you might wish to be
833 able to visually arrange them into groups. Choose any criteria.
834 Geography, companies, activities, interests.. Anything. CenterIM
835 supports it.
837   To turn the feature on invoke the configuration dialog and switch the
838 "arrange contacts into groups" option value to "yes". By default, all of
839 your contacts will appear on standard "Global" group from which you can
840 move them to other groups creating them "on fly". There is an item in
841 the context menu named "Move to group.." which allows you to do it.
843   It's also possible to collapse and expand groups by pressing the Enter
844 key on them.
846   Remove, add and rename operations on groups can be done with the group
847 manager dialog invoked from the global menu item named "Organize contact
848 groups".
851 7. Sending and receiving events
852 -------------------------------
854   Sending and receiving events is what ICQ and all the instant messaging
855 are all about. The concept itself means an ability to stay in touch by
856 delivering messages of various kind immediately.
859 7.1. Messages
860 -------------
862   The most common type of events. It takes the ICQ network about one
863 second to deliver one. Messages can be sent either through server or
864 directly through a TCP link. Size of a message sent through server
865 cannot exceed 450 characters, while size of direct messages is
866 unlimited. In case CenterIM cannot establish a direct link or you have
867 the "sent all events through server" option enabled, a message is
868 automatically split into several parts.
870   To send a message just press "Enter" on a contact. Then type and press
871 "Ctrl-X" to send it. To cancel the message press ESC (twice).
874 7.2. URLs
875 ---------
877   Though you can send URLs with regular messages the Mirabilis guys
878 decided to make a separate event for it. No problem, CenterIM supports
879 URL events. An URL message consists of two parts, they're an URL itself
880 and a description. Well, nothing else to say about it. Except maybe a
881 wish for future version of the protocol to support e-mail addresses and
882 host names as separate events :)
885 7.3. SMSes
886 ----------
888   ICQ has a server-side mechanism which allows its users to send and
889 receive short text messages to cellular phones. There is an item visible
890 in the context menu for ICQ contacts, named "Send an SMS" which is be
891 chosen. Then if a user does not have any cellular number on his
892 details, CenterIM will ask you to provide one. This number can be
893 changed any time with the "Edit details" item of the same menu.
895   CenterIM allows sending SMS messages to contacts of any kind on your
896 list with the only restriction that they will only be sent as soon as
897 you log in with your ICQ account. When you type in a phone number don't
898 forget to include all the international and regional prefixes.
900   If an SMS you sent is rejected, the appropriate message is displayed
901 in the log window. This usually happens because ICQ does not support some
902 cellular networks. To see the list of supported ones use the following
903 links:
905     http://www.icq.com/sms/smsnetworks.html
906     http://www.icq.com/sms/eg_networks.html
908   Both ways of sending SMSes are supported by libicq2000, and this means
909 CenterIM does so too.
912 7.4. Contacts
913 -------------
915   Sharing parts of your contact list with other users on the instant
916 messaging network is a feature supported only by ICQ so far. CenterIM
917 does support it, thus you can easily send contacts from your contact
918 list or receive contacts from someone else using the program's
919 interface. Much easier than typing or cut'n'pasting UINs.
922 7.5. Files
923 ----------
925   It's only possible to send files to your remote buddies within the IRC
926 network so far. In order to do it, it's enough to choose the "Send
927 file(s)" item from the context menu (the one invoked with F2), and point
928 out the files you want to send. In order to receive files you should
929 press the "Accept" button in the dialog you'll see as soon as someone
930 sends a file to you.
933 7.6. E-mail express messages
934 ----------------------------
936   This kind of events is ICQ specific. There is no way to receive them
937 with Yahoo! or other protocols. E-mail express is a service
938 provided by Mirabilis to make it possible to send messages through
939 e-mail to logged in ICQ users. A gate, indeed.
941   The principle is simple. To send such a message you use an e-mail
942 client application, and you receive one with an ICQ client. The
943 destination e-mail address looks like this <UIN>@pager.icq.com, where
944 UIN is the receiver's ICQ number. If a person is not online, they'll get
945 the message as soon as connect to the ICQ network.
947   Please also note that with some SMTPs it won't work, since the pager
948 server has a protection which tries to make a connection to the sender
949 SMTP. If it's behind a firewall you have no chance to get your message
950 delivered.
953 7.7. WebPager messages
954 ----------------------
956   ICQ network does also allow sending messages to icq clients from their
957 web sites. The so-called "Web panel" makes it possible. You can access
958 your own by the URL of the following look: http://web.icq.com/wwp?Uin=<UIN>
960   Messages are delivered to the contact list immediately. And if a user
961 is not online he's supposed to received them as soon as he logs in.
964 7.8. Away messages
965 ------------------
967   Another feature of IM networks supported by CenterIM is away
968 messages. It's quite a useful way to explain to everybody why you're
969 away from your box right now. To read your reason for being away they
970 just have to use the feature to fetch an away message in their ICQ
971 client application.
973   It's possible to set such a message from the account manager dialog
974 invoked from the global menu. There is a "Set away message" item for IM
975 engines that support such a feature.
977   With CenterIM you can also read away messages of others. To fetch
978 someone's away message (it's possible even when a person has the
979 "available/online" status) just select the respective item in the
980 "current user" context menu (invoked with F2 or "m"). It's impossible to
981 fetch away messages of users that are offline.
984 7.9. Events history
985 -------------------
987   All of events sent and received with CenterIM are held in its
988 database. It's very simple to access history of events you exchanged
989 with a particular user. You should only select the "Events history" item
990 of the context menu. Then, if at least one event is there, you'll be
991 shown a list every item of which can be read, replied or forwarded to
992 someone.
995 8. Ignore, visible and invisible lists
996 --------------------------------------
998   ICQ provides an easy way to have lists of users you want to be visible
999 or invisible to, if you're online. Also there is a place to move all the
1000 annoying ones so that they don't disturb you with their stupid messages.
1002   Modification operation with the lists can be performed with
1003 appropriate dialogs invoked from the global menu.
1006 8.1. Ignore list
1007 ----------------
1009   List for worst ones. If you find someone on (or outside) your contact
1010 list too annoying, you can just add him or her to the ignore list. After
1011 this simple operation you will never receive events from this user,
1012 until the contact is removed from this list of yours.
1015 8.2. Visible list
1016 -----------------
1018   ICQ has the "invisible" option among its online status modes. When you
1019 switch to it, no one is able to see your online presence. But there can
1020 be a handful of people you would like to keep in touch, and you also
1021 feel like remaining visible for them. That's what this feature is all
1022 about.
1025 8.3. Invisible list
1026 -------------------
1028   Invisible list has an opposite aim to the previous one. People who you
1029 have on this list are unable to see your presence all the time. Either
1030 you're online or offline, or occupied.. whatever, they see your status
1031 as "offline".
1034 9. Advanced features
1035 --------------------
1037   CenterIM has some advanced features that you may need, though they're
1038 not so easy to turn on for novice users. In this chapter I explain how
1039 to do it.
1042 9.1. Arabic and Hebrew languages support
1043 ----------------------------------------
1045   There is a basic support for bidirectional languages in CenterIM. It
1046 allows not to type, but only read messages in Hebrew and Arabic. It's
1047 possible to enable only on the ./configure stage, because the program
1048 needs to be linked against FriBiDi library. This means first you need to
1049 have the latter installed. The library homepage is located at
1050     http://fribidi.sourceforge.net/
1052   Once you have successfully installed FriBiDi, you need to execute
1053 CenterIM's ./configure script with "--with-fribidi" parameter. If it
1054 fails to find the library (you'll be reported), try
1055 "--with-fribidi=<prefix the library was installed with>".
1057   Common "make" and "make install" steps should follow, and finally
1058 "shalom" or "selam" can be seen well on your monitor :) So don't fight
1059 there, guys.
1062 9.2. Command line facilities
1063 ----------------------------
1065   CenterIM has a bunch of command line options that make it possible to
1066 queue IM events and change your status in various IM networks.
1069 9.2.1. Sending events
1070 ---------------------
1072   In fact, it's not really sending. CenterIM just allows you to put an
1073 event to the outgoing queue from another process with command line
1074 options. To have the event sent immediately CenterIM must be running,
1075 otherwise all of your queued events will be sent as soon as the program
1076 is launched and connected to the corresponding IM network.
1078   The following command line options are used to put an event to the
1079 outgoing queue:
1081 -s or --send <event type>
1083     This parameter specifies the type of event you want to send.
1084     Currently only "msg", "url" and "sms" are supported.
1086 -p or --proto <protocol type>
1088     This one specifies to which IM network the destination contact
1089     belongs to. Can be either "icq", "yahoo", "aim", "irc", "jab"
1090     or "lj".
1092 -t or --to
1094     With this one you specify nickname or UIN of the destination
1095     contact. For icq it's possible to specify 0 to send events to
1096     yourself. Only SMSes are known to be possible to be sent to oneself
1097     though.
1099 -n or --number
1101     Using this parameter you can send SMSes to any mobile numbers
1102     through the ICQ network.
1104 The message text is read from the standard input, so use pipes in shell
1105 to pass it. For example, you can say "hi" to me through the ICQ network
1106 with the following command:
1108     $ echo "hi" | centerim -s msg -p icq -t 17502151
1110 In case you want to send an URL, the URL itself and its description are
1111 separated with a newline character the following way:
1113     $ echo -e "http://thekonst.net/\nMy modest homepage." \
1114     | CenterIM -s url -p icq -t 17502151
1116 Finally, a small example of sending SMSes:
1118     $ echo "sms test" | centerim -s sms -n 1234567890
1120 Please note, that all three parameters are required in order to queue an
1121 event.
1124 9.2.2. Changing current IM status
1125 ---------------------------------
1127   Changing status is done with a pair of parameters. They're -S and -p.
1128 The former is used to specify the status itself, and -p points which IM
1129 engine is to be affected.
1131 -S or --status <status letter>
1133     The argument parameter is a letter which indicates which status is
1134     to be set:
1136         o (Online)              _ (Offline)
1137         a (Away)                d (Don't disturb)
1138         n (N/A)                 c (Occupied)
1139         f (Free for chat)       i (Invisible)
1141 -p or --protocol <protocol name>
1143     This one specifies to which IM network the destination contact
1144     belongs to. Can be either "icq", "yahoo", "aim", "msn", "irc",
1145     "jab" or "lj".
1147 Examples:
1149     $ centerim -S _ -p icq
1151 This will set the icq status to offline. In other words, it'll be
1152 disconnected immediately.
1154     $ centerim -S a -p yahoo
1156 And this command will switch your yahoo status to away.
1159 9.3. External actions and auto-responses
1160 ----------------------------------------
1162   It is possible to make CenterIM run external programs, scripts and
1163 whatever to answer and/or process incoming events. Though, some extra
1164 setup is needed. Let me introduce you with another configuration file,
1165 named "external" which should reside under the .centerim/ directory in
1166 your home. Here is an example which demonstrates its options. It's
1167 recommended just cut'n'paste the following text.
1170 [ - $HOME/.centerim/external ---------------------------------------------- ]
1173 # External actions
1174 # ----------------
1176 # Every section starts with a line containing the "%action <name>",
1177 # "%pre-send <name>", "%pre-receive <name>" or "%manual <name>" text.
1178 # Please note that the <name> of any kind is necessary. It mustn't be
1179 # empty. Inside it the following parameters can be used:
1181 # event
1182 # -----
1183 # Can be "msg", "sms", "url", "online", "offline", "auth",
1184 #       "contacts" or "notification".
1186 # The latter means CenterIM's own notifications, such as birthday reminders,
1187 # away messages, and other stuff. Specifying several event types is
1188 # also allowed. "all" stands for all the event types.
1190 # proto
1191 # -----
1192 # Can be "icq", "yahoo", "aim", "irc", "msn", "lj", "rss" or "jab". Or
1193 # combination of these words. "all" can be used as a synonym for all of
1194 # them.
1196 # status
1197 # ------
1198 # Can be "online", "away", "dnd", "na", "occupied", "ffc" or "invisible".
1199 # Specifying several ones is possible. "all" stands for all of possible
1200 # status modes.
1202 # options
1203 # -------
1204 # Possible options for an action are:
1206 #       stdin           The incoming message text is to be passed to
1207 #                       stdin of the script to be executed.
1209 #       stdout          The script output is to be sent as a reply
1210 #                       message (if not empty).
1212 #       nowait          Don't wait for the script to finish. Obviously, the
1213 #                       stdout option won't make sense if this one is used.
1215 # Then, the section named "%exec" should follow. It contains a piece of
1216 # script to be executed being copied to a file first.
1219 %action         Simple auto-responder
1221 event           msg
1222 # Reacts only on events of message type ..
1224 proto           icq yahoo
1225 # .. only for icq and yahoo protocols
1227 status          away na
1228 # .. when we are in away or n/a status
1230 options         stdin stdout
1231 # .. the external commands text (below) reads the message from
1232 # stdin, then its stdout output is sent as a response to a
1233 # remote user.
1235 %exec
1237 msg=`cat`
1238 echo "hello. this is auto-responder. your message was: $msg"
1241 [ -------------------------------------------------------------------------- ]
1243 With this simple external actions configuration file CenterIM will
1244 perform a simple auto-respond action. You can have as many sections as
1245 you need. You can call any kind of external scripts and programs. Please
1246 note that the message text (when "stdin" option is specified for an
1247 action) can be read with cat command or something similar.
1249 Please also note it's possible to define actions that get invoked before
1250 the event is written to the history (and delivered to the contact list)
1251 as well as before it gets sent. Such kind of actions are defined with
1252 the %pre-send and %pre-receive directives. Using them, an event can be
1253 modified or even prevented from further processing, i.e. from showing on
1254 the contact list or actual sending. The latter is done with returning a
1255 non-zero return code in the %exec section.
1257 Every time something is to be executed the "%exec" section's contents
1258 are copied to a temporary file, and the latter is processed with the
1259 default shell. But it doesn't mean those code parts are default shell
1260 dependent. You can easily specify your favourite one with the first line
1261 like this:
1263 #!/usr/bin/perl
1265 for example. Though, anyway this code piece's aim is just to perpare
1266 arguments, perform initial checks, and then execute something for
1267 further processing.
1269 Another point to be explained is multiple actions with the same or
1270 similar parameters (event, proto, and status). If an event matches
1271 several actions, all of them are executed. If there is a need only in
1272 one, you can always perform necessary checks in "%exec" so that only one
1273 sends a reply.
1275 Also, the script from the %exec section when executed has the following
1276 environment variables imported by CenterIM:
1278 EVENT_TYPE
1280     The type of the received event. Can be "msg", "sms", "url",
1281     "online", "offline", "auth", "contacts" or "notification".
1283 EVENT_NETWORK
1285     The IM network name through which the event was received. Can be
1286     "icq", "yahoo", "aim", "irc", "msn", "lj" or "jab".
1288 CONTACT_UIN
1290     If an event is received through ICQ equals to the other party's UIN.
1291     Otherwise empty.
1293 CONTACT_NICK
1295     Set to other party's real nickname. Real means that even if you
1296     renamed the user in your contact list, this parameter will be equal
1297     to the original one, and not to what you set.
1299 CONTACT_INFODIR
1301     The most intresting parameter. Using it, you can access further
1302     information about the user. Every time an external action is
1303     executed it is set to the user's information directory under your
1304     ~/.centerim/ directory. It makes it easier to access "about" and
1305     "info" files under it. Fetching lines from certain positions of the
1306     latter allows to get details. It's enough to take a look at an
1307     "info" file of any user to find out what lines mean. Here I'll
1308     describe the most useful ones:
1310     - the 2nd and 3rd lines contain user's first and last names 
1311         respectively;
1312     - the 4th one contains user's e-mail address;
1313     - the 7th has the home city;
1314     - the 8th is used for the home state name;
1315     - the 9th is used for the home phone number;
1316     - the user's home country resides in the 14th line;
1317     - etc;
1319 To read a certain line from the info file I recommend to use the
1320 following shell command: "head -n <N> $CONTACT_INFODIR/info | tail -n 1",
1321 where N is the line number. Below the real examples go.
1323     fname=`head -n 2 $CONTACT_INFODIR/info | tail -n 1`
1324     # to fetch contact's first name
1326     lname=`head -n 3 $CONTACT_INFODIR/info | tail -n 1`
1327     # to fetch contact's last name
1329 The example from the next section demonstrates usage of the environment
1330 variables on an example of a simple answering machine :)
1333 9.3.1. IM answering machine
1334 ---------------------------
1336   This simple setup will answer on incoming messages automatically when
1337 you're away from your computer and your IM mode is set to Away or N/A.
1339 [ - cut (CenterIM external actions setup for an IM answering machine) ----- ]
1341 %action         Answering machine
1342 event           msg
1343 proto           all
1344 status          away na
1345 options         stdout
1347 %exec
1348 #!/bin/sh
1350 fname=`head -n 2 $CONTACT_INFODIR/info | tail -n 1`
1351 lname=`head -n 3 $CONTACT_INFODIR/info | tail -n 1`
1353 cat <<EOF
1354 Hello, $fname $lname!
1356 Unfortunately, I'm not near my box now, but I'll certainly contact you
1357 as soon as I get here.
1363 [ -------------------------------------------------------------------------- ]
1366 9.3.2. Elizatalk: making fun with your friends
1367 ----------------------------------------------
1369   One of the most intresting and funny uses for external actions in
1370 CenterIM is auto-responding chat robots. So far I know only one which
1371 is called Eliza. Unfortunately its doc covers only setup for licq, so
1372 it'll describe how to make it work with CenterIM here. Actually, it's
1373 not difficult thing to do at all.
1375   First, you'll have to download the elizatalk plugin itself. It's
1376 homepage can be found at the following URL:
1378     http://elizatalk.sourceforge.net/
1380   Let's assume we want it to work with all the IM engines, answer on
1381 messages only, and it's to be activated as soon as we're switched to
1382 away mode. All we need is to add one more section.
1384 [ - cut (CenterIM external actions setup for elizatalk) ------------------- ]
1386 %action         Eliza
1387 event           msg
1388 proto           all
1389 status          away
1390 options         stdin stdout
1392 %exec
1393 msg=`cat`
1394 echo $msg | elizatalk
1396 [ -------------------------------------------------------------------------- ]
1398 Voila! You might also want to read the elizatalk documentation. Though,
1399 with my great explanations it's not necessary anymore :)
1402 9.3.3. Remote control with external actions
1403 -------------------------------------------
1405   Another useful thing you can make with external actions is remote
1406 control for your servers or workstations. You can write an action which
1407 will report you various diagnostic messages or perform administrative
1408 tasks reacting on special pre-defined commands that only you may know.
1409 So you just add a section to your ~/.centerim/external file, and leave
1410 CenterIM running. Of course, the commands can be requested through any
1411 of supported IM networks, though it's also configurable.
1413   The following example can report free disk space, up time and files
1414 listing under your ~/.centerim/ directory. The commands are "df",
1415 "uptime" and "ls" respectively. As soon as CenterIM receives them it
1416 answers with external commands' answers. It won't reply any other
1417 messages.
1419 [ - cut (CenterIM external actions setup for simple remote control) ------- ]
1421 %action         Remote control
1422 event           msg
1423 proto           all
1424 status          all
1425 options         stdin stdout
1427 %exec
1428 #!/bin/sh
1430 case `cat` in
1431     ls) ls -l ~/.centerim/;;
1432     df) df -h;;
1433     uptime) uptime;;
1434 esac
1436 [ -------------------------------------------------------------------------- ]
1439 9.3.4. Forwarding events
1440 ------------------------
1442   The same way it's possible to setup forwarding of events to other
1443 contacts, or with SMSes when you are away from CenterIM. The forwarding
1444 is to be performed with the CenterIM command line options described
1445 below, which allow to send events from out the program.
1447   The following example shows a simple setup for forwarding incoming icq
1448 messages when you're away to a cellular phone with SMS.
1450 [ - cut (CenterIM external actions setup for simple events forwarding) ---- ]
1452 %action         ICQ messages forwarding
1453 event           msg
1454 proto           icq
1455 status          away na
1456 options         stdin
1458 %exec
1459 #!/bin/sh
1461 msg=`cat`
1462 echo $msg | CenterIM -s sms -p icq -t 0
1464 [ -------------------------------------------------------------------------- ]
1466 Please note UIN 0 is specified to send SMS to your own contact. Also,
1467 you can easily forward your incoming events to any other IM contacts,
1468 emails with the mail(1) command. In fact, everything you can access from
1469 the command line is possible to be used here.
1472 9.3.5. Hiding from scary ones
1473 -----------------------------
1475   This example will use the -S command line parameter which allows to
1476 control current status on IM networks from the command line.
1478 [ - cut (CenterIM external actions setup for hiding from scary ones) ------ ]
1480 %action         Hide from freddy_krueger
1481 event           online
1482 proto           all
1483 status          all
1484 options         stdin
1486 %exec
1487 #!/bin/sh
1489 if test "$CONTACT_NICK" = "freddy_krueger"; then
1490     centerim -S _ -p $EVENT_NETWORK
1493 [ -------------------------------------------------------------------------- ]
1495 Such a setup will make your CenterIM go offline as soon as the
1496 freddy_krueger user appears online on any of the IM networks you're
1497 currently logged in.
1500 9.3.6. "Manual" external actions
1501 --------------------------------
1503   There were only automatically executed actions so far. "But where are
1504 manual ones?" - you will probably ask. Let me introduce to you the type
1505 of actions that can be executed either from the contact list or from the
1506 "users details" screen by pressing the F6 key. Such actions are executed
1507 depending on a menu selection, then the corresponding code is ran
1508 passing the data of a current contact, and if there was some output, it
1509 will be shown in a dialog. One of the applications of the feature is to
1510 invoke the host(1) command for a users' IP in order to find out his
1511 Internet domain name. If you're a cool hacker, you can bind invoking nmap
1512 this way or anything else you want :)
1514 [ - cut (external actions setup for invoking of host(1) manually) ---------- ]
1516 %manual         host
1517 proto           icq
1519 # Only ICQ shows up IP addresses
1522 %exec
1523 #!/bin/sh
1525 ip=`head -n 45 $CONTACT_INFODIR/info | tail -n 1`
1526 for i in $ip; do ip=$i; break; done
1527 host $ip
1529 [ -------------------------------------------------------------------------- ]
1531 The strange "for" cycle is there because we want only the first IP
1532 number, while quite frequently there are two separated with a space,
1533 where the second one represents a local IP address which we don't need
1534 to resolve.
1536 Add this section to your ~/.centerim/external and enjoy the comfort of
1537 not having to copy'n'paste the IP address in case you want to look up a
1538 domain name.
1541 9.4. Internal RSS reader
1542 ------------------------
1544   There is another useful technology whose power can be utilized with
1545 CenterIM. It's called RSS or just "Really Simple Syndication". It's
1546 about a uniform XML format which is used to describe recent changes at
1547 various web sites and not only web sites. Theoretically you can describe
1548 updates of any kind of information resources with it. See
1549 http://backend.userland.com/rss for more info about the format.
1551   Now, what CenterIM can do about it. Since version 4.9.5 it allows you
1552 to add RSS feeds to contact list just like they were usual contacts. You
1553 can also specify the check period. As soon as there are any updates, the
1554 contact pops up and you can read the news without a need to leave your
1555 favourite sweet IM proggy.
1557   In order to find out if there is an RSS feed for a web site you're
1558 looking to receiving updates from, navigate to it and look for a button
1559 saying something like "RSS" or "XML". Then take a link and add it to
1560 CenterIM. If there are no such a button, ask web master to setup the
1561 feature.
1563   Also, there is a feed URL for you to try: http://thekonst.net/rss_en.xml
1564 Having added it to your CenterIM you can stay tuned about updates on
1565 the program author's site. You'll be announced about new releases of
1566 CenterIM and other cool pieces of free software, as well as on
1567 publication of various articles and photos which I take sometimes with
1568 my digital camera.
1570   LiveJournal syndications will also work. In order to subscribe to
1571 someone's updates, use the following URL:
1572     http://www.livejournal.com/users/USERNAME/rss/.
1573 As an example, you can try
1574     http://www.livejournal.com/users/thekonst/rss/
1575 (it's mainly in Russian though).
1578 9.5. Protocol debug mode
1579 ------------------------
1581   Actually I have this feature for myself, to track protocol messages
1582 generated by icqlib. But I also don't mind your looking at them :) The
1583 only thing I wanna warn you is that no questions about their meaning are
1584 answered. If you feel like seeing and understanding them, please refer
1585 to the unofficial ICQ protocol specification, icqlib sources, whatever..
1587   To enable this feature, just run CenterIM with --debug parameter.
1588 Protocol debug messages will be in the log window, and also they'll be
1589 written into the ~/.centerim/debug file.
1592 9.6. "Friendly" logging
1593 -----------------------
1595   Another (better) way to log what is going on in your CenterIM, is
1596 possible to be enabled with the "Detailed IM events log" item in the
1597 Configuration dialog. When enabled, CenterIM produces a log file named
1598 .centerim/log under your home directory. It contains messages about users'
1599 logging in and out, receiving and sending messages, changed your own IM
1600 status, and other blah. The file's format is quite clear, so any kind of
1601 automatic parsing tool can be written without a problem. Though in this
1602 case you should keep in mind the messages are locale dependent.
1605 9.7. Custom base directories
1606 ----------------------------
1608   By default, CenterIM uses the .centerim/ directory under your home
1609 to hold all of its information, such as configuration and contact list.
1610 There can be situations, when you want to have several IM identities in
1611 the same networks under the same UNIX account. To make it possible, the
1612 -b or (--basedir) command line parameter was implemented. It's syntax is
1613 simple "-b <directory name>"
1616 9.8. Latest snapshots
1617 -------------------------
1619   If you wanna always have the recent version of the program, there is
1620 an anonymous GIT repository available to get the code.
1622 You can find documentation at our website to get the latest (development) 
1623 source code, using the GIT at: http://repo.or.cz/w/centerim.git
1625 At our website is a description how to get it.
1626 - http://www.centerim.org/index.php/Contribute_Code
1628 You can also get complete packages from:
1629 - http://www.centerim.org/download/
1630 - ftp://ftp.centerim.org/
1633 10. Lynx
1634 --------
1636   This section contains links and references that may be of interest for
1637 you.
1640 10.1. The program homepage
1641 --------------------------
1643 The CenterIM homepage can be found at
1644     http://www.centerim.org/
1647 10.1.1. CenterIM mailing list
1648 ------------------------------
1650   There are two mailing lists for CenterIM, one is used by program
1651 users and the other is used by developers to discuss their ideas, bug 
1652 reports, fixes, and other stuff.
1654   To subscribe go to the CenterIM home page and fill out the appropriate form.
1655   For CenterIM users
1656   - http://centerim.org/mailman/listinfo/centerim-users
1658   For CenterIM developers
1659   - http://centerim.org/mailman/listinfo/centerim-devel
1662 10.2. IM protocols
1663 ------------------
1665   Here we want to say thanks to authors of libraries CenterIM uses to support various
1666 IM protocols.
1668   Barnaby Gray <barnaby@beedesign.co.uk>, who wrote a great library
1669   for icq2000 protocol and a GTK+ based ICQ client for UNIX.
1670   http://ickle.sourceforge.net/
1672   The whole team of
1673     Mark Spencer <markster@marko.net>,
1674     Adam Fritzler <afritz@marko.net>,
1675     Rob Flynn <rob@marko.net>,
1676     Eric Warmenhoven <eric@warmenhoven.org>,
1677     Brian Macke <macke@strangelove.net>,
1678     Anand Biligiri S <abiligiri@users.sf.net>,
1679     Valdis Kletnieks,
1680     Sean Egan <bj91704@binghamton.edu>,
1681     Toby Gray <toby.gray@ntlworld.com>
1682   for the library implementing the Yahoo! protocol.
1684   Ian Gulliver <ian@penguinhosting.net> for the nice Firetalk library
1685   used by CenterIM to provide the AIM and IRC services.
1687   The Jabber Team http://jabber.org/ for their GNU Jabber library.
1689   Since CenterIM contains support for the ICQ protocol taken from the
1690 original software made by Israeli company named "Mirabilis", you might
1691 wish to know more about it. So, visit the ICQ website at
1693     http://www.icq.com/
1695   It provides information about the company itself along with a lot of
1696 community services including SMS messaging, web directory, and so on.
1699 11. Help to the project is appreciated
1700 ------------------------------------------
1702   What if you think that CenterIM is the best text console based
1703 instant messaging program around? What if CenterIM is the application
1704 you'd been waiting whole of your life, and want to express your
1705 appreciation somehow? Helping the authors, you help the project itself to
1706 keep rolling. It's not something vital we require to keep on writing and
1707 improving CenterIM, neither you have to do it. 
1710 11.1. Feedback
1711 --------------
1713   You can write some feedback saying what you liked and what is missing
1714 in the program. Also, don't be silent if you notice bugs. Just check
1715 everything attentively and put a detailed bug-report on
1716 http://bugzilla.centerim.org/ or drop a detailed email on our developers
1717 mailing list if you think you've found a bug.
1719 If you have questions about how CenterIM works, you can also say hallo on 
1720 our irc channel #centerim on freenode.
1723 11.2. Patches
1724 -------------
1726   Don't wait for us to implement a feature you'd like to have in
1727 CenterIM. Please have in mind that whole the source code is available
1728 and you can modify it yourself, then make a patch and send it to us.
1730 At our website is written how to get the code and how you can contribute
1731 patches.
1733 We'd like you to follow our style of formatting the code. Please
1734 don't make any changes not related to the feature you implement, it
1735 makes your patch difficult to commit.