# Application Development Guide

# Native Interfaces

This chapter describes the supported native interfaces and contains information that is specific for Oracle Communications Services Gatekeeper, and not found in the specifications. For detailed descriptions of the interfaces, methods and parameters, refer to the specifications.

- MM7
- SMPP

## MM7

The MM7 specification can be found at http://www.3gpp.org/ftp/Specs/html-info/23140.htm. Messages are compliant with the schema defined by Rel-5-MM7-1-2.xsd. Because the network-facing interface supports Rel-5-MM7-1-5.xsd, Rel-5-MM7-1-2.xsd and a modified version of REL-5-MM7-1-0.xsd, some mapping may be done during processing.

The endpoint for this interface is: http://<host>:<port>/mm7/Mms

where values for host and port depend on the Oracle Communications Services Gatekeeper deployment.

Note: | The MM7 facade uses HTTP basic authentication, username/password. The username is the application instance ID.

### MM7_submit

Sends an application-initiated multimedia message

Table 11-1 Error Codes
Error code | Reason/Action
--- | ---
4006 | Service unavailable. Communication error within Oracle Communications Services Gatekeeper or between Oracle Communications Services Gatekeeper and MMSC Transient error. The client should try again.
4007 | Service denied. The request was not allowed by policy. Contact Oracle Communications Services Gatekeeper administrator.
<all MMSC fault codes> | Passed along transparently Contact Oracle Communications Services Gatekeeper administrator.

### MM7_deliver

Oracle Communications Services Gatekeeper delivers a network-triggered message to the application, at an endpoint implemented by the application.

### MM7_cancel

Not supported.

### MM7_replace

Not supported

### MM7_delivery_report

Oracle Communications Services Gatekeeper delivers a delivery report on a previously sent message to the application, at an endpoint implemented by the application.

### MM7_read_reply_report

Oracle Communications Services Gatekeeper delivers a read reply report on a previously sent message to the application, at an endpoint implemented by the application.

## SMPP

The Native SMPP Service Facade exposes SMPP version 3.4 to applications.

The specification ha the title Short Message Peer to Peer, Protocol Specification v3.4, Document Version:- 12-Oct-1999 Issue 1.2 and can be downloaded from http://smsforum.net/

It supports all Protocol Data Units (PDUs), and all header and body elements except when stated otherwise.

An application using this interface acts as an External Short Message Entity (ESME).

### General for bind PDUs and Sessions

An application must bind to the Native SMPP Communications Service. It can bind using:

- bind_transmitter PDU
- bind_receiver PDU
- bind_transceiver PDU

As a result of a bind operation, Oracle Communications Services Gatekeeper authenticates the application and a session established.

The following is valid for all bind operations:

- An application binds using host name or IP-address and a port that depends on the installation. The server to bind to is a Network Tier Server.
- system_id field must be the application instance group ID assigned to the application instance.
- password field must be the same as the password for the application instance group.

Oracle Communications Services Gatekeeper Native SMPP Communication Service can be configured to allow only a certain number of sessions per application.

A session is maintained until the application sends an unbind PDU.

Oracle Communications Services Gatekeeper can be configured to terminate a session if:

- there is too long time of inactivity on the session.
- the application takes too long time to respond to a request.

### Error Handling

All errors are reported in the command_status field of a response PDU.

Table 11-2 lists the error codes that are specific for Oracle Communications Services Gatekeeper. Errors from the SMSC are transparently forwarded to the application.

Table 11-2 Error codes for SMPP Communication Service
SMPP PDU | Error Code in Response (command_status) | Description
--- | --- | ---
bind_transmitter | ESME_RBINDFAIL | Could not bind.
bind_receiver | ESME_RBINDFAIL | Could not bind.
bind_transceiver | ESME_RBINDFAIL | Could not bind.
submit_sm | ESME_RTHROTTLED | Throttling limit or quota limit exceeded. The application has performed too many requests per time unit and has exceeded the Service Level Agreement.
| ESME_RSUBMITFAIL | Could not submit the message. Possible reasons includes no Service Level Agreement found, time-out encountered when sending the message, and configuration error.
submit_sm_multi | ESME_RTHROTTLED | Same as for submit_sm.
| ESME_RSUBMITFAIL | Same as for submit_sm.

### bind_transmitter PDU

The application binds as an SMPP transmitter to Oracle Communications Services Gatekeeper.

Oracle Communications Services Gatekeeper Native SMPP Communication Service can be configured to:

- allow or block this operation.
- allow only a certain number of sessions to be established.

### bind_transmitter_resp PDU

Oracle Communications Services Gatekeeper sends this PDU to an application as a response to bind_transmitter PDU.

### bind_receiver PDU

The application binds as an SMPP receiver to Oracle Communications Services Gatekeeper.

The address_range field must be the same as provisioned for the application instance group.

Oracle Communications Services Gatekeeper Native SMPP Communication Service can be configured to:

- allow or block this operation.
- allow only a certain number of sessions to be established.

### bind_receiver_resp PDU

Oracle Communications Services Gatekeeper sends this PDU to an application as a response to bind_receiver PDU.

### bind_transceiver PDU

The application binds as an SMPP transceiver to Oracle Communications Services Gatekeeper.

address_range field must be the same as provisioned for the application instance group.

Oracle Communications Services Gatekeeper Native SMPP Communication Service can be configured to:

- allow or block this operation.
- allow only a certain number of sessions to be established.

### bind_transceiver_resp PDU

Oracle Communications Services Gatekeeper sends this PDU to an application as a response to bind_transceiver PDU.

### outbind PDU

Not supported.

### unbind PDU

The application unbinds from Oracle Communications Services Gatekeeper.

### unbind_resp PDU

Oracle Communications Services Gatekeeper sends this PDU to an application as a response to unbind PDU.

### generic_nack PDU

Oracle Communications Services Gatekeeper sends this PDU as a negative acknowledgement of a PDU sent from the application if the PDU can not be recognized.

If this PDU is sent from the application, it is propagated to the SMPP SMSC.

### submit_sm PDU

The application sends a short message to Oracle Communications Services Gatekeeper, which forwards it to the destination address via an SMSC.

### submit_sm_resp PDU

Oracle Communications Services Gatekeeper sends this PDU to an application as a response to submit_sm PDU.

### submit_multi PDU

The application sends a short message to Oracle Communications Services Gatekeeper, which forwards it to a set of destination addresses via an SMSC.

### submit_multi_resp PDU

Oracle Communications Services Gatekeeper sends this PDU to an application when as a response to submit_multi PDU.

### deliver_sm PDU

Oracle Communications Services Gatekeeper sends this PDU to an application when a network-triggered short message that matches the destination addresses that the application has subscribed for notifications on has been received by Oracle Communications Services Gatekeeper from an SMSC. The PDU contains the short message.

### deliver_sm_resp PDU

The application sends this PDU to acknowledge the reception of a deliver_sm PDU.

### data_sm PDU

Not supported.

### data_sm_resp PDU

Not supported.

### query_sm PDU

The application sends this PDU to query the status of a previously sent short message.

Oracle Communications Services Gatekeeper Native SMPP Communication Service can be configured to allow or block this operation.

### query_sm_resp PDU

Oracle Communications Services Gatekeeper sends this PDU to an application as a response to query_sm PDU.

### cancel_sm PDU

The application sends this PDU to cancel the sending of one more previously sent short messages, given that the message has not yet been delivered to the end-user terminal.

Oracle Communications Services Gatekeeper Native SMPP Communication Service can be configured to allow or block this operation.

### cancel_sm_resp PDU

Oracle Communications Services Gatekeeper sends this PDU to an application as a response to cancel_sm PDU.

### replace_sm PDU

The application sends this PDU to replace a previously sent short message with the short message provided in this PDU, given that the message has not yet been delivered to the end-user terminal.

Oracle Communications Services Gatekeeper Native SMPP Communication Service can be configured to allow or block this operation.

### replace_sm_resp PDU

Oracle Communications Services Gatekeeper sends this PDU to an application as a response to replace_sm PDU.

### enquire_link PDU

The application, or Oracle Communications Services Gatekeeper, sends this PDU to verify the connection between the application and Oracle Communications Services Gatekeeper.

Oracle Communications Services Gatekeeper Native SMPP Communication Service can be configured to send this PDU to the application on a regular interval. When an application receives this PDU it must respond with enquire_link_resp PDU within a certain time-interval. This time-interval is configurable in Oracle Communications Services Gatekeeper Native SMPP Communication Service.

### enquire_link_resp PDU

Oracle Communications Services Gatekeeper, or an application, sends this PDU as a response to enquire_link PDU.

### alert_notification PDU

Not supported.