Peter Christensen wrote:

The operator which require this behavior is Cellebrum, if I remember correct, but NowSMS expect this behavior by default (but users can disable it). What it does is really transmitting the text in raw binary form when UDH is present.

Consider the UDH

06 00 03 56 02 02 (UDHL=6, last part of a concatenated SMS with ref. 0x56)

and message body:

"Test msg" (54 65 73 74 20 6D 73 67)

In binary form, split into septets, the body will look like:

06 00 0C 30 25 40 00 (this is the UDH) 54 65 73 74 20 6D 73 67

If we pack this into octets, we get:

06 00 03 56 02 02 A8 E5 39 1D D4 9E 9F 01

which will then be transmitted to the operator. The operator is now forced to guess the actual length in septets based on the length in octets, and in this particular example, the operator will assume 9 septets instead of the correct 8 (14*8/7 = 16 - 7 (udh) = 9).

The mobile will decode the message as:

"Test msg@" 54 65 73 74 20 6D 73 67 00)

So to avoid this (unless actually intentional), the message is padded with a space in case the total length of UDH + binary encoded message is unfortunate. So the patch would transmit

06 00 03 56 02 02 A8 E5 39 1D D4 9E 9F 61

which is decoded into

"Test msg " (54 65 73 74 20 6D 73 67 20)

I very much hope that gateways of this sort is very rare, but I posted the patch anyway. My vote for CVS commit is very much -1 (even though the feature is selectable through configuration)

Hmmm, I'm +0 (due to the fact it is selectable and there is no default behaviour change).

@Alex, Aarno??? Anyone else please... Opinions? Votes?

Stipe

-------------------------------------------------------------------
Kölner Landstrasse 419
40589 Düsseldorf, NRW, Germany

tolj.org system architecture      Kannel Software Foundation (KSF)
http://www.tolj.org/              http://www.kannel.org/

mailto:st_{at}_tolj.org           mailto:stolj_{at}_kannel.org
-------------------------------------------------------------------

Reply via email to