ytalk [-s] [-Y] [-E] [-i] [-q] [-v] [-h hostname_or_ip] username...
YTalk is in essence a multi-user chat program. It works almost exactly
like the UNIX talk program and even communicates with the same talk
daemon(s), but YTalk allows for multiple connections.
The username field may be formatted in several different ways:
name - some user on your machine
[email protected] - some user on a different machine
name#tty - some user on a particular terminal
[email protected] - some user on a particular tty on a
[email protected]#tty - same as "[email protected]"
aliasname - an alias defined in your .ytalkrc
You can specify multiple user names on the command line, ie:
ytalk george [email protected] [email protected]
The -s option starts your YTalk window in a shell.
The -Y option requires a capital Y or N as an answer to any yes/no
The -E option requires you to press escape once before answering a
yes/no question (for people who type looking at the keyboard).
The -i option disables the auto-invite port (meaning you won't see
"talk to [email protected]", but your talk daemon will beep you instead).
The -q option causes YTalk to prompt you before quitting.
The -v option prints the program version and exits.
The -h option specifies the name or address of the local machine; this
is useful on multi-homed machines, or virtual hosts, to specify which
network interface to use for communication.
For each user on the command line, YTalk will attempt to connect to the
talk daemon on the specified user's host and determine if that user has
left an invitation for you to call. If not, YTalk leaves an invitation
for him and tells his talk daemon to send an announcement to his
screen. There is no dedicated YTalk daemon. Right now, YTalk is able
to communicate with BOTH existing versions of UNIX talk daemons. For
any particular host, YTalk will attempt to communicate with a talk dae-
mon the caller's host also supports. If the two hosts have no daemon
in common, then UNIX talk will not function at all, but a connection is
possible through (and only through) YTalk.
the screen is further subdivided into smaller and smaller windows, one
for each connected user. Right now, the number of connected users is
limited by the number of lines on your terminal (or window), for each
connected user needs at least three lines.
As each new user is added to the conversation, YTalk will transmit
information about that user to all other connected YTalk users so that
their screens will also subdivide and incorporate the new user. If the
new user is using UNIX talk, then information about him will NOT be
transmitted, for his screen would be unable to accept multiple connec-
tions. I have given brief thought to allowing at least the output of
UNIX talk users to be transmitted to all connected YTalk users, but I
have not written any code to do so. Note that even though UNIX talk
cannot handle multiple connections, it is still possible for YTalk to
handle multiple UNIX "talk" connections. For example, george (using
YTalk) could communicate with fred and joe (both using UNIX talk), but
fred and joe would be unaware of each other. The best way to under-
stand the limitations that UNIX "talk" places on YTalk is to test vari-
ous connections between the two and see how things work.
Whenever you are using YTalk, you can hit the ESCAPE key to bring up a
menu which at this moment has these options:
a: add a user
d: delete a user
k: kill all unconnected
r: rering all
u: user list
w: output user to file
By choosing option "a", you are given the opportunity to type the name
of any user you wish to include into the conversation. Again, YTalk
will accept an invitation from that user if an invitation exists, or
will leave an invitation and ring the given user.
By choosing option "d", you can select the name of a connection to ter-
By choosing option "k", you can make YTalk forget all pending (waiting)
By choosing option "o", you can view and/or modify any of the YTalk
options. See the OPTIONS section below for a list of YTalk options.
By choosing option "r", all users that have not yet responded to your
talk invitation will be re-rung.
Oh, one other thing: when user A attempts to ytalk to user B, but user
B is already ytalking with user C, user A's YTalk program will realize
that user B is already using YTalk, and will communicate with user B's
YTalk program directly in order to initialize the conversation. User B
will see a nice windowed message like:
Do you wish to talk with user A?
and he will be prompted for a yes/no answer. This, in my opinion, is
much preferable to blitting the announcement message and messing up
user B's screen. The command-line option "-i" turns this off.
When you select Options off of the main menu, you are given the oppor-
tunity to edit the YTalk options. The current options are:
s: turn scrolling [off/on]
w: turn word-wrap [off/on]
i: turn auto-import [off/on]
v: turn auto-invite [off/on]
r: turn reringing [off/on]
p: [don't] prompt before rerings
q: [don't] prompt before quitting
If scrolling is turned on, then a user's window will scroll when he
reaches the bottom, instead of wrapping back around to the top.
If word-wrap is turned on, then any word which would overextend the
right margin will be automatically moved to the next line on your
If auto-import is turned on, then YTalk will assume that you wish to
talk to any users which connect to other YTalk users which are con-
nected to you. That last sentence does make sense; try again. YTalk
will add these users to your session automatically, without asking you
If auto-invite is turned on, then YTalk will automatically accept any
connection requested by another user and add them to your session. You
will not be asked for verification.
If rering is turned on, then YTalk will re-ring any user who does not
respond to your invitation within 30 seconds.
If prompt-rering is turned on, then YTalk will ask you before re-ring-
ing a user.
If prompt-quit is turned on, then YTalk will wait for keyboard input
where option is one of scrolling , word-wrap , auto-import , auto-
invite , rering , prompt-rering , prompt-quit , caps , escape-yesno ,
noinvite , ignorebreak , or beeps . Setting these options works just
like described above. For example, one could enable word-wrap with the
turn word-wrap on
You can setup aliases so you don't have to type the full address of the
user you want to ring. There are three types of aliases:
alias aliasname@ username@
Replaces aliasname@host with username@host for every host.
The '@' at the end of username@ is not required.
alias @aliashost @realhost
Replaces user@aliashost with user@realhost for every user.
The '@' at the beginning of @realhost is not required.
alias aliasname user@host
Replaces aliasname with user@host.
SELECTING INTERFACES AND VIRTUAL HOSTS
On machines with multiple IP addresses (multiple interfaces, or virtual
hosts), you can choose the default address to use for communication
with YTalk, using the localhost command in your .ytalkrc file. The
SETTING RE-ADDRESS MODES
The purpose of readdressing is to allow YTalk connections across point-
to-point network gateways where the local machines know themselves by a
different address (and typically hostname) than the remote machines.
The basic syntax of a readdress command is this:
readdress from-address to-address domain
The readdress statement simply makes a claim that the machine(s) in
domain communicate with the machine(s) at from-address by sending a
packet to to-address . Since most users have no use for this whatso-
ever, I'll describe it only briefly.
THIS IS NOT ROUTING. For example, my machine at home is connected via
PPP to the network at my office. My machine at home thinks its ether-
readdress 18.104.22.168 22.214.171.124 126.96.36.199
which tells my home machine to advertise itself as "188.8.131.52"
instead of "184.108.40.206" when YTalk-ing to machines on the network
"220.127.116.11". On the office end, the readdress command translates
readdress 18.104.22.168 22.214.171.124 126.96.36.199
which the office machines basically ignore.
Note that, in this case, the problem could also have been solved by
telling the home YTalk to use the 188.8.131.52 interface, when doing
YTalk requests across the PPP link.
System-wide defaults file.
User's local configuration file. This file overrides
options set in the system ytalkrc file.
Roger Espel Llima
Special thanks to Carl Edman for numerous code patches, beta testing,
and comments. I think this guy spends as much time on ytalk as I do.
Special thanks to Tobias Hahn and Geoff W. for beta testing and sugges-
Thanks to Sitaram Ramaswamy for the original YTalk manpage.
Thanks to Magnus Hammerin for Solaris 2.* support.
Thanks to Thilo Wunderlich for Linux support.
Thanks to Alexander Rigbo for patches, testing and many good ideas.
Please mail any bugs to the maintainer of this version, at
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 2 of the License, or (at your
option) any later version.
This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of MER-
CHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
Public License for more details.
YTalk 3.3.0 2 Jan 2005 YTalk(1)
Man(1) output converted with