BroadNet
Das JournalEngineering
Engineering

SMS-Zustellbestätigungen (DLR) und Fehlercodes erklärt.

Eine Zustellbestätigung (DLR) ist die endgültige Entscheidung des Mobilfunkanbieters über Ihre SMS. Was bedeuten DELIVRD, UNDELIV, EXPIRED und REJECTD, und wie interpretieren Sie die Felder stat und err?

BroadNet Engineering
10 Min. Lesezeit
Engineering · Ausgabe 23
10 Min. Lesezeit

ine Zustellbestätigung (DLR) ist eine Statusmeldung, die nach dem Absenden einer SMS zurückgegeben wird und deren endgültigen Status – ZUGESTELLT, NICHT ZUGESTELLT, ABGELAUFEN, GELÖSCHT, ANGENOMMEN, UNBEKANNT oder ABGELEHNT – gemäß SMPP-Definition angibt. Eine gültige DLR stammt vom Mobilfunkanbieter des Empfängers, nicht vom Gateway. Sie informiert Sie darüber, ob das Mobiltelefon die Nachricht empfangen hat und, über das Fehlerfeld, warum dies nicht der Fall war.

Was ein Zustellbericht ist – und was er nicht ist

Sobald Sie eine Nachricht absenden, erhalten Sie zwei unterschiedliche Signale. Deren Verwechslung ist die häufigste Ursache für scheinbare Ausfälle. Das erste Signal ist die Empfangsbestätigung: Bei SMPP sendet der SMSC eine submit_sm_resp mit dem command_status ESME_ROK (0x00000000). Über eine HTTP-API erhalten Sie den Statuscode 202 und eine Nachrichten-ID. Dies bedeutet lediglich, dass die Plattform die Nachricht zur Verarbeitung angenommen hat. Das zweite Signal, das später eintrifft, ist die Zustellbestätigung – ein separater Bericht darüber, was das Netzwerk letztendlich mit der Nachricht gemacht hat. Bei SMPP wird diese als deliver_sm PDU zurückgegeben, deren esm_class sie als Empfangsbestätigung kennzeichnet. Über eine REST-API wird sie an Ihren Webhook übermittelt. Konfigurieren Sie Ihr System anhand der Zustellbestätigung (DLR), nicht anhand der Antwort auf die Übermittlung. Informationen zu den Flags für Bind und Receipt-Request finden Sie im SMPP-Entwicklerhandbuch (/developers/smpp).

Gateway-ACK versus DLR eines echten Betreibers

Nicht jede DLR (Direct Line Report) wird an derselben Stelle im Netzwerk erzeugt, und genau hier liegt die Problematik der Routenqualität. Eine echte DLR auf Betreiberebene wird vom Zielnetz generiert, nachdem das Mobiltelefon die Kurznachricht auf der SS7/MAP- oder Diameter-Schicht bestätigt hat. Der SMSC (Short Message Service Center) des Betreibers wandelt diesen Bericht der Netzwerkschicht in die SMPP-Empfangsbestätigung um, die Sie erhalten. Eine Zwischen- oder Gateway-DLR hingegen wird von einem Aggregator synthetisiert, wenn dieser die Nachricht an den nächsten Hop weiterleitet – bevor der Zielbetreiber etwas bestätigt hat. Bei einer sauberen Direktroute stimmen die beiden überein; bei einer Grauroute nicht.

Deshalb sind „gefälschte DLRs“ gefährlich. Ein Graurouten-Aggregator, der keine echte Empfangsbestätigung eines Netzbetreibers erhält, fälscht oft einen DELIVRD-Bericht beim Handoff, damit seine Dashboards einwandfrei aussehen – selbst wenn die Nachricht stillschweigend verworfen, gefiltert oder von der SIM-Box terminiert wurde. Ein Indiz dafür ist eine verdächtig hohe Zustellrate in Verbindung mit echten Nutzern, die die Nachricht nie erhalten haben, oder eine Route, die massenhaft UNKNOWN zurückgibt (das SMSC hat keinen gültigen Status, da ein nachgelagerter Hop keinen gültigen Bericht zurückgegeben hat). Fügen Sie eine beliebige Empfangsbestätigungszeichenfolge in den DLR-Decoder ein, um genau zu sehen, was eine Route behauptet und wie eine echte Empfangsbestätigung eines Netzbetreibers aussieht.

Wie DLRs zu Ihnen zurückfließen

Es gibt zwei Transportprotokolle und eine zugrundeliegende Quelle. Über SMPP wird die Empfangsbestätigung asynchron als deliver_sm PDU in Ihrer gebundenen Sitzung zurückgegeben. Der endgültige Status wird im Nachrichtentext (der klassischen Zeichenkette id:… stat:… err:…) und – in Version 5.0 und vielen Implementierungen von Version 3.4 – in den TLVs message_state und network_error_code übertragen. Über eine HTTP-API werden dieselben Informationen per POST an einen von Ihnen registrierten Webhook gesendet, üblicherweise als JSON. Beide basieren letztendlich auf dem Statusbericht des Netzwerks: 3GPP TS 23.040 definiert den SMS-STATUS-REPORT und sein Feld TP-Status, das vom terminierenden SMSC in den von Ihnen gelesenen SMPP-Nachrichtenstatus übersetzt wird. Die SMPP-Schicht ist ein zuverlässiger Träger für einen Bericht, der im Mobilfunknetz selbst erstellt wird.

Unabhängig vom Transportmittel sollten für jeden Beleg die gleichen Felder protokolliert werden, damit die Diagnose anhand von Mustern und nicht anhand von Anekdoten gestellt werden kann:

  • Die Nachrichten-ID, damit Sie den DLR mit dem ursprünglichen submit_sm verknüpfen können.
  • Der stat-Wert (der endgültige Nachrichtenstatus) und der err-Wert (der Netzwerk-/Betreiberfehlercode).
  • Der Zielbetreiber (MCC/MNC), die Absender-ID und die verwendete Route oder Bindung.
  • Die Zeitstempel für das Absendedatum und das Fertigstellungsdatum ermöglichen es Ihnen, die End-to-End-Latenz zu messen und ABGELAUFENE Muster zu erkennen.
snippet
ID: 1a2b3c4d5e, Unterabschnitt: 001, Zustelldatum: 2608031200, Fertigstellungsdatum: 2608031201, Status: ZUGESTELLT, Fehler: 000, Text: Ihr BroadNet-Code
ID: 9f8e7d6c5b, Unterabschnitt: 001, Zustelldatum: 2608031200, Fertigstellungsdatum: 2608031205, Status: NICHT ZUGESTELLT, Fehler: 062, Text: Ihr BroadNet-Code

Die Diagnose wird in zwei Feldern gespeichert. Das Feld „stat“ enthält den standardisierten endgültigen Nachrichtenstatus (siehe unten). Das Feld „err“ ist ein netz- bzw. betreiberspezifischer Code – dieselbe UNDELIV-Nachricht kann bei verschiedenen Betreibern mit unterschiedlichen Fehlerwerten eintreffen. Daher ist „err“ nur im Kontext des Zielnetzes aussagekräftig. Beachten Sie, dass sich dieser Fehlercode vom SMPP-Befehlsstatus unterscheidet, den Sie mit „submit_sm_resp“ erhalten (ESME_RINVDSTADR, ESME_RTHROTTLED usw.). Die beiden werden unterschiedlich dekodiert. Verwenden Sie die SMPP-Fehlercodesuche (siehe /tools/smpp-error-codes) für Befehlsstatuswerte und den DLR-Decoder für die Empfangsbestätigung.

Die SMPP-Nachrichtenzustände, dekodiert

SMPP definiert eine kleine, abgeschlossene Menge von Endzuständen sowie den vorübergehenden ENROUTE-Zustand, der vor dem Empfang einer Nachricht auftreten kann. Die sieben unten aufgeführten Zustände beenden den Lebenszyklus einer Nachricht. Sie enthalten die typische Ursache und die jeweils auszulösende Aktion. Betrachten Sie diese Zustände als Verteilung nach Betreiber, Absender-ID und Route: Ein einzelnes UNDELIV ist irrelevant; eine Route, bei der 40 % der Nachrichten bei einem Betreiber UNDELIV sind, deutet auf ein Routenproblem hin.

DLR-Status (Stat.)Was es bedeutetTypische UrsacheWas zu tun
GELIEFERTDer Empfang wurde auf dem Mobiltelefon bestätigt.Die Nachricht erreichte das GerätNichts – das ist Erfolg; Stichprobenabgleich mit echten Nutzerberichten, um gefälschte DELIVRDs aufzudecken.
AKZEPTIERTIm Namen des Abonnenten akzeptiert (z. B. vom Kundendienst gelesen)Der Bediener hat die Nachricht ohne tatsächliche Bestätigung am Empfang als angenommen markiert.Als Teilerfolg behandeln; jede Route untersuchen, die massenhaft ACCEPTD zurückgibt – dies verschleiert oft eine Nichtzustellung.
ABGELAUFENDie Gültigkeitsdauer ist vor der Lieferung abgelaufen.Mobilteil ausgeschaltet oder außerhalb der Netzabdeckung für das gesamte Zeitfenster, oder SMSC-Wiederholungsversuche erschöpftVersuchen Sie es später erneut oder nutzen Sie einen anderen Kanal; prüfen Sie, ob Ihre Gültigkeitsdauer nicht zu kurz ist.
GELÖSCHTNachricht vor Zustellung im SMSC entfernt.Manuelle/administrative Löschung oder Entfernung aus dem SpamfilterPrüfen Sie die Inhaltsfilterung des Betreibers und Ihre Absender-ID-/Inhaltsrichtlinie.
UNDELIVDie Nachricht konnte nicht zugestellt werden.Ungültige oder nicht zugewiesene MSISDN, keine Route, Ablehnung auf Netzwerkschicht oder Firewall-BlockierungÜberprüfen Sie die Rufnummer (HLR-Abfrage), anschließend die Routenqualität und die Registrierung der Absender-ID.
ABGELEHNTDer Betreiber hat die Nachricht abgelehnt.Nicht registrierte Absender-ID, Inhaltsfilter, Spam-Klassifizierung oder DND-/ZustimmungslisteRegistrieren Sie die Absender-ID, korrigieren Sie die Vorlage und bestätigen Sie die Anmeldung für das Ziel.
UNBEKANNTDer SMSC hat keinen gültigen Status für die NachrichtEin nachfolgender Hop lieferte nie einen echten Bericht – oft ein schwarzes Loch in der Grauzone.Hinterfrage den Weg; ein gesunder direkter Weg führt selten zurück zu UNBEKANNT

DLRs als Signal für die Streckenqualität lesen

Sobald Sie akzeptieren, dass nur die DLR-Daten auf Betreiberebene vertrauenswürdig sind, wird der Empfangsfeed zu Ihrem besten Instrument zur Routenqualitätsanalyse – besser als jede Abdeckungskarte oder Vertriebspräsentation. Direkte Routen liefern spezifische, konsistente Fehlercodes und eine stabile Zustellrate (DELIVD). Graue Routen hingegen liefern generische Fehler, vereinzelt UNKNOWN-Einträge und eine wöchentlich schwankende Zustellrate, da Betreiber-Firewalls den Datenverkehr abfangen und der Aggregator ihn stillschweigend umleitet. Analysieren Sie die DLR-Verteilung nach Betreiber und Absender-ID im Zeitverlauf: Die Betreiber, bei denen Sie steigende UNDELIV/UNKNOWN-Werte oder verschwindende Fehlerdetails feststellen, nutzen eine sich verschlechternde Route. In regulierten GCC-Märkten – den VAE unter der TDRA, Saudi-Arabien unter der CST – bedeutet ein auf eine Absender-ID konzentrierter RELECTD-Wert fast immer eine Lücke in der Registrierung oder Vorlagengenehmigung und nicht einen Netzwerkfehler.

BroadNet liefert echte DLRs auf Betreiberebene – keine Gateway-Bestätigungen – über 1,000+ Betreiberverbindungen in 200+ Ländern. Die Felder „stat“ und „err“ werden pro Nachricht bereitgestellt, sodass die Routenqualität in Echtzeit sichtbar ist. Unterstützt wird dies durch eine Plattform-SLA von 99,99 % und direkte A2P-Routen, die seit 2003 gepflegt werden. Weitere Informationen finden Sie in der SMS-API oder im SMPP-Entwicklerhandbuch.

Häufig gestellte Fragen

Was ist eine Zustellbestätigung per SMS?

Eine Zustellbestätigung (DLR) ist ein Statusbericht, der nach dem Absenden einer SMS zurückgegeben wird und den endgültigen Status der Nachricht mitteilt – zugestellt, unzustellbar, abgelaufen, abgelehnt usw. Sie trifft nach der Empfangsbestätigung entweder als SMPP deliver_sm recycel PDU oder als HTTP-Webhook ein. Eine gültige DLR stammt vom Mobilfunkanbieter des Empfängers, nicht vom Gateway, und bestätigt somit, ob das Endgerät die Nachricht tatsächlich empfangen hat.

Was bedeutet DLR?

DLR steht für Zustellbestätigung (manchmal auch „Zustellbericht“). Im SMPP-System ist dies der Nachrichtenstatusbericht, den der SMSC für eine gesendete Nachricht zurückgibt. Er enthält ein Statusfeld (DELIVRD, UNDELIV, EXPIRED, DELETED, ACCEPTD, UNKNOWN, REJECTD) und einen betreiberspezifischen Fehlercode. DLR ist der Unterschied zwischen der Information, dass eine Nachricht zur Verarbeitung angenommen wurde, und der Information, dass sie tatsächlich an ein Endgerät zugestellt wurde.

Warum wird bei meiner SMS „UNDELIV / REJECTD“ angezeigt?

UNDELIV bedeutet in der Regel, dass die Nachricht das Endgerät nicht erreichen konnte – beispielsweise aufgrund einer ungültigen oder nicht zugewiesenen MSISDN, fehlender Route oder einer Blockierung durch Netzwerkschicht oder Firewall. REJECTD bedeutet, dass der Netzbetreiber die Nachricht direkt abgelehnt hat, typischerweise aufgrund einer nicht registrierten Absenderkennung, eines Treffers im Inhaltsfilter, einer Spam-Klassifizierung oder einer Sperrliste. Lesen Sie das Fehlerfeld und korrelieren Sie die Fehler nach Absenderkennung, Netzbetreiber und Route, um die tatsächliche Ursache zu ermitteln.

Worin unterscheidet sich eine Gateway-Bestätigung von einer Betreiber-DLR?

Eine Gateway-Bestätigung (submit_sm_resp mit ESME_ROK oder HTTP 202) bestätigt lediglich, dass die Plattform Ihre Nachricht zur Verarbeitung angenommen hat. Ein vom Betreiber bereitgestelltes DLR bestätigt hingegen, was das Zielnetzwerk tatsächlich mit der Nachricht gemacht hat. Aggregatoren auf Graurouten fälschen mitunter DELIVRD-Empfangsbestätigungen beim Handover. Daher ist ein vom Betreiber bereitgestelltes DLR das einzige verlässliche Signal dafür, dass das Endgerät die Nachricht empfangen hat.

Referenzen

War das hilfreich?

Wie wir Inhalte erstellen und prüfen

Verfasst von

BroadNet Engineering

Die Ingenieure betreiben die Netzwerkinfrastruktur: SMPP Bindungen, SS7 Stacks, Routing-Engines – die im Grunde unscheinbare Infrastruktur, die den Versand von einer Milliarde Nachrichten pro Monat ermöglicht. Hier schreiben sie, wenn etwas erwähnenswert ist.

Das Journal, per E-Mail

Ein Aufsatz pro Monat. Sonst nichts.

Abonnieren Sie unseren Newsletter und wir senden Ihnen den nächsten Beitrag – ob zu Technik, Regulierung oder Industrie – direkt am Erscheinungstag. Keine E-Mail-Kampagnen, keine Produktpräsentationen, keine Weitergabe an Dritte. Abmeldung mit einem Klick.

Wir senden eine E-Mail pro Monat. Abmeldung jederzeit möglich. Siehe unsere Datenschutzerklärung.

Was Sie erhalten
  • Ausführlicher Text, kein Linkköder
    Sechs bis elf Minuten konzentriertes Schreiben zu einem einzigen Thema.
  • Verfasst von Bedienern
    Ingenieure, Zulassungsbeauftragte und Produktentwickler sind im eigenen Haus tätig.
  • Regionsabhängig
    MENA-zentrierte Sicht auf Regulierungsbehörden, Betreiber und Vertriebskanalmix.
  • Einmal im Monat
    Keine tröpfchenweise Kampagne. Nur ein Essay, wenn es einen zu teilen gibt.
Hör auf zu lesen. Fang an zu versenden.

Das meiste von dem, was wir schreiben, haben wir in der Produktion gelernt.

Wenn Ihnen dieser Artikel zusagte, sollten wir uns unterhalten. Schildern Sie uns Ihren Anwendungsfall, die Volumina und die Märkte – wir melden uns dann mit Routing, Preisen und einem Referenzkunden, den Sie kontaktieren können.

$ curl -X POST https://api.broadnet.me/sms/sendSms