Ako prijímať SMPP správy o doručení prostredníctvom SMPP API
Protokol Short Message Peer-to-Peer (SMPP) je základom modernej SMS komunikácie, umožňujúc Externým Entitám Krátkych Správ (ESME) výmenu správ a správ o doručení so Strediskami Služby Krátkych Správ (SMSC). Pre vývojárov používajúcich SMPP API s Ozeki SMS Gateway je pochopenie, ako prijímať správy o doručení, kľúčové pre sledovanie stavu odoslaných SMS správ. Tento článok poskytuje komplexného sprievodcu prijímaním SMPP správ o doručení na úrovni protokolu, so zameraním na potrebné Protokolové Dátové Jednotky (PDU) pre nastavenie pripojenia, jeho udržiavanie a prijímanie správ o doručení pomocou Ozeki SMS Gateway ako primárnej platformy SMPP API servera.
Úvod do SMPP správ o doručení a Ozeki SMS Gateway
SMPP správy o doručení sú oznámenia odosielané SMSC, ktoré informujú ESME o stave predtým odoslanej SMS, napríklad o tom, či bola doručená, zlyhala alebo bola zamietnutá. Tieto správy sú nevyhnutné pre aplikácie vyžadujúce potvrdenie doručenia správy, ako sú transakčné notifikácie alebo marketingové kampane. Ozeki SMS Gateway, výkonný SMPP softvér podporujúci verzie 3.3, 3.4 a 5.0, zjednodušuje proces spracovania SMPP správ o doručení vďaka svojmu intuitívnemu rozhraniu a výkonným možnostiam konfigurácie. Tento článok podrobne popisuje SMPP PDU zapojené do nastavenia pripojenia klienta SMPP API, jeho udržiavania a prijímania správ o doručení, s praktickými radami pre používateľov Ozeki SMS Gateway.
Pochopenie SMPP PDU pre správy o doručení
Protokol SMPP sa spolieha na Protokolové Dátové Jednotky (PDU) na správu komunikácie medzi klientom SMPP (napr. Ozeki SMS Gateway) a SMSC. Na prijímanie správ o doručení musí klient nadviazať pripojenie, udržiavať ho a spracovávať prichádzajúce správy o doručení. Kľúčové PDU sú:
- bind_transceiver: Nadväzuje pripojenie pre odosielanie a prijímanie SMS a správ o doručení.
- enquire_link: Udržiava pripojenie, aby zabezpečil nepretržité prijímanie správ o doručení.
- deliver_sm: Doručuje prichádzajúce správy o doručení (a SMS správy) z SMSC klientovi.
- unbind: Ukončuje SMPP reláciu.
Nižšie preskúmame každé PDU, ich štruktúru a úlohu v prijímaní SMPP správ o doručení pomocou SMPP API s Ozeki SMS Gateway.
Nastavenie pripojenia klienta SMPP API
Nastavenie pripojenia klienta SMPP API
Prijímanie správ o doručení SMPP vyžaduje stabilné pripojenie klienta SMPP API k SMSC. Ozeki SMS Gateway tento proces zjednodušuje, ale pre pokročilých používateľov a riešenie problémov je nevyhnutné porozumieť operáciám na úrovni protokolu.
1. Konfigurácia klienta SMPP v Ozeki SMS Gateway
Ak chcete nastaviť pripojenie klienta SMPP API v Ozeki SMS Gateway na prijímanie správ o doručení, postupujte podľa týchto krokov:
- Prístup do konzoly na správu: Prihláste sa do webového rozhrania Ozeki SMS Gateway pomocou účtu správcu (predvolené používateľské meno: "admin").
- Vytvorenie nového pripojenia: V paneli "Pripojenia" kliknite na "Pridať nové pripojenie" a vyberte "Klient SMPP" v sekcii "IP SMS pripojenia".
- Zadanie nastavení SMPP: Zadajte nasledujúce údaje, ktoré zvyčajne poskytuje váš poskytovateľ služieb SMS:
- Názov hostiteľa: IP adresa alebo názov hostiteľa SMSC (napr. "192.168.1.1").
- Číslo portu: TCP/IP port pre komunikáciu SMPP (predvolený je 9500, potvrďte u svojho poskytovateľa).
- Používateľské meno (ID systému): Identifikátor vášho účtu SMSC (napr. "smppuser").
- Heslo: Heslo pre ID systému (napr. "password123").
- Verzia SMPP: Vyberte v3.4 pre podporu transceivera, čo je optimálne 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 alebo správ o doručení pre konkrétne čísla.
- Režim viazania: Vyberte "Transceiver" pre povolenie odosielania SMS a prijímania správ o doručení cez jedno pripojenie.
- Povolenie správ o doručení: Na karte "Pokročilé" začiarknite "Vyžiadať správu o doručení", aby SMSC odosielal správy o doručení pre odoslané správy.
- Nastavenia keepalive: Povoľte "Odosielať keepalive pakety" pre udržanie pripojenia pre nepretržité prijímanie správ.
- Povolenie logovania: Na karte "Pokročilé" povoľte "Logovať komunikačné udalosti" pre zachytenie PDU SMPP na ladenie.
- Uloženie a pripojenie: Kliknite na "OK" pre uloženie, potom na "Pripojiť" pre inicializáciu pripojenia SMPP API.
Tieto nastavenia pripravujú Ozeki SMS Gateway na vytvorenie pripojenia SMPP API pomocou PDU bind_transceiver, čo umožňuje prijímanie správ o doručení.
2. PDU bind_transceiver
PDU bind_transceiver overuje klienta SMPP pri SMSC a vytvára pripojenie pre odosielanie SMS a prijímanie správ o doručení. Je to prvý krok pri povolení funkčnosti 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) Číslo sekvencie: Jedinečný identifikátor pre PDU ID systému: Používateľské meno pre overenie (napr. "smppuser") Heslo: Heslo pre overenie (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 alebo správ o doručení
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.
- Číslo sekvencie (00000001): Jedinečné ID pre sledovanie PDU.
- ID systému (736D70707573657200): ASCII pre "smppuser" s ukončovačom null.
- Heslo (70617373776F726431323300): ASCII pre "password123" s ukončovačom null.
- Typ systému (534D505000): ASCII pre "SMPP" s ukončovačom null.
- Verzia rozhrania (34): Označuje SMPP v3.4.
- Rozsah adries (00): Null, pretože je voliteľný.
SMSC odpovedá PDU bind_transceiver_resp. Stav príkazu 0x00000000 označuje úspešné pripojenie. Ozeki SMS Gateway zaznamenáva túto interakciu v logu "Komunikačné udalosti", čo je užitočné pre overenie pripojenia.
Udržiavanie pripojenia SMPP APIStabilné pripojenie je kritické pre prijímanie správ o doručení SMPP, pretože prerušenia môžu spôsobiť stratu aktualizácií stavu. PDU enquire_link sa používa na udržanie pripojenia aktívneho.
PDU enquire_link
PDU enquire_link sa periodicky odosiela klientom SMPP na potvrdenie stavu pripojenia, čím sa predchádza odpojeniu z dôvodu nečinnosti.
Š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) Číslo sekvencie: Jedinečný 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.
- Číslo sekvencie (00000002): Jedinečné ID pre sledovanie PDU.
SMSC odpovedá PDU enquire_link_resp na potvrdenie stavu pripojenia. V Ozeki SMS Gateway povolenie "Odosielať keepalive pakety" na karte "Komunikácia" zabezpečuje, že PDU enquire_link sa odosielajú automaticky (napr. každých 30 sekúnd). Toto je kritické pre udržanie spoľahlivého pripojenia SMPP API na prijímanie správ o doručení.
Prijímanie SMPP správ o doručení
SMPP správy o doručení sú prijímané prostredníctvom deliver_sm PDU, ktoré SMSC odosiela klientovi, aby nahlásil stav predtým odoslanej SMS. PDU obsahuje podrobnosti, ako napríklad ID správy, stav doručenia a časovú pečiatku.
PDU deliver_sm pre správy o doručení
deliver_sm PDU sa používa pre prichádzajúce SMS správy aj správy o doručení. Pre správy o doručení je pole ESM Class PDU nastavené na označenie potvrdenia o doručení (typicky 0x04) a obsah správy obsahuje štruktúrovanú správu so stavovými informáciami.
Štruktúra PDU deliver_sm (správa o doručení)
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: Jedinečný identifikátor pre PDU Typ služby: Voliteľné, často null TON zdrojovej adresy: Typ čísla pre odosielateľa (SMSC alebo príjemca) NPI zdrojovej adresy: Indikátor číselného plánu pre odosielateľa Zdrojová adresa: Telefónne číslo odosielateľa alebo identifikátor SMSC TON cieľovej adresy: Typ čísla pre príjemcu (ESME) 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 ESME) ESM Class: 0x04 (označuje potvrdenie o doručení) Kódovanie dát: Kódovanie znakov (napr. 0x00 pre GSM 7-bit) Krátka správa: Text správy o doručení (napr. "id:12345 sub:001 dlvrd:001 submit date:2505270415 done date:2505270416 stat:DELIVRD err:000") Volitelné parametre: TLV polia ako receipted_message_id a message_state
Príklad PDU deliver_sm (hexadecimálne):
0000007A 00000005 00000000 00000003 00 01 01 2B3938373635343332313000 01 01 2B3132333435363738393000 04 00 00 00 00 69643A3132333435207375623A30303120646C7672643A303031207375626D697420646174653A3235303532373034313520646F6E6520646174653A3235303532373034313620737461743A44454C49565244206572723A303030
Vysvetlenie:
- Dĺžka príkazu (0000007A): Celková dĺžka (122 bajtov).
- ID príkazu (00000005): Identifikuje PDU ako deliver_sm.
- Stav príkazu (00000000): Nastavené na 0 pre požiadavku.
- Sériové číslo (00000003): Jedinečné 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): ISDN/telefónny číselný plán.
- Zdrojová adresa (2B3938373635343332313000): ASCII pre "+9876543210" (číslo príjemcu).
- TON cieľovej adresy (01): Medzinárodné číslo.
- NPI cieľovej adresy (01): ISDN/telefónny číselný plán.
- Cieľová adresa (2B3132333435363738393000): ASCII pre "+1234567890" (číslo ESME).
- ESM Class (04): Označuje potvrdenie o doručení.
- Kódovanie dát (00): GSM 7-bit kódovanie.
- Krátka správa: ASCII pre "id:12345 sub:001 dlvrd:001 submit date:2505270415 done date:2505270416 stat:DELIVRD err:000".
Polia správy o doručení:
- id: ID správy priradené SMSC (napr. "12345").
- sub: Počet príjemcov (napr. "001").
- dlvrd: Počet doručených správ (napr. "001").
- submit date: Časová pečiatka odoslania (napr. "2505270415" pre 27. máj 2025, 04:15).
- done date: Časová pečiatka doručenia (napr. "2505270416").
- stat: Stav doručenia (napr. "DELIVRD" pre doručené, "UNDELIV" pre nedoručiteľné).
- err: Kód chyby (napr. "000" pre žiadnu chybu).
Klient musí odpovedať pomocou deliver_sm_resp PDU na potvrdenie prijatia. Ozeki SMS Gateway to spracováva automaticky a smeruje správu o doručení do nakonfigurovanej aplikácie alebo databázy, pričom ju zaznamenáva v paneli "Správy".
Konfigurácia Ozeki SMS Gateway na prijímanie správ o doručení
Aby Ozeki SMS Gateway správne spracovával SMPP správy o doručení:
- Povolenie správ o doručení: V konfigurácii SMPP klienta začiarknite "Vyžiadať správu o doručení" na karte "Pokročilé", aby ste inštruovali SMSC na odosielanie správ o doručení.
- Nastavenie virtuálneho čísla: Uistite sa, že SMSC je nakonfigurovaný na odosielanie správ o doručení na virtuálne číslo alebo rozsah adries uvedený v nastaveniach SMPP klienta.
- Integrácia databázy: Nakonfigurujte Ozeki na ukladanie správ o doručení do databázy úpravou príkazu SQL SELECT v konfigurácii "Databázový používateľ" (napr. "SELECT id, sender, receiver, msg, msgtype, status FROM ozekimessagein WHERE msgtype='DLR'").
- Logovanie: Povoľte logovanie SMPP PDU na monitorovanie prichádzajúcich deliver_sm PDU pre ladenie.
S týmito nastaveniami bude Ozeki SMS Gateway spracovávať a ukladať správy o doručení, čím ich sprístupní pre aplikácie alebo ďalšiu analýzu.
Ukončenie spojenia SMPP APIKeď už nie je potrebné spojenie SMPP API, klient odošle unbind PDU na elegantné ukončenie spojenia.
PDU unbind
unbind PDU signalizuje SMSC ukončenie SMPP relácie.
Š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: Jedinečný 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): Jedinečné ID na sledovanie PDU.
SMSC odpovie pomocou unbind_resp PDU, čím potvrdí ukončenie relácie. V Ozeki SMS Gateway sa to môže iniciovať kliknutím na "Odpojiť" v paneli "Spojenia".
Najlepšie postupy pre spracovanie správ o doručení v SMPP API
Ak chcete optimalizovať vašu implementáciu SMPP API na prijímanie správ o doručení s Ozeki SMS Gateway:
- Požadujte správy o doručení: Vždy aktivujte možnosť "Požadovať správu o doručení" pri odosielaní SMS, aby SMSC generovalo správy.
- Sledujte denníky: Použite denníky SMPP PDU na riešenie problémov s deliver_sm PDU, najmä pre správy o doručení.
- Použite transceiverový režim: Pre efektivitu uprednostňujte transceiverový režim, pretože podporuje odosielanie SMS aj prijímanie správ o doručení.
- Zabezpečené pripojenia: Ak to váš poskytovateľ podporuje, použite SMPPS (SMPP cez SSL/TLS) na zabezpečený prenos správ o doručení.
- Analyzujte správy o doručení: Nakonfigurujte aplikácie tak, aby analyzovali pole Short Message v deliver_sm PDU a extrahovali informácie o stave (napr. "DELIVRD" alebo "UNDELIV") pre užitočné poznatky.
Prijímanie správ o doručení SMPP pomocou SMPP API s Ozeki SMS Gateway zahŕňa nadviazanie spojenia s bind_transceiver PDU, jeho udržiavanie pomocou enquire_link PDU a spracovanie správ o doručení cez deliver_sm PDU. Správnou konfiguráciou Ozeki SMS Gateway a pochopením základného protokolu SMPP môžu vývojári vytvoriť spoľahlivé systémy na sledovanie stavu doručenia SMS. Robustnosť SMPP API a flexibilná konfigurácia Ozeki robia z neho výbornú voľbu pre správu správ o doručení vo vysokokapacitných SMS aplikáciách. Pre viac podrobností si pozrite dokumentáciu Ozeki SMS Gateway alebo kontaktujte svojho poskytovateľa SMS služieb pre špecifické požiadavky na konfiguráciu.
More information
- How to set up an SMPP API client connection with Your SMSC
- How to set up an SMPP API server to send ad receive SMS from multiple Apps
- How to choose the right SMPP API provider for your business
- How to Send SMS Using the SMPP API at the protocol level
- How to Send SMS through the SMPP API using Python
- How to Send SMS through the SMPP API using Javascript
- How to send SMS through the SMPP API using Java
- How to Send SMS through the SMPP API using PHP
- How to Send SMS through the SMPP API using C#
- How to Send SMS through the SMPP API using C/Cpp
- How to Receive SMS using the SMPP API
- How to Receive an SMS Delivery Report using the SMPP API
- SMPP API FAQ