Jak přijímat SMS pomocí SMPP API

Protokol Short Message Peer-to-Peer (SMPP) je výkonný, průmyslový standard navržený pro usnadnění výměny SMS zpráv mezi externími entitami pro krátké zprávy (ESME) a centry služeb krátkých zpráv (SMSC). Pro vývojáře a firmy využívající SMPP API s Ozeki SMS Gateway jako hlavní platformou je pochopení nízkourovňových operací protokolu klíčové pro vytváření robustních SMS řešení. Tento článek poskytuje komplexního průvodce, jak přijímat SMS zprávy pomocí SMPP API, se zaměřením na interakce na úrovni protokolu a konkrétní jednotky protokolových dat (PDU) zapojené do nastavení, udržování a využívání připojení klienta SMPP API s Ozeki SMS Gateway.

Úvod do SMPP API a Ozeki SMS Gateway

SMPP API je široce používáno v telekomunikačním průmyslu pro svou efektivitu při zpracování hromadných SMS zpráv přes TCP/IP připojení. Ozeki SMS Gateway, univerzální SMPP software, slouží jak jako SMPP klient, tak i server, což z něj činí ideální platformu pro odesílání a přijímání SMS zpráv. Implementací protokolu SMPP (verze 3.3 a 3.4, s podporou 5.0 v Ozeki 10 SMS Gateway) umožňuje Ozeki bezproblémové připojení k SMSC, podporující aplikace jako marketingové kampaně, dvoufaktorové ověřování a systémy oznámení. Tento článek se zaměřuje na přijímání SMS zpráv, podrobně popisuje SMPP PDU potřebné pro nastavení připojení, jeho udržování a příjem zpráv.

Pochopení SMPP PDU

SMPP funguje výměnou jednotek protokolových dat (PDU) mezi SMPP klientem (např. Ozeki SMS Gateway) a SMPP serverem (např. SMSC). Každé PDU je strukturovaná zpráva nesoucí specifické instrukce nebo data, jako jsou přihlašovací údaje, obsah SMS nebo dotazy na stav připojení. Pro přijímání SMS zpráv pomocí SMPP API musí klient navázat připojení, udržovat ho a zpracovávat příchozí zprávy. Klíčová PDU zahrnují:

  • bind_transceiver: Naváže připojení pro odesílání i přijímání SMS.
  • enquire_link: Udržuje připojení kontrolou jeho stavu.
  • deliver_sm: Doručuje příchozí SMS zprávy z SMSC klientovi.
  • unbind: Ukončí SMPP relaci.

Níže prozkoumáme každé PDU podrobně, včetně jejich struktury, konfigurace v Ozeki SMS Gateway a jejich role v přijímání SMS zpráv přes SMPP API.

Nastavení připojení SMPP API klienta

Pro příjem SMS zpráv je prvním krokem navázání stabilního připojení SMPP API klienta s SMSC. Ozeki SMS Gateway tento proces zjednodušuje díky svému intuitivnímu rozhraní, ale pro pokročilé uživatele je důležité porozumět operacím na úrovni protokolu.

1. Konfigurace SMPP klienta v Ozeki SMS Gateway

Pro nastavení připojení SMPP API klienta v Ozeki SMS Gateway postupujte podle těchto kroků:

  1. Přihlášení do správcovské konzole: Přihlaste se do webového rozhraní Ozeki SMS Gateway pomocí účtu administrátora (výchozí uživatelské jméno: "admin").
  2. Přidání nového připojení: Přejděte do panelu "Connections", klikněte na "Add new connection" a vyberte "SMPP client" v sekci "IP SMS Connections".
  3. Konfigurace SMPP nastavení: Zadejte následující údaje, které obvykle poskytuje váš poskytovatel SMS služeb:
    • Název hostitele: IP adresa nebo hostname SMSC (např. "192.168.1.1").
    • Číslo portu: TCP/IP port pro komunikaci SMPP (výchozí je 9500, ale ověřte u poskytovatele).
    • Uživatelské jméno (System ID): Identifikátor vašeho účtu pro SMSC.
    • Heslo: Heslo spojené s System ID.
    • Verze SMPP: Vyberte v3.4 pro podporu transceiveru (doporučeno pro odesílání a příjem).
    • Typ systému: Volitelné, často "SMPP", jak určuje poskytovatel.
    • Adresa odesílatele: Výchozí telefonní číslo pro odchozí SMS (např. "+1234567890").
    • Rozsah adres: Volitelné, použito pro příjem zpráv z více čísel.
  4. Režim vazby: Zvolte "Transceiver" pro povolení odesílání i příjmu SMS přes jedno připojení.
  5. Pokročilá nastavení: Povolte "Connect automatically on startup" pro bezproblémové opětovné připojení a zaškrtněte "Send keepalive packets" pro udržení připojení.
  6. Povolení logování: V záložce "Advanced" povolte "Log Communication Events" pro zachycení SMPP PDU pro ladění.
  7. Uložení a připojení: Klikněte na "OK" pro uložení konfigurace, poté na "Connect" pro zahájení připojení.

Tato nastavení připraví Ozeki SMS Gateway k navázání připojení SMPP API pomocí PDU bind_transceiver.

2. PDU bind_transceiver

PDU bind_transceiver je první PDU odeslané SMPP klientem k ověření a navázání připojení s SMSC. Umožňuje odesílání i příjem SMS zpráv přes jedno TCP/IP připojení, což je ideální pro většinu aplikací 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: Unikátní identifikátor 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 z konkrétních čísel

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): Unikátní 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é.

Po přijetí PDU bind_transceiver SMSC ověří přihlašovací údaje. Pokud jsou úspěšné, odpoví PDU bind_transceiver_resp se stavem příkazu 0x00000000, což indikuje úspěšné připojení. Ozeki SMS Gateway zaznamenává tuto interakci, kterou lze zobrazit v logu "Communication Events".

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

Jakmile je připojení navázáno, musí být udržováno, aby byl zajištěn nepřetržitý příjem SMS. Protokol SMPP používá PDU enquire_link k ověření stavu připojení a prevenci odpojení z důvodu nečinnosti.

PDU enquire_link

PDU enquire_link je lehký příkaz odesílaný periodicky SMPP klientem SMSC k potvrzení, že připojení je aktivní. To je obzvláště důležité pro udržení dlouhodobých připojení, protože proxy servery nebo SMSC mohou ukončit nečinná připojení.

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: Unikátní identifikátor 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): Unikátní ID pro sledování PDU.

SMSC odpoví PDU enquire_link_resp, čímž potvrdí stav připojení. V Ozeki SMS Gateway povolení možnosti "Send keepalive packets" v záložce "Communication" zajišťuje, že PDU enquire_link jsou automaticky odesílána v pravidelných intervalech (např. každých 30 sekund). Toto nastavení je klíčové pro udržení stabilního připojení SMPP API, zejména při občasném příjmu SMS zpráv.

Příjem SMS zpráv pomocí SMPP API

Jakmile je připojení navázáno a udržováno, klient SMPP API může přijímat SMS zprávy prostřednictvím PDU deliver_sm. Toto PDU je odesláno SMSC klientovi, když je k dispozici příchozí SMS nebo zpráva o doručení.

PDU deliver_sm

PDU deliver_sm obsahuje obsah příchozí SMS zprávy nebo zprávy o doručení. Pro příjem SMS obsahuje PDU telefonní číslo odesílatele, číslo příjemce (virtuální číslo přidělené poskytovatelem) a text zprávy.

Struktura PDU deliver_sm

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)
Pořadové číslo: Jedinečný identifikátor PDU
Typ služby: Volitelné, často null
TON zdrojové adresy: Typ čísla odesílatele
NPI zdrojové adresy: Indikátor číselného plánu odesílatele
Zdrojová adresa: Telefonní číslo odesílatele (např. "+1234567890")
TON cílové adresy: Typ čísla příjemce
NPI cílové adresy: Indikátor číselného plánu příjemce
Cílová adresa: Telefonní číslo příjemce (např. virtuální číslo)
Třída ESM: Typ zprávy (např. 0x04 pro SMS)
Kódování dat: Znakové kódování (např. 0x00 pro GSM 7-bit)
Krátká zpráva: Text zprávy (až 160 znaků pro GSM)

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

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

Vysvětlení:

  • Délka příkazu (0000005F): Celková délka (95 bajtů).
  • ID příkazu (00000005): Identifikuje PDU jako deliver_sm.
  • Stav příkazu (00000000): Nastaveno na 0 pro požadavek.
  • Pořadové číslo (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): Číselný plán ISDN/telefon.
  • Zdrojová adresa (2B3132333435363738393000): ASCII pro "+1234567890".
  • TON cílové adresy (01): Mezinárodní číslo.
  • NPI cílové adresy (01): Číselný plán ISDN/telefon.
  • Cílová adresa (2B3938373635343332313000): ASCII pro "+9876543210".
  • Třída ESM (00): Označuje standardní SMS.
  • Kódování dat (00): Kódování GSM 7-bit.
  • Krátká zpráva (48656C6C6F2C207468697320697320616E20534D5321): ASCII pro "Hello, this is an SMS!".

Po přijetí PDU deliver_sm Ozeki SMS Gateway zpracuje zprávu a směruje ji do nakonfigurované aplikace nebo databáze. Klient musí odpovědět PDU deliver_sm_resp, aby potvrdil příjem, což zajišťuje spolehlivé doručení. V Ozeki je tato odpověď zpracována automaticky a zpráva je zaznamenána v panelu "Zprávy" nebo uložena v databázi, pokud je to nakonfigurováno.

Konfigurace Ozeki SMS Gateway pro příjem SMS

Pro zajištění příjmu SMS zpráv v Ozeki SMS Gateway:

  1. Nastavení virtuálního čísla: Spolupracujte s poskytovatelem SMS služeb, aby vám přidělil virtuální číslo (IMSI) pro příjem SMS. Toto číslo je uvedeno v poli "Rozsah adres" během konfigurace.
  2. Integrace databáze: Nakonfigurujte Ozeki pro ukládání příchozích zpráv do databáze úpravou SQL SELECT příkazu v konfiguraci "Databázový uživatel" (např. "SELECT id, sender, receiver, msg, msgtype FROM ozekimessagein").
  3. Protokolování: Povolte protokolování SMPP PDU pro sledování příchozích PDU deliver_sm pro účely ladění.

Po nakonfigurování jsou příchozí SMS zprávy automaticky směrovány do určené aplikace nebo databáze, což činí Ozeki SMS Gateway robustní platformou pro příjem SMS pomocí SMPP API.

Ukončení připojení SMPP API

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

PDU unbind

PDU unbind signalizuje SMSC, aby ukončil 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)
Pořadové číslo: 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.
  • Pořadové číslo (00000004): Jedinečné ID pro sledování PDU.

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

Doporučené postupy pro uživatele SMPP API

Pro optimalizaci implementace SMPP API s Ozeki SMS Gateway pro příjem SMS:

  • Povolit keepalive pakety: Ujistěte se, že je povolena možnost "Odesílat keepalive pakety" pro udržení stabilního připojení.
  • Monitorovat protokoly: Pravidelně kontrolujte protokoly SMPP PDU pro řešení problémů s PDU bind_transceiver, enquire_link nebo deliver_sm.
  • Použít transceiver mód: Preferujte transceiver mód pro efektivitu, protože podporuje odesílání i příjem přes jedno připojení.
  • Zabezpečená připojení: Pokud to váš poskytovatel podporuje, použijte SMPPS (SMPP přes SSL/TLS) pro šifrovanou komunikaci.
  • Zpracování zpráv o doručení: Nakonfigurujte Ozeki pro zpracování PDU deliver_sm obsahujících zprávy o doručení, abyste mohli sledovat stav zpráv.
Závěr

Příjem SMS zpráv pomocí SMPP API s Ozeki SMS Gateway zahrnuje navázání spojení pomocí PDU bind_transceiver, jeho udržování pomocí PDU enquire_link a zpracování příchozích zpráv prostřednictvím PDU deliver_sm. Porozuměním těmto PDU a správnou konfigurací Ozeki SMS Gateway mohou vývojáři vytvářet spolehlivé a vysoce výkonné SMS aplikace. Flexibilita SMPP API a robustní implementace Ozeki z něj činí výbornou volbu pro podniky vyžadující škálovatelná SMS řešení. Pro další podrobnosti se obraťte na dokumentaci Ozeki SMS Gateway nebo kontaktujte svého poskytovatele SMS služeb pro specifické konfigurační parametry.

More information