Kako konfigurirati SMPP polje Replace if Present
Što je polje Replace If Present?
Polje Replace If Present u SMPP-u je 1-bajtna zastavica u PDU-ovima poput submit_sm
koja upućuje SMSC da zamijeni postojeću poruku pohranjenu na uređaju primatelja ili u redu čekanja SMSC-a. Ključne primjene uključuju:
- Ažuriranje vremenski osjetljivog sadržaja (npr. OTP-ovi, statusna upozorenja)
- Sprečavanje dupliciranih poruka
- Upravljanje ograničenjima pohrane na uređaju
Vrijednosti polja i tumačenje
Polje koristi jednostavnu strukturu sličnu booleanu:
Vrijednost (Hex) | Opis |
---|---|
0x00 | NE zamjenjuj postojeće poruke (zadano) |
0x01 | Zamijeni postojeće poruke ako su prisutne |
Napomena: Logika zamjene poruka ovisi o implementaciji SMSC-a. Uobičajeni kriteriji podudaranja uključuju:
- Izvorne/Odredišne adrese
- ID poruke (ako je dostupan)
- ID protokola (PID=0x41 često pokreće zamjenu)
Primjeri upotrebe
1. Ažuriranje OTP poruke
replace_if_present: 0x01 // Zamijeni prethodnu OTP poruku PID: 0x41 // ID protokola za zamjenu payload: "Vaš novi OTP: 5678"
2. Osvježavanje kampanjske poruke
replace_if_present: 0x01 // Ažuriraj promotivni sadržaj PID: 0x00 // Zadani protokol payload: "Flash rasprodaja: Nove cijene!"
3. Upravljanje redom čekanja
replace_if_present: 0x01 // Nadpiši poruku u redu čekanja scheduled_delivery_time: (budući vremenski pečat)
Primjeri SMPP PDU-ova
Primjer 1: Zamjena onemogućena (0x00)
0000001D // Duljina naredbe (29 bajtova) 00000004 // ID naredbe (SubmitSM) 00000001 // Redni broj ... 00 // Replace If Present (0x00: Onemogućeno) ... 07 // Duljina SM (7 septeta) C8329BFD06DDDF72 // Sadržaj ("Bok!")
Primjer 2: Zamjena omogućena (0x01)
0000001D // Duljina naredbe (29 bajtova) 00000004 // ID naredbe (SubmitSM) 00000002 // Redni broj ... 01 // Replace If Present (0x01: Omogućeno) ... 07 // Duljina SM (7 septeta) E8329BFD0E... // Sadržaj ("Ažurirano: 15 sati")
Primjer 3: Kombinirano s PID=0x41
0000001D // Duljina naredbe (29 bajtova) 00000004 // ID naredbe (SubmitSM) 00000003 // Redni broj ... 41 // ID protokola (PID=0x41: Zamijeni) 01 // Replace If Present (0x01) ... 07 // Duljina SM (7 septeta) C8329BFD06... // Sadržaj ("OTP: 9876")
Interakcije s drugim poljima
- ID protokola (PID): PID=0x41 eksplicitno pokreće zamjenu u mnogim SMSC-ovima
- message_id: Neki SMSC-ovi koriste ovo za identifikaciju poruka za zamjenu
- registered_delivery: Potvrde pokazuju je li zamjena uspjela
Uobičajene zamke
- Omogućavanje zamjene bez podrške SMSC-a
- Nepostavljanje
message_id
za ciljanu zamjenu - Pretpostavka da svi SMSC-ovi koriste istu logiku zamjene
- Nepodudaranje vrijednosti PID i replace_if_present
Napomena o ponašanju SMSC-a:
Politike zamjene uvelike variraju. Neki SMSC-ovi:
Politike zamjene uvelike variraju. Neki SMSC-ovi:
- Zamjenjuju samo poruke s podudarnim izvorom/odredištem
- Zanemaruju replace_if_present ako PID≠0x41
- Ograničavaju zamjenu 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 zahtijeva pažljivu koordinaciju s mogućnostima SMSC-a. Uvijek provjerite ponašanje zamjene s vašim pružateljem usluge i koristite PID=0x41 za eksplicitne zahtjeve za zamjenu. Za detaljne implementacije, pogledajte SMPP v3.4 Odjeljak 5.2.20 i GSM 03.40 dokumentaciju o rukovanju porukama.
More information
- Kako konfigurirati polje SMPP vrsta usluge
- Kako konfigurirati polja SMPP telefonskih brojeva
- Kako konfigurirati polje SMPP ESM klasa
- Kako konfigurirati polje SMPP PID
- Kako konfigurirati polje SMPP prioritet
- Kako konfigurirati polje SMPP planirano vrijeme
- Kako konfigurirati polje SMPP rok valjanosti
- Kako konfigurirati polje SMPP registrirana isporuka
- Kako konfigurirati polje SMPP zamijeni ako postoji
- Kako konfigurirati polje sm_default_msg_id
- Kako konfigurirati polje SMPP DCS
- Kako izračunati polje SMPP SM duljina
- Kako staviti podatke u SMPP SM polje