Hi,
I still have a problem when I try to receive binary sms from mobile
phone. I received advice from Andreas Fink. Thanks him for that!
But as I understand the parameters he proposed to set up related to the
situation when we want to send SMS from gateway to device.
I want to set coding parameter and charset parameter to gateway. So it can
use them when he converts binary data to URL. In specification we have %С
and %с. But that is used when we want to receive information about coding
and charset from gateway. They isn't used to set up that parameters. I wrote
advice and problem description below. Could you tell me how I can tune the
gateway to receive correct data. Thank you!
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
ADVICE:
A GSM phone doesnt use WINDOWS-1252 charset but it uses GSM-Charset..
The GSM character set is 7 bit, so you can not have values of 128-159
in it.
very few characters are coded with an escape sequence.
I think your problem is that if you send binary message, you should
tell kannel that its binary 8 bit instead of standard 7 bit. Kannel
will otherwise try to convert. I presume it will try converting from
ISO (not Windows 1252) to GSM and back. Setting the coding parameter
to the right value (see users guide) should make it send binary 8 bit
messages.
if used in passing it on http to kannel pass it as &coding=...
HTTP Get:
&coding=
message coding: 0 (default, 7 bits), 1 (8 bits) or 2 (Unicode)
&charset=
as in Content-Type: text/html; charset=ISO-8859-1
HTTP Put:.
X-Kannel-Coding for message coding
If unset, defaults to 0 (7 bits) if Content-Type is text/plain , text/html
or text/vnd.wap.wml.
On application/octet-stream, defaults to 8 bits (1). All other Content-Type
values are rejected.
Content-Type for charset
if used in receiving a URL from kannel, use the placeholder %c for the
coding parameter and %C for the charset parameter
from Kannel -> http server:
%c message coding: 0 (default, 7 bits), 1 (8 bits) or 2 (Unicode)
%C message charset: for a "normal" message, it will be "GSM" (coding=0),
"binary" (coding=1) or "UTF-16BE" (coding=2). If the message was
successfully recoded from Unicode, it will be "WINDOWS-1252"
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
ORIGINAL PROBLEM DESCRIPTION :
I have a question. I try send binary message to gateway from mobile phone:
>
> byte[] original = {77, 67, 65, 83, 72, 32, 33, 216, 21, 199, 102, 84, 199,
> 230, 2, 164, 183, 47, 130, 157, 125, 96, 186, 213, 42, 94, 79, 203, 210, 50,
> 76, 232, 174, 76, 49, 146, 187, 217, 34, 27, 18, 135, 197, 64, 82, 197, 66,
> 65, 115, 213, 23, 77, 153, 34, 243, 58, 231, 220, 192, 11, 120, 15, 9, 148,
> 53, 215, 126, 2, 110, 38, 11, 135, 190, 176, 107, 155, 231, 2, 176, 159, 86,
> 132, 128, 45, 91, 144, 98, 63, 115, 110, 228, 37, 200, 194, 38, 219, 135,
> 41, 233, 138, 117, 246, 29, 211, 6, 213, 178, 216, 79, 70, 0, 45, 187, 223,
> 189, 110, 99, 228, 108, 196, 33, 72, 125, 64, 135, 218, 202, 228, 216, 170,
> 62, 80, 139, 128, 0, 0, 0, 0, 0, 0};
>
> I received from gateway next binary parameter:
>
>
> MCASH+!%D8%15%C7fT%C7%E6%02%A4%B7%2F%1A%1A%7D%60%BA%D5*%5EO%CB%D22L%E8%AEL1%1A%BB%D9%22%1B%12%1A%C5%40R%C5BAs%D5%17M%1A%22%F3%3A%E7%DC%C0%0Bx%0F%09%1A5%D7~%02n%26%0B%1A%BE%B0k%1A%E7%02%B0%1AV%1A%1A-%5B%1Ab%3Fsn%E4%25%C8%C2%26%DB%1A)%E9%1Au%F6%1D%D3%06%D5%B2%D8OF%00-%BB%DF%BDnc%E4l%C4!H%7D%40%1A%DA%CA%E4%D8%AA%3EP%1A%1A%00%00%00%00%00%00
>
> And then do URL decoding with using WINDOWS-1252 charset:
>
> byte[] data = {77, 67, 65, 83, 72, 32, 33, 216, 21, 199, 102, 84, 199,
> 230, 2, 164, 183, 47, 26, 26, 125, 96, 186, 213, 42, 94, 79, 203, 210, 50,
> 76, 232, 174, 76, 49, 26, 187, 217, 34, 27, 18, 26, 197, 64, 82, 197, 66,
> 65, 115, 213, 23, 77, 26, 34, 243, 58, 231, 220, 192, 11, 120, 15, 9, 26,
> 53, 215, 126, 2, 110, 38, 11, 26, 190, 176, 107, 26, 231, 2, 176, 26, 86,
> 26, 26, 45, 91, 26, 98, 63, 115, 110, 228, 37, 200, 194, 38, 219, 26, 41,
> 233, 26, 117, 246, 29, 211, 6, 213, 178, 216, 79, 70, 0, 45, 187, 223, 189,
> 110, 99, 228, 108, 196, 33, 72, 125, 64, 26, 218, 202, 228, 216, 170, 62,
> 80, 26, 26, 0, 0, 0, 0, 0, 0};
>
> The data a bit different. Bytes from 128 to 159 converts to 26. I think
> range is a bit bigger. But it is not important.
> My question to you. Do I something wrong? Or we lost that bytes when
> gateway performs converting? May be it happens when gateway tries to convert
> bytes to unicode/utf-8?
> Could I fix that? Could I change config files or sources?
>
>
>
>
>
>