Kako primiti SMS koristeći SMPP API
Short Message Peer-to-Peer (SMPP) protokol je moćan, industrijski standardni protokol dizajniran za olakšavanje razmjene SMS poruka između External Short Message Entities (ESMEs) i Short Message Service Centers (SMSCs). Za programere i tvrtke koji koriste SMPP API s Ozeki SMS Gatewayom kao svojom primarnom platformom, razumijevanje niskonivo operacija protokola ključno je za izgradnju robusnih SMS rješenja. Ovaj članak pruža sveobuhvatan vodič o tome kako primiti SMS poruke koristeći SMPP API, fokusirajući se na interakcije na razini protokola i specifične Protocol Data Units (PDUs) uključene u postavljanje, održavanje i korištenje SMPP API klijentske veze s Ozeki SMS Gatewayom.
Uvod u SMPP API i Ozeki SMS Gateway
SMPP API se široko koristi u telekomunikacijskoj industriji zbog svoje učinkovitosti u rukovanju masovnim SMS porukama preko TCP/IP veza. Ozeki SMS Gateway, svestrani SMPP softver, služi i kao SMPP klijent i poslužitelj, što ga čini idealnom platformom za slanje i primanje SMS poruka. Implementacijom SMPP protokola (verzije 3.3 i 3.4, s podrškom za 5.0 u Ozeki 10 SMS Gatewayu), Ozeki omogućuje besprijekornu povezanost s SMSC-ovima, podržavajući aplikacije kao što su marketinške kampanje, dvofaktorska autentifikacija i sustavi obavijesti. Ovaj članak se fokusira na primanje SMS poruka, detaljno opisujući SMPP PDU-e potrebne za postavljanje veze, održavanje i primanje poruka.
Razumijevanje SMPP PDU-a
SMPP radi razmjenom Protocol Data Units (PDUs) između SMPP klijenta (npr. Ozeki SMS Gateway) i SMPP poslužitelja (npr. SMSC). Svaki PDU je strukturirana poruka koja nosi specifične upute ili podatke, kao što su autentifikacijski podaci, sadržaj SMS-a ili upiti o statusu veze. Da bi primio SMS poruke koristeći SMPP API, klijent mora uspostaviti vezu, održavati je i obraditi dolazne poruke. Ključni PDU-i uključeni su:
- bind_transceiver: Uspostavlja vezu za slanje i primanje SMS-a.
- enquire_link: Održava vezu provjeravanjem njenog statusa.
- deliver_sm: Dostavlja dolazne SMS poruke od SMSC-a klijentu.
- unbind: Prekida SMPP sesiju.
U nastavku ćemo detaljno istražiti svaki PDU, uključujući njihovu strukturu, konfiguraciju u Ozeki SMS Gatewayu i njihovu ulogu u primanju SMS poruka putem SMPP API-ja.
Postavljanje SMPP API klijentske veze
Za primanje SMS poruka, prvi korak je uspostava stabilne SMPP API klijentske veze s SMSC-om. Ozeki SMS Gateway pojednostavljuje ovaj proces svojim intuitivnim sučeljem, ali razumijevanje operacija na razini protokola ključno je za napredne korisnike.
1. Konfiguriranje SMPP klijenta u Ozeki SMS Gateway
Za postavljanje SMPP API klijentske veze u Ozeki SMS Gateway, slijedite ove korake:
- Prijava u Upravljačku konzolu: Pristupite web sučelju Ozeki SMS Gateway koristeći administratorski račun (zadano korisničko ime: "admin").
- Dodavanje nove veze: Idite na panel "Veze", kliknite "Dodaj novu vezu" i odaberite "SMPP klijent" iz odjeljka "IP SMS veze".
- Konfiguriranje SMPP postavki: Unesite sljedeće podatke, koje obično daje vaš SMS usluga davatelj:
- Naziv hosta: IP adresa ili naziv hosta SMSC-a (npr. "192.168.1.1").
- Broj porta: TCP/IP port za SMPP komunikaciju (zadano je 9500, ali provjerite kod svog davatelja).
- Korisničko ime (System ID): Vaš identifikator računa za SMSC.
- Lozinka: Lozinka povezana s System ID-om.
- SMPP verzija: Odaberite v3.4 za transceiver podršku (preporučeno za slanje i primanje).
- Vrsta sustava: Opcionalno, često "SMPP", kako je navedeno od strane davatelja.
- Adresa pošiljatelja: Zadani telefonski broj za odlazne SMS poruke (npr. "+1234567890").
- Raspon adresa: Opcionalno, koristi se za primanje poruka s više brojeva.
- Način povezivanja: Odaberite "Transceiver" kako biste omogućili i slanje i primanje SMS poruka preko jedne veze.
- Napredne postavke: Omogućite "Automatsko povezivanje pri pokretanju" za bezprobleman ponovni spoj i označite "Slanje keepalive paketa" za održavanje veze.
- Omogućavanje bilježenja: Na kartici "Napredno", omogućite "Bilježenje komunikacijskih događaja" za snimanje SMPP PDU-ova za otklanjanje grešaka.
- Spremanje i povezivanje: Kliknite "OK" za spremanje konfiguracije, zatim "Poveži" za pokretanje veze.
Ove postavke pripremaju Ozeki SMS Gateway za uspostavu SMPP API veze koristeći bind_transceiver PDU.
2. bind_transceiver PDU
bind_transceiver PDU je prvi PDU koji šalje SMPP klijent za autentifikaciju i uspostavu veze s SMSC-om. Omogućuje i slanje i primanje SMS poruka preko jedne TCP/IP veze, što ga čini idealnim za većinu SMPP API aplikacija.
Struktura bind_transceiver PDU
Duljina naredbe: 4 bajta (ukupna duljina PDU-a) ID naredbe: 0x00000009 (bind_transceiver) Status naredbe: 0x00000000 (postavljeno na 0 za zahtjeve) Broj sekvence: Jedinstveni identifikator za PDU System ID: Korisničko ime za autentifikaciju (npr. "smppuser") Lozinka: Lozinka za autentifikaciju (npr. "password123") Vrsta sustava: Opcionalno, često "SMPP" Verzija sučelja: SMPP verzija (npr. 0x34 za v3.4) Raspon adresa: Opcionalno, za primanje poruka s određenih brojeva
Primjer bind_transceiver PDU (heksadecimalno):
0000002F 00000009 00000000 00000001 736D70707573657200 70617373776F726431323300 534D505000 34 00
Objašnjenje:
- Duljina naredbe (0000002F): Ukupna duljina PDU-a (47 bajtova).
- ID naredbe (00000009): Identificira PDU kao bind_transceiver.
- Status naredbe (00000000): Postavljeno na 0 za zahtjev.
- Broj sekvence (00000001): Jedinstveni ID za praćenje PDU-a.
- System ID (736D70707573657200): ASCII za "smppuser" s null terminatorom.
- Lozinka (70617373776F726431323300): ASCII za "password123" s null terminatorom.
- Vrsta sustava (534D505000): ASCII za "SMPP" s null terminatorom.
- Verzija sučelja (34): Označava SMPP v3.4.
- Raspon adresa (00): Null, jer je opcionalno.
Nakon primanja bind_transceiver PDU-a, SMSC provjerava vjerodajnice. Ako je uspješno, odgovara s bind_transceiver_resp PDU-om sa statusom naredbe 0x00000000, što označava uspješnu vezu. Ozeki SMS Gateway bilježi ovu interakciju, koja se može pregledati u "Komunikacijskim događajima".
Održavanje SMPP API veze
Nakon uspostave veze, ona se mora održavati kako bi se osigurao kontinuirani primitak SMS poruka. SMPP protokol koristi enquire_link PDU za provjeru statusa veze i sprječavanje prekida zbog neaktivnosti.
enquire_link PDU
enquire_link PDU je lagana poruka koja se periodično šalje od SMPP klijenta SMSC-u kako bi se potvrdilo da je veza aktivna. Ovo je posebno važno za održavanje dugotrajnih veza, jer proxy poslužitelji ili SMSC-ovi mogu prekinuti neaktivne veze.
Struktura enquire_link PDU
Duljina naredbe: 0x00000010 (16 bajtova) ID naredbe: 0x00000015 (enquire_link) Status naredbe: 0x00000000 (postavljeno na 0 za zahtjeve) Broj sekvence: Jedinstveni identifikator za PDU
Primjer enquire_link PDU (heksadecimalno):
00000010 00000015 00000000 00000002
Objašnjenje:
- Duljina naredbe (00000010): Ukupna duljina (16 bajtova).
- ID naredbe (00000015): Identificira PDU kao enquire_link.
- Status naredbe (00000000): Postavljeno na 0 za zahtjev.
- Broj sekvence (00000002): Jedinstveni ID za praćenje PDU-a.
SMSC odgovara s enquire_link_resp PDU-om, potvrđujući status veze. U Ozeki SMS Gateway, omogućavanje opcije "Slanje keepalive paketa" na kartici "Komunikacija" osigurava da se enquire_link PDU-ovi automatski šalju u redovitim intervalima (npr. svakih 30 sekundi). Ova postavka je ključna za održavanje stabilne SMPP API veze, posebno prilikom povremenog primanja SMS poruka.
Primanje SMS poruka putem SMPP API-ja
Nakon što je veza uspostavljena i održana, SMPP API klijent može primati SMS poruke putem deliver_sm PDU-a. Ovaj PDU šalje SMSC klijentu kada je dostupna dolazna SMS poruka ili izvješće o isporuci.
deliver_sm PDU
deliver_sm PDU nosi sadržaj dolazne SMS poruke ili izvješća o isporuci. Za primanje SMS-a, PDU sadrži telefonski broj pošiljatelja, broj primatelja (virtualni broj dodijeljen od strane pružatelja usluge) i tekst poruke.
Struktura deliver_sm PDU-a
Duljina naredbe: Varijabilna (ovisno o duljini poruke) ID naredbe: 0x00000005 (deliver_sm) Status naredbe: 0x00000000 (postavljeno na 0 za zahtjeve) Broj sekvence: Jedinstveni identifikator za PDU Vrsta usluge: Opcionalno, često null TON izvorne adrese: Vrsta broja za pošiljatelja NPI izvorne adrese: Indikator plana numeracije za pošiljatelja Izvorna adresa: Telefonski broj pošiljatelja (npr., "+1234567890") TON odredišne adrese: Vrsta broja za primatelja NPI odredišne adrese: Indikator plana numeracije za primatelja Odredišna adresa: Telefonski broj primatelja (npr., virtualni broj) ESM klasa: Vrsta poruke (npr., 0x04 za SMS) Kodiranje podataka: Kodiranje znakova (npr., 0x00 za GSM 7-bitno) Kratka poruka: Tekst poruke (do 160 znakova za GSM)
Primjer deliver_sm PDU-a (heksadecimalno):
0000005F 00000005 00000000 00000003 00 01 01 2B3132333435363738393000 01 01 2B3938373635343332313000 00 00 00 00 00 48656C6C6F2C207468697320697320616E20534D5321
Objašnjenje:
- Duljina naredbe (0000005F): Ukupna duljina (95 bajtova).
- ID naredbe (00000005): Identificira PDU kao deliver_sm.
- Status naredbe (00000000): Postavljeno na 0 za zahtjev.
- Broj sekvence (00000003): Jedinstveni ID za praćenje PDU-a.
- Vrsta usluge (00): Null, jer je opcionalno.
- TON izvorne adrese (01): Međunarodni broj.
- NPI izvorne adrese (01): ISDN/telefonski plan numeracije.
- Izvorna adresa (2B3132333435363738393000): ASCII za "+1234567890".
- TON odredišne adrese (01): Međunarodni broj.
- NPI odredišne adrese (01): ISDN/telefonski plan numeracije.
- Odredišna adresa (2B3938373635343332313000): ASCII za "+9876543210".
- ESM klasa (00): Označava standardni SMS.
- Kodiranje podataka (00): GSM 7-bitno kodiranje.
- Kratka poruka (48656C6C6F2C207468697320697320616E20534D5321): ASCII za "Hello, this is an SMS!".
Nakon primanja deliver_sm PDU-a, Ozeki SMS Gateway obrađuje poruku i usmjerava je u konfiguriranu aplikaciju ili bazu podataka. Klijent mora odgovoriti s deliver_sm_resp PDU-om kako bi potvrdio primitak, osiguravajući pouzdanu isporuku. U Ozekiju, ovaj odgovor se automatski obrađuje, a poruka se bilježi u panelu "Poruke" ili pohranjuje u bazu podataka ako je konfigurirano.
Konfiguriranje Ozeki SMS Gatewaya za primanje SMS poruka
Kako biste osigurali da Ozeki SMS Gateway može primati SMS poruke:
- Postavljanje virtualnog broja: Surađujte s vašim pružateljem SMS usluga kako biste dodijelili virtualni broj (IMSI) za primanje SMS-a. Ovaj broj se navodi u polju "Raspon adresa" tijekom konfiguracije.
- Integracija baze podataka: Konfigurirajte Ozeki za pohranu dolaznih poruka u bazu podataka izmjenom SQL SELECT izraza u konfiguraciji "Korisnik baze podataka" (npr., "SELECT id, sender, receiver, msg, msgtype FROM ozekimessagein").
- Bilježenje: Omogućite bilježenje SMPP PDU-a kako biste pratili dolazne deliver_sm PDU-e za potrebe otklanjanja grešaka.
Nakon konfiguracije, dolazne SMS poruke se automatski usmjeravaju u navedenu aplikaciju ili bazu podataka, čineći Ozeki SMS Gateway robusnom platformom za primanje SMS-a putem SMPP API-ja.
Prekidanje SMPP API veze
Kada SMPP API sesija više nije potrebna, klijent šalje unbind PDU kako bi graciozno prekinuo vezu.
unbind PDU
unbind PDU signalizira SMSC-u da zatvori SMPP sesiju.
Struktura unbind PDU-a
Duljina naredbe: 0x00000010 (16 bajtova) ID naredbe: 0x00000006 (unbind) Status naredbe: 0x00000000 (postavljeno na 0 za zahtjeve) Broj sekvence: Jedinstveni identifikator za PDU
Primjer unbind PDU-a (heksadecimalno):
00000010 00000006 00000000 00000004
Objašnjenje:
- Duljina naredbe (00000010): Ukupna duljina (16 bajtova).
- ID naredbe (00000006): Identificira PDU kao unbind.
- Status naredbe (00000000): Postavljeno na 0 za zahtjev.
- Broj sekvence (00000004): Jedinstveni ID za praćenje PDU-a.
SMSC odgovara s unbind_resp PDU-om, potvrđujući prekid sesije. U Ozeki SMS Gatewayu, ovo možete pokrenuti klikom na "Prekini vezu" u panelu "Veze".
Najbolje prakse za korisnike SMPP API-ja
Kako biste optimizirali svoju implementaciju SMPP API-ja s Ozeki SMS Gatewayem za primanje SMS-a:
- Omogućite Keepalive pakete: Osigurajte da je opcija "Pošalji keepalive pakete" omogućena kako biste održali stabilnu vezu.
- Pratite zapisnike: Redovito provjeravajte zapisnike SMPP PDU-a kako biste otklonili probleme s bind_transceiver, enquire_link ili deliver_sm PDU-ima.
- Koristite transceiver mod: Preferirajte transceiver mod radi učinkovitosti, jer podržava i slanje i primanje preko jedne veze.
- Sigurne veze: Ako vaš pružatelj podržava, koristite SMPPS (SMPP preko SSL/TLS) za šifriranu komunikaciju.
- Obrada izvješća o isporuci: Konfigurirajte Ozeki za obradu deliver_sm PDU-a koji sadrže izvješća o isporuci kako biste pratili status poruke.
Primanje SMS poruka korištenjem SMPP API-ja s Ozeki SMS Gatewayom uključuje uspostavljanje veze s bind_transceiver PDU-om, održavanje veze s enquire_link PDU-ima i obradu dolaznih poruka putem deliver_sm PDU-a. Razumijevanjem ovih PDU-a i pravilnim konfiguriranjem Ozeki SMS Gatewaya, programeri mogu izgraditi pouzdane SMS aplikacije visokih performansi. Fleksibilnost SMPP API-ja i robusna implementacija Ozeki-ja čine ga izvrsnim izborom za tvrtke koje traže skalabilna SMS rješenja. Za dodatne pojedinosti, pogledajte dokumentaciju Ozeki SMS Gatewaya ili kontaktirajte svog pružatelja SMS usluga za specifične parametre konfiguracije.
More information
- Kako postaviti SMPP API klijentsku vezu s Vašim SMSC
- Kako postaviti SMPP API poslužitelj za slanje i primanje SMS-a iz više aplikacija
- Kako odabrati pravog SMPP API pružatelja za vaš posao
- Kako poslati SMS koristeći SMPP API na razini protokola
- Kako poslati SMS putem SMPP API-a koristeći Python
- Kako poslati SMS putem SMPP API-a koristeći Javascript
- Kako poslati SMS putem SMPP API-a koristeći Java
- Kako poslati SMS putem SMPP API-a koristeći PHP
- Kako poslati SMS putem SMPP API-ja koristeći C#
- Kako poslati SMS putem SMPP API-a koristeći C/Cpp
- Kako primiti SMS koristeći SMPP API
- Kako primiti izvješće o isporuci SMS-a koristeći SMPP API
- SMPP API FAQ