Unstructured Supplementary Service Data (USSD)
Author : Abernala
From TechnologicalWiki
Introduction
USSD (Unstructured Service Supplementary Data) is a GSM technology originally intended for use where the handset needed to access supplementary services such as call forwarding and multiparty calls without intervention by the subscriber.
The USSD bearer is accessed by calling a number that starts with the asterisk or gate (or hash) characters "*" or "#" and then a combination of numerals, asterisks and finally the gate or hash character "#".
The handset recognises such numbers and will use the USSD bearer instead of a voice call. Insteadk of calling another subscriber or a service, the handset communicates with the USSD infrastructure.
The first USSD services were called "Phase 1", or "MAP 1" and were only able to pass information from the handset to the USSD application with a confirmation. There was therefore no session held between the handset and the application.
"Phase 2" (or "MAP 2") USSD added the capability for establishing a session instead of a once-off transaction. This meant that the handset and the USSD application could now have the technical equivalent of a dialogue.
GSM handsets supported USSD from the first days of GSM, so unlike SMS, every single GSM handset in the world supports USSD. Phase 2 has been supported for years and over 99% of handsets currently in use can use sessions on the USSD bearer.
Most handsets also support NI USSD (network initiated USSD), also called "USSD Push". With NI USSD, the network can push information to the subscriber's handset.
Another important fact about USSD, is that messages from handsets always route to the home network. This means that if you are roaming in another network, then dialling a USSD string on your phone will always route to the application on your home network. If you are used to accessing a particular service in your home network, then you will also be able to access it from another country. Conversely, roaming subscribers from other networks cannot access USSD services on a host network.
[edit] USSD compared to SMS
USSD differs from the other short message bearer, SMS, in a number of significant ways.
It is not a store-and-forward bearer like SMS, but a transparent session-based bearer ideal for transacting. Information is delivered and responses obtained in real-time. Simply put, USSD is similar to speaking to someone on a phone as SMS is sending a letter.
USSD is also not a point-to-point bearer such as SMS. One subscriber cannot send another text using USSD unless there is a special network application offering such an application.
One can send 182 characters using USSD, but SMS only allows for 140 x 8-bit, or 160 x 7-bit characters.
Like SMS, USSD uses the GSM control channels for data transfer. SMS and USSD both use the SDCCH (stand-alone dedicated control channel) when the handset is not in a call. When the handset is busy with a call, USSD will use the FACCH (fast associated control channel) with a significant improvement in transfer speed (1000 bits/second).
This use of the SDCCH channel leads to the one drawback with USSD. Because the SDCCH channel is also used by GSM for call-setup, many open USSD sessions may limit new call-setups in congested networks. In practise, this doesn't happen often and GSM Network Operatorss can upgrade the radio resources in highly congested cells to prevent this from happening.
Unlike SMS, the subscriber does not have to create a message. The USSD call string can even be stored in the phone book under a name. Some applications will also allow menu shortcuts where the subscriber can add the menu item selection after an "*" seperation character. In our earlier example, the user might create a phonebook entry call "Pretoria Weather" with the number *150*1234*12*3#. The additional "*3" denotes menu selection 3.
On a GSM network level, the USSD Gateway is defined as a gsmSCF (GSM Service Control Function), whereas an SMSC is defined as another HLR (Home Location Register).
[edit] Some Codes
- How to divert voice calls:
| Service | All Calls | If No Reply | If Unavailable | If Busy | All Conditional Diverts | |||||
| Forwarding | **21*Nº# | **67*Nº# | **62*Nº# | **61*Nº# | **004*Nº# | |||||
| Activate | *21# | *61# | *62# | *67# | *004# | |||||
| Deactivate | #21# | #61# | #62# | #67# | #004# | |||||
| Delete | ##21# | ##61# | ##62# | ##67# | ##004# | |||||
| Check status | *#21# | *#61# | *#62# | *#67# | *#004# |


