MM7 MMS
Things to Know
- Where to find the MM7 schema
- MM7 specific terms to know
- Matching namespaces
- Supported MM7 message types
- MM7 and SOAP standards and encoding
- Using HTTP POST to transport MMS messages
- Connecting to OpenMarket
- Authenticating
- Flow for sending an MT MMS and receiving a delivery report
- Flow for receiving an MO MMS delivery
Where to find the MM7 schema
The MMS XML schema defines the elements used to format and validate the request and responses used to submit and deliver multimedia messages through OpenMarket. See the 3GPP MMS Technical Specification for details about the MMS XML schema.
MM7 specific terms to know
MM7 Term |
Description |
---|---|
Value Added Service (VAS) |
Represents a service that delivers digital content. When sending requests through OpenMarket, you must set the VAS field to the MT configuration through which the message is sent. |
Value Added Service Provider (VASP) |
The business that offers a digital product or service to end users is referred to as the VASP. In OpenMarket, your business is the VASP, and your OpneMarket account ID correlates to the VASP ID. |
MMS Service Center (MMSC) |
The MMSC is generally the system responsible for receiving, storing, and forwarding MMS messages, and in addition it may perform device detection and content adaptation (transcoding). The OpenMarket MMS platform forwards the MT messages you submit to the mobile operator's MMSC, which in turn sends MOs and delivery reports to OpenMarket. |
VAS error |
An error sent from the VASP to the MMSC. |
RS (relay server) error |
An error sent from the MMSC to a VASP via OpenMarket. |
Matching namespaces
In the submit request MT, the namespace you supply must match a supported namespace.
If the namespace is supported, ensure that the request is valid per the specification for that version.
If the request is valid and OpenMarket is able to process it, respond with a submit response. The submit response will use the version specified within the MM7Version parameter.
Supported MM7 message types
Message type |
Description |
---|---|
Submit Request |
This is used to submit an MT message to OpenMarket. |
Submit Response |
This is the response from OpenMarket to your MT message request. |
Deliver Request (MO) |
This is used to deliver an MO message to your platform. |
Deliver Response |
This is the response from your platform after receiving an MO message request. |
Delivery Report (DLR) request |
This is a delivery report request sent by OpenMarket to your platform |
Delivery response |
This is the response from your platform after receiving a delivery report. |
RS_error response |
Error sent from OpenMarket to your platform. |
VASP_error response |
Error sent from your platform to OpenMarket. |
MM7 and SOAP standards and encoding
MM7 standards compliance
OpenMarket's MMS messaging platform uses the standard MM7 interface with the SOAP 1.1 protocol from the 3GPP TS 23.140 specification. The standard, managed by the 3GPP consortium, describes how multimedia messages are routed through an MMS Relay/Server system.
The MMS Relay/Server, also referred to as the MMSC, routes the request and response for multimedia messaging between the originator and recipient, and performs other services such as storing multimedia messages for delivery, generating delivery reports, and reporting errors to the multimedia message originator.
OpenMarket MMS is based on version 5.3.0 of the 3GPP standard, but supports up to version 6.8.0.
SOAP standards compliance
You must use SOAP 1.1 as the application layer protocol between the Value Added Service Provider (VASP) and the OpenMarket MMS when sending and receiving messages. The multimedia message is contained in a SOAP message sent using the HTTP POST method. The SOAP header contains the routing information, while the SOAP body contains the multimedia content usually as a multi-part message.
SOAP message format and encoding principles
The MM7 interface's use of SOAP follows these principles:
- SOAP is carried over HTTP 1.0/1.1.
- The MM7 SOAP message consists of a SOAP envelope, SOAP Header element, and SOAP Body element.
- The SOAP EncodingStyle is not used.
- The TransactionID is included as a SOAP Header entry.
- The SOAP actor attribute is not specified in the SOAP Header entry.
- All MM7 information elements, with the exception of the Transaction ID, are included as part of the SOAP Body.
Unsupported SOAP elements in submit requests
The following SOAP elements are not supported by OpenMarket.
OpenMarket does not validate these elements. In a future release, transactions that include such elements may be rejected with an error.
The elements are:
ApplicID AuxApplicInfo ChargedPartyId ContentClass DeliveryCondition DistributionIndicator DRMContent EarliestDeliveryTime ExpiryDate LinkedID* |
MessageClass Priority ReadCharging ReadReply ReplyApplicID replyChargingSize (attribute of ReplyCharging element) replyDeadline ServiceCode TimeStamp |
*(LinkedID is unsupported for MT message delivery and delivery reports. However, MO MMS deliveries will contain this element.)
Using HTTP POST to transport MMS messages
When sending and receiving MMS messages, you must use HTTP POST and SOAP 1.1 as the transport protocol. Each operation must begin with a HTTP POST. This applies to both MT messages from your platform to OpenMarket, and MO messages from OpenMarket to your platform. Upon receiving the POST, the recipient replies with an HTTP response.
The SOAP header contains the routing information, and the SOAP body contains the multimedia content (a "multipart/related" Content-Type). The SOAP envelope is the first part of the MIME message, and is indicated by the Start parameter of the multipart/related Content-Type. The media type "text/xml" is used for messages containing only the SOAP envelope.
For transport via HTTP, the content must be provided as attachments in their native formats in a multipart MIME structure. The MIME part has the appropriate content type(s) to identify the payload. If a SOAP attachment is included, it is encoded as a MIME part and is the second part of the HTTP POST message. The use of multipart/related MIME media type (RFC 2387) and the URI schemas discussed in RFC 2111 and 2557 for referencing MIME parts are used by the sending application to package the contents. The receiving application must be able to process SOAP messages with attachments.
Multipart related MIME part has two MIME headers: Content-Type and Content-ID fields. The Content-ID is referenced by the MM7 request Content element.
The MM7 and 3GPP specifications, and specifically the SOAP Messages with Attachments standard, prescribe how message contents are transported using HTTP. The SOAP message binds to the HTTP request/response by providing SOAP request parameters in the body of the HTTP POST request, and the SOAP response in the body of the corresponding HTTP response.
Connecting to OpenMarket
For most customer scenarios, the simplest HTTPS endpoint to use to reach our data centers is:
https://mms.openmarket.com/api/mm7
Requests submitted to this endpoint are routed to the closest data center. If the data center becomes unavailable then messages are automatically routed to the next closest data center. This provides your service with a high available data strategy without requiring additional setup. However, you will need to ensure that your systems only cache the DNS lookup for up to one minute.
Customers who have services that will require high throughput or high availability can connect directly to the data centers.
For data center one:
https://mmsc-01.openmarket.com
https://mmsc-02.openmarket.com
For data center two:
https://mmsc-03.openmarket.com
https://mmsc-04.openmarket.com
If desired, you can establish parallel connections to the data center using these connections.
Authenticating
To authenticate with OpenMarket, include your OpenMarket account ID and password in the request header using Basic authentication.
In the SOAP envelope, you'll also need to include two IDs, which we send to the mobile operators so that they can identify your service. These are the VASP ID and VAS ID, and combined they are referred to as a VASP Profile. The IDs are:
- VAS ID — the MT configuration you are using
- VASP ID — your OpenMarket account ID
Flow for sending an MT MMS and receiving a delivery report
The following shows how to successfully send an MT MMS and receive delivery reports back from OpenMarket.
Steps:
- Your system sends an MM7 Submit request for the MT MMS message.
You must use HTTP POST and SOAP 1.1 as the transport protocol. Each request begins with a HTTP POST containing the information for delivery to OpenMarket for MT messages. - OpenMarket sends back an MM7 Submit response. The response body includes a messageId, which uniquely identifies the MMS message in our systems.
- OpenMarket delivers the message to the mobile operator.
- After delivering the message successfully, the mobile operator returns a delivery report.
Note that sometimes we may not receive a report back, even when the end user's handset successfully received the message. - OpenMarket sends a delivery report to your system, with the messageId in the request body and a delivery report status element that confirms successful (or unsuccessful) message delivery.
- Your system sends back a received Delivery Report response. The response status element should indicate that you have successfully received the delivery report.
Flow for receiving an MO MMS delivery
The following shows how to successfully receive an MO MMS from OpenMarket.
Steps:
- The mobile operator delivers an MMS message for your short code (US and UK), toll-free, text-enabled number (US only), or virtual mobile number (UK only).
- OpenMarket sends an MM7 Deliver request to your system.
- Your system sends back an MM7 Deliver response. The response status element should indicate that you have successfully received the Deliver request.