<?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 % Russian "INCLUDE"
> <!-- change language only here -->   
]>

<book lang="&language;">

<bookinfo>
<title
>Справочное руководство по &ktalkd;</title>
<authorgroup>
<author
><firstname
>David</firstname
> <surname
>Faure</surname
> <affiliation
> <address
><email
>faure@kde.org</email
></address>
</affiliation>
</author>

<othercredit role="translator"
><firstname
>Илья</firstname
> <surname
>Яловой</surname
> <affiliation
><address
><email
>i_yalovoy@mail.ru</email
></address
></affiliation
><contrib
> Перевод на русский</contrib
></othercredit
> 
</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; это улучшенный демон <command
>talk</command
>, который принимает входящие <command
>talk</command
>-запросы, сообщает о них и позволяет вам отвечать на них с помощью клиента talk. </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
>Введение</title>

<para
>&ktalkd; это улучшенный <command
>talk</command
>-демон, который принимает входящие <command
>talk</command
>-запросы, сообщает о них и позволяет вам отвечать на них с помощью клиента <command
>talk</command
>. </para>

<important>
<para
>Учтите, что &ktalkd; разработан для запуска на однопользовательской рабочей станции, и его не следует запускать на машинах, с которыми работают несколько пользователей: он читает файлы конфигурации пользователей, и пользователи могут запускать с помощью демона <command
>talk</command
> любые команды, что очень опасно. Если на вашем компьютере есть пользователи, которым вы не доверяете, то использование &ktalkd; недопустимо. </para>
</important>

<para
>В данном документе абонент, получающий запросы, будет называться <quote
>получателем</quote
>. </para>

<para
>Особенности &ktalkd;:</para>

<variablelist>
<varlistentry>
<term
>Автоответчик</term>
<listitem>
<para
>Если получатель не вошел в систему или не отвечает после второго звонка, то запускается автоответчик: он принимает сообщение и пересылает его получателю по электронной почте. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
>Звук</term>
<listitem>
<para
>При желании звонок сопровождается звуковым сигналом. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
>Оповещение в X </term>
<listitem>
<para
>Если &ktalkd; компилировался с инсталлированным &kde;, то для оповещения будет вызываться диалог &kde; <command
>ktalkdlg</command
> Если запущен &ktalk;, то ему будет предложено осуществить оповещение самостоятельно. (Начиная с версии 0.8.8). </para>
</listitem>
</varlistentry>
<varlistentry>
<term
>Оповещение на нескольких дисплеях</term>
<listitem>
<para
>Если вы дистанционно вошли в систему (т.е. с помощью команды <userinput
><command
>export</command
> <envar
>DISPLAY</envar
>=<replaceable
>...</replaceable
></userinput
>),то оповещение также будет произведено и на этом дисплее. Отвечать на звонок можно с любого дисплея! Если вы также вошли в систему и с помощью текстового терминала, и при этом <emphasis
>не</emphasis
> использовали xterms (внутреннее ограничение), то вы увидите текстовое оповещение. </para>
</listitem>
</varlistentry>

<varlistentry>
<term
>Пересылка <emphasis
> (Начиная с версии 0.8.0)</emphasis
></term>
<listitem>
<para
>Если вы отсутствуете, то можете настроить пересылку другому пользователю и даже на другой компьютер. Существует три метода пересылки. Подробнее смотрите раздел <link linkend="usage"
>Использование</link
>. </para>
</listitem>
</varlistentry>

<varlistentry>
<term
>Конфигурация</term>
<listitem>
<para
>Если &ktalkd; скомпилирован под &kde;, то он читает настройки из системного конфигурационного файла &kde;  - (<filename
>$<envar
>KDEDIR</envar
>/share/config/ktalkdrc</filename
>), и из пользовательского файла - в его домашнем каталоге. Системный файл конфигурации должен быть отредактирован администратором вручную, а пользователь может пользоваться специальной программой. Она называется <command
>kcmktalkd</command
> и после установки &ktalkd; находится в &kcontrol;. В системах без &kde; &ktalkd; использует в качестве конфигурационного файл <filename
>/etc/talkd.conf</filename
>. </para>
</listitem>
</varlistentry>

<varlistentry>
<term
>Интернационализация</term>
<listitem>
<para
>Под &kde;, если <command
>ktalkdlg</command
> переведен на ваш язык, то оповещение будет производиться в соответствии с установками &kde;. Это же относится и к программе конфигурации <command
>kcmktalkd</command
>. </para>
</listitem>
</varlistentry>

<varlistentry>
<term
>Поддержка <command
>otalk</command
> и <command
>ntalk</command
> <emphasis
>(Начиная с версии 0.8.1)</emphasis
></term>
<listitem>
<para
>&ktalkd; теперь поддерживает оба протокола, даже при пересылке. &ktalk; также поддерживает оба протокола. </para>
</listitem>
</varlistentry>
</variablelist>

<para
>Я надеюсь, что вы останетесь довольны демоном talk.</para>

<para
>David Faure <email
>faure@kde.org</email
></para>

</chapter>

<chapter id="usage">
<title
>Использование</title>

<para
>Чтобы использовать &ktalkd;, вам необходим клиент <command
>talk</command
>. Все системы &UNIX; имеют текстовый клиент <command
>talk</command
>. Наберите <userinput
><command
>talk</command
> <replaceable
>username</replaceable
></userinput
>, чтобы проверить что будет, когда вы получите запрос <command
>talk</command
>. </para>

<para
>Также вы можете проверить автоответчик: отправьте себе сообщение <command
>talk</command
>, пропустите два звонка, и тогда должен сработать автоответчик. </para>

<para
>&ktalk; - это графический клиент <command
>talk</command
> под &kde;. Пока этот пакет не входит в стандартный набор &kde;, но вы можете найти его на сервере ftp://ftp.kde.org, по адресу <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
>Диалоговое окно при звонке очень простое: <guibutton
>respond</guibutton
> или <guibutton
>ignore</guibutton
>. </para>

<para
>С помощью диалога конфигурации вы можете настроить переадресацию другому пользователю или даже на другой компьютер. </para>

<sect1 id="choosing-a-forwarding-method">
<title
>Выбор метода переадресации</title>

<para
>Ни один из них не является идеальным, у каждого есть плюсы и минусы. </para>

<variablelist>
<varlistentry>
<term
><acronym
>FWA</acronym
> - только оповещение о переадресации (forward announcement only).</term>
<listitem>
<para
>Прямое подключение. Не рекомендуется. </para>
<itemizedlist>
<listitem>
<para
>(+) Вы знаете кто вас вызывает, но </para>
</listitem>
<listitem>
<para
>(-) Вызывающий абонент должен будет ответить на ваш запрос. Это раздражает. </para>
</listitem>
<listitem>
<para
>(-) Не используйте, если автоответчик установлен на <quote
>away</quote
>. (Автоответчик не сможет выдать оповещение.) </para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>

<varlistentry>
<term
><acronym
>FWR</acronym
> - Переадресация всех запросов (forward all requests) с изменением информационных полей сообщения</term>
<listitem>
<para
>Прямое подключение </para>
<itemizedlist>
<listitem>
<para
>(+) Вызывающий абонент не узнает о том, что вы отсутствуете, но </para>
</listitem>
<listitem>
<para
>(-) Вы не узнаете, кто именно вас вызывал - только его имя пользователя, (например, вы увидите <computeroutput
>talk from Wintalk@my&lowbar;host</computeroutput
>) </para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>

<varlistentry>
<term
><acronym
>FWT</acronym
> - Переадресовывать все запросы и включаться в разговор.</term>
<listitem>
<para
>Без прямого подключения.</para>

<itemizedlist>
<listitem>
<para
>(+) Аналогично предыдущему, но работает и без прямого подключения (например, за файрволлом). </para>
</listitem>
<listitem>
<para
>(+) Вам будет сообщено, с кем вы общаетесь, когда вы примете звонок </para>
</listitem>
<listitem>
<para
>(-) Аналогично <acronym
>FWR</acronym
>, вы не узнаете в оповещении названия компьютера вызывающего абонента </para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
</variablelist>

<para
>Используйте <acronym
>FWT</acronym
>, если хотите, чтобы он работал за файрволлом (и если &ktalkd; имеет доступ к обеим сетям), и <acronym
>FWR</acronym
> в любом другом случае. </para>

</sect1>
</chapter>

<chapter id="questions-and-answers">
<title
>Вопросы и ответы</title>

<qandaset>
<qandaentry>
<question>
<para
>Почему <systemitem class="username"
>root</systemitem
> не получает оповещений &kde;? </para>
</question>

<answer>
<para
>Потому, что автоматическлое определение пользователей может быть дырой в безопасности системы. Вы можете обойти это ограничение, добавив две строчки в файл конфигурации <command
>xdm</command
> (аналогично &kdm;). </para>

<note>
<para
>Примечание : Дистрибутив S.u.S.E &Linux; содержит эти строки по умолчанию. </para>
</note>

<para
>Эти файлы конфигурации обычно находятся в каталоге <filename class="directory"
>/etc/X11/xdm</filename
>, или <filename class="directory"
>/usr/X11R6/lib/X11/xdm</filename
> на других системах. Далее предполагается, что они находятся в <filename class="directory"
>/etc/X11/xdm</filename
>, поэтому вам, возможно, потребуется уточнить их расположение.</para>

<para
>Вот что вы должны сделать:</para>

<procedure>
<step>
<para
>Отредактируйте или создайте новый файл <filename
>Xstartup</filename
>, (в каталоге конфигурации <command
>xdm</command
>) так, чтобы он содержал: </para
> 
<screen
>#!/bin/sh
/etc/X11/xdm/GiveConsole
sessreg -a -l $DISPLAY -x /etc/X11/xdm/Xservers $USER</screen>
</step>
<step>
<para
>и файл <filename
>Xreset</filename
>, который выглядит: </para>
<screen
>#!/bin/sh
/etc/X11/xdm/TakeConsole
sessreg -d -l $DISPLAY $USER</screen>
</step>
<step>
<para
>Убедитесь, что в файле <filename
>xdm-config</filename
> содержатся ссылки на эти два файла: </para>
<screen
>DisplayManager._0.startup:      /etc/X11/xdm/Xstartup
DisplayManager._0.reset:        /etc/X11/xdm/Xreset </screen>
</step>
</procedure>

<para
>Благодаря этому &kdm; (или <command
>xdm</command
>) включит пользователя в utmp, что, собственно, и требовалось. Я думаю, что не &konsole;, или <command
>xterm</command
> должны заносить туда пользователя, а именно <command
>xdm</command
> и &kdm;. Тем не менее, это не занесет туда пользователя как пользователя Х при <command
>startx</command
>... Есть какие-нибудь соображения? </para>
</answer>
</qandaentry>

<qandaentry>
<question>
<para
>Почему я, будучи нормальным пользователем, не получаю оповещений &kde;? </para>
</question>

<answer>
<para
>Если вы работаете в &Linux; (с подключенным <filename class="directory"
>/proc</filename
>), такое поведение - ошибка в программе. Пришлите мне подробное описание, чтобы я смог исправить эту ошибку. </para>

<para
>Если вы работаете под &Linux; 2.0.35, то это - известная ошибка ядра, которая не позволяет <systemitem class="username"
>root</systemitem
> читать <filename class="directory"
>/proc</filename
>. Решение этой проблемы аналогично описанному в предыдущем вопросе, запускать &kdm; или <command
>xdm</command
> для входа в X. Или обновить ядро! </para>

<para
>Иначе, это так и должно быть. &ktalkd; не может найти пользователя, так как &kde; не включил его в utmp и используемая в &Linux; (<filename class="directory"
>/proc</filename
>) функция определения отключена. Решение этой проблемы аналогично описанному в предыдущем вопросе, запускать <acronym
>kdm</acronym
> или <acronym
>xdm</acronym
> для входа в X. Другое решение - всегда запускать <application
>xterm</application
>. </para>
</answer>
</qandaentry>

<qandaentry>
<question>
<para
>Как я могу просмотреть отладочную информацию &ktalkd;? </para>
</question>

<answer>
<para
>Поскольку программа работает в качестве сервера, то стандартный вывод невозможен. Для того, чтобы осуществить вывод отладочной информации (например, для отправки мне отчета об ошибках!), внесите изменения в файл <filename
>inetd.conf</filename
>, который запускает &ktalkd; и &kotalkd;, следующим образом: </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
>Обратите внимание на параметр <option
>-d</option
>. </para>

<para
>Затем добавьте в файл <filename
>/etc/syslog.conf</filename
> следующую строчку: </para>

<screen
>*.*         /var/log/all_messages</screen>

<para
>Чтобы все заработало, необходимо перезапустить <command
>inetd</command
> и <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
>Наконец, запустите <command
>talk</command
>, результат будет записываться в <filename
>/var/log/all&lowbar;messages</filename
> </para>

<para
>Когда будете отправлять мне отчет об ошибках, не забудьте приложить отладочную информацию, и, конечно, номер версии &ktalkd; и файл с сообщениями <command
>./configure</command
>. Спасибо.</para>

</answer>
</qandaentry>
</qandaset>

</chapter>

<chapter id="copyright-and-license">
<title
>Авторские права и лицензии</title>

<para
>Поддержку и доработку &ktalkd; осуществляет David Faure, <email
>faure@kde.org</email
> </para>

<para
>Первоначально программа написана Robert Cimrman, <email
>cimrman3@students.zcu.cz</email
> </para>

<para
>Перевод на русский - Илья Яловой <email
>i_yalovoy@mail.ru</email
></para
> 
&underFDL; &underGPL; </chapter>

<appendix id="installation">
<title
>Установка</title>

<sect1 id="how-to-obtain-ktalkd">
<title
>Где взять &ktalkd;</title>

<para
>&ktalkd; стандартно поставляется в составе проекта &kde; <ulink url="http://www.kde.org"
>http://www.kde.org</ulink
> и входит в пакет kdenetwork. </para>

<para
>Вы всегда можете скачать последнюю версию &ktalkd; с главного &FTP; сайта проекта &kde;, <ulink url="ftp://ftp.kde.org/pub/kde"
>ftp://ftp.kde.org/pub/kde</ulink
> или одного из его зеркал. Он обычно находится в <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
>Требования</title>

<para
>Для успешной компиляции &ktalkd; вам необходима последняя версия &kde; и библиотеки &Qt;. Все библиотеки и сам ktalkd можно найти на <ulink url="ftp://ftp.kde.org/pub/kde/"
>ftp://ftp.kde.org/pub/kde/</ulink
>. </para>
</sect1>

<sect1 id="compilation-and-installation">
<title
>Сборка и установка</title>

<para
>Чтобы собрать и установить &ktalkd; в вашей системе, наберите следующее в корневом каталоге дистрибутива &ktalkd;: </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
>Поскольку &ktalkd; - демон, то для <userinput
><command
>make</command
> <option
>install</option
></userinput
> потребуются права <systemitem class="username"
>root</systemitem
>.</para>

<para
>Не забудьте обновить файл <filename
>/etc/inetd.conf</filename
>. На пример, в &Linux;, если &kde; находится в <filename class="directory"
>/opt/kde</filename
>, измените строки, касающиеся <command
>talk</command
> и <command
>ntalk</command
> на: </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
>Скрипт должен произвести все необходимые изменения автоматически. Обновите <filename
>inetd.conf</filename
> запустив</para>

<screen
><prompt
>%</prompt
> <userinput
><command
>./post-install.sh</command
></userinput
></screen>

<para
>В любом случае вам потребуется после этого <emphasis
>перезапустить inetd</emphasis
>. В большинстве систем &Linux; необходимо набрать: </para>

<screen
><prompt
>%</prompt
> <userinput
><command
>killall</command
> <option
>-HUP inetd</option
></userinput
></screen>

<para
>В новых системах, которые используют <command
>xinetd</command
>, больше не существует <filename
>/etc/inetd.conf</filename
>, и вы должны отредактировать или создать файл <filename
>/etc/xinetd.d/talk</filename
>, заменив следующие строки: </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
>а затем перезапустить <command
>xinetd</command
>. </para>

<para
>Сообщайте мне о всех изменениях, которые вы внесли для нормальной компиляции и работы &ktalkd; в вашей системе. </para>
</sect1>

</appendix>

</book>

<!--
Local Variables:
mode: sgml
sgml-minimize-attributes:nil
sgml-general-insert-case:lower
sgml-indent-step:0
sgml-indent-data:nil
End:

// vim:ts=0:sw=2:tw=78:noet
-->


