Kako konfigurirati polje Replace if Present v SMPP
Kaj je polje Replace If Present?
Polje Replace If Present v SMPP je 1-bajtna zastavica v PDU-jih, kot je submit_sm
, ki navaja SMSC, naj zamenja obstoječe sporočilo, shranjeno na napravi prejemnika ali v čakalni vrsti SMSC. Ključne uporabe vključujejo:
- Posodabljanje časovno občutljive vsebine (npr. OTP-ji, statusna opozorila)
- Preprečevanje podvojenih sporočil
- Upravljanje omejitev shranjevanja naprave
Vrednosti polja in interpretacija
Polje uporablja preprosto logiko, podobno logični vrednosti:
Vrednost (Hex) | Opis |
---|---|
0x00 | NE zamenjuj obstoječih sporočil (privzeto) |
0x01 | Zamenjaj obstoječa sporočila, če so prisotna |
Opomba: Logika zamenjave sporočil je odvisna od implementacije SMSC. Pogosti kriteriji za ujemanje vključujejo:
- Izvorne/ciljne naslove
- ID sporočila (če je podan)
- Protokol ID (PID=0x41 pogosto sproži zamenjavo)
Primeri uporabe
1. Posodobitev OTP sporočila
replace_if_present: 0x01 // Zamenjaj prejšnje OTP sporočilo PID: 0x41 // Protokol ID za zamenjavo payload: "Vaš nov OTP: 5678"
2. Osvežitev kampanjskega sporočila
replace_if_present: 0x01 // Posodobi promocijsko vsebino PID: 0x00 // Privzeti protokol payload: "Hitra razprodaja: Nove cene!"
3. Upravljanje čakalne vrste
replace_if_present: 0x01 // Prepiši sporočilo v čakalni vrsti scheduled_delivery_time: (prihodnji časovni žig)
Primeri SMPP PDU-jev
Primer 1: Zamenjava onemogočena (0x00)
0000001D // Dolžina ukaza (29 bajtov) 00000004 // ID ukaza (SubmitSM) 00000001 // Zaporedna številka ... 00 // Replace If Present (0x00: Onemogočeno) ... 07 // Dolžina SM (7 septetov) C8329BFD06DDDF72 // Vsebina ("Pozdravljeni!")
Primer 2: Zamenjava omogočena (0x01)
0000001D // Dolžina ukaza (29 bajtov) 00000004 // ID ukaza (SubmitSM) 00000002 // Zaporedna številka ... 01 // Replace If Present (0x01: Omogočeno) ... 07 // Dolžina SM (7 septetov) E8329BFD0E... // Vsebina ("Posodobljeno: 15:00")
Primer 3: Kombinacija s PID=0x41
0000001D // Dolžina ukaza (29 bajtov) 00000004 // ID ukaza (SubmitSM) 00000003 // Zaporedna številka ... 41 // Protokol ID (PID=0x41: Zamenjaj) 01 // Replace If Present (0x01) ... 07 // Dolžina SM (7 septetov) C8329BFD06... // Vsebina ("OTP: 9876")
Interakcije z drugimi polji
- Protokol ID (PID): PID=0x41 eksplicitno sproži zamenjavo v mnogih SMSC-jih
- message_id: Nekateri SMSC-ji uporabljajo to za identifikacijo sporočil za zamenjavo
- registered_delivery: Potrdila nakazujejo, ali je bila zamenjava uspešna
Pogoste napake
- Omogočanje zamenjave brez podpore SMSC
- Nastavitev
message_id
za ciljno zamenjavo - Predpostavka, da vsi SMSC-ji uporabljajo enako logiko zamenjave
- Neujemanje vrednosti PID in replace_if_present
Opomba o obnašanju SMSC:
Politike zamenjave se zelo razlikujejo. Nekateri SMSC-ji:
Politike zamenjave se zelo razlikujejo. Nekateri SMSC-ji:
- Zamenjajo samo sporočila z ujemajočimi se izvornimi/ciljnimi naslovi
- Ignorirajo replace_if_present, če PID≠0x41
- Omejijo zamenjavo na sporočila v čakalni vrsti SMSC (ne na dostavljena)
Zaključek
Polje Replace If Present omogoča ključni nadzor nad upravljanjem življenjskega cikla sporočil, vendar zahteva skrbno usklajevanje z zmogljivostmi SMSC. Vedno preverite vedenje zamenjave pri svojem ponudniku in uporabite PID=0x41 za eksplicitne zahteve za zamenjavo. Za podrobnejše implementacije glejte SMPP v3.4, razdelek 5.2.20 in dokumentacijo GSM 03.40 o obdelavi sporočil.
More information
- Kako konfigurirati polje Vrsta storitve SMPP
- Kako konfigurirati polja Telefonske številke SMPP
- Kako konfigurirati polje SMPP ESM Class
- Kako konfigurirati polje SMPP PID
- Kako konfigurirati polje SMPP Prioritetnost
- Kako konfigurirati polje SMPP Načrtovani čas
- Kako konfigurirati polje SMPP Veljavnost
- Kako konfigurirati polje SMPP Registrirana dostava
- Kako konfigurirati polje SMPP Zamenjaj, če je prisoten
- Kako konfigurirati polje sm_default_msg_id
- Kako konfigurirati polje SMPP DCS
- Kako izračunati polje SMPP Dolžina SM
- Kako vnesti podatke v polje SMPP SM