Conjunto de comandos Hayes
# Conjunto de comandos Hayes

El conjunto de comandos Hayes es un lenguaje desarrollado por la compañía Hayes Communications que prácticamente se convirtió en estándar abierto de comandos para configurar y parametrizar módems. Los caracteres «AT», que preceden a todos los comandos, significan «Atención», e hicieron que se conociera también a este conjunto de comandos como comandos AT.

Un aparato que implemente el conjunto de comandos Hayes se considera compatible Hayes. Parte del conjunto de comandos Hayes fue incluido por la ITU-T en el protocolo V.25ter, actual V.250. La adopción de este estándar hizo el desarrollo de controladores específicos para distintos módems superfluo.

A partir de la versión 3.x de Windows el sistema operativo contaba con una implementación de controlador para módems compatibles con Hayes. Sin embargo, a partir de Windows 95 se desarrollaron controladores específicos para cada módem, así que la compatibilidad con Hayes dejó de ser importante y por esta razón cada vez menos módems la implementaron. Esto dificultó su uso en otros sistemas operativos, pues no resulta frecuente que haya controladores disponibles.

## Comandos

En la especificación de los comandos, se especifica que deberán ser enviados en mayúsculas, aunque actualmente, casi todos los proveedores de módulos GSM admiten comandos en minúsculas

### Básicos 123

**AT**

Este es el comando base de los comandos Hayes. Con él, comprobamos la disponibilidad del dispositivo, es una manera de conseguir comprobar que todo vaya bien

AT+CGMI=?

**vta**

Para contestar una llamada, también se configura en respuesta automática. Si no hay ninguna llamada entrante, respondería así:

**ATB**

Para elegir el estándar de comunicación, a la hora de iniciar la conexión. En un principio se diseñó para elegir la velocidad, 300 o 1200bps y más tarde los vendedores, al introducir mayores velocidades, lo utilizaron para establecer el máximo de velocidad. En la actualidad, la mayoría del los módems ignoran este campo, respondiendo OK para compatibilizar.

**ATD**

Este Comando se usa típicamente para realizar una llamada.

ATDXXXXXXXXXXX;

Ejemplo:

ATD04261164440; (esta sería una llamada a un número móvil en Venezuela)

OK

**ATE**

Activación/Desactivación del eco del módem

ATE0 desactiva el eco del módem

ATE1 activa el eco del módem

**ATH**

Permite colgar la llamada actual

**ATL**

Controla el volumen del altavoz del dispositivo. Los dispositivos con botones de volumen no disponen de este comando.

### Extendidos

**AT+CBC**

Batery Charge. Sirve para conocer el estado de la batería del teléfono, devolviendo los valores de estado y los niveles de batería.

**AT+CBST**

El comando de escritura AT + CBST selecciona el servicio portador <nombre>, la velocidad de datos <velocidad> y el elemento de conexión <ce> que se utilizará cuando se originan llamadas de datos.

Test Command AT+CBST=? Response(s): +CBST: (list of supported<speed>s), (list of supported<name>s), (list of supported<ce>s) OK

Read Command AT+CBST? Response(s): +CBST: <speed>, <name>, <ce> OK

Write Command AT+CBST=<speed>[, <name>[, <ce>]] Response(s): OK ERROR

**AT+CGMI**

Para solicitar información sobre el fabricante del módem.

**AT+CGMM**

Para solicitar información sobre el número de modelo del módem.

**AT+CGMR**

Para solicitar información sobre la versión del firmware.

**AT+CGSN**

Para solicitar el IMEI

**AT+CCLK**

Con este comando AT se consulta la fecha y hora en el módem o teléfono. Saldrá en el siguiente formato: YYYY/MM/DD,HH:MM:SS. El comando no posee parámetros.

**AT+CMGL**

Listar todos los mensajes

AT+CMGL="ALL"

**AT+CMGS**

Nos permite indicar el número de teléfono al que se va a enviar el SMS o mensaje de texto.

**AT+CPIN**

Este comando vale para introducir el pin, para saber si la SIM está a la espera del PIN, PUK O PH-PIN (Bloqueo del terminal a un móvil)

**AT+CSCS**

Para definir la codificación de caracteres a usar.

**AT+CSQ**

Este comando sirve para conocer la calidad del nivel de señal recibida por el dispositivo. Tabla equivalencias entre rangos CSQ y niveles de recepción en expresados en dBm.

Para no tener que llevar la tabla, se consigue mediante la siguiente fórmula: (Nivel CSQ x 2) - 113. El resultado es el nivel de recepción en dBm.

Nivel CSQ / Nivel de señal (dBm)

