Manipulando un celular via comandos AT

 I love Motorola

Estuve investigando como podía manipular mi celular con la finalidad de, alguna manera, ejecutar algunas de las herramientas y servicios típicos del celular de manera automática. Sin ninguna idea por donde empezar hice lo que ahría cualquier persona, envíe un S.O.S. vía Twitter para que algun internauta me diera al menos una señal de por donde podría empezar. Tuve algo de suerte y un twittero me paso una idea "Investiga acerca de comandos at".  Y así empezó. Investigando un poco acerca de comandos AT, llegue a la siguiente definición (extraida de alguna web que ya no recuerdo)

"Los comandos AT son instrucciones codificadas que conforman un lenguaje de comunicación entre el hombre y un terminal modem.
En un principio, el juego de comandos AT fue desarrollado en 1977 por Dennis Hayes como un interfaz de comunicación con un modem para así poder configurarlo y proporcionarle instrucciones, tales como marcar un número de teléfono. Más adelante, con el avance del baudio, fueron las compañías Microcomm y US Robotics las que siguieron desarrollando y expandiendo el juego de comandos hasta universalizarlo.
Los comandos AT se denominan así por la abreviatura de attention .
 
http://bluehack.elhacker.net/proyectos/comandosat/comandosat.html
http://www.seguridadmobile.com/bluetooth/especificacion-bluetooth/arquitectura-de-protocolo/Files/comandosAT.txt
Sobretodo esta :

Aunque la finalidad principal de los comandos AT es la comunicación con modems, la telefonía móvil GSM también ha adoptado como estandar este lenguaje para poder comunicarse con sus terminales. De esta forma, todos los teléfonos móviles GSM poseen un juego de comandos AT específico que sirve de interfaz para configurar y proporcionar instrucciones a los terminales. Este juego de instrucciones puede encontrarse en la documentación técnica de los terminales GSM y permite acciones tales como realizar llamadas de datos o de voz, leer y escribir en la agenda de contactos y enviar mensajes SMS, además de muchas otras opciones de configuración del terminal."

¿Como empezar?

1.- Primero, debes conectar tu celular atravez del cable a la PC. Ojo, debes haber instalado el driver que permite la comunicación de tu celular con la PC (por lo general este viene con el CD que te dan al comprar al equipo y que instala el software para bajar las fotos, por ejemplo.)

2.- Abre el Hyperterminal. Para los que no saben Hyperterminal acá una definición.

"Lanzado en 1985, el HyperTerminal, que hasta 1995 se llamaba Terminal, permitía conectar el ordenador para otra persona.

En 1995, con el lanzamiento del Windows 95, el componente pasa a llamarse HyperTerminal, en parceria entre la Hilgraeve y la Microsoft. Lanzó nuevos recursos, como la creación de un servidor, entre otros.
En 2007, con el lanzamiento del Windows Vista, el HyperTerminal no es más incluido como parte de los Acessórios del Windows, ahora el HyperTerminal está disponible sólo en la web oficial de la Hilgraeve"

Ahora, en Windows XP pueden encontralo en la siguiente ruta "Inicio/Programas/Accesorios/Comunicaciones/Hyperterminal". En Windows Vista en adelante, el Hyperterminal ya no figura en Windows, entonces debemos bajarlo de internet de cualquiera de las siguientes direcciones :


3.- Una vez descargado e instalado procedamos a conectar el hyperterminal al celular de la siguiente manera.

a. En Hyperterminal, clic en "Archivo/Nueva Conexión". Ponle un nombre a la conexión y escoge cualquier icono.



b. Pon tu codigo de area y número telefonico. Pero lo más importante, escoje en la opción "Conectar usando" el driver de tu celular (este debe aparecer listado, en mi caso es un Motorola). Este paso es vital ya que se esta definiendo que se conectará al celular. Luego clic en "Aceptar".


c. Listo. Clic en "Marcar".



d. Ok, dice "Sin tono de marcado". Parece que no está conectado. Hagamos clic en "Cancelar" y pasemos a la consola del Hyperterminal.



e. Escribamos "AT". Hazlo incluso si la primera vez no aparece el texto que escribas. Debe responder "OK" ¡Estamos conectados!


f. Comenzemos a jugar. Ingresa AT+CMGL="ALL". Te debe listar todos los SMS que tengas guardados en tu celular (he colocado una raya negra en los SMS privados, ojo no es parte de la ventana, lo he colocado yo)


g. Si quiero ller un SMS en particular, ingreso el siguiente comando, AT+CMGR=4 (donde 4 es el índice del SMS en la lista general de SMS).


h.Vamos a borrar un SMS. AT+CMGD=6 (donde 6 es el índice del SMS en el listado general).


i. Hagamos una llamada. ATD01XXXXXXX (Donde x representa el número fijo al que estamos llamando). Pongo el 01 porque acá en Perú, para llamar a fijos desde un celular se debe poner el 01 antes. Cosas de Movistar. Dice "NO CARRIER" porque no contesté.



j. Ahora llamando a un celular.


k. Enviemos uns SMS. Veamos, AT (1)  significa atención del módem. Permite que el módem sepa que se le están dando comandos).  ATZ (2), el módem interpreta este comando, que es de inicialización y devuelve la cadena “OK” seguida de un retorno de carro para indicar que se ha ejecutado con éxito.

AT+CMGF=1 (3), le estamos diciendo que vamos a operar en modo SMS texto. Por último AT+CMGS="XXXXXXXXX" (4), donde colocamos el número celular al cuál vamos a llamar. Hacemos "ENTER" y se colocará el cursor en forma de signo "mayor que" (tal como se ve en la foto). Ponemos el texto y damos CTRL+Z  para finalizar (ojo, no ENTER).



Para terminar algunos se preguntaran, ¿Para que me sirve poder manipular mi celular vía estos comandos? Se me ocurren muchas cosas. ¿Que sale de la siguiente unión?

Comandos AT +  VB.NET + Base SQL Server con Store Procedures (con números telefónicos de los empleados) + Un celular motorola con saldo

El resultado, un servicio en el cuál le puedes enviar a un grupo numeroso de gente, por ejemplo, el pago correspondiente de esta quincena. Pero esa idea (y post) lo dejaremos para más adelante.

Finalmente...
Solo me queda recomendarles estas páginas web donde hallaran más información sobre comandos AT, con mayor detalle y complejidad.




Saludos.

Alberto.

15 comentarios:

FranAren dijo...

Muy interesante. Espero el post con la conexión de VB :)

Saludos

Felipe dijo...

hola me parece interesante los comandos AT y estoy investigando sobre ellos para un trabajo. Hice los pasos que indicas con un motorola del mismo tipo, todo OK, no obstante cuando envío los mensajes de texto a un celular (envie mensajes a 2 equipos de empresas diferentes: Claro y movistar), el contenido esta vacio solo figura el numero del cual llega el mensaje pero sin contenido, a que se debe esto, por favor necesito tu ayuda. saludos, Felipe

apeves dijo...

Supongo que has llegado hasta el paso en que el cursor se coloca con el simbolo de mayor (>) en ese momento colocas el texto a enviar y NO das enter, sino CTRL+Z.

Eso es todo lo que deberías hacer para poder enviar un mensaje de texto.

Personalmente no me ha ocurrido el error que mencionas ¿Estas usando un Motorola v3 como el de la foto?

ulysses dijo...

HOLA YO LO ESTOY PROBANDO CON UN SONY Y NO ME DEJA ENVIAR SMS YA QUE ME MARCA UN ERROR AL PONER EL COMANDO AT+CMGF=1 ME MARCA ERROR ME PODIAN AYUDAR, A QUE SE DEBE ESTO

JAEL distribuciones dijo...

amigo apeves buen comentario :

me podriaas decir que celus tienen el AT estanrizado? para hacer lo que tu propusite. espeero tu respuesta.

Anónimo dijo...

Hola...gracias por el post!! Está muy bueno y muy interesante sobretodo para las personas,como yo, que les será de mucha utilidad. Una consulta...logro conectarme con el modem del celular. Pero cuando escribo, no puedo ver qué estoy escribiendo, y cuando quiero leer un mensaje, me salen puros números y letras,parece que estuviera en formato hexadecimal. Por qué crees que es esto? Te agradecería mucho si me puedes responder.

Anónimo dijo...

al igual q un comentario ME DA UN ERROR AL PONER EL COMANDO AT+CMGF=1 estoy usando un sonyericsson gracias

Anónimo dijo...

Los que tienen problemas con los sony ericsson es proque estos codifican los sms en pdu, o sea que no tienen el modo texto. si ponen at+cmgf=? van a ver que solo esta la opcion 0 que es pdu. para mandar un sms asi, primero tienen que codificarlo (hay progs para esto) y luego lo mandan. en la misma codificacion va el mensaje, el numero al que se lo manda entre otros. busque en google como mandar un sms por comandos at usando codificacion pdu. Saludos

ltronlearnC dijo...

HOLA amigos he estado tratando de mandar SMS con mi celular LG modelo GT-S5260 y tengo un error en el ultimo paso y es +CMS error 38 alguien sabe de q es?

Alberto Peves M. dijo...

Recomiendo usar un Motorola v3 por una simple razon, es el que siempre he usado yo!. No he usado otros modelos, siempre Motorola v3. Incluso cuando no tenia , me compre uno de segunda por unos 40 dolares solo para poder hacer el envio.

m@ntrax dijo...

Excelente post y muy útil. Cuento que seguí tus pasos aquí en Venezuela con el operador Movilnet, no me funcionaba con un terminal Orinoquia / Huawei y emitía el error 330 que consiste en que no había SMSC (centro de mensajes) Así que buscando encontré el comando AT+CSCA y empleando así AT+CSCA="+584260001100",145 (el smsc de el proveedor Movilnet) Y todo funcionó

Anónimo dijo...

hola: estoy haciendo una aplicacion de leer mensajes sms de un celular, pero el cliente el celular que tiene es un samsung galaxy young, reconoce los comandos at, pero no tiene soportado el de leer un mensaje, el me pide que le averigue entonces que tipo de celular puede soportar esto, por favor si me pudieran dar modelos de celulares que soporten lectura de mensajes, especificamente
AT+CMGR, AT+CMGL
saludos

Fernando Conde dijo...

Hola, Excelente Aportación, Felicidades!!!, Tengo el Sig. Problema, Estoy usando Windows 7, Conecté un Samsung Galaxy Ace y un Samsung S3, Ambos aparecen como "Samsung Mobile USB Modem" uno se Configura como COM3 y el Otro como COM4, pero cuando quiero conectarme a estos por medio de Hyperterminal ó por Telnet No Logro Tener Comunicación, Mi Pregunta es Cuales Modelos ó Tipos de Celulares Soportan estos Comandos? o estoy haciendo algo mal con el Telnet? Entro a MSDOS y escribo Telnet com3 y se queda pensando unos segundos y luego responde lo Sig.:
C:\>telnet com4
Conectándose a com4...No se puede abrir la conexión al host, en puerto 23: Error en la conexión

C:\>"

Bueno, Como Dijo el Chapulin Colorado, quien Podrá Ayudarme?

Quiero aportar esta lista de más comandos AT: http://foro.elhacker.net/hacking_mobile/bluetooth_comandos_at-t161120.0.html

Fabricio Baldi - Nac y Pop dijo...
Este comentario ha sido eliminado por el autor.
Fabricio Baldi - Nac y Pop dijo...

Hola Fernando Conde en el hiperterminal usa el driver no el com, yo tengo win 7 y samsung chat b5330 y asi me funciona. espero que esto te sirva.


ahora lo que necesito hacer es enviar desde Visual Basic o Visual Fox usando el componente MSCOMM pero ahi solo se puede configurar el puerto com, le puse el puerto que me figuraba en el administrador de componentes pero ahi no me funciona....
alguien sabe como puedo utilizar el driver de samsung desde VB o VFP?
desde ya, muchas gracias!!!