Kako konfigurisati SMPP polje "Replace if Present"
Šta je polje "Replace If Present"?
Polje Replace If Present u SMPP-u je 1-bajtna zastavica u PDU-ima kao što je submit_sm
koja daje instrukciju SMSC-u da zameni postojeću poruku sačuvanu na uređaju primaoca ili u redu čekanja SMSC-a. Ključne primene uključuju:
- Ažuriranje vremenski osetljivog sadržaja (npr. OTP-ova, statusnih upozorenja)
- Sprečavanje duplih poruka
- Upravljanje ograničenjima memorije uređaja
Vrednosti polja i interpretacija
Polje koristi jednostavnu strukturu sličnu boolean-u:
Vrednost (Hex) | Opis |
---|---|
0x00 | NE zamenjuj postojeće poruke (podrazumevano) |
0x01 | Zameni postojeće poruke ako postoje |
Napomena: Logika zamene poruka zavisi od implementacije SMSC-a. Uobičajeni kriterijumi za podudaranje uključuju:
- Izvorne/odredišne adrese
- ID poruke (ako je dostavljen)
- ID protokola (PID=0x41 često pokreće zamenu)
Primeri upotrebe
1. Ažuriranje OTP poruke
replace_if_present: 0x01 // Zameni prethodnu OTP poruku PID: 0x41 // ID protokola za zamenu payload: "Vaš novi OTP: 5678"
2. Osvežavanje promotivne poruke
replace_if_present: 0x01 // Ažuriraj promotivni sadržaj PID: 0x00 // Podrazumevani protokol payload: "Flash rasprodaja: Nove cene!"
3. Upravljanje redom čekanja
replace_if_present: 0x01 // Pregazi poruku u redu čekanja scheduled_delivery_time: (budući vremenski pečat)
Primeri SMPP PDU-a
Primer 1: Zamena onemogućena (0x00)
0000001D // Dužina komande (29 bajtova) 00000004 // ID komande (SubmitSM) 00000001 // Redni broj ... 00 // Replace If Present (0x00: Onemogućeno) ... 07 // Dužina SM (7 septeta) C8329BFD06DDDF72 // Sadržaj ("Zdravo!")
Primer 2: Zamena omogućena (0x01)
0000001D // Dužina komande (29 bajtova) 00000004 // ID komande (SubmitSM) 00000002 // Redni broj ... 01 // Replace If Present (0x01: Omogućeno) ... 07 // Dužina SM (7 septeta) E8329BFD0E... // Sadržaj ("Ažurirano: 15:00")
Primer 3: Kombinovano sa PID=0x41
0000001D // Dužina komande (29 bajtova) 00000004 // ID komande (SubmitSM) 00000003 // Redni broj ... 41 // ID protokola (PID=0x41: Zamena) 01 // Replace If Present (0x01) ... 07 // Dužina SM (7 septeta) C8329BFD06... // Sadržaj ("OTP: 9876")
Interakcije sa drugim poljima
- ID protokola (PID): PID=0x41 eksplicitno pokreće zamenu u mnogim SMSC-ovima
- message_id: Neki SMSC-ovi koriste ovo za identifikaciju poruka za zamenu
- registered_delivery: Potvrde ukazuju na uspešnost zamene
Uobičajene greške
- Omogućavanje zamene bez podrške SMSC-a
- Nepostavljanje
message_id
za ciljanu zamenu - Pretpostavka da svi SMSC-ovi koriste istu logiku zamene
- Nepodudaranje vrednosti PID i replace_if_present
Napomena o ponašanju SMSC-a:
Politike zamene se veoma razlikuju. Neki SMSC-ovi:
Politike zamene se veoma razlikuju. Neki SMSC-ovi:
- Zamenjuju samo poruke sa podudarnim izvorom/odredištem
- Ignorišu replace_if_present ako PID≠0x41
- Ograničavaju zamenu na poruke u redu čekanja SMSC-a (ne i isporučene)
Zaključak
Polje Replace If Present pruža ključnu kontrolu nad upravljanjem životnim ciklusom poruka, ali zahteva pažljivu koordinaciju sa mogućnostima SMSC-a. Uvek proverite ponašanje zamene sa vašim provajderom i koristite PID=0x41 za eksplicitne zahteve za zamenu. Za detaljne implementacije, pogledajte SMPP v3.4 odeljak 5.2.20 i GSM 03.40 dokumentaciju o obradi poruka.
More information
- Kako konfigurisati SMPP Tip usluge polje
- Kako konfigurisati SMPP polja za telefonske brojeve
- Kako konfigurisati SMPP ESM Class polje
- Kako konfigurisati SMPP PID polje
- Kako konfigurisati SMPP Prioritet polje
- Kako konfigurisati SMPP Zakazano vreme polje
- Kako konfigurisati SMPP Period važenja polje
- Kako konfigurisati SMPP Registrovana isporuka polje
- Kako konfigurisati SMPP Zameni ako postoji polje
- Kako konfigurisati sm_default_msg_id polje
- Kako konfigurisati SMPP DCS polje
- Kako izračunati SMPP SM Dužina polje
- Kako uneti podatke u SMPP SM polje