Trois questions différentes se cachent derrière le mot validation. L'une demande si le numéro a la forme d'un vrai numéro. L'autre demande si un réseau répond pour lui. La troisième demande si la personne à qui vous parlez le détient. Chacune nécessite une vérification différente. Chacune laisse quelque chose d'inconnu.
Que peut vous apprendre une vérification de format ?
Que le numéro appartient à une plage qu'un opérateur est autorisé à attribuer.
La bibliothèque libphonenumber de Google considère une plage comme valide lorsque les opérateurs sont libres d'en attribuer les numéros aux abonnés. Sa FAQ :
A valid number range is one from which numbers can be freely assigned by carriers to users.
La validité ne dit rien sur le fait qu'un numéro particulier ait été attribué ou qu'il réponde. La même page :
Do not rely on libphonenumber to determine whether numbers are currently assigned to a specific user and reachable.
Une vérification de format répond donc à une question sur le plan de numérotation. Elle ne dit rien sur le fait que la plage ait été attribuée à quiconque, ni sur le fait qu'un téléphone sonne.
Composer le numéro n'est pas non plus un test de substitution. La FAQ donne deux raisons pour lesquelles un appel peut aboutir vers un numéro qui n'est pas valide. Certains pays ignorent les chiffres supplémentaires en fin de numéro, de sorte que 1800 MICROSOFT atteint un numéro plus court. Pendant un renumérotage, certains opérateurs maintiennent d'anciens numéros en service après qu'ils ont cessé de fonctionner de manière générale.
Qu'apporte une consultation réseau ?
Les éléments de la réponse que seul un réseau détient.
Une consultation interroge les sources d'opérateurs et de renseignements sur les numéros à propos d'un numéro précis plutôt que de sa plage. Cela fait passer plusieurs questions d'inconnues à résolues :
| Vérification | Ce qu'elle retourne | Ce qu'elle laisse en suspens |
|---|---|---|
| Format | Le numéro est analysé et se situe dans une plage attribuable | Si la plage est attribuée à quelqu'un |
| Type de ligne | Si le numéro est mobile, fixe, VoIP, gratuit ou machine-à-machine | À quel service la plage est allouée à un niveau plus fin |
| Réseau de desserte | Le réseau qui répond actuellement pour le numéro, et celui qui l'a émis | Si un terminal est allumé |
| État de portage | Quand le numéro a changé de réseau pour la dernière fois | Rien sur l'abonné |
| Présence | Si le numéro est enregistré et peut recevoir du trafic en ce moment | Qui tient le terminal |
| Possession | Rien. Une consultation n'interroge jamais la personne | Si votre utilisateur contrôle le numéro |
La dernière ligne est celle qui compte pour un flux d'inscription. Aucune consultation n'établit la possession, car une consultation n'implique jamais la personne.
Que peut seul prouver un défi de vérification ?
Que la personne présente dans votre flux peut recevoir du trafic à ce numéro.
La FAQ de libphonenumber considère un défi comme la seule réponse viable, car les pratiques de numérotation diffèrent trop d'un pays à l'autre pour que quoi que ce soit d'autre puisse trancher :
This is not technically feasible without such a verification step given the complicated international world we live in, with varying standardization practices in different regions.
Envoyer un code et l'accepter en retour est donc un type de vérification différent des deux précédents. Cela coûte un message et un aller-retour. C'est aussi le seul qui lie le numéro à la personne en face de vous. Que signifie OTP couvre le code lui-même, et le guide Verify couvre l'exécution du défi.
Comment lire une vérification à laquelle personne n'a pu répondre ?
Comme inconnue, ce qui n'est pas la même chose que non.
Un numéro dont la présence n'a pas pu être déterminée n'est pas un numéro injoignable. Traiter les deux de la même manière bloque des clients dont les réseaux n'ont tout simplement pas répondu.
Bird les distingue dans la réponse. Chaque propriété que vous demandez signale son propre status :
ok: la propriété a reçu une réponse et sa valeur est présente.unavailable: aucune réponse n'est arrivée, le bloc est doncnull.inconclusive: une réponse est arrivée mais ne résout pas la propriété.
Seul ok porte une valeur. Un bloc de présence avec status: ok et reachable: false est un vrai négatif, car le réseau a répondu et a signalé le numéro comme injoignable.
Branchez-vous donc d'abord sur ok. Traitez tout le reste comme sans réponse. Le vocabulaire de statuts est un enum ouvert : une valeur non reconnue est un futur statut, pas une erreur. Se brancher sur ok reste donc correct à mesure que le vocabulaire s'enrichit.
Comment choisir un fournisseur de consultation téléphonique ?
Choisissez le fournisseur dont les champs, la couverture de marché et les règles de facturation correspondent à la décision que vous devez prendre.
| Point de décision | Lookup Bird | Questions à poser sur un autre fournisseur |
|---|---|---|
| Syntaxe et validité | Exige un numéro international et indique s'il correspond au plan de numérotation. | Normalise-t-il l'entrée et rejette-t-il les numéros mal formés sans deviner ? |
| Type de ligne et opérateur | Retourne le type de ligne, le réseau de desserte et le réseau émetteur dans le résultat de base. | Quels champs d'opérateur et de type de ligne sont inclus, et sont-ils actuels ou d'attribution ? |
| Portage | Signale l'état de portage dans le résultat de base et peut retourner des données de portage supplémentaires. | Affiche-t-il l'opérateur actuel, l'opérateur d'origine ou l'historique des mouvements ? |
| Fraîcheur | La présence et l'itinérance interrogent les conditions réseau actuelles ; les autres champs décrivent la numérotation et l'attribution. | Quels champs sont en temps réel, en cache ou horodatés ? |
| Résultats inconnus | Chaque propriété demandée a un statut ok, unavailable ou inconclusive. | Pouvez-vous distinguer une propriété sans réponse d'un résultat négatif ? |
| Couverture de marché | Une propriété peut être indisponible pour un numéro ou un opérateur même lorsque la consultation aboutit. | Quels pays et opérateurs prennent en charge chaque propriété ? |
| Facturation | La consultation de base est facturée une fois. Les propriétés optionnelles ne sont facturées que si elles sont délivrées, et les propriétés en échec ne sont pas facturées. | Que coûte une propriété sans réponse, et quelles options modifient la facture ? |
Les alternatives classées documentent des compromis différents. Twilio Lookup propose un formatage et une validation de base. Des modules optionnels couvrent le type de ligne, l'état de la ligne, l'échange de SIM, l'identité, le nom de l'appelant, les numéros réattribués et les signaux de risque. La couverture et les conditions d'approbation varient selon le module et le marché.
La documentation de validation téléphonique d'Abstract API décrit les champs de validité, pays, opérateur et type de ligne. La page de validation et consultation d'opérateur de Veriphone décrit les résultats de validité, pays, opérateur, type de ligne et opérateur actuel. Les deux publient des règles de couverture et de crédits séparées. La couverture documentée, le comportement en cas de résultat inconnu et la facturation de chaque fournisseur déterminent s'il convient à une décision d'inscription ou de routage.
Comment consulter un numéro sur Bird ?
Envoyez le numéro au point de terminaison de consultation. Lisez les blocs que vous avez demandés.
POST /v1/lookup/phone-number prend un phone_number et un tableau optionnel type. Chaque consultation retourne les réseaux de desserte et émetteur, l'état de portage, le pays et le type de ligne. Le tableau type ajoute classification, porting, presence, roaming, sim_swap ou score, chacun facturé séparément et uniquement lorsqu'il est délivré. La consultation ne contacte pas le numéro.
Réutiliser un Idempotency-Key retourne le résultat stocké au lieu d'effectuer et de facturer une seconde consultation. Le guide de consultation couvre le flux et la référence API couvre les champs.
En bref
Valide signifie que la plage existe, pas que le numéro est utilisé.
La bibliothèque de numéros de téléphone de Google définit une plage valide comme une plage à partir de laquelle les opérateurs peuvent librement attribuer des numéros aux utilisateurs.
Un appel abouti ne prouve pas qu'un numéro est valide.
Certains pays ignorent les chiffres supplémentaires en fin de numéro, et certains opérateurs maintiennent d'anciens numéros en service pendant un renumérotage bien après qu'ils cessent de fonctionner ailleurs.
Seul un défi prouve la possession.
Envoyer un code et le recevoir en retour est la seule vérification qui établit qui détient le numéro, c'est pourquoi la vérification existe en tant qu'étape distincte.
Une vérification sans réponse n'est pas une réponse négative.
Bird signale chaque propriété demandée avec son propre statut, de sorte qu'une propriété à laquelle personne n'a pu répondre reste distinguable d'une propriété dont la réponse est non.