Tras los «secretos» de los terminales GSM

ADVERTENCIA

En este artículo se explica cómo introducir comandos en tu teléfono GSM, que pueden resultar peligrosos para el funcionamiento del mismo. No me hago responsable, bajo ninguna circunstancia, de los posibles errores, bloqueos y otros desperfectos que pueda sufrir tu terminal y los datos que contiene. Si vas a poner en práctica los procedimientos que en este articulo se describen, será solo bajo tu responsabilidad. En ningún caso se explica cómo desbloquear terminales, ni se recomienda la práctica de métodos fraudulentos. Como nota aclaratoria expongo que todas las prácticas llevadas a cabo no han producido ningún error en mi teléfono.

Introducción
El presente reportaje surge tras la necesidad de gestionar mi agenda de contactos del teléfono móvil. Recientemente he cambiado de operador, por lo que el SIM antiguo queda inutilizable al tratarse de terminales bloqueados por la compañía. Si has pasado por la misma situación, habrás comprobado lo tedioso que resulta volver a teclear todos los números en el nuevo teléfono. La idea de este reportaje es la de investigar un poco el funcionamiento interno de los terminales GSM y en concreto, la agenda que se almacena en la tarjeta SIM y/o en el teléfono. Si estás interesado en realizar un programa para «controlar» tu móvil, quizás esta pequeña guía te oriente.

Material Necesario
-Un terminal GSM con puerto de conexión infrarojos (IrDa): (p.e. Nokia 5210…).
-Ordenador portátil (PDA) con puerto de infrarojos (IrDa) ó PC/Mac de sobremesa. (p.e. HPC620LX).
-Un cable para puerto serie PC/Teléfono, en el caso de no disponer de puerto IrDA.
-Software Telnet / Emulación Terminal: (p.e. HPC Term Force, PPC ZTerm,…).
-Documentación:
-Light Sabre Project
(www.binet.lv/personal/nokia).
-3GPP 27.005 / 27.007
(www.traud.de/gsm/index.html).
-European Telecommunications Standards Institute (www.etsi.org).
-ETSI TS 127 007 v5.1.0 (2002-03) (www.etsi.org).
-PocketC (www.orbworks.com).

Los comandos AT de GSM
La idea de poder conectar mi nuevo Nokia con mi «antiguo» HP620LX, surgió desde el primer momento en que cargué la batería del móvil. Inicialmente se me ocurrió que si existía un puerto de infrarojos (IrDA) en ambos equipos, ¿porqué no conectarlos a través de ellos?.

Busqué en Internet, y en unos momento hallé la página de IA Style, Inc. (www.iastyle.com), en el que puede encontrar el IA Phone Manager, un software destinado a manejar la agenda de un terminal GSM para PocketPC. El programa se comporta perfectamente a través de un cable serie ó el puerto de infrarojos (IrDA), siendo esta segunda opción la más económica, por estar incluída «casi de serie» en todos los PDA’s del mercado. Con la tecnología Bluethoot, también es posible conectar un ordenador y un teléfono, siempre que el software lo soporte.

Pero la idea vas más allá. El proyecto consiste en poder «trastear» dentro de las tripas del teléfono y investigar el funcionamiento interno. He de aclarar que en esta guía no encontrarás métodos de desbloqueo de terminales, aunque los comandos internos AT destinados al efecto, forman parte del sistema GSM, pero no son tratados aquí. :-X

Buscando por Internet, y con la ayuda de Fingertip, he encontrado el programa Pocket Telnet PPC. Pero el software que yo he utilizado para la conexión del HPC y el Nokia ha sido Term Force. También hay disponible para PocketPC el excelente ZTerm. En realidad cualquier software de emulación de terminal puede funcionar.

Los parámetros de conexión para el software de Terminal son los siguientes:
-Velocidad: 19200 baudios. (Yo realizado conexiones a 56000 sin problemas).
-Bits de datos: 8.
-Paridad: nada.
-Bits de parada: 1.
-Control de flujo: nada.

Para determinar cual es el puerto COM que utiliza tu sistema IrDA, puedes consultar en Registro, o en el Panel de Control.

El procedimiento de conexión es muy sencillo. Consiste en alinear los puertos de infrarojos, activar la opción en el teléfono móvil, y con los parametros antes descritos, arrancar el software terminal y pulsar la opción de conectar.

En el caso de los teléfonos Nokia, un pequeño icono a la izquierda superior de la pantalla parpadea a la espera de la conexión. Cuando pasa a estado fijo, el enlace se ha completado. En mis pruebas HPC-Nokia, el tiempo estimado es de unos 12 segundos, quizás algo menos en el PPC.

La norma internacional de la ESTI, establece unas instrucciones internas para controlar el funcionamiento de los terminales GSM y las tarjetas SIM. Son los comandos AT. Muchos de ellos son sólo de carácter informativo y con normas sobre implantación, pero no obligan a ningún fabricante a incluirlos en los sistemas operativos de los teléfonos. Por ello puede ser que algunos comandos no funcionen en tu terminal; sólo obtendrás un mensaje de error. Personalmente he experimentado este caso, y algunos comandos no respondían en mi Nokia 5210.

Ya tenemos el cursor parpadeando a la espera del primer comando. Las instrucciones a teclear en el programa terminal, se marcarán en negrita para diferenciar. Empecemos preguntando al terminal la empresa fabricante:

AT+CGMI (opcional AT+GMI)
Nokia Mobile Phones
OK

Estamos en contacto con el móvil. Modelo del fabricante:

AT+CGMM (opcional AT+GMM)
Nokia 5210
OK

Versión registrada del software:

AT+CGMR (opcional AT+GMR)
SW5.18
OK

Número de serie, o también el número IMEI (International Mobile Station Equipment Identity):

AT+CGSN (opcional AT+GSN)
123456789012345
OK

Llegados a este punto, a lo mejor te apetece probar otros comandos más interesantes. La típica instrucción de módem para realizar una llamada:

ATDT 123456789

En el caso de que cuelgues la llamada antes del descuelgue, obtendremos el mensaje: NO CARRIER.

Otro comando muy interesante es AT+CSCS, que es el encargado de especificar el tipo de carácteres (chset) que se gestionan internamente en el terminal, no para el interface. Existen tres opciones sobre esta instrucción:

AT+CSCS=(chset)
AT+CSCS?
AT+CSCS=?

Donde (chset) es el tipo de carácter alfabeto que se utilizará. (p.e. «GSM», «HEX», «IRA», «PCDN»,…).

Ejemplos Nokia:

AT+CSCS? (Para obtener el activado actualmente).
+CSCS: «PCCP437»
OK

AT+CSCS=? (Listados de los disponibles en el móvil).
+CSCS:
OK

AT+CSCS=»HEX» (Cambio a modo hexadecimal).
OK

Más adelante veremos que el uso de este comando nos puede ayudar a la hora de ver la información interna de la memoria o el SIM. Veamos unas instrucciones más.

AT+CPAS (Actividad del teléfono actualmente).
+CPAS: 0
OK

Las posibles respuestas que podemos obtener son las siguientes:
0 Preparado.
1 No disponible.
2 Desconocido.
3 Timbre sonando.
4 Llamada en curso.
5 Modo bajo consumo.

AT+CFUN? (Funcionalidad del teléfono).
+CFUN: 0
OK

Las posibles respuestas que podemos obtener son las siguientes:
0 Funcionalidad mínima.
1 Máxima funcionalidad.
2 Desactiva transmisión (sólo circuitos RF).
3 Desactiva recepción (sólo circuitos RF).
4 Desactiva transmisión y recepción (sólo circuitos RF).
5-127 Reservado.

Opcionalmente se puede aplicar la opción RESET a este comando, aunque el terminal no se reseteará hasta que no se alcanza el estado 1 (máxima funcionalidad). *Ver manual ETSI TS 127 007 v5.1.0 antes de aplicar esta opción.

AT+CBC (Estado de la batería).
+CPAS: 0,90
OK

El primer número indica:
0 Usando la bateria.
1 Bateria conectada, pero no en uso.
2 Bateria no conectada.
3 Fallo de corriente. Llamadas desactivadas.

Y el segundo:
0 Bateria agotada o sin bateria.
1-100 Nivel de carga.

AT+CSQ (Calidad de la señal).
+CSQ: 31,99
OK

Valores para el primer número:
0 -113 dBm o menos.
1 -111 dBm.
2-30 -109 a -53 dBm.
31 -51 dBm o más.
99 No disponible o no detectable.

Y para el segundo:
0-7 Valores RXQUAL.
99 No disponible o no detectable.

La extensa gama de opciones que nos brinda el sistema GSM desborda el objetivo de este reportaje. Existen además otros multiples comandos que nos permiten controlar las teclas del teléfono. Podemos enviar instrucciones para bloquearlo o para simular la pulsación de una tecla. Asimismo, también disponemos de otras para controlar la pantalla y escribir en ella. La gestión de bloqueos de la tarjeta SIM y el móvil también está a nuestro alcance, siempre y cuando contemos con la autorización legal y los passwords adecuados.

En general, TODO lo que se puede teclear desde el teléfono y es susceptible de modificación, está al alcance de nuestras manos. Cambio del idioma, modificación de las melodías, control del sistema de vibración, coste de llamadas, programación de alarmas, funciones internas del teléfono, optimización… Si estás realmente interesado en programar software para controlar un GSM, no debes dejar de leer las normas ETSI.

El control de la agenda
En un terminal GSM, existen diferentes asignaciones de memoria. Los datos de la agenda pueden estar en el terminal, la tarjeta SIM y en diferentes localizaciones de la memoria.

El comando para averiguar las disponibles es:
AT+CPBS=?
+CPBS: («ME»,»SM»,»FD»,»ON»,»EN»,»MC»,»DC»,»RC»)
OK

Podemos obtener las siguientes, entre otras:
«DC» Últimas llamadas realizadas.
«EN» Número de emergencia.
«MC» Llamadas perdidas.
«ME» Agenda del teléfono.
«RC» Llamadas recibidas.
«SM» Tarjeta SIM.

Y para averiguar sobre que «memoria» estamos consultando/trabajando:
AT+CPBS?
+CPBS: «ME»
OK

El primer número indica las posiciones de memoria usadas del total disponible que indica el segundo.

Vamos a trabajar sobre la tarjeta SIM. Para ello introducimos el comando:
AT+CPBS=»SM»
OK

Ahora viene la parte interesante, que es cuando consultamos el listado de números disponibles:
AT+CPBR=?
+CPBR: (1-250),30,16
OK

Primero consultamos la cantidad de posiciones disponibles (ocupadas o no), ya que en caso contrario podemos obtener un error. Observamos una capacidad de 250. Ahora podemos obtener nuestra lista de teléfonos:
AT+CPBR=1,3 (Listado de la posición 1 a la 3, datos reles modificados).
+CPBR:
1,»123456789″,129,»Trabajo»

+CPBR: 2,»123456789″,129,»Judith»

+CPBR: 3,»123456789″,129,»Casa»

OK

Obtendremos un listado con la posición de la memoria seleccionada, el número de teléfono, el tipo de llamada (145 internacional, 129 nacional) y el nombre asigando.

Si se cambia de carácteres de uso interno (chset), de mode «PCCP437» al modo hexadecimal:
AT+CSCS=»HEX»
OK

Y luego se pide otra vez la lista de la agenda:
AT+CPBR=1,3 (Listado de la posición 1 a la 3, datos reles modificados).
+CPBR: 1,»123456789″,129,»00CE00DE004D410061″
+CPBR: 2,»123456789″,129,»00CE00DE004D410061″
+CPBR: 3,»123456789″,129,»00CE00DE004D410061″
OK

Es aquí donde me encuentro «atascado», debido a que la instrucción para introducir nuevos datos en la agenda, no me acepta correctamente la introducción de texto. Actualmente estoy estudiando como realiza la conversión de datos. Mis pruebas con datos enviados a la agenda, han obtenido como respuesta entradas válidas, pero con carácteres ó simbolos en lugar del nombre correcto. Los números de teléfonos si que son aceptados con normalidad.

AT+CPBW=? (Para obtener parámetros correctos de entrada de datos en la agenda).
+CPBW: (1-250),20,(129,145),16
OK

1-250 posiciones de memoria.
20 longitud máxima del campo número de teléfono.
129-145 tipo de número (145 internacional, 129 nacional) .
16 longitud máxima del campo de texto.

AT+CPBW=2,»000000000″,129,»Jordi» (Creación de un registro nuevo en la agenda).
OK

Si se introduce correctamente el comando, obtendremos un simple OK. Podemos comprobar en el teléfono la existencia de este nuevo número. Salvo el «error» de texto comentado anteriormente, con el procedimeiento de lectura/escritura de un SIM a otro, es posible copiar los datos de la agenda. Claro está que en este caso deberemos tener dos terminales, uno para cada tipo de tarjeta y/o operador.

De hecho, con este método me he ahorrado el trabajo de teclear 103 números. Tan sólo he empezado a modificar «a mano» los nombres en el Nokia. Espero poder hacer una copia perfecta en breve, evitando este molesto error, que bien podría ser una mala interpretación por mi parte de los comandos AT.

Y para terminar, el comando más «peligroso» para nuestra agenda:
AT+CPBW=2
OK

Simplemente, borra el registro de la posición número 2.

Conclusión
Después de esta pequeña «introducción al mundo interior» de GSM, supongo que tendrás ganas de probar más instrucciones. Recuerda que muchas opciones requieren autorización legal a través de los códigos SIM, PUK,… (o teléfono particular libre). Otros comandos pueden borrar los datos de tu terminal. ¡Ten cuidado! Te recomiendo que pruebes con un teléfono que tengas en deshuso y una tarjeta SIM caducada o cancelada.

Si lo que te interesa es programar una aplicación, en la web de ETSI (www.etsi.org), encontrarás toda la información sobre sistemas GSM y 3G.

Por mi parte, sólo me queda solventar el «bug» mencionado, y habré conseguido mi objetivo: NO teclear ni un sólo número en mi móvil. 😉

*Nota: Las marcas comerciales, los nombres de las empresas, sus productos y estamentos mencionados, son propiedad intelectual de sus respectivos propietarios.

HaRk0(@pcdemano.com)

10/07/02

294
Suscribirse
Notificación
0 Comments
Inline Feedbacks
Ver todos los comentarios
0
¡Aquí puedes dejar tus comentarios!x