4G/LTE - CBS

 

 

 

DCS for CBS

 

A cell broadcast message arrives as a run of octets, and one of them says how to read the rest. That octet is the Data Coding Scheme. It names the character set, it sometimes names the language, and it tells the phone what to do with the message once the text has been decoded. This page is the lookup table for that octet, with the parts of it that matter to LTE set out around it.

How is the DCS octet read ?

One octet answers three questions at once. It says which character set the text uses, it may say which language the text is in, and it says what the phone should do with the message after decoding it. 23.038 answers all three by splitting the octet in two.

Bits 7 to 4 are the coding group. They describe nothing about the message by themselves. They decide what bits 3 to 0 mean, and that meaning changes completely from one group to the next.

Group 0000 reads the low four bits as a language number, and the sixteen values name sixteen languages. Group 01xx reads the same four bits as two independent pairs, one pair for the character set and the other for the message class. Group 1111 reserves one of the four bits and splits the rest again. No single field layout covers them all, and that is why the table below has one narrow column for the group and one wide column for everything else.

Two rules run across every group. A receiver reads a reserved coding as the GSM 7 bit default alphabet, the same as codepoint 00001111, so an unknown group still produces displayable text rather than a discarded message. And where a group carries a language indication, that indication appears at the start of every Message Information Page, and it names the same language on each page.

Some of the numbers in the table are GSM numbers. 23.038 states that the message lengths in clause 5 apply to GSM only, and not to UTRAN, E-UTRAN or NG-RAN. The 90 characters that follow the carriage return, and the 40 UCS2 characters that follow the language pair, are GSM page sizes rather than LTE ones.

  • The group comes first : bits 3 to 0 mean nothing until bits 7 to 4 have been read.
  • Reserved is not undefined : a reserved coding is read as the GSM 7 bit default alphabet, so the text still reaches the screen.
  • The lengths are GSM lengths : 23.038 states that the message lengths in clause 5 do not apply to E-UTRAN.

What does each coding group carry ?

The table below is clause 5 of 23.038 in full. Find the row whose bits 7 to 4 match the octet first. Read the wide column only after that, because the same four low bits carry a language in one row and two separate fields in another.

< DCS for CBS based on 23.038 - 5. CBS Data Coding Scheme >

Bit [7..4]

Bits[3..0]

0000

Language using the GSM 7 bit default alphabet

    0000  German

    0001  English

    0010  Italian

    0011  French

    0100  Spanish

    0101  Dutch

    0110  Swedish

    0111  Danish

    1000  Portuguese

    1001  Finnish

    1010  Norwegian

    1011  Greek

    1100  Turkish

    1101  Hungarian

    1110  Polish

    1111 Language unspecified

     

0001

0000  GSM 7 bit default alphabet; message preceded by language indication

    the first 3 characters of the message are a two-character representation of the language encoded according to ISO 639, followed by a CR characters. The CR character is then followed by 90 characters of text.

0001  UCS2; message preceded by language indication

    The message starts with a two GSM 7 bit default alphabet character representation of the language encoded according to ISO 639. This is padded to the octet boundary with two bits set to 0 and then followed by 40 characters of UCS2 encoded message.

    An MS not supporting UCS2 coding will present the two character language identifier followed by improperly interpreted user data.

0010  UCS2; message preceded by three letters language indication

    The message starts with two octets. Their first 15 bits carry three letters for the language, in the ISO 639 code, and 23.038 gives the layout in figure 5-1 and table 5-1.

0011..1111  Reserved

0010

0000  Czech

0001  Hebrew

0010  Arabic

0011  Russian

0100  Icelandic

0101..1111  Reserved for other language using the GSM 7 bit default alphabet, with unspecified handling at the MS

0011

0000..1111  Reserved for other language using the GSM 7 bit default alphabet, with unspecified handling at the MS

01xx

General Data Coding indication. Bits 5 to 0 indicate the following :

If Bit 5 = 0, the text is uncompressed

If Bit 5 = 1, the text is compressed using the compression algorithm defined in 3GPP TS 23.042

If Bit 4 = 0, indicate that bits 1 to 0 are reserved and have no message class meaning

If Bit 4 = 1, indicate that bits 1 to 0 have a message class meaning

 

Bits 1

Bits 0

Message Class

0

0

Class 0

0

1

Class 1 Default meaning : ME-specific

1

0

Class 2 Default meaning : (U)SIM-specific message

1

1

Class 3 Default meaning : TE-specific (3GPP 27.005)

 

Bits 3

Bits 2

Character set

0

0

GSM 7 bit default alphabet

0

1

8 bit data

1

0

UCS2 (16 bit)

1

1

Reserved

1000

Reserved Coding Group

1001

Message with User Data Header (UDH) structure :

Bits 1

Bits 0

Message Class

0

0

Class 0

0

1

Class 1 Default meaning : ME-specific

1

0

Class 2 Default meaning : (U)SIM-specific message

1

1

Class 3 Default meaning : TE-specific (3GPP 27.005)

Bits 3

Bits 2

Alphabet

0

0

GSM 7 bit default alphabet

0

1

8 bit data

1

0

UCS2 (16 bit)

1

1

Reserved

1010..1100

Reserved Coding Group

1101

I1 protocol message defined in TS 24.294

1110

Defined by the WAP Forum

1111

Data coding/message handling

Bit 3 = reserved, set to 0

Bits 2

Message Coding

0

GSM 7 bit default alphabet

1

8 bit data

Bits 1

Bits 0

Message Class

0

0

No Message Class

0

1

Class 1 user defined

1

0

Class 2 user defined

1

1

Class 3 Default meaning : TE-specific (3GPP 27.005)

  • Groups 0000 to 0011 carry a language and nothing else : the text in them is always GSM 7 bit, and the low four bits only say which language it is written in.
  • Group 01xx is the general case : it is the only group with a compression bit, and its bit 4 decides whether the message class bits mean anything at all.
  • A reserved group still displays : 1000 and 1010 to 1100 are reserved, so a message that arrives in one of them is read as GSM 7 bit text.
  • Group 1111 counts the classes differently : its 00 means no message class, where the same two bits in group 01xx and group 1001 mean class 0.

What does the message class mean at the MS ?

The two lowest bits decide where the message goes once it has been decoded, and the four values are not variations on one behaviour. One of them interrupts the user, and the other three do not.

Class 0 is the immediate one. The phone displays a class 0 message as soon as it arrives, if it can display CBS messages at all, and it does not store that message in the ME or on the (U)SIM.

The user may switch that behaviour off. 23.038 lets the ME offer the choice through its own menus. The same holds for a phone that cannot display CBS messages at all, because it has nothing to switch off. In both cases the class is discarded rather than obeyed. The ME ignores bits 1 and 0, and it may then store the message on the ME or on the (U)SIM.

Class 1 and class 2 carry default meanings in coding groups 01xx and 1001. Those defaults are ME-specific and (U)SIM-specific, and the ME may route a message of either class to a destination the user has set. The user may override the default meaning and choose that routing. Coding group 1111 is the exception, because there the same two classes are user defined and carry no default meaning at all.

Class 3 is for a terminal attached to the phone. Class 3 messages go to that terminal where the ME offers an SMS or CBS interface to it, and where the TE has asked for TE-specific cell broadcast messages. 27.005 describes that interface.

None of this is reached unless bit 4 allows it. In group 01xx a bit 4 of 0 makes bits 1 and 0 reserved, with no message class meaning, and the message is then handled as though it carried no class at all.

  • Class 0 interrupts : the message is displayed as it arrives, and it is not stored.
  • The user setting overrides the class : the ME may let the user stop the immediate display, and the message is then treated as though it had no class.
  • Class 3 leaves the phone : it is the class a TE asks for over the SMS or CBS interface that 27.005 describes.

Where does this octet appear in LTE ?

LTE has no cell broadcast channel of its own. It carries warning messages inside system information instead, and the coding octet travels with them unchanged, which is why an LTE handbook needs this table at all.

SystemInformationBlockType11 carries an ETWS secondary notification, and SystemInformationBlockType12 carries a CMAS notification. Each of them carries the coding octet in a field called dataCodingScheme, defined as an OCTET STRING of one octet.

The field is conditional rather than always present. 36.331 makes it mandatory in the first segment of the SIB and absent from the others, because a warning message is delivered in segments and the coding does not change between them.

36.331 identifies that octet through two further specifications. It is the octet of the IE in 36.413 clause 9.2.1.52, which carries the octet of the IE in 23.041 clause 9.4.3.2.3. 23.038 defines the coding of that octet. The table above is therefore the table a SIB11 or a SIB12 decode needs.

RRC does not act on the octet. On receiving a warning message the UE forwards it to upper layers, together with the messageIdentifier, the serialNumber, the dataCodingScheme and the warning area coordinates where those are present. The text is decoded above RRC.

  • SIB11 and SIB12 are the carriers : an ETWS secondary notification travels in SIB11 and a CMAS notification in SIB12.
  • The octet appears once per message : 36.331 makes dataCodingScheme mandatory in the first segment and absent from the rest.
  • RRC only forwards it : the UE hands the octet to upper layers with the message, and the text is decoded there.

Reference

The documents below are the sources for the table on this page and for the sections around it. A version is named only where the text was read in that version.

  • 23.038 : 3GPP - Alphabets and language-specific information, v20.0.0. Clause 5 is the CBS Data Coding Scheme, and it is the source of the table on this page and of the handling rules quoted beside it.
  • 36.331 : 3GPP - E-UTRA; Radio Resource Control (RRC) protocol specification, v19.3.0. SystemInformationBlockType11 and SystemInformationBlockType12 carry the octet, and clause 5.2.2 gives the rule that RRC forwards it to upper layers.
  • 23.041 : 3GPP - Technical realization of Cell Broadcast Service (CBS). Named by 36.331 as holding the same octet in clause 9.4.3.2.3. Not read for this page.
  • 23.042 : 3GPP - Compression algorithm for text messaging services. The algorithm that bit 5 of coding group 01xx selects. Not read for this page.
  • 27.005 : 3GPP - Use of Data Terminal Equipment - Data Circuit terminating Equipment (DTE - DCE) interface for Short Message Service (SMS) and Cell Broadcast Service (CBS). The interface a class 3 message is handed to. Not read for this page.
  • 24.294 : 3GPP - IMS Centralized Services (ICS) Protocol via I1 Interface. The protocol that coding group 1101 names. Not read for this page.