16.2. Ficheros de configuración de UUCP

Al contrario que programas de transferencia de ficheros más simples, UUCP fue diseñado para ser capaz de llevar a cabo todas las tranferencias automáticamente. Una vez que está correctamente configurado, no es necesaria una constante participación del administrador. La información necesaria para esto se guarda en un par de ficheros de configuración que residen en el directorio /usr/lib/uucp. La mayoría de estos ficheros se usan sólo para conectarse a otro ordenador.

16.2.1. Una ligera introducción a Taylor UUCP

Decir que la configuración de UUCP es difícil sería una descripción insuficiente. Es cierto que es un asunto peliagudo, y el formato a veces demasiado conciso de los ficheros de configuración no hace las cosas más fáciles (aunque el formato de Taylor es casi fácil de leer comparado con los formatos más antiguos en HDB o Versión 2).

Para darle una idea de cómo se interactúa con estos ficheros, le introduciremos los más importantes, y echaremos un vistazo a algunos ejemplos. No explicaremos ahora todo en detalle; una explicación más precisa se describe en secciones posteriores. Si quiere configurar su ordenador para UUCP, puede comenzar con los ficheros de ejemplo, y adaptarlos gradualmente. Puede elegir los que se muestran a continuación, o los que se incluyen en su distribución de Linux preferida.

Todos los ficheros descritos en esta sección se guardan en /etc/uucp o en un subdirectorio de éste. Algunas distribuciones de Linux contienen binarios de UUCP con soporte tanto para la configuración HDB como Taylor activado, y emplean diferentes subdirectorios para cada grupo de ficheros de configuración. Seguramente habrá un fichero README en /usr/lib/uucp.

Para que UUCP funcione correctamente, estos ficheros tienen que pertenecer al usuario uucp. Algunos de ellos tienen claves y números de teléfono, y por lo tanto deberían tener permisos de 600. Aunque la mayoría de los comandos de UUCP tienen que tener el setuid a uucp, tiene que asegurarse de que el programa uuchk no lo es. Si no, los usuarios serían capaces de ver las claves aunque tengan modo 600.

El principal fichero de configuración de UUCP es /etc/uucp/config, que se usa para establecer las variables generales. La más importante (y por ahora la única) es el nombre UUCP de su máquina. En la Cervera Virtual, usan vstout como su pasarela UUCP:

    # /etc/uucp/config - principal fichero de configuración de UUCP
    nodename         vstout

El siguiente fichero de configuración en importancia es el fichero sys. Éste contiene toda la información específica al sistema de los ordenadores con los que usted se conecta. Esto incluye el nombre del ordenador, e información sobre la propia conexión, tal como el número de teléfono cuando se usa una conexión por módem. Un ejemplo típico para un ordenador llamado pablo que se conecta por módem sería:

    # /usr/lib/uucp/sys - vecinos UUCP
    # system: pablo
    system          pablo
    time            Any
    phone           123--456
    port            serial1
    speed           38400
    chat            ogin: vstout ssword: lorca

time especifica las horas a las que puede llamarse al sistema remoto. chat describe la macro del diálogo de entrada —la secuencia de caracteres que deben intercambiarse para permitir que uucico entre en pablo. Volveremos a las macros más tarde. El elemento port simplemente nombra una entrada en el fichero port. (Acuda a Figura 16-1.) Puede asignar cualquier nombre siempre que haga referencia a una entrada válida en port.

El fichero port contiene información específica a la propia conexión. Para conexiones por módem, describe el fichero de dispositivo a usar, el conjunto de velocidades soportadas, y el tipo de equipo de marcación conectado al puerto. La entrada a continuación describe /dev/ttyS1 (o sea, el puerto COM 2), en el cual hay un módem NakWell conectado que es capaz de funcionar a velocidades de hasta 38400 bps. El nombre de la entrada se puede elegir para que coincida con el nombre usado en el fichero sys.

    # /etc/uucp/port - puertos de UUCP
    # /dev/ttyS1 (COM2)
    port            serial1
    type            modem
    device          /dev/ttyS1
    speed           38400
    dialer          nakwell

La información que afecta al propio marcador se mantiene en otro fichero, llamado —lo adivinaste—dial. Para cada tipo de marcador, contiene básicamente la secuencia de instrucciones necesarias para llamar a otro ordenador, dado el número de teléfono. Una vez más, esto se especifica como una macro de diálogo. Por ejemplo, la entrada para el anterior NakWell puede parecerse a esta:

    # /etc/uucp/dial - información por marcador
    # módems NakWell
    dialer          nakwell
    chat            "" AT&F OK ATDT\T CONNECT

La línea que empieza con chat especifica el diálogo del módem, que no es sino la secuencia de órdenes enviadas y recibidas del módem para inicializarlo, y para hacerle marcar el número deseado. La secuencia \T será reemplazada con el número de teléfono por el programa uucico.

Para darle una idea a grandes rasgos de cómo utiliza uucico estos ficheros de configuración, suponga que utiliza la orden:
    $ uucico -s pablo

Lo primero que hace uucico es buscar pablo en el fichero sys. A partir de la entrada en el fichero sys para pablo, el programa averigua que debería usar el puerto serial1 para establecer la conexión. El fichero port le dice a uucico que se trata de un puerto de módem al que hay conectado un módem NakWell.

uucico busca ahora en dial la entrada en la que se describe el módem NakWell, y al encontrarla, abre el puerto serie /dev/ttyS1 y ejecuta el diálogo de marcación. Es decir, envía AT&F, espera la respuesta OK, etc. Cuando encuentra la cadena \T, la sustituye por el número (123--456) extraído del fichero sys.

Cuando el módem devuelve CONNECT, la conexión se ha establecido y el diálogo de marcación se ha completado. uucico vuelve ahora al fichero sys y ejecuta el diálogo de entrada. En nuestro ejemplo, esperaría al login:, enviaría entonces su nombre de usuario (vstout), esperaría a que se le solicitase el password: y enviaría la contraseña (lorca).

Tras completar la autorización, se supone que el sistema remoto ejecuta su propio uucico. Entran los dos entonces en la fase de negociación descrita en la sección previa.

Figura 16-1 ilustra las dependencias entre los ficheros de configuración.

16.2.2. Lo que UUCP necesita saber

Antes de empezar a escribir los ficheros de configuración, debe conseguir cierta información que UUCP necesita.

Primero, tiene que averiguar a qué puerto serie está conectado su módem. Normalmente, los puertos (DOS) COM1: a COM4: se corresponden con los ficheros especiales de los dispositivos /dev/ttyS0 a /dev/ttyS3. Algunas distribuciones, como Slackware, crean un enlace llamado /dev/modem apuntando al fichero del dispositivo ttyS* apropiado, y configuran kermit, seyon y cualquier otro programa de comunicaciones para usar este fichero genérico. En ese caso, debería usar /dev/modem en la configuración de UUCP también.

La razón para esto es que todos los programas, para llamar por teléfono, usan unos ficheros de bloqueo para indicar cuándo un puerto serie está en uso. Los nombres de estos ficheros cerrojo son una concatenación del texto LCK.. y el nombre del fichero de dispositivo, por ejemplo, LCK..ttyS1. Si los programas usasen nombres diferentes para un mismo dispositivo, no podrían reconocer los ficheros cerrojo de los otros programas. En consecuencia, perturbarían la sesión de conexión de cada uno si se ejecutan a la vez. Esto no es raro que ocurra cuando organiza sus llamadas de UUCP usando una entrada en el fichero crontab. Para más detalles sobre la configuración de puertos serie, acuda a Capítulo 4.

A continuación tiene que averiguar a qué velocidad se comunicarán su módem y GNU/Linux. Tendrá que ajustar este valor a la velocidad de transferencia efectiva máxima que espere obtener. La velocidad efectiva puede ser mucho mayor que la velocidad física de tranferencia de su módem. Por ejemplo, muchos modems envían y reciben datos a 56 kbps. Usando protocolos de compresión como V.42bis, la velocidad real de transferencia puede alcanzar los 100 kbps.

Por supuesto, si quiere que UUCP sirva de algo, necesitará el número de teléfono al que llamar. También necesitará un nombre de usuario válido y probablemente una clave en el sistema remoto.[1]

También necesitará saber exactamente cómo entrar en el sistema. Por ejemplo, ¿tiene que pulsar la tecla Enter antes de que aparezca la pregunta de nombre de usuario?. ¿Muestra el sistema remoto un login: o user?. Esto es necesario para escribir la macro de diálogo, que es un guión que le dice a uucico cómo entrar. Si no lo sabe, o si la macro de diálogo normal no funciona, intente llamar al sistema con un programa como kermit o minicom, y apunte exactamente lo que tiene que hacer.

16.2.3. Nomenclatura de nodos

Al igual que en redes basadas en TCP/IP, todas las máquinas necesitan tener un nombre para la red de UUCP. Mientras sólo quiera usar UUCP para transferencia de ficheros desde y hacia ordenadores que usted llama directamente, o en una red local, el nombre no tiene que ajustarse a ninguna regla.[2]

De todas formas, si usa UUCP para una conexión de correo o noticias, debería pensar en registrar el nombre en el Proyecto de Mapeado UUCP. [3] El Proyecto de Mapeado UUCP se describe en Capítulo 17. Incluso aunque forme parte de un dominio, debería considerar tener un nombre UUCP oficial para su sitio.

Con frecuencia la gente elige su nombre UUCP de forma que coincida con el primer elemento de su nombre de dominio completamente cualificado. Suponga que la dirección de su dominio es swim.twobirds.com; entonces el nombre de su nodo UUCP sería swim. Piense en los nodos UUCP como si sólo se conociesen entre ellos por sus respectivos nombres propios. Por supuesto, también puede usar un nombre UUCP que no tenga nada que ver con su nombre de dominio completamente cualificado.

No obstante, asegúrese de no emplear un nombre de sitio no cualificado en direcciones de correo a menos que lo haya registrado como su nombre UUCP oficial. En el mejor de los casos, el correo a una máquina UUCP no registrada se perderá en algún enorme agujero negro digital. Si emplea un nombre que alguien ya esté usando, el correo se dirigirá a ese lugar causando al administrador del correo de ese lugar un sinfín de dolores de cabeza.

De manera predeterminada, UUCP usa el nombre especificado como hostname como el nombre UUCP del sitio. Este nombre suele adjudicarlo una orden en los guiones rc durante el arranque del sistema, y se suele guardar en /etc/hostname. Si su nombre UUCP difiere del de su máquina, tendrá que usar la opción hostname en el fichero config para comunicarle a uucico su nombre UUCP. Esto se describe más tarde.

16.2.4. Ficheros de configuración de Taylor

Volvemos ahora a los ficheros de configuración. Taylor UUCP obtiene su información de los siguientes ficheros:

Los ficheros de configuración de Taylor se componen generalmente de líneas que contienen pares clave-valor. Una almohadilla inicia un comentario que se extiende hasta el final de la línea. Para emplear el signo de la almohadilla como tal, escápelo con una barra invertida de esta manera: \#.

Hay unas cuantas opciones que puede ajustar con estos ficheros de configuración. No podemos repasar todos los parámetros, sino que cubriremos sólo los más importantes. Con éstos usted podrá configurar una conexión de UUCP por módem. Otras secciones describirán las modificaciones necesarias si quiere usar UUCP en TCP/IP o sobre una línea serie. Junto con el código fuente de Taylor UUCP se incluye una referencia de órdenes completa en los documentos Texinfo.

Cuando crea haber configurado su sistema UUCP completamente, puede compobar su configuración con la herramienta uuchk (que puede encontrar en /usr/lib/uucp). uuchk lee sus ficheros de configuración y le muestra un informe detallado de los valores de configuración usados para cada sistema.

16.2.5. Opciones generales de configuración usando el fichero config

Normalmente no usará este fichero para otra cosa que especificar el nombre de su nodo UUCP. De manera predeterminada, UUCP usará el nombre que haya establecido con la orden hostname, pero por lo general resulta una buena idea especificar el nombre UUCP explícitamente. He aquí un fichero config de ejemplo:
    # /usr/lib/uucp/config - principal fichero de configuración UUCP
    hostname        vstout

Por supuesto, también existen otros parámetros configurables aquí, como los referentes al nombre del directorio de colas, o los nombres de acceso para el UUCP anónimo. Esto último se describirá posteriormente en este capítulo, en la sección “UUCP anónimo.”

16.2.6. Cómo informar a UUCP sobre otros sistemas mediante el fichero sys

En el fichero sys se describen los sistemas que conoce su máquina. La clave system nos presenta una nueva entrada; las líneas siguientes hasta la próxima directiva system detallan las variables específicas de cada sitio. Comúnmente, una entrada de sistema define variables como el número de teléfono y el diálogo de entrada.

Las variables anteriores a la primera línea system especifican valores predeterminados a usar en todos los sistemas. Normalmente, colocará en esta sección variables del protocolo y similares.

Los campos más importantes se tratan en detalle en las siguientes secciones.

16.2.6.1. Nombre del sistema

La orden system nombra el sistema remoto. Debe especificar el nombre correcto del sistema remoto, no un alias que se invente, porque uucico lo comparará con la identificación que reciba del sistema remoto una vez se conecte a él. [4]

Cada nombre de sistema puede aparecer una sola vez. Si quiere usar varias configuraciones para un mismo sistema (por ejemplo, números de teléfono diferentes que uucico puede usar alternativamente), puede especificar alternativas, que se describen más adelante.

16.2.6.2. Número de teléfono

Si va a conectarse con el sistema remoto por vía telefónica, en el campo phone se especifica el número que debería marcar el módem. Puede contener varios separadores que interpretará el procedimiento de marcado de uucico. Un signo de igual (=) significa esperar un tono de marcado secundario y un guión (-) genera una pausa de un segundo. Algunas instalaciones telefónicas pueden atrancarse si no se realizan pausas entre códigos de acceso especiales y los números de teléfono.[5]

A menudo resulta conveniente usar nombres en vez de números para describir los códigos de marcado según la zona. El fichero dialcode le permite asociar un nombre con un código que use al especificar números de teléfono para las máquinas remotas. Suponga que tiene el siguiente fichero dialcode:

    # /usr/lib/uucp/dialcode - traducción de los códigos de marcación
    Bogoham         024881
    Coxton          035119

Con estas traducciones, puede usar un número de teléfono tal que Bogoham7732 en el fichero sys, que lo hará probablemente algo más legible y mucho será mucho más fácil actualizar el código de marcación para Bogoham cada vez que cambie.

16.2.6.3. puerto y velocidad

Las opciones de puerto y velocidad se usan para elegir el dispositivo a usar para llamar al sistema remoto y la velocidad máxima a la que debería ajustarse el dispositivo.[6] En una entrada de system se puede usar una opción o varias de manera conjunta. Cuando se busca un dispositivo adecuado en el fichero port, sólo se eligen los dispositivos con un nombre de puerto y/o rango de velocidad que coincidan con los especificados.

Por lo general debería ser suficiente utilizar únicamente la opción speed. Si sólo dispone de un dispositivo serie definido en port, uucico siempre toma el adecuado por lo que sólo tiene que especificar la velocidad deseada. Si tiene varios módems conectados a sus sistemas, con frecuencia no querrá nombrar un puerto concreto, porque si uucico encuentra que muchos coinciden prueba con cada dispositivo hasta que encuentra uno que no se esté usando.

16.2.6.4. El diálogo de entrada

Antes ya nos encontramos con la macro del diálogo de entrada, que le dice a uucico cómo entrar en el sistema remoto. Consiste de una lista de palabras clave, que especifican el texto que se espera y el que se envía por el proceso local de uucico. El objetivo es hacer que uucico espere hasta que la máquina remota envíe una línea pidiendo el nombre de usuario, y entonces enviar el nombre de usuario, luego esperar a que pida la palabre clave, y enviar dicha clave. Los textos de espera y de envío se dan alternativamente. uucico automáticamente añade un avance de línea (\r) a cualquier texto enviado. Por lo tanto, una macro de diálogo sencilla sería parecida a esta:
     ogin: vstout ssword: catch22

Dése cuenta de que los campos de texto de espera probablemente no contendrán el texto completo. Esto es así para asegurarse de que el proceso de entrada se lleve a cabo aunque el sistema remoto nos envíe Login: en vez de login:. Si la cadena que está esperando o enviando contiene espacios u otros caracteres de espacios en blanco, debe usar comillas para delimitar el texto.

uucico también permite usar estructuras condicionales, por ejemplo en el caso de que el programa getty de la máquina remota necesite ser reinicializado antes de enviar una pregunta. Por esta razón, usted puede añadir un sub-diálogo a un texto de espera, separado con un guión. El sub-diálogo se ejecuta sólo si el primer texto de espera falla, ej. si expira un temporizador. Una manera de usar esta característica es enviar un BREAK si el sistema remoto no envía una pregunta de nombre de usuario. El siguiente ejemplo muestra un ejemplo de una macro de diálogo que debería funcionar también en el caso de que usted tenga que pulsar Enter antes de que aparezca la pregunta de entrada. El primer parámetro vacío, "", comunica a UUCP que no espere nada sino que continúe con la siguiente cadena de envío:
     "" \n\r\d\r\n\c ogin:-BREAK-ogin: vstout ssword: catch22

Hay un par de cadenas de caracteres especiales y caracteres de escape que pueden aparecer en la macro de diálogo. Esta es una lista incompleta de caracteres legales en la pregunta de espera:

En cadenas de caracteres de envío se pueden incluir, además de los mencionados anteriormente, los siguientes caracteres:

16.2.6.6. Restringir horas de llamada

Taylor UUCP proporciona varios métodos para restringir las horas a las que se pueden efectuar llamadas a un sistema remoto. Una razón para hacer esto sería por las limitaciones que el sistema remoto impone en sus servicios durante horas de oficina, o simplemente para evitar las horas más caras. Siempre se pueden desactivar las restricciones con la opción –S o –f en el programa uucico.

Por defecto, Taylor UUCP no permite conexiones a ninguna hora, así que usted tiene que especificar algún horario en el fichero sys. Si no le importan las restricciones, puede especificar la opción time con un valor de Any en su fichero sys.

La manera más sencilla de restringir los horarios de las llamadas es incluir una entrada time seguida de una cadena formada por los subcampos día y hora. Día puede ser una combinación de Mo, Tu, We, Th, Fr, Sa, y Su. También puede especificar Any, Never, o Wk para los días laborables. La hora está formada por dos valores de reloj de 24 horas separados por un guión. Especifican las horas durante las que pueden efectuarse llamadas. La combinación de estos elementos se escribe sin espacios en blanco entre ellos. Se pueden especificar varios pares día-hora separados por comas, tal y como se muestra en esta línea:
    time            MoWe0300-0730,Fr1805-2200

En este ejemplo se permiten llamadas en Lunes y Miércoles, de 3 de la mañana a 7:30, y los Viernes entre las 6:05 y las 8:00 de la tarde. Cuando un campo de hora incluye la medianoche, como Mo1830-0600, en realidad quiere decir el Lunes, entre medianoche y las 6 de la mañana, y entre las 6:30 de la tarde y medianoche.

Las palabras especiales Any y Never significan que se pueden hacer llamadas siempre o nunca, respectivamente.

Taylor UUCP también tiene algunos elementos especiales que puede usar en cadenas de tiempo como NonPeak y Night. Estos elementos especiales son abreviaturas de Any2300-0800,SaSu0800-1700 y Any1800-0700,SaSu respectivamente.

La orden time tiene una segunda variable opcional que describe el tiempo a esperar para reintentar en minutos. Cuando un intento de conexión falla, uucico no permitirá otro intento de llamar al ordenador remoto hasta que transcurra un cierto tiempo. De manera predeterminada, uucico usa un algoritmo de espera exponencial, según el cual el intervalo de espera se incrementa con cada intento fallido. Por ejemplo, si especifica un tiempo de reintento de 5 minutos, uucico no aceptará llamar otra vez en los 5 minutos después del ultimo intento fallido.

La orden timegrade le permite adjuntar un rango máximo de cola a un calendario. Por ejemplo, asuma que tiene las siguientes órdenes timegrade en una entrada system:
    timegrade           N Wk1900-0700,SaSu 
    timegrade           C Any

Esto permite que los trabajos con rango de cola de C o mayor (normalmente el correo se pone en la cola con rango B o C) sean transferidos siempre que se establece una comunicación, mientras que las noticias (normalmente con rango N) serán transferidas sólo durante la noche y los fines de semana.

Al igual que time, la orden timegrade toma un intervalo entre reintentos de minutos como una tercera variable opcional.

De todas formas, hay que hacer una observación sobre los rangos de la cola. Primero, la opción timegrade sólo se afecta a lo que sus sistemas envían; el sistema remoto puede transferir lo que quiera. Puede usar la opción call-timegrade para solicitarle de manera explícita que envíe solamente tareas por encima de un determinado rango de cola; pero no hay hay ninguna garantía de que vaya a obedecer a su petición.[7]

De manera similar, el campo timegrade no se comprueba cuando llama un sistema remoto, por lo que se le enviará cualquier tarea de la cola que sea para él. De todos modos, el sistema remoto puede solicitar explícitamente a su uucico que se ocupe únicamente de cierto rango de la cola.

16.2.7. Identificar dispositivos disponibles mediante el fichero port

El fichero port hace saber a uucico los puertos disponibles. Se trata normalmente de puertos de módem, pero también se soportan otros tipos como las líneas serie y los sockets de TCP.

Al igual que el fichero sys, port está formado por entradas separadas que comienzan con la palabra clave port seguida del nombre del puerto. Este nombre también puede usarse en la sentencia port del fichero sys. No es necesario que el nombre sea único; si hay muchos puertos con el mismo nombre, uucico probará con cada uno hasta que encuentre alguno que pueda usar.

La orden port debería estar seguida inmediatamente por la sentencia type, que indica qué tipo de puerto se describe. Tipos válidos son modem, direct para conexiones directas y tcp para sockets de TCP. De no existir la orden port se usará de manera predeterminada módem como tipo de puerto.

En esta sección sólo hablaremos de puertos de módem; los puertos TCP y las líneas directas se tratarán en una sección posterior.

Tanto para el módem como para los puertos directos, debe especificar el dispositivo para llamar por medio de la directiva device. Normalmente, se trata del nombre del fichero especial de dispositivo del directorio /dev, como /dev/ttyS1.

En el caso de un módem, la entrada del puerto también determina qué tipo de módem hay conectado al puerto. Los diferentes tipos de módem tienen que configurarse de manera diferente. Incluso los módems que dicen ser compatibles con Hayes no son siempre realmente compatibles unos con otros. Por lo tanto, tiene que comunicarle a uucico cómo inicializar el módem y hacerle marcar el número deseado. Taylor UUCP mantiene las descripciones de todos los marcadores en un fichero llamado dial. Para usar cualquiera de éstos, tiene que especificar el nombre del marcador mediante la orden dialer.

A veces querrá usar un módem de diferentes maneras dependiendo de a qué sistema llame. Por ejemplo, algunos módems antiguos no entienden cuando un módem rápido trata de conectar a 56 kbps; simplementen dejan caer la línea en vez de negociar una conexión a 9.600 bps, por ejemplo. Cuando sabe que el sitio pesado usa un módem tan tonto, tiene que configurar su módem de una manera diferente cuando le llame. Para esto, necesita una entrada de puerto adicional en el fichero port en la que especificar un marcador diferente. Ahora puede darle al nuevo puerto un nombre diferente, como serie1-lento y usar la directiva port en la entrada del sistema pesado en sys.

Otra manera de distinguir los puertos es por la velocidad que usan. Por ejemplo, las dos entradas de puerto de la situación anterior pueden ser así:
    # módem Nakwell; conectar a alta velocidad
    port            serie1         # port name
    type            modem           # modem port
    device          /dev/ttyS1      # this is COM2
    speed           115200          # supported speed
    dialer          nakwell         # normal dialer
    # módem Nakwell; conectar a baja velocidad
    port            serie1         # port name
    type            modem           # modem port
    device          /dev/ttyS1      # this is COM2
    speed           9600            # supported speed
    dialer          nakwell-slow    # don't attempt fast connect

La entrada de sistema para el sitio pesado daría ahora serie1 como el nombre del puerto, pero solicitaría usarlo sólo a 9.600 bps. uucico usa entonces automáticamente la segunda entrada de puerto. Al resto de sitios que tengan una entrada de 115.200 bps en la entrada del sistema se les llamará usando la primera entrada de puerto. De manera predeterminada, se usará la primera entrada con una velocidad que coincida.

16.2.8. Cómo marcar un número usando el fichero dial

En el fichero dial se describen las maneras de utilizar diferentes marcadores. Tradicionalmente, UUCP habla de marcadores y no tanto de módems, porque antaño era habitual disponer de un (caro) dispositivo de marcado automático que servía a un completo banco de módems. Hoy en día la mayoría de los módems llevan ya el soporte de marcación integrado, por lo que esta distinción ha tendido a desvanecerse.

No obstante, marcadores o módems diferentes pueden requerir una configuración diferente. Puede describir cada uno de ellos en el fichero dial. Las entradas de dial comienzan con la orden dialer que proporciona el nombre del marcador.

La entrada más importante aparte de dialer es el diálogo del módem, especificado por la orden chat. Similar al diálogo de entrada en el sistema, consta de una secuencia de cadenas que uucico envía al marcador y las respuestas que espera como respuesta. Suele usarse para reiniciar el módem a algún estado conocido y marcar el número. En la siguiente entrada de dialer de ejemplo se muestra un típico diálogo de módem para un módem compatible con Hayes:

    # módem NakWell; conectar a alta velocidad
    dialer          nakwell         # nombre del marcador
    chat            "" AT&F OK\r ATH1E0Q0 OK\r ATDT\T CONNECT
    chat-fail       BUSY
    chat-fail       ERROR
    chat-fail       NO\sCARRIER
    dtr-toggle      true

El diálogo comienza con "", la cadena vacía esperada. uucico envía entonces la primera orden AT&F. AT&F es la orden Hayes para reiniciar el módem a la configuración predeterminada de fábrica. uucico espera entonces hasta que el módem haya enviado OK y envía la siguiente orden, que desactiva el eco local y cosas así. Tras devolver el módem OK nuevamente, uucico envía la orden de marcado ATDT. La secuencia de escape \T de esta cadena se sustituye por el número de teléfono tomado de la entrada de sistema del fichero sys. uucico espera entonces a que el módem le devuelva la cadena CONNECT, que indica que se ha establecido con éxito la conexión con el módem remoto.

A veces el módem falla al conectar con el sistema remoto; por ejemplo, si el otro sistema está comunicándose con alguien más y la línea está ocupada. En este caso, el módem devuelve un mensaje de error indicando la razón. Los diálogos de módem son incapaces de detectar este tipo de mensajes; uucico sigue esperando la cadena esperada hasta que se agota el temporizador. El fichero de registro de UUCP sólo muestra entonces un “tiempo agotado en el guión de diálogo” en vez de la razón específica.

No obstante, Taylor UUCP le permite informar a uucico sobre estos mensajes de error usando la orden chat-fail como se ve en el ejemplo. Cuando uucico detecta una cadena de caracteres de error en el diálogo mientras lo ejecuta, interrumpe la llamada y anota el error en el fichero de registro de UUCP.

En la última orden del ejemplo anterior se comunica a UUCP que cambie la línea de control DTR (Terminal de Datos Preparado) antes de iniciar el diálogo del módem. Normalmente, el controlador serie levanta DTR cuando un proceso abre el dispositivo para decirle al módem conectado que alguien quiere hablar con él. La prestación dtr-toggle deja caer DTR, espera un momento, y lo levanta de nuevo. Muchos módems pueden configurarse para reaccionar ante una caída de DTR entrando en "off-hook", entrando en estado de órdenes o reiniciándose ellos mismos. [8]

16.2.9. UUCP sobre TCP

Por muy absurdo que suene en principio, el uso de UUCP para transferir datos sobre TCP no es una idea tan mala, especialmente cuando se transfieren grandes cantidades de datos como los grupos de noticias Usenet. En conexiones basadas en TCP, los grupos de noticias se transmiten generalmente usando el protocolo NNTP, según el cual los artículos se piden y se transmiten individualmente, sin compresión ni ninguna otra optimización. Aunque es una técnica adecuada para ordenadores grandes con varias fuentes de grupos de noticias simultáneas, esta técnica no es favorable para pequeños sistemas que reciben los grupos a través de una conexión lenta, como RDSI. Estos ordenadores normalmente desean combinar las cualidades de TCP con las ventajas de enviar artículos en grandes lotes, que se pueden comprimir y por lo tanto transferir con muy poco gasto. Un método estándar de enviar estos lotes es usando UUCP sobre TCP.

En sys, especificaríamos que se llamase a un sistema por TCP de esta manera:
    system          gmu
    address         news.groucho.edu
    time            Any
    port            tcp-conn
    chat            ogin: vstout word: clouseau

La orden address da la dirección IP de la máquina o su nombre de dominio completamente cualificado. La entrada port correspondiente sería tal que así:
    port            tcp-conn
    type            tcp
    service         540

En la entrada se afirma que debería usarse una conexión TCP cuando una entrada sys hiciese referencia a tcp-conn, y que uucico debería intentar conectarse al puerto 540 de la red TCP en la máquina remota. Éste es el número de puerto predeterminado del servicio UUCP. En vez del número de puerto, también puede proporcionar un nombre de puerto simbólico a la orden service. El número de puerto correspondiente a este nombre se buscará en /etc/services. El nombre común para el servicio UUCP es uucpd.

16.2.10. Usar una conexión directa

Supongamos que usa una línea directa para conectar su sistema vstout con tiny. Al igual que en el caso del módem tiene que escribir una entrada de sistema en el fichero sys. La orden port identifica el puerto serie en el que está conectado tiny:
    system          tiny
    time            Any
    port            direct1
    speed           38400
    chat            ogin: cathcart word: catch22

En el fichero port, tiene que describir el puerto serie para la conexión directa. Una entrada dialer no es necesaria porque no hay necesidad de marcar:
    port            direct1
    type            direct
    speed           38400
    device		    /dev/ttyS1

Notas

[1]

Si sólo quiere probar UUCP, obtenga el número de un sistema cercano a usted. Apunte el nombre de usuario y la clave— son públicos para permitir posibles transferencias anónimas. En la mayoría de los casos, son algo como uucp/uucp o nuucp/uucp.

[2]

La única limitación es que no puede ser más largo que siete caracteres, para no confundir a algunos nodos con sistemas de ficheros que imponen un estrecho límite en los nombres de ficheros.

[3]

El Proyecto de Mapeado UUCP registra los nombres de nodos UUCP en todo el mundo y asegurándose de que sean únicos.

[4]

Los UUCPs Versión 2 antiguos no hacen saber su nombre cuando se les llama; de todos modos, sí lo hacen las implementaciones más recientes, y así lo hace Taylor UUCP.

[5]

Por ejemplo, muchas instalaciones de compañías privadas requieren que marque un 0 o un 9 para obtener línea hacia el exterior.

[6]

La velocidad en baudios del terminal tty debe configurarse al menos como la máxima velocidad de transferencia.

[7]

Si el sistema remoto usa también Taylor UUCP es seguro que obedecerá.

[8]

A algunos módems parece no gustarles esto y se cuelgan ocasionalmente.