Co sprawdza walidacja numeru telefonu?

Walidacja numeru telefonu sprawdza numer na podstawie reguł numeracyjnych danego kraju, co potwierdza, że numer może istnieć, a nie że ktokolwiek jest pod nim osiągalny.

Za słowem walidacja kryją się trzy różne pytania. Jedno pyta, czy numer wygląda jak prawdziwy numer. Drugie pyta, czy jakakolwiek sieć w ogóle go obsługuje. Trzecie pyta, czy osoba, z którą rozmawiasz, go posiada. Każde wymaga innego sprawdzenia. Każde pozostawia coś nieznanego.

Co może powiedzieć sprawdzenie formatu?

Że numer należy do zakresu, z którego operator może przydzielać numery.

Biblioteka libphonenumber Google'a traktuje zakres jako prawidłowy, gdy operatorzy mogą swobodnie przydzielać z niego numery abonentom. FAQ tej biblioteki:

A valid number range is one from which numbers can be freely assigned by carriers to users.

Prawidłowość nic nie mówi o tym, czy konkretny numer został przydzielony lub czy odbiera. Ta sama strona:

Do not rely on libphonenumber to determine whether numbers are currently assigned to a specific user and reachable.

Sprawdzenie formatu odpowiada więc na pytanie dotyczące planu numeracyjnego. Nie mówi nic o tym, czy zakres został komuś przydzielony, ani o tym, czy telefon dzwoni.

Wybranie numeru też nie jest testem zastępczym. FAQ podaje dwa powody, dla których połączenie może się zestawić z numerem, który nie jest prawidłowy. Niektóre kraje ignorują dodatkowe cyfry na końcu, więc 1800 MICROSOFT trafia na krótszy numer. Podczas zmiany numeracji niektórzy operatorzy utrzymują stare numery, choć ogólnie przestały już działać.

Co dodaje zapytanie sieciowe?

Elementy odpowiedzi, które posiada wyłącznie sieć.

Zapytanie (lookup) odpytuje źródła operatorskie i wywiadowcze o konkretny numer, a nie o jego zakres. Przenosi to kilka pytań ze stanu nieznanego na odpowiedź:

SprawdzenieCo zwracaCo wciąż pozostaje nieznane
FormatNumer jest parsowalny i mieści się w przydzielnym zakresieCzy zakres został komuś przydzielony
Typ liniiCzy numer jest komórkowy, stacjonarny, VoIP, bezpłatny czy maszynowy (M2M)Jaka usługa jest przypisana do zakresu z większą precyzją
Sieć obsługującaSieć aktualnie obsługująca numer oraz sieć, która go wydałaCzy aparat jest włączony
Stan przeniesieniaKiedy numer ostatnio zmienił siećNic o abonencie
ObecnośćCzy numer jest zarejestrowany i w tej chwili może odbierać ruchKto trzyma aparat
PosiadanieNic. Zapytanie sieciowe nigdy nie pyta osobyCzy Twój użytkownik kontroluje ten numer

Ostatni wiersz jest najważniejszy w kontekście rejestracji. Żadne zapytanie sieciowe nie ustala posiadania, ponieważ nigdy nie angażuje osoby.

Co może udowodnić jedynie wyzwanie weryfikacyjne?

Że osoba w Twoim procesie może odbierać ruch pod tym numerem.

FAQ libphonenumber traktuje wyzwanie jako jedyną skuteczną odpowiedź, ponieważ praktyki numeracyjne różnią się między krajami zbyt mocno, by cokolwiek innego mogło to rozstrzygnąć:

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.

Wysłanie kodu i przyjęcie go z powrotem to zatem inny rodzaj sprawdzenia niż dwa powyższe. Kosztuje jedną wiadomość i jedną wymianę komunikatów. Jest też jedynym sprawdzeniem, które wiąże numer z osobą przed Tobą. Co oznacza OTP opisuje sam kod, a przewodnik Verify opisuje przeprowadzanie wyzwania.

Jak odczytać sprawdzenie, na które nikt nie mógł odpowiedzieć?

Jako nieznane, co nie jest tym samym co nie.

Numer, którego obecności nie udało się określić, nie jest numerem nieosiągalnym. Traktowanie obu przypadków tak samo blokuje klientów, których sieci po prostu nie odpowiedziały.

Bird rozróżnia je w odpowiedzi. Każda żądana właściwość raportuje własny status:

  • ok: właściwość została odpowiedziana i jej wartość jest obecna.
  • unavailable: odpowiedź nie nadeszła, więc blok jest null.
  • inconclusive: odpowiedź nadeszła, ale nie rozstrzyga właściwości.

Tylko ok niesie wartość. Blok obecności ze statusem status: ok i reachable: false to rzeczywista odpowiedź negatywna, ponieważ sieć odpowiedziała i zgłosiła numer jako nieosiągalny.

Sprawdzaj więc najpierw ok. Wszystko inne traktuj jako brak odpowiedzi. Słownik statusów jest otwartym typem wyliczeniowym, więc nierozpoznana wartość to przyszły status, a nie błąd. Rozgałęzianie na ok pozostaje zatem poprawne w miarę rozrastania się słownika.

Jak wybrać dostawcę zapytań o numer telefonu?

Wybierz dostawcę, którego pola, pokrycie rynkowe i zasady rozliczeń pasują do decyzji, którą musisz podjąć.

Kryterium wyboruBird LookupPytania do innego dostawcy
Składnia i prawidłowośćWymaga numeru międzynarodowego i raportuje, czy pasuje do planu numeracyjnego.Czy normalizuje dane wejściowe i odrzuca zniekształcone numery bez zgadywania?
Typ linii i operatorZwraca typ linii, sieć obsługującą i sieć wydającą w podstawowym wyniku.Jakie pola operatora i typu linii są uwzględnione i czy są aktualne czy przypisane?
PrzeniesienieRaportuje stan przeniesienia w podstawowym wyniku i może zwrócić dodatkowe dane o przeniesieniu.Czy pokazuje aktualnego operatora, pierwotnego operatora czy historię zmian?
AktualnośćObecność i roaming odpytują bieżące warunki sieciowe; pozostałe pola opisują numerację i przydzielenie.Które pola są na żywo, w pamięci podręcznej czy ze znacznikiem czasu?
Wyniki nieznaneKażda żądana właściwość ma status ok, unavailable lub inconclusive.Czy można odróżnić właściwość bez odpowiedzi od wyniku negatywnego?
Pokrycie rynkoweWłaściwość może być niedostępna dla numeru lub operatora, nawet gdy zapytanie się powiedzie.Które kraje i operatorzy obsługują poszczególne właściwości?
RozliczeniaPodstawowe zapytanie jest rozliczane raz. Opcjonalne właściwości są rozliczane tylko po dostarczeniu, a nieudane nie są rozliczane.Ile kosztuje właściwość bez odpowiedzi i jakie dodatki zmieniają rachunek?

Uszeregowane alternatywy dokumentują różne kompromisy. Twilio Lookup oferuje podstawowe formatowanie i walidację. Opcjonalne pakiety obejmują typ linii, status linii, wymianę SIM, tożsamość, nazwę dzwoniącego, ponownie przydzielone numery i sygnały ryzyka. Pokrycie i warunki dostępu różnią się w zależności od pakietu i rynku.

Dokumentacja walidacji telefonów Abstract API opisuje pola prawidłowości, kraju, operatora i typu linii. Strona walidacji i zapytań operatorskich Veriphone opisuje wyniki prawidłowości, kraju, operatora, typu linii i aktualnego operatora. Oba serwisy publikują osobne zasady pokrycia i kredytów. Udokumentowane pokrycie, obsługa wyników nieznanych i rozliczenia każdego dostawcy decydują o tym, czy pasuje on do decyzji rejestracyjnej lub routingowej.

Jak sprawdzić numer w Bird?

Wyślij numer do endpointu lookup. Odczytaj bloki, o które prosiłeś.

POST /v1/lookup/phone-number przyjmuje phone_number i opcjonalną tablicę type. Każde zapytanie zwraca sieć obsługującą i wydającą, stan przeniesienia, kraj i typ linii. Tablica type dodaje classification, porting, presence, roaming, sim_swap lub score, z których każda jest rozliczana osobno i tylko po dostarczeniu. Zapytanie nie kontaktuje się z numerem.

Ponowne użycie Idempotency-Key zwraca zapisany wynik zamiast wykonywania i rozliczania drugiego zapytania. Przewodnik po zapytaniach opisuje przebieg, a dokumentacja API opisuje pola.

W skrócie

  1. Prawidłowy oznacza, że zakres istnieje, a nie że numer jest w użyciu.

    Biblioteka Google do obsługi numerów telefonów definiuje prawidłowy zakres jako taki, z którego operatorzy mogą swobodnie przydzielać numery użytkownikom.

  2. Udane połączenie nie dowodzi, że numer jest prawidłowy.

    Niektóre kraje ignorują dodatkowe cyfry na końcu, a niektórzy operatorzy utrzymują stare numery podczas zmiany numeracji długo po tym, jak przestają one działać gdzie indziej.

  3. Tylko wyzwanie uwierzytelniające dowodzi posiadania numeru.

    Wysłanie kodu i odebranie go z powrotem to jedyne sprawdzenie, które potwierdza, kto posiada numer. Dlatego weryfikacja istnieje jako osobny krok.

  4. Brak odpowiedzi na sprawdzenie to nie odpowiedź negatywna.

    Bird raportuje każdą żądaną właściwość z osobnym statusem, więc właściwość, na którą nikt nie mógł odpowiedzieć, pozostaje odróżnialna od takiej, na którą odpowiedziano negatywnie.

Zastosuj w praktyce.

Przejdź do dokumentacji, przewodników i przykładów dotyczących tego tematu.

Uzyskaj brief wdrożeniowy

Buduj na tej samej sieci.

Testowy klucz API otrzymasz od razu. Dostęp produkcyjny odblokujesz po dodaniu metody płatności i zweryfikowaniu nadawcy.

Twój kolejny pomysł. Gotowy do połączenia.