You are here

Unstructured Supplementary Services Data (USSD)

Unstructured Supplementary Services Data (USSD) allows for the transmission of information via a GSM network. Contrasting with SMS, it offers real time connection during a session. A USSD message can be upto 182 alphanumeric characters in length. Unstructured Supplementary Service Data allows interactive services between a MS and applications hosted by the Mobile Operator. These messages are composed of digits and the #, * keys, and allow users to easily and quickly get information/access services from the Operator.

USSD messages are simple to form and easy to send. User can directly enter the ussd string and press call to send the message. A typical USSD message starts with a * followed by digits which indicate an action to be performed or are parameters. Each group of numbers is separated by a *, and the message is terminated with a #. The USSD gateway in turn can interact with external applications based on the USSD command. This allows access to number of value added services via USSD.

USSD is a session oriented service, and can support a sequence of exchange of information. Phase 2 USSD also allows messages to be pushed onto a MS. It is several times faster than MO SMS messages since there is no store and forward of messages. The USSD gateway supports an open HTTP interface.

The USSD gateway will have an interface with the MSC over SS7. It uses MAP to receive and send USSD data from the HLR.

Generally the USSD functionality is implemented in the following modes:

  • Pull Mode, will handle Mobile Initiated USSD Requests.

  • Push Mode will handle network Initiated USSD Requests.


Characteristics of USSD:

  • A USSD message can be upto 182 alphanumeric characters in length

  • Unlike SMS, USSD is a session oriented service

  • Simple and easy to send. No need to go into any menus and options. Just directly entered on the default mobile screen.

  • USSD works on all GSM handsets of Phase II or later.

  • There will not be any latency in request and responce as we experience in SMS based services

  • The functionality will be the same even while roaming as the USSD messages always routed back to Home HLR.

  • USSD is supported by WAP, SIM Application Toolkit and CAMEL enabling scope for many applciations.

  • Works in two modes: pull mode and push mode.



  • USSD can be used as a WAP bearer.

  • Used for menu based content services like news, weather, sports etc

  • Used for prepaid callback service enabling prepaid roaming a better service

  • Used in location based content services

  • Used in SIM Application tool kit based applications.



Messaging- SMS, SMPP, USSD, MMS Discussion Forum

Download specification : GSM ETSI 3.90 - Unstructured Supplementary Service Data (USSD) - Stage 2

WAP over GSM USSD Specification


I want to send USSD message with my GSM modem, is it possible?
Sending USSD is like calling that is to say, does it use AT-command?

Globa USSD is interesting but it is useful if we want to create an ussd server.

But i want to use as client by gsm modem!

I'd like to have an application where users can request travel route from point A to C and the application be able to give such infomation in respons . Is it possible that USSD can be an application for such ?Thanx in advance

Hi ,
I do have an USSD application where am sending USSD perfectly to UE.
But currently my requirement is that I want to send wap messages using USSD. But while seeing the service for USSD structure i found that we have only three things.
1 .Data coding scheme
2. USSD string.

So basically what I understood is that if I want to send any wap message it has to be filled in the USSD string itself. In this way if am sending it is not decoded properly by the UE(ME) .Am getting junk character on the UE.
So can anybody please help me how to encode the wap message while sending it in the USSD .


I would like to create a ussd app .. ready with idea but totally helpless on what exactly has to be done to implement it?
Can u pls tell me wat ide to use, simulator, how to deploy into a jar... Thanks in advance!


Hi, I am working with Telecom billing solution team. I am interested in developing USSD application.

Please if you have answer how to develop and how to link with the network please share me the detail. i would prefer first working with emulators for my testing.

dobito's picture

Hi Gents,

I am core network engineer. Recently, I was asked by a USSD center vendor to configure an SS7 link on my HLR so as to connect it to that USSD center. Yet I am familiar with connecting a USSD center to the MSC. Anyway, that is not an issue, I guess the configuration would be the same. now my question is: " What would make the difference in choosing to connect a USSD center to HLR and not to the MSC"? in other words what is the reason behind in terms service perspective?


I want to know how to dimensioning a USSD service deployment.
As I understand there are 2 main aspects: TPS & Sessions.
TPS: Transactions send to the mobile (menus) and send back from the mobile (answers), network initiated USSD service (API)
Sessions: for every menu displayed on the mobile there is a session open on the USSD GW, Network Control Channel and Mobile, this session ends by: timeout, selection of an option and flow process end or eventually network error.

Could you please validate my assumptions.
Also where I could find documentation about how to calculate and dimension the traffic requirements and load over the network: USSD GW to STP, Control Channel, HLR,....?

Thank you and best regards,

Mauricio Peña

Mauricio Peña