Konfiguration des SMPP Scheduled Delivery Time Feldes

Was ist das Scheduled Delivery Time Feld?

Das Scheduled Delivery Time-Feld in SMPP (Short Message Peer-to-Peer Protocol) ist ein optionaler Parameter in der submit_sm PDU, der es ermöglicht, eine Nachricht für die Zustellung zu einem zukünftigen Datum und einer zukünftigen Uhrzeit in die Warteschlange zu stellen. Dieses Feld ist entscheidend für:

  • Verzögerte Nachrichtenzustellung außerhalb der Hauptverkehrszeiten
  • Planung zeitkritischer Kampagnen (z.B. Geburtstagsnachrichten)
  • Koordinierung von Nachrichten über Zeitzonen hinweg

Feldformat und Struktur

Die SMPP v3.4-Spezifikation definiert dieses Feld als C-Octet String (null-terminiert) mit einem spezifischen Datums- und Zeitformat:

YYMMDDhhmmssnnp

Wobei:

Komponente Beschreibung Bereich
YY Letzte zwei Ziffern des Jahres 00-99
MM Monat 01-12
DD Tag 01-31
hh Stunde (24h-Format) 00-23
mm Minute 00-59
ss Sekunde 00-59
nn Zehntelsekunden (optional) 00-99
p Zeitzonenoffset (z.B. +, -) +/- gefolgt von 4 Ziffern (HHMM)
Besondere Werte:
- NULL (sofortige Zustellung)
- 000000000000000 (sofortige Zustellung, ältere Systeme)

Beispiel-Zeitzeichenketten

Zeitzeichenkette Interpretation
231015143000000+ 15. Okt. 2023 14:30:00 UTC+0
231015143000000-0800 15. Okt. 2023 14:30:00 UTC-08:00
000000000000000 Sofortige Zustellung (veraltet)
NULL Sofortige Zustellung (empfohlen)

Anwendungsfälle

1. Geburtstagsnachrichten

Planen Sie eine Nachricht, die genau um Mitternacht am Geburtstag des Empfängers zugestellt wird:

scheduled_delivery_time: "231016000000000+"
// 16. Okt. 2023 00:00:00 UTC+0
    

2. Zustellung außerhalb der Hauptverkehrszeiten

Vermeiden Sie Netzüberlastung, indem Sie Massennachrichten nachts versenden:

scheduled_delivery_time: "231015020000000+"
// 15. Okt. 2023 02:00:00 UTC+0
    

3. Zeitzonenkoordination

Zustellen von Nachrichten um 9 Uhr Ortszeit für Empfänger in New York (UTC-5):

scheduled_delivery_time: "231015090000000-0500"
// 15. Okt. 2023 09:00:00 UTC-05:00
    

Beispiel-SMPP-PDUs

Beispiel 1: Sofortige Zustellung (NULL)

0000001D  // Befehlslänge (29 Bytes)
00000004  // Befehls-ID (SubmitSM)
00000001  // Sequenznummer
00        // Quell-TON
00        // Quell-NPI
736F7572636500  // Quelladresse ("source")
00        // Ziel-TON
00        // Ziel-NPI
36353433323100  // Zieladresse ("654321")
00        // ESM-Klasse
00        // Protokoll-ID
00        // Prioritätsflag
00        // Schedule Delivery Time (NULL: sofort)
00        // Gültigkeitsdauer
00        // Registrierte Zustellung
00        // Ersetzen falls vorhanden
00        // Datenkodierung (DCS=0x00)
00        // Standard-Nachrichten-ID
07        // SM-Länge (7 Septets)
C8329BFD06DDDF72  // Nutzlast ("Hello!")
    

Beispiel 2: Zukünftige Zustellung (15. Okt. 2023 14:30 UTC)

0000002A  // Befehlslänge (42 Bytes)
00000004  // Befehls-ID (SubmitSM)
00000002  // Sequenznummer
00        // Quell-TON
00        // Quell-NPI
736F7572636500  // Quelladresse ("source")
00        // Ziel-TON
00        // Ziel-NPI
36353433323100  // Zieladresse ("654321")
00        // ESM-Klasse
00        // Protokoll-ID
00        // Prioritätsflag
3233313031353134333030303030302B00  // "231015143000000+" (16 Bytes + null)
00        // Gültigkeitsdauer
00        // Registrierte Zustellung
00        // Ersetzen falls vorhanden
00        // Datenkodierung (DCS=0x00)
00        // Standard-Nachrichten-ID
07        // SM-Länge (7 Septets)
C8329BFD06DDDF72  // Nutzlast ("Hello!")
    

Interaktionen mit anderen Feldern

  • validity_period: Definiert, wie lange der SMSC die Zustellung versucht. Beginnt ab dem geplanten Zeitpunkt zu zählen.
  • priority_flag: Nachrichten mit höherer Priorität können auf einigen SMSCs die Planungswarteschlangen umgehen.

Häufige Fallstricke

  • Verwendung der Ortszeit ohne Angabe des Zeitzonenoffsets.
  • Falsche Formatierung der Datumszeichenkette (z.B. ungültiger Monat "13").
  • Annahme, dass alle SMSCs geplante Zustellungen unterstützen (beim Anbieter überprüfen).
  • Festlegen einer Zeit in der Vergangenheit, was zu sofortiger Zustellung führt.
Hinweis zum SMSC-Verhalten:
Einige SMSCs ignorieren Bruchteile von Sekunden (nn) oder beschränken, wie weit im Voraus Nachrichten geplant werden können (z.B. maximal 7 Tage).

Fazit

Das Scheduled Delivery Time-Feld ermöglicht eine präzise Steuerung des Zeitpunkts der SMS-Zustellung. Die korrekte Verwendung erfordert eine sorgfältige Formatierung der Zeitzeichenketten und die Abstimmung mit den Fähigkeiten des SMSC. Testen Sie geplante Nachrichten immer mit Ihrem Anbieter und konsultieren Sie die SMPP v3.4-Spezifikation für Sonderfälle (z.B. Schaltjahre, Zeitzonenwechsel).

More information