2008-09-13 17 views

Respuesta

5

De acuerdo con las especificaciones GSM, sólo el IMSI es necesario que esté disponible en la tarjeta SIM.

El número de teléfono real MSISDN se almacena en la base de datos HLR en la red del operador y no necesita estar disponible en la tarjeta SIM o transmitirse al teléfono.

Así que no importa qué tecnología esté utilizando (Symbina, Java ...) nunca podrá contar con poder obtener su propio número de teléfono desde el dispositivo o SIM. Puede ser afortunado si el operador almacena en la tarjeta SIM o si el teléfono ofrece al usuario la posibilidad de ingresarlo manualmente, pero no tiene por qué ser así.

+0

Además, si encuentra que el MSISDN está almacenado en la tarjeta SIM, puede que no sea el correcto. Si ha portado su número desde otra red, entonces puede encontrar que el MSISDN que lee de la tarjeta SIM es el número original, no el número que se transfirió. –

0

Generalmente no es posible obtener el MSISDN desde un dispositivo Symbian (o BREW, o cualquier otra plataforma). Lo hemos intentado

2

Como dijo Pat, aunque hay API para acceder al "número propio" en la SIM, rara vez en mi experiencia es esta ranura llena.

La estrategia habitual para obtener el número de teléfono de una aplicación conectada es enviar un SMS como parte de un proceso de verificación. O bien:

  1. enviar Programatically un SMS desde el teléfono a su servidor (un montón de buenos proveedores de pasarela SMS de interconexión por ahí). El SMS llegará a su servidor "desde" el número del teléfono (o la tarjeta SIM para ser más correcto). Por supuesto, el SMS debe contener algún token para que el servidor pueda vincularlo con una sesión/usuario determinado. Esto tiene la ventaja de que no necesita que el usuario ingrese su propio número de teléfono (que presenta muchas dificultades ya que pocos entienden cómo formatear números en formato E.164). Una desventaja es que el proceso puede costar dinero a su usuario (un SMS).

  2. Haga que el usuario ingrese su número de teléfono (sitio web o en el teléfono) y conéctese a su servidor, pasando ese número de teléfono. Haga que el teléfono espere a que llegue un mensaje de texto que envíe desde su servidor. Si este SMS realmente llega, ha verificado que el número de teléfono ingresado es correcto y válido. La desventaja evidente es que esto depende del usuario para ingresar su número correctamente; de ​​nuevo, dada la gran cantidad de formas de escribir números de teléfono en todo el mundo, no es tan trivial como suena normalizar números a E.164 ....

Por desgracia, ninguno de estos métodos es a prueba de balas, particularmente porque el SMS es un transporte no conectado. Dependiendo de la carga de la red GSM, la carga de su proveedor de puerta de enlace, la fase de la luna y la dirección de la ventana que sopla un SMS puede tardar de un segundo a un mes en llegar (sí, tengo experiencia en este último).El tiempo promedio de entrega es a menudo en segundos, pero tienes que jugar con el tiempo de espera de la operación y podría tener que ajustarlo según la red geográfica y GSM. [Y no, no confíe en los informes de entrega, incluso menos confiable que la entrega de SMS]

Cuestiones relacionadas