In the cellular phone industry, mobile phones and their networks sometimes support concatenated short message service (or concatenated SMS) to overcome the limitation on the number of characters that can be sent in a single SMS text message transmission (which is usually 160). Using this method, long messages are split into smaller messages by the sending device and recombined at the receiving end. Each message is then billed separately. When the feature works properly, it is nearly transparent to the user, appearing as a single long text message. Previously, due to incompatibilities between providers and lack of support in some phone models, there was not widespread use of this feature.
In the late 2000s to early 2010s, this feature was adopted more widely. Not only do many handsets support this feature, but support for the feature also exists amongst SMS gateway providers.The way concatenation works in GSM and UMTS networks is specified in SMS Point to Point specification, 3GPP TS 23.040.[1]
On networks which do not support Concatenated SMS (neither the standard scheme nor the simplified one), the message is delivered as individual SMS text messages rather than one concatenated message.
In technical terms, the concatenated SMS could also be referred to as a PDU Mode SMS. The number of parts that a multi-part or PDU mode SMS message may contain depends technically upon a header message but mostly upon the device sending or receiving the SMS and also upon the service provider.
In theory, the concatenated SMS may consist of up to 255 separate SMS messages that are concatenated in order to create a single long SMS message. Because of the nature of the SMS, the chance that these parts of the SMS message arrive in order is slim and therefore a strategy is implemented in order for the original long message to be reconstructed.
One way of sending concatenated SMS (CSMS) is to split the message into 153 7-bit character parts (134 octets), and sending each part with a User Data Header (UDH) tacked onto the beginning. A UDH can be used for various purposes and its contents and size varies accordingly, but a UDH for concatenating SMSes look like this:
It is possible to use a 16 bit CSMS reference number in order to reduce the probability that two different concatenated messages are sent with identical reference numbers to a receiver. In this case, the User Data Header shall be:
Example of the UDH for an sms split into two parts: 05 00 03 CC 02 01 [message ] 05 00 03 CC 02 02 [message ]
Note if a UDH is present and the data encoding is the default 7-bit alphabet, the user data must be 7-bit word aligned after the UDH.[2] This means up to 6 bits of zeros need to be inserted at the start of the [message].
E.g. with a UDH containing a single part, 05 00 03 CC 01 01the UDH is a total of (number of octets x bit size of octets) 6 x 8 = 48 bits long. Therefore, a single bit of padding has to be prepended to the message. The UDH is therefore (bits for UDH / bits per septet) = (48 + 1)/7 = 7 septets in length.
With a message of "Hello world", the [message] is encoded as 90 65 36 FB 0D BA BF E5 6C 32as you need to prepend the least significant bits of the next 7bit characterwhereas without padding, the [message] would be C8 32 9B FD 06 DD DF 72 36 19and the UDL is 7 (header septets) + 11 (message septets) = 18 septets.