Il termine descrive da dove viene la risposta, non cosa si ottiene. Una rete mobile mantiene un registro dei propri abbonati. Un lookup è una domanda posta a quel registro, tramite un servizio che vi ha accesso. Ciò che il registro può dire varia da rete a rete.
Cos'è l'HLR in sé?
Il registro degli abbonati all'interno di una rete mobile.
GSM è lo standard mobile su cui la maggior parte delle reti è stata costruita prima dei core a commutazione di pacchetto. Al suo interno, l'Home Location Register conserva il record di ogni abbonato appartenente a quella rete, incluso quale elemento di rete lo sta servendo. L'architettura successiva ha trasferito lo stesso ruolo all'Home Subscriber Server. I due nomi descrivono la stessa funzione in generazioni diverse di rete.
Nessuno dei due è un elenco pubblico. Non esiste un unico registro globale da interrogare. Nessun lookup restituisce un nome o un indirizzo di un abbonato. Ciò che un lookup può ottenere sono le informazioni di instradamento e di stato che la rete servente è disposta a fornire.
Cosa può effettivamente dire un lookup?
Quale rete detiene il numero in quel momento, che tipo di linea è e se è attiva.
| Cosa chiedi | Cosa ottieni | Cosa non stabilisce |
|---|---|---|
| Lookup base | Paese, rete servente e rete emittente, tipo di linea, se il numero è stato portato | Se qualcuno lo sta usando |
presence | Se il numero è registrato e in grado di ricevere traffico in quel momento | Chi tiene in mano il dispositivo |
roaming | Se è in roaming, e su quale rete | Dove si trova la persona |
sim_swap | Quando la SIM è stata cambiata l'ultima volta | Perché è stata cambiata |
porting | Quando il numero ha cambiato rete l'ultima volta, e il relativo record | Qualsiasi informazione sull'abbonato |
classification | Il servizio allocato preciso dell'intervallo, dove il lookup base fornisce categorie ampie | Perché l'intervallo è stato allocato in quel modo |
score | Un punteggio di credibilità da 0 a 100 | Come è stato calcolato, cosa che le altre proprietà non possono dirti |
Un lookup base distingue già la rete che serve un numero dalla rete che lo ha emesso. È così che un numero portato risulta visibile: le due reti differiscono e un flag ported lo segnala.
Un controllo in tempo reale dimostra qualcosa?
Dimostra che la rete ha risposto, e nient'altro.
Un risultato di presenza riflette un'interrogazione in tempo reale alla rete in cui il numero è registrato. Quindi reachable: true significa che la rete ha dichiarato il numero in grado di ricevere traffico in quel momento. Non identifica il titolare. Non è un consenso. Le FAQ di libphonenumber di Google dicono lo stesso riguardo allo stabilire chi detiene un numero:
Do not rely on libphonenumber to determine whether numbers are currently assigned to a specific user and reachable.
Un numero raggiungibile non significa nemmeno che un messaggio arriverà. La consegna dipende dal mittente, dal percorso e dal filtraggio della destinazione, nessuno dei quali viene consultato da un lookup.
Come si legge una risposta che nessuno ha potuto dare?
Dallo stato sulla proprietà, che distingue tre esiti.
Ogni proprietà richiesta riporta il proprio status:
ok: la proprietà ha ricevuto risposta e il valore è presente.unavailable: nessuna risposta è arrivata, quindi il blocco ènull.inconclusive: è arrivata una risposta che non risolve la proprietà.
Solo ok include un valore, e solo ok viene fatturato. Resta la distinzione che conta per un flusso di registrazione. Un blocco di presenza con status: unavailable significa che nessuno ha potuto rispondere. Uno con status: ok e reachable: false significa che la rete ha dichiarato il numero non in grado di ricevere traffico. Trattare il primo come il secondo trasforma una domanda senza risposta in un cliente rifiutato.
Come se ne esegue uno su Bird?
Invia il numero, specificando le proprietà desiderate.
POST /v1/lookup/phone-number accetta un phone_number e un array opzionale type che può contenere classification, porting, presence, roaming, sim_swap e score. Ometti type per il solo lookup base. Ogni proprietà aggiunta viene fatturata separatamente e solo quando viene consegnata. Richiedi presence quando ti serve un controllo in tempo reale, non come impostazione predefinita.
Gestisci la logica in base a ok. Tratta ogni altro stato come non risposto. Il vocabolario degli stati è un open enum, quindi un valore non riconosciuto è uno stato futuro, non un errore. Ragionare in questo modo resta corretto man mano che il vocabolario cresce. La guida al lookup copre il flusso. Quali controlli di validazione del numero di telefono copre quali domande ogni tipo di controllo può risolvere.
In breve
HLR è un nome dell'architettura di rete, non un database pubblico.
L'Home Location Register è il registro degli abbonati nelle reti mobili più vecchie, con l'Home Subscriber Server che svolge lo stesso ruolo nelle reti successive.
Un risultato raggiungibile non è una persona.
Il fatto che la rete risponda che un numero può ricevere traffico non dice nulla su chi tiene in mano il dispositivo né se ha acconsentito a ricevere comunicazioni.
Ogni risposta ha un proprio stato.
Bird riporta ogni proprietà richiesta come ok, unavailable o inconclusive, e solo ok include un valore.
Unavailable e unreachable sono risposte diverse.
Una significa che nessuno ha potuto rispondere. L'altra significa che la rete ha comunicato che il numero non può ricevere traffico in quel momento.