CTRLK

National Language Shift

|

View as Markdown

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, Broadcast, and HTTP API.

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: 1B551B 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

03250101
Remaining UDH length in bytesNational Language Locking Shift Locking Shift - Turkish

Single Shift example UDH

UDH length

IEI (Information Element Identifier)

IE length

Selected shift

03240102
Remaining UDH length in bytesNational 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.

Language

Single Shift

Locking Shift

UDH Identifier

ReservedBasicBasic0x00
TurkishTurkishTurkish0x01
SpanishBasicSpanish0x02
PortuguesePortuguesePortuguese0x03
BengaliBengaliBengali0x04
GujaratiGujaratiGujarati0x05
HindiHindiHindi0x06
KannadaKannadaKannada0x07
MalayalamMalayalamMalayalam0x08
OriyaOriyaOriya0x09
PunjabiPunjabiPunjabi0x0A
TamilTamilTamil0x0B
TeluguTeluguTelugu0x0C
UrduUrduUrdu0x0D