Data Coding Scheme is a one-octet field in Short Messages (SM) and Cell Broadcast Messages (CB) which carries a basic information how the recipient handset should process the received message. The information includes:
the character set or message coding, which determines the encoding of the message user data the message class, which determines to which component of the Mobile Station (MS) or User Equipment (UE) the message should be delivered the request to automatically delete the message after reading the state of flags indicating presence of unread voicemail, fax, e-mail or other messages the indication that the message content is compressed the language of the cell broadcast message
The field is described in 3GPP 23.040 and 3GPP 23.038 under the name TP-DCS.
Message character sets
A special 7-bit encoding called the GSM 7 bit default alphabet was designed for the Short Message System in GSM. The alphabet contains the most-often used symbols from most Western-European languages (and some Greek uppercase letters). Some ASCII characters and the Euro sign did not fit into the GSM 7-bit default alphabet and must be encoded using two septets. These characters form GSM 7 bit default alphabet extension table. Support of the GSM 7-bit alphabet is mandatory for GSM handsets and network elements.
Languages which use Latin script, but use characters which are not present in the GSM 7-bit default alphabet, often replace missing characters with diacritic marks with corresponding characters without diacritics, which causes not entirely satisfactory user experience, but is often accepted. In order to include these missing characters the 16-bit UTF-16 (in GSM called UCS-2) encoding may be used at the price of reducing the length of a (non-segmented) message from 160 to 70 characters.
The messages in Chinese, Korean or Japanese languages must be encoded using the UTF-16 character encoding. The same was also true for other languages using non-Latin scripts like Russian, Arabic, Hebrew and various Indian languages. In 3GPP TS 23.038 8.0.0 published in 2008 a new feature, an extended National language shift table was introduced, which in the version 11.0.0 published in 2012 covers Turkish, Spanish, Portuguese, Bengali, Gujarati, Hindi, Kannada, Malayalam, Oriya, Punjabi, Tamil, Telugu and Urdu languages. The mechanism replaces GSM 7-bit default alphabet code table and/or extended table with a national table(s) according to special information elements in User Data Header. The non-segmented message using national language shift table(s) may carry up to 155 (or 153) 7-bit characters.
GSM recognizes only two encodings for text messages and one encoding for binary messages:
GSM 7-bit default alphabet (which includes using of National language shift tables as well) UCS-2 8-bit data
Message classes
The TP-DCS octet has a complex syntax to allow carrying of other information; the most notable are message classes:
+ Message Classes Value Message Class 0 0 0 - Flash messages 0 1 1 - ME-specific 1 0 2 - SIM / USIM specific 1 1 3 - TE-specific
Flash messages are received by a mobile phone even though it has full memory. They are not stored in the phone, they just displayed on the phone display.
Other features
Automatic deletion after reading
The handset should delete any message received with a TP-DCS value falling to the "Message Marked for Automatic Deletion Coding Group" after user has read it.
Message waiting indication
Message Waiting Indication group of DCS values serves to set or reset flags indicating presence of unread voicemail, fax, e-mail or other messages.
Data compression
A special DCS value also allows message compression, but it perhaps is not used by any operator.
DCS values
SMS data coding scheme
The values of TP-DCS are defined in GSM recommendation 03.38.3GPP TS 23.038, Alphabets and language-specific information.
Coding Group: General Data Coding DCShex dec Character Set Message Class Compressed Reserved Because 00 0 GSM 7 bit Default - 01 1 GSM 7 bit Default - Bits 1 and 0 have value 1 but no message class present 02 2 GSM 7 bit Default - Bits 1 and 0 have value 2 but no message class present 03 3 GSM 7 bit Default - Bits 1 and 0 have value 3 but no message class present 04 4 8 bit data Default - 05 5 8 bit data Default - Bits 1 and 0 have value 1 but no message class present 06 6 8 bit data Default - Bits 1 and 0 have value 2 but no message class present 07 7 8 bit data Default - Bits 1 and 0 have value 3 but no message class present 08 8 UCS2 Default - 09 9 UCS2 Default - Bits 1 and 0 have value 1 but no message class present 0A 10 UCS2 Default - Bits 1 and 0 have value 2 but no message class present 0B 11 UCS2 Default - Bits 1 and 0 have value 3 but no message class present 0C 12 (reserved) Default - Reserved character set 0D 13 (reserved) Default - Reserved character set Bits 1 and 0 have value 1 but no message class present 0E 14 (reserved) Default - Reserved character set Bits 1 and 0 have value 2 but no message class present 0F 15 (reserved) Default - Reserved character set Bits 1 and 0 have value 3 but no message class present 10 16 GSM 7 bit Class 0 (Flash message) - 11 17 GSM 7 bit Class 1 (ME-specific) - 12 18 GSM 7 bit Class 2 (SIM/USIM-specific) - 13 19 GSM 7 bit Class 3 (TE-specific) - 14 20 8 bit data Class 0 (Flash message) - 15 21 8 bit data Class 1 (ME-specific) - 16 22 8 bit data Class 2 (SIM/USIM-specific) - 17 23 8 bit data Class 3 (TE-specific) - 18 24 UCS2 Class 0 (Flash message) - 19 25 UCS2 Class 1 (ME-specific) - 1A 26 UCS2 Class 2 (SIM/USIM-specific) - 1B 27 UCS2 Class 3 (TE-specific) - 1C 28 (reserved) Class 0 (Flash message) - Reserved character set 1D 29 (reserved) Class 1 (ME-specific) - Reserved character set 1E 30 (reserved) Class 2 (SIM/USIM-specific) - Reserved character set 1F 31 (reserved) Class 3 (TE-specific) - Reserved character set 20 32 GSM 7 bit Default + 21 33 GSM 7 bit Default + Bits 1 and 0 have value 1 but no message class present 22 34 GSM 7 bit Default + Bits 1 and 0 have value 2 but no message class present 23 35 GSM 7 bit Default + Bits 1 and 0 have value 3 but no message class present 24 36 8 bit data Default + Compression set but Character set can't be compressed 25 37 8 bit data Default + Compression set but Character set can't be compressed Bits 1 and 0 have value 1 but no message class present 26 38 8 bit data Default + Compression set but Character set can't be compressed Bits 1 and 0 have value 2 but no message class present 27 39 8 bit data Default + Compression set but Character set can't be compressed Bits 1 and 0 have value 3 but no message class present 28 40 UCS2 Default + Compression set but Character set can't be compressed 29 41 UCS2 Default + Compression set but Character set can't be compressed Bits 1 and 0 have value 1 but no message class present 2A 42 UCS2 Default + Compression set but Character set can't be compressed Bits 1 and 0 have value 2 but no message class present 2B 43 UCS2 Default + Compression set but Character set can't be compressed Bits 1 and 0 have value 3 but no message class present 2C 44 (reserved) Default + Reserved character set 2D 45 (reserved) Default + Reserved character set Bits 1 and 0 have value 1 but no message class present 2E 46 (reserved) Default + Reserved character set Bits 1 and 0 have value 1 but no message class present 2F 47 (reserved) Default + Reserved character set Bits 1 and 0 have value 1 but no message class present 30 48 GSM 7 bit Class 0 (Flash message) + 31 49 GSM 7 bit Class 1 (ME-specific) + 32 50 GSM 7 bit Class 2 (SIM/USIM-specific) + 33 51 GSM 7 bit Class 3 (TE-specific) + 34 52 8 bit data Class 0 (Flash message) + Compression set but Character set can't be compressed 35 53 8 bit data Class 1 (ME-specific) + Compression set but Character set can't be compressed 36 54 8 bit data Class 2 (SIM/USIM-specific) + Compression set but Character set can't be compressed 37 55 8 bit data Class 3 (TE-specific) + Compression set but Character set can't be compressed 38 56 UCS2 Class 0 (Flash message) + Compression set but Character set can't be compressed 39 57 UCS2 Class 1 (ME-specific) + Compression set but Character set can't be compressed 3A 58 UCS2 Class 2 (SIM/USIM-specific) + Compression set but Character set can't be compressed 3B 59 UCS2 Class 3 (TE-specific) + Compression set but Character set can't be compressed 3C 60 (reserved) Class 0 (Flash message) + Reserved character set 3D 61 (reserved) Class 1 (ME-specific) + Reserved character set 3E 62 (reserved) Class 2 (SIM/USIM-specific) + Reserved character set 3F 63 (reserved) Class 3 (TE-specific) + Reserved character set Coding Group: Message Marked for Automatic Deletion DCShex dec Character Set Message Class Compressed Reserved Because 40 64 GSM 7 bit Default - 41 65 GSM 7 bit Default - Bits 1 and 0 have value 1 but no message class present 42 66 GSM 7 bit Default - Bits 1 and 0 have value 2 but no message class present 43 67 GSM 7 bit Default - Bits 1 and 0 have value 3 but no message class present 44 68 8 bit data Default - 45 69 8 bit data Default - Bits 1 and 0 have value 1 but no message class present 46 70 8 bit data Default - Bits 1 and 0 have value 2 but no message class present 47 71 8 bit data Default - Bits 1 and 0 have value 3 but no message class present 48 72 UCS2 Default - 49 73 UCS2 Default - Bits 1 and 0 have value 1 but no message class present 4A 74 UCS2 Default - Bits 1 and 0 have value 2 but no message class present 4B 75 UCS2 Default - Bits 1 and 0 have value 3 but no message class present 4C 76 (reserved) Default - Reserved character set 4D 77 (reserved) Default - Reserved character set Bits 1 and 0 have value 1 but no message class present 4E 78 (reserved) Default - Reserved character set Bits 1 and 0 have value 2 but no message class present 4F 79 (reserved) Default - Reserved character set Bits 1 and 0 have value 3 but no message class present 50 80 GSM 7 bit Class 0 (Flash message) - 51 81 GSM 7 bit Class 1 (ME-specific) - 52 82 GSM 7 bit Class 2 (SIM/USIM-specific) - 53 83 GSM 7 bit Class 3 (TE-specific) - 54 84 8 bit data Class 0 (Flash message) - 55 85 8 bit data Class 1 (ME-specific) - 56 86 8 bit data Class 2 (SIM/USIM-specific) - 57 87 8 bit data Class 3 (TE-specific) - 58 88 UCS2 Class 0 (Flash message) - 59 89 UCS2 Class 1 (ME-specific) - 5A 90 UCS2 Class 2 (SIM/USIM-specific) - 5B 91 UCS2 Class 3 (TE-specific) - 5C 92 (reserved) Class 0 (Flash message) - Reserved character set 5D 93 (reserved) Class 1 (ME-specific) - Reserved character set 5E 94 (reserved) Class 2 (SIM/USIM-specific) - Reserved character set 5F 95 (reserved) Class 3 (TE-specific) - Reserved character set 60 96 GSM 7 bit Default + 61 97 GSM 7 bit Default + Bits 1 and 0 have value 1 but no message class present 62 98 GSM 7 bit Default + Bits 1 and 0 have value 2 but no message class present 63 99 GSM 7 bit Default + Bits 1 and 0 have value 3 but no message class present 64 100 8 bit data Default + Compression set but Character set can't be compressed 65 101 8 bit data Default + Compression set but Character set can't be compressed Bits 1 and 0 have value 1 but no message class present 66 102 8 bit data Default + Compression set but Character set can't be compressed Bits 1 and 0 have value 2 but no message class present 67 103 8 bit data Default + Compression set but Character set can't be compressed Bits 1 and 0 have value 3 but no message class present 68 104 UCS2 Default + Compression set but Character set can't be compressed 69 105 UCS2 Default + Compression set but Character set can't be compressed Bits 1 and 0 have value 1 but no message class present 6A 106 UCS2 Default + Compression set but Character set can't be compressed Bits 1 and 0 have value 2 but no message class present 6B 107 UCS2 Default + Compression set but Character set can't be compressed