Cum să configurezi câmpul SMPP Registered Delivery
Ce este câmpul Registered Delivery?
Câmpul Registered Delivery în SMPP este o mască de biți de 1 octet în PDU-uri precum submit_sm
și data_sm
care controlează
confirmările de livrare și recunoașteri. Acesta permite expeditorilor să urmărească starea livrării mesajelor prin confirmările generate de SMSC. Funcțiile cheie includ:
- Solicitarea confirmărilor de livrare finale (succes/eșec)
- Activarea notificărilor intermediare de livrare
- Gestionarea confirmărilor SME (Short Message Entity)
Structura câmpului și masca de biți
Definit în SMPP v3.4, câmpul utilizează următoarea structură de mască de biți:
Bit | Descriere |
---|---|
0 | Confirmare de livrare SMSC (0 = dezactivat, 1 = activat) |
1 | Confirmare SME inițiată (0 = dezactivat, 1 = activat) |
2 | Notificare intermediară (0 = dezactivat, 1 = activat) |
3-7 | Rezervat |
Valori comune
Valoare (Hex) | Binar | Descriere |
---|---|---|
0x00 | 00000000 | Nicio confirmare solicitată |
0x01 | 00000001 | Doar confirmare de livrare SMSC |
0x03 | 00000011 | Confirmare SMSC + confirmare SME |
0x05 | 00000101 | Confirmare SMSC + notificări intermediare |
Cazuri de utilizare
1. Confirmări de livrare de bază
registered_delivery: 0x01 // Solicită starea finală a livrării
2. Mesagerie de înaltă fiabilitate
registered_delivery: 0x05 // Confirmare + notificări intermediare
3. Comunicare bidirecțională
registered_delivery: 0x03 // Confirmă atât livrarea SMSC, cât și SME
Exemple de PDU-uri SMPP
Exemplu 1: Fără confirmări (0x00)
0000001D // Lungimea comenzii (29 de octeți) 00000004 // ID-ul comenzii (SubmitSM) 00000001 // Numărul de secvență 00 // Sursa TON 00 // Sursa NPI 736F7572636500 // Adresa sursă ("source") 00 // Destinația TON 00 // Destinația NPI 36353433323100 // Adresa destinației ("654321") 00 // Clasa ESM 00 // ID-ul protocolului 00 // Flagul de prioritate 00 // Ora de livrare programată 00 // Perioada de valabilitate 00 // Registered Delivery (0x00: Fără confirmări) 00 // Înlocuire-dacă-prezent 00 // Codarea datelor (DCS=0x00) 00 // ID-ul implicit al mesajului SM 07 // Lungimea SM (7 septeți) C8329BFD06DDDF72 // Conținut ("Hello!")
Exemplu 2: Confirmare de livrare SMSC (0x01)
0000001D // Lungimea comenzii (29 de octeți) 00000004 // ID-ul comenzii (SubmitSM) 00000002 // Numărul de secvență ... 00 // Perioada de valabilitate 01 // Registered Delivery (0x01: Confirmare SMSC) 00 // Înlocuire-dacă-prezent ...
Exemplu 3: Notificări intermediare (0x05)
0000001D // Lungimea comenzii (29 de octeți) 00000004 // ID-ul comenzii (SubmitSM) 00000003 // Numărul de secvență ... 05 // Registered Delivery (0x05: Confirmare SMSC + notificări intermediare) ...
Formatul confirmării de livrare
SMSC-urile returnează confirmări prin PDU-uri deliver_sm
cu un conținut formatat astfel:
id:IIIIIIIIII sub:SSS dlvrd:DDD submit date:YYMMDDhhmm done date:YYMMDDhhmm stat:STATUS err:EEE
Exemplu de confirmare pentru un mesaj livrat:
id:1896384752 sub:001 dlvrd:001 submit date:2310151430 done date:2310151431 stat:DELIVRD err:000
Interacțiuni cu alte câmpuri
- esm_class: Bitul 6 (flagul de confirmare de livrare) trebuie să se alinieze cu setările registered_delivery
- validity_period: Determină cât timp SMSC-ul va încerca livrarea înainte de a trimite o confirmare de eșec
- message_id: Critic pentru corelarea confirmărilor cu mesajele originale
Capcane comune
- Activarea confirmărilor dar neascultarea PDU-urilor
deliver_sm
- Presupunerea că toate SMSC-urile acceptă confirmările SME (0x02)
- Nealinierea flagurilor
registered_delivery
șiesm_class
- Ignorarea limitelor de rată SMSC pentru generarea confirmărilor
Unii furnizori taxează suplimentar pentru confirmările de livrare. Confirmă prețurile înainte de activare.
Concluzie
Câmpul Registered Delivery este esențial pentru urmărirea stării livrării SMS-urilor în SMPP. În timp ce gestionarea de bază a confirmărilor (0x01) este larg acceptată,
funcțiile avansate precum notificările intermediare necesită teste specifice SMSC. Implementează întotdeauna o analiză robustă a confirmărilor și corelează mesajele
folosind message_id
. Pentru comportament detaliat, consultă Secțiunea 5.2.17 din SMPP v3.4 și documentația furnizorului tău.
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