National Language Shift
In addition to the standard SMPP 3.4 features, we support National Language Shift (NLI), which enables the use of language-specific characters. This functionality is available over SMPP (opens in a new tab), Broadcast, and HTTP API (opens in a new tab).
National Language Shift uses language-specific character sets that allow you to send special characters at the same cost as standard GSM-7 messages. The tables below list supported languages.
For example, Turkish characters such as ğ, Ğ, € can be sent at the cost of a single GSM-7 character. Normally, these would require Unicode, reducing the message length to 70 characters, but with NLI and User Data Header (UDH), the limit is 155 characters.
Locking Shift vs. Single Shift
- Locking Shift: Characters from the extended set do not reduce the message length (remains 155 characters).
- Single Shift: Each extended character requires an escape character, which reduces the available message length by 1.
- Example: In Spanish, the letter Ú is only available in the single shift set. If 3 such characters are used, the length reduces from 155 to 152 characters.
- Example encoding:
1B55
→1B
is the escape character,55
is Ú from the extended set.
Technical notes
- Language selection is defined in the UDH using the Information-Element-Identifier (IEI) to specify single or locking shift.
- The ESM class parameter must be set to 64.
- Valid data coding values are 0 or 1.
Locking Shift example UDH
UDH length | IEI (Information Element Identifier) | IE length | Selected shift |
---|---|---|---|
03 | 25 | 01 | 01 |
Remaining UDH length in bytes | National Language Locking Shift | Locking Shift - Turkish |
Single Shift example UDH
UDH length | IEI (Information Element Identifier) | IE length | Selected shift |
---|---|---|---|
03 | 24 | 01 | 02 |
Remaining UDH length in bytes | National Language Single Shift | Single Shift - Spanish |
UDH Identifier reference
Below is a UDH reference for each language and here is a detailed character set reference for GSM 7 (opens in a new tab).
Language | Single Shift | Locking Shift | UDH Identifier |
---|---|---|---|
Reserved | Basic | Basic | 0x00 |
Turkish | Turkish | Turkish | 0x01 |
Spanish | Basic | Spanish | 0x02 |
Portuguese | Portuguese | Portuguese | 0x03 |
Bengali | Bengali | Bengali | 0x04 |
Gujarati | Gujarati | Gujarati | 0x05 |
Hindi | Hindi | Hindi | 0x06 |
Kannada | Kannada | Kannada | 0x07 |
Malayalam | Malayalam | Malayalam | 0x08 |
Oriya | Oriya | Oriya | 0x09 |
Punjabi | Punjabi | Punjabi | 0x0A |
Tamil | Tamil | Tamil | 0x0B |
Telugu | Telugu | Telugu | 0x0C |
Urdu | Urdu | Urdu | 0x0D |