Table of Contents

Implementing USSD (Unstructured Supplementary Service Data)

Overview

The USSD session can be initiated by the Mobile Station (MS) or an External Short Message Entity (ESME). The USSD messages create a real-time connection during a USSD session. The connection remains open, allowing a two-way exchange of a sequence of data.

This makes USSD more responsive than services that use SMS.

USSD can be used to provide:

  • enhance mobile marketing capabilities
  • menu-based information services
  • interactive data services
  • mobile-money services
  • location-based content services
  • callback service (to reduce phone charges while roaming)
  • configuring the phone on the network

Requirements

USSD over SMPP solution is always vendor specific and requires service description from your SMPP provider or mobile network operator. We can help you to implement this with Inetlab.SMPP library, but you need to send us this description.

Types of USSD messages

  • Set up a session: Begin message
  • Continue a session: Continue message
  • End a session: End message
  • Abort a session: Abort message

Types of USSD operations

The USSD session involves the following operations:

Request: to request a session

  • If the session is initiated by an MS, the MS can only send a Request message in the first message. In the subsequent message exchange, the MS can only respond to the Request or Notify message from an ESME.
  • If the session is initiated by an ESME, the Request message can be sent by only the ESME, while the MS can only respond to the message.

Notify: to notify of a session

The Notify message can be sent by only an ESME. The Notify message differs from the Request message in that an MS responds to a Notify message automatically, but the response to a Request message can only be done manually. For example, send a response character string.

Response: to respond to a session

The response to a Request or Notify message can be sent by the MS or an ESME. When the ESME sends a Response message, it indicates the end of a session.

Release: to release a session

When an ESME ends a session initiated by itself, the operation type can only be Release.