GSM 7bit alphabet and message characters count
Posted: Sat Jul 11, 2009 7:04 am
Hello! It seems that I have found a serious problem in your library.
According to SMPP v3.4 Protocol Implementation guide for GSM / UMTS, when the data_coding is set to SMSCDefault, the ESME shoud pass message text in one of the following encodings:
- SMSC default alphabet (7/8 bits)
- Latin 1 (8-bits)
- UCS2 (16-bits)
- Binary (8-bits)
And SMSC can pass messages to mobile terminal in one of the following encodings:
GSM default alphabet (7 bit)
USC2 (unicode)
In GSM default alphabet (http://www.dreamfabric.com/sms/default_alphabet.html) some characters: ^ ~ [ ] { } are encoded with usage of escape character. For example, tilde (~) is encoded as 0x1B3D.
Try to type a message on your mobile and you'll see that for these characters the characters counter is increased by 2.
So, when we submit a message to SMSC, even in Latin encoding, we must take this into account - we must count these characters as 2 "normal" characters to split long messages correctly.
According to SMPP v3.4 Protocol Implementation guide for GSM / UMTS, when the data_coding is set to SMSCDefault, the ESME shoud pass message text in one of the following encodings:
- SMSC default alphabet (7/8 bits)
- Latin 1 (8-bits)
- UCS2 (16-bits)
- Binary (8-bits)
And SMSC can pass messages to mobile terminal in one of the following encodings:
GSM default alphabet (7 bit)
USC2 (unicode)
In GSM default alphabet (http://www.dreamfabric.com/sms/default_alphabet.html) some characters: ^ ~ [ ] { } are encoded with usage of escape character. For example, tilde (~) is encoded as 0x1B3D.
Try to type a message on your mobile and you'll see that for these characters the characters counter is increased by 2.
So, when we submit a message to SMSC, even in Latin encoding, we must take this into account - we must count these characters as 2 "normal" characters to split long messages correctly.