# O Manual do &ktalkd;

David Faure

    faure@kde.org

José Pires

    jncp@netcabo.pt

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 si 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 a si responder a eles, usando um cliente de `talk`.

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

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

O &ktalkd; tem as seguintes funcionalidades :

Gravador de chamadas

  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.

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

Anúncio em vários ecrãs

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

Reencaminhamento (Novo desde a versão 0.8.0)

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

Configuração

  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 (`$`KDEDIR`/share/config/ktalkdrc`) 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 `kcmktalkd` e poderá ser encontrada 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 na sua língua, desde que a tenha configurado nos menus do &kde; e desde que alguém tenha traduzido o `ktalkdlg` para a sua língua. O mesmo se aplica à janela de configuração, o `kcmktalkd`.

O 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 caso do reencaminhamento. 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_utilizador` 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 si próprio, 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-se-á encontrar em ftp://ftp.kde.org/pub/kde/stable/latest/apps/network

A janela de anúncio é trivial: responder ou ignorar.

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

### Escolher um Método de Reencaminhamento

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

FWA - Só reencaminha o anúncio.

  Ligação directa. Não é recomendado.

  - (+) Você fica a saber que é 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

  Ligação directa.

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

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

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

  Sem ligação directa.

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

  - (+) Você irá saber quem realmente está a falar 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 aceder a ambas as redes), caso contrário use o FWR.

## Perguntas e Respostas

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

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

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

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

Aqui está o que terá de fazer:

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

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

- e o ficheiro `Xreset`, de modo a que se veja:

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

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

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

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

Porque é que eu, como utilizador normal, recebo anúncios do &kde;?

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

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

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

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

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

Tenha em atenção a opção `-d`.

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

    *.*         /var/log/all_messages

Para o fazer 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.

## 'Copyright' e Licenças

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

O programa original foi feito pelo Robert Cimrman, cimrman3@students.zcu.cz

Tradução de José Nuno Pires jncp@netcabo.pt

&underFDL; &underGPL;

## Instalação

### Como obter o &ktalkd;

O &ktalkd; é agora uma aplicação de base do projecto do &kde; http://www.kde.org, e faz parte do pacote 'kdenetwork'.

Você poderá obter sempre a última versão do &ktalkd; no 'site' &FTP; principal do projecto do &kde; em ftp://ftp.kde.org/pub/kde ou das suas réplicas. Normalmente encontra-se 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, escreva o seguinte na pasta de base da sua distribuição do &ktalkd;:

    % ./configure
    % make
    % make install

Dado que o &ktalkd; é um servidor, o ``make` `install`` irá necessitar de privilégios do root.

Não se esqueça de actualizar o `/etc/inetd.conf`. Por exemplo, num sistema &Linux;, se o &kde; estiver em `/opt/kde`, mude as linhas respeitantes 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. Actualize o seu ficheiro `inetd.conf`, bastando para tal correr

    % ./post-install.sh

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