SMPP format izveštaja o isporuci

SMPP izveštaji o isporuci se šalju od strane SMPP servera, ka SMPP klijentu nakon što je tekstualna poruka uspešno isporučena na uređaj. Originalna SMS poruka se šalje od strane SMPP klijenta koristeći smpp submit_sm zahtev. Kada submit_sm bude prihvaćen od strane SMPP servera, on vraća submit_sm_resp odgovor, sa SMS referentnim ID-om. Izveštaj o isporuci stiže kasnije. On sadrži vreme isporuke i SMS referentni ID koji identifikuje SMS. Dokument ispod objašnjava sadržaj SMPP izveštaja o isporuci PDU i daje vam primer izveštaja o isporuci.

Šta je format SMPP izveštaja o isporuci

SMPP izveštaj o isporuci se prima kao standardna tekstualna poruka. Tekst poruke ima specijalan format, koji sadrži različita polja o originalno poslatom SMS-u. Ova polja se mogu koristiti da se utvrdi stanje isporuke SMS-a.

Primer izveštaja o isporuci
Primljen izveštaj 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: text:'

Uspešna isporuka prijavljena 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: text:
Kako primiti SMPP izveštaj o isporuci

Da biste primili SMPP izveštaj o isporuci

  1. Povežite SMPP klijent
  2. Povežite se kao transiver
  3. Pošaljite SMS koristeći submit_sm PDU
  4. Zabeležite SMS ID iz submit_sm_resp odgovora
  5. Sačekajte da SMS stigne na mobilni uređaj
  6. Primite SMS izveštaj o isporuci PDU
  7. Povežite SMS ID sa poslatom porukom
  8. Zabeležite vreme isporuke SMS-a
Parametri SMPP izveštaja o isporuci

SMPP podržava potvrde o isporuci / izveštaje (DLRs) za SMS poruke kako bi vaša aplikacija mogla da utvrdi ishod isporuke.

Povratak potvrde o isporuci poruke / izveštaja (DLR) zavisi od vrednosti postavljene u polju registered_delivery poruke originalno poslate od ESME ka MC u submit_sm operaciji. Ovo može biti konfigurisano za scenarije bez isporuke i samo isporuke koji mogu dovesti do situacija gde potvrda neće biti vraćena. Potvrde o isporuci poruka se vraćaju u deliver_sm i data_sm operacijama.

Sledeća polja su relevantna u deliver_sm i data_sm operacijama kada se koriste za prenos 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 generisala potvrdu o isporuci. Potvrda izgleda kao da potiče od primalaca originalne registrovane 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 generisala potvrdu o isporuci. Potvrda je upućena SME-u koji je originalno poslao registrovanu poruku.
  • esm_class - Bit 2 u esm_class je postavljen na 1 da označi da je poruka MC potvrda o isporuci. Ako je bit 5 postavljen, onda je poruka Intermedijarna notifikacija.
  • message_state TLV - Označava konačno stanje originalne poruke. Pogledajte Stanja poruka ispod.
  • network_error_code TLV - Pogledajte Šifre grešaka ispod.
  • receipted_message_id TLV - ID poruke koji je vraćen ESME-u od strane MC-a u submit_sm_resp PDU.
MC potvrda o isporuci

Ovaj tip poruke se koristi za prenos MC potvrde o isporuci. MC, nakon što detektuje konačno stanje registrovane poruke, obično generiše novu potvrdu upućenu pošiljaocu prve poruke. MC potvrda o isporuci se zatim isporučuje ESME-u u deliver_sm ili data_sm operaciji.

ESME-ka-MC: Postavite bitove 0 i 1 u polju registered_delivery submit_sm operacije da zatražite MC potvrdu o isporuci.

Bit 1Bit 0Značenje
00nema potvrde
01potvrda se traži kada je konačni ishod uspešna ili neuspešna isporuka
10potvrda se traži kada je konačni ishod neuspešna isporuka
11potvrda se traži kada je konačni ishod uspešna isporuka (SMPP v5 samo)

MC-ka-ESME: Bit 2 u polju esm_class deliver_sm označava da je potvrda MC potvrda o isporuci.

Intermedijarna notifikacija

Intermedijarna notifikacija je specijalan oblik poruke koju MC može poslati ESME-u za isporuku poruke ka mobilnom uređaju. Ona pruža intermedijarni status pokušaja isporuke poruke.

Tipična upotreba je da se prikaže ishod pokušaja isporuke tokom vremena ponovnog pokušaja poruke unutar MC-a. Ovo može biti korišćeno za praćenje različitih razloga zašto poruka nije isporučena na odredište i korišćenje ovoga za profilisanje dostupnosti pretplatnika.

Podrška za funkcionalnost Intermedijarne notifikacije je specifična za MC implementaciju i MC provajdera usluga i izvan je opsega ove specifikacije.

ESME-ka-MC: Postavite bit 4 u polju registered_delivery submit_sm PDU da zatražite Intermedijarnu notifikaciju.

MC-ka-ESME: Bit 5 u polju esm_class deliver_sm označava da je potvrda Intermedijarna notifikacija.

Признаница у short_message пољу

Многи API-ји пре верзије 3.4 и Message центри који подржавају верзију 3.3 вероватно имају начин да проследе информације о признаници у short_message пољу. Ово се односи на MC Delivery Receipts и Intermediate Notifications. Специфичности формата ових информација зависе од SMS gateway-а и SMSC платформе и излазе из оквира спецификације. Међутим, следећи пример приказује типичан приступ:

id:123A456B sub:1 dlvrd:1 submit date:1702281424 done date:1702281424 stat:DELIVRD err:0 text:


Поља су дефинисана на следећи начин:

Поље Величина (октет) Опис
id Променљива ID поруке који је SMSC доделио поруци приликом оригиналног слања.
sub 3 Број оригинално послатих кратких порука. Вредност може бити допуњена водећим нулама.
dlvrd 3 Број испоручених кратких порука. Вредност може бити допуњена водећим нулама.
submit date 10

Време и датум када је кратка порука послата. У случају поруке која је замењена, ово је датум када је оригинална порука замењена. Формат је следећи:

YYMMDDhhmm где:
YY последње две цифре године (00-99) MM = месец (01-12)
DD дан (01-31)
hh сат (00-23)
mm минут (00-59)

done date 10 Време и датум када је кратка порука достигла своје коначно стање. Формат је исти као за submit date.
stat 7 Коначни статус поруке. Погледајте Стање поруке испод. Текст стања може бити скраћен.
err 3 Код грешке мреже или SMSC-а за поруку. Погледајте Кодови грешака испод.
text 20 Некоришћено поље, резултат ће бити празан.
Ozeki SMPP побољшања

Како смо имплементирали веома велики број SMPP конекција, открили смо следеће проблеме у различитим имплементацијама:

Откриће 1:

Вредност ID поља у извештају о испоруци (које ми у Ozeki-ју зовемо Submit Reference) често је различита од ID-а који примамо од провајдера SMS услуга. Најчешћа разлика је што се оригинални ID враћа као стандардни цео број, а ID у извештају о испоруци враћа се као хексадецимални број. Ово може бити и обрнуто. Добра ствар је што у овом случају, када се конвертују назад, два броја се поклапају, тако да се извештаји о испоруци могу поклапати. Ozeki SMS имплементације врше разне провере и могу правилно да обраде описану ситуацију.

Откриће 2:

Вредност поља датума често долази у нестандардном формату. Ozeki тренутно парсира поља датума користећи следеће шаблоне. Такође можете дефинисати прилагођени шаблон за поље датума на конфигурационом формулару софтвера.

  • "yyMMddHHmm",
  • "yyMMddHHmmss",
  • "dd-MMM-yyHH:mm",
  • "dd-MMM-yyHH:mm:ss",
  • "dd-MMM-yy HH:mm",
  • "dd-MMM-yy HH:mm:ss",
  • "yyyyMMddHHmmss",
  • "yyyyMMddHHmm",
  • прилагођено

Poruke stanja

Sledi lista dozvoljenih stanja za kratku poruku. MC vraća vrednost message_state ESME-u kao deo query_sm_resp, query_broadcast_sm_resp ili deliver_sm potvrde o isporuci PDU.

Srednja stanja su stanja koja se mogu promeniti. Konačna stanja su stanja koja predstavljaju krajnje stanje životnog ciklusa poruke.

Na primer, 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 se tada promeniti u EXPIRED ili DELIVERED. Dakle, poruka u stanju ENROUTE se smatra da je u srednjem stanju.

Poruka u stanju DELIVERED ili EXPIRED ne može preći u drugo stanje. Ova stanja su stoga konačna stanja.

<

Шта је извештај о испоруци?

Приликом слања СМС поруке, потврда о њеном приспећу на телефон примаоца је од суштинске важности. СМС користи систем двокорачне потврде како би то осигурао.

Након што пошаљете поруку у центар за услуге кратких порука (СМСЦ) мобилне мреже, добијате "извештај о подношењу поруке". Овај извештај означава да је СМСЦ прихватио вашу поруку за испоруку. Такође садржи јединствени идентификатор, често назван "референца поруке" или "callback ID", који омогућава праћење поруке у систему СМСЦ-а.

Након прихватања, порука се чува у СМСЦ-у док испорука не постане могућа. Ово може бити одложено ако је телефон примаоца искључен, што може продужити чекање на неколико дана. Када телефон примаоца постане доступан, порука се испоручује. Након успешне испоруке, "извештај о испоруци" се шаље назад пошиљаоцу као посебна СМС порука.

Ова потврдна СМС порука садржи:

  • Број телефона примаоца: Потврђује да је намењени прималац примио поруку.
  • Референцу поруке (callback ID): Поклапа се са идентификатором из оригиналног извештаја о подношењу, пружајући јасну везу између две фазе.
  • Време испоруке: Даје тачно време када је порука стигла на телефон примаоца.
Важно је напоменути да се "извештај о испоруци" генерално односи на ову потврдну СМС поруку коју прима пошиљалац. Не све мобилне мреже нуде извештаје о испоруци, а неке захтевају активацију од стране корисника.

Могу ли да подесим колико дуго се порука чува у СМСЦ-у?

Иако СМС поруке пружају погодан начин комуникације, осигурање да порука стигне до примаоца на време је од суштинске важности. Овде се појављује концепт "рока важења".

Рок важења се односи на временски период током кога се СМС порука чува у центру за услуге кратких порука (СМСЦ) када је телефон примаоца недоступан. Ако порука остане неиспоручена након истека овог периода, аутоматски се брише из СМСЦ-а, спречавајући одложену испоруку.

Предности коришћења рока важења:

  • Поруке осетљиве на време: Замислите да шаљете поруку о временски осетљивом догађају, као што је ТВ програм уживо. Постављање одговарајућег рока важења осигурава да порука не буде испоручена након што је догађај завршен, чинећи је нерелевантном.
  • Ефикасност мреже: Спречавањем непотребних покушаја испоруке на недоступне телефоне, рок важења оптимизује ресурсе мреже.
Док неке мобилне мреже нуде могућност директног подешавања рока важења за одлазне поруке, подразумевана вредност је често максимална вредност мреже (обично једна недеља). Ова вредност се може променити кроз уграђене опције менија на телефону.

Важно је запамтити да не све мобилне мреже нуде кориснички подесив рок важења, а неке могу захтевати активацију од стране корисника за извештаје о испоруци (потврду да је порука стигла до примаоца).

More information

 
Stanje poruke Vrednost Tip
SCHEDULED 0 Srednje
Poruka je zakazana. Isporuka još nije započeta. Poruka poslata sa zakazanom isporukom može vratiti ovo stanje kada se upita. Ova vrednost je dodata za SMPP v5.0. MC-ovi koji podržavaju ranije verzije SMPP v3.3 i SMPP v3.4 verovatno će vratiti ENROUTE za zakazane poruke.
ENROUTE
ili EN_ROUTE
1 Srednje
Poruka je u stanju enroute. Ovo je opšte stanje koje se koristi da opiše poruku kao aktivnu unutar MC-a. Poruka može biti u ponovnom pokušaju ili poslata 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. Neće biti daljih isporuka.
EXPIRED 3 Konačno
Rok važenja poruke je istekao. Poruka nije uspela da bude isporučena u svom roku važenja i/ili periodu ponovnog pokušaja. Neće biti daljih pokušaja isporuke.
DELETED 4 Konačno
Poruka je obrisana. Poruka je otkazana ili obrisana iz MC-a. Neće biti daljih pokušaja isporuke.
UNDELIVERABLE 5 Konačno
Poruka je neisporučiva. Poruka je naišla na grešku pri isporuci i smatra se trajno neisporučivom. Neće biti daljih pokušaja isporuke. Određene mrežne ili interne greške MC-a rezultiraju trajnom neisporučivošću poruke. Primeri takvih grešaka bi bili nepoznati pretplatnik ili mrežna greška koja ukazuje na to da je odredišni mobilni uređaj odbijen za SMS uslugu ili ne može da podrži SMS.
Next: Šta je SMPP simulator