Receive an MMS

OpenMarket delivers MMS messages to your platform using the MM7 Deliver operation.

Quick facts

Available

US, UK, Ireland, Australia.

Prerequisites

You must have MMS messaging provisioned with OpenMarket.

Supported versions

For this operation: 6.8, 6.1, 5.6, 5.3.

More information

See Overview.

Request from OpenMarket

Header fields

Copy

Example Header

POST /customerEndpoint HTTP/1.1
SOAPAction: ""
Content-Type: multipart/related; start="soap-start"; type="text/xml";
boundary="----=_Part_139078_1411587550.1397492135426"
User-Agent: OpenMarket
Host: 198.51.100.5
Content-Length: 2546
X-OpenMarket-Carrier-Id: 474
UAProf: Samsung Galaxy
Connection: Keep-Alive

Note that the header field UAProf is included only if the MM7 version is lower than version 6.8.

Field

Description

customerEndpoint Your endpoint or callback URL.

X-OpenMarket-Carrier-Id

An OpenMarket Supported Mobile Operators and Limitations.

Returned: Always.

UAProf

Also known as MMS User Agent capabilities.

If the MM7 version is 6.8, then this information is sent in the request body, rather than in the header.

Returned: Only when provided by the mobile operator.

Request body

SOAP envelope

The following is an example SOAP envelope for an MO MMS request.

------=_Part_139078_1411587550.1397492135426
Content-Type: text/xml
Content-ID: <soap-start> 
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ns1:Envelope xmlns:ns1="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns3="http://www.3gpp.org/ftp/Specs/archive/23_series/23.140/schema/REL-6-MM7-1-4">
   <ns1:Header>
      <ns3:TransactionID ns1:mustUnderstand="1">369171411769819136</ns3:TransactionID>
   </ns1:Header>
   <ns1:Body>
      <ns3:DeliverReq>
         <ns3:MM7Version>6.8.0</ns3:MM7Version>
         <ns3:LinkedID>369171411769819136</ns3:LinkedID>
         <ns3:Sender>
            <ns3:Number>12125550123</ns3:Number>
         </ns3:Sender>
         <ns3:Recipients>
            <ns3:To>
            <ns3:Number displayOnly="false">222111</ns3:Number>
            </ns3:To>
         </ns3:Recipients>
         <ns3:TimeStamp>2014-04-14T16:15:23.414Z</ns3:TimeStamp>
         <ns3:Priority>Normal</ns3:Priority>
         <ns3:Subject>ACME Rewards Voucher</ns3:Subject>
         <ns3:UACapabilities UAProf="Samsung Galaxy"/>					
         <ns3:Content href="cid:default.cid" allowAdaptations="true"/>
      </ns3:DeliverReq>
   </ns1:Body>
</ns1:Envelope>

Elements

Element

Description

TransactionID

Identifies the MM7_DeliverReq/MM7_DeliverRes pair. It is an OpenMarket-generated ID.

Returned: Always

DeliveryReq

Identifies the message as an MM7 deliver request.

Returned: Always

MM7Version

Identifies the version of the interface supported by OpenMarket.

Returned: Always

LinkedID

Identifier for the MO message. This is the same OpenMarket-generated ID that is returned in TransactionID.

Returned: Always

Sender

The mobile phone number of the end user. This is a mobile number in international format without a leading "+" character; for example: 12515550130 (US) and 447700900765 (UK).

Returned: Always

Recipients

The short code, the text-enabled toll-free number (US only), virtual mobile number VMN) or alphanumeric (UK only) of the message recipient.

OpenMarket sends only one recipient (To), which is the short code. The displayOnly attribute will be False.

Returned: Always

TimeStamp

The date and time of the submission of the multimedia message. OpenMarket provides this value in UTC.

Returned: Always

Priority

The priority (importance) of the message.

Possible values: High, Normal, Low

Returned: Only when provided by mobile operator

Subject

Title of the message.

Returned: Only when provided by mobile operator

Content

A reference to the content of the MM7 message. Contains an "href:cid" attribute that links to the content ID of the first attachment in the MM7 message.

Returned: Only when provided by mobile operator

UACapabilities

Also known as MMS User Agent capabilities. Information about the capabilities of the MMS user agent that originated the multimedia message.

In the MM7 specification, there is an associated timestamp; however, we do not included it in this request.

If the MM7 version is less than 6.8, OpenMarket adds the UACapabilities in the HTTP header called UAProf.

Returned: Only when provided by mobile operator

Example request including MIME parts

POST / HTTP/1.1
SOAPAction: ""
Content-Type: multipart/related; start="soap-start"; type="text/xml"; boundary="----=_Part_139078_1411587550.1397492135426"
User-Agent: OpenMarket
Host: 198.51.100.5
Content-Length: 2546
X-OpenMarket-Carrier-Id: 474
Connection: Keep-Alive 
------=_Part_139078_1411587550.1397492135426
Content-Type: text/xml
Content-ID: <soap-start> 
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ns1:Envelope xmlns:ns1="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns3="http://www.3gpp.org/ftp/Specs/archive/23_series/23.140/schema/REL-6-MM7-1-4">
   <ns1:Header>
      <ns3:TransactionID ns1:mustUnderstand="1">369171411769819136</ns3:TransactionID>
   </ns1:Header>
   <ns1:Body>
      <ns3:DeliverReq>
         <ns3:MM7Version>6.8.0</ns3:MM7Version>
         <ns3:LinkedID>369171411769819136</ns3:LinkedID>
         <ns3:Sender>
            <ns3:Number>12125550123</ns3:Number>
         </ns3:Sender>
         <ns3:Recipients>
            <ns3:To>
            <ns3:Number displayOnly="false">222111</ns3:Number>
            </ns3:To>
         </ns3:Recipients>
         <ns3:TimeStamp>2014-04-14T16:15:23.414Z</ns3:TimeStamp>
         <ns3:Priority>Normal</ns3:Priority>
         <ns3:Content href="cid:default.cid" allowAdaptations="true"/>
      </ns3:DeliverReq>
   </ns1:Body>
</ns1:Envelope>------=_Part_139078_1411587550.1397492135426
Content-Type: multipart/mixed; boundary="----=_Part_139079_1300104441.1397492135426"
Content-ID: <default.cid> 
------=_Part_139079_1300104441.1397492135426
Content-Type: image/jpeg
Content-Transfer-Encoding: binary
Content-ID: image_0.jpg 
<Binary contents>
------=_Part_139079_1300104441.1397492135426
Content-Type: text/plain
Content-Transfer-Encoding: binary
Content-ID: text_0.txt 
Test MO message!
------=_Part_139079_1300104441.1397492135426--
------=_Part_139078_1411587550.1397492135426--

Responding to the request

Your platform must reply with a response message, indicating that the message was successfully received and will be processed.

If you cannot identify the requested content or if the delivered content does not fulfill the conditions you'd expect, then your platform should indicate a failure in the MM7_deliver.RES status field.

Copy

Example Response

HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Content-Type: text/xml; charset=utf-8
Content-Length: 539
Date: Tue, 15 Apr 2014 14:03:32 GMT 
<?xml version="1.0" encoding="UTF-8" ?>
<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
   <soap-env:Header>
      <TransactionID soap-env:mustUnderstand="1">369171411769819136</TransactionID>
   </soap-env:Header>
   <soap-env:Body>
      <mm7:DeliverRsp xmlns:mm7="http://www.3gpp.org/ftp/Specs/archive/23_series/23.140/schema/REL-6-MM7-1-4">
         <mm7:MM7Version>6.8.0</mm7:MM7Version>
         <mm7:Status>
            <mm7:StatusCode>1000</mm7:StatusCode>
            <mm7:StatusText>Successfully received MMS</mm7:StatusText>
         </mm7:Status>
      </mm7:DeliverRsp>
   </soap-env:Body>
</soap-env:Envelope>

Elements in the response

Element

Description

TransactionID

Identifies the MM7_Deliver.Req/MM7_Deliver.Res pair. It is part of the SOAP header. The value returned is the one provided in the request.

Required: Always

DeliveryRsp

Identifies the message as a MM7 Deliver Response. This is a root element.

Required: Always

MM7Version

Identifies the version of the interface supported by OpenMarket. This is the value that was passed in the request.

Required: Always

StatusCode

A code that indicates whether you received the MO message request successfully. The status code for successful deliver is 1000.

Required: Always

StatusText

Text description of the status code.

Required: Always

Testing your integration

OpenMarket provides an option for testing your integration with the production environment. See Testing Your MMS Integration.