A "Replace if Present" mező konfigurálása SMPP-ben
Mi a "Replace If Present" mező?
A Replace If Present mező az SMPP-ben egy 1 bájtos flag olyan PDU-kban, mint a submit_sm
, amely arra utasítja az SMSC-t, hogy cserélje le a címzett eszközén vagy az SMSC várólistáján tárolt meglévő üzenetet. Fő alkalmazási területei:
- Időérzékeny tartalom frissítése (pl. OTP-k, állapotértesítések)
- Duplikált üzenetek megelőzése
- Eszköztárhely kezelése
Mezőértékek és értelmezés
A mező egyszerű, logikai szerkezetet használ:
Érték (Hex) | Leírás |
---|---|
0x00 | Ne cserélje le a meglévő üzeneteket (alapértelmezett) |
0x01 | Cserélje le a meglévő üzeneteket, ha vannak |
Megjegyzés: Az üzenetcsere logikája az SMSC implementációtól függ. Gyakori egyezési kritériumok:
- Forrás/cél címek
- Üzenetazonosító (ha meg van adva)
- Protokoll azonosító (PID=0x41 gyakran vált ki cserét)
Használati esetek
1. OTP üzenet frissítése
replace_if_present: 0x01 // Cserélje a korábbi OTP üzenetet PID: 0x41 // Protokoll azonosító cserehez payload: "Az új OTP: 5678"
2. Kampányüzenet frissítése
replace_if_present: 0x01 // Promóciós tartalom frissítése PID: 0x00 // Alapértelmezett protokoll payload: "Flash akció: Új árak!"
3. Várólista kezelése
replace_if_present: 0x01 // Felülírja a várólistán lévő üzenetet scheduled_delivery_time: (jövőbeli időbélyeg)
Példa SMPP PDU-k
1. példa: Csere letiltva (0x00)
0000001D // Parancs hossza (29 bájt) 00000004 // Parancs azonosító (SubmitSM) 00000001 // Sorszám ... 00 // Replace If Present (0x00: Letiltva) ... 07 // SM hossza (7 szeptett) C8329BFD06DDDF72 // Tartalom ("Hello!")
2. példa: Csere engedélyezve (0x01)
0000001D // Parancs hossza (29 bájt) 00000004 // Parancs azonosító (SubmitSM) 00000002 // Sorszám ... 01 // Replace If Present (0x01: Engedélyezve) ... 07 // SM hossza (7 szeptett) E8329BFD0E... // Tartalom ("Frissítve: 15:00")
3. példa: Kombinálva PID=0x41-gyel
0000001D // Parancs hossza (29 bájt) 00000004 // Parancs azonosító (SubmitSM) 00000003 // Sorszám ... 41 // Protokoll azonosító (PID=0x41: Csere) 01 // Replace If Present (0x01) ... 07 // SM hossza (7 szeptett) C8329BFD06... // Tartalom ("OTP: 9876")
Interakciók más mezőkkel
- Protokoll azonosító (PID): PID=0x41 expliciten vált ki cserét számos SMSC-ben
- message_id: Néhány SMSC ezt használja a cserélni kívánt üzenetek azonosítására
- registered_delivery: A visszaigazolások jelzik, hogy a csere sikerült-e
Gyakori buktatók
- A csere engedélyezése SMSC támogatás nélkül
- A
message_id
beállításának elmulasztása célzott csere esetén - Feltételezés, hogy minden SMSC ugyanazt a csere logikát használja
- PID és replace_if_present értékek eltérése
SMSC viselkedés megjegyzés:
A csere szabályok jelentősen eltérhetnek. Néhány SMSC:
A csere szabályok jelentősen eltérhetnek. Néhány SMSC:
- Csak azonos forrás/cél című üzeneteket cserél
- Figyelmen kívül hagyja a replace_if_present-t, ha PID≠0x41
- Csak az SMSC várólistában lévő üzenetekre korlátozza a cserét (nem kézbesítettekre)
Összegzés
A Replace If Present mező kulcsfontosságú irányítást biztosít az üzenetek életciklus-kezeléséhez, de gondos egyeztetést igényel az SMSC képességeivel. Mindig ellenőrizze a csere viselkedést a szolgáltatójával, és használja a PID=0x41-et explicit csere kérésekhez. Részletes implementációkhoz lásd az SMPP v3.4 5.2.20. szakaszát és a GSM 03.40 dokumentációt az üzenetkezelésről.
More information
- Az SMPP Szolgáltatás Típus mező konfigurálása
- Az SMPP Telefonszám mezők konfigurálása
- Az SMPP ESM Class mező konfigurálása
- Az SMPP PID mező konfigurálása
- Az SMPP Prioritás mező konfigurálása
- Az SMPP Ütemezett Idő mező konfigurálása
- Az SMPP Érvényességi Idő mező konfigurálása
- Az SMPP Regisztrált kézbesítés mező konfigurálása
- Az SMPP Csere, ha jelen van mező konfigurálása
- Az sm_default_msg_id mező konfigurálása
- Az SMPP DCS mező konfigurálása
- Az SMPP SM Hossz mező kiszámítása
- Hogyan helyezzünk adatot az SMPP SM mezőbe