Products

Ricerca del numero: cos’è e come utilizzarla per la convalida

Tutto ciò che c'è da sapere sulla convalida del numero, un tutorial passo passo sulle funzionalità e i punti interrogativi della ricerca del numero.

October 27 2016

LA DEFINIZIONE DI RICERCA DEL NUMERO

La ricerca del numero, nota anche con le espressioni inglesi Number Lookup, HLR (Home Location Register) Lookup e Network Query, è un database centralizzato che contiene i dati di ciascun telefono cellulare autorizzato ad usare la rete GSM.

IMSI = MCC+MNC+MSIN. CONTIENE 15 CIFRE

Ogni numero di cellulare contiene informazioni che lo differenziano da qualsiasi altro numero al mondo. Per prima cosa c'è l'IMSI (International Mobile Subscriber Identity), un codice di 15 cifre contenente informazioni su MCC (Mobile country code), MNC (Mobile network code) ed MSIN (Mobile Subscription Identification number)

 { 
"results": [ 
{ 
"to": "3859927xxxxx", 
"mccMnc": "21901", 
"imsi": "219019906074188", 
"originalNetwork": { 
"networkName": "T-Mobile HR", "networkPrefix": "992", 
"countryName": "Croatia", 
"countryPrefix": "385" 
}, 
"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 
} 
} 
] 
} 

Come puoi vedere, le prime tre cifre dell'IMSI sono il prefisso internazionale del Paese (ad esempio, 219 in Croazia). Seguono quindi due numeri (01) necessari ad identificare la rete, in questo caso T-Mobile Croatia. Le ultime dieci cifre descrivono l'MSIN, una stringa di 10 cifre che gli operatori utilizzano per identificare il cellulare del cliente.

La ricerca mostra poi se il numero appartiene ancora all'operatore che lo aveva emesso inizialmente. Non di rado un cliente di un certo operatore passa a un altro operatore, scegliendo però di conservare il suo vecchio numero: succede in quasi tutti i Paesi al mondo.

Infine, la ricerca del numero segnala se il numero di cellulare è in roaming. Questa informazione può essere fondamentale quando provi a proteggere i clienti e impedire che i loro conti siano vittime di frodi.

RICERCA DEL NUMERO: SYNC VS. ASYNC

Ci sono due modi di eseguire la ricerca del numero. Uno è asincrono: il cliente invia una richiesta di ricerca del numero. Eseguendo questo tipo di ricerca, è necessario attendere che la richiesta venga elaborata e che venga fornita una risposta prima di poter procedere a una nuova richiesta. A volta, se a dover essere verificati sono molti numeri, la coda può diventare particolarmente lunga.

La ricerca asincrona del numero funziona invece in modo diverso. Potrai inviare tutte le richieste che vuoi senza dover attendere la risposta, una possibilità molto utile per chi ha un database di numeri di telefono di grandi dimensioni o diversi database. Qual è dunque la principale differenza tra la ricerca del numero sincrona e asincrona?

MIGLIORI TEMPI DI RISPOSTA

La ricerca del numero con l'API REST HTTP sincrona restituisce una risposta dopo ogni richiesta. Tale risposta dovrebbe essere teoricamente visibile in uno o due secondi, ma la realtà è che il lasso di tempo tra l'invio di una richiesta e la ricezione di una risposta può essere maggiore a causa di diversi problemi tecnici o di sistema. Il sistema può essere quindi più lento del previsto, e costringerti ad attendere la risposta prima di poter eseguire una nuova ricerca.

Con l'API asincrona, la velocità è molto superiore: è infatti possibile inviare più richieste prima di ricevere le risposte. La differenza, in questo caso, non sta solo nella velocità: l'integrazione di questa versione è leggermente più complessa, in quanto richiede un server di call-back sul lato client per analizzare la risposta.

Ecco i casi d'uso più frequenti:

  • verifica attività/inattività del numero
  • recupero informazioni sui numeri in roaming
  • verifica stato portatilità del numero di cellulare
  • ricerca del percorso migliore per SMS e messaggi vocali
  • Individuazione tipo di numero (ad es. linea fissa, machine-to-machine, cellulare ecc.)

Noi di Infobip offriamo tre pacchetti principali, così puoi scegliere quello che si adatta meglio alle tue esigenze:

  • Pulizia database Pensato per aziende con ampi database di numeri, il pacchetto di Pulizia del database consente di identificare i numeri inattivi e inutilizzati.
  • Portatilità Progettato per risolvere i problemi legati al passaggio del numero per vari tipi di aziende, questo pacchetto consente di eseguire ricerche specifiche sulla portatilità del numero in tempo reale, così da indirizzare il routing di messaggi vocali ed SMS. Contiene inoltre tutte le funzioni del pacchetto Pulizia database.
  • Roaming Questo pacchetto, creato principalmente per il segmento dei clienti che operano nel settore finanziario, offre dati sul roaming per ottimizzare il routing, la prevenzione delle frodi e molto altro.

Con l'aiuto della ricerca del numero potrai comprendere meglio il tuo database di utenti e il comportamento che seguono e verificare il formato del numero di telefono per evitare di inviare messaggi ai destinatari sbagliati.

Dopo aver inviato messaggi promozionali ai tuoi clienti e analizzato i report di consegna, a volte si nota un'ampia differenza tra i dati sugli utenti e il numero di messaggi consegnati. Per non sprecare denaro, è consigliabile verificare/pulire il tuo database prima di dare inizio a una campagna. Se il tuo database è molto corposo, migliorare l'accuratezza e la convenienza delle iniziative mobili è fondamentale per risparmiare.

La ricerca del numero può aiutarti a comprendere meglio i tuoi clienti, a sapere quando sono in viaggio e a offrire loro servizi personalizzati.

RICERCA DEL NUMERO: COME FUNZIONA?

Questo esempio mostra come ottenere dati tramite la ricerca del numero utilizzando la nostra 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"]
} 

Il parametro "to" è un elenco di tutti i numeri che vuoi controllare.

Ecco i risultati:

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

Come abbiamo già detto, c'è una notevole differenza tra la ricerca del numero sincrona e asincrona. Stringa dopo stringa, ti guidiamo alla loro scoperta. La ricerca sincrona è la soluzione più semplice, perfetta se nella tua app hai un codice che viene eseguito correttamente solo dopo la ricezione della risposta dell'API. Se la chiamata API è sincrona, la ricerca verrà completata prima che l'app riceva la risposta tramite chiamata API. Il codice dell'applicazione riuscirà quindi a gestire correttamente l'attesa di una risposta HTTP, e gli utenti non si accorgeranno di essere in attesa della risposta all'interno dell'app.

JSON

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

Il risultato della ricerca del numero verrà ricevuto direttamente nella risposta:

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

Al contrario delle chiamate sincrone, invece, quelle asincrone non comportano alcuna attesa del completamento della ricerca per la restituzione della risposta alla chiamata API. Al completamento della ricerca viene eseguita la funzione di "callback", e i dati sulla ricerca del numero vengono inviati all'URL di notifica specificato nella richiesta.

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

I clienti mobili nel tuo elenco cambiano spesso numero, vanno in roaming o cambiano operatore mantenendo però il loro numero originale. Sapendo quali numeri sono in uso e quali disponibili, o quali reti i clienti utilizzano attualmente, diversi tipi di attività possono migliorare notevolmente l'accuratezza e la convenienza delle proprie campagne. Ci auguriamo che questo articolo ti abbia aiutato a comprendere l'importanza di tenere pulito il database e a raggiungere più utenti.