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:
  • 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