El conjunto de comandos AT de Hayes: origen y evolución del estándar de módems

Fuentes: Hayes AT command set: origin and evolution of the modem standard

El conjunto de comandos AT de Hayes, también conocido como Hayes command set, es un lenguaje de comandos desarrollado en 1981 por Dale Heatherington y Dennis Hayes para el Hayes Smartmodem. Consiste en una serie de cadenas de texto cortas que, combinadas, permiten realizar operaciones como marcar un número, colgar o modificar los parámetros de la conexión. La gran mayoría de los módems dial-up lo adoptaron en múltiples variantes, hasta el punto de que el término «Hayes compatible» sigue siendo relevante en la industria.

El estándar original cubría solo las operaciones básicas de los módems de 300 bit/s. A medida que aparecieron módems más rápidos, cada fabricante añadió extensiones propietarias —con prefijos como & para Hayes y USRobotics o \ para Microcom— que mantenían la sintaxis básica. Tras la aparición del SupraFAXModem 14400 y la consolidación del mercado, muchas de esas extensiones se reestandarizaron sobre las propias extensiones de Hayes.

Antes del Hayes Smartmodem, los módems operaban en líneas directas con modos «originate» y «answer» fijos y se conmutaban manualmente. La revolución del microcomputador en los años 70 obligó a habilitar la marcación automática por software, tarea que Hayes resolvió usando los pines de datos existentes del RS-232 sin modificarlos. Para ello introdujo dos modos: data mode, en el que todo lo recibido se reenvía por la línea telefónica, y command mode, en el que los datos se interpretan como instrucciones locales. El paso de un modo a otro se realiza con una secuencia de escape de tres signos más (+++) seguidos de una pausa de un segundo, mecanismo diseñado para evitar falsos disparos por señalización en banda.

Algunos fabricantes, para eludir la patente de Hayes, implementaron la secuencia sin intervalo temporal (TIES). Esta variante presenta una vulnerabilidad de denegación de servicio: si el módem recibe en modo datos la cadena +++ATH0 —por ejemplo, contenida en un ping of death o en un correo electrónico—, interpreta la secuencia como un comando y cuelga la conexión, desconectando al equipo de Internet.