Kako konfigurisati SMPP polje za planirano vreme isporuke

Šta je polje za planirano vreme isporuke?

Polje Planirano vreme isporuke u SMPP (Short Message Peer-to-Peer Protocol) je opcioni parametar u submit_sm PDU koji omogućava poruci da bude stavljena u red za isporuku u budućem datumu i vremenu. Ovo polje je ključno za:

  • Odlaganje isporuke poruka u vanšpijske sate
  • Planiranje vremenski osetljivih kampanja (npr. rođendanske poruke)
  • Koordinaciju poruka u različitim vremenskim zonama

Format i struktura polja

SMPP v3.4 specifikacija definiše ovo polje kao C-Octet String (null-terminiran) sa specifičnim formatom datuma i vremena:

YYMMDDhhmmssnnp

Gde:

Komponenta Opis Opseg
YY Poslednje dve cifre godine 00-99
MM Mesec 01-12
DD Dan 01-31
hh Sat (24h format) 00-23
mm Minut 00-59
ss Sekunda 00-59
nn Deseti delovi sekunde (opciono) 00-99
p Vremenska zona (npr. +, -) +/- praćeno sa 4 cifre (HHMM)
Specijalne vrednosti:
- NULL (trenutna isporuka)
- 000000000000000 (trenutna isporuka, stari sistemi)

Primeri vremenskih stringova

Vremenski string Interpretacija
231015143000000+ 15. oktobar 2023. 14:30:00 UTC+0
231015143000000-0800 15. oktobar 2023. 14:30:00 UTC-08:00
000000000000000 Trenutna isporuka (stari sistemi)
NULL Trenutna isporuka (preporučeno)

Primeri upotrebe

1. Rođendanske poruke

Planirajte poruku da se isporuči tačno u ponoć na primalačev rođendan:

scheduled_delivery_time: "231016000000000+"
// 16. oktobar 2023. 00:00:00 UTC+0

2. Isporuka van špica

Izbegnite zagušenje mreže slanjem masovnih poruka noću:

scheduled_delivery_time: "231015020000000+"
// 15. oktobar 2023. 02:00:00 UTC+0

3. Koordinacija vremenskih zona

Isporučite poruke u 9 ujutro po lokalnom vremenu za primaloce u Njujorku (UTC-5):

scheduled_delivery_time: "231015090000000-0500"
// 15. oktobar 2023. 09:00:00 UTC-05:00

Primeri SMPP PDU-a

Primer 1: Trenutna isporuka (NULL)

0000001D  // Dužina komande (29 bajtova)
00000004  // ID komande (SubmitSM)
00000001  // Redni broj
00        // Izvorni TON
00        // Izvorni NPI
736F7572636500  // Izvorna adresa ("source")
00        // Odredišni TON
00        // Odredišni NPI
36353433323100  // Odredišna adresa ("654321")
00        // ESM klasa
00        // ID protokola
00        // Prioritetni flag
00        // Planirano vreme isporuke (NULL: trenutno)
00        // Period važenja
00        // Registrovana isporuka
00        // Zameni ako postoji
00        // Kodiranje podataka (DCS=0x00)
00        // Podrazumevani ID poruke
07        // Dužina poruke (7 septeta)
C8329BFD06DDDF72  // Sadržaj ("Zdravo!")

Primer 2: Buduća isporuka (15. oktobar 2023. 14:30 UTC)

0000002A  // Dužina komande (42 bajta)
00000004  // ID komande (SubmitSM)
00000002  // Redni broj
00        // Izvorni TON
00        // Izvorni NPI
736F7572636500  // Izvorna adresa ("source")
00        // Odredišni TON
00        // Odredišni NPI
36353433323100  // Odredišna adresa ("654321")
00        // ESM klasa
00        // ID protokola
00        // Prioritetni flag
3233313031353134333030303030302B00  // "231015143000000+" (16 bajtova + null)
00        // Period važenja
00        // Registrovana isporuka
00        // Zameni ako postoji
00        // Kodiranje podataka (DCS=0x00)
00        // Podrazumevani ID poruke
07        // Dužina poruke (7 septeta)
C8329BFD06DDDF72  // Sadržaj ("Zdravo!")

Interakcije sa drugim poljima

  • validity_period: Definiše koliko dugo će SMSC pokušavati isporuku. Brojanje počinje od planiranog vremena.
  • priority_flag: Poruke sa višim prioritetom mogu zaobići redove za planiranje na nekim SMSC-ovima.

Uobičajene greške

  • Korišćenje lokalnog vremena bez navođenja vremenske zone.
  • Nepravilno formatiranje datuma (npr. nevažeći mesec "13").
  • Pretpostavka da svi SMSC-ovi podržavaju planiranu isporuku (proverite sa provajderom).
  • Postavljanje vremena u prošlosti, što uzrokuje trenutnu isporuku.
Napomena o ponašanju SMSC-a:
Neki SMSC-ovi ignorišu delove sekunde (nn) ili ograničavaju koliko unapred se poruke mogu planirati (npr. maksimalno 7 dana).

Zaključak

Polje za planirano vreme isporuke omogućava preciznu kontrolu nad vremenom isporuke SMS poruka. Pravilna upotreba zahteva pažljivo formatiranje vremenskih stringova i koordinaciju sa mogućnostima SMSC-a. Uvek testirajte planirane poruke sa svojim provajderom i konsultujte SMPP v3.4 specifikaciju za granične slučajeve (npr. prestupne godine, promene vremenskih zona).

More information