No emails from Team Colligso? Refresh your inbox, check Junk/Spam folder...

What is SMS Message Segment and how is it calculated?

Table of Contents

Message Segment

SMS Messages are sent in 140 byte (140 x 8 bits = 1120 bits) chunks known as message segments. Colligso charges for SMS messages based on the number of message segments each message contains. If message text is longer than 140 bytes, the message will be split into multiple message segments. The way a message is split depends on the type of character encoding applied to your message text. 

There are two type of encodings used.

  1. GSM 03.38
  2. UCS-2 

GSM 03.38

Standard SMS encoding uses the GSM 03.38 character set which takes 7 bits to encode a character.

  • 7 bits = 1 character
  • 1 message segment = 1120/7 = 160 characters

That means, 1 message segment encoded in GSM 03.38 character set would hold 160 characters.

UCS2

When you send messages with Emojis or extended character set, a different type of encoding called UCS-2 is used to encode a character. UCS-2 characters are 16-bit characters. 

  • 16 bits = 1 character
  • 1 message segment = 1120/16 = 70 characters

That means, 1 message segment encoded in UCS-2 character set would hold 70 characters.

Large message

When you send an SMS message longer than 140 bytes (i.e. 160 or 70 characters depending upon the encoding used), the message is split into multiple segments. When this happens, these segments need to be assembled (concatenated) back into a single message at the receiving end. To accomplish this, the segmentation information is added to each message segment in the form of a header called the User Data Header (UDH). UDH is a data structure in the message payload that specifies how the message should be formatted and processed. Each UDH takes 6 bytes. That means, now there is less space for the user content. Now, instead of 1120 bits, the user content per message segment can only be 1072 bits.

140 bytes per message segment - 6 bytes for UDH = 134 bytes for user content = 134 x 8  = 1072 bits

GSM

Messages that contain only GSM 03.38 7-bit characters have a maximum limit of 1600 characters. Messages longer than 160 characters are split into multiple message segments, each segment consisting of 153 characters plus a UDH. That is, 1 message segment of a large message encoded with GSM will contain 

  • 1072/7 = 153 characters

UCS-2

Messages containing one or more UCS-2 16-bit Unicode characters have a maximum limit of 737 characters. Messages longer than 70 characters are split into multiple message segments, each segment consisting of 67 characters plus a UDH. That is,1 message segment of a large message encoded with UCS-2 will contain 

  • 1072/16 = 67 characters

 

See also:

Contact Our Team

If you still can't find an answer to what you're looking for, or you have a specific question, open a new ticket and we'd be happy to help!

Contact Us