¿Qué es la búsqueda de números y cómo usarla para validar números?

Todo lo que usted necesita saber acerca de la validación de números: un tutorial paso a paso con el código para consultas y funcionalidades de búsqueda.

October 27 2016

DEFINICIÓN DE BÚSQUEDA DE NÚMEROS

La búsqueda de números,también conocida como búsqueda HLR (Home Location Register) o consulta de red es una base de datos central que contiene los detalles de cada suscriptor de teléfono móvil autorizado para utilizar la red principal GSM.

IMSI = MCC+MNC+MSIN, Y TIENE 15 DÍGITOS

Cada número telefónico contiene información que lo diferencia de los otros números de teléfono en el mundo. Primero, está el IMSI (International Mobile Subscriber Identity), un número de quince dígitos que le proporciona la información acerca del MCC (código móvil de país), el código de red móvil (MNC) y el MSIN (número de identificación de suscripción móvil).

Como puede ver, los tres primeros dígitos del IMSI son el código del país (por ejemplo, para Colombia es 057). Los siguientes dos números son 01, y estos identifican la red. En cuanto a los diez últimos dígitos, ellos describen el MSIN, un número único de 10 dígitos que cualquier operador utiliza para identificar el teléfono móvil del usuario.

Lo segundo que muestra la búsqueda de números es el estatus del número, es decir, si está siendo portado o no. No es extraño que un suscriptor de un operador de red móvil se cambie a otro operador conservando su antiguo número. Eso ocurre con frecuencia en casi todos los países del mundo.

Y lo tercero: la búsqueda de números también le indica si un número de teléfono se encuentra en roaming. Esta información puede ser de vital importancia para proteger a sus clientes y evitar acciones fraudulentas dirigidas a sus cuentas..

BÚSQUEDA DE NÚMEROS SYNC VS. ASYNC

Existen dos formas para adelantar una búsqueda de números con éxito. Una es sincrónica (SYNC), cuando un cliente envía una consulta relacionada con una búsqueda de número. Para este caso se esperar que la consulta sea procesada y se entregue una respuesta antes de poder enviar otra. En ocasiones, si existe una lista de números que deba ser comprobada, se puede generar una gran cola.

Por su parte, la búsqueda de números asíncrónica (ASYNC) funciona de forma diferente. Usted podrá enviar tantas solicitudes como desee sin tener que esperar la respuesta. Esto puede ser muy útil si usted tiene una gran base de datos con números telefónicos o si tiene varias bases de datos. Entonces, ¿cuál es la principal diferencia entre ambas búsquedas?

AHORRO EN TIEMPO DE RESPUESTA

Las respuestas a sus búsquedas de números en modo SYNC con la REST HTTP API se envían después de cada solicitud. Aunque la respuesta debería ser visible apenas en un par de segundos, el período entre el envío de una solicitud y el recibo de una respuesta puede demorarse por diversos problemas técnicos o del sistema. Esto puede hacer que funcione más lento, así que tendrá que esperar la respuesta antes de realizar otra búsqueda.

Con la API ASYNC la velocidad mejora notablemente por la posibilidad de enviar múltiples solicitudes antes de recibir las respuestas. Lo que es diferente en este caso (aparte de la velocidad) es que esta versión es un poco más difícil de integrar pues se requiere de un servidor call-back del lado del cliente para analizar sintácticamente la respuesta frente a la solicitud particular.

Los casos más frecuentes son:

  • Comprobación de números activos/inactivos
  • Información sobre los números que se encuentran en roaming
  • Comprobación del estado de portabilidad del número móvil
  • Encontrar la ruta óptima para mensajes SMS y de voz
  • Tipo de número (por ejemplo, línea fija, de máquina a máquina, móvil, etc.).

En Infobip tenemos tres paquetes principales disponibles para que usted pueda elegir el que mejor se adapte a su empresa:

  • Limpieza de bases de datos: Diseñada para empresas con grandes bases de datos de números, nuestro paquete de limpieza de bases de datos le permite identificar números no utilizados o inactivos.
  • Portabilidad: Este paquete, desarrollado para resolver problemas de portabilidad numérica para distintos tipos de empresas, permite la búsqueda de portabilidad de números en tiempo real para optimizar el enrutamiento de mensajes y de voz. Incluye todas las características del
  • Roaming: Dirigido principalmente al segmento de clientes financieros, el paquete proporciona información de roaming para optimizar el enrutamiento, la prevención de fraudes en cajeros automáticos y mucho más.

Con la ayuda de la búsqueda de números tendrá una mejor visión de su base de datos de usuarios, así como de su comportamiento, y podrá comprobar el formato del número de teléfono para evitar equivocaciones.

Después de enviar mensajes promocionales a sus clientes y analizar los informes de entrega, en ocasiones verá la gran diferencia entre los datos del usuario y el número de mensajes enviados. Para evitar un desperdicio de dinero, es aconsejable comprobar/limpiar su base de datos antes de enviar cualquiera de sus campañas. Mejorar la precisión y la relación costo-beneficio de las iniciativas móviles es clave cuando usted tiene una gran base de datos de usuarios ya que le ahorra más dinero.

La búsqueda de números puede ayudarle a comprender mejor a sus clientes. Vea cuando estén de viaje y ofrézcales servicios personalizados.

¿CÓMO FUNCIONA LA BÚSQUEDA DE NÚMEROS?

El siguiente ejemplo muestra cómo obtener información sobre la búsqueda de números usando nuestra API:

JSON
POST /number/1/query HTTP/1.1
Host: api.infobip.com
Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=
Content-Type: application/json
Accept: application/json
{ 
   "to":["41793026727"]
}

El parámetro "to" es una lista de todos los números que desea comprobar.

Aquí está el resultado:

JSON
 HTTP/1.1 200 OK
Content-Type: application/json
 
{ 
   "results":[ 
      { 
         "to":"41793026727",
         "mccMnc":"22801",
         "imsi":"228012120181810",
         "originalNetwork":{ 
            "networkPrefix":"79",
            "countryPrefix":"41"
         },
         "ported":false,
         "roaming":false,
         "status":{ 
            "groupId":3,
            "groupName":"DELIVERED",
            "id":5,
            "name":"DELIVERED_TO_HANDSET",
            "description":"Message delivered to handset"
         },
         "error":{ 
            "groupId":0,
            "groupName":"OK",
            "id":0,
            "name":"NO_ERROR",
            "description":"No Error",
            "permanent":false
         }
      }
   ]
}

Como ya hemos dicho, existe una gran diferencia entre las búsquedas de número SYNC y ASYN . Lo guiaremos a través de ambas, por cada línea de código. Una búsqueda de número de SYNC es una solución más sencilla y perfecta si usted tiene un código en su aplicación que sólo se ejecutará correctamente en vez que se haya recibido la respuesta API. Si una llamada API es SYNC, la búsqueda de número se realizará antes de que la aplicación reciba la respuesta de una llamada API. Esto significa que el código de la aplicación debe manejar adecuadamente la espera de una respuesta HTTP para que los usuarios no perciban la espera de la respuesta durante la búsqueda de números como latencia o retraso en el rendimiento de su aplicación.

JSON
POST /nc/1/query HTTP/1.1
Host: api.infobip.com
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Content-Type: application/json
 
{ 
   "to":[ 
      "41793026727",
      "41793026728",
      "41793026729"
   ]
}

El resultado de la búsqueda de número será recibido directamente en la respuesta:

JSON
HTTP/1.1 200 OK
Content-Type: application/json
 
{ 
   "results":[ 
      { 
         "to":"41793026727",
         "mccMnc":"22801",
         "originalNetwork":{ 
            "networkPrefix":"79",
            "countryPrefix":"41"
         },
         "ported":false,
         "roaming":false,
         "status":{ 
            "groupId":2,
            "groupName":"UNDELIVERABLE",
            "id":9,
            "name":"UNDELIVERABLE_NOT_DELIVERED",
            "description":"Message sent not delivered"
         },
         "error":{ 
            "groupId":1,
            "groupName":"HANDSET_ERRORS",
            "id":27,
            "name":"EC_ABSENT_SUBSCRIBER",
            "description":"Absent Subscriber",
            "permanent":false
         }
      }
   ]
}

A diferencia de las llamadas SYNC, las llamadas ASYNC no esperan a que se realice la búsqueda de números antes de devolver una respuesta API. Cuando se realiza una búsqueda de número, se ejecuta una función de «devolución de llamada» y la información de búsqueda de número se envía a la dirección notifyUrl especificada por usted en la solicitud.

JSON
POST /nc/1/notify HTTP/1.1
Host: api.infobip.com
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Content-Type: application/json
 
{ 
   "to":[ 
      "41793026727",
      "41793026728",
      "41793026729"
   ],
   "notifyUrl":"http://example.com/notifyUrl",
   "notifyContentType":"application/json"
}

Sus suscriptores móviles suelen cambiar de números, estár en roaming o cambian de proveedor, pero conservan su número de teléfono original. Saber qué números móviles están en uso o disponibles, o qué red está utilizando su cliente actualmente, puede mejorar enormemente la precisión y la eficacia en función de los costos para muchos tipos de empresas. ¡Ojalá este blog le haya servido para limpiar su base de datos y contactar a sus usuarios!