Description
The User Data Header Indicator (UDHI) is a fundamental component of the Short Message Service (SMS) protocol stack, specifically within the Transfer Protocol-User Data (TP-UD) field as defined in 3GPP TS 23.040. It is a single bit (bit 6) located in the SMS-DELIVER or SMS-SUBMIT message's TP-Data-Coding-Scheme (TP-DCS) octet. When set to '1', it explicitly informs the receiving entity—typically a mobile station or an SMS Service Center (SC)—that the beginning of the TP-User-Data field is not the actual message text but contains a User Data Header (UDH). The UDH itself is a variable-length structure that precedes the user text and contains information elements (IEs) which define how the message should be processed beyond simple display.
Upon receiving a message with UDHI set to 1, the receiver's protocol layer parses the TP-User-Data field. The first byte after the UDHI is interpreted as the User Data Header Length (UDHL), which specifies the total length in octets of the entire UDH that follows. The receiver then reads the UDHL octets as the header, which contains one or more Information Elements (IEs). Each IE has a specific format: a one-octet Information Element Identifier (IEI) that defines the header's purpose (e.g., concatenation, port addressing), a one-octet Information Element Data Length (IEDL), and the variable-length Information Element Data (IED). Only after processing and stripping this header does the receiver access the actual user text for display or application use.
Architecturally, UDHI operates at the application layer within the SMS protocol, interfacing between the higher-layer applications (like messaging clients) and the lower-layer transport. Its role is purely indicative; it does not carry data itself but triggers header processing. This mechanism is crucial for maintaining backward compatibility. Devices or network elements that do not support UDHI/UDH (or ignore it) may display the header octets as garbled text, but basic message delivery is not impeded. The UDHI enables a clean separation between control information (in the UDH) and user payload, allowing for extensible SMS features without altering the core TP layer structure for every new capability.
Purpose & Motivation
The UDHI was introduced to solve the inherent limitations of the original SMS design, which was conceived for simple, short text messages without provisions for advanced functionalities. Initially, SMS messages were limited to 160 characters using the default 7-bit GSM alphabet and had no standardized way to indicate that a message contained additional control information for features like concatenating long messages, directing messages to specific applications on a handset (e.g., ringtone download, WAP push), or defining message classes. Without a header indicator, implementing such features required proprietary, non-interoperable solutions or 'in-band' signaling that corrupted the user-visible text.
The creation of UDHI, alongside the full UDH specification, provided a standardized, extensible framework within the existing SMS TP envelope. It addressed the problem by dedicating a single bit to act as a flag, a minimal overhead that unlocked significant functionality. This allowed network operators and handset manufacturers to deploy value-added services consistently across different devices and networks. The motivation was largely commercial and technical: to evolve SMS from a simple person-to-person texting service into a platform for content delivery and application-to-person services, thereby increasing Average Revenue Per User (ARPU) without requiring a fundamental overhaul of the already widely deployed GSM/UMTS infrastructure.
Historically, its introduction in 3GPP Release 5 (though based on earlier GSM Phase 2+ specifications) formalized these capabilities within the 3GPP framework, ensuring interoperability for 3G UMTS networks and beyond. It solved the critical issue of backward and forward compatibility; old handsets could still receive messages (even if they displayed header bytes), and new handsets could properly interpret advanced features. This design principle of using a lightweight indicator to enable a rich header structure has made UDHI a cornerstone of enhanced SMS services for decades.
Key Features
- Single-bit flag in TP-DCS indicating UDH presence
- Enables processing of User Data Header (UDH) for advanced SMS
- Maintains backward compatibility with legacy SMS devices
- Triggers parsing of UDHL and subsequent Information Elements
- Essential for SMS concatenation and application port addressing
- Defined in 3GPP TS 23.040/23.048 for standardized interoperability
Evolution Across Releases
Introduced as part of the formal 3GPP standardization of enhanced SMS features. Defined the UDHI bit position and its role in signaling the presence of a User Data Header, enabling concatenated SMS, application port addressing, and other information elements within the SMS payload structure.
Defining Specifications
| Specification | Title |
|---|---|
| TS 23.048 | 3GPP TS 23.048 |