Konfiguration des SMPP Validity Period-Felds

Was ist das Validity Period-Feld?

Die Validity Period in SMPP (Short Message Peer-to-Peer Protocol) ist ein nullterminiertes Zeichenfolgenfeld in PDUs wie submit_sm, das definiert, wie lange eine SMSC versucht, eine Nachricht zuzustellen, bevor sie verworfen wird. Dieses Feld ist entscheidend für:

  • Verhindern unendlicher Wiederholungsversuche für unzustellbare Nachrichten
  • Verwaltung von SMSC-Speicherressourcen
  • Handhabung zeitkritischer Inhalte (z.B. OTPs, Werbeaktionen)

Feldformat und Struktur

Die Gültigkeitsdauer verwendet dasselbe absolute Zeitformat wie die geplante Lieferzeit (SMPP v3.4-Spezifikation):

YYMMDDhhmmssnnp

Wobei die Komponenten dem Format der geplanten Lieferzeit entsprechen. Häufige relative Formatkurzformen werden ebenfalls unterstützt:

Format Beispiel Beschreibung
Absolut 231215235959000+ 15. Dez. 2023 23:59:59 UTC+0
Relativ 000003000000000R 3 Tage ab Sendezeitpunkt
Sonderwerte:
- NULL: Verwendet die SMSC-Standardgültigkeit (typisch 24-72 Stunden)
- 00: SMSC-Standardgültigkeit (ältere Systeme)

Wichtige Validity Period-Formate

1. Absolutes Zeitformat

YYMMDDhhmmssnnp // Vollständiges Format
231215143000000+  // 15. Dez. 2023 14:30:00 UTC+0

2. Relatives Zeitformat

00000X000000000R // X = Tage (00-99)
000003000000000R  // 3 Tage Gültigkeit

Anwendungsfälle

1. OTP-Ablauf (Kurze Gültigkeit)

validity_period: "000000010000000R" // 1 Stunde Gültigkeit
    

2. Werbekampagne (Verlängerte Gültigkeit)

validity_period: "000007000000000R" // 7 Tage Gültigkeit
    

3. Mitternachtsablauf (Absolute Zeit)

validity_period: "231215235959000+" // Läuft am 15. Dez. 2023 23:59:59 UTC+0 ab
    

Beispiel-SMPP-PDUs

Beispiel 1: 24-Stunden-Gültigkeit (Relatives Format)

0000001D  // Befehlslänge (29 Bytes)
00000004  // Befehls-ID (SubmitSM)
00000001  // Sequenznummer
...
00        // Prioritätsflag
00        // Geplante Lieferzeit
303030303234303030303030305200  // "00002400000000R" (24 Stunden)
00        // Registrierte Lieferung
...
    

Beispiel 2: Absoluter Ablaufzeitpunkt

0000002A  // Befehlslänge (42 Bytes)
00000004  // Befehls-ID (SubmitSM)
00000002  // Sequenznummer
...
00        // Geplante Lieferzeit
3233313231323332353935393030302B00  // "231212235959000+" (12. Dez. 2023 23:59:59 UTC+0)
...
    

Interaktionen mit anderen Feldern

  • scheduled_delivery_time: Die Gültigkeitsdauer beginnt ab der geplanten Zeit, falls gesetzt
  • priority_flag: Hochpriorisierte Nachrichten können auf einigen SMSCs die Gültigkeitsdauer überschreiben
  • registered_delivery: Zustellbestätigungen werden auch nach Ablauf der Gültigkeitsdauer gesendet

Häufige Fallstricke

  • Verwendung des relativen Formats ohne das 'R'-Suffix
  • Festlegen von Gültigkeitsdauern, die über die SMSC-Grenzen hinausgehen (z.B. maximal 30 Tage)
  • Zeitzonenkonflikte zwischen geplanter Zeit und Gültigkeitsdauer
  • Annahme, dass alle SMSCs relatives Format unterstützen (beim Anbieter überprüfen)
Hinweis zum SMSC-Verhalten:
Viele SMSCs wandeln relative Zeiträume bei Nachrichteneingang in absolute Zeitstempel um. Der Countdown läuft auch bei einem Neustart der SMSC weiter.

Gültigkeitsdauer vs. SMSC-Standards

Validity Period-Wert SMSC-Verhalten
NULL oder 00 Verwendet SMSC-Standard (variiert je nach Anbieter)
Expliziter Wert Berücksichtigt den Wert (innerhalb der SMSC-Grenzen)
Vergangener Zeitstempel Nachricht wird sofort verworfen

Fazit

Das Validity Period-Feld ist entscheidend für die Steuerung des Nachrichtenlebenszyklus in SMPP. Während absolute Zeitstempel Präzision bieten, bieten relative Formate Einfachheit für gängige Anwendungsfälle. Stimmen Sie die Gültigkeitseinstellungen immer mit den SMSC-Richtlinien ab und testen Sie Grenzfälle (z.B. Zeitumstellungen). Für detaillierte Implementierungen siehe SMPP v3.4 Abschnitt 5.2.18 und GSM 03.40-Dokumentation.

More information