Procesamiento de números de teléfono
Puede escribir un número de teléfono casi como quiera: con espacios, guiones, paréntesis, con +, con 00 o sin prefijo internacional. Pero antes de que salga un mensaje, debe quedar claro a qué red móvil va dirigido. Por eso el portal es tolerante al introducir un número y estricto al enviar: nada que no podamos asignar a un operador concreto llega a enviarse.
Cómo leemos un número
Al introducirlo, cada número pasa por el mismo tratamiento:
- Eliminamos todo lo que no sea un dígito: espacios, guiones, puntos, paréntesis y el signo
+. - Quitamos el
00inicial: para nosotros, la forma internacional00420…es lo mismo que+420….
Por tanto, la forma de escribirlo no importa: estas cuatro variantes acaban siendo un mismo número:
| lo que introduce | resultado |
|---|---|
+420 777 888 555 |
420777888555 |
00420777888555 |
420777888555 |
(420) 777-888-555 |
420777888555 |
420.777.888.555 |
420777888555 |
El signo + se elimina como cualquier otro carácter que no sea un dígito. Por tanto, da igual que escriba el número como +420, 00420 o simplemente 420.
Números locales y prefijo del país
Un número local, por ejemplo 777 888 555, no indica a qué país pertenece. Por eso buscamos paso a paso el país cuyo prefijo internacional debemos añadir:
- El número ya lleva un prefijo internacional: lo dejamos tal cual.
- El país del contacto: si el contacto en cuestión tiene un país asignado, lo usamos.
- El país indicado al enviar: en caso contrario, tomamos el país que haya seleccionado en el formulario o enviado en la API.
- El país de su cuenta: si tampoco se indica allí, usamos el país configurado en su cuenta de BulkGate. Lo más probable es que envíe a su propio país.
Según el país encontrado, añadimos el prefijo internacional y eliminamos el posible cero inicial:
| lo que introduce | país encontrado | resultado |
|---|---|---|
777 888 555 |
Chequia | 420777888555 |
0777 888 555 |
Chequia | 420777888555 |
+48 600 700 800 |
Chequia | 48600700800: se conserva su propio prefijo internacional |
Los números que ya llevan un prefijo internacional no se modifican. Así que no hace falta depurar de antemano un archivo que mezcle números locales e internacionales. Dónde se selecciona el país y cómo introducir a la vez contactos de varios países se explica en Asignar país a los contactos.
Si envía a un país distinto del de su cuenta, no confíe en el último paso. Un número local recibiría el prefijo de su país y acabaría siendo inválido. Por eso, seleccione el país en el contacto o al enviar, o escriba los números en formato internacional desde el principio.
Algunos países tienen un prefijo nacional más largo que un solo cero, o no tienen ninguno. Para ellos mantenemos reglas propias, de modo que la notación local también funciona allí; aun así, reescribirla en formato internacional sigue siendo la opción más segura.
Validación del número y asignación a la red
Para que un mensaje se envíe, no basta con que el número parezca un número. Tenemos que asignarlo a una red móvil concreta. Por eso siempre validamos el número completo:
- Añadimos el prefijo internacional si falta, tal como se describe en Números locales y prefijo del país.
- Buscamos el prefijo de red: a partir de los dígitos que siguen al prefijo internacional determinamos a qué red móvil pertenece el número.
- Comprobamos la longitud: el resto del número debe tener la longitud asignada a ese prefijo de red.
Solo la red encontrada determina la ruta que sigue el mensaje y su precio.
Un número no reconocido se marca como Número invalido y no sigue adelante:
- No se crea ningún mensaje. Tampoco lo encontrará en el historial; consulte El mensaje no se ha entregado.
- No se cobra nada. Estos números no cuentan ni en el resumen de la campaña ni en el cálculo del precio.
- La campaña continúa. Al resto de destinatarios se les envía con normalidad y durante el envío puede seguir el recuento de números inválidos.
Que un número se reconozca no significa todavía que el mensaje vaya a enviarse. Puede detenerlo el blacklist o la baja de suscripción, así como el ajuste Restricciones de envío de su cuenta, que contiene la lista de países a los que puede enviar.
Números portados a otro operador
Un número que el destinatario ha portado a otro operador conserva su prefijo de red original. Por eso, durante la validación lo asignamos primero al operador original. En el momento del envío utilizamos el registro HLR para averiguar en qué red está realmente el número y cobramos el mensaje al precio de ese operador.
Dónde se realiza la comprobación
| dónde | qué significa |
|---|---|
| Importación a la agenda de contactos | solo se guardan los contactos con un número reconocido; las demás filas se omiten; el número se guarda en formato internacional junto con su país, prefijo internacional y red |
| Importación a una campaña | la misma comprobación que en la agenda de contactos, tanto si añade números desde un archivo, desde una vCard o a mano |
| Mensaje de prueba | el número debe superar la comprobación; de lo contrario, la prueba no se envía |
| Blacklist | solo se puede añadir un número reconocido |
| API y módulos | los números pasan por la misma comprobación que en el portal |
Cómo verificar los números de antemano
Para ir sobre seguro antes de un envío, pase los números a la comprobación de números de teléfono. Para cada número obtendrá si es válido, a qué país pertenece, su prefijo internacional y la red en la que está. Un número no reconocido se devuelve con valid: false y la red unknown.
Desde PHP puede llamar a la misma comprobación mediante el NumberChecker de nuestro SDK.
La comprobación es gratuita y resulta muy útil para depurar periódicamente su base de contactos: resuelva los números marcados como unknown antes de que una campaña dependa de ellos.
Cuando un número es válido pero no lo conocemos
Los planes de numeración cambian: los operadores obtienen nuevos rangos y aparecen redes virtuales. Por eso puede ocurrir que un número que funciona quede marcado en nuestro sistema como Número invalido, y eso es un caso para el soporte. Añadiremos el rango a nuestra base de datos de redes y el número empezará a funcionar.
- En el menú del portal, haga clic en
Apoyoy después enContáctenos - En el campo
Tema, elijaSoporte de contacto - Seleccione el
Paísal que pertenece el número - En el segundo campo
Tema, escriba de qué trata el aviso, por ejemploNúmero de teléfono no reconocido - En
Descripcion del problema, indique el número completo en formato internacional, el operador si lo conoce y dónde se encontró con el problema - Haga clic en
Enviar
También ayuda una muestra: si todo un rango de números se comporta igual, envíe varios de ellos. A partir de un solo número no podemos saber si se trata de una errata o de un rango que nos falta.
Si no ha iniciado sesión en el portal, utilice el formulario de contacto: elija el mismo Tema y añada el Email con el que está registrada su cuenta.
Gracias por su opinión.