Jak nakonfigurovat pole Replace if Present v SMPP
Co je pole Replace If Present?
Pole Replace If Present v SMPP je 1bajtový příznak v PDU jako submit_sm
, který instruuje SMSC, aby nahradil existující zprávu uloženou na zařízení příjemce nebo ve frontě SMSC. Klíčové aplikace zahrnují:
- Aktualizaci časově citlivého obsahu (např. OTP, stavové upozornění)
- Zabránění duplicitním zprávám
- Správu omezení úložiště zařízení
Hodnoty pole a jejich interpretace
Pole používá jednoduchou logiku podobnou booleanu:
Hodnota (Hex) | Popis |
---|---|
0x00 | NEnahrazovat existující zprávy (výchozí) |
0x01 | Nahradit existující zprávy, pokud jsou přítomny |
Poznámka: Logika nahrazování zpráv závisí na implementaci SMSC. Běžná kritéria pro shodu zahrnují:
- Zdrojové/cílové adresy
- ID zprávy (pokud je poskytnuto)
- ID protokolu (PID=0x41 často spouští nahrazení)
Příklady použití
1. Aktualizace OTP zprávy
replace_if_present: 0x01 // Nahradit předchozí OTP zprávu PID: 0x41 // ID protokolu pro nahrazení payload: "Váš nový OTP: 5678"
2. Obnovení kampaně
replace_if_present: 0x01 // Aktualizovat propagační obsah PID: 0x00 // Výchozí protokol payload: "Bleskový výprodej: Nové ceny!"
3. Správa fronty
replace_if_present: 0x01 // Přepsat zprávu ve frontě scheduled_delivery_time: (budoucí časové razítko)
Příklady SMPP PDU
Příklad 1: Nahrazení zakázáno (0x00)
0000001D // Délka příkazu (29 bajtů) 00000004 // ID příkazu (SubmitSM) 00000001 // Číslo sekvence ... 00 // Replace If Present (0x00: Zakázáno) ... 07 // Délka SM (7 septetů) C8329BFD06DDDF72 // Obsah ("Ahoj!")
Příklad 2: Nahrazení povoleno (0x01)
0000001D // Délka příkazu (29 bajtů) 00000004 // ID příkazu (SubmitSM) 00000002 // Číslo sekvence ... 01 // Replace If Present (0x01: Povoleno) ... 07 // Délka SM (7 septetů) E8329BFD0E... // Obsah ("Aktualizováno: 15:00")
Příklad 3: Kombinace s PID=0x41
0000001D // Délka příkazu (29 bajtů) 00000004 // ID příkazu (SubmitSM) 00000003 // Číslo sekvence ... 41 // ID protokolu (PID=0x41: Nahradit) 01 // Replace If Present (0x01) ... 07 // Délka SM (7 septetů) C8329BFD06... // Obsah ("OTP: 9876")
Interakce s dalšími poli
- ID protokolu (PID): PID=0x41 explicitně spouští nahrazení v mnoha SMSC
- message_id: Některé SMSC používají toto ID k identifikaci zpráv pro nahrazení
- registered_delivery: Potvrzení indikují, zda nahrazení proběhlo úspěšně
Běžné problémy
- Povolení nahrazení bez podpory SMSC
- Nenastavení
message_id
pro cílené nahrazení - Předpoklad, že všechny SMSC používají stejnou logiku nahrazení
- Nesoulad hodnot PID a replace_if_present
Poznámka k chování SMSC:
Zásady nahrazení se výrazně liší. Některé SMSC:
Zásady nahrazení se výrazně liší. Některé SMSC:
- Nahrazují pouze zprávy se shodnými zdrojovými/cílovými adresami
- Ignorují replace_if_present, pokud PID≠0x41
- Omezují nahrazení na zprávy ve frontě SMSC (ne doručené)
Závěr
Pole Replace If Present poskytuje kritickou kontrolu nad správou životního cyklu zpráv, ale vyžaduje pečlivou koordinaci s možnostmi SMSC. Vždy ověřte chování nahrazení u vašeho poskytovatele a použijte PID=0x41 pro explicitní požadavky na nahrazení. Pro podrobné implementace se řiďte SMPP v3.4, oddíl 5.2.20 a dokumentací GSM 03.40 o zpracování zpráv.
More information
- Jak nakonfigurovat pole Typ služby SMPP
- Jak nakonfigurovat pole Telefonní čísla SMPP
- Jak nakonfigurovat pole Třída ESM SMPP
- Jak nakonfigurovat pole PID SMPP
- Jak nakonfigurovat pole Priorita SMPP
- Jak nakonfigurovat pole Naplánovaný čas SMPP
- Jak nakonfigurovat pole Platnost SMPP
- Jak nakonfigurovat pole Registrované doručení SMPP
- Jak nakonfigurovat pole Nahradit pokud existuje SMPP
- Jak nakonfigurovat pole sm_default_msg_id
- Jak nakonfigurovat pole DCS SMPP
- Jak vypočítat pole Délka SM SMPP
- Jak vložit data do pole SMPP SM