The numbers
Taken from the gateway’s own constants, not from the specification in general:
A message may be at most 255 segments.
The character that doubles your bill
One non-GSM-7 character forces the whole message to UCS-2, and the capacity drops from 160 to 70. A 150-character message that cost one segment now costs three. The usual culprits, all invisible when you look at the text:Check the price before you send
/secure/rate returns the segment count without sending anything:
submit_sm_count is the segment count. It costs nothing, sends nothing, and counts against no rate
limit — so it is reasonable to call it on user-generated content before committing to a send.
Setting the encoding yourself
coding maps to SMPP data_coding and is passed to the carrier unchanged, so it chooses how the
body is encoded, not merely how it is counted.
Anything else in 0–14 is accepted and decoded as UTF-8. 15 and above is a
400.
What a customer sees when it goes wrong
A message split into segments arrives as one message on a modern handset, because the concatenation header tells it how to reassemble. Two failure modes are worth knowing:- Segments arriving out of order or incomplete show as separate messages, often with visible fragments of header. That is a carrier problem, not an encoding one.
- A partly-delivered long message is reported FAILED, not partly delivered — resolution waits for the last segment and reports the worst outcome. That is the honest answer, and it moves delivery rates down relative to gateways that report the first segment.
Related
Concatenation
How segments are reassembled, and what that costs.
Price a message
Every field on
/secure/rate.