SMPP - Πρωτόκολλο σύντομων μηνυμάτων peer-to-peer

Γειά σου! Αν και οι άμεσοι αγγελιοφόροι και τα κοινωνικά δίκτυα αντικαθιστούν καθημερινά τις παραδοσιακές μεθόδους επικοινωνίας, αυτό δεν μειώνει τη δημοτικότητα των SMS. Η επαλήθευση σε έναν δημοφιλή ιστότοπο ή μια ειδοποίηση συναλλαγής επαναλαμβάνεται ζωντανά και θα ζωντανά. Έχετε σκεφτεί πώς λειτουργεί όλο αυτό; Πολύ συχνά, το πρωτόκολλο SMPP χρησιμοποιείται για την αποστολή μαζικών μηνυμάτων, τα οποία θα συζητηθούν κάτω από την περικοπή.

Ο Habré είχε ήδη άρθρα σχετικά με το smpp, 1,2, αλλά ο σκοπός τους δεν ήταν να περιγράψουν το ίδιο το πρωτόκολλο. Φυσικά, μπορείτε να ξεκινήσετε αμέσως από την πηγή - Προδιαγραφές, αλλά νομίζω ότι θα ήταν ωραίο να υπήρχε μια περίληψη του περιεχομένου του. Θα εξηγήσω χρησιμοποιώντας το v3.4 ως παράδειγμα.Χαίρομαι για την αντικειμενική κριτική σας.

Το πρωτόκολλο SMPP είναι ένα πρωτόκολλο ανταλλαγής μηνυμάτων peer-to-peer. Αυτό σημαίνει ότι κάθε διακομιστής peer/hub είναι ίσος. Στην απλούστερη περίπτωση, το σχήμα μηνυμάτων SMS μοιάζει με αυτό:

SMPP - Πρωτόκολλο σύντομων μηνυμάτων peer-to-peer

Ωστόσο, εάν ο εθνικός φορέας δεν έχει δρομολόγιο, ζητά από έναν μεσάζοντα για κάποια απομακρυσμένη περιοχή - έναν κόμβο SMS. Μερικές φορές, για να στείλετε ένα SMS, πρέπει να δημιουργήσετε μια αλυσίδα μεταξύ πολλών χωρών ή ακόμη και ηπείρων.

Σχετικά με το πρωτόκολλο

Το SMPP είναι ένα πρωτόκολλο επιπέδου εφαρμογής που βασίζεται στην ανταλλαγή PDU και μεταδίδεται μέσω συνεδριών TCP / IP ή X25 για την αποστολή sms και μηνυμάτων ussd. Συνήθως, το SMPP χρησιμοποιείται σε λειτουργία μόνιμης σύνδεσης, η οποία εξοικονομεί χρόνο. Το SMPP χρησιμοποιεί ένα μοντέλο επικοινωνίας πελάτη-διακομιστή.

Λειτουργία επικοινωνίας

SMPP - Πρωτόκολλο σύντομων μηνυμάτων peer-to-peer

Η ανταλλαγή μηνυμάτων μεταξύ του αποστολέα και του κέντρου SMS μέσω SMPP μπορεί να πραγματοποιηθεί με τους εξής τρόπους:

Πομπός (πομπός) - μετάδοση ενός μηνύματος προς μία κατεύθυνση, με τη σειρά του
Δέκτης (δέκτης) - λήψη μηνύματος μόνο από το κέντρο SMS.
Πομποδέκτης (πομποδέκτης) - Ανταλλαγή μηνυμάτων μεταξύ του κέντρου SMS και του χρήστη

Δομή

SMPP - Πρωτόκολλο σύντομων μηνυμάτων peer-to-peer

Μήκος μηνύματος

Ένα μήνυμα SMS μπορεί να περιέχει 70 χαρακτήρες όταν πληκτρολογείτε κυριλλικά και όχι περισσότερους από 157 λατινικούς χαρακτήρες + 3 UDH Εάν στείλετε ένα SMS με μεγάλο αριθμό χαρακτήρων, θα χωριστεί σε πολλά τμήματα και θα συνδυαστεί στη συσκευή λήψης. Στην περίπτωση τμηματοποίησης, ο αριθμός των χαρακτήρων μειώνεται από τις κεφαλίδες του μηνύματος, οι οποίες υποδεικνύουν το τμήμα του μηνύματος. Επομένως, κατά την αποστολή ενός μεγάλου μηνύματος SMS, περιέχει έως 153 λατινικούς χαρακτήρες ή 67 μη τυπικούς χαρακτήρες.

Σχέδιο κωδικοποίησης δεδομένων

Ωστόσο, οι χαρακτήρες πρέπει να κωδικοποιηθούν για να μεταδώσουν ένα μήνυμα. Στο πρωτόκολλο SMPP, ένα ειδικό πεδίο είναι υπεύθυνο για την κωδικοποίηση - Data Coding Scheme ή DCS. Αυτό είναι ένα πεδίο που καθορίζει τον τρόπο αναγνώρισης των μηνυμάτων. Επιπλέον, το πεδίο DCS περιλαμβάνει:

  • το σύνολο χαρακτήρων που ορίζει την κωδικοποίηση.
  • τάξη μηνυμάτων?
  • αίτημα για αυτόματη διαγραφή μετά την ανάγνωση.
  • μια ένδειξη συμπίεσης μηνύματος.
  • Γλώσσα μηνυμάτων εκπομπής·

Τυπικό αλφάβητο 7-bit (GSM 03.38). Αναπτύχθηκε για το σύστημα ανταλλαγής μηνυμάτων στο GSM. Αυτή η κωδικοποίηση είναι κατάλληλη για αγγλικά και για μια σειρά λατινικών γλωσσών. Κάθε χαρακτήρας αποτελείται από 7 bit και κωδικοποιείται σε μια οκτάδα.

UTF-16 (στο GSM UCS2) Για να συμπεριληφθούν χαρακτήρες που λείπουν στο αλφάβητο των 7 bit, αναπτύχθηκε η κωδικοποίηση UTF-16, η οποία προσθέτει επιπλέον χαρακτήρες (συμπεριλαμβανομένων των κυριλλικών) μειώνοντας το μέγεθος του μηνύματος από 160 σε 70, αυτός ο τύπος κωδικοποίησης επαναλαμβάνει σχεδόν πλήρως το Unicode.

Δεδομένα 8-bit που ορίζονται από τον χρήστη. Αυτά περιλαμβάνουν τα KOI8-R και Windows-1251. Αν και αυτή η λύση φαίνεται να είναι πιο οικονομική σε σύγκριση με το ίδιο UTF-16. Υπάρχει ένα εύλογο ζήτημα συμβατότητας σε διαφορετικές συσκευές. Επειδή σε αυτήν την περίπτωση και οι δύο συσκευές πρέπει να ρυθμιστούν εκ των προτέρων.

Κατηγορία μηνυμάτων

  • Class0 ή flash, ένα μήνυμα που αποθηκεύεται στη μνήμη του τηλεφώνου κατόπιν αιτήματος του χρήστη.
  • Class1 ή εκείνων που είναι αποθηκευμένα στη μνήμη του τηλεφώνου.
  • Class1 ή εκείνων που είναι αποθηκευμένα στη μνήμη του τηλεφώνου.
  • Κλάση 2, πρέπει να διασφαλίσει ότι το μήνυμα αποθηκεύεται στη μνήμη του τερματικού κινητής τηλεφωνίας, διαφορετικά θα πρέπει να δώσει ειδοποιήσεις στο κέντρο SMS σχετικά με την αδυναμία αποθήκευσης.
  • Κλάση 3 - σε αυτήν την περίπτωση, το τηλέφωνο θα πρέπει να στείλει μια ειδοποίηση ότι το μήνυμα μπορεί να αποθηκευτεί, ανεξάρτητα από την ποσότητα της μνήμης στη συσκευή. Αυτός ο τύπος μηνύματος υποδηλώνει ότι το μήνυμα έχει φτάσει στον προορισμό του.

Τύπος μηνύματος

Αθόρυβο μήνυμα (SMS0) Τύπος μηνύματος SMS χωρίς περιεχόμενο. Τέτοια SMS έρχονται χωρίς ειδοποίηση και δεν εμφανίζονται στην οθόνη της συσκευής.

PDU

Κάθε λειτουργία pdu είναι ζευγαρωμένη και αποτελείται από ένα αίτημα και μια απάντηση. Για παράδειγμα: μια εντολή που λέει ότι έχει δημιουργηθεί μια σύνδεση (bind_transmitter / bind_transmitter_resp) ή ότι έχει σταλεί ένα μήνυμα (deliver_sm / deliver_sm_resp)

SMPP - Πρωτόκολλο σύντομων μηνυμάτων peer-to-peer

Κάθε πακέτο pdu αποτελείται από δύο μέρη - μια κεφαλίδα (κεφαλίδα) και ένα σώμα (σώμα). Η δομή της κεφαλίδας είναι η ίδια για οποιοδήποτε πακέτο pdu: το μήκος της εντολής είναι το μήκος του πακέτου, το id είναι το όνομα του πακέτου και η εντολή κατάστασης υποδεικνύει εάν το μήνυμα στάλθηκε με επιτυχία ή απέτυχε.

Πρόσθετες παράμετροι TLV

TLV (Τιμή μήκους ετικέτας) ή επιπλέον πεδία. Τέτοιες παράμετροι χρησιμοποιούνται για την επέκταση της λειτουργικότητας του πρωτοκόλλου και είναι προαιρετικές. Αυτό το πεδίο καθορίζεται στο τέλος του πεδίου pdu. Για παράδειγμα, χρησιμοποιώντας το dest_addr_np_information TLV, μπορείτε να οργανώσετε τη μεταφορά πληροφοριών σχετικά με τη μεταφορά του αριθμού.

Ton και Npi

Η παράμετρος TON (Type of Number) ενημερώνει την SMSC σχετικά με τη μορφή διεύθυνσης και τον τύπο δικτύου.
Παράμετρος NPI (Numbering Plan Identification) που υποδεικνύει το σχέδιο αρίθμησης.

SMPP - Πρωτόκολλο σύντομων μηνυμάτων peer-to-peer

Διεύθυνση πηγής μηνύματος ή όνομα άλφα

Τα μηνύματα που αποστέλλονται στο τηλέφωνο διατίθενται σε δύο ποικιλίες: αριθμητικά και αλφαβητικά. Οι αριθμοί μπορεί να είναι μεγάλοι (παρόμοιοι με έναν αριθμό τηλεφώνου) ή σύντομοι. Μερικές φορές οι χειριστές έχουν περιορισμούς στην αποστολή από ουδέτερα ονόματα, όπως Infosms, Alert κ.λπ. Μερικές φορές οι χειριστές δεν επιτρέπουν την κυκλοφορία εάν το όνομα δεν είναι καταχωρημένο στο δίκτυό τους. Ωστόσο, αυτό είναι περισσότερο χαρακτηριστικό του χειριστή.

Στάδια υποβολής

SMPP - Πρωτόκολλο σύντομων μηνυμάτων peer-to-peer

SMS-ΥΠΟΒΟΛΗ στέλνει μήνυμα MO FSM (σύντομο μήνυμα από κινητό τερματικό)
SMS-ΥΠΟΒΟΛΗ ΑΝΑΦΟΡΑΣ — επιβεβαίωση ότι το μήνυμα στάλθηκε μέσω SMSC
SRI SM (SendRoutingInfo) - Το SMSC λαμβάνει πληροφορίες από το HLR σχετικά με την τοποθεσία MSC/VLR του συνδρομητή
SRI SM RESP — απάντηση της HLR σχετικά με το κρέας θέσης συνδρομητή
MT-FSM - μετά τη λήψη της τοποθεσίας, αποστέλλεται ένα μήνυμα χρησιμοποιώντας τη λειτουργία "Προώθηση σύντομου μηνύματος".
MT-FSM-ACK — απάντηση από το SMSC ότι το μήνυμα έχει σταλεί
ΑΝΑΦΟΡΑ ΚΑΤΑΣΤΑΣΗΣ SMS — Το SMSC στέλνει την κατάσταση παράδοσης μηνύματος.

Κατάσταση παράδοσης μηνύματος

ΑΝΑΦΟΡΑ ΚΑΤΑΣΤΑΣΗΣ SMS μπορεί να πάρει πολλές τιμές:
DELIVRD το μήνυμα παραδόθηκε με επιτυχία
ΑΠΟΡΡΙΦΘΗΚΕ — το μήνυμα απορρίφθηκε από το κέντρο SMS
ΕΧΕΙ ΛΗΞΕΙ - το μήνυμα αφαιρείται από την ουρά αποστολής μετά το τέλος του TTL (διάρκεια ζωής μηνύματος)
UNDELIV - άλλες περιπτώσεις μη παράδοσης
ΑΓΝΩΣΤΟΣ- Δεν ελήφθη απάντηση.

Σφάλματα μετάδοσης

Μερικές φορές οι λόγοι για τους οποίους τα μηνύματα SMS δεν παραδίδονται στον συνδρομητή. Συνέπεια αυτών των λόγων είναι η εμφάνιση σφαλμάτων. Τα σφάλματα επιστρέφονται στο PDUs_sms_resp. Όλα τα σφάλματα μπορούν να χωριστούν σε προσωρινά (Προσωρινά) και μόνιμα (Μόνιμα).

Για παράδειγμα, το absent_subscriber είναι προσωρινό, ο συνδρομητής δεν είναι διαθέσιμος ή δεν είναι διαδικτυακός και μόνιμος - ο συνδρομητής δεν υπάρχει. Ανάλογα με τα σφάλματα που παρουσιάζονται, διαμορφώνεται μια πολιτική για την εκ νέου αποστολή αυτών των μηνυμάτων.

Για παράδειγμα, εάν ο συνδρομητής ήταν απασχολημένος μιλώντας και έλαβε ένα σφάλμα MT είναι κατειλημμένο, το μήνυμα μπορεί να σταλεί ξανά μετά από λίγα λεπτά, ωστόσο, εάν ο συνδρομητής έχει μπλοκάρει την υπηρεσία λήψης μηνυμάτων, η εκ νέου αποστολή δεν θα έχει νόημα. Μπορείτε να βρείτε μια λίστα σφαλμάτων στις σελίδες SMSC, για παράδειγμα, όπως αυτό.

Πηγή: www.habr.com

Προσθέστε ένα σχόλιο