Format SMPP izvješća o isporuci
SMPP izvješća o isporuci šalju se od strane SMPP poslužitelja, SMPP klijentu nakon što je tekstualna poruka uspješno isporučena na mobilni uređaj. Originalna SMS poruka se šalje od strane SMPP klijenta koristeći smpp submit_sm zahtjev. Kada submit_sm zahtjev bude prihvaćen od strane SMPP poslužitelja, on vraća submit_sm_resp odgovor, s referentnim ID-om SMS poruke. Izvješće o isporuci stiže kasnije. Sadrži vrijeme isporuke i referentni ID SMS poruke koji identificira SMS. Dokument u nastavku objašnjava sadržaj SMPP izvješća o isporuci PDU i daje vam primjer izvješća o isporuci.
Što je format SMPP izvješća o isporuci
SMPP izvješće o isporuci se prima kao standardna tekstualna poruka. Tekst poruke ima poseban format, koji sadrži različita polja o originalno poslanom SMS-u. Ova polja se mogu koristiti za određivanje stanja isporuke SMS-a.
Primjer izvješća o isporuci
Primljeno izvješće o isporuci. +44251234567->+0000000 'Isporučeno; Za: +44251234567; U: 2022-10-03 12:07:00; Ref: 636445148; id:636445148 sub:000 dlvrd:001 datum slanja:2210031207 datum završetka:2210031207 stat:DELIVRD err: tekst:' Uspješna isporuka prijavljena na admin@localhost. ID zadatka: cdfd66e1-880e-4ead-a559-7ca46d9ec669. Isporučeno; Za: +44251234567; U: 2022-10-03 12:07:00; Ref: 636445148; id:636445148 sub:000 dlvrd:001 datum slanja:2210031207 datum završetka:2210031207 stat:DELIVRD err: tekst:
Kako primiti SMPP izvješće o isporuci
Za primanje SMPP izvješća o isporuci
- Povežite SMPP klijent
- Povežite se kao transceiver
- Pošaljite SMS koristeći submit_sm PDU
- Zabilježite SMS ID iz submit_sm_resp odgovora
- Pričekajte da SMS stigne na mobilni uređaj
- Primite SMS izvješće o isporuci PDU
- Usporedite SMS ID s poslanom porukom
- Zabilježite vremensku oznaku isporuke SMS-a
Parametri SMPP izvješća o isporuci
SMPP podržava potvrde o isporuci / izvješća (DLRs) za SMS poruke kako bi vaša aplikacija mogla odrediti ishod isporuke.
Vraćanje potvrde o isporuci poruke / izvješća (DLR) ovisi o vrijednosti postavljenoj u polju registered_delivery poruke originalno poslane od ESME do MC u submit_sm operaciji. Ovo se može konfigurirati za scenarije bez isporuke i samo isporuke što može rezultirati okolnostima u kojima potvrda neće biti vraćena. Potvrde o isporuci poruka se vraćaju u deliver_sm i data_sm operacijama.
Sljedeća polja su relevantna u deliver_sm i data_sm operacijama kada se koriste za prijenos potvrda o isporuci.
- izvorna adresa (tj. source_addr_ton, source_addr_npi, source_addr) - Izvorna adresa će biti preuzeta od odredišne adrese originalne kratke poruke, koja je generirala potvrdu o isporuci. Potvrda izgleda kao da potječe od primatelja originalne registrirane poruke.
- odredišna adresa (tj. dest_addr_ton, dest_addr_npi, destination_addr) - Odredišna adresa će biti preuzeta od izvorne adrese originalne kratke poruke, koja je generirala potvrdu o isporuci. Potvrda je upućena SME-u koji je originalno poslao registriranu poruku.
- esm_class - Bit 2 u esm_class je postavljen na 1 kako bi se označilo da je poruka MC potvrda o isporuci. Ako je bit 5 postavljen, tada je poruka srednja obavijest.
- message_state TLV - Označava konačno stanje originalne poruke. Pogledajte Stanja poruka u nastavku.
- network_error_code TLV - Pogledajte Šifre grešaka u nastavku.
- receipted_message_id TLV - ID poruke koji je vraćen ESME-u od strane MC-a u submit_sm_resp PDU-u.
MC potvrda o isporuci
Ova vrsta poruke se koristi za prijenos MC potvrde o isporuci. MC, nakon otkrivanja konačnog stanja registrirane poruke, obično generira novu potvrdu upućenu pošiljatelju prve poruke. MC potvrda o isporuci se zatim isporučuje ESME-u u deliver_sm ili data_sm operaciji.
ESME-to-MC: Postavite bitove 0 i 1 u polju registered_delivery submit_sm operacije kako biste zatražili MC potvrdu o isporuci.
Bit 1 | Bit 0 | Značenje |
---|---|---|
0 | 0 | nema potvrde |
0 | 1 | potvrda se traži kada je konačni ishod uspješna ili neuspješna isporuka |
1 | 0 | potvrda se traži kada je konačni ishod neuspješna isporuka |
1 | 1 | potvrda se traži kada je konačni ishod uspješna isporuka (samo SMPP v5) |
MC-to-ESME: Bit 2 u polju esm_class deliver_sm poruke označava da je potvrda MC potvrda o isporuci.
Srednja obavijest
Srednja obavijest je poseban oblik poruke koju MC može poslati ESME-u za isporuku poruke na mobilni uređaj. Pruža srednji status pokušaja isporuke poruke.
Tipična upotreba je izvješćivanje o ishodu pokušaja isporuke tijekom vijeka trajanja ponovnog pokušaja poruke unutar MC-a. Ovo se može koristiti za praćenje različitih razloga zašto poruka nije isporučena na odredište i korištenje ovoga za profiliranje dostupnosti pretplatnika.
Podrška za funkcionalnost srednje obavijesti je specifična za implementaciju MC-a i pružatelja usluge MC-a i izvan je opsega ove specifikacije.
ESME-to-MC: Postavite bit 4 u polju registered_delivery submit_sm PDU-a kako biste zatražili srednju obavijest.
MC-to-ESME: Bit 5 u polju esm_class deliver_sm poruke označava da je potvrda srednja obavijest.
Mnogi API-ji prije verzije 3.4 i centri poruka koji podržavaju verziju 3.3 vjerojatno imaju način prosljeđivanja informacija o potvrdi unutar short_message polja. Ovo se odnosi na MC Delivery Receipts i Intermediate Notifications. Specifičnosti formata ovih informacija su specifične za SMS gateway i SMSC platformu i izvan opsega specifikacije. Međutim, sljedeće pokazuje tipičan pristup:
id:123A456B sub:1 dlvrd:1 submit date:1702281424 done date:1702281424 stat:DELIVRD err:0 text:
Polja su specificirana na sljedeći način:
Polje | Veličina (okteti) | Opis |
---|---|---|
id | Varijabilna | ID poruke koji je SMSC dodijelio poruci prilikom originalnog slanja. |
sub | 3 | Broj originalno poslanih kratkih poruka. Vrijednost može biti dopunjena vodećim nulama. |
dlvrd | 3 | Broj isporučenih kratkih poruka. Vrijednost može biti dopunjena vodećim nulama. |
submit date
|
10 |
Vrijeme i datum kada je kratka poruka poslana. U slučaju poruke koja je zamijenjena, ovo je datum kada je originalna poruka zamijenjena. Format je sljedeći: YYMMDDhhmm gdje: |
done date
|
10 | Vrijeme i datum kada je kratka poruka dosegla svoje konačno stanje. Format je isti kao za submit date. |
stat | 7 | Konačni status poruke. Pogledajte Stanja poruka dolje. Tekst stanja može biti skraćen. |
err | 3 | Kod greške mreže ili SMSC-a za poruku. Pogledajte Kodovi grešaka dolje. |
text | 20 | Neiskorišteno polje, rezultat će biti prazan. |
Ozeki SMPP poboljšanja
Kako smo implementirali vrlo velik broj SMPP veza, pronašli smo sljedeće probleme u različitim implementacijama:
Nalaz 1:Vrijednost ID polja u izvješću o isporuci (koje mi u Ozekiju zovemo Submit Reference) često je različita od ID-a koji primamo od pružatelja SMS usluga. Najčešća razlika je da se originalni ID vraća kao standardni cijeli broj, a ID u izvješću o isporuci vraća se kao heksadecimalni broj. Ovo se također može dogoditi obrnuto. Dobra stvar je da se u ovoj situaciji, kada se pretvore natrag, dva broja podudaraju, tako da se izvješća o isporuci mogu usporediti. Ozeki SMS implementacije provode različite provjere i mogu pravilno rukovati opisnom situacijom.
Nalaz 2:Vrijednost polja datuma često dolazi u nestandardnom formatu. Ozeki trenutno analizira polja datuma koristeći sljedeće uzorke. Također možete definirati prilagođeni uzorak polja datuma u konfiguracijskom obrascu softvera.
- "yyMMddHHmm",
- "yyMMddHHmmss",
- "dd-MMM-yyHH:mm",
- "dd-MMM-yyHH:mm:ss",
- "dd-MMM-yy HH:mm",
- "dd-MMM-yy HH:mm:ss",
- "yyyyMMddHHmmss",
- "yyyyMMddHHmm",
- prilagođeno
Stanja poruka
Sljedeći popis prikazuje dopuštena stanja za kratku poruku. MC vraća vrijednost message_state ESME-u kao dio query_sm_resp, query_broadcast_sm_resp ili deliver_sm PDU-a za potvrdu isporuke.
Privremena stanja su stanja koja se mogu promijeniti. Konačna stanja su stanja koja predstavljaju krajnje stanje životnog ciklusa poruke.
Na primjer, poruka u ponovnom pokušaju može vratiti stanje ENROUTE. U nekom trenutku u budućnosti, ova poruka će ili isteći ili biti isporučena. Stanje će tada prijeći u EXPIRED ili DELIVERED. Stoga se poruka u stanju ENROUTE smatra privremenim stanjem.
Poruka u stanju DELIVERED ili EXPIRED ne može prijeći u drugo stanje. Ta su stanja stoga konačna stanja.
Stanje poruke | Vrijednost | Vrsta |
---|---|---|
SCHEDULED | 0 | Privremeno |
Poruka je zakazana. Isporuka još nije pokrenuta. Poruka poslana s zakazanim vremenom isporuke može vratiti ovo stanje kada se upita. Ova vrijednost dodana je za SMPP v5.0. MC-ovi koji podržavaju ranije verzije SMPP v3.3 i SMPP v3.4 vjerojatno će vratiti ENROUTE za zakazane poruke. | ||
ENROUTE ili EN_ROUTE |
1 | Privremeno |
Poruka je u stanju enroute. Ovo je opće stanje koje se koristi za opisivanje poruke kao aktivne unutar MC-a. Poruka može biti u ponovnom pokušaju ili poslana u mobilnu mrežu za isporuku na mobilni uređaj. | ||
DELIVERED | 2 | Konačno |
Poruka je isporučena na odredište. Poruka je isporučena na odredište. Više neće biti isporuka. | ||
EXPIRED | 3 | Konačno |
Rok valjanosti poruke je istekao. Poruka nije uspjela biti isporučena unutar svog razdoblja valjanosti i/ili razdoblja ponovnog pokušaja. Više neće biti pokušaja isporuke. | ||
DELETED | 4 | Konačno |
Poruka je izbrisana. Poruka je otkazana ili izbrisana iz MC-a. Više neće biti pokušaja isporuke. | ||
UNDELIVERABLE | 5 | Konačno |
Poruka se ne može isporučiti. Poruka je naišla na grešku pri isporuci i smatra se trajno neisporučivom. Više neće biti pokušaja isporuke. Određene mrežne ili interne greške MC-a rezultiraju trajnom neisporukom poruke. Primjeri takvih grešaka su nepoznati pretplatnik ili mrežna greška koja ukazuje na to da je odredišni mobilni uređaj uskraćen za SMS uslugu ili ne može podržati SMS. |
SMPP kodovi grešaka za potvrde isporuke
Kodovi grešaka vraćeni u potvrdama isporuke koriste se za označavanje bilo kakve greške prilikom pokušaja isporuke poruke. Kodovi grešaka su specifični za SMS pristupnik i SMSC platformu. Međutim, sljedeće prikazuje često korišten pristup:
Kod Značenje 1 MT broj je nepoznat u HLR-u MT mreže 2 MT broj je nepoznat u HLR-u MT mreže 5 MT broj je nepoznat u MSC-u MT mreže 9 MT broj je klasificiran kao nezakoniti pretplatnik u MSC-u MT mreže 11 MT HLR šalje grešku "Teleservis nije osiguran" kao odgovor na SRI 12 MT uređaj je naveden kao nezakoniti uređaj na MSC-u. 13 Korisnik je blokiran prema MT HLR-u za primanje SMS-a 15 MT korisnik je dio CUG-a kojem nije dopušten primati SMS 21 SMS nije podržan u MT mreži. 22 SMS nije podržan u MT MSC-u 31 MT uređaj je zauzet. Signalni kontrolni kanal je u upotrebi. (Vjerojatno prima drugi SMS u isto vrijeme) 32 GPRS – Kao gore 34 Sustavna greška u MT mreži. 35 Nedostaju podaci u MT HLR-u ili MSC-u 36 Neočekivana vrijednost podataka primljena kao odgovor na FSM ili SRI 40 Prekoračenje kapaciteta memorije na MT uređaju 41 Greška protokola MT uređaja 42 MT uređaj nije opremljen za podršku SMS-a 43 Tip kratke poruke "0" nije podržan na MT uređaju. 44 MT mreža ne može zamijeniti SMS na MT korisnikovom uređaju 45 Nespecificirana greška protokola na MT uređaju 46 Klasa poruke nije podržana na MT uređaju 47 Nespecificirana greška DCS (Shema kodiranja podataka) na MT uređaju 48 Transfer sloj PDU nije podržan na MT uređaju 49 SIM kartica puna na MT uređaju 50 SIM kartica MT uređaja ne može pohraniti poruku 51 Greška na MT uređaju 52 Prekoračenje kapaciteta memorije na MT uređaju 53 SIM aplikacijski alat zauzet na MS uređaju 54 Greška preuzimanja SIM podataka na MT korisnikovom uređaju 55 Nespecificirana greška MS uređaja 60 Odsutan pretplatnik. Razlog nije poznat 61 Odsutan pretplatnik zbog isključenog telefona 62 Odsutan pretplatnik zbog izvan dometa/ispraznjene baterije 63 Odsutan pretplatnik zbog ograničenja roaminga/ograničenog područja 64 Odsutan pretplatnik zbog deregistracije u HLR-u 65 Odsutan pretplatnik zbog brisanja u VLR-u (isključen 24+ sata) 66 Odsutan pretplatnik (GPRS) ne može biti pozvan od strane SGSN-a 67 Odsutan pretplatnik zbog odvojenog GPRS-a 68 Odsutan pretplatnik zbog deregistracije u HLR-u (GPRS) 69 Odsutan pretplatnik zbog brisanja GPRS MS-a u VLR-u 70 Odsutan pretplatnik zbog neidentificiranog pretplatnika na MSC-u na koji je poslan FSM. 71 Odsutan pretplatnik zbog neidentificiranog pretplatnika na SGSN-u
Kako testirati SMPP izvještaje o isporuci
Možete kreirati konfiguraciju SMPP simulatora, za testiranje izvještaja o isporuci SMS-a. U simulatoru veza testera može vratiti uspješne i neuspješne izvještaje o isporuci. To će učiniti ako konfigurirate "Zahtjev za izvještaj o isporuci" na kartici "Napredno" konfiguracijskog obrasca SMPP Tester veze. Ako imate ovu opciju omogućenu, izvještaj o isporuci bit će vraćen za svaki poslani SMS u nasumičnom kasnijem datumu s nasumičnim statusom uspješne ili neuspješne isporuke.
Često postavljana pitanja
Što je izvješće o isporuci?
Prilikom slanja SMS poruke, potvrda o njenom prispijeću na telefon primatelja
je ključna. SMS koristi dvostupanjski sustav potvrde kako bi to osigurao.
Nakon što pošaljete poruku u Centar za usluge kratkih poruka (SMSC) mobilne mreže,
dobivate "izvješće o podnošenju poruke." Ovo izvješće označava da je SMSC prihvatio
vašu poruku za isporuku. Također uključuje jedinstveni identifikator, često nazvan
"referentni broj poruke" ili "callback ID," koji omogućuje praćenje poruke unutar
sustava SMSC.
Nakon prihvaćanja, poruka se pohranjuje u SMSC dok isporuka ne postane moguća.
Ovo može biti odgođeno ako je telefon primatelja isključen, što može produžiti
čekanje na dane.
Kada telefon primatelja postane dostupan, poruka se isporučuje. Nakon uspješne
isporuke, "izvješće o isporuci" se šalje natrag pošiljatelju kao zasebna SMS poruka.
Ova potvrdna SMS poruka sadrži:
- Broj telefona primatelja: Potvrđuje da je namjeravani primatelj primio poruku.
- Referentni broj poruke (callback ID): Podudara se s identifikatorom iz izvornog izvješća o podnošenju, pružajući jasnu vezu između dviju faza.
- Vremenska oznaka isporuke: Pruža točno vrijeme kada je poruka stigla na telefon primatelja.
Mogu li prilagoditi koliko dugo se poruka pohranjuje u SMSC?
Iako SMS poruke pružaju praktičan način komunikacije, osiguravanje da poruka
stigne do primatelja na vrijeme je ključno. Ovdje dolazi do izražaja koncept
"valjanosnog razdoblja."
Valjanosno razdoblje odnosi se na vremenski okvir u kojem se SMS poruka pohranjuje
u Centar za usluge kratkih poruka (SMSC) kada je telefon primatelja nedostupan.
Ako poruka ostane neisporučena nakon isteka ovog razdoblja, automatski se briše
iz SMSC-a, sprječavajući odgođenu isporuku.
Prednosti korištenja valjanosnog razdoblja:
- Vremenski osjetljive poruke: Zamislite da šaljete poruku o vremenski osjetljivom događaju, poput TV emisije uživo. Postavljanje odgovarajućeg valjanosnog razdoblja osigurava da poruka ne bude isporučena nakon što je događaj završio, čineći je nevažnom.
- Učinkovitost mreže: Sprječavanjem nepotrebnih pokušaja isporuke na nedostupne telefone, valjanosno razdoblje optimizira resurse mreže.
Važno je zapamtiti da ne pružaju sve mobilne mreže korisnički konfigurabilna valjanosna razdoblja, a neke mogu zahtijevati korisničku aktivaciju za izvješća o isporuci (potvrdu da je poruka stigla do primatelja).
More information
- SMPP specifikacija
- Usporedba verzija SMPP protokola
- SMPP PDU evidentiranje
- Kako koristiti SMPP API s programskim jezicima
- Sigurna SMPP veza preko SSL TLS
- Format SMPP izvješća o isporuci
- Što je SMPP simulator
- SMPP kodovi grešaka
- Kako poslati testnu SMPP SMS poruku
- SMPP PDU dekodiranje
- SMPP kodiranje znakova
- SMPP wireshark