Ako prijímať SMS pomocou SMPP API

Protokol Short Message Peer-to-Peer (SMPP) je výkonný, priemyselný štandardný protokol navrhnutý na uľahčenie výmeny SMS správ medzi externými entitami krátkych správ (ESME) a centrami služby krátkych správ (SMSC). Pre vývojárov a podniky, ktorí využívajú SMPP API s Ozeki SMS Gateway ako svojou primárnou platformou, je pochopenie nízkoúrovňových operácií protokolu nevyhnutné pre vytvorenie robustných SMS riešení. Tento článok poskytuje komplexného sprievodcu, ako prijímať SMS správy pomocou SMPP API, so zameraním na interakcie na úrovni protokolu a špecifické jednotky protokolových dát (PDU), ktoré sú súčasťou nastavenia, udržiavania a využívania pripojenia klienta SMPP API s Ozeki SMS Gateway.

Úvod do SMPP API a Ozeki SMS Gateway

SMPP API je široko používané v telekomunikačnom priemysle pre svoju efektivitu pri spracovaní hromadných SMS správ cez TCP/IP pripojenia. Ozeki SMS Gateway, univerzálny softvér SMPP, slúži ako klient aj server SMPP, čo ho robí ideálnou platformou pre odosielanie a prijímanie SMS správ. Implementáciou protokolu SMPP (verzie 3.3 a 3.4, s podporou 5.0 v Ozeki 10 SMS Gateway), Ozeki umožňuje bezproblémovú konektivitu s SMSC, podporujúc aplikácie ako marketingové kampane, dvojfaktorová autentifikácia a notifikačné systémy. Tento článok sa zameriava na prijímanie SMS správ, podrobne popisuje SMPP PDU potrebné na nastavenie pripojenia, jeho udržiavanie a prijímanie správ.

Pochopenie SMPP PDU

SMPP funguje výmenou jednotiek protokolových dát (PDU) medzi klientom SMPP (napr. Ozeki SMS Gateway) a serverom SMPP (napr. SMSC). Každá PDU je štruktúrovaná správa, ktorá nesie špecifické inštrukcie alebo dáta, ako sú autentifikačné údaje, obsah SMS alebo dotazy na stav pripojenia. Na prijímanie SMS správ pomocou SMPP API musí klient nadviazať pripojenie, udržiavať ho a spracovávať prichádzajúce správy. Kľúčové PDU sú:

  • bind_transceiver: Nadväzuje pripojenie pre odosielanie aj prijímanie SMS.
  • enquire_link: Udržuje pripojenie kontrolou jeho stavu.
  • deliver_sm: Doručuje prichádzajúce SMS správy z SMSC ku klientovi.
  • unbind: Ukončuje SMPP reláciu.

Nižšie si podrobne prejdeme každú PDU, vrátane jej štruktúry, konfigurácie v Ozeki SMS Gateway a jej úlohy pri prijímaní SMS správ cez SMPP API.

Nastavenie pripojenia klienta SMPP API

Na prijímanie SMS správ je prvým krokom vytvorenie stabilného pripojenia klienta SMPP API s SMSC. Ozeki SMS Gateway tento proces zjednodušuje vďaka svojmu intuitívnemu rozhraniu, ale pre pokročilých používateľov je dôležité porozumieť operáciám na úrovni protokolu.

1. Konfigurácia klienta SMPP v Ozeki SMS Gateway

Na nastavenie pripojenia klienta SMPP API v Ozeki SMS Gateway postupujte podľa týchto krokov:

  1. Prihlásenie do manažérskej konzoly: Prístup do webového rozhrania Ozeki SMS Gateway pomocou účtu správcu (predvolené používateľské meno: "admin").
  2. Pridanie nového pripojenia: Prejdite do panelu "Pripojenia", kliknite na "Pridať nové pripojenie" a vyberte "Klient SMPP" v sekcii "IP SMS pripojenia".
  3. Konfigurácia nastavení SMPP: Zadajte nasledujúce údaje, ktoré zvyčajne poskytuje váš poskytovateľ SMS služieb:
    • Názov hostiteľa: IP adresa alebo hostname SMSC (napr. "192.168.1.1").
    • Číslo portu: TCP/IP port pre komunikáciu SMPP (predvolené je 9500, ale overte si u poskytovateľa).
    • Používateľské meno (System ID): Identifikátor vášho účtu pre SMSC.
    • Heslo: Heslo priradené k System ID.
    • Verzia SMPP: Vyberte v3.4 pre podporu transceivera (odporúčané pre odosielanie a prijímanie).
    • Typ systému: Voliteľné, často "SMPP", ako určuje poskytovateľ.
    • Adresa odosielateľa: Predvolené telefónne číslo pre odchádzajúce SMS (napr. "+1234567890").
    • Rozsah adries: Voliteľné, používa sa na prijímanie správ z viacerých čísel.
  4. Režim bind: Vyberte "Transceiver" pre povolenie odosielania a prijímania SMS cez jedno pripojenie.
  5. Pokročilé nastavenia: Povoľte "Automatické pripojenie pri štarte" pre bezproblémové opätovné pripojenie a zaškrtnite "Posielať keepalive pakety" na udržanie pripojenia.
  6. Povolenie logovania: V záložke "Pokročilé" povoľte "Logovať komunikačné udalosti" na zaznamenávanie SMPP PDU pre ladenie.
  7. Uloženie a pripojenie: Kliknite na "OK" pre uloženie konfigurácie a potom na "Pripojiť" na inicializáciu pripojenia.

Tieto nastavenia pripravujú Ozeki SMS Gateway na vytvorenie pripojenia SMPP API pomocou PDU bind_transceiver.

2. PDU bind_transceiver

PDU bind_transceiver je prvé PDU odoslané klientom SMPP na autentifikáciu a vytvorenie pripojenia s SMSC. Umožňuje odosielanie a prijímanie SMS správ cez jedno TCP/IP pripojenie, čo ho robí ideálnym pre väčšinu aplikácií SMPP API.

Štruktúra PDU bind_transceiver

Dĺžka príkazu: 4 bajty (celková dĺžka PDU)
ID príkazu: 0x00000009 (bind_transceiver)
Stav príkazu: 0x00000000 (nastavené na 0 pre požiadavky)
Sériové číslo: Unikátny identifikátor pre PDU
System ID: Používateľské meno pre autentifikáciu (napr. "smppuser")
Heslo: Heslo pre autentifikáciu (napr. "password123")
Typ systému: Voliteľné, často "SMPP"
Verzia rozhrania: Verzia SMPP (napr. 0x34 pre v3.4)
Rozsah adries: Voliteľné, pre prijímanie správ zo špecifických čísel

Príklad PDU bind_transceiver (hexadecimálne):

0000002F 00000009 00000000 00000001 736D70707573657200 70617373776F726431323300 534D505000 34 00

Vysvetlenie:

  • Dĺžka príkazu (0000002F): Celková dĺžka PDU (47 bajtov).
  • ID príkazu (00000009): Identifikuje PDU ako bind_transceiver.
  • Stav príkazu (00000000): Nastavené na 0 pre požiadavku.
  • Sériové číslo (00000001): Unikátne ID na sledovanie PDU.
  • System ID (736D70707573657200): ASCII pre "smppuser" s nulovým ukončovačom.
  • Heslo (70617373776F726431323300): ASCII pre "password123" s nulovým ukončovačom.
  • Typ systému (534D505000): ASCII pre "SMPP" s nulovým ukončovačom.
  • Verzia rozhrania (34): Indikuje SMPP v3.4.
  • Rozsah adries (00): Nula, pretože je voliteľné.

Po prijatí PDU bind_transceiver SMSC overí prihlasovacie údaje. Ak sú úspešné, odpovie PDU bind_transceiver_resp so stavom príkazu 0x00000000, čo indikuje úspešné pripojenie. Ozeki SMS Gateway zaznamenáva túto interakciu, ktorú je možné zobraziť v logu "Komunikačné udalosti".

Udržiavanie pripojenia SMPP API

Po vytvorení pripojenia je potrebné ho udržiavať, aby bolo zaručené nepretržité prijímanie SMS správ. Protokol SMPP používa PDU enquire_link na overenie stavu pripojenia a zabránenie jeho prerušenia z dôvodu nečinnosti.

PDU enquire_link

PDU enquire_link je ľahká správa, ktorú klient SMPP periodicky odosiela SMSC na potvrdenie aktivity pripojenia. Toto je obzvlášť dôležité pre udržiavanie dlhodobých pripojení, pretože proxy servery alebo SMSC môžu ukončiť nečinné pripojenia.

Štruktúra PDU enquire_link

Dĺžka príkazu: 0x00000010 (16 bajtov)
ID príkazu: 0x00000015 (enquire_link)
Stav príkazu: 0x00000000 (nastavené na 0 pre požiadavky)
Sériové číslo: Unikátny identifikátor pre PDU

Príklad PDU enquire_link (hexadecimálne):

00000010 00000015 00000000 00000002

Vysvetlenie:

  • Dĺžka príkazu (00000010): Celková dĺžka (16 bajtov).
  • ID príkazu (00000015): Identifikuje PDU ako enquire_link.
  • Stav príkazu (00000000): Nastavené na 0 pre požiadavku.
  • Sériové číslo (00000002): Unikátne ID na sledovanie PDU.

SMSC odpovie PDU enquire_link_resp, čím potvrdí stav pripojenia. V Ozeki SMS Gateway povolenie možnosti "Posielať keepalive pakety" v záložke "Komunikácia" zabezpečuje, že PDU enquire_link sú odosielané automaticky v pravidelných intervaloch (napr. každých 30 sekúnd). Toto nastavenie je kritické pre udržanie stabilného pripojenia SMPP API, najmä pri občasnom prijímaní SMS správ.

Prijímanie SMS správ pomocou SMPP API

Po nadviazaní a udržaní spojenia môže klient SMPP API prijímať SMS správy prostredníctvom PDU deliver_sm. Toto PDU je odoslané SMSC klientovi, keď je k dispozícii prichádzajúca SMS správa alebo správa o doručení.

PDU deliver_sm

PDU deliver_sm obsahuje obsah prichádzajúcej SMS správy alebo správy o doručení. Pre prijímanie SMS obsahuje PDU telefónne číslo odosielateľa, číslo príjemcu (virtuálne číslo priradené poskytovateľom) a text správy.

Štruktúra PDU deliver_sm

Dĺžka príkazu: Premenná (závisí od dĺžky správy)
ID príkazu: 0x00000005 (deliver_sm)
Stav príkazu: 0x00000000 (nastavené na 0 pre požiadavky)
Sériové číslo: Unikátny identifikátor pre PDU
Typ služby: Voliteľné, často null
TON zdrojovej adresy: Typ čísla pre odosielateľa
NPI zdrojovej adresy: Indikátor číselného plánu pre odosielateľa
Zdrojová adresa: Telefónne číslo odosielateľa (napr. "+1234567890")
TON cieľovej adresy: Typ čísla pre príjemcu
NPI cieľovej adresy: Indikátor číselného plánu pre príjemcu
Cieľová adresa: Telefónne číslo príjemcu (napr. virtuálne číslo)
Trieda ESM: Typ správy (napr. 0x04 pre SMS)
Kódovanie dát: Kódovanie znakov (napr. 0x00 pre GSM 7-bit)
Krátka správa: Text správy (až 160 znakov pre GSM)

Príklad PDU deliver_sm (hexadecimálne):

0000005F 00000005 00000000 00000003 00 01 01 2B3132333435363738393000 01 01 2B3938373635343332313000 00 00 00 00 00 48656C6C6F2C207468697320697320616E20534D5321

Vysvetlenie:

  • Dĺžka príkazu (0000005F): Celková dĺžka (95 bajtov).
  • ID príkazu (00000005): Identifikuje PDU ako deliver_sm.
  • Stav príkazu (00000000): Nastavené na 0 pre požiadavku.
  • Sériové číslo (00000003): Unikátne ID na sledovanie PDU.
  • Typ služby (00): Null, pretože je voliteľné.
  • TON zdrojovej adresy (01): Medzinárodné číslo.
  • NPI zdrojovej adresy (01): Číselný plán ISDN/telefón.
  • Zdrojová adresa (2B3132333435363738393000): ASCII pre "+1234567890".
  • TON cieľovej adresy (01): Medzinárodné číslo.
  • NPI cieľovej adresy (01): Číselný plán ISDN/telefón.
  • Cieľová adresa (2B3938373635343332313000): ASCII pre "+9876543210".
  • Trieda ESM (00): Indikuje štandardnú SMS.
  • Kódovanie dát (00): Kódovanie GSM 7-bit.
  • Krátka správa (48656C6C6F2C207468697320697320616E20534D5321): ASCII pre "Hello, this is an SMS!".

Po prijatí PDU deliver_sm Ozeki SMS Gateway spracuje správu a smeruje ju do nakonfigurovanej aplikácie alebo databázy. Klient musí odpovedať PDU deliver_sm_resp na potvrdenie prijatia, čím zabezpečí spoľahlivé doručenie. V Ozeki je táto odpoveď spracovaná automaticky a správa je zaznamenaná v paneli "Správy" alebo uložená v databáze, ak je to nakonfigurované.

Konfigurácia Ozeki SMS Gateway na prijímanie SMS

Aby Ozeki SMS Gateway mohol prijímať SMS správy:

  1. Nastavenie virtuálneho čísla: Spolupracujte so svojím poskytovateľom SMS služieb na priradení virtuálneho čísla (IMSI) na prijímanie SMS. Toto číslo je uvedené v poli "Rozsah adries" počas konfigurácie.
  2. Integrácia databázy: Nakonfigurujte Ozeki na ukladanie prichádzajúcich správ do databázy úpravou príkazu SQL SELECT v konfigurácii "Používateľ databázy" (napr. "SELECT id, sender, receiver, msg, msgtype FROM ozekimessagein").
  3. Logovanie: Povoľte logovanie PDU SMPP na monitorovanie prichádzajúcich PDU deliver_sm na účely ladenia.

Po nakonfigurovaní sú prichádzajúce SMS správy automaticky smerované do zadanej aplikácie alebo databázy, čím sa Ozeki SMS Gateway stáva robustnou platformou pre prijímanie SMS pomocou SMPP API.

Ukončenie spojenia SMPP API

Keď už nie je spojenie SMPP API potrebné, klient odošle PDU unbind na elegantné ukončenie spojenia.

PDU unbind

PDU unbind signalizuje SMSC ukončenie relácie SMPP.

Štruktúra PDU unbind

Dĺžka príkazu: 0x00000010 (16 bajtov)
ID príkazu: 0x00000006 (unbind)
Stav príkazu: 0x00000000 (nastavené na 0 pre požiadavky)
Sériové číslo: Unikátny identifikátor pre PDU

Príklad PDU unbind (hexadecimálne):

00000010 00000006 00000000 00000004

Vysvetlenie:

  • Dĺžka príkazu (00000010): Celková dĺžka (16 bajtov).
  • ID príkazu (00000006): Identifikuje PDU ako unbind.
  • Stav príkazu (00000000): Nastavené na 0 pre požiadavku.
  • Sériové číslo (00000004): Unikátne ID na sledovanie PDU.

SMSC odpovie PDU unbind_resp, čím potvrdí ukončenie relácie. V Ozeki SMS Gateway môžete toto iniciovať kliknutím na "Odpojiť" v paneli "Spojenia".

Najlepšie postupy pre používateľov SMPP API

Na optimalizáciu vašej implementácie SMPP API s Ozeki SMS Gateway pre prijímanie SMS:

  • Povoliť keepalive pakety: Uistite sa, že je povolená možnosť "Posielať keepalive pakety" na udržanie stabilného spojenia.
  • Monitorovať logy: Pravidelne kontrolujte logy PDU SMPP na riešenie problémov s PDU bind_transceiver, enquire_link alebo deliver_sm.
  • Použiť režim transceiver: Preferujte režim transceiver pre efektivitu, pretože podporuje odosielanie aj prijímanie cez jedno spojenie.
  • Zabezpečiť spojenia: Ak to váš poskytovateľ podporuje, použite SMPPS (SMPP cez SSL/TLS) pre šifrovanú komunikáciu.
  • Spracovať správy o doručení: Nakonfigurujte Ozeki na spracovanie PDU deliver_sm obsahujúcich správy o doručení na sledovanie stavu správ.

Záver

Prijímanie SMS správ pomocou SMPP API s Ozeki SMS Gateway zahŕňa nadviazanie spojenia pomocou bind_transceiver PDU, jeho udržiavanie pomocou enquire_link PDU a spracovanie prichádzajúcich správ cez deliver_sm PDU. Porozumením týmto PDU a vhodnou konfiguráciou Ozeki SMS Gateway môžu vývojári vytvoriť spoľahlivé a vysoko výkonné SMS aplikácie. Flexibilita SMPP API a robustná implementácia Ozeki z nej robia výbornú voľbu pre podniky, ktoré potrebujú škálovateľné SMS riešenia. Pre ďalšie podrobnosti si pozrite dokumentáciu Ozeki SMS Gateway alebo kontaktujte svojho poskytovateľa SMS služieb pre špecifické konfiguračné parametre.

More information