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

<book lang="&language;">

<bookinfo>
<title
>O Manual do &ktalkd;</title>
<authorgroup>
<author
><firstname
>David</firstname
> <surname
>Faure</surname
> <affiliation
> <address
><email
>faure@kde.org</email
></address>
</affiliation>
</author>

<othercredit role="translator"
><firstname
>Marcus</firstname
><surname
>Gama</surname
><affiliation
><address
><email
>marcus_gama@uol.com.br</email
></address
></affiliation
><contrib
>Tradução</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
>O &ktalkd; é um servidor de <command
>talk</command
> melhorado - um programa para tratar dos pedidos de <command
>talk</command
> recebidos, anunciá-los e permitir a você responder a eles, usando um cliente de <command
>talk</command
>. </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
>Introdução</title>

<para
>O &ktalkd; é um servidor de <command
>talk</command
> melhorado - um programa para tratar dos pedidos de <command
>talk</command
> recebidos, anunciá-los e permitir que você os responda, usando um cliente de <command
>talk</command
>. </para>

<important>
<para
>Note que o &ktalkd; está desenhado para rodar numa estação de trabalho para um único usuário, e não deve ser executado numa máquina multi-usuário: uma vez que lê os arquivos de configuração dos usuários, estes poderão fazer o servidor do <command
>talk</command
> executar qualquer comando, o que poderá ser particularmente perigoso. Não use o &ktalkd; se criar contas na sua máquina para pessoas que não confie completamente. </para>
</important>

<para
>Neste documento, se alguém quiser falar com você, você é designado como sendo o <quote
>chamado</quote
>. </para>

<para
>O &ktalkd; tem os seguintes recursos:</para>

<variablelist>
<varlistentry>
<term
>Atendedor de chamadas</term>
<listitem>
<para
>Se o chamado não estiver logado, ou se não atender ao segundo anúncio, é invocado um atendedor de chamadas que recebe a mensagem e envia-a por e-mail para o chamado. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
>Som</term>
<listitem>
<para
>Se desejado, poderá ser tocado um som com o anúncio. </para>
</listitem>
</varlistentry>
<varlistentry>
<term
>Anúncio X </term>
<listitem>
<para
>Se for compilado com o &kde; instalado, o &ktalkd; irá usar o <command
>ktalkdlg</command
>, um diálogo do &kde;, para anunciar. Se o &ktalk; estiver rodando, será pedido para que ele próprio anuncie. (Novo desde a versão 0.8.8) </para>
</listitem>
</varlistentry>
<varlistentry>
<term
>Anúncio em várias telas</term>
<listitem>
<para
>Se você estiver logado remotamente (&eg; com um comando <userinput
><command
>export</command
> <envar
>DISPLAY</envar
>=<replaceable
>...</replaceable
></userinput
>), o anúncio do X será feito também nessa tela. Responda na tela que desejar! Se você também estiver logado num terminal de texto, e se <emphasis
>não</emphasis
> estiver usando terminais X (restrição interna), então você também verá um anúncio em texto, no caso de estar usando o terminal de texto na momento do anúncio. </para>
</listitem>
</varlistentry>

<varlistentry>
<term
>Reencaminhamento <emphasis
>(Novo desde a versão 0.8.0)</emphasis
></term>
<listitem>
<para
>Você poderá reencaminhar a mensagem para outro usuário e mesmo para outra máquina se estiver ausente. Existem 3 métodos diferentes de reencaminhamento. Veja a seção <link linkend="usage"
>Utilização</link
>. </para>
</listitem>
</varlistentry>

<varlistentry>
<term
>Configuração</term>
<listitem>
<para
>Se o &ktalkd; estiver compilado para o &kde;, ele lê as opções dos arquivos de configuração do &kde; - o arquivo da máquina (<filename
>$<envar
>KDEDIR</envar
>/share/config/ktalkdrc</filename
>) e o do usuário, na sua pasta pessoal. O arquivo da máquina tem que ser editado manualmente pelo administrador, mas existe agora um diálogo de configuração para o do usuário. Chama-se <command
>kcmktalkd</command
> e poderá ser encontrado no &kcontrol; depois de instalar o &ktalkd;. Nos sistemas não-&kde;, o &ktalkd; irá ler o <filename
>/etc/talkd.conf</filename
>. </para>
</listitem>
</varlistentry>

<varlistentry>
<term
>Internacionalização</term>
<listitem>
<para
>No &kde;, o anúncio será feito no seu idioma, desde que o tenha configurado nos menus do &kde; e desde que alguém tenha traduzido o <command
>ktalkdlg</command
> para a sua língua. O mesmo se aplica ao diálogo de configuração, o <command
>kcmktalkd</command
>. </para>
</listitem>
</varlistentry>

<varlistentry>
<term
>Suporte para o <command
>otalk</command
> e para o <command
>ntalk</command
> <emphasis
>(Novo desde a versão 0.8.1)</emphasis
></term>
<listitem>
<para
>O &ktalkd; suporta agora ambos os protocolos, mesmo para o reencaminhamneto. O &ktalk; suporta também ambos os protocolos. </para>
</listitem>
</varlistentry>
</variablelist>

<para
>Espero que você goste deste servidor de conversação,</para>

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

</chapter>

<chapter id="usage">
<title
>Utilização</title>

<para
>Para usar o &ktalkd;, você precisa de um cliente do <command
>talk</command
>. A versão de texto do <command
>talk</command
> existe na maioria dos sistemas &UNIX;. Tente o comando <userinput
><command
>talk</command
> <replaceable
>o&lowbar;seu&lowbar;usuário</replaceable
></userinput
> para ver o que acontece quando receber um pedido do <command
>talk</command
>. </para>

<para
>Você poderá tentar também o atendedor de chamadas da mesma forma: inicie um <command
>talk</command
> para você, ignore o anúncio duas vezes; deste modo, irá ver o atendedor de chamadas. </para>

<para
>Existe um cliente de <command
>talk</command
> com uma interface gráfica para o &kde;, o &ktalk;. Ainda não é fornecido com os pacotes do &kde;, mas você poderá encontrá-lo em ftp://ftp.kde.org. Ele deverá estar em <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
>A caixa de diálogo do anúncio é trivial: <guibutton
>responder</guibutton
> ou <guibutton
>ignorar</guibutton
>. </para>

<para
>A janela de configuração deverá ser relativamente intuitiva, exceto na parte de definir um reencaminhamento para outro usuário (ou mesmo para outra máquina). </para>

<sect1 id="choosing-a-forwarding-method">
<title
>Escolhendo um Método de Reencaminhamento</title>

<para
>Nada é perfeito, todos têm os seus prós (+) e contra (-). </para>

<variablelist>
<varlistentry>
<term
><acronym
>FWA</acronym
> - Só reencaminha o anúncio.</term>
<listitem>
<para
>Conexão direta. Não é recomendado. </para>
<itemizedlist>
<listitem>
<para
>(+) Você fica sabendo quem é o chamador, mas </para>
</listitem>
<listitem>
<para
>(-) O chamador terá de responder a um anúncio seu. Aborrecido. </para>
</listitem>
<listitem>
<para
>(-) Não o use se tiver um atendedor de chamadas na sua localização <quote
>ausente</quote
>. (O atendedor de chamadas não poderá mostrar um anúncio, o que se tornaria confuso!) </para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>

<varlistentry>
<term
><acronym
>FWR</acronym
> - Encaminha todos os pedidos, mudando a informação se necessário</term>
<listitem>
<para
>Conexão direta. </para>
<itemizedlist>
<listitem>
<para
>(+) O chamador não irá saber que você está ausente, mas </para>
</listitem>
<listitem>
<para
>(-) Você não irá saber mesmo quem é o chamador - só o seu usuário (por isso você poderá ver algo do gênero <computeroutput
>chamada de Wintalk@minha&lowbar;maquina</computeroutput
>) </para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>

<varlistentry>
<term
><acronym
>FWT</acronym
> - Reencaminha todos os pedidos e efetua a conversação.</term>
<listitem>
<para
>Sem conexão direta.</para>

<itemizedlist>
<listitem>
<para
>(+) O mesmo que o anterior, mas também funciona se você e o chamador não estiverem em contato direto um com o outro (&eg; através de uma firewall). </para>
</listitem>
<listitem>
<para
>(+) Você irá saber quem realmente está falando com você consigo quando aceitar a conversação </para>
</listitem>
<listitem>
<para
>(-) Mas, como acontece no <acronym
>FWR</acronym
>, você não irá saber o nome da máquina dele no anúncio </para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>
</variablelist>

<para
>Em resumo, utilize o <acronym
>FWT</acronym
> se o quiser usar através de uma firewall (e se o &ktalkd; puder acessar a ambas as redes), caso contrário use o <acronym
>FWR</acronym
>. </para>

</sect1>
</chapter>

<chapter id="questions-and-answers">
<title
>Perguntas e Respostas</title>

<qandaset>
<qandaentry>
<question>
<para
>Porque o <systemitem class="username"
>root</systemitem
> não recebe os anúncios do &kde;? </para>
</question>

<answer>
<para
>Porque isto seria uma falha de segurança, com a detecção do usuário atual. Você poderá ultrapassar esta limitação adicionando duas linhas aos arquivos de configuração do <command
>xdm</command
> (que são os mesmos que os do &kdm;). </para>

<note>
<para
>A distribuição de &Linux; da S.u.S.E inclui estas linhas por padrão. </para>
</note>

<para
>Esses arquivos de configuração estão normalmente numa pasta como a <filename class="directory"
>/etc/X11/xdm</filename
> ou a <filename class="directory"
>/usr/X11R6/lib/X11/xdm</filename
>, como acontece noutros sistemas. O exemplo a seguir considera que eles estão na <filename class="directory"
>/etc/X11/xdm</filename
>, por isso você poderá desejar passá-los para outra pasta.</para>

<para
>Aqui está o que terá que fazer:</para>

<procedure>
<step>
<para
>Edite o arquivo <filename
>Xstartup</filename
> ou crie-o (na pasta de configuração do <command
>xdm</command
>), de modo que se leia: </para
> 
<screen
>#!/bin/sh
/etc/X11/xdm/GiveConsole
sessreg -a -l $DISPLAY -x /etc/X11/xdm/Xservers $USER</screen>
</step>
<step>
<para
>e o arquivo <filename
>Xreset</filename
>, de modo que se leia: </para>
<screen
>#!/bin/sh
/etc/X11/xdm/TakeConsole
sessreg -d -l $DISPLAY $USER</screen>
</step>
<step>
<para
>Certifique-se que o <filename
>xdm-config</filename
> faz referência a esses dois arquivos: </para>
<screen
>DisplayManager._0.startup:      /etc/X11/xdm/Xstartup
DisplayManager._0.reset:        /etc/X11/xdm/Xreset </screen>
</step>
</procedure>

<para
>Isto fará com que o &kdm; (ou o <command
>xdm</command
>) registre o usuário no 'utmp', o que é a ação correcta a fazer. Não depende do &konsole;, nem do <command
>xterm</command
>, registrar qual o usuário, mas sim do <command
>xdm</command
> e do &kdm;, na opinião do autor. Contudo, isto não irá registrar o usuário como sendo um usuário do X ao usar o <command
>startx</command
>... Alguma sugestão para isto ? </para>
</answer>
</qandaentry>

<qandaentry>
<question>
<para
>Porque eu, como usuário normal, recebo anúncios do &kde;? </para>
</question>

<answer>
<para
>Se você estiver rodando um sistema &Linux; (com o <filename class="directory"
>/proc</filename
> ativo), este comportamento é um erro. Por favor, envie-me uma descrição do mesmo para que eu possa corrigir esse erro. </para>

<para
>Se você estiver rodando o 'kernel' &Linux; 2.0.35, este é um erro conhecido no 'kernel', o qual não deixará o usuário <systemitem class="username"
>root</systemitem
> ler o <filename class="directory"
>/proc</filename
>. A solução é a mesma que na questão anterior, desde que você tenha rodado o &kdm; ou o <command
>xdm</command
> para se logarem ao X. Ou então faça a atualização! </para>

<para
>Caso contrário, isto é normal. O &ktalkd; não consegue encontrar o usuário, uma vez que o &kde; não o registra no 'utmp' e que a detecção do &Linux; pelo <filename class="directory"
>/proc</filename
> está desativada. A solução é a mesma que para a questão anterior, desde que tenha rodado o <acronym
>kdm</acronym
> ou o <acronym
>xdm</acronym
> para se logarem ao X. Outra solução será certificar-se que você tem sempre um <application
>xterm</application
> em execução. </para>
</answer>
</qandaentry>

<qandaentry>
<question>
<para
>Como posso fazer depuração do &ktalkd;? </para>
</question>

<answer>
<para
>Como ele é um serviço, não existe nenhuma informação de depuração na saída padrão. Para obter o resultado da depuração (por exemplo, antes de me relatar um erro!), atualize as linhas do <filename
>inetd.conf</filename
> que lançam o &ktalkd; e o &kotalkd; para passarem a ser: </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
>Observe a opção <option
>-d</option
>. </para>

<para
>Depois edite o <filename
>/etc/syslog.conf</filename
> para adicionar as seguintes linhas: </para>

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

<para
>Para fazer isso funcionar, você terá de reiniciar o <command
>inetd</command
> e o <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
>Finalmente, execute uma sessão do <command
>talk</command
> e veja o resultado em <filename
>/var/log/all&lowbar;messages</filename
> </para>

<para
>Ao submeter um relatório de um erro, nunca se esqueça de incluir o resultado da depuração, mas inclua também o número de versão do &ktalkd; e o resultado do <command
>./configure</command
>. Obrigado.</para>

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

</chapter>

<chapter id="copyright-and-license">
<title
>Direitos Autorais e Licenças</title>

<para
>O &ktalkd; é mantido e melhorado pelo David Faure, <email
>faure@kde.org</email
> </para>

<para
>O programa original foi escrito por Robert Cimrman, <email
>cimrman3@students.zcu.cz</email
> </para>

<para
>Tradução de Marcus Gama<email
>marcus_gama@uol.com.br</email
></para
> 
&underFDL; &underGPL; </chapter>

<appendix id="installation">
<title
>Instalação</title>

<sect1 id="how-to-obtain-ktalkd">
<title
>Como obter o &ktalkd;</title>

<para
>O &ktalkd; é agora um aplicativo de base do projeto do &kde; <ulink url="http://www.kde.org"
>http://www.kde.org</ulink
>, e faz parte do pacote 'kdenetwork'. </para>

<para
>Você poderá obter sempre a última versão do &ktalkd; no sítio &FTP; principal do projeto do &kde; em <ulink url="ftp://ftp.kde.org/pub/kde"
>ftp://ftp.kde.org/pub/kde</ulink
> ou dos seus espelhos. Normalmente se encontra em <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
>Requisitos</title>

<para
>Para poder compilar com sucesso o &ktalkd;, você irá necessitar das últimas versões das bibliotecas do &kde;, assim como da biblioteca de C++ &Qt;. Todas as bibliotecas necessárias, assim como o próprio &ktalkd; poderão ser obtidas em <ulink url="ftp://ftp.kde.org/pub/kde/"
>ftp://ftp.kde.org/pub/kde/</ulink
>. </para>
</sect1>

<sect1 id="compilation-and-installation">
<title
>Compilação e Instalação</title>

<para
>Para poder compilar e instalar o &ktalkd; no seu sistema, digite o seguinte na pasta base da sua distribuição do &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
>Uma vez que o &ktalkd; é um serviço, o <userinput
><command
>make</command
> <option
>install</option
></userinput
> irá necessitar de privilégios do <systemitem class="username"
>root</systemitem
>.</para>

<para
>Não se esqueça de atualizar o <filename
>/etc/inetd.conf</filename
>. Por exemplo, num sistema &Linux;, se o &kde; estiver em <filename class="directory"
>/opt/kde</filename
>, mude as linhas referentes ao <command
>talk</command
> e ao <command
>ntalk</command
> para: </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
>É fornecido um programa para fazer as alterações necessárias automaticamente. Atualize o seu arquivo <filename
>inetd.conf</filename
>, bastando para isso rodar</para>

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

<para
>De qualquer forma, você terá que <emphasis
>reiniciar o inetd</emphasis
> depois disto. Na maioria dos sistemas &Linux;, faça: </para>

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

<para
>Nos sistemas mais recentes, que usam o <command
>xinetd</command
>, não existe mais o <filename
>/etc/inetd.conf</filename
>, e você deverá então editar ou criar o <filename
>/etc/xinetd.d/talk</filename
> em alternativa, com as seguintes linhas: </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
>reiniciando então o <command
>xinetd</command
>. </para>

<para
>Por favor, comunique-me quaisquer modificações que tenha que fazer para colocar o &ktalkd; compilando ou funcionando na sua plataforma. </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
-->


