Message ID updates
What’s happening?
Based on customer feedback, Bandwidth has updated the message id you receive when sending or receiving a message to match the message id populated in the Message Detailed Records (MDRs). Regardless of the protocol type you use, HTTP or SMPP/MM4, you can now look up your MDRs using message ids.
What do I need to know?
Here are the specific interface updates for enabling this feature in each of the scenarios:
HTTP interface
- Send Message
- The existing "message.id" parameter included in the "message-delivered" and "message-failed" callbacks from Bandwidth can be used to look up the MDR. This value is also returned in the response payload of "POST /messages" as an "id" parameter.
- There's no change to values sent in this parameter.
- Receive Message
- The existing "message.id" parameter included in the "message-received" callback from Bandwidth can be used to look up the MDR.
- Bandwidth will send a 36 character UUID, instead of existing unique id. Example: 55b10101-19ac-4c14-aa64-5e69633dac33
SMPP interface
- Send Message
- The existing “message_id field” included in the body of "submit_sm_resp" returned by Bandwidth in response to the "submit_sm" from the customer can be used to look up the MDR. This value is also returned in the “receipted_message_id TLV 0x1E” of “deliver_sm”, if DLR was requested.
- Segmented messages that previously used an id composed of source number and destination number, which could be non-unique, will also use a unique UUID. Bandwidth doesn't support the feature to search MDR by message id on segmented SMS messages sent by SMPP customers.
- Bandwidth shall send a 36 character UUID, instead of existing 10 character id. Example: 55b10101-19ac-4c14-aa64-5e69633dac33
MM4 interface
- Send Message:
- The existing “X-Internal-Message-ID” header field included in the "MM4_forward.RES" returned by Bandwidth in response to the "MM4_forward.REQ" from the customer can be used to look up the MDR.
- There's no change to values sent in this parameter.
- Receive Message
- A new “X-Internal-Message-ID” header field included in the "MM4_delivery_report.REQ" from Bandwidth can be used to look up the MDR.
There is one final consideration for MMS messages sent over both HTTP and/or MM4 interfaces. MMS messages support multiple destinations and can create multiple MDRs for every outgoing message. Hence, message ids in MDR are appended with the destination number.
Example: 15856804663604dopxlqteo6um4vv+19192720298. This is an existing behavior and not new.
What do I need to do?
If needed, please update your applications. Your applications should handle the change in character lengths of values returned in the existing fields. However, please note that:
- Bandwidth field values could also change lengths in the future. Such changes will be made within the HTTP, SMPP, and MM4 interface specifications.
- Customer applications should not make assumptions on the length of values returned by Bandwidth in their implementations, and instead follow specifications.
Also, in order to search MDRs of incoming SMPP and MM4 messages by id, the customer application would need to parse the newly added internal message id SMMP TLV and MM4 header fields.
Questions?
Please open a ticket with your Bandwidth Support Team or hit us up at (855) 864-7776!
Article is closed for comments.