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
Notă: Multe SMSC-uri acceptă doar bitul 0 (confirmări SMSC). Verifică capacitățile cu furnizorul tău.

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 și esm_class
  • Ignorarea limitelor de rată SMSC pentru generarea confirmărilor
Notă de facturare:
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