WIADOMOŚCI

Na czym polega sprawdzanie numerów i jak go używać weryfikacji numerów

Published on:27 / October / 2016

DEFINICJA SPRAWDZANIA NUMERÓW

Sprawdzanie numerów (Number Lookup), znane również jako sprawdzanie HLR (Home Location Register) lub zapytanie o sieć (Network Query) to centralna baza danych zawierające dane każdego abonenta telefonii komórkowej uprawnionego do korzystania z podstawowej sieci GSM.

IMSI = MCC+MNC+MSIN I MA 15 CYFR

Każdy numer telefonu zawiera informacje, które odróżniają go od wszystkich innych numerów telefonów na świecie. Po pierwsze, IMSI (International Mobile Subscriber Identity, międzynarodowa tożsamość abonenta telefonii komórkowej), 15-cyfrowy numer zawierający informacje o MCC (Mobile Country Code, kod kraju telefonu komórkowego), MNC (Mobile Network Code, kod sieci komórkowej) oraz MSIN (Mobile Subscription Identification Number, numer identyfikacyjny abonamentu telefonii komórkowej).

Jak widać, pierwsze trzy cyfry IMSI to kod kraju (np. kod Chorwacji to 219). Kolejne dwie cyfry to 01, które oznaczają sieć, w tym przypadku T-Mobile Chorwacja. Ostatnich dziesięć cyfr to MSIN, unikalny 10-cyfrowy numer wykorzystywany przez każdego operatora do identyfikacji telefonu komórkowego użytkownika.

Po drugie, sprawdzanie numerów wskazuje status przeniesienia numerów – czy zostały przeniesione, czy też nie. Abonenci jednego operatora sieci komórkowej często przechodzą do innego operatora, ale zachowują stary numer. To powszechne zjawisko w niemal każdym kraju na świecie.

Po trzecie, sprawdzanie numerów informuje też, czy dany telefon komórkowy korzysta w danym momencie z roamingu. Ta informacja może być bardzo ważna dla ochrony klientów i zapobiegania oszustwom dotyczącym ich kont.

SPRAWDZANIE NUMERÓW: SYNCHRONICZNE LUB ASYNCHRONICZNE

Udane sprawdzanie numerów można przeprowadzić na dwa sposoby. Pierwszy sposób to sprawdzanie synchroniczne, gdy klient wysyła zapytanie dotyczące sprawdzenia numerów. W przypadku tego rodzaju sprawdzania istotne jest, że trzeba czekać na przetworzenie jednego zapytania i dostarczyć odpowiedź, żeby móc wysłać kolejne. Czasami, jeśli do sprawdzenia jest cała lista numerów, może to doprowadzić do powstania dużej kolejki.

Z kolei asynchroniczne sprawdzanie numerów działa inaczej. Można wysłać dowolną liczbę zapytań bez konieczności oczekiwania na odpowiedź. Może to być przydatne w przypadku dużej bazy danych numerów telefonów lub wielu baz danych. Na czym zatem polega główna różnica pomiędzy synchronicznym a asynchronicznym sprawdzaniem numerów?

SKRÓCENIE CZASU ODPOWIEDZI

Odpowiedź otrzymywana za pośrednictwem sprawdzania numerów z synchronicznym API REST HTTP jest wysyłana po każdym żądaniu. Chociaż odpowiedź powinna być widoczna już po kilku sekundach od wysłania żądania i otrzymania odpowiedzi, czas oczekiwania na odpowiedź może się przedłużyć ze względu na różne problemy techniczne lub systemowe. Może to spowolnić działanie systemu, przez co trzeba dłużej czekać na odpowiedź przed przeprowadzeniem kolejnego sprawdzenia.

W przypadku asynchronicznego API szybkość jest dużo lepsza ze względu na to, że wysyłanych jest wiele zapytań przed otrzymaniem odpowiedzi. Poza szybkością ta wersja jest nieco trudniejsza w integracji, ponieważ po stronie klienta wymagany jest serwer odpowiedzi w celu sparsowania odpowiedzi do konkretnego żądania.

Najczęstsze zastosowania to:

  • sprawdzanie aktywnych/nieaktywnych numerów;
  • dostarczanie informacji o numerach w roamingu;
  • sprawdzanie statusu przeniesienia numeru telefonu komórkowego;
  • znalezienie optymalnej trasy dla SMS-ów i wiadomości głosowych;
  • rodzaj numeru (np. stacjonarny, maszynowy, komórkowy itp.).

Firma Infobip oferuje trzy podstawowe pakiety do wyboru w zależności od potrzeb firmy:

  • Czyszczenie baz danych: Pakiet czyszczenia baz danych przeznaczony jest dla firm dysponujących dużymi bazami danych numerów i umożliwia identyfikację nieużywanych oraz nieaktywnych numerów.
  • Możliwość przenoszenia: Pakiet ten został opracowany w celu rozwiązania problemów z możliwością przenoszenia w różnych rodzajach firm i umożliwia sprawdzanie możliwości przenoszenia numeru w czasie rzeczywistym, pozwalając zoptymalizować trasowanie wiadomości tekstowych i głosowych. Pakiet ten obejmuje wszystkie elementy pakietu czyszczenia baz danych.
  • Roaming: Pakiet ten skierowany jest do klientów z sektora finansowego i dostarcza informacje o roamingu umożliwiające optymalizację trasowania, zapobieganie oszustwom bankomatowym itp.

Sprawdzanie numerów zapewnia lepszy wgląd w bazę danych użytkowników i zachowania użytkowników oraz umożliwia sprawdzanie formatu numerów telefonów w celu uniknięcia niepożądanych nieprawidłowych numerów.

Po wysłaniu wiadomości promocyjnych do klientów i przeanalizowaniu raportów doręczeń czasem widać dużą różnicę między danymi o użytkownikach a liczbą doręczonych wiadomości. Aby uniknąć niepotrzebnych nakładów finansowych, dobrze jest sprawdzić/wyczyścić bazę danych przed wysłaniem kampanii. Poprawa dokładności i racjonalności kosztowej inicjatyw mobilnych jest szczególnie istotna, gdy klient dysponuje dużą bazą danych użytkowników, ponieważ pozwala zaoszczędzić więcej pieniędzy.

Sprawdzanie numerów pozwala również lepiej zrozumieć klientów. Wiadomo, kiedy podróżują, i można im wtedy zaoferować odpowiednio dostosowane usługi.

JAK DZIAŁA SPRAWDZANIE NUMERÓW?

Poniższy przykład przedstawia, jak można uzyskać informacje w ramach sprawdzania numerów za pośrednictwem swojego 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"]
} 

Parametr „to” to lista wszystkich numerów do sprawdzenia.

Oto wynik:

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

Jak już wspomnieliśmy, istnieje duża różnica między synchronicznym a asynchronicznym sprawdzeniem numerów. Omówimy oba rodzaje, wiersz po wierszu. Synchroniczne sprawdzanie numerów jest łatwiejsze. To idealne rozwiązanie, jeśli w aplikacji jest kod, który zadziała prawidłowo dopiero po otrzymaniu odpowiedzi API. Jeśli wywołanie API jest synchroniczne, sprawdzenie numeru zostanie przeprowadzone, zanim aplikacja otrzyma odpowiedź na wywołanie API. Oznacza to, że kod aplikacji powinien prawidłowo obsługiwać oczekiwanie na odpowiedź HTTP, aby użytkownicy nie postrzegali oczekiwania na odpowiedź na sprawdzenie numeru jako opóźnienia lub problemów z wydajnością aplikacji.

JSON

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

Wynik sprawdzenia numerów zostanie przekazany bezpośrednio w odpowiedzi:

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

W przeciwieństwie do wywołań synchronicznych, wywołania asynchroniczne nie czekają na przeprowadzenie sprawdzenia numerów przed zwrotem odpowiedzi na wywołanie API. Po zakończeniu sprawdzenia numerów wykonywana jest funkcja „odpowiedzi”, a informacje dotyczące sprawdzenia numerów wysyłane są na adres notifyURL podany w żądaniu.

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

Abonenci telefonii komórkowej często zmieniają numery, korzystają z roamingu i przechodzą do innego operatora, zachowując stary numer telefonu. Wiedząc, które numery telefonów komórkowych są używane i dostępne bądź której sieci używa obecnie klient, wiele firm może znacznie poprawić dokładność i racjonalność kosztową. Mamy nadzieję, że ten blog pomoże czytelnikom w utrzymaniu czystości bazy danych i dotarciu do użytkowników.