Konfiguration des SMPP Replace if Present Feldes
Was ist das Replace If Present Feld?
Das Replace If Present Feld in SMPP ist ein 1-Byte-Flag in PDUs wie submit_sm
, das die SMSC anweist, eine vorhandene Nachricht auf dem Gerät des Empfängers oder in der SMSC-Warteschlange zu ersetzen. Wichtige Anwendungsfälle sind:
- Aktualisierung zeitkritischer Inhalte (z.B. OTPs, Statusbenachrichtigungen)
- Vermeidung doppelter Nachrichten
- Verwaltung von Speicherbeschränkungen auf Geräten
Feldwerte und Interpretation
Das Feld verwendet eine einfache boolesche Struktur:
Wert (Hex) | Beschreibung |
---|---|
0x00 | Vorhandene Nachrichten NICHT ersetzen (Standard) |
0x01 | Vorhandene Nachrichten ersetzen, falls vorhanden |
Hinweis: Die Ersetzungslogik hängt von der SMSC-Implementierung ab. Häufige Kriterien sind:
- Quell-/Zieladressen
- Nachrichten-ID (falls angegeben)
- Protokoll-ID (PID=0x41 löst oft Ersetzung aus)
Anwendungsfälle
1. OTP-Nachrichtenaktualisierung
replace_if_present: 0x01 // Vorherige OTP-Nachricht ersetzen PID: 0x41 // Protokoll-ID für Ersetzung payload: "Ihr neues OTP: 5678"
2. Kampagnennachrichtenaktualisierung
replace_if_present: 0x01 // Werbeinhalte aktualisieren PID: 0x00 // Standardprotokoll payload: "Flash Sale: Neue Preise!"
3. Warteschlangenverwaltung
replace_if_present: 0x01 // Warteschlangennachricht überschreiben scheduled_delivery_time: (zukünftiger Zeitstempel)
Beispiel-SMPP-PDUs
Beispiel 1: Ersetzung deaktiviert (0x00)
0000001D // Befehlslänge (29 Bytes) 00000004 // Befehls-ID (SubmitSM) 00000001 // Sequenznummer ... 00 // Replace If Present (0x00: Deaktiviert) ... 07 // SM-Länge (7 Septets) C8329BFD06DDDF72 // Nutzlast ("Hallo!")
Beispiel 2: Ersetzung aktiviert (0x01)
0000001D // Befehlslänge (29 Bytes) 00000004 // Befehls-ID (SubmitSM) 00000002 // Sequenznummer ... 01 // Replace If Present (0x01: Aktiviert) ... 07 // SM-Länge (7 Septets) E8329BFD0E... // Nutzlast ("Aktualisiert: 15 Uhr")
Beispiel 3: Kombiniert mit PID=0x41
0000001D // Befehlslänge (29 Bytes) 00000004 // Befehls-ID (SubmitSM) 00000003 // Sequenznummer ... 41 // Protokoll-ID (PID=0x41: Ersetzen) 01 // Replace If Present (0x01) ... 07 // SM-Länge (7 Septets) C8329BFD06... // Nutzlast ("OTP: 9876")
Interaktion mit anderen Feldern
- Protokoll-ID (PID): PID=0x41 löst in vielen SMSCs explizit Ersetzung aus
- message_id: Einige SMSCs verwenden dies zur Identifikation von Nachrichten für Ersetzung
- registered_delivery: Empfangsbestätigungen zeigen an, ob Ersetzung erfolgreich war
Häufige Fallstricke
- Aktivierung der Ersetzung ohne SMSC-Unterstützung
- Nicht-Setzen der
message_id
für gezielte Ersetzung - Annahme, dass alle SMSCs dieselbe Ersetzungslogik verwenden
- Nicht übereinstimmende PID- und replace_if_present-Werte
Hinweis zum SMSC-Verhalten:
Ersetzungsrichtlinien variieren stark. Einige SMSCs:
Ersetzungsrichtlinien variieren stark. Einige SMSCs:
- Ersetzen nur Nachrichten mit übereinstimmenden Quell-/Zieladressen
- Ignorieren replace_if_present, wenn PID≠0x41
- Beschränken Ersetzung auf Nachrichten in der SMSC-Warteschlange (nicht zugestellte)
Fazit
Das Replace If Present Feld bietet entscheidende Kontrolle über den Nachrichtenlebenszyklus, erfordert jedoch sorgfältige Abstimmung mit den SMSC-Fähigkeiten. Überprüfen Sie immer das Ersetzungsverhalten mit Ihrem Anbieter und verwenden Sie PID=0x41 für explizite Ersetzungsanfragen. Für detaillierte Implementierungen siehe SMPP v3.4 Abschnitt 5.2.20 und GSM 03.40 Dokumentation zur Nachrichtenverarbeitung.
More information
- Wie man das SMPP Service Typ Feld konfiguriert
- Wie man die SMPP Telefonnummer Felder konfiguriert
- Wie man das SMPP ESM Class Feld konfiguriert
- Wie man das SMPP PID Feld konfiguriert
- Wie man das SMPP Prioritätsfeld konfiguriert
- Wie man das SMPP Geplante Zeit Feld konfiguriert
- Wie man das SMPP Gültigkeitsdauer Feld konfiguriert
- Wie man das SMPP Registrierte Zustellung Feld konfiguriert
- Wie man das SMPP Ersetzen falls vorhanden Feld konfiguriert
- Wie man das sm_default_msg_id Feld konfiguriert
- Wie man das SMPP DCS Feld konfiguriert
- Wie man das SMPP SM Länge Feld berechnet
- Wie man Daten in das SMPP SM Feld einfügt