# SMS

SMS carries at most 140 octets per message, which is 160 characters in its own seven-bit alphabet and 70 in the sixteen-bit one any non-Latin script forces. Longer text is split, billed and delivered as several segments. In Connect the inbound half works and outbound is **foundation**: it depends entirely on the configured provider, and the carrier on the live account carries no SMS at all.

- **Status:** Foundation
- **Audience:** both
- **Channels:** sms
- **In the app:** #/dlt
- **Last verified:** 2026-09-10
- **Canonical:** https://connectbyjbrh.com/docs/technology/sms/

## A side-channel that outlived its purpose

SMS was specified as spare capacity in the signalling that mobile networks already used to manage handsets. That origin explains almost every constraint people find surprising: the tiny payload, the odd alphabet, the absence of delivery guarantees, the store-and-forward model with a validity period after which an undelivered message is discarded.

It also explains its reach. Because it rides the network rather than the internet, it works on a handset with no data, no application and no account, which is why one-time codes and service notifications still arrive this way decades after better channels existed.

## What fits, and what one emoji costs

| Encoding | Used for | Single message | Per segment when concatenated |
|---|---|---|---|
| GSM 7-bit | Latin text within the standard alphabet | 160 characters | 153 characters |
| 8-bit data | Binary payloads, rarely for text | 140 bytes | 134 bytes |
| UCS-2 (16-bit) | Any character outside the 7-bit alphabet | 70 characters | 67 characters |

The third row is the one that ambushes people. Encoding is chosen for the **whole message**, not per character. A single curly quotation mark pasted from a word processor, one emoji, or a name in Devanagari or Telugu moves the entire text to the sixteen-bit alphabet and cuts its capacity from 160 characters to 70.

> **Note** Even inside the seven-bit alphabet a few characters — braces, square brackets, backslash, tilde, caret, the pipe and the euro sign — are encoded as an escape plus a character and therefore count twice. A message that looks like 159 characters can still overflow.

## What a long message actually becomes

Nothing about the protocol carries a long message. The sending side cuts it into pieces, puts a small header on each saying which piece this is and how many there are, and sends them as separate messages. The handset reassembles them for display. That header is why per-segment capacity drops from 160 to 153, and from 70 to 67.

- **Billing follows segments, not messages.** A 200-character Latin text is two messages, and a 100-character Telugu one is two as well.
- **Reassembly can fail.** Segments travel independently; a missing one leaves the recipient with a partial message or none, depending on the handset.
- **Order is not guaranteed.** The header lets the handset re-order, but a device that gives up on a missing piece shows what it has.
- **Length is a design constraint, not a formatting preference.** Composing to fit one segment is a real cost decision.

## Does Connect use SMS?

**Partly — and the honest word is `foundation`, not `available`.** Inbound SMS works: messages arrive, are de-duplicated, attach to the right relationship, and STOP handling with suppression works exactly as on any other channel.

Outbound does not work by itself. It depends entirely on the configured provider carrying SMS, and the carrier on the live account carries none. Rather than presenting a thread that cannot send, the readiness check on the Phone screen says so plainly. That is the whole distinction between the two status words: the model, the service and the tests exist, and the usable capability is deliberately narrower than the code.

In India there is a second gate on top of the provider one. Commercial SMS requires registration with the telecom operators — the entity, the sender identity and each message template — and that is a process conducted with the operators rather than a setting to switch on. The registration data has a home in Connect and lives behind the SMS · DLT screen; see [DLT registration](/docs/technology/dlt/).

## What SMS is bad at

**Confidentiality** — There is no end-to-end encryption. The message is readable in the network path. Nothing sensitive belongs in one, one-time codes very much included as a known weakness rather than a good practice.
**Certainty** — Delivery is best-effort with a validity period. A receipt, where one exists, may mean the operator took it rather than the handset.
**Identity** — The displayed sender can be an alphanumeric identity that is not a routable number, and on unregulated routes it is not hard to imitate. Registries exist because of this, not despite it.
**Conversation** — There is no threading, no typing state, no read state, and a reply may come from a different number than the one that sent.

None of that makes SMS useless — reach on any handset is a real advantage that no application-based channel matches. It makes it a poor default. The sensible position is to use it for short, non-sensitive, time-critical notification, and to hold conversation somewhere designed for it.

## Questions

### Why did my message cost two when it looked short?

Almost certainly encoding. One character outside the seven-bit alphabet — an emoji, a curly quote, a non-Latin script — moves the entire message to the sixteen-bit alphabet, where a single segment holds 70 characters. A few seven-bit characters such as braces and the euro sign also count twice.

### Can Connect send an SMS today?

Only through a provider that carries SMS. The carrier on the live account does not, so outbound is not available there and the interface says so rather than showing a thread that would fail. Inbound handling, de-duplication, STOP and suppression all work.

### Is SMS safe for one-time codes?

It is widely used for them and it is the weakest common option: no end-to-end encryption, and an identity that can be imitated on poorly regulated routes. Where a stronger factor is available, it is a better choice.

## Related

- [Receiving SMS](https://connectbyjbrh.com/docs/sms/inbound-sms/)
- [Sending SMS: what is available today](https://connectbyjbrh.com/docs/sms/sms-outbound-status/)
- [DLT — Distributed Ledger Technology registration in India](https://connectbyjbrh.com/docs/technology/dlt/)
- [Sender IDs](https://connectbyjbrh.com/docs/technology/sender-id/)
- [STOP and opt-out keywords](https://connectbyjbrh.com/docs/technology/stop-keyword/)
- [Unicode, scripts and transliteration](https://connectbyjbrh.com/docs/technology/unicode-and-scripts/)
- [Duplicate SMS](https://connectbyjbrh.com/docs/sms/sms-dedupe/)

## What this page is based on

- `docs-source/sources/CHANNELS.md` §3 — SMS and DLT
- GSM 03.38 alphabet and 3GPP TS 23.040 concatenation
- Connect capability registry (docs-source/facts.py)
