<?xml version="1.0" ?>
<!DOCTYPE book PUBLIC "-//KDE//DTD DocBook XML V4.1-Based Variant V1.0//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
>kotalkd</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; <literal
>ktalkdlg</literal
> Если запущен <application
>ktalk</application
>, то ему будет предложено осуществить оповещение самостоятельно. (Начиная с версии 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
> (аналогично <command
>kdm</command
>). </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
>и файл Xreset: </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
> Благодаря этому <command
>kdm</command
> (или <command
>xdm</command
>) включит пользователя в utmp, что, собственно, и требовалось. Я думаю, что не &konsole;, или <command
>xterm</command
> должны заносить туда пользователя, а именно <command
>xdm</command
> и <command
>kdm</command
>. Тем не менее, это не занесет туда пользователя как пользователя Х при <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
>. Решение этой проблемы аналогично описанному в предыдущем вопросе, запускать <command
>kdm</command
> или <command
>xdm</command
> для входа в X. Или обновить ядро! </para>

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

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-omittag: nil
sgml-shorttag: t
End:
-->

