Thx for all the help, I wrote a simple PHP script to convert the chars into
GSM percent-encoded chars, and now it's working like a charm.

Thx!
Andreas

2011/5/23 Nikos Balkanas <[email protected]>

> Interesting no one has requested for it...
>
> BR,
> Nikos
> ----- Original Message ----- From: "Rene Kluwen" <[email protected]>
> To: "'Nikos Balkanas'" <[email protected]>; "'Nicolas de Bari Embriz
> Garcia Rojas'" <[email protected]>; <[email protected]>
> Sent: Monday, May 23, 2011 1:54 AM
> Subject: RE: gsm7 send messages > 140 <=160 chars length
>
>
>
> Afaik, gsm was last supported in Kannel 1.4.1.
> That's why I know some people are still using that version.
>
> == Rene
>
>
> -----Original Message-----
> From: [email protected] [mailto:[email protected]] On Behalf
> Of Nikos Balkanas
> Sent: Sunday, 22 May, 2011 23:28
> To: Nicolas de Bari Embriz Garcia Rojas; [email protected]
> Subject: Re: gsm7 send messages > 140 <=160 chars length
>
> Hi,
>
> Actually I just had a look at the smsbox.c code. It doesn't support gsm in
> cgi-bin/sendsms. That's why (2) comes out garbled. You should provide iso
> or
> utf-8 text urlencoded. Why your mobile doesn't display it correctly, it is
> a
> question of either your mobile's settings, or your SMScs.
>
> BR,
> Nikos
> ----- Original Message ----- From: "Nikos Balkanas" <[email protected]>
> To: "Nicolas de Bari Embriz Garcia Rojas" <[email protected]>;
> <[email protected]>
> Sent: Sunday, May 22, 2011 11:19 PM
> Subject: Re: gsm7 send messages > 140 <=160 chars length
>
>
> Hi,
>
> 1) Output is correct GSM and kannel sends it out correctly. You should
> contact your SMSc to see if they support GSM and if they do, why it is not
> displaying correctly on the mobile. Try also &text==%00%7D%05&coding=0.
> Should work and it is fewer characters to type.
> 2) data_coding 241 is for GSM. Kannel is trying to send GSM 03.38 but it
> doesn't look right. It actually sends in GSM: ?{?. Anyway just skip it.
> 3) Indeed UTF-8 will take up twice as many characters (other than latin-1)
> and maximum size is 80 <= size <= 160
>
> BR,
> Nikos
> ----- Original Message ----- From: "Nicolas de Bari Embriz Garcia Rojas"
> <[email protected]>
> To: "Nikos Balkanas" <[email protected]>; <[email protected]>
> Sent: Sunday, May 22, 2011 9:17 PM
> Subject: Re: gsm7 send messages > 140 <=160 chars length
>
>
> Hi, please find bellow the 3 different outputs of the  SMPP PDU log
>
> This one is using urlencode('@Ξ"Β±Ξ"Β(c)'); (message are not properly
>
> displayed on the phone but kannel send 3 chars as supposed based on
> the GSM charset: (smsc has NO alt-charset = "UTF-8") and seems
>
> &text=%40%C3%B1%C3%A9&coding=0
>
> --
> DEBUG: SMPP PDU 0x801febe80 dump:
> DEBUG:   type_name: submit_sm
> DEBUG:   command_id: 4 = 0x00000004
> DEBUG:   command_status: 0 = 0x00000000
> DEBUG:   sequence_number: 7 = 0x00000007
> DEBUG:   service_type: NULL
> DEBUG:   source_addr_ton: 0 = 0x00000000
> DEBUG:   source_addr_npi: 1 = 0x00000001
> DEBUG:   source_addr: "42865"
> DEBUG:   dest_addr_ton: 2 = 0x00000002
> DEBUG:   dest_addr_npi: 1 = 0x00000001
> DEBUG:   destination_addr: "9988776655"
> DEBUG:   esm_class: 3 = 0x00000003
> DEBUG:   protocol_id: 0 = 0x00000000
> DEBUG:   priority_flag: 0 = 0x00000000
> DEBUG:   schedule_delivery_time: NULL
> DEBUG:   validity_period: NULL
> DEBUG:   registered_delivery: 0 = 0x00000000
> DEBUG:   replace_if_present_flag: 0 = 0x00000000
> DEBUG:   data_coding: 0 = 0x00000000
> DEBUG:   sm_default_msg_id: 0 = 0x00000000
> DEBUG:   sm_length: 3 = 0x00000003
> DEBUG:   short_message:
> DEBUG:    Octet string at 0x80220fca0:
> DEBUG:      len:  3
> DEBUG:      size: 6
> DEBUG:      immutable: 0
> DEBUG:      data: 00 7d 05                                          .}.
> DEBUG:    Octet string dump ends.
> DEBUG: SMPP PDU dump ends.
> --
>
> This one is using:%00 %7D %05   (message are not properly displayed on
> the phone but kannel send 3 chars as supposed based on the GSM
> charset: (smsc has alt-charset = "UTF-8")
>
> text=%00%7D%05&coding=0&alt-dcs=1  (here i think kannel recodes the
> sms and does not recognize the alt-dsc)
>
> --
> DEBUG: SMPP PDU 0x801fe1040 dump:
> DEBUG:   type_name: submit_sm
> DEBUG:   command_id: 4 = 0x00000004
> DEBUG:   command_status: 0 = 0x00000000
> DEBUG:   sequence_number: 4974 = 0x0000136e
> DEBUG:   service_type: NULL
> DEBUG:   source_addr_ton: 0 = 0x00000000
> DEBUG:   source_addr_npi: 1 = 0x00000001
> DEBUG:   source_addr: "42865"
> DEBUG:   dest_addr_ton: 2 = 0x00000002
> DEBUG:   dest_addr_npi: 1 = 0x00000001
> DEBUG:   destination_addr: "9988776655"
> DEBUG:   esm_class: 3 = 0x00000003
> DEBUG:   protocol_id: 0 = 0x00000000
> DEBUG:   priority_flag: 0 = 0x00000000
> DEBUG:   schedule_delivery_time: NULL
> DEBUG:   validity_period: NULL
> DEBUG:   registered_delivery: 0 = 0x00000000
> DEBUG:   replace_if_present_flag: 0 = 0x00000000
> DEBUG:   data_coding: 241 = 0x000000f1
> DEBUG:   sm_default_msg_id: 0 = 0x00000000
> DEBUG:   sm_length: 4 = 0x00000004
> DEBUG:   short_message:
> DEBUG:    Octet string at 0x801f836a0:
> DEBUG:      len:  4
> DEBUG:      size: 1024
> DEBUG:      immutable: 0
> DEBUG:      data: 3f 1b 29 3f                                       ?.)?
> DEBUG:    Octet string dump ends.
> DEBUG: SMPP PDU dump ends.
> --
>
>
> This one works and is using urlencode('@Ξ"Β±Ξ"Β(c)'); (messages are correctly
>
> displayed on the phone but kannel is transmitting 5 chars instead of 3
> (gsm charset)
>
> message sent using: text=%40%C3%B1%C3&coding=0
>
> ---
> DEBUG: SMPP PDU 0x801fe1040 dump:
> DEBUG:   type_name: submit_sm
> DEBUG:   command_id: 4 = 0x00000004
> DEBUG:   command_status: 0 = 0x00000000
> DEBUG:   sequence_number: 4970 = 0x0000136a
> DEBUG:   service_type: NULL
> DEBUG:   source_addr_ton: 0 = 0x00000000
> DEBUG:   source_addr_npi: 1 = 0x00000001
> DEBUG:   source_addr: "42865"
> DEBUG:   dest_addr_ton: 2 = 0x00000002
> DEBUG:   dest_addr_npi: 1 = 0x00000001
> DEBUG:   destination_addr: "9988776655"
> DEBUG:   esm_class: 3 = 0x00000003
> DEBUG:   protocol_id: 0 = 0x00000000
> DEBUG:   priority_flag: 0 = 0x00000000
> DEBUG:   schedule_delivery_time: NULL
> DEBUG:   validity_period: NULL
> DEBUG:   registered_delivery: 0 = 0x00000000
> DEBUG:   replace_if_present_flag: 0 = 0x00000000
> DEBUG:   data_coding: 0 = 0x00000000
> DEBUG:   sm_default_msg_id: 0 = 0x00000000
> DEBUG:   sm_length: 5 = 0x00000005
> DEBUG:   short_message:
> DEBUG:    Octet string at 0x801e66560:
> DEBUG:      len:  5
> DEBUG:      size: 6
> DEBUG:      immutable: 0
> DEBUG:      data: 40 c3 b1 c3 a9                                    @....
> DEBUG:    Octet string dump ends.
> DEBUG: SMPP PDU dump ends.
> ---
>
>
> So far only using alt-charset = "UTF-8" on the smsc and url encoding
> the GSM chars works but sending chars over ASCII 126 start to use
> twice the space where in theory if I am right if they are coded using
> the  GSM charset must consume 1 space.
>
> Thanks in advance.
>
> regards.
>
>
> 2011/5/21 Nikos Balkanas <[email protected]>:
>
>> Hi,
>>
>> I saw that. But you never posted your submit_sm PDU from that attempt.
>> Something else might be wrong. Please do.
>>
>> BR,
>> Nikos
>> ----- Original Message ----- From: "Nicolas de Bari Embriz Garcia Rojas"
>> <[email protected]>
>> To: "Nikos Balkanas" <[email protected]>; <[email protected]>
>> Sent: Saturday, May 21, 2011 3:46 AM
>> Subject: Re: gsm7 send messages > 140 <=160 chars length
>>
>>
>> Hi, thanks for the reply, as said on the first email, when using this:
>>
>> text=%00%7D%05&coding=0&alt-dcs=1
>>
>> the characters are not properly Ξ' displayed on the phone
>>
>>
>> the only way I can get the chars to be displayed correctly is using
>> alt-charset = "UTF-8" but with this i can just send a max of 140 chars
>>
>> or coding the messages with UCS-2 but that limit to 70 chars
>>
>> Could it be an issue with Ξ' kannel or a parameter that i could be
>>
>> missing ? since looks like if internally maybe when using iconv, is
>> treating the GSM like ASCII since the latin char n with tilde Ξ β EURO Ξ'Β±
>> and Ξ β EURO Ξ'Β(c)
>>
>> is using 2 bytes instead of 1 like supposed to be the GSM charset
>>
>> regards.
>>
>> 2011/5/20 Nikos Balkanas <[email protected]>:
>>
>>>
>>> Hi,
>>>
>>> 1) mo-recode is for incoming, not outgoing SMS. Read UG about it.
>>> 2) SMSc submit_sm PDU takes precedence over access log. If it shows 3
>>> Bytes,
>>> it sends only 3 Bytes. I don't know access log that well, it may be
>>> mistaken.
>>> 3) Correct sendsms to send as GSM is:
>>>
>>> text=%00%7D%05&coding=0&alt-dcs=1
>>>
>>> Use alt-dcs if you have alt-charset in your smsc configuration and want
>>> to
>>> force gsm.
>>>
>>> BR,
>>> Nikos
>>> ----- Original Message ----- From: "Nicolas de Bari Embriz Garcia Rojas"
>>> <[email protected]>
>>> To: <[email protected]>
>>> Sent: Friday, May 20, 2011 5:47 PM
>>> Subject: gsm7 send messages > 140 <=160 chars length
>>>
>>>
>>> Hi all, this topic has been discussed several times, but I still
>>> haven't found how to properly send messages > 140 <= 160 char length
>>> including only the GSM 03.38 charset.
>>>
>>> for example, how to send a text messages of 160 characters including
>>> only chars like @ Ξ Β  Ξ' Ξ Β Ξ β EURO °.
>>>
>>>
>>> I updated my sources to the latest available on the SVN: REvision
>>> 4908, and configured kannel with the following options:
>>>
>>> ./configure --with-defaults=speed --enable-docs=no
>>> --with-malloc=native --enable-start-stop-daemon=no --prefix=/usr/local
>>> --with-libs=-lpthread --with-mysql --disable-localtime
>>> --with-cflags=-L/usr/local/lib -I/usr/local/include
>>>
>>> I had to use the --with-cflags="-L/usr/local/lib -I/usr/local/include"
>>> so that on my system (FreeBSD 8.1 amd64) It could find iconv
>>>
>>> after compiling and installing the file gw-config.h seems to properly
>>> been using iconv:
>>> /* Defines for iconv. Ξ β EURO (tm) */
>>>
>>> #define HAVE_ICONV 1
>>> #define ICONV_CONST const
>>>
>>> Kannel is up and running (sending/receiving messages) my smsc conf is
>>> like
>>> this:
>>> group = smsc
>>> smsc = smpp
>>> smsc-id = "T42865"
>>> allowed-smsc-id = "T42865"
>>> transceiver-mode = 1
>>> host = 10.23.15.4
>>> our-host = 10.14.19.7
>>> port = 8808
>>> receive-port = 0
>>> smsc-username = "username"
>>> smsc-password = "password"
>>> system-type = NULL
>>> address-range = ""
>>> source-addr-ton = 0
>>> source-addr-npi = 1
>>> dest-addr-ton = 2
>>> dest-addr-npi = 1
>>> msg-id-type = 0x01
>>> log-file = "/var/log/kannel/smsc/T42865.log"
>>> log-level = 0
>>>
>>> And my smsbox is like this:
>>> group = smsbox
>>> bearerbox-host = localhost
>>> sendsms-port = 13013
>>> sendsms-chars = "0123456789 "
>>> log-file = "/var/log/kannel/smsbox/smsbox.log"
>>> log-level = 1
>>> access-log = "/var/log/kannel/smsbox/access.log"
>>> mo-recode = true
>>> http-request-retry = 10
>>> http-queue-delay = 30
>>>
>>>
>>> With this configuration If I want to send Ξ β EURO (tm) the chars "@ Ξ Β  
>>> Ξ' or Ξ
>>> Β Ξ β EURO °" Ξ β EURO (tm)
>>>
>>> I
>>> just urlencode the values and send them with coding=0
>>>
>>> $msg = urlencode('@Ξ Β  Ξ Β Ξ β EURO °');
>>>
>>>
>>> so $msg is %40%C3%B1%C3%A9
>>>
>>> where:
>>> %40 on UTF-8 is = Ξ β EURO (tm) 00 on gsm
>>> %C3%B1 on UTF-8 is = Ξ β EURO (tm) 7D on gsm
>>> %C3%A9 on UTF-8 is = Ξ β EURO (tm) 05 on gsm
>>>
>>> I send Ξ β EURO (tm) the message like:
>>>
>>>
>>> cgi-bin/sendsms?text=%40%C3%B1%C3%A9&coding=0....
>>>
>>> on the debug logs I see the following:
>>> Ξ β EURO (tm) [12] DEBUG: Ξ β EURO (tm) Ξ β EURO (tm) Octet string at 
>>> 0x801ef4e60:
>>> Ξ β EURO (tm) [12] DEBUG: Ξ β EURO (tm) Ξ β EURO (tm) Ξ β EURO (tm) len: Ξ 
>>> β EURO (tm) 3
>>> Ξ β EURO (tm) [12] DEBUG: Ξ β EURO (tm) Ξ β EURO (tm) Ξ β EURO (tm) size: 6
>>> Ξ β EURO (tm) [12] DEBUG: Ξ β EURO (tm) Ξ β EURO (tm) Ξ β EURO (tm) 
>>> immutable: 0
>>> Ξ β EURO (tm) [12] DEBUG: Ξ β EURO (tm) Ξ β EURO (tm) Ξ β EURO (tm) data: 
>>> 00 7d 05 .}.
>>> Ξ β EURO (tm) [12] DEBUG: Ξ β EURO (tm) Ξ β EURO (tm) Octet string dump 
>>> ends.
>>>
>>>
>>> where seems that kannel is properly converting from UTF-8 go the GSM 7
>>> bit charset
>>> DEBUG: Ξ β EURO (tm) Ξ β EURO (tm) Ξ β EURO (tm) data: 00 7d 05
>>>
>>>
>>> but later on the bearerbox (access.log) I get something like this:
>>>
>>> [msg:5:@....] [udh:0:]
>>>
>>> If I am right, it means it is using 5 characters to send the @Ξ Β  Ξ Β Ξ
>>> β EURO °
>>>
>>> Now If I add to the Ξ β EURO (tm) smsc this:
>>>
>>> alt-charset = "UTF-8"
>>>
>>> the debug output is:
>>> DEBUG: Ξ β EURO (tm) data: 40 c3 b1 c3 a9 Ξ β EURO (tm) Ξ β EURO (tm) Ξ β 
>>> EURO (tm) Ξ β EURO (tm) Ξ β EURO (tm) Ξ β EURO (tm) Ξ
>>> β EURO (tm) Ξ β EURO (tm) Ξ β EURO (tm) Ξ β EURO (tm) Ξ β EURO (tm) Ξ β 
>>> EURO (tm) Ξ β EURO (tm) Ξ β EURO (tm)
>>> Ξ β EURO (tm) Ξ β EURO (tm) Ξ β EURO (tm) Ξ β EURO (tm) @....
>>>
>>>
>>> and the bearerbox (access.log) is the same:
>>> [msg:5:@....] [udh:0:]
>>>
>>> But in this time the txt messages was Ξ β EURO (tm) properly delivering to 
>>> the
>>> users displaying the chars @Ξ Β  Ξ Β Ξ β EURO ° instead of just ??? but the
>>> size of
>>>
>>> the
>>> sent messages was again 5 instead of 3.
>>>
>>> So my question is how to properly code or send the message to use only
>>> 3 chars instead of 5 when sending only gsm-7 chars.
>>>
>>> I have also try using this:
>>>
>>> text=%00%7D%05&coding=0&alt-dcs=1
>>>
>>> of
>>>
>>> text=007D05&coding=0&alt-dsc=1
>>>
>>> but the message received by the phone din't display the chars. also
>>> changing mo-encode true/false din't help.
>>>
>>> When using UCS-2 and coding=2 the chars are displayed on the mobile
>>> but I can only send a max of 70 chars. and I would like to send 160.
>>>
>>> Any idea of how to do it?
>>>
>>> thanks in advance.
>>>
>>>
>>>
>>
>>
>
>
>
>
>
>


-- 
Andreas Bergman
www.abergman.se
0708-768300
[email protected]

Reply via email to