Unstructured Supplementary Service Data for Communication Engineering
1. Introduction to USSD
Definition: USSD (Unstructured Supplementary Service Data) is a session-based communications protocol defined in GSM standards that enables real-time exchange of short text-based information between a mobile station (MS) and a Public Land Mobile Network (PLMN) operator's application.
USSD represents one of the most significant Value Added Services (VAS) in mobile telecommunications. It provides a messaging service that is approximately seven times faster than SMS and highly cost-effective. The technology enables direct, real-time communication between mobile devices and network applications without requiring internet connectivity or smartphone capabilities.
Key Characteristics:
Session-based: Establishes real-time bidirectional connection between MS and network
Handset independent: Works on any GSM mobile device from basic feature phones to smartphones
No internet required: Operates over signaling channels
Interactive: Supports menu-driven dialogues and multi-turn conversations
Character limit: Maximum 182 alphanumeric characters using 7-bit encoding
Historical Evolution
Early 1990s
USSD initially standardized by ETSI in GSM 03.90 as part of GSM Phase 2 specifications
Mid-1990s
Network-initiated USSD introduced via MAP protocol, enabling push notifications from network to mobile station
Release 99 (2000)
Integration into 3GPP framework with TS 22.090 (Stage 1) and TS 24.090 (Stage 3) for UMTS compatibility
Releases 4-5 (2002)
USSD integrated into UMTS circuit-switched domain with enhanced session persistence
Release 11+
USSD over IMS (USSI) introduced for LTE and 5G compatibility through IP Multimedia Subsystem
Release 17 (2022)
TS 24.090 updated to Version 17.0.0 for ongoing maintenance with evolving network architectures
2. Fundamental Concepts
2.1 USSD Message Format
USSD messages follow a specific structure that is universally recognized across all GSM networks:
Service Code: Numbers and sometimes letters identifying the service
End Character: Hash symbol (#) terminates the code
Maximum Length: 182 characters (7-bit encoding) or 160 characters (8-bit mode)
Common USSD Code Examples:
Code Pattern
Example
Function
*XXX#
*123#
Balance inquiry
*XXX*DATA#
*555*1234#
Recharge with code 1234
#XXX#
#100#
Check data balance
*#XXX#
*#06#
Display IMEI number
2.2 Session-Based Communication Model
Unlike SMS which operates on a store-and-forward model, USSD establishes a direct, two-way connection during the session. This session-based approach enables immediate responses and interactive menu-driven dialogues.
USSD supports multiple character encoding schemes with different capacity implications:
Encoding Scheme
Bits per Character
Maximum Characters
Use Case
GSM 7-bit Default Alphabet
7 bits
182 characters
Latin-based scripts
8-bit Data
8 bits
160 characters
Binary data, extended characters
UCS-2 (16-bit)
16 bits
70 characters
Non-Latin languages, Arabic, Chinese
3. Network Architecture
3.1 GSM/UMTS Architecture Components
The USSD protocol architecture in GSM and UMTS networks involves several key network elements within the Public Land Mobile Network (PLMN):
Mobile Station (MS/UE)
→
Base Station (BTS/Node B)
→
MSC/VLR
→
HLR/USSD Gateway
→
Application Server
Core Network Elements:
Mobile Station (MS) / User Equipment (UE): User endpoint for initiating or responding to USSD dialogues
Base Station Subsystem (BSS) / UTRAN: Handles radio interface communication
Mobile Switching Center/Visitor Location Register (MSC/VLR): Handles call control and routing of USSD messages to appropriate network entities
Home Location Register (HLR): Maintains subscriber profiles and supports location updates relevant to USSD routing
USSD Gateway/Application Server: Processes USSD-specific logic such as service queries or responses
3.2 LTE/5G Architecture (USSI)
In LTE and 5G networks, USSD support extends through the IP Multimedia Subsystem (IMS) as specified in 3GPP TS 24.390. This evolution, known as USSD over IMS (USSI), enables USSD operations over IP for Voice over LTE (VoLTE) and 5G System (5GS) environments.
USSD signaling relies on the Mobile Application Part (MAP) protocol layered over the Signaling System No. 7 (SS7) network:
Application Layer: USSD Application (Mobile Banking, Menu Services, etc.)
↓
MAP Layer: Mobile Application Part (ProcessUnstructuredSS-Request)
↓
TCAP Layer: Transaction Capabilities Application Part (Invoke/Result)
↓
SCCP Layer: Signaling Connection Control Part
↓
MTP Layer: Message Transfer Part (SS7)
↓
Physical Layer: E1/T1 Links, ATM, IP (SIGTRAN)
MAP Operations for USSD:
Operation
Direction
Description
processUnstructuredSS-Request
MS → Network
Mobile-initiated USSD request
unstructuredSS-Request
Network → MS
Network-initiated query requiring response
unstructuredSS-Notify
Network → MS
Network notification (no response needed)
unstructuredSS-Response
MS → Network
Mobile response to network request
4. Protocol Details
4.1 Dialogue Types
USSD supports two primary dialogue types that define the communication flow between mobile station and network:
1. Mobile-Initiated Dialogue (MO-USSD)
User dials a USSD code (e.g., *123#) to initiate a session. The MS sends a REGISTER message containing a ProcessUnstructuredSS-Request invoke component.
2. Network-Initiated Dialogue (MT-USSD)
Network pushes information to the MS using UnstructuredSS-Request or UnstructuredSS-Notify operations. Requires prior subscriber consent and registration.
4.2 Message Structure
USSD messages are encapsulated within MAP operations using ASN.1 (Abstract Syntax Notation One) encoding. The key parameters include:
USSD sessions are managed through specific signaling procedures:
Phase
Message
TCAP Component
Description
Initiation
REGISTER
Invoke (Last)
Start USSD dialogue
Continuation
FACILITY
Invoke/Return Result
Continue dialogue
Termination
RELEASE COMPLETE
Return Result (Last)
End session normally
Error
RELEASE COMPLETE
Return Error/Reject
End with error code
4.4 Error Handling
Error handling in USSD incorporates invoke identifiers within facility messages to correlate requests and responses. Specific release causes are defined for issues like network busy conditions or facility rejection.
Common USSD Error Codes:
USSD-Busy: MS unable to process new USSD request while handling existing session
UnknownSubscriber: Subscriber not found in HLR/VLR
AbsentSubscriber: MS not reachable
FacilityNotSupported: Network or MS doesn't support requested facility
SystemFailure: Internal network error
5. Applications and Use Cases
5.1 Mobile Financial Services
USSD has revolutionized financial inclusion, particularly in developing regions. Mobile money services like M-Pesa grew rapidly because of USSD's simplicity and accessibility.
Banking Applications:
Account balance inquiries (*123#)
Fund transfers between accounts
Bill payments (utilities, credit cards)
Airtime purchase and top-up
Mobile wallet transactions
Transaction history requests
5.2 Telecommunications Services
Telcos were the first to popularize USSD for customer self-service:
Service Category
USSD Function
Example Code
Account Management
Check balance, validity
*123#
Recharge
Top-up prepaid account
*555*PIN#
Data Services
Buy data bundles
*100*4#
Call Services
Call forwarding setup
**21*number#
Customer Care
Menu-based support
*111#
5.3 IoT and Machine-to-Machine (M2M)
USSD has found new applications in IoT scenarios due to its low bandwidth requirements and universal compatibility:
Remote Device Management: Sending configuration updates to IoT devices
Data Collection: Gathering sensor readings from remote locations
Emergency Communications: Backup communication when data networks fail
Asset Tracking: Location updates from GPS-enabled devices
Smart Metering: Utility meter reading and control
5.4 Interactive Demo: USSD Menu Simulation
Try a USSD Banking Session:
Enter a USSD code to see how a typical mobile banking session works:
Enter a USSD code above and click "Dial" to see the session flow...
6. USSD vs. SMS Comparison
Understanding the differences between USSD and SMS is crucial for communication engineers designing mobile services:
Feature
USSD
SMS
Connection Type
Session-based (real-time)
Store-and-forward
Character Limit
182 characters (7-bit)
160 characters (7-bit)
Delivery Mechanism
Immediate or fails
Eventual delivery, queued
Internet Required
No
No
Smartphone Required
No - works on all GSM phones
No - works on all GSM phones
Cost Model
Per-session charging
Per-message charging
Interactivity
Real-time two-way dialogue
Asynchronous messaging
Session Persistence
Connection remains open
No session concept
Network Dependency
Requires active network session
Can be delivered later if phone off
Storage
Not stored on phone/network
Stored on phone and SMSC
When to Use USSD:
Real-time balance inquiries and quick transactions
Interactive menu-based services
Services requiring immediate confirmation
Applications targeting feature phone users
Low-bandwidth IoT communications
When to Use SMS:
Store-and-forward messaging
Delivery to offline subscribers
Broadcast and bulk messaging
Non-time-critical notifications
Applications requiring message persistence
7. Security Considerations
7.1 Security Architecture
USSD security relies on network-level authentication mechanisms, such as those tied to subscriber identity verification via the HLR, but lacks end-to-end encryption, leaving USSD data vulnerable to interception over SS7 links.
Security Vulnerabilities:
SS7/MAP Interception: USSD transmitted in plaintext over signaling protocols without built-in encryption
SIM Swap Attacks: Attackers exploit USSD codes to transfer phone numbers to attacker-controlled SIMs
Social Engineering: Malicious USSD codes can bypass two-factor authentication or gather account information
Man-in-the-Middle: Exploitation of weak authentication mechanisms in SS7 networks
7.2 Security Best Practices
Recommendations for Organizations:
Monitor USSD traffic for unusual patterns or unauthorized access attempts
Implement strong authentication for any USSD-based services
Educate users about USSD-based social engineering attacks
Regularly audit USSD code configurations and access controls
Deploy network monitoring tools to detect suspicious USSD activity
Implement USSD gateway firewalls to filter malicious codes
7.3 IMS Security Enhancements
In LTE/5G IMS-based USSD (USSI), security relies on IMS protections such as TLS for SIP signaling and authentication via the S-CSCF, but still provides no dedicated end-to-end encryption for USSD payloads.
8. Technical Standards and Specifications
8.1 3GPP Specifications
USSD is standardized under various 3GPP Technical Specifications:
Specification
Title
Scope
3GPP TS 22.090
Stage 1: Unstructured Supplementary Service Data (USSD)
Service description and requirements
3GPP TS 24.090
Stage 3: USSD procedures
Detailed procedures and message flows
3GPP TS 24.390
USSD over IMS (USSI)
LTE/5G USSD implementation
3GPP TS 29.002
MAP Specification
Mobile Application Part details
3GPP TS 23.039
Interface Protocols
Technical realization
8.2 ETSI Standards
Originally standardized by ETSI in GSM 03.90, USSD specifications later evolved under 3GPP for UMTS and beyond.
8.3 Key Abbreviations
USSD - Unstructured Supplementary Service Data
USSDC - USSD Center
MS - Mobile Station
UE - User Equipment
MSC - Mobile Switching Center
VLR - Visitor Location Register
HLR - Home Location Register
MAP - Mobile Application Part
TCAP - Transaction Capabilities Application Part
SS7 - Signaling System No. 7
IMSI - International Mobile Subscriber Identity
IMEI - International Mobile Equipment Identity
PLMN - Public Land Mobile Network
HPLMN - Home PLMN
VPLMN - Visited PLMN
IMS - IP Multimedia Subsystem
USSI - USSD over IMS
S-CSCF - Serving Call Session Control Function
P-CSCF - Proxy-CSCF
SIP - Session Initiation Protocol
VAS - Value Added Services
MNO - Mobile Network Operator
9. Self-Assessment Quiz
Test your understanding of USSD concepts with these review questions:
1. What is the maximum number of characters supported by USSD using 7-bit GSM encoding?
2. Which protocol does USSD use in GSM/UMTS networks for signaling between network elements?
3. What is the primary difference between USSD and SMS communication models?
4. In LTE/5G networks, USSD is supported through which architecture?
5. What does the USSD code *#06# typically retrieve?
10. Summary and Key Takeaways
Core Concepts:
USSD is a session-based, real-time signaling protocol in GSM/UMTS networks enabling interactive text communication
Maximum message size is 182 characters (7-bit) or 160 octets
Uses MAP protocol over SS7 for core network signaling
Supports both mobile-initiated and network-initiated dialogues
Evolved to USSI (USSD over IMS) for LTE/5G compatibility
Critical for mobile banking, IoT, and services in low-connectivity regions
Security concerns include lack of end-to-end encryption and SS7 vulnerabilities
Study Recommendations
For further study, review the following 3GPP specifications:
3GPP TS 22.090 - Stage 1 service requirements
3GPP TS 24.090 - Stage 3 procedures and message flows