Skip navigation.
Αρχική

HLR lookup μέσω HTTP API

Το HLR Lookup μέσω HTTP API είναι μια νέα υπηρεσία του LiveAll.eu, που σας δίνει τη δυνατότητα να ελέγχετε live, την κατάσταση ενός αριθμού.

Υπάρχουν 2 πακέτα HLR lookup. Το βασικό πακέτο και το πακέτο roaming.

Οι πληροφορίες που λαμβάνετε από το βασικό πακέτο της υπηρεσίας είναι:

  • [user_error_code] - Error code - Αν ο αριθμός ισχύει και είναι ενεργός, λαμβάνετε το error code 000, αλλιώς κάποιον άλλον αριθμό που δηλώνει το μήνυμα του σφάλματος (υπάρχει σχετική λίστα με τα error codes).
  • [errMsg] - Περιγραφή σφάλματος αριθμού
  • [mccmnc] - Συνδιασμός κωδικού χώρας και δικτύου - Είναι ένας αριθμός που δηλώνει τη χώρα και το δίκτυο που ανήκει ο αριθμός. Υπάρχει διαφορά μεταξύ συστημάτων Outside World Area 1 και Inside World Area 1 (North America), όσον αφορά το πλήθος των ψηφίων μετά τους 3 πρώτες χαρακτήρες. Πχ: για Ελλάδα ισχύει το 202XX, όπου το 202 είναι το αναγνωριστικό χώρας και όπου XX είναι ο κωδικός του δικτύου (01:Cosmote, 05:Vodafone, 09:Wind (Q), 10:Wind).
    Για USA αντίστοιχα, ο αριθμός δεν είναι 5ψήφιος, αλλά με 6 ψηφία. Έτσι, πχ. για Verizon Wireless ο κωδικός MCCMNC είναι 310005
  • [country_name] - Όνομα χώρας
  • [country_ISO] - Κωδικός ISO της χώρας που ανήκει ο αριθμός
  • [operator] - Όνομα δικτύου (operator)
  • [ResultMask] - 1 για επιτυχία, 2 για αποτυχία (μη ενεργός αριθμός κοκ), 16 για μη αποδεκτός αριθμός
  • [destination] - Ο αριθμός για τον οποίο έγινε το lookup
  • [stat] - Status message - Πιθανές τιμές (DELIVRD, UNDELIV)


  Στο πακέτο roaming υπάρχουν οι εξής επιπλέον πληροφορίες:

  • [is_roaming] - Ένδειξη αν ο αριθμός είναι σε roaming
  • [roaming_country_prefix] - Κωδικός χώρας που βρίσκεται σε roaming ο αριθμός
  • [roaming_country_name] - Ονομασία χώρας που βρίσκεται σε roaming
  • [roaming_operator_prefix] - Κωδικός του ξένου δικτύου που ο αριθμός εξυπηρετείται
  • [roaming_operator_name] - Όνομα του ξένου δικτύου που έχει προσαρτηθεί ο αριθμός

 

 Μια απεικόνηση, το πως λειτουργεί η υπηρεσία, φαίνεται στο παρακάτω σχήμα:

HLR lookup via HTTP API

 

Μέσω HTTP request κάνουμε την ερώτηση για κάποιον αριθμό. Ο server - SMS service (www.liveall.eu) προετοιμάζει τα αποστελέσματα και τα στέλνει πίσω στο callback url (με GET HTTP request) που εσείς θα μας δώσετε και θα ρυθμίσουμε κατάλληλα τον λογαριασμό σας.

Εσείς, το μόνο που έχετε να κάνετε, είναι να πάρετε τα δεδομένα από το request και να το διαχειριστείτε κατάλληλα για την εφαρμογή σας.

Το url που κάνετε τα request σας είναι το:

http://www.liveall.eu/webservice/sms/hlrlookup.php

Οι μεταβλητές που χρησιμοποιούμε είναι:

  • [username] - Το username που έχετε για το LiveAll.eu
  • [password] - Το αντίστοιχο password
  • [destination] - Ο αριθμός που θέλετε να εξετάσετε
  • [roaming] - (optional) Αν ορίσετε τιμή 1, τότε επιλέγετε το πακέτο roaming, αλλιώς, με 0 ή αν δεν ορίσετε καθόλου τη μεταβλητή, επιλέγετε το βασικό πακέτο

Και ακολουθεί ένα παράδειγμα χρήσης:

http://www.liveall.eu/webservice/sms/hlrlookup.php?username=myusername&password=mypass&destination=306912345678&roaming=1

ΠΡΟΣΟΧΗ!!! - Οι τιμές για το username & password θα πρέπει να είναι url encoded.

Μετά από πολύ λίγο, θα έχει γίνει μια κλήση στο url που θα έχετε δηλώσει, που θα περιέχει τις πληροφορίες που φαίνονται παρακάτω:

Array
(
    [REF_ID] => 111111111
    [ResultMask] => 1
    [destination] => 306912345678
    [stat] => DELIVRD
    [errMsg] => No Error
    [mccmnc] => 20205
    [user_error_code] => 000
    [country_name] => Greece
    [country_ISO] => GR
    [operator] => Wind Hellas Telecommunications S.A.
    [roaming_operator_name] => Vodafone Omnitel N.V.
    [roaming_operator_prefix] => 349
    [roaming_country_name] => Italy                                             
    [roaming_country_prefix] => 39
    [is_roaming] => 1
)

Το παραπάνω παράδειγμα μας δείχνει τις πληροφορίες που μπορεί να έχουμε, αν χρησιμοποιούμε το πακέτο roaming.

 


 

Πιθανές τιμές του πεδίου [user_error_code]
Error code Error description
000 No Error
001 Unknown Subscriber
002 Memory Capacity Exceeded
003 Equipment Protocol Error
004 Invalid equipment
005 UNIDENTIFIED SUBSCRIBER
006 ABSENT SUBSCRIBER SM
007 TELESERVICE NOT PROVISIONED
008 ILLEGAL EQUIPMENT
009 ILLEGAL SUBSCRIBER
010 FACILITY NOT SUPPORTED
011 TELESERVICE NOT PROVISIONED
012 ILLEGAL EQUIPMENT
013 CALL BARRED
014 UNEXPECTED DATA VALUE
015 UNIDENTIFIED SUBSCRIBER
016 Absent Subscriber
017 Absent Subscriber
020 Mobile subscriber not reachable
021 FACILITY NOT SUPPORTED
027 Absent Subscriber
031 SUBSCRIBER BUSY FOR MT SMS
032 SM DELIVERY FAILURE
033 MESSAGE WAITING LIST FULL
034 SYSTEM FAILURE
035 DATA MISSING
036 UNEXPECTED DATA VALUE
047 TCAP error
049 SMS discarded
050 SMS window exceeded
051 SMS malformed
052 SMS expired
054 Invalid destination
055 No route
059 Absent Subscriber
101 Timed out when doing SRI
102 Timed out when sending SMS
103 Rejected by SMSC
104 System failure
255 Unknown error
256 Memory Capacity Exceeded
257 Equipment Protocol Error
258 Equipment Not SM Equipped
259 Unknown Service Centre
260 Sc Congestion
261 InvalidSME Address
262 Subscriber Not SC Subscriber
320 DF-MemoryCapacityExceeded
321 DF-EquipmentProtocolError
322 DF-equipmentNotSM-Equipped
323 DF-UnknownServiceCentre
324 DF-SC-Congestion
325 DF-InvalidSME-Address
326 DF-SubscriberNotSC-Subscriber
329 DF-UnknownDeliveryFailure
500 PROVIDER GENERAL ERROR
502 NO RESPONSE
503 SERVICE COMPLETION FAILURE
504 UNEXPECTED RESPONSE FROM PEER
507 MISTYPED PARAMETER
508 NOT SUPPORTED SERVICE
509 DUPLICATED INVOKE ID
511 INITIATING RELEASE
1024 App Context Not Supported
1025 Invalid Destination Reference
1026 Invalid Originating Reference;
1027 Encapsulated AC Not Supported
1028 Transport Protection Not Adequate
1030 Potential Version Incompatibility
1031 Remote Node Not Reachable
1152 No Translation For An Address Of Such Natur
1153 No Translation For This Specific Address
1154 Subsystem Congestion
1155 Subsystem Failure
1156 Unequipped User
1157 MTP failure
1158 Network Congestion
1159 Unqualified
1160 Error In Message Transport XUDT
1161 Error In Local Processing XUDT
1162 Destination Cannot Perform Reassembly XUDT
1163 SCCP failure
1164 Hop Counter Violation
1165 Segmentation Not Supported
1166 Segmentation Failure
1281 User Specific Reason
1282 User Resource Limitation
1283 Resource Unavailable
1284 Application Procedure Cancellation
1536 Provider Malfunction
1537 Supporting Dialog Or Transaction Realeased
1538 Ressource Limitation
1539 Maintenance Activity
1540 Version Incompatibility
1541 Abnormal MapDialog
1793 Response Rejected By Peer
1794 Abnormal Event Received From Peer
1795 Message Cannot Be Delivered To Peer
1796 Provider Out Of Invoke
2048 TIME OUT
2049 IMSI BLACKLISTED
2050 DEST ADDRESS BLACKLISTED
2051 Invalid Msc Address
4096 Invalid Pdu Format
4097 Not Submitted To GMSC
4100 Cancelled
4101 Validity Expired
4102 Not Submitted To Smpp Channel

 

HLR query poll for status

Εναλλακτικά, αν δεν υπάρχει κάποιο callback url, μπορούμε να πάρουμε κάποιες βασικές πληροφορίες από το request που ήδη έχει γίνει, μέσω polling.

Το url που χρησιμοποιούμε είναι το:

http://www.liveall.eu/webservice/sms/getHLRStatus.php

Έτσι πχ. η σύνταξη της εντολής για το poll μπορεί να είναι:

http://www.liveall.eu/webservice/sms/getHLRStatus.php?HLRId=11111&username=myUsername&password=myPassword

Όπου:

  • [HLRId] - Το ID (REF_ID) που έχουμε πάρει σαν απάντηση από την κλήση του web-service hlrlookup.php
  • [username] - Το username του λογαριασμού μας
  • [password] - Το password του λογαριασμού μας

Η απάντηση θα είναι της μορφής:

<REF_ID>:<Destination>:<Charge_value>:<MCCMNC>:<Country>:<Network_name>:<Error_Msg>:<Error_code>

πχ.
10101:306900011111:0.012:20210:Greece:Wind Hellas Telecommunications S.A.:No Error:0
ή
10102:306900011112:0.012:20205:Greece:Vodafone Greece:Unknown Subscriber:1

όπου:

  • <REF_ID> - το reference number που έχουμε πάρει κατά την καταχώρηση του query
  • <Destination> - Ο αριθμός για τον οποίο κάναμε HLR query
  • <Charge_value> - Το ποσό που χρεωθήκαμε
  • <MCCMNC> - Ο κωδικό του δικτύου κινητής
  • <Country> - Χώρα στην οποία ανήκει ο αριθμός
  • <Network_name> - Το όνομα του δικτύου κινητής (αν ο αριθμός είναι άγνωστος, τότε εμφανίζεται το όνομα δικτύου, βάσει του προθέματος)
  • <Error_Msg> - Το error message του query (No Error για ενεργό αριθμό και ότιδήποτε άλλο για σφάλμα). ΠΡΟΣΟΧΗ! αν η τιμή του πεδίου είναι --- τότε αυτό σημαίνει πως δεν έχουμε πάρει ακόμη απάντηση από την κεντρική database. Θα πρέπει να γίνει προσπάθεια ξανά.
  • <Error_code> - Το error code. Σε περίπτωση που είναι 0, τότε ο αριθμός είναι ενεργός. Αν όχι, τότε υπάρχει κάποιο πρόβλημα, που περιγράφεται στο πεδίο <Error_Msg>

 

Θα πρέπει να σημειωθεί πως, το poll που θα κάνει κάποια εφαρμογή στο παραπάνω url, θα πρέπει να είναι περίπου 10" μετά την καταχώρηση του query, ώστε να είμαστε σίγουροι ότι η απάντηση από την κεντρική database θα έχει φτάσει. Επίσης, μπορεί η απάντηση να αργήσει περισσότερο. Τότε, θα πρέπει να γίνει πάλι το poll (μετά από 1' πχ.)

Powered by Terracom