First attempt to correct visualization of UTF-8 characters
[centerim.git] / README
blob594f876ba8678f0529536b683a5f5c807766280c
1 Centericq documentation by
2 Konstantin Klyagin <konst@konst.org.ua>
3 2001-2005
5 Contents
6 --------
8 1. Introduction
9     1.1. Creation history
10     1.2. Features overview
11     1.3. Requirements
12     1.4. First time start
13 2. IM accounts registration
14     2.1. ICQ accounts
15     2.2. Yahoo! accounts
16     2.3. AIM accounts
17     2.4. IRC accounts
18         2.4.1. IRC channels
19     2.5. Jabber accounts
20         2.5.1. Jabber groupchat conferences
21     2.6. LiveJournal
22     2.7. Gadu-gadu
23     2.8. MSN
24     2.9. Updating details
25 3. User interface
26     3.1. The ESC key
27     3.2. The main screen
28     3.3. Menus
29     3.4. Dialogs
30     3.5. Hotkeys in dialogs
31     3.6. Some UI tips
32 4. Configuration
33     4.1. Migrating from other ICQ software
34     4.2. Event sounds
35     4.3. Color schemes
36     4.4. Key bindings
37     4.5. URL open action (web browser support)
38     4.6. Hostnames and port numbers (for crazy firewall admins)
39         4.6.1. ICQ
40         4.6.2. Yahoo!
41         4.6.3. AIM TOC
42         4.6.4. IRC
43         4.6.5. Jabber
44         4.6.6. LiveJournal
45         4.6.7. Gadu-gadu
46         4.6.8. MSN
47     4.7. Binding to various IP addresses
48 5. Online status
49     5.1. "Auto Away" and "Auto N/A"
50 6. Contact list
51     6.1. Finding and adding users
52         6.1.1. Some useful hints
53         6.1.2. ICQ search specific modes
54     6.2. Removing users
55     6.3. Users' details
56     6.4. Groups of contacts
57 7. Sending and receiving events
58     7.1. Messages
59     7.2. URLs
60     7.3. SMSes
61     7.4. Contacts
62     7.5. Files
63     7.6. E-mail express messages
64     7.7. WebPager messages
65     7.8. Away messages
66     7.9. Events history
67 8. Ignore, visible and invisible lists
68     8.1. Ignore list
69     8.2. Visible list
70     8.3. Invisible list
71 9. Advanced features
72     9.1. Arabic and Hebrew languages support
73     9.2. Command line facilities
74         9.2.1. Sending events
75         9.2.2. Changing current IM status
76     9.3. External actions and auto-responses
77         9.3.1. IM answering machine
78         9.3.2. Elizatalk: making fun with your friends
79         9.3.3. Remote control with external actions
80         9.3.4. Forwarding events
81         9.3.5. Hiding from scary ones
82         9.3.6. "Manual" external actions
83     9.4. Internal RSS reader
84     9.5. Protocol debug mode
85     9.6. "Friendly" logging
86     9.7. Custom base directories
87     9.8. Latest CVS snapshots
88 10. Lynx
89     10.1. The program homepage
90         10.1.1. Centericq mailing list
91         10.1.2. German fan-club of the program :-)
92     10.2. thekonst.net
93     10.3. Other programs I write
94     10.4. IM protocols
95 11. Help to the project I would appreciate
96     11.1. Feedback
97     11.2. Patches
98     11.3. Promoting the little program
99     11.4. Donations
100         11.4.1. Money
101         11.4.2. Hardware
102         11.4.3. Other stuff
105 1. Introduction
106 ---------------
108   Centericq is a text mode menu- and window-driven IM interface. ICQ,
109 Yahoo!, AIM TOC, IRC, MSN, Gadu-Gadu and Jabber protocols are currently
110 supported. It allows you to send, receive, and forward messages, URLs,
111 SMSes and, contacts, mass message send, search for users (including extended
112 "whitepages search"), view users' details, maintain your contact list
113 directly from the program (including non-icq contacts), view the
114 messages history, register a new UIN and update your details, be
115 informed on receiving email messages, automatically set away after the
116 defined period of inactivity (on any console), and have your own ignore,
117 visible and invisible lists. It can also associate events with sounds,
118 has support for Hebrew and Arabic languages and allows to arrange
119 contacts into groups. There is also an internal RSS reader and even a
120 LiveJournal client!
122   Centericq is known to build and work well under Linux, FreeBSD,
123 OpenBSD, NetBSD, Sun Solaris, MacOS X/Darwin and Microsoft
124 Windows (built with cygwin).
127 1.1. Creation history
128 ---------------------
130   This program was written because of a very simple cause. I just
131 couldn't find any console based ICQ clients with really useful user
132 interface. When I started it I had quite a slow computer at home. Having
133 X window running on it took incredibly a lot of resources making whole
134 the system really slow. I didn't like an idea of launching it just to be
135 on ICQ, but there were several good programs only for X. For console
136 they had only mICQ and zicq. The former was ok, but its interface made
137 me cry. I know, it's of quite a UNIX style, and I don't have anything
138 against command line, but typing nicks and uins all the time was
139 terrible. The second thingie, zicq, was an attempt to implement menus
140 and windows for ICQ in text-mode, but its author couldn't go further
141 than just splitting the screen into two windows, one with contact list
142 and another with usual mICQ output :) Actually it was all based on mICQ
143 code. I don't wanna say mICQ was bad, for it was the first ICQ client
144 for Linux, and its author made a great job exploring and sniffing the
145 protocol.
147   After looking at freshmeat and some "icq for linux" pages the hope to
148 find something worth was finally lost. I decided to put some effort into
149 making a program which would be really useful for me. It took me about
150 two weeks to write and then 1 week to test before releasing the first
151 version.
153   Since that time the software suffered a lot of changes, including
154 rewrite resulted into the version 3.0.0, and then adding more IM protocols
155 since 4.1.0. Now I'm continuing to develop it, going the standard way of
156 adding new features and fixing bugs. And feedback from users helps me a
157 lot in it.
160 1.2. Features overview
161 ----------------------
163   Centericq's ICQ module has almost all the functionality including
164 extended issues that Mirabilis client has. Speaking of other protocols,
165 it has quite full support for features of Yahoo!, AIM, IRC and
166 Jabber.
168   Beside simple things like sending and receiving messages, changing
169 online status and basic user information, centericq advanced features
170 such as "White pages" and keyword search, an ability to update almost
171 all the fields in user's details, send URLs and SMSes, etc. I hope you
172 enjoy it a lot :)
175 1.3. Requirements
176 -----------------
178 In order to build the software the following libraries are required:
180 ncurses (at least 4.2 version)
181     A CRT screen handling and optimization package.
182         http://dickey.his.com/ncurses/ncurses.html
184 openssl
185     The secure communications library. Optional, but you will require
186     if you want SSL support for Jabber. Previous versions of the library
187     called SSLeay will work with centericq too.
188         http://www.openssl.org/
190 gnutls
191     The secure communications library. Optional. An alternative to
192     OpenSSL distributed under the GNU Public License.
193         http://www.gnutls.org/
195 gpgme
196     This is for PGP support in Jabber. Optional also.
197         http://www.gnupg.org/(en)/download/index.html#gpgme
199 Please note that in order to compile centericq from source on Redhat
200 based systems you should have *-devel RPM packages of the above
201 mentioned libraries installed.
203 It's possible to disable support of various protocols during the build
204 phase. Just take a look at the --disable-xxx parameters for configure.
205 You can invoke the scripts command line help with the following command:
207 $ ./configure --help
210 1.4. First time start
211 ---------------------
213   Upon the first execution, the program shows its configuration screen
214 and then gets to the next stage, the account manager dialog. All the
215 configuration dialog items are self-descriptive, so there must be no
216 problems to customize your centericq. As soon as you're finished with
217 it, using the right allow key, move cursor to the "Done" button and
218 press Enter.
220   Russian speaking users should pay attention to the "Russian
221 translation" item of the registration dialog. It's vital to set its
222 value to "yes" to be able to use cyrillic. In most cases. Unless you use
223 win1251 as a default charset, about what I doubt a lot :) Unfortunatelly
224 we have two different encodings for our language, koi8-r is default for
225 UNIX like systems and win1251 is used in Windows. Since ICQ comes from
226 Windows we need to recode every sent and received message in order for
227 it to be readable.
230 2. IM accounts registration
231 ---------------------------
233   This section says a bit about registering new and entering existing
234 accounts' details into configuration of your centericq. Everything that
235 centericq can do about it is available through the "Accounts" dialog
236 displayed at the start and then residing under the f4->Accounts.. menu
237 item.
240 2.1. ICQ accounts
241 -----------------
243   To be able to use the ICQ IM service you should have a UIN (I think it
244 stands for something like "user identification number"). You can either
245 use an already existing UIN or register a new one selecting appropriate
246 items in the "Account manager" dialog. Some attention should only be
247 paid to the "server address" field. The default value will be
248 substituted unless something is set there, i.e. empty "server" field is
249 quite ok. In the majority of cases you do not need to change it. The
250 only exception is if you have your own ICQ server on LAN.
253 2.2. Yahoo! accounts
254 --------------------
256   Centericq doesn't support registring new Yahoo! ID's, so if you don't
257 have one yet, just visit the homepage Yahoo! messenger at
258 http://messenger.yahoo.com/ and select the "Acct info" link in the top
259 right corner.
262 2.3. AIM accounts
263 -----------------
265   AIM accounts can be created with the AOL's web interface at
266 http://my.screenname.aol.com/ by clicking on the "Get a Screen Name"
267 link. Don't also forget to set your profile information with "Update
268 your details" item in the Account manager dialog.
271 2.4. IRC accounts
272 -----------------
274   This service is completely different from others supported by
275 centericq. You don't need to register to connect to irc. All you need is
276 just choose a nick which is not used by anyone else. Otherwise it'll be
277 reported as soon as you try to login. So set any nick and a host name of
278 the server you want to chat on, and go ahead!
280   For the advanced IRC users there can be a need for so-called NickServ
281 authentification using a password to identify himself. Sometimes it's
282 used to protect your nickname from overtaking on a specific IRC network.
283 Centericq does support this too, providing a non-obligatory password
284 field.
287 2.4.1. IRC channels
288 -------------------
290   IRC channels behave theirselves like usual contacts, though the set of
291 actions possible to perform upon them is different. Using the F2-menu
292 and hotkeys it's possible to join or leave a channel, view the list of
293 users, etc. Please note, in order to stay on a channel you should have
294 it on your contact list. As soon as a channel is deleted, you leave it
295 automatically.
298 2.5. Jabber accounts
299 --------------------
301   Jabber is the most advanced open source and free instant messaging
302 solution. Since the version 4.8.8 it's been supported by centericq. Due
303 to its being open and developed by the wide community, centericq can
304 register new nicknames in it very easily.
307 2.5.1. Jabber groupchat conferences
308 -----------------------------------
310    Like IRC channels, they're controlled like usual contacts, too.
313 2.6. LiveJournal
314 ----------------
316   Though LiveJournal is not actually an IM service, but I hope you
317 forgive me for that. LiveJournal is a weblogs community. Its URL is
318 http://www.livejournal.com/. Centericq makes use of their open source
319 and well-documented client-server protocol, and makes it possible to
320 post items and read friends' RSS feeds directly from its interface. So
321 if you want an account, go to http://www.livejournal.com/ and see how to
322 get it. If you don't like the rules, you can always download their
323 server software and install it on your own. Long live open source!
326 2.7. Gadu-gadu
327 --------------
329   If you have libjpeg installed in your system and the configure script
330 does find it, centericq can register a UIN on this network for you.
331 Otherwise you can only register one with the official client that can be
332 downloaded from the official site at http://www.gadu-gadu.pl/
335 2.8. MSN
336 --------
338   An account for MSN can also be registered through a web interface at
339 http://chat.msn.com/ though it seems that they block access from Linux
340 based web browsers.
343 2.9. Updating details
344 ---------------------
346   If you have just registered on the ICQ network only basic fields of
347 your details were set. Now, if you want to provide the world with more
348 information about yourself, you should invoke the "Update ICQ details"
349 dialog. First go to the "Accounts" dialog which can be accessed through
350 the global menu, and there in the ICQ node select "Update user details".
351 You can fill in information that will be visible to other ICQ users.
352 They also will be able to find you with specifying what you filled in
353 their "find users" requests.
355   It's possible to update your ICQ and AIM details any time you're
356 online with the dialog. Details within other networks are possible to be
357 updated with respective web interfaces, I believe.
360 3. User interface
361 -----------------
363   The text UI centericq has, as well as UI of other programs for console
364 I have written, is very simple. There are menus, windows, menus and
365 input lines. In the bottom line of the screen there is a status bar. It
366 usually contains hints about what to press to invoke various menus,
367 dialogs, and perform various actions.
370 3.1. The ESC key
371 ----------------
373   This key is used for termination of input, if you wanna cancel the
374 operation you wanted to perform. Say, if "send message" operation is
375 chosen (invoked just with a press of "Enter" on a contact), an editor
376 window appears. As status bar says, you can use "Ctrl-X" to send it, and
377 ESC to cancel. The only hint is that you have to press the ESC key
378 twice. It's a common practice for console based UNIX programs (Midnight
379 commander is a good example), because checking for only one ESC would
380 spoil arrow key processing. The point is that they have correspond
381 sequences that start with an ASCII#27 character which is actually ESC.
383   If you still want to press a simple key combination to close a dialog
384 or cancel something, try Alt-ESC. Though it's not guaranteed to work on
385 all terminals.
387   The ESC key can also help you to issue shortcuts and key combinations
388 such as Alt-? or F<x>. The former, if Alt-Shift-/ doesn't work can be
389 produced by first pressing ESC and then Shift-/ (i.e. "?"). And instead
390 of any F-key the ESC and then a number can be used.
393 3.2. The main screen
394 --------------------
396   The main screen of centericq consists of three parts. First is contact
397 list which is situated to the left. Next is information window which is
398 used to show received events, users' details, and also to edit events
399 that are going to be sent. And the smallest one is a log window in which
400 you can see messages about what centericq is doing right now.
403 3.3. Menus
404 ----------
406   No need to say, menus are a common way to provide a user with an
407 ability to select one (or several) items from a certain list. To make a
408 difference between single and multiple choice menu you gotta just have a
409 look at the items. If square brackets stand next to items text in every
410 line, a multiple selection is requested. Otherwise you can only select
411 one item. To do it, just press "Enter" on it. To make a mutiple
412 selection, press "Space" on items and use "Enter" to finish the
413 selection. ESC does also work in all menus to cancel the selection.
415   I will mention two menus below. They are global menu and contact
416 context menu, invoked with F4 and F2 correspondingly. The former allows
417 to execute various actions of global kind, such as find and add users,
418 manage ignore, visible and invisible lists, change settings, etc. With
419 the context menu you can do various current contact specific things.
422 3.4. Dialogs
423 ------------
425   Every dialog in centericq has a tree-like view. When I was about to
426 write classes for form-based input, I remembered that there was a
427 "treeview" class written by me before. So, I decided to use it for
428 dialogs and was right. There was no need to re-design the whole form in
429 case I need to add some controls, or so. I just add it as a node or a
430 leaf it scrolls, and nothing gets spoiled. Everything really nice is
431 always simple :)
434 3.5. Hotkeys in dialogs
435 -----------------------
437   Dialogs of centericq usually have a bar with buttons. To access a
438 button without moving the highlighted bar over it with the arrow keys
439 you can use shortcuts. It's enough to press the first capital letter of
440 a button name to access the function behind it.
443 3.6. Some UI tips
444 -----------------
446   There at some quite standard key combinations supported by centericq I
447 wanna tell you about. Here they go.
449     Ctrl-L
450       Redraws the screen in any place of program execution. If output of    
451     some kind of background programs or system messages spoil your screen
452     just press it so centericq display is refreshed.
454     Ctrl-Y
455       In a message writing mode removes entire current line.
457     Ctrl-K
458       Single line edit mode.
459       Kills entire content.
461     Ctrl-U
462       Single line edit mode.
463       Kills a part of line to the left from cursor.
465     Alt-H
466       Single line edit mode.
467       Invokes history of recently entered lines.
470 4. Configuration
471 ----------------
473   The majority of centericq settings can be found in the "Configuration"
474 dialog which can be invoked by selecting an appropriate items in the
475 global menu (the one you see on pressing F4). There are only three
476 things you should setup from outside the program with modifying the
477 program's configuration files. They are event sounds, actions (see
478 below) and color schemes.
480   With the "Configuration" dialog you can turn on and off various
481 features, as well as change the ICQ server address and adjust network
482 settings. All the items there are self-explanatory and their meaning is
483 quite obvious. I suppose the program users are usually not dumb :) so I
484 won't cover all of the items here in the documentation.
487 4.1. Migrating from other ICQ software
488 --------------------------------------
490   If you decided to migrate to centericq from another ICQ software or
491 have a need to you something else in parallel, there is a way to convert
492 the contact list. This means you can migrate without loosing your
493 contacts and history.
495   How to do it? There is a perl script named cicqconv. It's usually
496 installed on "make install" under @prefix@/bin (/usr/local/bin in the
497 majority of cases). Its usage is very simple. You should only pass one
498 parameter to it, telling from what kind of ICQ software it's to convert
499 your data. To see the list of supported software, run the script without
500 parameters.
503 4.2. Event sounds
504 -----------------
506   As it was said before, centericq can play sounds on various events.
507 It's done the following way. Upon, say, receiving a message, centericq
508 executes an external command. Actually it can be whatever you want, but
509 original idea is to execute a command line WAV player.
511   There are three WAV sound files which centericq has by default. They
512 are sounds taken from Mirabilis ICQ. When you set "Change sound device
513 to" item to "sound card", the program generates a file named sounds in
514 the .centericq/ directory in your home folder. The default file has
515 commands to execute a "play" utility (from sox package) with a name of a
516 file to play, one of the default ones. If you wanna change the player or
517 a sound simply edit ~/.centericq/sounds.
519   If you use ESD (Enlightenment Sound Daemon) to have some extra sound
520 facilities such as mixing streams, or playing on another computer, you
521 might wish to change the "play" command to "esdplay".
524 4.3. Color schemes
525 ------------------
527   It's possible to customise colors in the centericq's user interface.
528 It's done with the ~/.centericq/colorscheme configuration file. Its
529 contents are self-descriptive, and parameter names mean exactly that
530 they're named after. Please note, that among the standard color names
531 it's possible to specify "transparent" which is useful when the program
532 is used in terminals with background images set.
534   Started for the first time, centericq creates the default colorscheme
535 file filled in with settings of one of default schemes that the
536 Configuration dialog proposes. Also its contents are re-written every
537 time you change color scheme from the dialog.
539   To define your own color scheme, feel free to modify the default
540 colors configuration file or choose one of contributed ones that can be
541 found under the contrib/ directory of the source tarball.
543   More "visual" explanation can be found here at the centericq.de:
544 http://centericq.de/misc/colorscheme_helper.png
547 4.4. Key bindings
548 -----------------
550   Key bindings are also configurable in centericq. On the first start it
551 creates a file called keybindings in your ~/.centericq/ directory. You can
552 use its initial contents for reference. If you want to change something,
553 well, it's all there.
556 4.5. URL open action (web browser support)
557 ------------------------------------------
559   Centericq can extract URLs from messages and user information records
560 for you. And it also can launch your preferred web browser to view them.
561 No need to have a big attention to notice "F2 to URLs" text in the
562 status bar when you view either a message or user's details. The "open
563 URL" action starts right after you make a selection in the menu invoked.
564 The ~/.centericq/actions file is responsible for this. By default it has
565 a command to execute netscape, but you can change to whatever you want.
566 Please only note that you cannot put lynx or any other text mode based
567 browser starting in the same console there. The commands from "actions"
568 run in parallel with centericq, so please only pass your URLs to scripts
569 or to X based browsers, but to nothing interactive.
571   Though, if you're using centericq under screen(1) there is a solution.
572 Jochen Sprickerhof <jochen.sprickerhof@web.de> advised it having read
573 the statement in the previous paragraph. He proposes to define open url
574 action the following way: "openurl screen lynx $url$", in order to open
575 lynx in a new screen window as soon as an URL to browse it chosen.
578 4.6. Hostnames and port numbers (for crazy firewall admins)
579 -----------------------------------------------------------
581   I'm frequently asked what ports and hostnames centericq uses to
582 connect to various IM services. To avoid further buzz, I just include
583 them here.
586 4.6.1. ICQ
587 ----------
589   Hostname: login.icq.com
590   Port: 5190
592   Here a small note is needed. To a great displeasure of network admins,
593 the ICQ main server listens on all the TCP ports, from 1 to 65535. So
594 if in your network the 5190 is blocked, don't be upset, set it to 80 or
595 to 21 or whatever is not restricted by firewall and it will work :)
598 4.6.2. Yahoo!
599 -------------
601   Hostname: scs.msg.yahoo.com
602   Port: 5050
605 4.6.3. AIM TOC
606 --------------
608   Hostname: toc.oscar.aol.com
609   Port: 9898
612 4.6.4. IRC
613 ----------
615   For this network you gotta choose a server yourself, because the
616 auditory of people you chat with and other things depend exactly on this
617 choice. However, by default, centericq sets the following parameters:
619   Hostname: irc.freenode.net
620   Port: 6667
623 4.6.5. Jabber
624 -------------
626   There are many Jabber servers in the world, also the solution is
627 widely used for in-house communications inside various companies, so you
628 can choose the server yourself. At the other hand, the default server
629 open to the public is the following:
631   Hostname: jabber.com
632   Port: 5222
635 4.6.6. LiveJournal
636 ------------------
638   Since LiveJournal, despite of its being not an IM network, is also a
639 completely open source and free (in the "free speech" sense) solution,
640 you can find LiveJournal servers installed anywhere. You can even
641 install one on your own. Just in case, here I'm giving you parameters of
642 their main server:
644   Hostname: livejournal.com
645   Port: 80
648 4.6.7. Gadu-gadu
649 ----------------
651   Hostname: appmsg.gadu-gadu.pl
652   Port: 80
655 4.6.8. MSN
656 ----------
658   Hostname: messenger.hotmail.com
659   Port: 1863
662 4.7. Binding to various IP addresses
663 ------------------------------------
665   If the box you're running centericq on has several IPs and you would
666 like to use a certain one of them for IM connections, there is a command
667 line parameter made especially for you, --bind <IP address> or shortly,
668 -B <IP address>.
671 5. Online status
672 ----------------
674   With centericq you can be either on or off the ICQ network. The status
675 can be changed with the "Status" menu invoked either with F3 or "S" key
676 or from the global menu. It provides you with a choice to switch between
677 online statuses along with an ability to go offline. If one of online
678 statuses if selected when you're offline, centericq will connect and
679 switch the status to what was chosen.
681   With an online status you can indicate to those who are in touch with
682 you your being away, occupied, free for chat, not available, etc.
685 5.1. "Auto Away" and "Auto N/A"
686 -------------------------------
688   Also there is a way to switch status to Away and N/A (not available)
689 after a certain period of inactivity, to show your friends or colleagues
690 you're somewhere away from computer.
692   The very useful thing about is that centericq detects inactivity for
693 all the consoles if you use it locally. So it won't change your status
694 if you're just working in another console and only don't tweak it.
696   The auto periods can be changed with the "Configuration" dialog. Zero
697 value means the feature is off.
700 6. Contact list
701 ---------------
703   The list of your contacts is displayed to the left on the centericq
704 main screen, and has a tree-like structure. There are "Online" and,
705 unless the "Hide offline users" options is on, "Offline" nodes, groups
706 (if switched on). If a user has a birthday today, a smiley face ":)" is
707 shown next to his or her nickname.
709   If a contact is online, a status letter in square brackets is shown
710 for him. Though, the brackets kind can vary. Besides the square ones,
711 there can be {x} and <x> items. The former means a contact is on your
712 invisible list, and the latter represents your "always visible" status
713 for a contact.
715   Finally, if there is an unfinished (postponed) message for a certain
716 contact, the ">" character will appear between status and nickname.
719 6.1. Finding and adding users
720 -----------------------------
722   The most common way to add an IM contact to your list is to use the
723 "find/add user(s)" dialog invoked from the global menu. First you have
724 to find the contact you wanna add. Centericq allows you to search for
725 users with various parameters in various networks.
727   In ICQ, you can add a user knowing his UIN, or see a list of people
728 matching your criterias. In fact, ICQ server sends only first 40 matching
729 UINs, but usually it's quite enough.
731   Note that in ICQ search requests you can use simple wildcards in the
732 text input fields. It's possible to put "*" there. For example, you don't
733 remember my last name exactly, but know only several first letters. Then
734 just type in a first name ("Konstantin") and fill in the "last name" field
735 with "Klyag*". The same trick can be done with other fields: "city",
736 "nickname", "company", etc..
738   The Yahoo!, AIM, IRC and Jabber networks support in centericq
739 does only allow to add users by nicknames.
741   With IRC it's possible to get users from channels. For more info on
742 channels and other IRC related stuff, please refer to http://www.irc.org/.
743 So, with centericq you can either fetch a list of users for a specified
744 channel, or (sic!) find users that stay on several channels simultaneously.
745 To perform the latter, just put several channel names separated with spaces.
746 For example, the "#centericq #linux" query will show a list of users that
747 are currently talking on both channels.
750 6.1.1. Some useful hints
751 ------------------------
753   You can skip the finding step by issuing one of the following shell
754 commands to add a user (depends on an IM type):
756     $ mkdir ~/.centericq/<UIN of a user to add>
757         This one is for ICQ
759     $ mkdir ~/.centericq/y<nickname>
760         For Yahoo!
762     $ mkdir ~/.centericq/a<nickname>
763         For AIM
765     $ mkdir ~/.centericq/i<nickname>
766         For IRC
768     $ mkdir ~/.centericq/j<nickname>
769         For Jabber
771 Don't forget to restart centericq so that it re-reads the contact list.
772 Though, it's better anyway to follow the usual find/add procedure.
774   Another intresting ICQ related trick I wanna share with you. Because of
775 a natural couriousity, sometimes names of people get me intrested in finding
776 out about their ethnical origin. Once I saw a last name, Aslam, which seemed
777 like a muslim one, but I had no idea which country the guy originated
778 from. I decided to use ICQ to find out. Opened the "find/add" dialog and
779 typed that in. After looking at several matched contacts I noticed the
780 majority of people were from Pakistan, so I realized where the guy was
781 from and my couriosity was satisfied.
783   I go the same way to find out in which country a certain city is
784 located, and so on. This makes ICQ extremely useful for me. Just use
785 your imagination to find other ways to use such a great statistics
786 database :)
789 6.1.2. ICQ search specific modes
790 --------------------------------
792   The "find/add users" dialog for ICQ besides the obvious parameters
793 does also contain two interesting items such as "Random chat group" and
794 "Keywords". With the help of the former you can easily look for chat
795 partners from standard 10 groups, if you're bored or just feel like
796 chatting with someone. You never know who can be there. Also, you can
797 make yourself available for others so that they can find you in random
798 chat groups. Just set the corresponding parameter in the "Update your
799 details" dialog for ICQ.
801   The keyword search feature allows to search for contacts by specified
802 keywords that are taken from interests, geographical location and other
803 places, and indexed somehow by the Mirabilis guys. Quite an interesting
804 feature too.
807 6.2. Removing users
808 -------------------
810   Removing users is a very simple procedure. You can either hit DEL on a
811 certain contact or select an appropriate item in the context menu. After
812 confirmation the contact is removed.
815 6.3. Users' details
816 -------------------
818   On the ICQ network, every user has a set of details that can be
819 browsed and used in search queries by others. To browse details of a
820 specific user on the contact list it's enough just to press '?' on a
821 corresponding to a contact item.
823   Please don't hesistate to do it before asking people who they are. It
824 takes time to explain, though it can be looked up so easily.
827 6.4. Groups of contacts
828 -----------------------
830   In case you have a lot of people on contact list, you might wish to be
831 able to visually arrange them into groups. Choose any criteria.
832 Geography, companies, activities, interests.. Anything. Centericq
833 supports it.
835   To turn the feature on invoke the configuration dialog and switch the
836 "arrange contacts into groups" option value to "yes". By default, all of
837 your contacts will appear on standard "Global" group from which you can
838 move them to other groups creating them "on fly". There is an item in
839 the context menu named "Move to group.." which allows you to do it.
841   It's also possible to collapse and expand groups by pressing the Enter
842 key on them.
844   Remove, add and rename operations on groups can be done with the group
845 manager dialog invoked from the global menu item named "Organize contact
846 groups".
849 7. Sending and receiving events
850 -------------------------------
852   Sending and receiving events is what ICQ and all the instant messaging
853 are all about. The concept itself means an ability to stay in touch by
854 delivering messages of various kind immediately.
857 7.1. Messages
858 -------------
860   The most common type of events. It takes the ICQ network about one
861 second to deliver one. Messages can be sent either through server or
862 directly through a TCP link. Size of a message sent through server
863 cannot exceed 450 characters, while size of direct messages is
864 unlimited. In case centericq cannot establish a direct link or you have
865 the "sent all events through server" option enabled, a message is
866 automatically split into several parts.
868   To send a message just press "Enter" on a contact. Then type and press
869 "Ctrl-X" to send it. To cancel the message press ESC (twice).
872 7.2. URLs
873 ---------
875   Though you can send URLs with regular messages the Mirabilis guys
876 decided to make a separate event for it. No problem, centericq supports
877 URL events. An URL message consists of two parts, they're an URL itself
878 and a description. Well, nothing else to say about it. Except maybe a
879 wish for future version of the protocol to support e-mail addresses and
880 host names as separate events :)
883 7.3. SMSes
884 ----------
886   ICQ has a server-side mechanism which allows its users to send and
887 receive short text messages to cellular phones. There is an item visible
888 in the context menu for ICQ contacts, named "Send an SMS" which is be
889 choosen. Then if a user does not have any cellular number on his
890 details, centericq will ask you to provide one. This number can be
891 changed any time with the "Edit details" item of the same menu.
893   Centericq allows sending SMS messages to contacts of any kind on your
894 list with the only restriction that they will only be sent as soon as
895 you log in with your ICQ account. When you type in a phone number don't
896 forget to include all the international and regional prefixes.
898   If an SMS you sent is rejected, the appropriate message is displayed
899 in the log window. This usually happens because ICQ does not support some
900 cellular networks. To see the list of supported ones use the following
901 links:
903     http://www.icq.com/sms/smsnetworks.html
904     http://www.icq.com/sms/eg_networks.html
906   Both ways of sending SMSes are supported by libicq2000, and this means
907 centericq does so too.
910 7.4. Contacts
911 -------------
913   Sharing parts of your contact list with other users on the instant
914 messaging network is a feature supported only by ICQ so far. Centericq
915 does support it, thus you can easily send contacts from your contact
916 list or receive contacts from someone else using the program's
917 interface. Much easier than typing or cut'n'pasting UINs.
920 7.5. Files
921 ----------
923   It's only possible to send files to your remote buddies within the IRC
924 network so far. In order to do it, it's enough to choose the "Send
925 file(s)" item from the context menu (the one ivoked with F2), and point
926 out the files you want to send. In order to receive files you should
927 press the "Accept" button in the dialog you'll see as soon as someone
928 sends a file to you.
931 7.6. E-mail express messages
932 ----------------------------
934   This kind of events is ICQ specific. There is no way to receive them
935 with Yahoo! or other protocols. E-mail express is a service
936 provided by Mirabilis to make it possible to send messages through
937 e-mail to logged in ICQ users. A gate, indeed.
939   The principle is simple. To send such a message you use an e-mail
940 client application, and you receive one with an ICQ client. The
941 destination e-mail address looks like this <UIN>@pager.icq.com, where
942 UIN is the receiver's ICQ number. If a person is not online, they'll get
943 the message as soon as connect to the ICQ network.
945   Please also note that with some SMTPs it won't work, since the pager
946 server has a protection which tries to make a connection to the sender
947 SMTP. If it's behind a firewall you have no chance to get your message
948 delivered.
951 7.7. WebPager messages
952 ----------------------
954   ICQ network does also allow sending messages to icq clients from their
955 web sites. The so-called "Web panel" makes it possible. You can access
956 your own by the URL of the following look: http://web.icq.com/wwp?Uin=<UIN>
958   Messages are delivered to the contact list immediately. And if a user
959 is not online he's supposed to received them as soon as he logs in.
962 7.8. Away messages
963 ------------------
965   Another feature of IM networks supported by centericq is away
966 messages. It's quite a useful way to explain to everybody why you're
967 away from your box right now. To read your reason for being away they
968 just have to use the feature to fetch an away message in their ICQ
969 client application.
971   It's possible to set such a message from the account manager dialog
972 invoked from the global menu. There is a "Set away message" item for IM
973 engines that support such a feature.
975   With centericq you can also read away messages of others. To fetch
976 someone's away message (it's possible even when a person has the
977 "available/online" status) just select the respective item in the
978 "current user" context menu (invoked with F2 or "m"). It's impossible to
979 fetch away messages of users that are offline.
982 7.9. Events history
983 -------------------
985   All of events sent and received with centericq are held in its
986 database. It's very simple to access history of events you exchanged
987 with a particular user. You should only select the "Events history" item
988 of the context menu. Then, if at least one event is there, you'll be
989 shown a list every item of which can be read, replied or forwarded to
990 someone.
993 8. Ignore, visible and invisible lists
994 --------------------------------------
996   ICQ provides an easy way to have lists of users you want to be visible
997 or invisible to, if you're online. Also there is a place to move all the
998 annoying ones so that they don't disturb you with their stupid messages.
1000   Modification operation with the lists can be performed with
1001 appropriate dialogs invoked from the global menu.
1004 8.1. Ignore list
1005 ----------------
1007   List for worst ones. If you find someone on (or outside) your contact
1008 list too annoying, you can just add him or her to the ignore list. After
1009 this simple operation you will never receive events from this user,
1010 until the contact is removed from this list of yours.
1013 8.2. Visible list
1014 -----------------
1016   ICQ has the "invisible" option among its online status modes. When you
1017 switch to it, noone is able to see your online presence. But there can
1018 be a handful of people you would like to keep in touch, and you also
1019 feel like remaining visible for them. That's what this feature is all
1020 about.
1023 8.3. Invisible list
1024 -------------------
1026   Invisible list has an opposite aim to the previous one. People who you
1027 have on this list are unable to see your presence all the time. Either
1028 you're online or offline, or occupied.. whatever, they see your status
1029 as "offline".
1032 9. Advanced features
1033 --------------------
1035   Centericq has some advanced features that you may need, though they're
1036 not so easy to turn on for novice users. In this chapter I explain how
1037 to do it.
1040 9.1. Arabic and Hebrew languages support
1041 ----------------------------------------
1043   There is a basic support for bidirectional languages in centericq. It
1044 allows not to type, but only read messages in Hebrew and Arabic. It's
1045 possible to enable only on the ./configure stage, because the program
1046 needs to be linked against FriBiDi library. This means first you need to
1047 have the latter installed. The library homepage is located at
1048     http://fribidi.sourceforge.net/
1050   Once you have successfully installed FriBiDi, you need to execute
1051 centericq's ./configure script with "--with-fribidi" parameter. If it
1052 fails to find the library (you'll be reported), try
1053 "--with-fribidi=<prefix the library was installed with>".
1055   Common "make" and "make install" steps should follow, and finally
1056 "shalom" or "selam" can be seen well on your monitor :) So don't fight
1057 there, guys.
1060 9.2. Command line facilities
1061 ----------------------------
1063   Centericq has a bunch of command line options that make it possible to
1064 queue IM events and change your status in various IM networks.
1067 9.2.1. Sending events
1068 ---------------------
1070   In fact, it's not really sending. Centericq just allows you to put an
1071 event to the outgoing queue from another process with command line
1072 options. To have the event sent immediately centericq must be running,
1073 otherwise all of your queued events will be sent as soon as the program
1074 is launched and connected to the corresponding IM network.
1076   The following command line options are used to put an event to the
1077 outgoing queue:
1079 -s or --send <event type>
1081     This parameter specifies the type of event you want to send.
1082     Currently only "msg", "url" and "sms" are supported.
1084 -p or --proto <protocol type>
1086     This one specifies to which IM network the destination contact
1087     belongs to. Can be either "icq", "yahoo", "aim", "irc", "jab"
1088     or "lj".
1090 -t or --to
1092     With this one you specify nickname or UIN of the destination
1093     contact. For icq it's possible to specify 0 to send events to
1094     yourself. Only SMSes are known to be possible to be sent to oneself
1095     though.
1097 -n or --number
1099     Using this parameter you can send SMSes to any mobile numbers
1100     through the ICQ network.
1102 The message text is read from the standard input, so use pipes in shell
1103 to pass it. For example, you can say "hi" to me through the ICQ network
1104 with the following command:
1106     $ echo "hi" | centericq -s msg -p icq -t 17502151
1108 In case you want to send an URL, the URL itself and its description are
1109 separated with a newline character the following way:
1111     $ echo -e "http://thekonst.net/\nMy modest homepage." \
1112     | centericq -s url -p icq -t 17502151
1114 Finally, a small example of sending SMSes:
1116     $ echo "sms test" | centericq -s sms -n 1234567890
1118 Please note, that all three parameters are required in order to queue an
1119 event.
1122 9.2.2. Changing current IM status
1123 ---------------------------------
1125   Changing status is done with a pair of parameters. They're -S and -p.
1126 The former is used to specify the status itself, and -p points which IM
1127 engine is to be affected.
1129 -S or --status <status letter>
1131     The argument parameter is a letter which indicates which status is
1132     to be set:
1134         o (Online)              _ (Offline)
1135         a (Away)                d (Don't disturb)
1136         n (N/A)                 c (Occupied)
1137         f (Free for chat)       i (Invisible)
1139 -p or --protocol <protocol name>
1141     This one specifies to which IM network the destination contact
1142     belongs to. Can be either "icq", "yahoo", "aim", "msn", "irc",
1143     "jab" or "lj".
1145 Examples:
1147     $ centericq -S _ -p icq
1149 This will set the icq status to offline. In other words, it'll be
1150 disconnected immediately.
1152     $ centericq -S a -p yahoo
1154 And this command will switch your yahoo status to away.
1157 9.3. External actions and auto-responses
1158 ----------------------------------------
1160   It is possible to make centericq run external programs, scripts and
1161 whatever to answer and/or process incoming events. Though, some extra
1162 setup is needed. Let me introduce you with another configuration file,
1163 named "external" which should reside under the .centericq/ directory in
1164 your home. Here is an example which demonstrates its options. It's
1165 recommended just cut'n'paste the following text.
1168 [ - $HOME/.centericq/external ---------------------------------------------- ]
1171 # External actions
1172 # ----------------
1174 # Every section starts with a line containing the "%action <name>",
1175 # "%pre-send <name>", "%pre-receive <name>" or "%manual <name>" text.
1176 # Please note that the <name> of any kind is necessary. It musn't be
1177 # empty. Inside it the following parameters can be used:
1179 # event
1180 # -----
1181 # Can be "msg", "sms", "url", "online", "offline", "auth",
1182 #       "contacts" or "notification".
1184 # The latter means centericq's own notifications, such as birthday reminders,
1185 # away messages, and other stuff. Specifying several event types is
1186 # also allowed. "all" stands for all the event types.
1188 # proto
1189 # -----
1190 # Can be "icq", "yahoo", "aim", "irc", "msn", "lj", "rss" or "jab". Or
1191 # combination of these words. "all" can be used as a synonim for all of
1192 # them.
1194 # status
1195 # ------
1196 # Can be "online", "away", "dnd", "na", "occupied", "ffc" or "invisible".
1197 # Specifying several ones is possible. "all" stands for all of possible
1198 # status modes.
1200 # options
1201 # -------
1202 # Possible options for an action are:
1204 #       stdin           The incoming message text is to be passed to
1205 #                       stdin of the script to be executed.
1207 #       stdout          The script output is to be sent as a reply
1208 #                       message (if not empty).
1210 #       nowait          Don't wait for the script to finish. Obviously, the
1211 #                       stdout option won't make sense if this one is used.
1213 # Then, the section named "%exec" should follow. It contains a piece of
1214 # script to be executed being copied to a file first.
1217 %action         Simple auto-responder
1219 event           msg
1220 # Reacts only on events of message type ..
1222 proto           icq yahoo
1223 # .. only for icq and yahoo protocols
1225 status          away na
1226 # .. when we are in away or n/a status
1228 options         stdin stdout
1229 # .. the external commands text (below) reads the message from
1230 # stdin, then its stdout output is sent as a response to a
1231 # remote user.
1233 %exec
1235 msg=`cat`
1236 echo "hello. this is auto-responder. your message was: $msg"
1239 [ -------------------------------------------------------------------------- ]
1241 With this simple external actions configuration file centericq will
1242 perform a simple auto-respond action. You can have as many sections as
1243 you need. You can call any kind of external scripts and programs. Please
1244 note that the message text (when "stdin" option is specified for an
1245 action) can be read with cat command or something similar.
1247 Please also note it's possible to define actions that get invoked before
1248 the event is written to the history (and delivered to the contact list)
1249 as well as before it gets sent. Such kind of actions are defined with
1250 the %pre-send and %pre-receive directives. Using them, an event can be
1251 modified or even prevented from further processing, i.e. from showing on
1252 the contact list or actual sending. The latter is done with returning a
1253 non-zero return code in the %exec section.
1255 Every time something is to be executed the "%exec" section's contents
1256 are copied to a temporary file, and the latter is processed with the
1257 default shell. But it doesn't mean those code parts are default shell
1258 dependent. You can easily specify your favourite one with the first line
1259 like this:
1261 #!/usr/bin/perl
1263 for example. Though, anyway this code piece's aim is just to perpare
1264 arguments, perform initial checks, and then execute something for
1265 further processing.
1267 Another point to be explained is multiple actions with the same or
1268 similar parameters (event, proto, and status). If an event matches
1269 several actions, all of them are executed. If there is a need only in
1270 one, you can always perform necessary checks in "%exec" so that only one
1271 sends a reply.
1273 Also, the script from the %exec section when executed has the following
1274 environment variables imported by centericq:
1276 EVENT_TYPE
1278     The type of the received event. Can be "msg", "sms", "url",
1279     "online", "offline", "auth", "contacts" or "notification".
1281 EVENT_NETWORK
1283     The IM network name through which the event was received. Can be
1284     "icq", "yahoo", "aim", "irc", "msn", "lj" or "jab".
1286 CONTACT_UIN
1288     If an event is received through ICQ equals to the other party's UIN.
1289     Otherwise empty.
1291 CONTACT_NICK
1293     Set to other party's real nickname. Real means that even if you
1294     renamed the user in your contact list, this parameter will be equal
1295     to the original one, and not to what you set.
1297 CONTACT_INFODIR
1299     The most intresting parameter. Using it, you can access further
1300     information about the user. Every time an external action is
1301     executed it is set to the user's information directory under your
1302     ~/.centericq/ directory. It makes it easier to access "about" and
1303     "info" files under it. Fetching lines from certain positions of the
1304     latter allows to get details. It's enough to take a look at an
1305     "info" file of any user to find out what lines mean. Here I'll
1306     describe the most useful ones:
1308     - the 2nd and 3rd lines contain user's first and last names 
1309         respectively;
1310     - the 4th one contains user's e-mail address;
1311     - the 7th has the home city;
1312     - the 8th is used for the home state name;
1313     - the 9th is used for the home phone number;
1314     - the user's home country resides in the 14th line;
1315     - etc;
1317 To read a certain line from the info file I recommend to use the
1318 following shell command: "head -n <N> $CONTACT_INFODIR/info | tail -n 1",
1319 where N is the line number. Below the real examples go.
1321     fname=`head -n 2 $CONTACT_INFODIR/info | tail -n 1`
1322     # to fetch contact's first name
1324     lname=`head -n 3 $CONTACT_INFODIR/info | tail -n 1`
1325     # to fetch contact's last name
1327 The example from the next section demonstrates usage of the environment
1328 variables on an example of a simple answering machine :)
1331 9.3.1. IM answering machine
1332 ---------------------------
1334   This simple setup will answer on incoming messages automatically when
1335 you're away from your computer and your IM mode is set to Away or N/A.
1337 [ - cut (centericq external actions setup for an IM answering machine) ----- ]
1339 %action         Answering machine
1340 event           msg
1341 proto           all
1342 status          away na
1343 options         stdout
1345 %exec
1346 #!/bin/sh
1348 fname=`head -n 2 $CONTACT_INFODIR/info | tail -n 1`
1349 lname=`head -n 3 $CONTACT_INFODIR/info | tail -n 1`
1351 cat <<EOF
1352 Hello, $fname $lname!
1354 Unfortunatelly, I'm not near my box now, but I'll certainly contact you
1355 as soon as I get here.
1361 [ -------------------------------------------------------------------------- ]
1364 9.3.2. Elizatalk: making fun with your friends
1365 ----------------------------------------------
1367   One of the most intresting and funny uses for external actions in
1368 centericq is auto-responding chat robots. So far I know only one which
1369 is called Eliza. Unfortunatelly its doc covers only setup for licq, so
1370 it'll describe how to make it work with centericq here. Actually, it's
1371 not difficult thing to do at all.
1373   First, you'll have to download the elizatalk plugin itself. It's
1374 homepage can be found at the following URL:
1376     http://elizatalk.sourceforge.net/
1378   Let's assume we want it to work with all the IM engines, answer on
1379 messages only, and it's to be activated as soon as we're switched to
1380 away mode. All we need is to add one more section.
1382 [ - cut (centericq external actions setup for elizatalk) ------------------- ]
1384 %action         Eliza
1385 event           msg
1386 proto           all
1387 status          away
1388 options         stdin stdout
1390 %exec
1391 msg=`cat`
1392 echo $msg | elizatalk
1394 [ -------------------------------------------------------------------------- ]
1396 Voila! You might also want to read the elizatalk documentation. Though,
1397 with my great explanations it's not necessary anymore :)
1400 9.3.3. Remote control with external actions
1401 -------------------------------------------
1403   Another useful thing you can make with external actions is remote
1404 control for your servers or workstations. You can write an action which
1405 will report you various diagnostic messages or perform administrative
1406 tasks reacting on special pre-defined commands that only you may know.
1407 So you just add a section to your ~/.centericq/external file, and leave
1408 centericq running. Of course, the commands can be requested through any
1409 of supported IM networks, though it's also configurable.
1411   The following example can report free disk space, uptime and files
1412 listing under your ~/.centericq/ directory. The commands are "df",
1413 "uptime" and "ls" respectively. As soon as centericq receives them it
1414 answers with external commands' answers. It won't reply any other
1415 messages.
1417 [ - cut (centericq external actions setup for simple remote control) ------- ]
1419 %action         Remote control
1420 event           msg
1421 proto           all
1422 status          all
1423 options         stdin stdout
1425 %exec
1426 #!/bin/sh
1428 case `cat` in
1429     ls) ls -l ~/.centericq/;;
1430     df) df -h;;
1431     uptime) uptime;;
1432 esac
1434 [ -------------------------------------------------------------------------- ]
1437 9.3.4. Forwarding events
1438 ------------------------
1440   The same way it's possible to setup forwarding of events to other
1441 contacts, or with SMSes when you are away from centericq. The forwarding
1442 is to be performed with the centericq command line options described
1443 below, which allow to send events from out the program.
1445   The following example shows a simple setup for forwarding incoming icq
1446 messages when you're away to a cellular phone with SMS.
1448 [ - cut (centericq external actions setup for simple events forwarding) ---- ]
1450 %action         ICQ messages forwarding
1451 event           msg
1452 proto           icq
1453 status          away na
1454 options         stdin
1456 %exec
1457 #!/bin/sh
1459 msg=`cat`
1460 echo $msg | centericq -s sms -p icq -t 0
1462 [ -------------------------------------------------------------------------- ]
1464 Please note UIN 0 is specified to send SMS to your own contact. Also,
1465 you can easily forward your incoming events to any other IM contacts,
1466 emails with the mail(1) command. In fact, everything you can access from
1467 the command line is possible to be used here.
1470 9.3.5. Hiding from scary ones
1471 -----------------------------
1473   This example will use the -S command line parameter which allows to
1474 control current status on IM networks from the command line.
1476 [ - cut (centericq external actions setup for hiding from scary ones) ------ ]
1478 %action         Hide from freddy_krueger
1479 event           online
1480 proto           all
1481 status          all
1482 options         stdin
1484 %exec
1485 #!/bin/sh
1487 if test "$CONTACT_NICK" = "freddy_krueger"; then
1488     centericq -S _ -p $EVENT_NETWORK
1491 [ -------------------------------------------------------------------------- ]
1493 Such a setup will make your centericq go offline as soon as the
1494 freddy_krueger user appears online on any of the IM networks you're
1495 currently logged in.
1498 9.3.6. "Manual" external actions
1499 --------------------------------
1501   There were only automatically executed actions so far. "But where are
1502 manual ones?" - you will probably ask. Let me introduce to you the type
1503 of actions that can be executed either from the contact list or from the
1504 "users details" screen by pressing the F6 key. Such actions are executed
1505 depending on a menu selection, then the corresponding code is ran
1506 passing the data of a current contact, and if there was some output, it
1507 will be shown in a dialog. One of the applications of the feature is to
1508 invoke the host(1) command for a users' IP in order to find out his
1509 Internet domain name. If you're a cool hacker, you can bind invoking nmap
1510 this way or anything else you want :)
1512 [ - cut (external actions setup for invoking of host(1) manually) ---------- ]
1514 %manual         host
1515 proto           icq
1517 # Only ICQ shows up IP addresses
1520 %exec
1521 #!/bin/sh
1523 ip=`head -n 45 $CONTACT_INFODIR/info | tail -n 1`
1524 for i in $ip; do ip=$i; break; done
1525 host $ip
1527 [ -------------------------------------------------------------------------- ]
1529 The strange "for" cycle is there because we want only the first IP
1530 number, while quite frequently there are two separated with a space,
1531 where the second one represents a local IP address which we don't need
1532 to resolve.
1534 Add this section to your ~/.centericq/external and enjoy the comfort of
1535 not having to copy'n'paste the IP address in case you want to look up a
1536 domain name.
1539 9.4. Internal RSS reader
1540 ------------------------
1542   There is another useful technology whose power can be utilized with
1543 centericq. It's called RSS or just "Really Simple Syndication". It's
1544 about a uniform XML format which is used to describe recent changes at
1545 various web sites and not only web sites. Theoretically you can describe
1546 updates of any kind of information resources with it. See
1547 http://backend.userland.com/rss for more info about the format.
1549   Now, what centericq can do about it. Since version 4.9.5 it allows you
1550 to add RSS feeds to contact list just like they were usual contacts. You
1551 can also specify the check period. As soon as there are any updates, the
1552 contact pops up and you can read the news without a need to leave your
1553 favourite sweet IM proggy.
1555   In order to find out if there is an RSS feed for a web site you're
1556 looking to receiving updates from, navigate to it and look for a button
1557 saying something like "RSS" or "XML". Then take a link and add it to
1558 centericq. If there are no such a button, ask web master to setup the
1559 feature.
1561   Also, there is a feed URL for you to try: http://thekonst.net/rss_en.xml
1562 Having added it to your centericq you can stay tuned about updates on
1563 the program author's site. You'll be announced about new releases of
1564 centericq and other cool pieces of free software, as well as on
1565 publication of various articles and photos which I take sometimes with
1566 my digital camera.
1568   LiveJournal syndications will also work. In order to subscribe to
1569 someone's updates, use the following URL:
1570     http://www.livejournal.com/users/USERNAME/rss/.
1571 As an example, you can try
1572     http://www.livejournal.com/users/thekonst/rss/
1573 (it's mainly in Russian though).
1576 9.5. Protocol debug mode
1577 ------------------------
1579   Actually I have this feature for myself, to track protocol messages
1580 generated by icqlib. But I also don't mind your looking at them :) The
1581 only thing I wanna warn you is that no questions about their meaning are
1582 answered. If you feel like seeing and understanding them, please refer
1583 to the unofficial ICQ protocol specification, icqlib sources, whatever..
1585   To enable this feature, just run centericq with --debug parameter.
1586 Protocol debug messages will be in the log window, and also they'll be
1587 written into the ~/.centericq/debug file.
1590 9.6. "Friendly" logging
1591 -----------------------
1593   Another (better) way to log what is going on in your centericq, is
1594 possible to be enabled with the "Detailed IM events log" item in the
1595 Configuration dialog. When enabled, centericq produces a log file named
1596 .centericq/log under your home directory. It contains messages about users'
1597 logging in and out, receiving and sending messages, changed your own IM
1598 status, and other blah. The file's format is quite clear, so any kind of
1599 automatic parsing tool can be written without a problem. Though in this
1600 case you should keep in mind the messages are locale dependent.
1603 9.7. Custom base directories
1604 ----------------------------
1606   By default, centericq uses the .centericq/ directory under your home
1607 to hold all of its information, such as configuration and contact list.
1608 There can be situations, when you want to have several IM identities in
1609 the same networks under the same UNIX account. To make it possible, the
1610 -b or (--basedir) command line parameter was implemented. It's syntax is
1611 simple "-b <directory name>"
1614 9.8. Latest CVS snapshots
1615 -------------------------
1617   If you wanna always have the recent version of the program, there is
1618 an annonymous CVS access and a script which allows you to download
1619 recent hot source with new features as soon as they appear.
1621   Ok, now how to do it. There is a script in the centericq package under
1622 the misc/ directory. If you use an RPM package, it's installed to your
1623 $prefix/bin/. Its name is cicqsync. Using it you can checkout or update
1624 your source snapshot any time.
1626   Command line usage is simple. Cicqsync takes two parameters, the first
1627 one is an action to perform (checkout - fresh copy from scratch, or
1628 update - to update an already checked out source), and the second is a
1629 path name to put the result to. Note that the directory must exist and
1630 centericq/ will be created under it.
1632   Once you checked out or updated the fresh source, a usual build
1633 procedure must be followed. Change current dir to {whatever}/centericq/,
1634 execute configure, make and make install. Voila!
1637 10. Lynx
1638 --------
1640   This section contains links and references that may be of interest for
1641 you.
1644 10.1. The program homepage
1645 --------------------------
1647 The centericq homepage can be found at
1648     http://thekonst.net/centericq/
1651 10.1.1. Centericq mailing list
1652 ------------------------------
1654   There is a mailing list for centericq which is used by the program
1655 users to discuss their ideas, bug reports, fixes, and other stuff. You
1656 would rather want to use it instead of direct mailing to me.
1658   To subscribe go to the centericq home page (URL is above) or send a
1659 message to cicq-request@mailman.linuxpl.org with "subscribe" in the subject
1660 field. To post a message to the list, send it to cicq@mailman.linuxpl.org
1661 after you subscribe. The archive can be found at
1662     http://news.gmane.org/gmane.network.centericq/
1665 10.1.2. German fan-club of the program :-)
1666 ------------------------------------------
1668   There are also some guys that decided to make their own resource on
1669 the web where they share advises, tips and tricks on using the program.
1670 I find it very nice. The site itself can be found at
1671 http://www.centericq.de/
1673   Also they made an irc channel at the freenode network, irc.freenode.net.
1674 The channel name is #centericq. The majority of centericq fans can be met
1675 there.
1678 10.2. thekonst.net
1679 ------------------
1681   If you want to find out more about my recent activities, news,
1682 software developments and other things I'm involved in, visit my web
1683 site at http://thekonst.net/
1686 10.3. Other programs I write
1687 ----------------------------
1689 To find out more about my software developments use the following URL:
1690     http://thekonst.net/konstware/
1692 There is also an "writings" section with my publications at
1693     http://thekonst.net/writings/
1696 10.4. IM protocols
1697 ------------------
1699   Here I want to say thanks to authors of libraries I used for various
1700 IM protocols support in centericq.
1702   Barnaby Gray <barnaby@beedesign.co.uk>, who wrote a great library
1703   for icq2000 protocol and a GTK+ based ICQ client for UNIX.
1704   http://ickle.sourceforge.net/
1706   The whole team of
1707     Mark Spencer <markster@marko.net>,
1708     Adam Fritzler <afritz@marko.net>,
1709     Rob Flynn <rob@marko.net>,
1710     Eric Warmenhoven <eric@warmenhoven.org>,
1711     Brian Macke <macke@strangelove.net>,
1712     Anand Biligiri S <abiligiri@users.sf.net>,
1713     Valdis Kletnieks,
1714     Sean Egan <bj91704@binghamton.edu>,
1715     Toby Gray <toby.gray@ntlworld.com>
1716   for the library implementing the Yahoo! protocol.
1718   Ian Gulliver <ian@penguinhosting.net> for the nice Firetalk library
1719   used by centericq to provide the AIM and IRC services.
1721   The Jabber Team http://jabber.org/ for their GNU Jabber library.
1723   Since centericq contains support for the ICQ protocol taken from the
1724 original software made by Israeli company named "Mirabilis", you might
1725 wish to know more about it. So, visit the ICQ website at
1727     http://www.icq.com/
1729   It provides information about the company itself along with a lot of
1730 community services including SMS messaging, web directory, and so on.
1733 11. Help to the project I would appreciate
1734 ------------------------------------------
1736   What if you think that centericq is the best text console based
1737 instant messaging program around? What if centericq is the application
1738 you'd been waiting whole of your life, and want to express your
1739 appreciation somehow? Helping the author you help the project itself to
1740 keep rolling. It's not something vital I require to keep on writing and
1741 improving centericq, neither you have to do it. I quite enjoy making it
1742 in my spare time, and happy of the fact there are no deadlines and
1743 obligations from my side. It's just my hobby.
1745   So how you can express appreciation to the way I waste my spare time,
1746 so that to make me a bit more happy and satisfied by my activities?
1747 There are several possibilites that bubbled out from my head while I was
1748 sitting here in the office sweating of July's heat.
1751 11.1. Feedback
1752 --------------
1754   You can write some feedback saying what you liked and what is missing
1755 in the program. Also, don't be silent if you notice bugs. Just check
1756 everything attentively and send a detailed bug-report to the mailing
1757 list. Please don't drop into my icq messages like "I found the icq
1758 related bug, please fix it". The first reason is that usually during the
1759 day I'm in the office working, and I'm not involved into centericq
1760 development here too much. Also, such reports don't make sense because
1761 of the lack of details. Please be more precise.
1764 11.2. Patches
1765 -------------
1767   Don't wait for me to implement a feature you'd like to have in
1768 centericq. Please have in mind that whole the source code is available
1769 and you can modify it yourself, then make a patch and send it to me.
1770 Though I'd like you to follow my style of formatting the code. Please
1771 don't make any changes not related to the feature you implement, it
1772 makes your patch difficult to commit.
1775 11.3. Promoting the little program
1776 ----------------------------------
1778   I bet you read some computers related magazines and visit various
1779 Linux related sites. Please don't keep silence instead of screaming out
1780 your adoration for the little nice program. Submit it to a software site
1781 or catalogue or/and encourage the authors of your favourite magazine to
1782 take a look at it and possibly write about centericq. Interviews,
1783 speeches, presedential elections ;) and stuff are also possible, just
1784 contact me for more details.
1787 11.4. Donations
1788 ---------------
1790   If you're a materialist guy like me, you might want to present me
1791 something what I can touch, put on a sandwich or into my pocket. Here it
1792 goes.
1795 11.4.1. Money
1796 -------------
1798   The most universal way. Depending on a sum I will be able to drink one
1799 more beer or tequila for the health of centericq users or buy a piece of
1800 hardware, electronic gagdet or the newest model of "Porsche" ;)
1802   The on-line donations page is located at
1803     http://centericq.de/donation/
1806 11.4.2. Hardware
1807 ----------------
1809   Since usually I write centericq at home, it's always nice to upgrade
1810 the computer it's being developed with. It can increase the speed and
1811 pleasure I get during the process.
1814 11.4.3. Other stuff
1815 -------------------
1817   Other stuff like t-shirts, souvenirs, albums or postcards with nice
1818 views of the nature in places where you live, baseball tickets ;) are
1819 also welcome.
1821 $Id: README,v 1.104 2005/01/31 15:21:16 konst Exp $