Jak přijímat SMPP doručovací zprávy prostřednictvím SMPP API

Protokol Short Message Peer-to-Peer (SMPP) je základem moderní SMS komunikace, umožňující externím entitám pro krátké zprávy (ESME) vyměňovat si zprávy a doručovací zprávy s centry služby krátkých zpráv (SMSC). Pro vývojáře používající SMPP API s Ozeki SMS Gateway je pochopení, jak přijímat doručovací zprávy, klíčové pro sledování stavu odeslaných SMS zpráv. Tento článek poskytuje komplexní průvodce přijímáním SMPP doručovacích zpráv na úrovni protokolu, zaměřující se na potřebné SMPP Protocol Data Units (PDU) pro nastavení připojení, jeho udržování a příjem doručovacích zpráv s využitím Ozeki SMS Gateway jako primární platformy SMPP API serveru.

Úvod do SMPP doručovacích zpráv a Ozeki SMS Gateway

SMPP doručovací zprávy jsou oznámení odesílaná SMSC, která informují ESME o stavu dříve odeslané SMS, například zda byla doručena, selhala nebo byla odmítnuta. Tyto zprávy jsou nezbytné pro aplikace vyžadující potvrzení doručení zprávy, jako jsou transakční oznámení nebo marketingové kampaně. Ozeki SMS Gateway, robustní SMPP software podporující verze 3.3, 3.4 a 5.0, zjednodušuje proces zpracování SMPP doručovacích zpráv prostřednictvím svého intuitivního rozhraní a výkonných konfiguračních možností. Tento článek podrobně popisuje SMPP PDU zapojené do nastavení připojení SMPP API klienta, jeho udržování a příjmu doručovacích zpráv, s praktickými radami pro uživatele Ozeki SMS Gateway.

Pochopení SMPP PDU pro doručovací zprávy

SMPP protokol spoléhá na Protocol Data Units (PDU) pro správu komunikace mezi SMPP klientem (např. Ozeki SMS Gateway) a SMSC. Pro příjem doručovacích zpráv musí klient navázat připojení, udržovat ho a zpracovávat příchozí doručovací zprávy. Klíčové PDU zahrnují:

  • bind_transceiver: Naváže připojení pro odesílání a příjem SMS a doručovacích zpráv.
  • enquire_link: Udržuje připojení, aby zajistil nepřetržitý příjem doručovacích zpráv.
  • deliver_sm: Doručuje příchozí doručovací zprávy (a SMS zprávy) z SMSC klientovi.
  • unbind: Ukončí SMPP relaci.

Níže prozkoumáme každé PDU, jejich strukturu a roli v přijímání SMPP doručovacích zpráv pomocí SMPP API s Ozeki SMS Gateway.

Nastavení připojení SMPP API klienta

Příjem zpráv o doručení SMPP vyžaduje stabilní připojení SMPP API klienta k SMSC. Ozeki SMS Gateway tento proces zjednodušuje, ale pochopení operací na úrovni protokolu je nezbytné pro pokročilé uživatele a řešení problémů.

1. Konfigurace SMPP klienta v Ozeki SMS Gateway

Pro nastavení připojení SMPP API klienta v Ozeki SMS Gateway pro příjem zpráv o doručení postupujte podle těchto kroků:

  1. Přístup ke konzoli pro správu: Přihlaste se do webového rozhraní Ozeki SMS Gateway pomocí účtu správce (výchozí uživatelské jméno: "admin").
  2. Vytvoření nového připojení: V panelu "Připojení" klikněte na "Přidat nové připojení" a vyberte "SMPP klient" v sekci "IP SMS připojení".
  3. Zadání nastavení SMPP: Zadejte následující údaje, které obvykle poskytuje váš poskytovatel SMS služeb:
    • Název hostitele: IP adresa nebo název hostitele SMSC (např. "192.168.1.1").
    • Číslo portu: TCP/IP port pro komunikaci SMPP (výchozí je 9500, ověřte u poskytovatele).
    • Uživatelské jméno (System ID): Identifikátor vašeho účtu SMSC (např. "smppuser").
    • Heslo: Heslo pro System ID (např. "password123").
    • Verze SMPP: Vyberte v3.4 pro podporu transceiveru, což je optimální pro odesílání a příjem.
    • Typ systému: Volitelné, často "SMPP", jak určuje poskytovatel.
    • Odesílatelova adresa: Výchozí telefonní číslo pro odchozí SMS (např. "+1234567890").
    • Rozsah adres: Volitelné, použité pro příjem zpráv nebo zpráv o doručení pro konkrétní čísla.
  4. Režim vazby: Vyberte "Transceiver" pro povolení odesílání SMS a příjmu zpráv o doručení přes jedno připojení.
  5. Povolení zpráv o doručení: V záložce "Pokročilé" zaškrtněte "Vyžádat zprávu o doručení", aby SMSC odesílal zprávy o doručení pro odeslané zprávy.
  6. Nastavení keepalive: Povolte "Odesílat keepalive pakety" pro udržení připojení pro nepřetržitý příjem zpráv o doručení.
  7. Povolení protokolování: V záložce "Pokročilé" povolte "Protokolovat komunikační události" pro zachycení SMPP PDU pro ladění.
  8. Uložení a připojení: Klikněte na "OK" pro uložení, poté na "Připojit" pro zahájení připojení SMPP API.

Tato nastavení připraví Ozeki SMS Gateway k navázání připojení SMPP API pomocí PDU bind_transceiver, což umožní příjem zpráv o doručení.

2. PDU bind_transceiver

PDU bind_transceiver ověřuje SMPP klienta u SMSC a navazuje připojení pro odesílání SMS a příjem zpráv o doručení. Je to první krok k povolení funkcionality SMPP API.

Struktura PDU bind_transceiver

Délka příkazu: 4 bajty (celková délka PDU)
ID příkazu: 0x00000009 (bind_transceiver)
Stav příkazu: 0x00000000 (nastaveno na 0 pro požadavky)
Číslo sekvence: Jedinečný identifikátor pro PDU
System ID: Uživatelské jméno pro ověření (např. "smppuser")
Heslo: Heslo pro ověření (např. "password123")
Typ systému: Volitelné, často "SMPP"
Verze rozhraní: Verze SMPP (např. 0x34 pro v3.4)
Rozsah adres: Volitelné, pro příjem zpráv nebo zpráv o doručení

Příklad PDU bind_transceiver (hexadecimální):

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

Vysvětlení:

  • Délka příkazu (0000002F): Celková délka PDU (47 bajtů).
  • ID příkazu (00000009): Identifikuje PDU jako bind_transceiver.
  • Stav příkazu (00000000): Nastaveno na 0 pro požadavek.
  • Číslo sekvence (00000001): Jedinečné ID pro sledování PDU.
  • System ID (736D70707573657200): ASCII pro "smppuser" s nulovým ukončovačem.
  • Heslo (70617373776F726431323300): ASCII pro "password123" s nulovým ukončovačem.
  • Typ systému (534D505000): ASCII pro "SMPP" s nulovým ukončovačem.
  • Verze rozhraní (34): Označuje SMPP v3.4.
  • Rozsah adres (00): Nula, protože je volitelné.

SMSC odpoví PDU bind_transceiver_resp. Stav příkazu 0x00000000 indikuje úspěšné připojení. Ozeki SMS Gateway zaznamenává tuto interakci v protokolu "Komunikační události", což je užitečné pro ověření připojení.

Udržování připojení SMPP API

Stabilní připojení je klíčové pro příjem zpráv o doručení SMPP, protože přerušení může vést k chybějícím aktualizacím stavu. PDU enquire_link se používá k udržení připojení.

PDU enquire_link

PDU enquire_link je periodicky odesílána SMPP klientem k potvrzení stavu připojení, čímž zabraňuje odpojení z důvodu nečinnosti.

Struktura PDU enquire_link

Délka příkazu: 0x00000010 (16 bajtů)
ID příkazu: 0x00000015 (enquire_link)
Stav příkazu: 0x00000000 (nastaveno na 0 pro požadavky)
Číslo sekvence: Jedinečný identifikátor pro PDU

Příklad PDU enquire_link (hexadecimální):

00000010 00000015 00000000 00000002

Vysvětlení:

  • Délka příkazu (00000010): Celková délka (16 bajtů).
  • ID příkazu (00000015): Identifikuje PDU jako enquire_link.
  • Stav příkazu (00000000): Nastaveno na 0 pro požadavek.
  • Číslo sekvence (00000002): Jedinečné ID pro sledování PDU.

SMSC odpoví PDU enquire_link_resp k potvrzení stavu připojení. V Ozeki SMS Gateway povolení "Odesílat keepalive pakety" v záložce "Komunikace" zajišťuje, že PDU enquire_link jsou odesílány automaticky (např. každých 30 sekund). To je klíčové pro udržení spolehlivého připojení SMPP API pro příjem zpráv o doručení.

Příjem SMPP doručovacích zpráv

SMPP doručovací zprávy jsou přijímány prostřednictvím PDU deliver_sm, které SMSC odesílá klientovi, aby nahlásilo stav dříve odeslané SMS. PDU obsahuje podrobnosti, jako je ID zprávy, stav doručení a časové razítko.

PDU deliver_sm pro doručovací zprávy

PDU deliver_sm se používá jak pro příchozí SMS zprávy, tak pro doručovací zprávy. Pro doručovací zprávy je pole ESM Class PDU nastaveno tak, aby indikovalo potvrzení o doručení (obvykle 0x04), a obsah zprávy zahrnuje strukturovanou zprávu s informacemi o stavu.

Struktura PDU deliver_sm (Doručovací zpráva)

Délka příkazu: Proměnná (závisí na délce zprávy)
ID příkazu: 0x00000005 (deliver_sm)
Stav příkazu: 0x00000000 (nastaveno na 0 pro požadavky)
Číslo sekvence: Jedinečný identifikátor PDU
Typ služby: Volitelné, často null
TON zdrojové adresy: Typ čísla odesílatele (SMSC nebo příjemce)
NPI zdrojové adresy: Indikátor číslovacího plánu odesílatele
Zdrojová adresa: Telefonní číslo odesílatele nebo identifikátor SMSC
TON cílové adresy: Typ čísla příjemce (ESME)
NPI cílové adresy: Indikátor číslovacího plánu příjemce
Cílová adresa: Telefonní číslo příjemce (např. virtuální číslo ESME)
ESM Class: 0x04 (indikuje potvrzení o doručení)
Kódování dat: Kódování znaků (např. 0x00 pro GSM 7-bit)
Krátká zpráva: Text doručovací zprávy (např. "id:12345 sub:001 dlvrd:001 submit date:2505270415 done date:2505270416 stat:DELIVRD err:000")
Volitelné parametry: TLV pole jako receipted_message_id a message_state

Příklad PDU deliver_sm (hexadecimální):

0000007A 00000005 00000000 00000003 00 01 01 2B3938373635343332313000 01 01 2B3132333435363738393000 04 00 00 00 00 69643A3132333435207375623A30303120646C7672643A303031207375626D697420646174653A3235303532373034313520646F6E6520646174653A3235303532373034313620737461743A44454C49565244206572723A303030

Vysvětlení:

  • Délka příkazu (0000007A): Celková délka (122 bajtů).
  • ID příkazu (00000005): Identifikuje PDU jako deliver_sm.
  • Stav příkazu (00000000): Nastaveno na 0 pro požadavek.
  • Číslo sekvence (00000003): Jedinečné ID pro sledování PDU.
  • Typ služby (00): Null, protože je volitelné.
  • TON zdrojové adresy (01): Mezinárodní číslo.
  • NPI zdrojové adresy (01): ISDN/telefonní číslovací plán.
  • Zdrojová adresa (2B3938373635343332313000): ASCII pro "+9876543210" (číslo příjemce).
  • TON cílové adresy (01): Mezinárodní číslo.
  • NPI cílové adresy (01): ISDN/telefonní číslovací plán.
  • Cílová adresa (2B3132333435363738393000): ASCII pro "+1234567890" (číslo ESME).
  • ESM Class (04): Indikuje potvrzení o doručení.
  • Kódování dat (00): GSM 7-bitové kódování.
  • Krátká zpráva: ASCII pro "id:12345 sub:001 dlvrd:001 submit date:2505270415 done date:2505270416 stat:DELIVRD err:000".

Pole doručovací zprávy:

  • id: ID zprávy přiřazené SMSC (např. "12345").
  • sub: Počet příjemců (např. "001").
  • dlvrd: Počet doručených zpráv (např. "001").
  • submit date: Časové razítko odeslání (např. "2505270415" pro 27. května 2025, 04:15).
  • done date: Časové razítko doručení (např. "2505270416").
  • stat: Stav doručení (např. "DELIVRD" pro doručeno, "UNDELIV" pro nedoručitelné).
  • err: Kód chyby (např. "000" pro žádnou chybu).

Klient musí odpovědět PDU deliver_sm_resp, aby potvrdil příjem. Ozeki SMS Gateway toto zpracovává automaticky a směruje doručovací zprávu do nakonfigurované aplikace nebo databáze, přičemž ji zaznamenává v panelu "Zprávy".

Konfigurace Ozeki SMS Gateway pro příjem doručovacích zpráv

Pro správné zpracování SMPP doručovacích zpráv v Ozeki SMS Gateway:

  1. Povolit doručovací zprávy: V konfiguraci SMPP klienta zaškrtněte "Vyžadovat doručovací zprávu" na kartě "Pokročilé", aby SMSC odesílalo doručovací zprávy.
  2. Nastavení virtuálního čísla: Ujistěte se, že SMSC je nakonfigurováno tak, aby odesílalo doručovací zprávy na virtuální číslo nebo rozsah adres uvedený v nastavení SMPP klienta.
  3. Integrace s databází: Nakonfigurujte Ozeki pro ukládání doručovacích zpráv do databáze úpravou SQL SELECT příkazu v konfiguraci "Databázový uživatel" (např. "SELECT id, sender, receiver, msg, msgtype, status FROM ozekimessagein WHERE msgtype='DLR'").
  4. Logování: Povolte logování SMPP PDU pro sledování příchozích PDU deliver_sm pro účely ladění.

S těmito nastaveními bude Ozeki SMS Gateway zpracovávat a ukládat doručovací zprávy, což je zpřístupní pro aplikace nebo další analýzu.

Ukončení připojení SMPP API

Když již není SMPP API relace potřeba, klient odešle PDU unbind, aby připojení řádně ukončil.

PDU unbind

PDU unbind signalizuje SMSC, aby ukončilo SMPP relaci.

Struktura PDU unbind

Délka příkazu: 0x00000010 (16 bajtů)
ID příkazu: 0x00000006 (unbind)
Stav příkazu: 0x00000000 (nastaveno na 0 pro požadavky)
Číslo sekvence: Jedinečný identifikátor PDU

Příklad PDU unbind (hexadecimální):

00000010 00000006 00000000 00000004

Vysvětlení:

  • Délka příkazu (00000010): Celková délka (16 bajtů).
  • ID příkazu (00000006): Identifikuje PDU jako unbind.
  • Stav příkazu (00000000): Nastaveno na 0 pro požadavek.
  • Číslo sekvence (00000004): Jedinečné ID pro sledování PDU.

SMSC odpoví PDU unbind_resp, čímž potvrdí ukončení relace. V Ozeki SMS Gateway lze toto iniciovat kliknutím na "Odpojit" v panelu "Připojení".

Osvědčené postupy pro zpracování doručovacích zpráv v SMPP API

Pro optimalizaci vaší implementace SMPP API pro příjem doručovacích zpráv s Ozeki SMS Gateway:

  • Vyžádejte si doručovací zprávy: Při odesílání SMS vždy povolte možnost "Vyžádat si doručovací zprávu", aby SMSC generovalo zprávy.
  • Sledujte protokoly: K řešení problémů s PDU deliver_sm, zejména u doručovacích zpráv, používejte protokoly SMPP PDU.
  • Použijte transceiverový režim: Pro vyšší efektivitu upřednostňujte transceiverový režim, který podporuje jak odesílání SMS, tak příjem doručovacích zpráv.
  • Zabezpečená připojení: Pokud to váš poskytovatel podporuje, používejte SMPPS (SMPP přes SSL/TLS) pro zabezpečený přenos doručovacích zpráv.
  • Analyzujte doručovací zprávy: Nakonfigurujte aplikace tak, aby analyzovaly pole Short Message v PDU deliver_sm a extrahovaly informace o stavu (např. "DELIVRD" nebo "UNDELIV") pro užitečné poznatky.

Závěr

Příjem doručovacích zpráv SMPP pomocí SMPP API s Ozeki SMS Gateway zahrnuje navázání spojení s PDU bind_transceiver, jeho udržování pomocí PDU enquire_link a zpracování doručovacích zpráv prostřednictvím PDU deliver_sm. Správnou konfigurací Ozeki SMS Gateway a pochopením základního protokolu SMPP mohou vývojáři vytvořit spolehlivé systémy pro sledování stavu doručení SMS. Robustnost SMPP API a flexibilní konfigurace Ozeki z něj činí výbornou volbu pro správu doručovacích zpráv ve vysoce objemových SMS aplikacích. Pro více podrobností se podívejte do dokumentace Ozeki SMS Gateway nebo kontaktujte svého poskytovatele SMS služeb pro specifické požadavky na konfiguraci.

More information