Understanding MMS Messaging
MMS (Multimedia Messaging Service) allows you to send multimedia content such as images, videos, audio, as well as longer text content than can be sent in a single SMS message. Messages are delivered via the mobile network without the need for the recipient to have a data or wifi connection.
There are many possible use-cases for MMS messaging, including marketing, political campaigns, promotions, and notifications.
Availability
The Vonage Messages API currently supports sending MMS messages in the US and Canada. US short codes, 10DLC numbers and SMS Enabled Toll Free Numbers are currently supported for sending MMS. For US short codes, MMS messages can be sent to AT&T, T-Mobile (previously Sprint), and Verizon networks in the US. Message throughput, deliverability, and SMS message volumes may vary depending on the type of number used.
10DLC
To send MMS messages via 10-digit long codes in the US, you will need to register the number with a 10DLC Brand and Campaign. See this document to find out more about setting up 10DLC numbers (note: the document references the SMS API, but the contents of the 10 DLC guidelines section also apply to the Messages API).
Messaging Capabilities
The Messages API MMS channel supports both outbound messaging (messages sent from the business to the customer) and inbound messaging (messages sent from the customer to the business, in response to an outbound message). Within both of these categories, there are several different types of messages that exist.
Outbound Message Types
There are seven outbound message types:
textimageaudiovideovcardfilecontent
All message types except for text can include a media or file attachment. The image, audio, video, vcard, and file types can include a single attachment of a specific type; the content message type can include multiple attachments of any type. All attachment files must be specified in the API payload via a publicly accessible URL.
Inbound Message Types
There are six inbound message types:
textimageaudiovideovcardfile
All message types except for text can include one or more media or file attachments. The primary attachment will be of a type specified by the message type. Any additional attachments can be of any type. Attachments are accessed via (a) URL(s) specified in the inbound message webhook payload.
Status Webhook
In addition to outbound and inbound messages, the MMS channel provides status messages via a webhook. These messages are triggered by changes in the delivery status of an outbound message. The available statuses for outbound messages are:
submitteddeliveredrejectedundeliverable
Further details of outbound and inbound messages, and the status webhook, can be found in the Messages API specification.
Technical Specifications
Full details of authentication, JSON payload properties, responses, and errors for the various outbound and inbound RCS message types, as well as status messages, are contained in Messages API specification.
There are some other technical details to be aware of, these are detailed below.
Supported Media Types
For the message types, which can include media, such as images, videos, and files, the following media types are supported:
| Media Type | MIME Type | File Extension |
|---|---|---|
| Image | image/png | .png |
| Image | image/jpeg | .jpg/.jpeg |
| Image | image/gif | .gif |
| Image | image/bmp | .bmp |
| Audio | audio/amr | .amr |
| Audio | audio/midi | .midi/.mid |
| Audio | audio/wav | .wav |
| Audio | audio/ac3 | .ac3 |
| Audio | audio/mp3 | .mp3 |
| Video | video/3pg | .3pg |
| Video | video/mp4 | .mp4 |
| Video | video/avi | .avi |
| Video | video/mpg | .mpg |
| vCard | text/vcard | .vcard/.vcf |
| vCard | text/x-vcard | .vcard/.vcf |
Message and Media Sizes
There are a few size limits and guidelines to be aware of for messages and media.
- Text character limitation:
- 1600 characters in the text field of a text message type
- 300 characters in the caption field of other MMS message types
- File size recommendations
- Up to 200KB: Optimize delivery. Avoid delivery lag and compression.
- Up to 600KB: Widest support. Avoid rejections or non-delivery.
- 1MB: IMI short codes only. May result in significant processing and delivery delays and/or compression and reduced quality of the original file.
TTL
TTL is Time-To-Live, or how long a message should exist before it is delivered successfully. If it is not delivered successfully within the TTL time, the message is considered expired and will be rejected if TTL is supported.
TTL is set as a numeric value in seconds in the ttl parameter of the JSON payload. For MMS, the minimum ttl value is 300 seconds (5 minutes), and the maximum is 259200 (or 3 days).
If the TTL value is exceeded, then the message is given a status of rejected. A Message Status webhook will be sent advising of this status change and will contain error details for error code 1360.