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

3 OneAPI Short Messaging

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

About the OneAPI Short Messaging Interface

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

When the request body for an SMS 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 SMS 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 chapter 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 OneAPI REST service descriptions of these operations can be found at:

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

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


Sending SMS Messages

To send an SMS message, provide the OneAPI-formatted URI of the addresses that 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 SMS operation is successful, the Location header field in the response will contain the request identifier (which is also provided in the response body for this operation).

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

Authorization

Basic or OAuth 2.0

HTTP Method

POST

URI

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

where host and port are the host name and port of the machine on which Services Gatekeeper is installed. The senderAddress is the subscriber for which the message is being sent.

Request Header

The MIME-type for the Content-Type header field can be application/x-www-form-urlencoded, application/json or application/xml.

Request Body

The request body for the OneAPI send SMS operation accepts the following parameters:

Response Header

The Location header field contains the URI:

http://host:port/oneapi/1/smsmessaging/outbound/address/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 and is also included in the resourceReference body. 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": "String"}}

Examples

Example 3-1 shows a sample OneAPI Send SMS request.

Example 3-1 OneAPI Send SMS Request

POST http://example.com/oneapi/1/smsmessaging/outbound/tel%3A%2B5550100/requests HTTP/1.1
Host: example.com:80
Content-Type: application/x-www-form-urlencoded
Accept: application/json
 
address=tel%3A%2B15415550100&
address=tel%3A %2B15415550101&
senderAddress=tel:%2B5550100&
message=Hello%20World&
clientCorrelator=123456&
notifyURL=http://application.example.com/notifications/DeliveryInfoNotification&
callbackData=some-data-useful-to-the-requester&
senderName=ACME%20Inc.

Example 3-2 shows a sample Send SMS response.

Example 3-2 OneAPI Send SMS Response

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

Query Delivery Status of SMS Message

The Query Delivery Status operation retrieves the delivery status of a message (that was previously sent) by 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 SMS request.

Authorization

Basic or OAuth 2.0

HTTP Method

GET

URI

http://host:port/oneapi/1/smsmessaging/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/smsmessaging/outbound/senderAddress/requests/requestID/deliveryInfos"
}}

Examples

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

Example 3-3 OneAPI Query Delivery Status Request

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

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

Example 3-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:+15415550100",
            "deliveryStatus": "MessageWaiting"},
        {   "address": "tel:+15415550101",
            "deliveryStatus": "MessageWaiting"}],
    "resourceURL": " http://example.com/oneapi/1/smsmessaging/outbound/tel%3A%2B5550100/requests/abc123/deliveryInfos "
}}

Subscribe to SMS Delivery Notification

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

To set up an SMS notification, provide the criteria which will trigger notifications and a notifyURL for the delivery of the notifications. The criteria can be a string which, when matched, could be the notification of an SMS received or of a delivery receipt.

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/smsmessaging/outbound/senderAddress/subscriptions

where:

Request Header

The MIME-type for the Content-Type header field can be application/json, application/xml, 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 notification server:

http://host:port/oneapi/1/smsmessaging/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 ",
        "criteria":"String"
    },
    "resourceURL": " URL "}}
    

A resourceURL is included as a reference to the response.

Notification Data Object for SMS Delivery Receipt Sent to notifyURL

After a OneAPI SMS 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 deliveryInfoNotification:

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:

{"deliveryInfoNotification": {
    "callbackData": "String",
    "deliveryInfo": {
        "address": "String",
        "deliveryStatus": "Enumeration Value"},
    }}

Examples

Example 3-5 shows a sample OneAPI Subscribe to SMS Delivery Notifications request.

Example 3-5 OneAPI Subscribe to SMS Delivery Notifications Request

POST http://example.com/oneapi/1/smsmessaging/outbound/ tel%3A%2B5550100/subscriptions HTTP/1.1
Host: example.com:80
Content-Type: application/x-www-form-urlencoded
Accept: application/json
 
notifyURL=http://www.oracle.com&
criteria="GIGPICS"&
callbackData=doSomething()

Example 3-6 shows a sample OneAPI Subscribe to SMS Delivery Notifications response.

Example 3-6 OneAPI Subscribe to SMS Delivery Notifications Response

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

Example 3-7 shows a sample OneAPI SMS Delivery Notification message.

Example 3-7 OneAPI SMS Delivery Notification Message

{"deliveryInfoNotification": {
    "callbackData": "12345",
    "deliveryInfo": {
        "address": "tel:+15415550100",
        "deliveryStatus": "DeliveredToNetwork"},
    }}

Stop Subscription to Delivery Notifications

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

To stop a previously set up SMS notification, provide the correlator for the notification passed earlier in the Subscribe to SMS 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/smsmessaging/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 3-8 shows a sample OneAPI Stop Subscription to SMS Delivery Notifications request.

Example 3-8 OneAPI Stop Subscription to Deliver Notification Request

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

Example 3-9 shows a sample OneAPI Stop Subscription to SMS Delivery Notifications response.

Example 3-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 SMSs that have been received from the network for an application.

The request header for the Retrieve Messages SMS operation contains the registration identifier necessary to retrieve the SMSs 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 SMSs have been 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 SMS 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/smsmessaging/inbound/registrations/registrationID/messages?maxBatchSize=X

where:

Request Header

The MIME-type for the accept header field is 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 inboundSMSMessageList containing an array of structures as the value for inboundSMSMessage. 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:

"inboundSMSMessage": [
        {   "dateTime": "dateTime",
            "destinationAddress": "String",
            "messageId": "String",
            "message": "String",
            "resourceURL": "URL",
            "senderAddress": "String"},

Examples

Example 3-10 shows a sample OneAPI Retrieve Messages request.

Example 3-10 OneAPI Retrieve Messages Request

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

Example 3-11 shows a sample OneAPI Retrieve Messages response.

Example 3-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
 
{"inboundSMSMessageList": {
    "inboundSMSMessage": [
        {   "dateTime": "2009-11-19T12:00:00",
            "destinationAddress": "3456",
            "messageId": "msg1",
            "message": "Let's Go Sharks!!",
            "resourceURL": "http://example.com/oneapi/1/smsmessaging/inbound/registrations/3456/messages/msg1",
            "senderAddress": "+15415550100"},
        {   "dateTime": "2009-11-19T12:00:00",
            "destinationAddress": "3456",
            "messageId": "msg2",
            "message": "Thorton Shoots! He Scores! Goal!",
            "resourceURL": " http://example.com/oneapi/1/smsmessaging/inbound/registrations/3456/messages/msg2",
            "senderAddress": "+15415550100"}
    ],    "numberOfMessagesInThisBatch": "2",
    "resourceURL": "http://example.com/oneapi/1/smsmessaging/inbound/registrations/3456/messages",
    "totalNumberOfPendingMessages": "20"}}

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 that 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 SMS to your application.

If the subscription request is successful:

Authorization

Basic or OAuth 2.0

HTTP Method

POST

URI

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

where:

Request Header

The MIME-type for the Content-Type header field is 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/smsmessaging/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.

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

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:

{"inboundSMSMessageNotification": {
    "callbackData": "String",
    "inboundSMSMessage": {
        "dateTime": "dateTime",
        "destinationAddress": "String",
        "messageId": "String",
        "message": "String",
        "senderAddress": "String"
    }
}}
  

Examples

Example 3-12 shows a sample OneAPI Subscribe to Notifications of Messages Sent to Applications request.

Example 3-12 OneAPI Subscribe to Notifications of Messages Sent to Applications Request

POST http://example.com/oneapi/1/smsmessaging/inbound/subscriptions HTTP/1.1Host: 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 3-13 shows a sample OneAPI Subscribe to Notifications of Messages Sent to Applications response.

Example 3-13 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/smsmessaging/inbound/subscriptions/sub678
Content-Length: 254
Date: Thu, 04 Jun 2009 02:51:59 GMT
 
{"resourceReference": {"resourceURL": "http://example.com/oneapi/1/smsmessaging/inbound/subscriptions/sub678"}}

Example 3-14 shows a sample OneAPI Application Notification Message.

Example 3-14 OneAPI Application Notification Message

{"inboundSMSMessageNotification": {
    "callbackData": "12345",
    "inboundSMSMessage": {
        "dateTime": "2009-11-19T12:00:00",
        "destinationAddress": "3456",
        "messageId": "mes1234",
        "message": "Vote for Mega Boy Band",
        "senderAddress": "+15415550100"
    }
}}

Stop Subscription to Application Message Notifications

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

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/smsmessaging/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 3-15 shows a sample OneAPI Stop Subscription to Notifications of Messages Sent to Application request.

Example 3-15 OneAPI Stop Subscription to Notifications of Messages Sent to Application Request

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

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

Example 3-16 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