Delivery receipts or “DLR” provide details about the success or failure of an outbound message, such as:
- The ID of the MT message. This is a positive 64 bit integer used to uniquely identify an SMS message as it passes through the Gateway.
- A date, giving the time at which the delivery event occurred.
- A delivery report type code giving an overview of the delivery status of the message.
- A detailed reason code, giving further information on the reason for the delivery report.
These details are provided to Convey by the carrier and passed to Convey customers unaltered.
However, there are additional factors to consider when reviewing a DLR:
- Not all carriers return DLR. Most carriers in the U.S. and Canada return DLR.
- Carriers who do return DLR may not always do so reliably. Returning DLR is a lower priority than message delivery, so DLR are not guaranteed. International carriers have been known to change this offering on occasion. Therefore, the lack of a DLR from a carrier may not indicate an issue. DLR are great for spot checking but should not be relied on for 1:1 delivery confirmation.
DLR for Concatenated Messages
Note that in the case of concatenated messages sent via the HTTP REST API, a multi-segment message will return only return a DLR for one of the message’s segments. Which segment is awarded the DLR is not consistent. This is common for wireless providers such as Verizon, who typically return only one DLR for a concatenated message.
DLR for MMS
Convey does support DLR for MMS messages, but keep in mind that MMS DLR - like all DLR - are at the discretion of the carrier. Not all carriers may support DLR for MMS, even if they support DLR for SMS.
10DLC Carrier DLR
A DLR for a 10DLC message indicates the message has reached the message hub successfully and is being processed for delivery to the handset. It is not a handset DLR, and is returned prior to the application of carrier anti-spam filters. Therefore, a positive DLR may be returned for messages blocked as spam.
In addition to 10DLC DLRs, your application may consume failed delivery status code in the form of the 10DLC Delivery Hub’s SMPP Responses.
Missing DLR
If you’ve requested a DLR and have not received one, this likely indicates that the carrier never sent one to Convey. While DLR are never 100% guaranteed by any carrier, failure to receive a DLR may indicate that the destination carrier does not support delivery receipts.
The following list is not exhaustive and may change at any time. These are the carriers who at this time do not support DLR:
- Pinger
- Enflick
- TextNow
- TextNow Wireless
- MetroPCS
- Royal St. Comm
- Onvoy Spectrum
- NSR
- Google (Grand Central)
- BWI
- Bandwidth
Requesting DLRs
Aerialink
Most DLRs must be requested at the time that your outbound (MT) message is submitted via API or the Send a Message function of the Aerialink Platform portal. The DLR will then be delivered in the form of an inbound (MO) message to the URL that you specify in your account configuration (and are also visible via the Activity Report in the Aerialink Platform).
If the request type is “solicited,” a request must be submitted to receive DLR. If “unsolicited,” DLR is returned automatically.
| Sender | Message Type | Request Type |
|---|---|---|
| 10DLC | SMS | Solicited |
| 10DLC | MMS | Solicited |
| Toll-Free | SMS | Unsolicited |
| Toll-Free | MMS | Solicited |
| Short Code | SMS | Solicited |
| Short Code | MMS* | Solicited |
* Short Code MMS DLR not supported by Canadian carriers
SMS DLR Fields Returned
A DLR will include parameter fields, each with respective details about the outbound message. The fields are specified as follows:
| Parameter | Purpose |
|---|---|
| id | the corresponding message_ID/transactionGUID (unique message identifier) |
| sub | number of short messages originally submitted. The value may be padded with leading zeroes. |
| dlvrd | Number of short messages delivered. The value may be padded with leading zeroes. |
| submit date | the date/time the message was submitted. Time zone varies by the sending SMSC. Many time stamps are in UTC/GMT but time zone can vary depending on the SMSC and may not be indicated. |
| done date | the date/time the message reached its final destination. Time zone varies by the sending SMSC. Many time stamps are in UTC/GMT but time zone can vary depending on the SMSC and may not be indicated. |
| stat | message status - “DELIVRD” indicates that the carrier has confirmed delivery as successful at the latest point in the process for that traffic type |
| err | a network or SMSC error code for the message. Error codes are SMSC-specific. |
| text | the first twenty characters of the message. An unused field result will be blank. |
Review the list of Delivery Receipt Status and Error Codes The time zone and the inclusion or exclusion of seconds can vary depending on the SMSC and may not be indicated. Observation with an MT towards T-Mobile: stat:UNDELIV err:000 reason “handset not available on carrier network”, the Tmobile SMSC retried for ~72 hrs before coming to a final state. For the undelivered MT, they use the same date for submit and final done date. In conclusion, the use of the “submit date” may not be useful in the cases where carrier uses the same date.
Please note that the codes are separated by code type on the “sheet” (or tab) level within the spreadsheet. Ensure that you direct your attention to the appropriate tab when searching for the code.
TLV DLRs
Most major carriers will return the value of DLRs in the Message Text field as an inbound message. However, some carriers - most notably U.S. Cellular - return the DLR information in another way. U.S. Cellular returns their DLR data in the TLV tag, directly after the tag number 0x0427. Below are the possible TLV DLR values provided by U.S. Cellular.
| Tag | Stat |
|---|---|
| 0x01 | ENROUTE |
| 0x02 | DELIVRD |
| 0x03 | EXPIRED |
| 0x04 | DELETED |
| 0x05 | UNDELIV |
| 0x06 | ACCEPTD |
| 0x07 | UNKNOWN |
| 0x08 | REJECTD |
Comments
0 comments
Article is closed for comments.