Skip Headers
Oracle® Communications Services Gatekeeper OneAPI Application Developer's Guide
Release 5.0.0.1

Part Number E24006-01
Go to Documentation Home
Home
Go to Book List
Book List
Go to Table of Contents
Contents
Go to Feedback page
Contact Us

Go to previous page
Previous
Go to next page
Next
View PDF

4 OneAPI Multimedia Messaging

This chapter describes OneAPI Multimedia Messaging (MMS) operations supported by the RESTful Facade provided in Oracle Communications Services Gatekeeper.

About the OneAPI Multimedia Messaging Interface

Applications use the RESTful OneAPI MMS interface to send MMSs, to fetch MMSs and delivery status reports, and to start and stop notifications.

When the request body for an MMS operation contains a request for a delivery receipt, the application provides a notifyURL correlator for the message being sent and includes an endpoint address for returning the delivery notification.

The Services Gatekeeper OneAPI MMS interface complies with Open Mobile Alliance (OMA) specifications. For more information on OMA, see:

http://www.openmobilealliance.org/Technical/release_program/docs/CopyrightClick.aspx?pck=ParlayREST&file=V2_0-20110111-C/OMA-TS-ParlayREST_OneAPIProfile-V2_0-20110111-C.pdf

The information provided in this document is based on the OneAPI specification and is provided here for convenience.

REST Service Descriptions Available at Run-time

When the Administration Server for your Services Gatekeeper domain is in the running state, the REST service descriptions of these operations can be found at

http://host:port/oneapi/1/messaging/application.wadl

where host and port are the host name and port of the machine on which the Services Gatekeeper Access Tier is installed.


Sending MMS Messages

To send a MMS message, provide the OneAPI-formatted URI of the addresses which must receive the message in the request body. If the sender requires a delivery receipt, specify the required parameters for the receipt.

If the Send MMS operation is successful, the response will contain the request identifier in the response body for this operation).

If the application requires a receipt for delivery of the message, the application can provide the notifyURL in the message body, to which notifications are to be sent.

Authorization

Basic or OAuth 2.0

HTTP Method

POST

URI

http://host:port/oneapi/1/messaging/outbound/senderAddress/requests

where:

Request Header

The MIME-type for the Content-Type header field is multipart/form-data.

Request Body

The request body for the OneAPI Send MMS operation accepts the following parameters:

Response Header

The Location header field contains the URI:

http://host:port/oneapi/1/messaging/outbound/senderAddress/requests/requestID

where requestID is the string identifier returned in the response body.

If the request fails, the Status-Line header field will contain the status code and the reason for the failure. See "Errors and Exceptions" for more information.

Response Body

The body of the response contains the request identifier as the string value for the resourceReference attribute. It is the request identifier returned in the Location header field of the response message. The application uses this request identifier to retrieve the delivery status for the sent message.

The response body for this operation is represented by the following JSON structure, where the value part of the name/value pair indicates its data type:

{"resourceReference": {"resourceURL": "URL"}}

Examples

Example 4-1 shows a sample of a OneAPI Send MMS request.

Example 4-1 OneAPI Send MMS Request

POST http://example.com/oneapi/1/messaging/outbound/tel%3A%2B5550102/requests
HTTP/1.1
Content-Length: 12345
Content-Type: multipart/form-data;
                     boundary="===============123456==";
    
MIME-Version: 1.0
Host: www.example.com
Date: Thu, 04 Jun 2009 02:51:59 GMT
 
--===============123456==
Content-Disposition: form-data; name=”root-fields”
Content-Type: application/x-www-form-urlencoded;
address=tel%3A%2B15415550100&
address=tel%3A%2B15415550101&
senderAddress=tel:%2B5550102&
&senderName=ExampleCompany
Subject=My%20message&
notifyURL=http://example-application.com/notifications/DeliveryInfoNotification/54311
&callbackData=
&clientCorrelator=123456
--===============123456==
Content-Disposition: form-data; name=”attachments”; filename=”picture.jpg”
Content-Type: image/gif
 
GIF89a...binary image data...
--===============123456==

Example 4-2 shows a sample of a OneAPI Send MMS response.

Example 4-2 OneAPI Send MMS Response

HTTP/1.1 201 Created
Content-Type: application/json
Location: http://example.com/oneapi/1/messaging/outbound/ tel%3A%2B5550102/requests/abc123
Content-Length: 12345
Date: Thu, 04 Jun 2009 02:51:59 GMT
 
{"resourceReference": {"resourceURL": " http://example.com/1/messaging/outbound/ tel%3A%2B5550102/requests/abc123"}}

Query Delivery Status of MMS Message

The Query Delivery Status operation retrieves the delivery status of a message that was previously sent using the system-generated requestID returned when the message was created.

If the Query Delivery Status is successful, the response body will contain the delivery status for each of the addresses contained in the original send MMS request.

Authorization

Basic or OAuth 2.0

HTTP Method

GET

URI

http://host:port/oneapi/1/messaging/outbound/senderAddress/requests/requestID/deliveryInfos

where:

Request Body

There is no request body.

Response Header

Standard header fields. If the request fails, the Status-Line header field will contain the status code and the reason for the failure. See "Errors and Exceptions" for more information.

Response Body

The response body contains an array of structures as the value for deliveryInfo. Each element in the array contains values for the following parameters.

A resourceURL is included as a reference to the response.

The response body for this operation is represented by the following JSON data structure, where the value part of each name/value pair indicates its data type:

{"deliveryInfoList": {
    "deliveryInfo": [
        {   "address": "String",
            "deliveryStatus": "String"},
        {   "address": "String",
            "deliveryStatus": "String"}],
    "resourceURL": " http://example.com/oneapi/1/messaging/outbound/senderAddress/requests/requestID/deliveryInfos"
}}

Examples

Example 4-3 shows a sample of a OneAPI Query Delivery Status request.

Example 4-3 OneAPI Query Delivery Status Request

GET http://example.com/oneapi/1/messaging/outbound/tel%3A%2B5550100/requests/abc123/deliveryInfos HTTP/1.1
Accept: application/json
Host: example.com:80

Example 4-4 shows a sample of a OneAPI Query Delivery Status response.

Example 4-4 OneAPI Query Delivery Status Response

HTTP/1.1 200 OK
Content-Type: application/json
Date: Thu, 04 Jun 2009 02:51:59 GMT
 
{"deliveryInfoList": {
    "deliveryInfo": [
        {
            "address": "tel:15415550101",
            "deliveryStatus": "MessageWaiting"
        },
        {
            "address": "tel:15415550102",
            "deliveryStatus": "MessageWaiting"
        }
    ],
    "resourceURL": " http://example.com/oneapi/1/messaging/outbound/tel%3A%2B5550100/requests/abc123/deliveryInfos"
}}

Subscribe to MMS Delivery Notification

The Subscribe to MMS Delivery Notification operation creates a subscription to delivery notifications for an application.

To set up a MMS notification, provide a notifyURL for the delivery of the notifications. The request body contains the correlator for the notification, the notifyURL to which the call direction notifications must be sent and, optionally, the callbackData (a string to identify the notification).

If the subscription request is successful:

Authorization

Basic or OAuth 2.0

HTTP Method

POST

URI

http://host:port/oneapi/1/messaging/outbound/senderAddress/subscriptions

where:

Request Header

The MIME-type for the Content-Type header field is application/x-www-form-urlencoded or application/json.

Request Body

The request body for the subscription operation accepts the following parameters:

Response Header

The Location header field contains the URI of the publish/subscribe server:

http://host:port/oneapi/1/messaging/outbound/subscriptions/subscriptionID

where:

If the request fails, the Status-Line header field will contain the status code and the reason for the failure. See "Errors and Exceptions" for more information.

Response Body

The response body contains a confirmation deliveryReceiptSubscription JSON data structure consisting of the parameters supplied in the subscription request.

{"deliveryReceiptSubscription": {
    "callbackReference": {
        "callbackData": "String",
        "notifyURL": " www.yourURL.here ",
    },
    "resourceURL": " URL "}}
    

A resourceURL is included as a reference to the response.

Notification Data Object for MMS Delivery Receipt Sent to notifyURL

After a OneAPI MMS subscription is made, Services Gatekeeper delivers a message receipt notification to the notifyURL specified in the subscription request.

This nested JSON object contains the following as the value of the attribute name deliveryInfoList:

The notification data object delivered to the notifyURL address is represented by the following JSON data structure, where the value part of each name/value pair indicates its data type:

{"deliveryInfoList": {
    "deliveryInfo": [
        {  "address": "String"
           "deliveryStatus": "String"},
    ],
    "link": {
        "href":   "URL",
        "rel": "String"
    },
    "resourceURL":"URL"
    }}

Examples

Example 4-5 shows a sample of a OneAPI Subscribe to MMS Delivery Notifications request.

Example 4-5 OneAPI Subscribe to MMS Delivery Notifications Request

POST http://example.com/oneapi/1/messaging/outbound/tel%3A%2B5550100/subscriptions HTTP/1.1
Accept: application/json
Content-Type: application/json; charset=UTF-8
Host: example.com:80
 
{"deliveryReceiptSubscription": {
    "callbackReference": {
        "callbackData": " doSomething()",
        "notifyURL": "http://www.oracle.com"
    }
}}

Example 4-6 shows a sample of a OneAPI Subscribe to MMS Delivery Notifications response.

Example 4-6 OneAPI Subscribe to MMS Delivery Notifications Response

HTTP/1.1 201 Created
Content-Type: application/json
Location: http://example.com/oneapi/1/messaging/outbound/subscriptions/sub789
Date: Thu, 04 Jun 2009 02:51:59 GMT
 
{"deliveryReceiptSubscription": {
    "callbackReference": {
        "callbackData": "doSomething()",
        "notifyURL": " www.oracle.com "
    },
    "resourceURL": " http://example.com/oneapi/1/messaging/outbound/subscriptions/sub789"}}

Example 4-7 shows a sample of a OneAPI MMS Delivery Notification Message.

Example 4-7 OneAPI MMS Delivery Notification Message

{"deliveryInfoList": {
    "deliveryInfo": [
        {  "address": "tel:15415550101",
           "deliveryStatus": "DeliveredToTerminal"},
        {   "address": "tel:15415550102",
            "deliveryStatus": "DeliveredToTerminal"}
    ],
    "link": {
        "href":   "http://example.com/oneapi/1/messaging/outbound/tel%3A%2B5550100/requests/{requestId)",
        "rel": "OutboundMessageRequest"
    },
    "resourceURL": http://example.com/oneapi/1/messaging/outbound/tel%3A%2B5550100/requests/req123/DeliveryInfos
 }}

Stop Subscription to Delivery Notifications

The Stop Subscription to Delivery Notification operation terminates a previously set up MMS notification for the application.

To stop a previously set up MMS notification, provide the correlator for the notification passed earlier in the Subscribe to MMS Delivery Notification request.

There is no request or response body for the Stop Subscription to Delivery Notification operation. If the request fails, the body of the error response will contain the identifier for the notification and the type of exception.

Authorization

Basic or OAuth 2.0

HTTP Method

DELETE

URI

http://host:port/oneapi/1/messaging/outbound/subscriptions/subscriptionID

where:

Request Body

There is no request body.

Response Header

Standard header fields. If the request fails, the Status-Line header field will contain the status code and the reason for the failure. See "Errors and Exceptions" for more information.

Response Body

There is no response body.

Examples

Example 4-8 shows a sample of a OneAPI Stop Subscription to Delivery Notification request.

Example 4-8 OneAPI Stop Subscription to Deliver Notification Request

DELETE http://example.com/oneapi/1/messaging/outbound/subscriptions/sub789 HTTP/1.1
Accept: application/json
Host: example.com:80

Example 4-9 shows a sample of a OneAPI Stop Subscription to Delivery Notification response.

Example 4-9 OneAPI Stop Subscription to Deliver Notification Response

HTTP/1.1 204 No Content 
Date: Thu, 04 Jun 2009 02:51:59 GMT

Retrieve Messages Sent to Web Application

The OneAPI Retrieve Messages Sent to Web Application operation polls Services Gatekeeper for the MMSs that have been received from the network for an application.

The request header for the Retrieve Messages Sent to Web application operation contains the registration identifier necessary to retrieve the MMSs intended for the application. This registration value should have been set up with the off-line provisioning step that enables the application to receive notification that MMSs were received.

There is no request body.

If the Retrieve Messages Sent to Web Application operation is successful, the response body will contain the message, the URI of the sender, the MMS service activation number, and the date and time when the message was sent.

Authorization

Basic or OAuth 2.0

HTTP Method

GET

URI

http://host:port/oneapi/1/messaging/inbound/registrations/registrationID/messages?maxBatchSize=?

where:

Request Header

The MIME-type for the Content-Type header field is application/x-www-form-urlencoded or application/json.

Request Body

There is no request body.

Response Header

Standard header fields. If the request fails, the Status-Line header field will contain the status code and the reason for the failure. See "Errors and Exceptions" for more information.

Response Body

The response body is an inboundMessageList containing an array of structures as the value for inboundMessage. The response body also contains the following parameters:

The response body for this operation is represented by the following JSON data structure, where the value part of each name/value pair indicates its data type:

"inboundMessage": [
        {   "dateTime": "dateTime",
            "destinationAddress": "String",
            "messageId": "String",
            "inboundMMSMessage": "String",
            "resourceURL": "URL",
            "senderAddress": "String"},

Retrieving Full Messages

If an application needs to retrieve an entire MMS message, a separate GET operation is required. Use the following operation to retrieve a full message, specifying the messageID from the inboundMessageList.

URI

http://host:port/oneapi/1/messaging/inbound/registrations/registrationID/messages/messageID?resFormat=JSON

where:

Request Header

The resFormat=JSON portion of the URI ensures that the response content-type is JSON.

Request Body

There is no request body.

Response Header

Standard header fields. If the request fails, the Status-Line header field will contain the status code and the reason for the failure. See "Errors and Exceptions" for more information.

Response Body

The response body is an inboundMessageList containing an array of structures as the value for inboundMessage. The response body also contains the following parameters:

The response body for this operation is represented by the following JSON data structure, where the value part of each name/value pair indicates its data type:

"inboundMessage": [
        {   "dateTime": "dateTime",
            "destinationAddress": "String",
            "messageId": "String",
            "inboundMMSMessage": "String",
            "resourceURL": "URL",
            "senderAddress": "String"},

====Content Divider====

Attachment(s)

Examples

Example 4-10 shows a sample of a OneAPI Retrieve Messages request.

Example 4-10 OneAPI Retrieve Messages Request

GET http://example.com/oneapi/1/messaging/inbound/registrations/3456/messages?maxBatchSize=2  HTTP/1.1
Host: example.com:80
Accept: application/json

Example 4-11 shows a sample of a OneAPI Retrieve Messages response.

Example 4-11 OneAPI Retrieve Messages Response

HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 12345
Date: Thu, 04 Jun 2009 02:51:59 GMT
 
{"inboundMessageList": {
    "inboundMessage": [
        {   "dateTime": "2010-11-19T12:00:00",
            "destinationAddress": "6789",
            "inboundMMSMessage": {"subject": "Rock Festival 2010"},
            "messageId": "msg1",
            "resourceURL": "http://example.com/oneapi/1/messaging/inbound/registrations/3456/messages/msg1",
            "senderAddress": "tel:+5550100" },
        {   "dateTime": "2010-11-19T12:15:00",
            "destinationAddress": "6789",
            "inboundMMSMessage": {"subject": "London Marathon"},
            "messageId": "msg2”,
            "resourceURL": " http://example.com/oneapi/1/messaging/inbound/registrations/sub789/messages/msg2",
            "senderAddress": "tel:+5550101"
        }
    ],
    "numberOfMessagesInThisBatch": "2",
    "resourceURL": " http://example.com/1/messaging/inbound/registrations/3456/messages?maxBatchSize=2 ",
    "totalNumberOfPendingMessages": "20"
}}

Example 4-12 shows a sample of a OneAPI Retrieve Full Message request.

Example 4-12 OneAPI Retrieve Full Message Request

GET http://example.com/oneapi/1/messaging/inbound/registrations/3456/messages/msg1?resFormat=JSON HTTP/1.1
Host: example.com:80

Example 4-13 shows a sample of a OneAPI Retrieve Full Messages response.

Example 4-13 OneAPI Retrieve Full Message Response

HTTP/1.1 200 OK
Content-Type: multipart/form-data; boundary=”=====12345====”
Content-Length: 12345
Date: Thu, 04 Jun 2009 02:51:59 GMT
 
====12345====
Content-Disposition=multipart/form-data; name=”root-fields”
Content-Type=application/json
Content-Length: nnnn
{"inboundMessage": {
    "dateTime": "2010-11-19T12:00:00",
    "destinationAddress": "6789",
    "messageId": "msg1",
    "inboundMMSMessage": {"subject": Rock Festival 2010"},
    "resourceURL": " http://example.com/oneapi/1/messaging/inbound/registrations/3456/messages/msg1",
    "senderAddress": " tel:+5550100"
}}
 
 
====12345====
 
Content-Disposition: form-data; name=”attachments”
Content-Type: multipart/mixed; boundary=”====aaabbb”
====aaabbb
Content-Disposition:attachments;filename=”textBody.txt”;
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8 bit
 
Look at the attached picture
====aaabbb
Content-Disposition:attachments;filename=”image1.gif”;
Content-Type: image/gif
MIME-Version: 1.0
Content-ID: <99334422@example.com>
 
GIF89a...binary image data...
====12345====

Subscribe to Notifications of Messages Sent to Application

The Subscribe to Notifications Sent to Application operation creates a subscription to delivery notifications for when an application receives a message.

To set up an application notification, provide the destinationAddress which will trigger notifications and a notifyURL for the delivery of the notifications. The destinationAddress is the MSISDN, or code set up in Services Gatekeeper, to which subscribers may send an MMS to your application.

If the subscription request is successful:

Authorization

Basic or OAuth 2.0

HTTP Method

POST

URI

http://host:port/oneapi/1/messaging/inbound/subscriptions

where:

Request Header

The MIME-type for the Content-Type header field is application/json or application/x-www-form-urlencoded.

Request Body

The request body for the subscription operation accepts the following parameters:

Response Header

The Location header field contains the URI of the publish/subscribe server:

http://host:port/oneapi/1/messaging/inbound/subscriptions/subscriptionID

where:

If the request fails, the Status-Line header field will contain the status code and the reason for the failure. See "Errors and Exceptions" for more information.

Response Body

The response body contains a confirmation resourceReference JSON data structure consisting of the parameters supplied in the subscription request.

{"resourceReference": {"resourceURL": "URL"}}

The resourceURL indicates the URI of the newly created subscription.

Notification Data Object for Application Notification Message Sent to notifyURL

After a OneAPI Application Notification subscription is made, Services Gatekeeper will deliver a message receipt notification to the specified notifyURL in the subscription request for every MMS received. If callbackData was provided in the subscription request, the notification will contain this information.

This nested JSON object contains the following parameters as the value of the attribute name inboundMMSMessageNotification:

The notification data object delivered to the notifyURL address is represented by the following JSON data structure, where the value part of each name/value pair indicates its data type:

{"inboundMessageNotification": {
    "callbackData": "String",
    "inboundMMSMessage": {
        "destinationAddress": "String",
        "messageId": "String",
        "inboundMMSMessage": "String",
        "link": {
        "href": "String",
        "rel": "String",
        "resourceURL": "String",
        "senderAddress": "String"
    }
}}  

Examples

Example 4-14 shows a sample of a OneAPI Subscribe to Notifications of Messages Sent to Applications request.

Example 4-14 OneAPI Subscribe to Notifications of Messages Sent to Applications Request

POST http://example.com/oneapi/1/messaging/inbound/subscriptions HTTP/1.1
Host: example.com:80
Content-Type: application/x-www-form-urlencoded
Accept: application/json
 
destinationAddress=3456&
notifyURL=http://www.yoururl.here/notifications/DeliveryInfoNotification&
criteria=Vote&
notificationFormat=JSON&
callbackData=doSomething()&
clientCorrelator=12345

Example 4-15 shows a sample of a OneAPI Subscribe to Notifications of Messages Sent to Applications response.

Example 4-15 OneAPI Subscribe to Notifications of Messages Sent to Application Response

HTTP/1.1 201 Created
Content-Type: application/json
Location: http://example.com/oneapi/1/messaging/inbound/subscriptions/sub123
Content-Length: 254
Date: Thu, 04 Jun 2009 02:51:59 GMT
 
{"resourceReference": {"resourceURL": " http://example.com/oneapi/1/messaging/inbound/subscriptions/sub123”}}

Example 4-16 shows a sample of a OneAPI Application Notification Message.

Example 4-16 OneAPI Application Notification Message

{"inboundMessageNotification":
{"inboundMessage": {
    "destinationAddress": "tel:+1-555-0100",
    "messageId": "msg123",
    "inboundMMSMessage": {"subject": "That Chili Relleno was delicious?"},
    "link": {
        "href": "http://example.com/oneapi/1/messaging/inbound/subscriptions/sub123",
        "rel": "Subscription"
    },
    "resourceURL": "http://example.com/oneapi/1/
messaging/inbound/registrations/reg123/messages/msg123",
    "senderAddress": "tel:+5550101"
}}}

Stop Subscription to Application Message Notifications

The Stop Subscription to Application Message Notification operation terminates a previously set up subscription to an application message notification.

To stop a previously set up subscription, provide the correlator for the notification passed earlier in the Subscribe to Notifications of Messages Sent to Application request.

There is no request or response body for the Stop Subscription to Notifications of Messages Sent to Application operation. If the request fails, the body of the error response will contain the identifier for the notification and the type of exception.

Authorization

Basic or OAuth 2.0

HTTP Method

DELETE

URI

http://host:port/oneapi/1/messaging/inbound/subscriptions/subscriptionID

where:

Request Body

There is no request body.

Response Header

Standard header fields. If the request fails, the Status-Line header field will contain the status code and the reason for the failure. See "Errors and Exceptions" for more information.

Response Body

There is no response body.

Examples

Example 4-17 shows a sample of a OneAPI Stop Subscription to Notifications of Messages Sent to Application request.

Example 4-17 OneAPI Stop Subscription to Notifications of Messages Sent to Application Request

DELETE http://example.com/oneapi/1/messaging/inbound/subscriptions/sub123 HTTP/1.1
Accept: application/json
Host: example.com:80

Example 4-18 shows a sample of a OneAPI Stop Subscription to Notifications of Messages Sent to Application response.

Example 4-18 OneAPI Stop Subscription to Notifications of Messages Sent to Application Response

HTTP/1.1 204 No content
Accept: application/json
Date: Thu, 04 Jun 2009 02:51:59 GMT