Ako nakonfigurovať pole Replace if Present v SMPP
Čo je pole Replace If Present?
Pole Replace If Present v SMPP je 1-bajtová vlajka v PDU ako submit_sm
, ktorá inštruuje SMSC, aby nahradila existujúcu správu uloženú na zariadení príjemcu alebo v rade SMSC. Kľúčové aplikácie zahŕňajú:
- Aktualizáciu časovo citlivého obsahu (napr. OTP, stavové upozornenia)
- Zabránenie duplicitným správam
- Riadenie obmedzení úložného priestoru zariadenia
Hodnoty poľa a ich interpretácia
Pole používa jednoduchú boolean-ovskú štruktúru:
Hodnota (Hex) | Popis |
---|---|
0x00 | NENAHADZAŤ existujúce správy (predvolené) |
0x01 | Nahradiť existujúce správy, ak sú prítomné |
Poznámka: Logika nahradzovania správ závisí od implementácie SMSC. Bežné kritériá zhody zahŕňajú:
- Zdrojové/Cieľové adresy
- ID správy (ak je poskytnuté)
- Protokolové ID (PID=0x41 často spúšťa nahradenie)
Prípady použitia
1. Aktualizácia OTP správy
replace_if_present: 0x01 // Nahradiť predchádzajúcu OTP správu PID: 0x41 // Protokolové ID pre nahradenie payload: "Váš nový OTP: 5678"
2. Obnovenie kampanovej správy
replace_if_present: 0x01 // Aktualizovať propagačný obsah PID: 0x00 // Predvolený protokol payload: "Bleskový výpredaj: Nové ceny!"
3. Správa fronty
replace_if_present: 0x01 // Prepísať správu vo fronte scheduled_delivery_time: (budúci časový údaj)
Príklady SMPP PDU
Príklad 1: Nahradenie zakázané (0x00)
0000001D // Dĺžka príkazu (29 bajtov) 00000004 // ID príkazu (SubmitSM) 00000001 // Poradové číslo ... 00 // Replace If Present (0x00: Zakázané) ... 07 // Dĺžka SM (7 septetov) C8329BFD06DDDF72 // Payload ("Ahoj!")
Príklad 2: Nahradenie povolené (0x01)
0000001D // Dĺžka príkazu (29 bajtov) 00000004 // ID príkazu (SubmitSM) 00000002 // Poradové číslo ... 01 // Replace If Present (0x01: Povolené) ... 07 // Dĺžka SM (7 septetov) E8329BFD0E... // Payload ("Aktualizované: 15:00")
Príklad 3: Kombinované s PID=0x41
0000001D // Dĺžka príkazu (29 bajtov) 00000004 // ID príkazu (SubmitSM) 00000003 // Poradové číslo ... 41 // Protokolové ID (PID=0x41: Nahradiť) 01 // Replace If Present (0x01) ... 07 // Dĺžka SM (7 septetov) C8329BFD06... // Payload ("OTP: 9876")
Interakcie s inými poľami
- Protokolové ID (PID): PID=0x41 explicitne spúšťa nahradenie v mnohých SMSC
- message_id: Niektoré SMSC používajú toto na identifikáciu správ pre nahradenie
- registered_delivery: Potvrdenia naznačujú, či nahradenie bolo úspešné
Bežné úskalia
- Povolenie nahradenia bez podpory SMSC
- Nenastavenie
message_id
pre cieľové nahradenie - Predpoklad, že všetky SMSC používajú rovnakú logiku nahradenia
- Nesúlad hodnôt PID a replace_if_present
Poznámka k správaniu SMSC:
Politiky nahradenia sa výrazne líšia. Niektoré SMSC:
Politiky nahradenia sa výrazne líšia. Niektoré SMSC:
- Nahradzujú iba správy so zhodnými zdrojovými/cieľovými adresami
- Ignorujú replace_if_present, ak PID≠0x41
- Obmedzujú nahradenie na správy vo fronte SMSC (nie doručené)
Záver
Pole Replace If Present poskytuje kritickú kontrolu nad správou životného cyklu správ, ale vyžaduje starostlivú koordináciu s možnosťami SMSC. Vždy overte správanie nahradenia s vaším poskytovateľom a použite PID=0x41 pre explicitné žiadosti o nahradenie. Pre podrobné implementácie sa pozrite na SMPP v3.4, časť 5.2.20 a dokumentáciu GSM 03.40 o spracovaní správ.
More information
- How to configure the SMPP Service Type field
- How to configure the SMPP Phone Number fields
- How to configure the SMPP ESM Class field
- How to configure the SMPP PID field
- How to configure the SMPP Prioirity field
- How to configure the SMPP Scheduled Time field
- How to configure the SMPP Validity Period field
- How to configure the SMPP Registered Delivery field
- How to configure the SMPP Replace if Present field
- How to configure the sm_default_msg_id field
- How to configure the SMPP DCS field
- How to calculate the SMPP SM Length field
- How to put data into the SMPP SM field