Az SMPP Registered Delivery mező konfigurálása
Mi a Registered Delivery mező?
Az SMPP-ben a Registered Delivery mező egy 1 bájtos bitmaszk olyan PDU-kban, mint a submit_sm és a data_sm, amely szállítási visszaigazolásokat és nyugtákat vezérel. Lehetővé teszi a küldők számára, hogy nyomon kövessék az üzenetek kézbesítési állapotát az SMSC által generált visszaigazolásokon keresztül. Fő funkciói:
- Végső kézbesítési visszaigazolások kérése (sikeres/sikertelen)
- Köztes kézbesítési értesítések engedélyezése
- SME (Short Message Entity) nyugták kezelése
A mező szerkezete és bitmaszkja
Az SMPP v3.4-ben definiált mező a következő bitmaszk szerkezetet használja:
| Bit | Leírás |
|---|---|
| 0 | SMSC kézbesítési visszaigazolás (0 = letiltva, 1 = engedélyezve) |
| 1 | SME eredetű nyugta (0 = letiltva, 1 = engedélyezve) |
| 2 | Köztes értesítés (0 = letiltva, 1 = engedélyezve) |
| 3-7 | Fenntartva |
Gyakori értékek
| Érték (Hex) | Bináris | Leírás |
|---|---|---|
| 0x00 | 00000000 | Nincs visszaigazolás kérve |
| 0x01 | 00000001 | Csak SMSC kézbesítési visszaigazolás |
| 0x03 | 00000011 | SMSC visszaigazolás + SME nyugta |
| 0x05 | 00000101 | SMSC visszaigazolás + köztes értesítések |
Használati esetek
1. Alapvető kézbesítési visszaigazolások
registered_delivery: 0x01 // Végső kézbesítési állapot kérése
2. Magas megbízhatóságú üzenetküldés
registered_delivery: 0x05 // Visszaigazolás + köztes értesítések
3. Kétirányú kommunikáció
registered_delivery: 0x03 // SMSC és SME kézbesítés megerősítése
Példa SMPP PDU-k
1. példa: Nincs visszaigazolás (0x00)
0000001D // Parancs hossza (29 bájt)
00000004 // Parancs azonosító (SubmitSM)
00000001 // Sorszám
00 // Forrás TON
00 // Forrás NPI
736F7572636500 // Forráscím ("source")
00 // Cél TON
00 // Cél NPI
36353433323100 // Célcím ("654321")
00 // ESM osztály
00 // Protokoll azonosító
00 // Prioritás jelző
00 // Kézbesítési idő ütemezése
00 // Érvényességi idő
00 // Registered Delivery (0x00: Nincs visszaigazolás)
00 // Csere, ha jelen van
00 // Adatkódolás (DCS=0x00)
00 // SM alapértelmezett üzenet azonosító
07 // SM hossz (7 szeplett)
C8329BFD06DDDF72 // Hasznos adat ("Hello!")
2. példa: SMSC kézbesítési visszaigazolás (0x01)
0000001D // Parancs hossza (29 bájt)
00000004 // Parancs azonosító (SubmitSM)
00000002 // Sorszám
...
00 // Érvényességi idő
01 // Registered Delivery (0x01: SMSC visszaigazolás)
00 // Csere, ha jelen van
...
3. példa: Köztes értesítések (0x05)
0000001D // Parancs hossza (29 bájt)
00000004 // Parancs azonosító (SubmitSM)
00000003 // Sorszám
...
05 // Registered Delivery (0x05: SMSC visszaigazolás + köztes értesítések)
...
Kézbesítési visszaigazolás formátuma
Az SMSC-k a visszaigazolásokat deliver_sm PDU-kon keresztül küldik, a következő formátumban:
id:IIIIIIIIII sub:SSS dlvrd:DDD submit date:YYMMDDhhmm done date:YYMMDDhhmm stat:STATUS err:EEE
Példa visszaigazolás egy kézbesített üzenethez:
id:1896384752 sub:001 dlvrd:001 submit date:2310151430 done date:2310151431 stat:DELIVRD err:000
Interakciók más mezőkkel
- esm_class: A 6. bit (kézbesítési visszaigazolás jelző) meg kell egyezzen a registered_delivery beállításokkal
- validity_period: Meghatározza, hogy az SMSC meddig próbálkozik a kézbesítéssel, mielőtt sikertelen visszaigazolást küld
- message_id: Kritikus fontosságú a visszaigazolások és az eredeti üzenetek összerendeléséhez
Gyakori buktatók
- Visszaigazolások engedélyezése, de a
deliver_smPDU-k figyelésének elmulasztása - Feltételezés, hogy minden SMSC támogatja az SME nyugtákat (0x02)
- A
registered_deliveryésesm_classjelzők eltérése - Az SMSC által meghatározott visszaigazolási korlátok figyelmen kívül hagyása
Egyes szolgáltatók extra díjat számítanak fel a kézbesítési visszaigazolásokért. Ellenőrizze a díjszabást az engedélyezés előtt.
Összegzés
A Registered Delivery mező elengedhetetlen az SMS kézbesítési állapotának nyomon követéséhez az SMPP-ben. Míg az alapvető visszaigazolási kezelés (0x01) széles körben támogatott, az olyan fejlett funkciók, mint a köztes értesítések, SMSC-specifikus tesztelést igényelnek. Mindig implementáljon robusztus visszaigazolás-elemzést és korrelálja az üzeneteket a message_id segítségével. Részletes viselkedésért tekintse meg az SMPP v3.4 5.2.17 szakaszát és a szolgáltatója dokumentációját.