Jak nakonfigurovat pole Registered Delivery v SMPP

Co je pole Registered Delivery?

Pole Registered Delivery v SMPP je 1bajtová bitová maska v PDU jako submit_sm a data_sm, která řídí doručovací potvrzení a potvrzení o přijetí. Umožňuje odesílatelům sledovat stav doručení zpráv prostřednictvím potvrzení generovaných SMSC. Mezi klíčové funkce patří:

  • Žádost o konečné potvrzení doručení (úspěch/neúspěch)
  • Povolení průběžných oznámení o doručení
  • Zpracování potvrzení od SME (Short Message Entity)

Struktura pole a bitová maska

Definováno v SMPP v3.4, pole používá následující bitovou masku:

Bit Popis
0 Potvrzení doručení od SMSC (0 = vypnuto, 1 = zapnuto)
1 Potvrzení od SME (0 = vypnuto, 1 = zapnuto)
2 Průběžné oznámení (0 = vypnuto, 1 = zapnuto)
3-7 Rezervováno
Poznámka: Mnoho SMSC podporuje pouze bit 0 (potvrzení od SMSC). Ověřte si možnosti u svého poskytovatele.

Běžné hodnoty

Hodnota (Hex) Binární Popis
0x00 00000000 Bez potvrzení
0x01 00000001 Pouze potvrzení od SMSC
0x03 00000011 Potvrzení od SMSC + potvrzení od SME
0x05 00000101 Potvrzení od SMSC + průběžná oznámení

Příklady použití

1. Základní potvrzení doručení

registered_delivery: 0x01  // Žádost o konečný stav doručení
    

2. Vysoká spolehlivost zpráv

registered_delivery: 0x05  // Potvrzení + průběžná oznámení
    

3. Obousměrná komunikace

registered_delivery: 0x03  // Potvrzení od SMSC i SME
    

Příklady SMPP PDU

Příklad 1: Bez potvrzení (0x00)

0000001D  // Délka příkazu (29 bajtů)
00000004  // ID příkazu (SubmitSM)
00000001  // Číslo sekvence
00        // Zdrojový TON
00        // Zdrojový NPI
736F7572636500  // Zdrojová adresa ("source")
00        // Cílový TON
00        // Cílový NPI
36353433323100  // Cílová adresa ("654321")
00        // Třída ESM
00        // ID protokolu
00        // Priorita
00        // Čas plánovaného doručení
00        // Platnost
00        // Registered Delivery (0x00: Bez potvrzení)
00        // Nahradit, pokud existuje
00        // Kódování dat (DCS=0x00)
00        // Výchozí ID zprávy
07        // Délka zprávy (7 septetů)
C8329BFD06DDDF72  // Obsah ("Hello!")
    

Příklad 2: Potvrzení od SMSC (0x01)

0000001D  // Délka příkazu (29 bajtů)
00000004  // ID příkazu (SubmitSM)
00000002  // Číslo sekvence
...
00        // Platnost
01        // Registered Delivery (0x01: Potvrzení od SMSC)
00        // Nahradit, pokud existuje
...
    

Příklad 3: Průběžná oznámení (0x05)

0000001D  // Délka příkazu (29 bajtů)
00000004  // ID příkazu (SubmitSM)
00000003  // Číslo sekvence
...
05        // Registered Delivery (0x05: Potvrzení od SMSC + průběžná oznámení)
...
    

Formát potvrzení doručení

SMSC vrací potvrzení prostřednictvím PDU deliver_sm s obsahem ve formátu:

id:IIIIIIIIII sub:SSS dlvrd:DDD submit date:YYMMDDhhmm done date:YYMMDDhhmm stat:STATUS err:EEE
    

Příklad potvrzení pro doručenou zprávu:

id:1896384752 sub:001 dlvrd:001 submit date:2310151430 done date:2310151431 stat:DELIVRD err:000
    

Interakce s dalšími poli

  • esm_class: Bit 6 (flag potvrzení doručení) musí odpovídat nastavení registered_delivery
  • validity_period: Určuje, jak dlouho se SMSC bude pokoušet o doručení před odesláním potvrzení o neúspěchu
  • message_id: Klíčové pro propojení potvrzení s původními zprávami

Běžné problémy

  • Povolení potvrzení, ale neposlouchání PDU deliver_sm
  • Předpoklad, že všechny SMSC podporují potvrzení od SME (0x02)
  • Nesoulad mezi flagy registered_delivery a esm_class
  • Ignorování limitů SMSC pro generování potvrzení
Poznámka k fakturaci:
Někteří poskytovatelé účtují extra poplatky za potvrzení doručení. Ověřte si ceny před aktivací.

Závěr

Pole Registered Delivery je klíčové pro sledování stavu doručení SMS v SMPP. Zatímco základní potvrzení (0x01) je široce podporováno, pokročilé funkce jako průběžná oznámení vyžadují testování specifické pro SMSC. Vždy implementujte robustní parsování potvrzení a propojujte zprávy pomocí message_id. Pro podrobné chování konzultujte SMPP v3.4 Sekci 5.2.17 a dokumentaci vašeho poskytovatele.

More information