Since message settings can vary, we recommend you read through the following article to understand how Vibes handles encoding, TON, NPI, and more.


Vibes utilizes SMPP 3.4, and our default data encoding is ASCII/IA5. However, Vibes accepts also supports GSM 7 bit and UCS2. See our chart below to see the data code that maps to each charset:

Data CodingCharset
0SMSC Default (ASCII/IA5)
4GSM 7 bit
8UCS2 (ISO/IEC-10646)

Choosing an encoding language

Each carrier is different in their encoding support, which may seem like a potential problem for those sending encoded messages. However, as an aggregator, Vibes makes our best effort to translate a message from one encoding language to another, if necessary.

However, translating a message from one encoding system to another may change the number of bytes (size) of the message. The maximum size of a message is 140 bytes, and not all messages can be re-encoded and still fit within the 140 bytes. In that case, Vibes will use the carrier’s default encoding and replace any unrenderable characters with placeholders.

To maximize success of message encodings, we recommend that you authorize messages to be split into multiple messages when necessary. For our HTTP API, the flag is splitLongMessages=true. In SMPP, utilize the message_payload custom header, which allows messages to exceed 140 bytes. Note that multiple messages may incur additional fees.

Currently only ASCII is supported across all carriers. However, ASCII is limited in its character support which means some characters may not be able to be rendered. We recommend testing all your SMS sends on a variety of carriers to ensure your characters show up as expected.

Phone Number / MSISDN Formant

The SMSC supports the following formats:

  • National (10 digits)
  • International (11 digits)
  • E.164

Outgoing messages to mobile numbers in the US and Canada can be set in any of the previous formats. Outgoing messages to international numbers should be set in the E.164 format.

Incoming messages from US and Canada will default to the National format, however, they can be changed, if required, to any of the other supported formats during the set up process. Incoming messages from international numbers will always be in the E164 format.

TON, NPI and Other Settings

Source TON0 - for messages sent via Shortcode or Longcode

5 - for messages sent via Alphanumeric Code (non-US)
Source NPIAlways 0
Destination TONAlways 0 - Non-US/Canada MDNs must be sent in E.164 format.
Destination NPIAlways 0
System TypeNot used - Leave blank.
Service TypeNot used - Leave blank.
Validity PeriodNot used - Leave blank.

TLV Parameters

The following are additional Type Length Value (TLV) parameters that could be set on incoming and outgoing messages. Please see Optional Vibes TLVsfor the complete specification of each TLV.

Parameter NameOptional?Description
Carrier CodeYesUsed to identify the carrier on a message.
It will always be set on incoming messages and is optional on outgoing messages.
Alternate Message DeliveryYesUsed to specify if alternate message delivery should be used upon message failure.
This feature is not supported for concatenated messages.
Message PayloadYesUsed to send a long message greater than 140 bytes. This should be used whenever possible for long messages as it is a better option than UDH headers for multipart SMS.

Concatenated Messages

The SMSC supports concatenated MO and MT messages via the User Data Header (UDH). Note that Vibes only supports messages up to 900 characters. Messages over 900 characters may be truncated.

The User Data Header Indicator bit should be set to 1 in the ESM class for concatenated messages. Refer to Wikipedia for more information on how to construct the User Data Header.