Obtener numero ICC de la SIM mediante comandos AT

Buenas, me gustaria compartir con la comunidad un sistema para averiguar el numero ICC de la SIM a traves de Hyperterminal y comandos AT.

Un poco de informacion:

¿Para que sirve? El numero ICC es el numero que va impreso en la SIM, que consta de 19 digitos y que se usa por ejemplo a la hora de hacer una portabilidad.

Imagen





¿Si esta impreso en la propia tarjeta, para que esta guia? Para la gente que como yo, la recorto o se le han borrado los digitos y ahora los necesita. Estos numeros llamando a tu operadora, casi nunca te los facilitan, no se por que, sera para dificultar las portabilidades (?)

¿Que son los comandos AT? Son instrucciones que se usan para comunicarse y trabajar con los modems, desde hacer una llamada hasta que te muestre el nivel de bateria, IMEI...

Y un aviso:

Hay mas maneras de conseguir este numero, mediante un lector de SIM USB, en alguna tienda (previo pago) o que tengas suerte y te lo den llamando a tu operadora...


Para empezar: Necesitaremos un movil con su correspondiente cable usb para conectarlo al PC, yo he usado un Sony K610. Hay que conectarlo al PC e instalarle los drivers para poder usarlo como modem.

Obviamente cada modelo tiene un tipo de cable; y puede venir o no en la caja con el movil, el mio es este:
Imagen

Nota: Es posible tambien crear un vinculo Bluethoot* entre el PC y el movil para usarlo como modem. Esto es un poco mas complicado pero es viable.



Una vez que este conectado el movil con el cable USB y al PC, vamos a Inicio->Todos los programas->Accesorios->Comunicaciones->Hyperterminal
y lo ejecutamos.
Nos pedira un nombre para la conexion, en mi caso le he llamado k610 como se puede apreciar en la imagen:

Imagen




Luego nos pedira que seleccionemos que modem de los que tengamos instalados queremos usar. En mi caso selecciono USB modem Sony, dependiendo del telefono que tengamos puede varias el nombre, por supuesto...

Imagen




Despues de seleccionar el modem, damos a Aceptar. Luego sale otra pantalla que es para introducir un numero y Marcar, pero Cancelamos porque no queremos hacer ninguna llamada...

Si todo ha ido bien nos aparecera la ventana de hyperterminal limpia. Escribiremos en la pantalla: AT y le daremos a Intro
Nos debe devolver OK en pantalla. Bien eso significa que ha habido comunicacion con el modem del movil. Pero en mi caso, como se puede ver en la imagen, no se ven los comandos, solo las respuestas.

Imagen




Esto no se realmente a que es debido, pero conozco la solucion: hay que ir a Archivo->Propiedades->pestaña Configuracion-> Configuracion ASCII y marcar la casilla "Eco de los caracteres escritos localmente". Y asi se mostraran los caracteres que escribas.
Ahora si, probamos otra vez introduciendo AT (se debe ver en pantalla) y nos devuelve OK el modem.

Imagen



Y el siguiente paso solo es introducir el comando especifico para leer justo el sitio donde se encuentra el archivo que contiene el numero ICC.
El comando exacto seria: AT+CRSM=176,12258,0,0,10
Pues bien introducimos el comando tal cual y le damos a intro, nos devolvera un valor mas o menos asi:
+CRSM: 144,0,"123456789012345678F9"
como se puede apreciar en la imagen:

Imagen



Donde 144,0 significa exito en la operacion y los siguientes 20 digitos son el DATA leido.



Explicacion del comando: AT+CRSM es un comando que se usa para leer datos de la SIm (hasta cierto punto claro), el parametro 176 significa "Leer binario", el parametro 12258 es la posicion (en decimal) del archivo donde se guarda el numero ICC y el resto son otros parametros para indicar tamaño en bytes del archivo.

Dicho esto, en el ejemplo supongamos que se obtiene 123456789012345678F9 como resultado. Evidentemente este no es el ICC, hay que hacer una pequeña operacion para sacarlo, y aqui viene lo curioso:

Hay que emparejar los numeros y darles la vuelta de la siguiente forma:

12 34 56 78 90 12 34 56 78 F9 --> aqui estan emparejados

ahora se les va dando la vuelta...

21 43 65 87 09 21 43 65 87 9F

y se desecha la F, con lo que obtenemos el ICC: 2143658709214365879





Espero que le sea util a la comunidad. Un saludo





*EDIT: El vinculo bluethoot trataria de conectarse via puerto serie al PC, yo lo he hecho con el soft de mi adaptador (Bluesoleil) pero desde Windows seguro que tambien se puede. solo es crear una conexion serie entre movil y PC y a la hora de conectarse con hyperterminal seleccional en la lista el COM que sea.
muy util! Muchas gracias! Ayer mismo me di cuenta de que mis números no se leen, s ehan borrado, y quiero tramitar una portabilidad. Me viene de perlas ;)

Voy a probarlo y te cuento. Gracias de nuevo!
YOO escribió:Voy a probarlo y te cuento. Gracias de nuevo!


Espero que te sirva. Una cosa, me ha funcionado perfectamente con un Sony K610 y un K800 pero no me ha funcionado con un Nokia 3109, me da error. Quiza no todos los moviles soportan este comando.
Una pregunta, ¿que utilidad tiene recortar la tarjeta SIM?
dark_hunter escribió:Una pregunta, ¿que utilidad tiene recortar la tarjeta SIM?


Esto se hace para que entre en los terminales que lleva microsim.

Imagen
Pues con el wave no se conecta, no se, si lo hago mal porque utilizo otro programa como terminal ya que no esta en Windows 7.

Saludos.
Muchas gracias. La verdad es que para los que se nos ha borrado algún dígito, viene de perlas.
Un saludo.
AlterNathan escribió:Pues con el wave no se conecta, no se, si lo hago mal porque utilizo otro programa como terminal ya que no esta en Windows 7.

Saludos.


Si lo haces por bluethoot, recuerda crear una conexion serie con tu movil. Luego tienes que seleccionar el puerto COM que sea en el hyperterminal (o el que sea).

Si es por cable, quiza tengas que poner el movil en "modo teelfono" en lugar de "modo almacenamiento"
7 respuestas