Kako primiti SMPP izvješća o isporuci putem SMPP API-ja
Short Message Peer-to-Peer (SMPP) protokol je temelj moderne SMS komunikacije, omogućujući External Short Message Entities (ESMEs) razmjenu poruka i izvješća o isporuci sa Short Message Service Centers (SMSCs). Za programere koji koriste SMPP API s Ozeki SMS Gateway-om, razumijevanje kako primiti izvješća o isporuci ključno je za praćenje statusa poslanih SMS poruka. Ovaj članak pruža sveobuhvatan vodič o primanju SMPP izvješća o isporuci na razini protokola, fokusirajući se na potrebne SMPP Protocol Data Units (PDUs) za postavljanje veze, održavanje i primanje izvješća o isporuci koristeći Ozeki SMS Gateway kao primarnu SMPP API serversku platformu.
Uvod u SMPP izvješća o isporuci i Ozeki SMS Gateway
SMPP izvješća o isporuci su obavijesti koje šalje SMSC kako bi obavijestio ESME o statusu prethodno poslanog SMS-a, kao što je je li isporučen, nije uspio ili je odbijen. Ova izvješća su ključna za aplikacije koje zahtijevaju potvrdu isporuke poruke, kao što su transakcijske obavijesti ili marketinške kampanje. Ozeki SMS Gateway, robusni SMPP softver koji podržava verzije 3.3, 3.4 i 5.0, pojednostavljuje proces rukovanja SMPP izvješćima o isporuci kroz svoje intuitivno sučelje i moćne opcije konfiguracije. Ovaj članak detaljno opisuje SMPP PDU-e uključene u postavljanje veze SMPP API klijenta, njegovo održavanje i primanje izvješća o isporuci, s praktičnim uputama za korisnike Ozeki SMS Gateway-a.
Razumijevanje SMPP PDU-a za izvješća o isporuci
SMPP protokol oslanja se na Protocol Data Units (PDUs) za upravljanje komunikacijom između SMPP klijenta (npr. Ozeki SMS Gateway) i SMSC-a. Da bi primio izvješća o isporuci, klijent mora uspostaviti vezu, održavati je i obraditi dolazna izvješća o isporuci. Ključni PDU-i uključeni su:
- bind_transceiver: Uspostavlja vezu za slanje i primanje SMS-a i izvješća o isporuci.
- enquire_link: Održava vezu kako bi osigurao kontinuirano primanje izvješća o isporuci.
- deliver_sm: Isporučuje dolazna izvješća o isporuci (i SMS poruke) od SMSC-a klijentu.
- unbind: Prekida SMPP sesiju.
U nastavku istražujemo svaki PDU, njihovu strukturu i ulogu u primanju SMPP izvješća o isporuci koristeći SMPP API s Ozeki SMS Gateway-om.
Postavljanje SMPP API klijentske veze
Primanje SMPP izvješća o isporuci zahtijeva stabilnu SMPP API klijentsku vezu s SMSC-om. Ozeki SMS Gateway pojednostavljuje ovaj proces, ali razumijevanje operacija na razini protokola ključno je za napredne korisnike i rješavanje problema.
1. Konfiguriranje SMPP klijenta u Ozeki SMS Gatewayu
Za postavljanje SMPP API klijentske veze u Ozeki SMS Gatewayu za primanje izvješća o isporuci, slijedite ove korake:
- Pristup upravljačkoj konzoli: Prijavite se u web sučelje Ozeki SMS Gatewaya koristeći administratorski račun (zadano korisničko ime: "admin").
- Stvaranje nove veze: U panelu "Veze", kliknite "Dodaj novu vezu" i odaberite "SMPP klijent" iz odjeljka "IP SMS veze".
- Unos SMPP postavki: Navedite sljedeće detalje, koje obično daje vaš pružatelj SMS usluga:
- Naziv hosta: IP adresa ili naziv hosta SMSC-a (npr. "192.168.1.1").
- Broj porta: TCP/IP port za SMPP komunikaciju (zadani je 9500, provjerite kod pružatelja).
- Korisničko ime (ID sustava): Identifikator vašeg SMSC računa (npr. "smppuser").
- Lozinka: Lozinka za ID sustava (npr. "password123").
- SMPP verzija: Odaberite v3.4 za podršku transceivera, što je optimalno za slanje i primanje.
- Vrsta sustava: Opcionalno, često "SMPP", kako je navedeno od strane pružatelja.
- Adresa pošiljatelja: Zadani telefonski broj za odlazne SMS poruke (npr. "+1234567890").
- Raspon adresa: Opcionalno, koristi se za primanje poruka ili izvješća za određene brojeve.
- Način povezivanja: Odaberite "Transceiver" kako biste omogućili i slanje SMS poruka i primanje izvješća o isporuci preko jedne veze.
- Omogućavanje izvješća o isporuci: Na kartici "Napredno", označite "Zahtijevaj izvješće o isporuci" kako biste osigurali da SMSC šalje izvješća o isporuci za poslane poruke.
- Postavke održavanja veze: Omogućite "Šalji keepalive pakete" kako biste održali vezu za kontinuirano primanje izvješća.
- Omogućavanje bilježenja: Na kartici "Napredno", omogućite "Bilježi događaje komunikacije" kako biste snimili SMPP PDU-e za otklanjanje grešaka.
- Spremanje i povezivanje: Kliknite "OK" za spremanje, zatim "Poveži" za pokretanje SMPP API veze.
Ove postavke pripremaju Ozeki SMS Gateway za uspostavu SMPP API veze koristeći bind_transceiver PDU, omogućujući primanje izvješća o isporuci.
2. bind_transceiver PDU
bind_transceiver PDU autentificira SMPP klijenta kod SMSC-a i uspostavlja vezu za slanje SMS poruka i primanje izvješća o isporuci. To je prvi korak u omogućavanju SMPP API funkcionalnosti.
Struktura bind_transceiver PDU-a
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 ID sustava: 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 ili izvješća
Primjer bind_transceiver PDU-a (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.
- ID sustava (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.
SMSC odgovara s bind_transceiver_resp PDU-om. Status naredbe 0x00000000 označava uspješnu vezu. Ozeki SMS Gateway bilježi ovu interakciju u "Događajima komunikacije", što je korisno za provjeru veze.
Održavanje SMPP API veze
Stabilna veza ključna je za primanje SMPP izvješća o isporuci, jer prekidi mogu rezultirati propuštenim ažuriranjima statusa. enquire_link PDU koristi se za održavanje veze aktivnom.
enquire_link PDU
enquire_link PDU se periodično šalje od strane SMPP klijenta kako bi se potvrdio status veze, sprječavajući prekid zbog neaktivnosti.
Struktura enquire_link PDU-a
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-a (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 kako bi potvrdio status veze. U Ozeki SMS Gatewayu, omogućavanje "Šalji keepalive pakete" na kartici "Komunikacija" osigurava da se enquire_link PDU-i šalju automatski (npr. svakih 30 sekundi). Ovo je ključno za održavanje pouzdane SMPP API veze za primanje izvješća o isporuci.
Primanje SMPP izvješća o isporuci
SMPP izvješća o isporuci primaju se putem deliver_sm PDU-a, koji SMSC šalje klijentu kako bi izvijestio o statusu prethodno poslanog SMS-a. PDU sadrži detalje poput ID-a poruke, statusa isporuke i vremenske oznake.
deliver_sm PDU za izvješća o isporuci
deliver_sm PDU koristi se i za dolazne SMS poruke i za izvješća o isporuci. Za izvješća o isporuci, polje ESM Class PDU-a postavljeno je tako da označava potvrdu o isporuci (obično 0x04), a sadržaj poruke uključuje strukturirano izvješće s informacijama o statusu.
Struktura deliver_sm PDU-a (Izvješće o isporuci)
Command Length: Varijabilna (ovisno o duljini izvješća) Command ID: 0x00000005 (deliver_sm) Command Status: 0x00000000 (postavljeno na 0 za zahtjeve) Sequence Number: Jedinstveni identifikator za PDU Service Type: Opcionalno, često null Source Address TON: Vrsta broja za pošiljatelja (SMSC ili primatelj) Source Address NPI: Indikator plana numeracije za pošiljatelja Source Address: Broj telefona pošiljatelja ili identifikator SMSC-a Destination Address TON: Vrsta broja za primatelja (ESME) Destination Address NPI: Indikator plana numeracije za primatelja Destination Address: Broj telefona primatelja (npr. virtualni broj ESME-a) ESM Class: 0x04 (označava potvrdu o isporuci) Data Coding: Kodiranje znakova (npr. 0x00 za GSM 7-bitno) Short Message: Tekst izvješća o isporuci (npr. "id:12345 sub:001 dlvrd:001 submit date:2505270415 done date:2505270416 stat:DELIVRD err:000") Optional Parameters: TLV polja poput receipted_message_id i message_state
Primjer deliver_sm PDU-a (heksadecimalno):
0000007A 00000005 00000000 00000003 00 01 01 2B3938373635343332313000 01 01 2B3132333435363738393000 04 00 00 00 00 69643A3132333435207375623A30303120646C7672643A303031207375626D697420646174653A3235303532373034313520646F6E6520646174653A3235303532373034313620737461743A44454C49565244206572723A303030
Objašnjenje:
- Command Length (0000007A): Ukupna duljina (122 bajta).
- Command ID (00000005): Identificira PDU kao deliver_sm.
- Command Status (00000000): Postavljeno na 0 za zahtjev.
- Sequence Number (00000003): Jedinstveni ID za praćenje PDU-a.
- Service Type (00): Null, jer je opcionalno.
- Source Address TON (01): Međunarodni broj.
- Source Address NPI (01): ISDN/telefonski plan numeracije.
- Source Address (2B3938373635343332313000): ASCII za "+9876543210" (broj primatelja).
- Destination Address TON (01): Međunarodni broj.
- Destination Address NPI (01): ISDN/telefonski plan numeracije.
- Destination Address (2B3132333435363738393000): ASCII za "+1234567890" (broj ESME-a).
- ESM Class (04): Označava potvrdu o isporuci.
- Data Coding (00): GSM 7-bitno kodiranje.
- Short Message: ASCII za "id:12345 sub:001 dlvrd:001 submit date:2505270415 done date:2505270416 stat:DELIVRD err:000".
Polja izvješća o isporuci:
- id: ID poruke koji je dodijelio SMSC (npr. "12345").
- sub: Broj primatelja (npr. "001").
- dlvrd: Broj isporučenih poruka (npr. "001").
- submit date: Vremenska oznaka slanja (npr. "2505270415" za 27. svibnja 2025., 04:15).
- done date: Vremenska oznaka isporuke (npr. "2505270416").
- stat: Status isporuke (npr. "DELIVRD" za isporučeno, "UNDELIV" za neisporučivo).
- err: Šifra greške (npr. "000" za nema greške).
Klijent mora odgovoriti s deliver_sm_resp PDU-om kako bi potvrdio primitak. Ozeki SMS Gateway to automatski obrađuje i usmjerava izvješće o isporuci na konfiguriranu aplikaciju ili bazu podataka, bilježeći ga u panelu "Poruke".
Konfiguriranje Ozeki SMS Gatewaya za primanje izvješća o isporuci
Kako biste osigurali da Ozeki SMS Gateway ispravno obrađuje SMPP izvješća o isporuci:
- Omogućite izvješća o isporuci: U konfiguraciji SMPP klijenta, označite "Request delivery report" na kartici "Advanced" kako biste uputili SMSC da šalje izvješća o isporuci.
- Postavka virtualnog broja: Osigurajte da je SMSC konfiguriran da šalje izvješća o isporuci na virtualni broj ili raspon adresa naveden u postavkama SMPP klijenta.
- Integracija baze podataka: Konfigurirajte Ozeki da pohranjuje izvješća o isporuci u bazu podataka modificiranjem SQL SELECT izraza u konfiguraciji "Database user" (npr. "SELECT id, sender, receiver, msg, msgtype, status FROM ozekimessagein WHERE msgtype='DLR'").
- Bilježenje: Omogućite bilježenje SMPP PDU-a kako biste pratili dolazne deliver_sm PDU-e za otklanjanje grešaka.
S ovim postavkama, Ozeki SMS Gateway će obrađivati i pohranjivati izvješća o isporuci, čineći ih dostupnima za aplikacije ili daljnju analizu.
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
Command Length: 0x00000010 (16 bajtova) Command ID: 0x00000006 (unbind) Command Status: 0x00000000 (postavljeno na 0 za zahtjeve) Sequence Number: Jedinstveni identifikator za PDU
Primjer unbind PDU-a (heksadecimalno):
00000010 00000006 00000000 00000004
Objašnjenje:
- Command Length (00000010): Ukupna duljina (16 bajtova).
- Command ID (00000006): Identificira PDU kao unbind.
- Command Status (00000000): Postavljeno na 0 za zahtjev.
- Sequence Number (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 se može pokrenuti klikom na "Disconnect" u panelu "Connections".
Najbolje prakse za rukovanje izvješćima o isporuci SMPP API-jaKako biste optimizirali svoju implementaciju SMPP API-ja za primanje izvješća o isporuci s Ozeki SMS Gateway-om:
- Zatražite izvješća o isporuci: Uvijek omogućite opciju "Zatraži izvješće o isporuci" prilikom slanja SMS-a kako biste osigurali da SMSC generira izvješća.
- Nadzirati zapisnike: Koristite SMPP PDU zapisnike za rješavanje problema s deliver_sm PDU-ima, posebno za izvješća o isporuci.
- Koristite transceiver način rada: Preferirajte transceiver način rada radi učinkovitosti, jer podržava i slanje SMS-ova i primanje izvješća o isporuci.
- Sigurne veze: Koristite SMPPS (SMPP preko SSL/TLS) ako ga vaš pružatelj usluga podržava kako biste osigurali siguran prijenos izvješća o isporuci.
- Analizirajte izvješća o isporuci: Konfigurirajte aplikacije za analizu polja Short Message u deliver_sm PDU-u kako biste izdvojili informacije o statusu (npr. "DELIVRD" ili "UNDELIV") za korisne uvide.
Zaključak
Primanje SMPP izvješća o isporuci pomoću SMPP API-ja s Ozeki SMS Gateway-om uključuje uspostavljanje veze s bind_transceiver PDU-om, održavanje veze s enquire_link PDU-ima i obradu izvješća o isporuci putem deliver_sm PDU-a. Ispravnom konfiguracijom Ozeki SMS Gateway-a i razumijevanjem temeljnog SMPP protokola, programeri mogu izgraditi pouzdane sustave za praćenje statusa isporuke SMS-ova. Robusnost SMPP API-ja i fleksibilna konfiguracija Ozeki-ja čine ga izvrsnim izborom za upravljanje izvješćima o isporuci u aplikacijama za masovno slanje SMS-ova. Za više pojedinosti, pogledajte dokumentaciju Ozeki SMS Gateway-a ili kontaktirajte svog pružatelja SMS usluga za specifične zahtjeve 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