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.
¿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:
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:
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...
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.
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.
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,10Pues 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:
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.