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:

  • text
  • image
  • audio
  • video
  • vcard
  • file
  • content

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:

  • text
  • image
  • audio
  • video
  • vcard
  • file

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:

  • submitted
  • delivered
  • rejected
  • undeliverable

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.

Further Information