You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
595 lines
16 KiB
595 lines
16 KiB
<?xml version="1.0" ?>
|
|
<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.2-Based Variant V1.1//EN" "dtd/kdex.dtd" [
|
|
<!ENTITY kappname "&ktalkd;">
|
|
<!ENTITY % addindex "IGNORE">
|
|
<!ENTITY % English "INCLUDE" > <!-- change language only here -->
|
|
]>
|
|
|
|
<book lang="&language;">
|
|
|
|
<bookinfo>
|
|
<title>The &ktalkd; Handbook</title>
|
|
<authorgroup>
|
|
<author>
|
|
<firstname>David</firstname>
|
|
<surname>Faure</surname>
|
|
<affiliation>
|
|
<address><email>faure@kde.org</email></address>
|
|
</affiliation>
|
|
</author>
|
|
|
|
<!-- TRANS:ROLES_OF_TRANSLATORS -->
|
|
</authorgroup>
|
|
|
|
<legalnotice>
|
|
&FDLNotice;
|
|
</legalnotice>
|
|
|
|
<copyright>
|
|
<year>2001</year>
|
|
<holder>David Faure</holder>
|
|
</copyright>
|
|
|
|
<date>2001-05-02</date>
|
|
<releaseinfo>1.05.02</releaseinfo>
|
|
|
|
<abstract>
|
|
<para>
|
|
&ktalkd; is an enhanced <command>talk</command> daemon - a program
|
|
to handle incoming <command>talk</command> requests, announce them and
|
|
allow you to respond to it using a talk client.
|
|
</para>
|
|
|
|
</abstract>
|
|
<keywordset>
|
|
<keyword>KTALKD</keyword>
|
|
<keyword>talk</keyword>
|
|
<keyword>talkd</keyword>
|
|
<keyword>otalk</keyword>
|
|
<keyword>ntalk</keyword>
|
|
<keyword>ktalkdlg</keyword>
|
|
<keyword>kcmktalkd</keyword>
|
|
</keywordset>
|
|
</bookinfo>
|
|
|
|
<chapter id="introduction">
|
|
<title>Introduction</title>
|
|
|
|
<para>
|
|
&ktalkd; is an enhanced <command>talk</command> daemon - a program to
|
|
handle incoming <command>talk</command> requests, announce them and
|
|
allow you to respond to it using a <command>talk</command> client.
|
|
</para>
|
|
|
|
<important>
|
|
<para>
|
|
Note that &ktalkd; is designed to run on a single-user workstation, and
|
|
shouldn't be run on a multi-user machine: since it reads users'
|
|
configuration files, users can get the <command>talk</command> daemon to
|
|
run any command, which is particularly dangerous. Do not use &ktalkd; if
|
|
you create accounts on your machine, to people you don't fully trust.
|
|
</para>
|
|
</important>
|
|
|
|
<para>
|
|
In this document, if somebody wants to talk to you, you are designated
|
|
as the <quote>callee</quote>.
|
|
</para>
|
|
|
|
<para>&ktalkd; has the following features :</para>
|
|
|
|
<variablelist>
|
|
<varlistentry>
|
|
<term>Answering machine</term>
|
|
<listitem>
|
|
<para>
|
|
If the callee isn't logged on, or doesn't answer after
|
|
the second announcement, an answering machine is launched, takes the
|
|
message, and mails it to the callee.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term>Sound</term>
|
|
<listitem>
|
|
<para>
|
|
If desired, a sound is played with the announcement.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term>
|
|
X Announce
|
|
</term>
|
|
<listitem>
|
|
<para>
|
|
If compiled with &kde; installed, &ktalkd; will use
|
|
<command>ktalkdlg</command>, a &kde; dialog, for announcement. If
|
|
&ktalk; is running, it will be asked to make the announcement
|
|
itself. (New since 0.8.8).
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
<varlistentry>
|
|
<term>Multiple displays announcement</term>
|
|
<listitem>
|
|
<para>
|
|
If you are logged remotely (⪚ with an
|
|
<userinput><command>export</command>
|
|
<envar>DISPLAY</envar>=<replaceable>...</replaceable></userinput>
|
|
command), the X announcement will be made on this display too. Answer on
|
|
the one you want! If you're also logged in a text terminal, and if
|
|
you're <emphasis>not</emphasis> using xterms (internal restriction),
|
|
then you'll see a text announcement too, in case you're using the text
|
|
terminal at the time of the announcement.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term>Forwarding <emphasis>(New since 0.8.0)</emphasis></term>
|
|
<listitem>
|
|
<para>
|
|
You can set up a forward to another user even to another host
|
|
if you're away. There are 3 different forwarding methods. See section
|
|
<link linkend="usage">Usage</link>.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term>Configuration</term>
|
|
<listitem>
|
|
<para>
|
|
If &ktalkd; is compiled for &kde;, it reads config from &kde; config
|
|
files, the sitewide
|
|
(<filename>$<envar>TDEDIR</envar>/share/config/ktalkdrc</filename>) and
|
|
the user one, in its home folder. The sitewide one has to be manually
|
|
edited by the administrator, but there is now a configuration dialog for
|
|
the user one. It's called <command>kcmktalkd</command> and can be found
|
|
in the &kcontrol; after installing &ktalkd;. On non-&kde; systems,
|
|
&ktalkd; will read <filename>/etc/talkd.conf</filename>.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term>Internationalization</term>
|
|
<listitem>
|
|
<para>
|
|
Under &kde;, the announcement will be in your language provided that you
|
|
set it in the &kde; menus and that someone translated
|
|
<command>ktalkdlg</command> to your language. The same goes for the
|
|
configuration dialog, <command>kcmktalkd</command>.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term>Support for <command>otalk</command> and <command>ntalk</command>
|
|
<emphasis>(New since 0.8.1)</emphasis></term>
|
|
<listitem>
|
|
<para>
|
|
&ktalkd; now supports both protocols, even when forwarding. &ktalk;
|
|
supports both protocols as well.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
</variablelist>
|
|
|
|
<para>I hope you will enjoy this talk daemon,</para>
|
|
|
|
<para>David Faure <email>faure@kde.org</email></para>
|
|
|
|
</chapter>
|
|
|
|
<chapter id="usage">
|
|
<title>Usage</title>
|
|
|
|
<para>
|
|
To use &ktalkd;, you need a <command>talk</command> client. The
|
|
text-based <command>talk</command> is available on most &UNIX; systems. Try <userinput><command>talk</command> <replaceable>your_username</replaceable></userinput> to see what happens when you
|
|
receive a <command>talk</command> request.
|
|
</para>
|
|
|
|
<para>
|
|
You can also try the answering machine the same way: initiate a
|
|
<command>talk</command> to yourself, ignore the announcement twice, and
|
|
you'll see the answering machine.
|
|
</para>
|
|
|
|
<para>
|
|
There is a <command>talk</command> client with a graphical interface for
|
|
&kde;, &ktalk;. It's not yet shipped with &kde; packages, but you can
|
|
find it on ftp://ftp.kde.org. It should be in <ulink
|
|
url="ftp://ftp.kde.org/pub/kde/stable/latest/apps/network">ftp://ftp.kde.org/pub/kde/stable/latest/apps/network</ulink>
|
|
</para>
|
|
|
|
<para>
|
|
The announcement dialog box is trivial: <guibutton>respond</guibutton>
|
|
or <guibutton>ignore</guibutton>.
|
|
</para>
|
|
|
|
<para>
|
|
The configuration dialog should be rather straight forward, except for
|
|
setting up a forward to another user (or even to another host).
|
|
</para>
|
|
|
|
<sect1 id="choosing-a-forwarding-method">
|
|
<title>Choosing a Forwarding Method</title>
|
|
|
|
<para>
|
|
None is perfect, they all have pros (+) and cons (-).
|
|
</para>
|
|
|
|
<variablelist>
|
|
<varlistentry>
|
|
<term><acronym>FWA</acronym> - Forward announcement only.</term>
|
|
<listitem>
|
|
<para>
|
|
Direct connection. Not recommended.
|
|
</para>
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>
|
|
(+) You know who the caller is, but
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
(-) Caller will have to respond to an announcement from you. Annoying.
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
(-) Don't use if you have an answering machine on your
|
|
<quote>away</quote> location. (The answering machine can't popup an
|
|
announcement, it would be confusing!)
|
|
</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term><acronym>FWR</acronym> - Forward all requests, changing info when
|
|
necessary</term>
|
|
<listitem>
|
|
<para>
|
|
Direct connection.
|
|
</para>
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>
|
|
(+) Caller won't know that you're away, but
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
(-) You won't really know who the caller is - only his username, (so you
|
|
might see <computeroutput>talk from
|
|
Wintalk@my_host</computeroutput>)
|
|
</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</listitem>
|
|
</varlistentry>
|
|
|
|
<varlistentry>
|
|
<term><acronym>FWT</acronym> - Forward all requests and take the
|
|
talk.</term>
|
|
<listitem>
|
|
<para>No direct connection.</para>
|
|
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>
|
|
(+) Same as above, but also works if you and caller can't be in
|
|
direct contact one with the other (⪚ firewall).
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
(+) You'll be told who's really talking to you when you accept the talk
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
(-) But as in <acronym>FWR</acronym>, you won't know his machine name in
|
|
the announcement
|
|
</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</listitem>
|
|
</varlistentry>
|
|
</variablelist>
|
|
|
|
<para>
|
|
In short, use <acronym>FWT</acronym> it you want to use it behind a
|
|
firewall (and if &ktalkd; can access both networks), and
|
|
<acronym>FWR</acronym> otherwise.
|
|
</para>
|
|
|
|
</sect1>
|
|
</chapter>
|
|
|
|
<chapter id="questions-and-answers">
|
|
<title>Questions and Answers</title>
|
|
|
|
<qandaset>
|
|
<qandaentry>
|
|
<question>
|
|
<para>
|
|
Why doesn't <systemitem class="username">root</systemitem> receive &kde;
|
|
announcements?
|
|
</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>
|
|
Because this would be security hole, with the current user
|
|
detection. You can bypass the limitation by adding two lines in
|
|
<command>xdm</command> config files (which are the same as &tdm; ones).
|
|
</para>
|
|
|
|
<note>
|
|
<para>
|
|
The S.u.S.E &Linux; distribution includes those lines by default.
|
|
</para>
|
|
</note>
|
|
|
|
<para>
|
|
Those config files are normally in a folder such as <filename
|
|
class="directory">/etc/X11/xdm</filename>, or <filename
|
|
class="directory">/usr/X11R6/lib/X11/xdm</filename> on other
|
|
systems. The following supposes that they are in <filename
|
|
class="directory">/etc/X11/xdm</filename>, so you might have to
|
|
translate them for another folder.</para>
|
|
|
|
<para>Here is what you have to do:</para>
|
|
|
|
<procedure>
|
|
<step>
|
|
<para>Edit the file <filename>Xstartup</filename>, or create it, (in the
|
|
<command>xdm</command> config folder) so that it reads:
|
|
</para>
|
|
<screen>#!/bin/sh
|
|
/etc/X11/xdm/GiveConsole
|
|
sessreg -a -l $DISPLAY -x /etc/X11/xdm/Xservers $USER</screen>
|
|
</step>
|
|
<step>
|
|
<para>and the file <filename>Xreset</filename> so that it reads:
|
|
</para>
|
|
<screen>#!/bin/sh
|
|
/etc/X11/xdm/TakeConsole
|
|
sessreg -d -l $DISPLAY $USER</screen>
|
|
</step>
|
|
<step>
|
|
<para>
|
|
Make sure that <filename>xdm-config</filename> make reference to those
|
|
two files:
|
|
</para>
|
|
<screen>DisplayManager._0.startup: /etc/X11/xdm/Xstartup
|
|
DisplayManager._0.reset: /etc/X11/xdm/Xreset </screen>
|
|
</step>
|
|
</procedure>
|
|
|
|
<para>
|
|
This will make &tdm; (or <command>xdm</command>) log
|
|
the user into utmp, which is the right thing to do. It's not up to
|
|
&konsole;, nor <command>xterm</command>, to log the user, but to
|
|
<command>xdm</command> and &tdm;, in my
|
|
opinion. However, this will not log the user as an X user when using
|
|
<command>startx</command>... Any hint about that ?
|
|
</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question>
|
|
<para>
|
|
Why don't I, as a normal user, receive &kde; announcements?
|
|
</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>
|
|
If you're running a &Linux; system (with <filename
|
|
class="directory">/proc</filename> enabled), this behavior is a
|
|
bug. Please send me a description of it so that I correct it.
|
|
</para>
|
|
|
|
<para>
|
|
If you're running &Linux; 2.0.35, this is a known bug in the kernel,
|
|
which doesn't let <systemitem class="username">root</systemitem> read
|
|
<filename class="directory">/proc</filename>. The solution is the same
|
|
as in the previous question, provided that you run
|
|
&tdm; or <command>xdm</command> to log into X. Or
|
|
upgrade!
|
|
</para>
|
|
|
|
<para>
|
|
Otherwise, this is normal. &ktalkd; can't find the user, as &kde;
|
|
doesn't log him into utmp and the &Linux; based (<filename
|
|
class="directory">/proc</filename>) detection is disabled. The solution
|
|
is the same as in the previous question, provided that you run
|
|
<acronym>tdm</acronym> or <acronym>xdm</acronym> to log into X. Another
|
|
solution is to make sure you always have an
|
|
<application>xterm</application> running.
|
|
</para>
|
|
</answer>
|
|
</qandaentry>
|
|
|
|
<qandaentry>
|
|
<question>
|
|
<para>
|
|
How do I get debug output from &ktalkd;?
|
|
</para>
|
|
</question>
|
|
|
|
<answer>
|
|
<para>
|
|
As it is a daemon, there is no debug output on standard output. To get
|
|
debugging output (for instance before submitting me a bug report!),
|
|
update the lines in <filename>inetd.conf</filename> which launches
|
|
&ktalkd; and &kotalkd; to be:
|
|
</para>
|
|
|
|
<screen>talk dgram udp wait root /usr/sbin/tcpd /opt/kde/bin/ktalkd -d
|
|
ntalk dgram udp wait root /usr/sbin/tcpd /opt/kde/bin/ktalkd -d</screen>
|
|
|
|
<para>Notice the <option>-d</option> option.
|
|
</para>
|
|
|
|
<para>
|
|
Then edit <filename>/etc/syslog.conf</filename> to add the following
|
|
line:
|
|
</para>
|
|
|
|
<screen>*.* /var/log/all_messages</screen>
|
|
|
|
<para>To make it work, you then have to restart <command>inetd</command>
|
|
and <command>syslogd</command>:</para>
|
|
|
|
<screen><prompt>%</prompt> <userinput><command>killall</command> <option>-HUP inetd</option></userinput>
|
|
<prompt>%</prompt> <userinput><command>killall</command> <option>-HUP syslogd</option></userinput></screen>
|
|
|
|
<para>Finally, run a <command>talk</command> session and see the result
|
|
in <filename>/var/log/all_messages</filename> </para>
|
|
|
|
<para>When submitting a bug report, never forget to include the
|
|
debugging output, but also &ktalkd;'s version number and the
|
|
<command>./configure</command> output. Thanks.</para>
|
|
|
|
</answer>
|
|
</qandaentry>
|
|
</qandaset>
|
|
|
|
</chapter>
|
|
|
|
<chapter id="copyright-and-license">
|
|
<title>Copyright and Licenses</title>
|
|
|
|
<para>
|
|
&ktalkd; is maintained and improved by David Faure,
|
|
<email>faure@kde.org</email>
|
|
</para>
|
|
|
|
<para>
|
|
The original program was written by Robert Cimrman,
|
|
<email>cimrman3@students.zcu.cz</email>
|
|
</para>
|
|
|
|
<!-- TRANS:CREDIT_FOR_TRANSLATORS -->
|
|
|
|
&underFDL;
|
|
&underGPL;
|
|
|
|
</chapter>
|
|
|
|
<appendix id="installation">
|
|
<title>Installation</title>
|
|
|
|
<sect1 id="how-to-obtain-ktalkd">
|
|
<title>How to obtain &ktalkd;</title>
|
|
|
|
<para>
|
|
&ktalkd; is now a core application of the &kde; project <ulink
|
|
url="http://www.kde.org">http://www.kde.org</ulink>, part of the
|
|
tdenetwork package.
|
|
</para>
|
|
|
|
<para>
|
|
You can always download the latest &ktalkd; from the main &FTP; site of
|
|
the &kde; project, <ulink
|
|
url="ftp://ftp.kde.org/pub/kde">ftp://ftp.kde.org/pub/kde</ulink> and
|
|
from its mirrors. It's usually found in <ulink
|
|
url="ftp://ftp.kde.org/pub/kde/stable/latest/apps/network">ftp://ftp.kde.org/pub/kde/stable/latest/apps/network</ulink>
|
|
</para>
|
|
</sect1>
|
|
|
|
<sect1 id="requirements">
|
|
<title>Requirements</title>
|
|
|
|
<para>
|
|
In order to successfully compile &ktalkd;, you need the latest versions
|
|
of the &kde; libraries as well as the &Qt; C++ library. All required
|
|
libraries as well as ktalkd itself can be found on <ulink
|
|
url="ftp://ftp.kde.org/pub/kde/">ftp://ftp.kde.org/pub/kde/</ulink>.
|
|
</para>
|
|
</sect1>
|
|
|
|
<sect1 id="compilation-and-installation">
|
|
<title>Compilation and Installation</title>
|
|
|
|
<para>
|
|
In order to compile and install &ktalkd; on your system, type the
|
|
following in the base folder of the &ktalkd; distribution:
|
|
</para>
|
|
|
|
<screen><prompt>%</prompt> <userinput><command>./configure</command></userinput>
|
|
<prompt>%</prompt> <userinput><command>make</command></userinput>
|
|
<prompt>%</prompt> <userinput><command>make</command> <option>install</option></userinput></screen>
|
|
|
|
<para>As &ktalkd; is a daemon, <userinput><command>make</command>
|
|
<option>install</option></userinput> will require <systemitem
|
|
class="username">root</systemitem> privileges.</para>
|
|
|
|
<para>
|
|
Don't forget to update <filename>/etc/inetd.conf</filename>. For
|
|
example, on a &Linux; system, if &kde; is in <filename
|
|
class="directory">/opt/kde</filename>, change the lines concerning
|
|
<command>talk</command> and <command>ntalk</command> to:
|
|
</para>
|
|
|
|
<screen>talk dgram udp wait root /usr/sbin/tcpd /opt/kde/bin/ktalkd
|
|
ntalk dgram udp wait root /usr/sbin/tcpd /opt/kde/bin/ktalkd</screen>
|
|
|
|
<para>A script is provided, to make the necessary change automatically.
|
|
Update your <filename>inetd.conf</filename> file just by running</para>
|
|
|
|
<screen><prompt>%</prompt> <userinput><command>./post-install.sh</command></userinput></screen>
|
|
|
|
<para>
|
|
Anyway, you'll have to <emphasis>restart inetd</emphasis> after this.
|
|
On most &Linux; systems, do:
|
|
</para>
|
|
|
|
<screen><prompt>%</prompt> <userinput><command>killall</command> <option>-HUP inetd</option></userinput></screen>
|
|
|
|
<para>
|
|
On newer systems, using <command>xinetd</command>, there is no more
|
|
<filename>/etc/inetd.conf</filename>, and you should edit or create
|
|
<filename>/etc/xinetd.d/talk</filename> instead, with those lines:
|
|
</para>
|
|
|
|
<screen>service talk
|
|
{
|
|
socket_type = dgram
|
|
wait = yes
|
|
user = root
|
|
server = /usr/bin/ktalkd
|
|
}
|
|
|
|
service ntalk
|
|
{
|
|
socket_type = dgram
|
|
wait = yes
|
|
user = root
|
|
server = /usr/bin/ktalkd
|
|
}</screen>
|
|
|
|
<para>
|
|
then restart <command>xinetd</command>.
|
|
</para>
|
|
|
|
<para>
|
|
Please inform me of any modification you had to undertake in order to
|
|
get &ktalkd; to compile or work on your platform.
|
|
</para>
|
|
</sect1>
|
|
|
|
</appendix>
|
|
|
|
</book>
|