Smartswitch supports following codecs:
|0x00||SMSC Default Alphabet (see below)|
|0x01||IA5 (CCITT T.50)/ASCII (ANSI X3.4)|
|0x02||Octet unspecified (8-bit binary)|
|0x03||Latin 1 (ISO-8859-1)|
|0x04||Octet unspecified (8-bit binary)|
|0x05||JIS (X 0208-1990)|
|0x0A||ISO-2022-JP (Music Codes)|
|0x0D||Extended Kanji JIS|
|0x0E||KS C 5601|
SMPP ID is encoded into SMPP message and receiver can learn from it the codec which should be used to decode message.
Besides codec 0x00 - by ID 0x00 it's impossible to know which codec was used to encode message, and one should appeal to partner to tell which codec is used for SMPP ID 0x00.
This is special SMPP ID.
In case if in SMS body codec 0x00 is specified, it means that peers have arranged (verbally or in written form) to use some special codec, which doesn't have dedicated by standard SMPP ID - so called default codec.
Both peers should configure the same default codec in settings of their systems.
In Smartswitch default codec is configured using an option with a same name in SMPP settings of a dial-peer.
As far SMS message doesn't contain used codec identifier (unlike other SMPP IDs), SMS delivery will work correctly only in case if both peers configure the same default codec.
Cyrillic and non-cyrillic codecs.¶
It's desirable to use codec 0x08 - UCS2.
This is Unicode, which supports codecs of all languages.
Other codecs should be used only if partner doesn't support UCS2 for some reason.
Smartswitch supports message translation on fly.
Translation occurs, if, according to terminator's settings, it's requested to send a message to him in codec, which differs from codec, which is used in incoming message from originator.
Smartswitch accepts messages from originator in any codec, and sends to terminator using the codec with greatest priority.
In case if terminator has several codecs configured, and one of them matches with accepted message codec, then translation doesn't occur.
In case if there is no way to avoid translation, Smartswitch tries to translate message to codec with highest priority.
In case if during message translation some symbols have been lost, for example when translating from cyrillic message to 0x03 - Latin 1, then Smartswitch tries to encode using the next priority codec from list.
In case if it's impossible to encode with none of the configured codecs without symbol loss - the message is not sent to terminator.