# O Manual do &ktalkd;

David Faure

    faure@kde.org

Marcus Gama

    marcus_gama@uol.com.br

Tradução
&FDLNotice;
2001 David Faure
2001-05-02
1.05.02

O &ktalkd; é um servidor de `talk` melhorado - um programa para tratar dos pedidos de `talk` recebidos, anunciá-los e permitir a você responder a eles, usando um cliente de `talk`.

KTALKD Talk talkd otalk ntalk ktalkdlg kcmktalkd

## Introdução

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

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 `talk` 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.

Neste documento, se alguém quiser falar com você, você é designado como sendo o chamado.

O &ktalkd; tem os seguintes recursos:

Atendedor de chamadas

  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.

Som

  Se desejado, poderá ser tocado um som com o anúncio.

Anúncio X

  Se for compilado com o &kde; instalado, o &ktalkd; irá usar o `ktalkdlg`, 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)

Anúncio em várias telas

  Se você estiver logado remotamente (⪚ com um comando ``export` `DISPLAY`=...`), 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 não 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.

Reencaminhamento (Novo desde a versão 0.8.0)

  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 Utilização.

Configuração

  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 (`$`KDEDIR`/share/config/ktalkdrc`) 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 `kcmktalkd` e poderá ser encontrado no &kcontrol; depois de instalar o &ktalkd;. Nos sistemas não-&kde;, o &ktalkd; irá ler o `/etc/talkd.conf`.

Internacionalização

  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 `ktalkdlg` para a sua língua. O mesmo se aplica ao diálogo de configuração, o `kcmktalkd`.

Suporte para o `otalk` e para o `ntalk` (Novo desde a versão 0.8.1)

  O &ktalkd; suporta agora ambos os protocolos, mesmo para o reencaminhamneto. O &ktalk; suporta também ambos os protocolos.

Espero que você goste deste servidor de conversação,

David Faure faure@kde.org

## Utilização

Para usar o &ktalkd;, você precisa de um cliente do `talk`. A versão de texto do `talk` existe na maioria dos sistemas &UNIX;. Tente o comando ``talk` o_seu_usuário` para ver o que acontece quando receber um pedido do `talk`.

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

Existe um cliente de `talk` 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 ftp://ftp.kde.org/pub/kde/stable/latest/apps/network

A caixa de diálogo do anúncio é trivial: responder ou ignorar.

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).

### Escolhendo um Método de Reencaminhamento

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

FWA - Só reencaminha o anúncio.

  Conexão direta. Não é recomendado.

  - (+) Você fica sabendo quem é o chamador, mas

  - (-) O chamador terá de responder a um anúncio seu. Aborrecido.

  - (-) Não o use se tiver um atendedor de chamadas na sua localização ausente. (O atendedor de chamadas não poderá mostrar um anúncio, o que se tornaria confuso!)

FWR - Encaminha todos os pedidos, mudando a informação se necessário

  Conexão direta.

  - (+) O chamador não irá saber que você está ausente, mas

  - (-) Você não irá saber mesmo quem é o chamador - só o seu usuário (por isso você poderá ver algo do gênero `chamada de Wintalk@minha_maquina`)

FWT - Reencaminha todos os pedidos e efetua a conversação.

  Sem conexão direta.

  - (+) O mesmo que o anterior, mas também funciona se você e o chamador não estiverem em contato direto um com o outro (⪚ através de uma firewall).

  - (+) Você irá saber quem realmente está falando com você consigo quando aceitar a conversação

  - (-) Mas, como acontece no FWR, você não irá saber o nome da máquina dele no anúncio

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

## Perguntas e Respostas

Porque o root não recebe os anúncios do &kde;?

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 `xdm` (que são os mesmos que os do &kdm;).

A distribuição de &Linux; da S.u.S.E inclui estas linhas por padrão.

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

Aqui está o que terá que fazer:

- Edite o arquivo `Xstartup` ou crie-o (na pasta de configuração do `xdm`), de modo que se leia:

      #!/bin/sh
      /etc/X11/xdm/GiveConsole
      sessreg -a -l $DISPLAY -x /etc/X11/xdm/Xservers $USER

- e o arquivo `Xreset`, de modo que se leia:

      #!/bin/sh
      /etc/X11/xdm/TakeConsole
      sessreg -d -l $DISPLAY $USER

- Certifique-se que o `xdm-config` faz referência a esses dois arquivos:

      DisplayManager._0.startup:      /etc/X11/xdm/Xstartup
      DisplayManager._0.reset:        /etc/X11/xdm/Xreset

Isto fará com que o &kdm; (ou o `xdm`) registre o usuário no 'utmp', o que é a ação correcta a fazer. Não depende do &konsole;, nem do `xterm`, registrar qual o usuário, mas sim do `xdm` 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 `startx`... Alguma sugestão para isto ?

Porque eu, como usuário normal, recebo anúncios do &kde;?

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

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

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 `/proc` está desativada. A solução é a mesma que para a questão anterior, desde que tenha rodado o kdm ou o xdm para se logarem ao X. Outra solução será certificar-se que você tem sempre um xterm em execução.

Como posso fazer depuração do &ktalkd;?

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 `inetd.conf` que lançam o &ktalkd; e o &kotalkd; para passarem a ser:

    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

Observe a opção `-d`.

Depois edite o `/etc/syslog.conf` para adicionar as seguintes linhas:

    *.*         /var/log/all_messages

Para fazer isso funcionar, você terá de reiniciar o `inetd` e o `syslogd`:

    % killall -HUP inetd
    % killall -HUP syslogd

Finalmente, execute uma sessão do `talk` e veja o resultado em `/var/log/all_messages`

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 `./configure`. Obrigado.

## Direitos Autorais e Licenças

O &ktalkd; é mantido e melhorado pelo David Faure, faure@kde.org

O programa original foi escrito por Robert Cimrman, cimrman3@students.zcu.cz

Tradução de Marcus Gamamarcus_gama@uol.com.br

&underFDL; &underGPL;

## Instalação

### Como obter o &ktalkd;

O &ktalkd; é agora um aplicativo de base do projeto do &kde; http://www.kde.org, e faz parte do pacote 'kdenetwork'.

Você poderá obter sempre a última versão do &ktalkd; no sítio &FTP; principal do projeto do &kde; em ftp://ftp.kde.org/pub/kde ou dos seus espelhos. Normalmente se encontra em ftp://ftp.kde.org/pub/kde/stable/latest/apps/network

### Requisitos

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 ftp://ftp.kde.org/pub/kde/.

### Compilação e Instalação

Para poder compilar e instalar o &ktalkd; no seu sistema, digite o seguinte na pasta base da sua distribuição do &ktalkd;:

    % ./configure
    % make
    % make install

Uma vez que o &ktalkd; é um serviço, o ``make` `install`` irá necessitar de privilégios do root.

Não se esqueça de atualizar o `/etc/inetd.conf`. Por exemplo, num sistema &Linux;, se o &kde; estiver em `/opt/kde`, mude as linhas referentes ao `talk` e ao `ntalk` para:

    talk   dgram   udp     wait    root    /usr/sbin/tcpd  /opt/kde/bin/ktalkd
    ntalk  dgram   udp     wait    root    /usr/sbin/tcpd  /opt/kde/bin/ktalkd

É fornecido um programa para fazer as alterações necessárias automaticamente. Atualize o seu arquivo `inetd.conf`, bastando para isso rodar

    % ./post-install.sh

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

    % killall -HUP inetd

Nos sistemas mais recentes, que usam o `xinetd`, não existe mais o `/etc/inetd.conf`, e você deverá então editar ou criar o `/etc/xinetd.d/talk` em alternativa, com as seguintes linhas:

    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
    }

reiniciando então o `xinetd`.

Por favor, comunique-me quaisquer modificações que tenha que fazer para colocar o &ktalkd; compilando ou funcionando na sua plataforma.