Unstructured Supplementary Service Data
Unstructured Supplementary Service Data (USSD) is a protocol used by GSM cellular telephones to communicate with the service provider's computers. USSD can be used for WAP browsing, prepaid callback service, mobile-money services, location-based content services, menu-based information services, and as part of configuring the phone on the network.[1]
USSD messages are up to 182 alphanumeric characters in length. Unlike Short Message Service (SMS) messages, 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.[1]
Contents
Uses
When a user sends a message to the phone company network, it is received by a computer dedicated to USSD. The computer's response is sent back to the phone, generally in a basic format that can easily be seen on the phone display. Messages sent over USSD are not defined by any standardization body, so each network operator can implement whatever is most suitable for its customers.
USSD can be used to provide independent calling services such as a callback service (to reduce phone charges while roaming), enhance mobile marketing capabilities or interactive data services.
USSD is commonly used by prepaid GSM cellular phones to query the available balance. The vendor's "check balance" application hides the details of the USSD protocol from the user. On some pay as you go networks, such as Tesco Mobile, once a user performs an action that costs money, the user sees a USSD message with his or her new balance. USSD can also be used to refill the balance on the user's SIM card and to deliver one time passwords or PIN codes.
Some operators use USSD to provide access to real-time updates from social-networking websites like Facebook and Twitter.[2] Wikipedia uses USSD to send articles to some feature phones.[3]
USSD is sometimes used in conjunction with SMS. The user sends a request to the network via USSD, and the network replies with an acknowledgement of receipt:
- "Thank you, your message is being processed. A message will be sent to your phone."
Subsequently, one or more mobile terminated SMS messages communicate the status and/or results of the initial request.[4] In such cases, SMS is used to "push" a reply or updates to the handset when the network is ready to send them.[5] In contrast, USSD is used for command-and-control only.
Technical details
Most GSM phones have USSD capability.[6] USSD is generally associated with real-time or instant messaging services. There is no store-and-forward capability, as is typical of other short-message protocols like SMS. In other words, an SMSC is not present in the processing path.
USSD Phase 1, as specified in GSM 02.90, only supports mobile-initiated ("pull") operations.[7] In the core network, the message is delivered over MAP, USSD Phase 2, as specified in GSM 03.90.[8] After entering a USSD code on a GSM handset, the reply from the GSM operator is displayed within a few seconds.
Format
A typical USSD message starts with an asterisk (*) followed by digits that comprise commands or data. Groups of digits may be separated by additional asterisks. The message is terminated with a number sign (#).[1]
USSD Mode
Mobile-initiated
- USSD/ PULL or USSD/ P2P
- when the user dials a code, e.g. *139# from a GSM mobile handset
Network-initiated
- USSD/ PUSH or USSD/A2P
- when the user receives a push message from the network; primarily used for promotional services
Example USSD codes |
---|
*101# |
*139*1*1234567890# |
Code table
As a rule, starts with the digits keyboard shown. End sequences entering the Dial button. With some cellular phones, the following commands must be sent with the final hash key.
Not every code is supported by every provider and every tariff. Answers usually appear directly on the display, but may arrive in the form of an SMS.
Code | Function | Note | Switching On | Switching Off | Displaying status | Example |
---|---|---|---|---|---|---|
0000 | Show Version Number | * # 0000 # | ||||
0 | detailed delivery report | on the beginning of an SMS gives delivery report | * 0 # | |||
002 | all diversions | Number is NOT registered on network. Conditional and absolute | * 002 * number # | # # 002 # | * # 002 # | |
002 | all diversions | Number is registered on network. Conditional and absolute | * * 002 * number # | # # 002 # | * # 002 # | |
002 | suspension of all diversions | Conditional and absolute | # 002 # | * 002 # | * # 002 # | |
004 | all conditional redirections | Number is NOT registered on network. Busy, unreachable, does not answer | * 004 * number # | # 004 # | * # 004 # | |
004 | all conditional redirections | Number is registered on network. Busy, unreachable, does not answer | * * 004 * number # | # 004 # | * # 004 # | |
004 | suspension of all conditional redirections | Busy, unreachable, does not answer | # 004 # | * 004 # | * # 004 # | |
004 | by type conditional redirections | by type of call (TT=11 voice, 13 fax, 25 data, blank all), after SS seconds | * * 004 * number * TT * SS # | # 004 # | * # 004 # | ** 004 * 333 * * 15 # forward all calls to voice mail, when the mobile phone is not logged, is occupied or 15 seconds un answered ringing. |
03 | Change Network code | code is network dependent, default 0000. See call block functions 33* | ** 03 * 330 * old code * new code * new code # | |||
04 | Change PIN | ** 04 * old PIN * new PIN * new PIN # | ||||
042 | Change PIN2 | Only with Phase 2 SIM | ** 042 * old PIN2 * new PIN2 * new PIN2 # | |||
05 | Change PIN by PUK | ** 05 * PUK * new PIN * new PIN # | ||||
052 | Change PIN2 via PUK | Only with Phase 2 SIM | ** 052 * PUK * new PIN2 * new PIN2 # | |||
06 | read device number (IMEI) | Device function; the information appears directly without pressing the Call button; it's not a code for the net | * # 06 # | |||
21 | divert all calls | number is NOT registered on network | * 21 * number # | ## 21 # | * # 21 # | |
21 | divert all calls | number is registered on network | ** 21 * number # | ## 21 # | * # 21 # | |
21 | suspension of call divert | suspend by # 21 #, reactivated with * 21 # | # 21 # | * 21 # | * # 21 # | |
30 | get the caller's number displayed (CLIP) | as a callee get the CLIP displayed | * 30 # | # 30 # | * # 30 # | |
31 | suppressing the transmission of caller's phone number (CLIR) | for all subsequent calls | # 31 # | * 31 # | * # 31 # | |
31 | temporary change the transmission of CLIR | When used directly in front of the dial up telephone numbers, the symbols * / #, turns on / off the calling line identification (suppress the caller's phone number (CLIR) for the current call | # 31 # phone number | * 31 # phone number | * # 31 # | # 31 # 01781234567 suppresses the display of your own number for this call |
330 | disable all call block | code is network dependent, default 0000 | # 330 * code # | |||
33 | outgoing call block | code is network dependent, default 0000 | * 33 * code # | # 33 * code # | * # 33 # | |
331 | outgoing international call block | code is network dependent, default 0000 | * 331 * code # | # 331 * code # | * # 331 # | |
332 | outgoing international call block, but to home | code is network dependent, default 0000 | * 332 * code # | # 332 * code # | * # 332 # | |
35 | incoming call block | code is network dependent, default 0000. Incompatible with call diversion | * 35 * code # | # 35 * code # | * # 35 # | |
35 | incoming SMS block | code is network dependent, default 0000 | * 35 * code * 16 # | # 35 * code # | * # 35 # | |
351 | incoming call block, when international roaming | code is network dependent, default 0000 | * 351 * code # | # 351 * code # | * # 351 # | |
37 | Call back on busy (CCBS) | valid in some mobile network | * 37 # | # 37 # | * # 37 # | |
43 | conference call, 7 at once | need activate incoming call notification too | ** 43 # | # 43 # | * # 43 # | |
43 | incoming call notification when busy | * 43 # | # 43 # | * # 43 # | ||
61 | call divert when not answered | number is NOT registered on network. Divert on 4th ring | * 61 * number # | ## 61 # | * # 61 # | |
61 | call divert when not answered | number is registered on network. Divert on 4th ring | ** 61 * number # | ## 61 # | * # 61 # | |
61 | suspension of not answered call divert | # 61 # | * 61 # | * # 61 # | ||
62 | call divert when off or not reachable | number is NOT registered on network | * 62 * number # | ## 62 # | * # 62 # | |
62 | call divert when off or not reachable | number is registered on network | ** 62 * number # | ## 62 # | * # 62 # | |
62 | suspension of call divert when off or not reachable | # 62 # | * 62 # | * # 62 # | ||
67 | call divert when busy or pressing reject | number is NOT registered on network | * 67 * number # | ## 67 # | * # 67 # | |
67 | call divert when busy or pressing reject | number is registered on network | ** 67 * number # | ## 67 # | * # 67 # | |
67 | suspension of call divert when busy or pressing reject | # 67 # | * 67 # | * # 67 # | ||
Code | Function | Note | Switching On | Switching Off | Displaying status | Example |
See also
- USSD Gateway
- Ultra Mobile Broadband
- Supplementary service codes
- Call_forwarding#Mobile_.28cell.29_phones details of Call forwarding codes for mobile phones
- SIM Application Toolkit
References
- ↑ 1.0 1.1 1.2 Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.