<?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 % 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
>José</firstname
><surname
>Pires</surname
><affiliation
><address
><email
>jncp@netcabo.pt</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 si 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 a si responder a eles, usando um cliente de <command
>talk</command
>. </para>

<important>
<para
>Tenha em atenção que o &ktalkd; está desenhado para correr numa estação de trabalho para um único utilizador, e não deve ser executado numa máquina multi-utilizador: dado que lê os ficheiros de configuração dos utilizadores, 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 em que não confie por completo. </para>
</important>

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

<para
>O &ktalkd; tem as seguintes funcionalidades :</para>

<variablelist>
<varlistentry>
<term
>Gravador de chamadas</term>
<listitem>
<para
>Se o chamado não estiver ligado, 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
>, uma janela do &kde;, para efectuar o anúncio. Se estiver a correr o &ktalk;, ser-lhe-á pedido para tratar ele próprio do anúncio (novo desde a versão 0.8.8). </para>
</listitem>
</varlistentry>
<varlistentry>
<term
>Anúncio em vários ecrãs</term>
<listitem>
<para
>Se você estiver ligado remotamente (&eg; com um comando <userinput
><command
>export</command
> <envar
>DISPLAY</envar
>=<replaceable
>...</replaceable
></userinput
>), o anúncio do X será feito também nesse ecrã. Responda no ecrã que desejar! Se você também estiver ligado num terminal de texto, e se <emphasis
>não</emphasis
> estiver a usar 'xterm's (restrição interna), então também verá um anúncio em texto, no caso de você estar a usar o terminal de texto na altura 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 utilizador e mesmo para outra máquina se estiver ausente. Existem 3 métodos diferentes de reencaminhamento. Veja a secçã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 ficheiros de configuração do &kde; - o ficheiro da máquina (<filename
>$<envar
>KDEDIR</envar
>/share/config/ktalkdrc</filename
>) e o do utilizador, na sua pasta pessoal. O ficheiro da máquina tem de ser editado manualmente pelo administrador, mas existe agora uma janela de configuração para o do utilizador. Chama-se <command
>kcmktalkd</command
> e poderá ser encontrada 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 na sua língua, desde que a 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 à janela de configuração, o <command
>kcmktalkd</command
>. </para>
</listitem>
</varlistentry>

<varlistentry>
<term
>O 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 caso do reencaminhamento. 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;utilizador</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 si próprio, 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-se-á encontrar 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 janela de anúncio é trivial: <guibutton
>responder</guibutton
> ou <guibutton
>ignorar</guibutton
>. </para>

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

<sect1 id="choosing-a-forwarding-method">
<title
>Escolher 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
>Ligação directa. Não é recomendado. </para>
<itemizedlist>
<listitem>
<para
>(+) Você fica a saber que é 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
>Ligação directa. </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 utilizador (por isso você poderá ver algo do género <computeroutput
>conversa de Wintalk@minha&lowbar;maquina</computeroutput
>) </para>
</listitem>
</itemizedlist>
</listitem>
</varlistentry>

<varlistentry>
<term
><acronym
>FWT</acronym
> - Reencaminha todos os pedidos e efectua a conversação.</term>
<listitem>
<para
>Sem ligação directa.</para>

<itemizedlist>
<listitem>
<para
>(+) O mesmo que o anterior, mas também funciona se você e o chamador não estiverem em contacto directo um com o outro (&eg; através de uma 'firewall'). </para>
</listitem>
<listitem>
<para
>(+) Você irá saber quem realmente está a falar 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 aceder 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 é que 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 utilizador actual. Você poderá ultrapassar esta limitação se adicionar duas linhas aos ficheiros 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 omissão. </para>
</note>

<para
>Esses ficheiros 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 seguinte assume que eles estão na <filename class="directory"
>/etc/X11/xdm</filename
>, por isso você poderá querer passá-los para outra pasta.</para>

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

<procedure>
<step>
<para
>Edite o ficheiro <filename
>Xstartup</filename
> ou crie-o (na pasta de configuração do <command
>xdm</command
>), de modo a que se veja: </para
> 
<screen
>#!/bin/sh
/etc/X11/xdm/GiveConsole
sessreg -a -l $DISPLAY -x /etc/X11/xdm/Xservers $USER</screen>
</step>
<step>
<para
>e o ficheiro <filename
>Xreset</filename
>, de modo a que se veja: </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 ficheiros: </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
>) registe o utilizador no 'utmp', o que é a acção correcta a fazer. Não depende do &konsole;, nem do <command
>xterm</command
>, registar qual o utilizador, mas sim do <command
>xdm</command
> e do &kdm;, na opinião do autor. Contudo, isto não irá registar o utilizador como sendo um utilizador do X ao usar o <command
>startx</command
>... Alguma sugestão para isto ? </para>
</answer>
</qandaentry>

<qandaentry>
<question>
<para
>Porque é que eu, como utilizador normal, recebo anúncios do &kde;? </para>
</question>

<answer>
<para
>Se você estiver a correr um sistema &Linux; (com o <filename class="directory"
>/proc</filename
> activo), 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 a correr o 'kernel' &Linux; 2.0.35, este é um erro conhecido no 'kernel', o qual não deixará ao utilizador <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 corrido o &kdm; ou o <command
>xdm</command
> para se ligarem ao X. Ou então faça a actualização! </para>

<para
>Caso contrário, isto é normal. O &ktalkd; não consegue encontrar o utilizador, dado que o &kde; não o regista no 'utmp' e que a detecção do &Linux; pelo <filename class="directory"
>/proc</filename
> está desactivada. A solução é a mesma que para a questão anterior, desde que tenha corrido o <acronym
>kdm</acronym
> ou o <acronym
>xdm</acronym
> para se ligarem 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 é que posso fazer depuração do &ktalkd;? </para>
</question>

<answer>
<para
>Atendendo a que é um servidor, não existe nenhuma informação de depuração no 'standard output'. Para obter o resultado da depuração (por exemplo, antes de me relatar um erro!), actualize 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
>Tenha em atenção 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 o fazer 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
>'Copyright' e Licenças</title>

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

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

<para
>Tradução de José Nuno Pires <email
>jncp@netcabo.pt</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 uma aplicação de base do projecto 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 'site' &FTP; principal do projecto do &kde; em <ulink url="ftp://ftp.kde.org/pub/kde"
>ftp://ftp.kde.org/pub/kde</ulink
> ou das suas réplicas. Normalmente encontra-se 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, escreva o seguinte na pasta de 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
>Dado que o &ktalkd; é um servidor, 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 actualizar 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 respeitantes 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. Actualize o seu ficheiro <filename
>inetd.conf</filename
>, bastando para tal correr</para>

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

<para
>De qualquer forma, você terá de <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 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 de fazer para pôr o &ktalkd; a compilar ou a funcionar 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
-->


