============================================================ xtell Radovan GarabĂ­k http://kassiopeia.juls.savba.sk/~garabik/software/xtell.html ============================================================ WARNING: this program is quite old and show its age. Instant messaging is done differently these days, there is not much need for point to point communication. Moreover, xtell protocol is unencrypted and does not support IPv6. And people spend much less time in their text terminals nowadays. Having said that, the most likely usage of xtell would be inside LAN, to send automatised alert messages to loggedd in admin. Below is the historical description, quite outdated. ======================================================================== Xtell is a simple network messaging client, much like netwrite. I wrote it because such a client (and server) is running on local VAX machines, and I needed to send messages back and forth. Incidentaly, the VMS code (author Jozef 2Knepp) is based on similar unix code from Radovan Semancik, but this program is a bit too complicated for such a simple use and segfaults anyway :-). So I took ident2 program written by Michael Bacarella, wiped apart his auth code and replaced with mine. It is currently known to run on: Linux (probably everything with glibc 2.0 and higher), FreeBSD 4.2, Digital UNIX V4.0, HP-UX B.10.20, SunOS 5.7, AIX Version 4, OpenBSD 2.9 Windows NT with Cygwin (with some drawbacks) The program itself depends on libident (you can get it from ftp://ftp.lysator.liu.se/pub/ident/libs). If you cannot install it, you can still compile xtell, however, without ident the messages coming to you can be easily spoofed. xtell can optionally use GNU readline, if it is installed. How to compile and install: If you have debian system with all neccessary packages installed, type dpkg-buildpackage in the package's directory, then type dpkg -i ../xtell*deb Else: 1) edit config.h and pay attention to paths to libident and libreadline. make && make install if you are on *BSD, you have to use GNU make (gmake) instead of BSD make (or modify the makefile) 2) decide if you want to run it as daemon or from inetd (preferred) if daemon, just make sure it is started each time you boot your computer, and make sure xtelld is running with GID tty (recommended UID is either nobody or create another user) if from inetd, add this line to /etc/services : xtell 4224/tcp # xtell server and this line to /etc/inetd.conf : xtell stream tcp nowait nobody.tty /usr/sbin/tcpd /usr/local/sbin/xtelld Notice that the entries are separated by tabs, not spaces. 6) restart inetd with killall -HUP inetd 7) enjoy 8) what to do if you are a normal user and want to run xtell daemon: You can't run it from inetd, obviously. Just start ./xtelld to use xtell on default port (4224). In this case, xtell can write messages only to you. If there is another user on that system willing to get messages, either s/he starts xtelld on another port (e.g. ./xtelld -p4225), or makes his/her tty writable by you (e.g. chmod a+rw /dev/tty* -ignore error messages) How to use it: Suppose you want to send a message to user gubas on computer trener.fsport.uniba.sk Just type: prompt:~% xtell gubas@trener.fsport.uniba.sk Hi To send multiple lines long message to user 7tokarova at computer pascal.fmph.uniba.sk, type prompt:~% xtell 7tokarova@pascal.fmph.uniba.sk Hi How are you today Please answer ^D in this case, finish sending messages with EOF (CTRL D) If you want to send message to user holik on local computer, you can do it either by typing: prompt:~% xtell holik@localhost Hi or simply: prompt:~% xtell holik Hi To send message to certain tty, append the tty to username, separated by colon: prompt:~% xtell stanys:ttyp2@pedro.dnp.fmph.uniba.sk 'Sveikas Tomai' will send message 'Sveikas Tomai' to user stanys on ttyp2 at computer pedro.dnp.fmph.uniba.sk To specify other port than the default 4224, append the port to computer name, separated by colon: prompt:~% xtell bosa@radon.dnp.fmph.uniba.sk:4000 'Ahoj' assumes the xtell daemon runs at computer radon on port 4000, and sends the message 'Ahoj' to user bosa. Option -v turns verbose mode on. Xtell will then display some messgaes about connecting, which is usefull especially when the connection is slow. Example: prompt:~% xtell -v rybar@dmpc.dbp.fmph.uniba.sk If the user has created in his/her/its home directory the file .xtell-log, and the file is writable by nobody, all messages will be written to this file as well as to the screen (handy when the screen is overwritten and you could not see the message). One of very good examples how to use xtell is to put following into your .procmailrc file: :0 c * |/usr/bin/xtell you@at.your.computer 'You have new mail' or: :0 c * ^From.*important@user.somewhere.in.the.net* |/usr/bin/xtell you@somewhere.else 'New mail from important' This will tell you whenever you get a new mail from important@user.somewhere.in.the.net. Unlike biff, you can configure it to display only certain kinds of mails, and also unlike biff, it can send announcement about your new mail to another computer (running xtelld). If the user has created in his/her/its home directory the file .xtell-log, and the file is writable by the xtell daemon, all messages will be written to this file as well as to the screen (handy when the screen is overwritten and you could not see the message). xtell can be used as write(1) replacement, see included write.sh script. xtell checks the environmental variable XTELLPROMPT If it exists, it is used as prompt for messages. Y2K notice: xtell is NOT year 2000 compliant. This is intentional. This is A FEATURE. It saves two characters on your screen, which you will appreciate when you get a message from user@hostname with a long name. Besides, if messages on your screen last for more than one century, I will pay you all damage you may suffer from xtell not being Y2K compliant :-). Last notice: if you do not think zsh is the best shell, (besides doing a mistake) replace prompt:~% in above text with prompt:~$ or whatever :-)