Messaging

SMS

Short Message Service: store-and-forward text over mobile networks, still framed as 140-byte segments with optional concatenation.

Updated August 27, 2026

SMS (Short Message Service) is the 3GPP/GSM store-and-forward text service. A single SMS PDU carries 140 bytes of user data. In the GSM 7-bit default alphabet (GSM 03.38 / 3GPP TS 23.038) that is 160 characters. In UCS-2 (Unicode BMP, used when a character falls outside the 7-bit alphabet) that is 70 characters. Those limits come from the protocol framing, not from product policy. US wireless A2P still bills and rate-limits in segments built on this framing.

The signaling and transport have moved from MAP over SS7 to IMS and IP interconnect, but the payload math has not. An application that submits “one message” through CPaaS or SMPP may still be several segments on the air and several segments on the invoice.

Encoding, concatenation, and segment math

A single emoji forces UCS-2 for that SMS. Concatenated SMS is reassembled on the handset using a UDH reference number; segments can arrive out of order.
EncodingAlphabetCharacters in a single SMSCharacters per concatenated segment
GSM 7-bit defaultGSM 03.38 basic set (English letters, digits, a small symbol set; some characters consume two septets)160153 (User Data Header takes 7 septets / 6 bytes for concatenation)
UCS-216-bit Unicode BMP (emoji, most non-Latin scripts)7067 (UDH consumes 3 of the 70 16-bit chars)

Concatenated SMS (often called “long SMS”) splits a body across segments. Each segment is a separate SMS for routing, retry, and A2P throughput. If one segment is lost, the handset may show nothing or a partial message. There is a practical cap on segment count (commonly around 3-10 in A2P programs; 3GPP allows more).

SMPP and delivery receipts

SMPP (Short Message Peer-to-Peer), typically version 3.4 or 5.0 over TCP, is the industry submission protocol between an application or CPaaS and an SMSC / messaging aggregator. The client binds (transmitter, receiver, or transceiver), submits PDUs (`submit_sm`), and receives `deliver_sm` for inbound MO (mobile-originated) messages and for delivery receipts.

DLR (delivery receipt)
A status the SMSC or aggregator returns for a submitted message: accepted, rejected, delivered, expired, deleted, or undeliverable. Intermediate states (enroute) also appear. A DLR is not end-to-end proof the human read the text; handsets and some networks never emit a final delivered event.
MO / MT
Mobile-originated (person to application) vs mobile-terminated (application to person). A2P programs are mostly MT with some MO for STOP, HELP, and keywords.
SMSC
Short Message Service Center: the store-and-forward node. On modern A2P paths this role is distributed across aggregators, CPaaS clouds, and operator SMSCs.

SMS vs MMS vs RCS

ServicePayloadSession featuresUS A2P note
SMSText segments (140 bytes)None (no typing indicators, no native receipts on all devices)10DLC, Short codes, or Toll-free texting
MMSMultimedia (size cap set by each carrier)Group threads on many handsetsSame registration as SMS on that number type
RCSRich cards, branding, larger media (where both ends support it)Read receipts, typing indicators, branded sender (RBM)Separate from 10DLC; Apple iOS 18 RCS is consumer texting, not iMessage Business