Products

O que é Number Lookup e como utilizar para validar números?

Tudo que você precisa saber sobre validação de números, em um tutorial com os códigos, pesquisas e funcionalidades do Number Lookup

October 27 2016

DEFINIÇÃO DE NUMBER LOOKUP

Number lookup , também conhecido, como Pesquisa de HLR (Home Location Register) ou Consulta de Rede, é um banco de dados central que contém detalhes de cada assinante de telefonia móvel autorizado a utilizar a rede central GSM.

IMSI = MCC+MNC+MSIN E TEM 15 DÍGITOS

Cada número de telefone possui informações que o diferencia de qualquer outro número de telefone no mundo. Primeiramente, há a IMSI (International Mobile Subscriber Identity), um número de 15 dígitos, que fornece informações sobre o MCC (Mobile Country Code), MNC (Mobile Network Code) e MSIN (Mobile Subscription Identification Number).

Como você pode ver, os três primeiros dígitos na IMSI são os códigos do país de origem do número (para a Croácia, é 219). Depois seguem dois números (01), que identificam a rede, neste caso, a T-Mobile Croácia. Já os 10 últimos dígitos, descrevem o MSIN, um número exclusivo de 10 dígitos que qualquer operadora utiliza para identificar o telefone celular do usuário.

O segundo elemento mostrado pelo Number Lookup é o status de portabilidade do número - se ele foi portado ou não. É comum que um assinante de uma operadora de rede móvel mude de operadora, mas mantenha o seu número antigo. Isso é comum em quase todos os países do mundo.

E o terceiro aspecto: Number Lookup também informa se um número de telefone está em roaming. Esta informação pode ser extremamente útil, quando você tenta proteger seus clientes e evitar fraudes na sua conta..

NUMBER LOOKUP: SÍNCRONA VS. ASSÍNCRONA

Há duas maneiras de ter sucesso com Number Lookup. Uma delas é síncrona, ou seja, quando um cliente pede a consulta de número. O importante neste tipo de pesquisa é que você precisa esperar uma consulta ser processada e entregar a resposta para que outra possa ser enviada. Algumas vezes, se houver uma lista de números a ser verificada, pode haver uma grande fila.

Por outro lado, Number Lookup assíncrona funciona diferente. Você pode enviar quantas solicitações desejar, sem ter de esperar pela resposta. Isso pode ser muito conveniente se há um grande banco de dados com números de telefone ou vários bancos de dados. Então, qual é a principal diferença entre Number Lookup síncrona e assíncrona?

ECONOMIA NO TEMPO DE RESPOSTA

A resposta que você recebe pesquisando números com a REST HTTP API síncrona é enviada após cada solicitação. Embora a resposta apareça em apenas alguns segundos, o período entre o envio de um pedido e o recebimento da resposta pode ser prolongado devido a problemas técnicos ou de sistema. Isso pode tornar o sistema mais lento, fazendo com que você espere pela resposta antes de poder fazer outra pesquisa.

Com a API assíncrona, há uma melhora drástica na velocidade, uma vez que você pode enviar vários pedidos antes de receber respostas. O diferente neste caso (além da velocidade) é que a integração desta versão é um pouco mais complicada, pois é necessário um servidor de call-back no lado do cliente, para analisar a resposta do pedido específico.

Os casos de uso mais frequentes são:

  • Verificação de números ativos/inativos
  • Informações sobre números em roaming
  • Verificação do status de portabilidade do número
  • Identificação da melhor rota para mensagens SMS e de Voz
  • Verificação de tipo de número (por exemplo: telefone fixo, máquina para máquina, celular etc.)

Na Infobip, temos três pacotes principais disponíveis*, para que você escolha o melhor para o seu negócio:

  • Limpeza de Banco de Dados: Projetado para empresas com banco de dados de muitos números, nosso pacote de Limpeza de Bancos de Dados identifica números não utilizados e inativos.
  • Portabilidade: Desenvolvido para solucionar os problemas de portabilidade de números, este pacote permite pesquisas de portabilidade de números em tempo real para otimizar o roteamento de mensagens SMS e de voz. Inclui todos os recursos do pacote de Limpeza de Banco de Dados.
  • Roaming: Criado, principalmente, para atender o segmento financeiro, o pacote fornece informações de roaming para o roteamento otimizado, prevenção de fraudes em caixas eletrônicos e muito mais.

*Consulte a disponibilidade para o Brasil.

Com a ajuda do Number Lookup, você terá uma visão melhor do seu banco de dados de usuários, seu comportamento, e verificará os números de telefone para evitar enganos indesejados.

Após o envio de mensagens promocionais para os seus clientes e análise dos relatórios de entrega, você verá diferença entre os dados dos usuários e o número de mensagens entregues. Para evitar desperdício de dinheiro, é aconselhável verificar/limpar seu banco de dados antes de enviar qualquer campanha. Melhorar a precisão nas iniciativas móveis é crucial quando há um grande banco de dados de usuários, pois isso faz com que você economize mais dinheiro.

Number lookup pode ajudá-lo a entender melhor os seus clientes. Saiba quando eles estão viajando e ofereça serviços personalizados.

Como Number Lookup funciona?

Veja no exemplo abaixo como obter informações do Number lookup usando a nossa 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"]
}

O parâmetro ‘to’ (para) é a lista de todos os números que você deseja verificar.

Aqui está o 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 já dissemos, há uma grande diferença entre Number Lookup síncrona e assíncrona. Vamos orientá-lo nos dois tipos, por linha de código. Number Lookup síncrona é uma solução mais fácil e perfeita se você tiver um código no seu aplicativo que só será executado corretamente quando a resposta da API for recebida. Se for síncrona, Number Lookup será realizada antes do aplicativo receber a resposta de uma chamada de API. Isso significa que o código do aplicativo deve gerenciar adequadamente a espera pela resposta HTTP, para que os usuários não percebam a espera pela resposta do Number Lookup como latência ou retardo no desempenho dentro do aplicativo.

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

O resultado do Number Lookup será recebido diretamente na resposta:

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
         }
      }
   ]
}

Ao contrário das chamadas síncronas, as chamadas assíncronas não esperam Number Lookup ser realizado antes da resposta da chamada de API ser retornada. Quando Number Lookup é feito, a função de "callback" é executada e as informações do Number Lookup são enviadas para o notifyUrl que você especificou no pedido.

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"
}

Seus assinantes móveis muitas vezes mudam de número, entram em roaming ou trocam de operadora, mantendo o número de telefone original. Saber quais números de telefone celular estão em uso e disponíveis, ou qual rede seu cliente está usando atualmente, pode melhorar significativamente a precisão e a economia em muitos tipos de negócio. Felizmente, este blog ajudou você a manter um banco de dados mais limpo e a atingir os seus usuários.