Para enviar SMS ou verificar um número de telemóvel com a CaptainVerify, cada número da sua base tem de estar escrito num formato que todos os operadores compreendem. Esse formato chama-se E.164. A sua regra principal cabe numa linha. As suas exceções fazem falhar as importações.

Passo 1: o indicativo do país

Cada número começa pelo indicativo do país, também chamado indicativo internacional. Tem entre 1 e 3 algarismos: 351 para Portugal, 34 para Espanha, 33 para França, 55 para o Brasil.

Na norma E.164, este indicativo escreve-se sempre precedido do sinal «+».

O «00» que marca a partir de um telefone português leva ao mesmo sítio, mas pertence à rede de partida. Cada país tem o seu: 00 em Portugal como no resto da Europa, 011 nos Estados Unidos e no Canadá, 0011 na Austrália. Um número guardado na forma 00351912345678 obriga então cada destinatário a traduzir a sua convenção local. O «+» lê-se em todo o lado. Guarde-o nas suas colunas.

Passo 2: a norma E.164

E.164 é a recomendação da União Internacional das Telecomunicações que define como escrever um número para que seja encaminhável a partir de qualquer rede. Vale para as chamadas como para os SMS.

O número escreve-se num só bloco, com o «+» e depois os algarismos. E não passa dos 15 algarismos, indicativo incluído, sem contar o «+».

Como é um número em formato E.164

Tomemos o 912 345 678, um telemóvel português.

  • Indicativo do país: 351
  • Número nacional: 912 345 678
  • Portugal não usa zero inicial, o número passa inteiro
  • Resultado: +351912345678

O número nacional reúne o algarismo que identifica o tipo de linha (9 para os telemóveis, 2 para os fixos) e o número do assinante. Ao contrário de França ou da Alemanha, Portugal não tem prefixo nacional a retirar antes de acrescentar o indicativo.

Os erros que fazem falhar uma conversão

  • Os espaços, pontos, traços e parênteses ficam na base. +351 912 345 678 tem de passar a +351912345678.
  • Acrescenta-se um zero que Portugal não usa. Um +3510912345678 será recusado pelo operador.
  • O 00 fica à frente do indicativo. Escreve-se +351, nunca 00351 nem 00+351.
  • A Itália conserva o 0 inicial dos seus números fixos. Um fixo de Roma passa a +390612345678. Sem esse 0 o número não existiria. Os telemóveis italianos escapam à regra, porque já começam por 3.
  • O Excel engole o «+» ou passa o número para notação científica. Formate a coluna como texto antes da importação, caso contrário 351912345678 aparecerá como 3,51912E+11.

Validar um número com uma expressão regular

Depois de convertido o número, uma expressão regular verifica a sua forma. Em PHP: preg_match('/^\+[1-9]\d{1,14}$/', $numero). Aceita um «+», um primeiro algarismo entre 1 e 9, e depois de 1 a 14 algarismos.

Para os telemóveis portugueses, muitos guias propõem ^\+3519\d{8}$. Essa versão abrange demasiado. Nos metadados da libphonenumber apenas as séries 91, 92, 93 e 96 contam como telemóvel, o que deixa de fora o 94, o 95, o 97, o 98 e o 99. O intervalo realmente móvel escreve-se ^\+351(?:9[1-36]\d{2}|9480)\d{5}$.

Num catálogo multipaís, cada país tem os seus comprimentos e os seus prefixos. Essa tabela torna-se depressa impossível de manter à mão. A Google publica a libphonenumber em Java, C++ e JavaScript, enquanto os ports de PHP e Python são mantidos pela comunidade. Numa campanha de SMS, um 95 aceite por engano segue à mesma no lote e é faturado.

Uma expressão regular valida uma forma. Sobre o que está no fim da linha nada diz.

Um número bem formatado pode continuar inacessível

Um número conforme a E.164 é encaminhável. Pode ainda assim estar desativado há 3 anos ou ter sido portado para outro operador.

O HLR Lookup consulta o registo do operador e devolve o estado real da linha, ativa ou desligada, com o operador que a gere hoje. Numa base recolhida online, este controlo retira os números mortos antes de a campanha de SMS os faturar.

Para as empresas com clientes fora de Portugal, converter toda a base para o formato internacional condiciona a receção dos SMS de marketing como dos SMS transacionais.

Converter os seus números para o formato E.164

Cole até 100 números, um por linha, misturados ou não. Cada número que traz o seu indicativo é reconhecido sozinho, entre 215 países. Uma linha que a ferramenta não sabe converter sai tal como está, no seu lugar, para que a possa reencontrar.

Registre-se agora para melhorar sua capacidade de entrega !
100 créditos de e-mail gratuitos