Ever typed some code in the idle screen starting with asterisk or hash, some number, hash? You are using USSD (Unstructured Service Supplementary Data). USSD can be used for example to request the remaining amount of credit for a prepaid SIM card. The USSD request will be send via FACCH (Fast Associated Control Channel) when a call is in progress (SDCCH – stand-alone dedicated control channel) is used when no call is in progress). FACCH is much faster as SACCH (Slow Associated Control Channel) which is used for normal SMS.
An example of USSD is call forwarding. The service codes associated with call forwarding are fixed and all GSM handsets will be able to use them. The menu on the handset which allows the user to define the call forwarding options may well be implemented in terms of USSD.
USSD is supported by nearly every phone (both Phase 1 and Phase 2). Most handsets also support Network Initiated USSD (NI USSD or “Push USSD”). USSD services by the network can be interactive. USSD acts as the bearer for selection menu which will be presented to the user. USSD menus should not be confused with STK (SIM ToolKit) menu’s. USSD is a bearer for menus presented by a server side application and are independent of the SIM card and the handset. This gives operators huge opportunities to deploy simple applications and informational services.
STK will use SMS mostly as a bearer for informational services. Hence it will be very slow. STK can use USSD as a bearer, but it is very dependent on the STK implementation of the particular handset.
An USSD message contains maximum 182 characters. On the GSM network level the USSD gateway (which needs to be deployed in the operator network) is defined as a gsmSCF (GSM Service Control Function).
USSD applications do not necessarily need to run at the GSM network operator. A content provider may connect to the USSD infrastructure of the operator provided the content provider has been given permission by the operator.