next up previous contents index
Siguiente: Iniciando PPP en el Subir: Editando los guiones de Anterior: El guión ppp-on.   Índice General   Índice de Materias

El guión ppp-on-dialer.

Este es el segundo guión y es el que realmente establece la conexión PPP.

Nota: un guión chat está escrito normalmente en una sola línea, los separadores {} se utilizan para permitir la continuación de la línea en varias líneas distintas y ser más legibles por las personas, pero no forman parte del guión.

Sin embargo, es muy útil verlo en detalle, para entender qué es lo que realmente (supuestamente) está pasando.

Un guión chat es una secuencia de parejas de ``cadenas de espera'' y ``cadenas de envío''. En particular, nótese que SIEMPRE se espera alguna respuesta después de enviar algo.

Si tenemos que enviar algo SIN recibir nada antes, debemos utilizar una cadena de espera vacía (indicada por ``'') y de forma similar para cuando esperamos recibir algo sin mandar nada. También, si una cadena contiene varias palabras, (por ejemplo NO CARRIER), se debe entrecomillar, para que chat lo entienda como una sola entidad.

La línea chat en nuestro ejemplo es:
\begin{tscreen}
exec /usr/sbin/chat -v
\end{tscreen}

Invoca a chat, la opción -v le dice a chat que copie TODAS sus E/S en los registros del sistema (normalmente /var/log/messages). Una vez que esté satisfecho del funcionamiento del guión de chat, se puede editar esta línea y quitar el -v para evitar registros innecesarios en el syslog.


\begin{tscreen}\begin{verbatim}TIMEOUT 3\end{verbatim}\end{tscreen}

Establece el tiempo máximo de respuesta del módem en 3 segundos. Debe aumentarse a 5 ó 10 segundos si se utiliza un módem realmente lento.


\begin{tscreen}\begin{verbatim}ABORT '\nBUSY\r'\end{verbatim}\end{tscreen}

Si la cadena BUSY (ocupado) es recibida, se aborta la operación.


\begin{tscreen}\begin{verbatim}ABORT '\nNO ANSWER\r'\end{verbatim}\end{tscreen}

Si la cadena NO ANSWER (sin respuesta) es recibida, se aborta la operación.


\begin{tscreen}\begin{verbatim}ABORT '\nRINGING\r\n\r\nRINGING\r'\end{verbatim}\end{tscreen}

Si la cadena (repetida) RINGING (llamando) es recibida, se aborta la operación. ¡Esto es porque alguien está llamando por teléfono!


\begin{tscreen}\begin{verbatim}'' \rAT\end{verbatim}\end{tscreen}

No se espera respuesta del módem y se envía la cadena AT


\begin{tscreen}\begin{verbatim}OK-+++\c-OK ATH0\end{verbatim}\end{tscreen}

Esta es un poco más complicada y usa algunas de las capacidades de chat para recuperar errores.

Lo que dice es: Espera OK, si NO es recibido (porque el módem no está en modo de recibir órdenes), manda +++ (la cadena estándar para un módem compatible Hayes que pone el módem en modo de recibir órdenes) y espera recibir OK. Entonces se envía ATH0 (la cadena para colgar el módem). Esto permite al guión protegerse de la situación en la que el módem está encendido pero no da respuesta.


\begin{tscreen}\begin{verbatim}TIMEOUT 30\end{verbatim}\end{tscreen}

Establece 30 segundos como el tiempo necesario para volver a lanzar el guión. Si tiene problemas porque se aborta el guión de chat por el este tiempo muerto, auméntelo a 45 segundos o más.


\begin{tscreen}\begin{verbatim}OK ATDT\$TELEPHONE\end{verbatim}\end{tscreen}

Espera el OK ( la respuesta del módem a la orden ATH0) y marca el número de teléfono al que queremos llamar.


\begin{tscreen}\begin{verbatim}CONNECT ''\end{verbatim}\end{tscreen}

Espera CONNECT (que nuestro módem envía cuando el módem remoto contesta) y no envía nada.


\begin{tscreen}\begin{verbatim}ogin:--ogin: \$ACCOUNT\end{verbatim}\end{tscreen}

De nuevo, tenemos un problema. Esperamos el indicador de órdenes de registro (...ogin:) pero no hemos recibido nada por el tiempo muerto, entonces enviamos de nuevo respuesta y esperamos el indicador de órdenes de registro. Cuando se recibe el indicador de órdenes, enviamos el nombre de usuario (almacenado en la variable de entorno $ACCOUNT). En la mayoría de los ISP's de España, esto no es necesario y debe comentarse, debido a que se usa autentificación PAP. Ver sección PAP.


\begin{tscreen}\begin{verbatim}assword: \$PASSWORD\end{verbatim}\end{tscreen}

Esperamos que se solicite la contraseña y se la enviamos (de nuevo almacenada en una variable de entorno).

Este guión de chat tiene una capacidad razonable de recuperarse de errores. Chat tiene muchas más características que las mostardas aquí. Para más información consulte la página del manual de chat (man 8 chat)En la mayoría de los ISP de España, esto no es necesario y debe comentarse. Ver sección PAP más adelante..


next up previous contents index
Siguiente: Iniciando PPP en el Subir: Editando los guiones de Anterior: El guión ppp-on.   Índice General   Índice de Materias
Ismael Olea 2002-09-26