Hi Alexander, thank you for your reply.
I've already solved this problem with temporary solution. The problem is that I don't have access to source code of ESME. I placed another tcp-proxy between ESME and Kannel. It forwards all packets from ESME to Kannel and backwards except for submit_sm from ESME. submit_sm is getting analyzed and if message starts with FF FE it delete BOM and swap byte order in message itself. Also It replace command_length and sm_length. It suits well for my ESME behavior. In attachment is my source forked from https://github.com/begoon/go-tcpspy Best regards, Ivashchenko Yegor ________________________________ 差出人: Alexander Malysh <malys...@gmail.com> が の代理で送信Alexander Malysh <amal...@kannel.org> 送信日時: 2015年5月26日 11:42 宛先: Yegor Ivaschenko CC: Aurel Branzeanu; users@kannel.org 件名: Re: ESME - Opensmppbox - Kannel - SMSC Encoding problem Hi Yegor, as far as I understood your issue, you have just to use data_coding=0x08 on ESME side and encode msg body to UCS2. Alex Am 21.05.2015 um 12:06 schrieb Yegor Ivaschenko <yegor_ivasche...@exigenebit.com<mailto:yegor_ivasche...@exigenebit.com>>: Dear, Aurel. Thank you for your quick reply. I don't really sure want I should do next. Answer to you directly or maybe only to users@kannel or both. Teach me the procedure. Anyway, I did a lot of testing of my ESME behaviour. It has web interface, message input box and status bar which indicates how many characters entered and upper limit for current message. (i.e. < 5 / 140 >) As I know, UTF-16 (16-bit Unicode Transformation Format) is a character encoding capable of encoding all 1,112,064 possible characters in Unicode. The encoding is variable-length, as code points are encoded with one or two 16-bit code units. UTF-16 developed from an earlier fixed-width 16-bit encoding known as UCS-2 (for 2-byte Universal Character Set) once it became clear that a fixed-width 2-byte encoding could not encode enough characters to be truly universal. (http://en.wikipedia.org/wiki/UTF-16). So UCS-2 is always fixed 16-bit encoding. Also UCS-2 is always BE. This is what wiki says: UCS-2 encoding is defined to be big-endian only. In practice most software defaults to little-endian,[citation needed<http://en.wikipedia.org/wiki/Wikipedia:Citation_needed>] and handles a leading BOM to define the byte order just as in UTF-16. Although the similar designations UCS-2BE and UCS-2LE imitate the UTF-16 labels, they do not represent official encoding schemes. (http://en.wikipedia.org/wiki/UTF-16) Well, when I enter in my ESME something like this: "asdfÆäæë " (which are actually characters from ISO8859-1 chars table) it shows in status bar (9/140). When I send it to opensmppbox, with wireshark analysis I can see, that it uses 1 byte per character encoding. So It can't be UCS-2 or UTF-16. It's definitely latin-1 (or some other of ISO-8859 family). When I add some non-latin-1 character (like russian "ф" or japanese "テ" (te)) "asdfÆäæë фテ"status bar of ESME's message input box changes upper limit to 70. In wireshark dump I can see, that message send to opensmppbox has leading "FF FE" character which leads to LE encoding. Each character encoded with 2 bytes. So again, it's not UCS-2 (which, according to standard have to be Big Endian w/o BOM). It's either UTF-16 LE or non official UCS-2. So my ESME actually uses two encoding schemes depending on message itself. If needed I can provide dumps and logs. So one more time, SMSC need only pure UCS-2 (or UTF-16 BE w/o BOM). My ESME sends messages using ISO-8859-(1) and UTF-16 LE. My question is : Is there any way to cast all messages going from ESME to UTF-16 BE encoding by means of Kannel or some additional software in pair with Kannel? By the way, can you tell me were is that ticket considering this problem. Maybe I can help by providing further information like wireshark dump, kannel logs and configs etc. Best regards, Ivashchenko Yegor ________________________________ 差出人: Aurel Branzeanu <branzeanu.au...@gmail.com<mailto:branzeanu.au...@gmail.com>> 送信日時: 2015年5月21日 0:54 宛先: Yegor Ivaschenko CC: users@kannel.org<mailto:users@kannel.org> 件名: Re: ESME - Opensmppbox - Kannel - SMSC Encoding problem Hello, Yegor! On Wed, May 20, 2015 at 4:30 PM, Yegor Ivaschenko <yegor_ivasche...@exigenebit.com<mailto:yegor_ivasche...@exigenebit.com>> wrote: My ESME, based on characters used in message use 2 encoding type. I think it does not use 2 encodings, but just UCS-2, whose latin part matches ISO8859-1 There is, however, a very nasty bug when receiving messages to opensmppbox in UCS-2 (data_coding = 8) and using two alphabets, say, english and russian - I will submit a bug-report right now. -- Sincerely yours, Aurel Branzeanu, mailto: branzeanu.au...@gmail.com<mailto:branzeanu.au...@gmail.com> Skype: tvorogov GSM Orange: +373 6 940-7700 GSM Moldcell: +373 7 940-7700
gotcpspy.go
Description: gotcpspy.go