# El manual de &ktalkd;

David Faure

    faure@kde.org

    mcc3@alu.um.es

&FDLNotice;
2001 David Faure
2001-05-02
1.05.02

&ktalkd; es un demonio `talk` mejorado - un progama para manejar peticiones `talk` entrantes, anunciarlas y permitirle responderlas usando un cliente talk.

KTALKD talk talkd otalk ntalk ktalkdlg kcmktalkd

## Introducción

&ktalkd; es un demonio `talk` mejorado - un progama para manejar peticiones `talk` entrantes, anunciarlas y permitirle responderlas usando un cliente talk.

Note que &ktalkd; esta diseñado para ser ejecutado en un sistema de trabajo de un solo usuario, y no debería ser ejecutado en un sistema multi-usuario. Ya que lee los archivos de configuración de los usuarios, estos pueden conseguir que el demonio `talk` ejecute cualquier orden, lo cual es particularmente peligroso. No use &ktalkd; si ha creado cuentas en su sistema de gente en las que no confía completamente.

En este documento, si alguien quiere hablarle, usted es designado como el «llamado».

&ktalkd; tiene las siguientes características:

Contestador automático

  Si el llamado no esta en el sistema, o no responde despues del segundo anuncio, un contestador automatico es ejecutado, recoge el mensaje, y lo envía por correo-e al llamado.

Sonido

  Si lo desea, se reproduce un sonido con el anuncio.

Anuncio X

  Si se compila con &kde; instalado, &ktalkd; usara `ktalkdlg`, un dialogo &kde;, para anunciarse. Si &ktalk; se esta ejecutando, se le informara para que haga el anuncio el mismo (nuevo desde 0.8.8).

Anuncio en múltiples pantallas

  Si esta en el sistema de manera remota (⪚ con una orden ``export` `DISPLAY`=...` ), el anuncio X se hará en esta pantalla también. Responda en la que usted quiera. Si esta también en una terminal de texto, y no esta usando xterm (restricción interna), entonces también vera un anuncio de texto también, en el caso de que este usando la terminal de texto en el momento del anuncio.

Reenvío (nuevo desde 0.8.0)

  Puede configurar un reenvío a otro usuario aun en otra sistema si esta ausente. Hay tres métodos de reenvío. Vea la sección Uso.

Configuración

  Si &ktalkd; se compila para &kde;, lee la configuración de los archivos de &kde;, el lugar global (`$`KDEDIR`/share/config/ktalkdrc`) y el de usuario, en su carpeta personal. El global debe ser editado manualmente por el administrador, pero hay un dialogo de configuración para el usuario. Se llama `kcmktalkd` y se puede encontrar en &kcontrol; despues de instalar &ktalkd;. En sistemas no-&kde;, &ktalkd; leerá `/etc/talkd.conf`.

Internacionalización

  Bajo &kde; los anuncios serán en su lenguaje si lo ha especificado en &kde; y que alguien halla traducido `ktalkdlg`. Lo mismo se aplica al dialogo de configuración, `kcmktalkd`.

Soporte de `otalk` y `ntalk` (nuevo desde 0.8.1)

  &ktalkd; ahora entiende ambos protocolos, aun cuando reenvía.

Espero que disfrute este demonio talk,

David Faure faure@kde.org

## Uso

Para usar &ktalkd; necesita un cliente `talk`. El`talk` en modo texto está disponible en la mayoría de sistemas &UNIX;. Intente``talk` su_nombre` para ver quepasa cuando recibe una petición `talk`.

También puede probar el contestador automático de la misma manera: inicie `talk` a usted mismo, ignore el anuncio dos veces, y verá el contestador automatico.

Aquí hay un cliente `talk` con una interfaz gráfica para &kde;, &ktalk;. No se distribuye aún con los paquetes de &kde;, pero puede encontrarlo en ftp://ftp.kde.org. Debería estar en ftp://ftp.kde.org/pub/kde/stable/latest/apps/network

El dialogo de anuncio es trivial: responder o ignorar.

El dialogo de configuración debería ser fácil, excepto para configurar reenvío a otro usuario (o a otro sistema).

### Eligiendo un método de reenvío

Nada es perfecto, todos tienen pros (+) y contras (-).

FWA - Solo reenviar anuncio.

  Conexión directa. No recomendada.

  - (+) Sabe quien es el llamado, pero

  - (-) El llamador tendar que responder a un anuncio de usted. Molesto.

  - (-) No lo use si tiene un contestador automatico en el lugar en el que esta «ausente». (El sistema del contestador no puede mostrar una ventana emergente, puede ser confuso!)

FWR - Reenviar todas las peticiones, cambia la información cuando sea necesario

  Conexión directa.

  - (+) El llamador no sabrá que esta ausente, pero

  - (-) No sabrá quien le llama realmente - solo su nombre de usuario, solo vería `charla de Wintalk@my_host`

FWT - Reenviar todas las peticiones y coger la llamada.

  No hay conexión directa.

  - (+) Lo mismo de arriba, pero también funciona si el llamador no puede estar en contacto directo el uno con el otro (⪚ cortafuegos).

  - (+) Se le dirá con quien esta realmente hablando cuando acepte la charla

  - (-) Pero como en FWR, usted no sabrá su nombre de sistema en el anuncio

Hablando rápido, use FWT si quiere usarlo detrás de un cortafuegos (y si &ktalkd; puede acceder a ambas redes), y FWR en otro caso.

## Preguntas y respuestas

¿Porque root no recibe anuncios en &kde;?

Porque seria un fallo de seguridad, con la detección de usuarios actual. Puede rodear la limitación añadiendo dos lineas en los archivos de configuración de `xdm` (que son los mismos de &kdm;).

La distribución &Linux; S.u.S.E incluye estas lineas de manera predeterminada.

Estos archivos de configuración están normalmente en una carpeta como `/etc/X11/xdm`, o `/usr/X11R6/lib/X11/xdm`. Lo siguiente supone que están en `/etc/X11/xdm`, asi que tendrá que cambiar uno a otro si lo necesita.

Aquí está lo que tiene que hacer:

- Edite el archivo `Xstartup`, o creelo, (en la carpeta de configuraciones de `xdm`) para que contenga:

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

- Y el archivo `Xreset` para que contenga:

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

- Asegúrese que que `xdm-config` referencia a estos dos archivos:

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

Esto producirá que &kdm; (o `xdm`) registre el usuario en utmp, que es lo correcto. No es trabajo de &konsole;, ni de`xterm`, registrar al usuario, sino de `xdm`y &kdm;, en mi opinión. Sin embargo esto no registrara el usuario como usuario de X cuando se usa `startx`... ¿Alguna idea sobre eso?

¿Porque yo, como usuario normal, no recibo anuncios en &kde;?

Si esta ejecutando un sistema &Linux; (con `/proc` montado) este comportamiento es un fallo. Por favor envíeme una descripción para que pueda corregirlo.

Si esta ejecutando &Linux; 2.0.35, esto es un fallo conocido en el núcleo, que no permite al usuario root leer `/proc`. La solución es la misma que la pregunta anterior, dado que ejecuta &kdm; o `xdm` para ingresar en X. ¡O actualice!

De otra manera, esto es normal. &ktalkd; no puede encontrar el usuario, ya que &kde; no le registro en utmp y la detección &Linux; (basada en `/proc`) esta deshabilitada. La solución es la misma que la pregunta anterior, dado que ejecuta &kdm; o `xdm` para ingresar en X. Otra solución es asegurarse que siempre tiene un xterm ejecutándose.

¿Como consigo información de depurado de &ktalkd;?

Como es un demonio, no hay salida de depurado en la salida estándar. Para conseguir información de depurado (por ejemplo antes de enviarme un informe de fallo), modifique las lineas en `inetd.conf` que ejecuta &ktalkd; y &kotalkd; a:

    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

Note la opción `-d`.

Entonces modifique `/etc/syslog.conf` y añada la linea siguiente:

    *.*         /var/log/all_messages

Para hacer que funcione, tiene que reiniciar `inetd` y `syslogd`:

    % killall -HUP inetd
    % killall -HUP syslogd

Finalmente, ejecute una sesión `talk` y vea el resultado en `/var/log/all_messages`

Cuando envíe un informe de fallo, nunca olvide incluir información de depurado, pero tampoco la versión de &ktalkd; y la salida de `./configure` . Gracias.

## Créditos y licencias

&ktalkd; es mantenido y mejorado por David Faure, faure@kde.org

El programa original fue escrito por Robert Cimrman, cimrman3@students.zcu.cz

Matías Costamcc3@alu.um.es

&underFDL; &underGPL;

## Instalación

### Como obtener &ktalkd;

&ktalkd; es ahora una aplicación base del proyecto &kde; http://www.kde.org, parte del paquete kdenetwork.

Siempre puede descargar el último &ktalkd; del servidor &FTP; principal del proyecto &kde; ftp://ftp.kde.org/pub/kde y sus replicas. Normalmente podrá encontrarlo en ftp://ftp.kde.org/pub/kde/stable/latest/apps/network

### Requerimientos

Para compilar con éxito &ktalkd; necesita las últimas versiones de las librerías &kde;, así como la librería C++ &Qt;. Puede encontrar todas las librerías requeridas, y &ktalkd; mismo, en ftp://ftp.kde.org/pub/kde/.

### Compilación y instalación

Para compilar y instalar &ktalkd; en su sistema, escriba lo siguiente en la carpeta base de su distribución de &ktalkd;:

    % ./configure
    % make
    % make install

Como &ktalkd; es un demonio, ``make` `install`` requiere privilegios de root.

No olvide actualizar `/etc/inetd.conf`. Por ejemplo, en un sistema &Linux;, si &kde; esta en `/opt/kde`, cambie la lineas sobre `talk` y `ntalk` a:

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

Se facilita un guión para realizar los cambios necesarios automáticamente. Actualice su archivo `inetd.conf` simplemente ejecutando

    % ./post-install.sh

De cualquier manera, tendrá que reiniciar inetd despues de esto. En la mayoría de sistemas &Linux; haga:

    % killall -HUP inetd

En sistemas más nuevos, que usan `xinetd`, no existe `/etc/inetd.conf`, y debería editar o crear `/etc/xinetd.d/talk` en su lugar, con estas lineas:

    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
    }

entonces reinicie `xinetd`.

Por favor infórmeme de cualquier modificación que halla tenido que realizar para conseguir que &ktalkd; se compile o funcione en su plataforma.