Hi Alex,

yes, you have to do the same with UDH data...

Am 05.11.2010 um 18:54 schrieb Alejandro Guerrieri:

> Should't we do the same with the "udhdata" field as well?
> 
> Regards,
> 
> Alex
> --
> Alejandro Guerrieri
> [email protected]
> 
> 
> 
> On 02/11/2010, at 21:02, Stipe Tolj wrote:
> 
>> Hi list,
>> 
>> there have been recently people trying to us the sqlbox daemon with UCS-2
>> (Unicode) payload data, which didn't work out and the received messages have
>> been totally crippled.
>> 
>> I gave it a glance on the source code level, and found out a flaw in how 
>> sqlbox
>> "assumes" about character encoding of the msg->sms.msgdata payload.
>> 
>> The userguide tells us this: "Contents of the message, URL encoded as
>> necessary". To addopt the way smsbox works on the HTTP abstractive layer, 
>> sqlbox
>> is also expecting UTF-8 as input if no coding value is set, and UCS-2 ie. for
>> coding=2. Now, you can't put this payload in the table natively, if the table
>> has alternative character encoding scheme defined, ie. latin1. To overcome 
>> this
>> problem sqlbox enforces the use of URL-encoded data in the 'msgdata' table
>> field. Which ensures we have a representation in ASCII via the URL-encoded
>> values and there is no class with the underlying character scheme for the 
>> table.
>> 
>> In fact the existing sqlbox assumed that it is hex byte Octstr stream for 
>> UCS-2
>> (coding=2), so the conversions totally produced bugs data.
>> 
>> The attached patch solves the issue, by:
>> 
>> 1. keeping the userguide assumption and requirement that ALL data is 
>> injected in
>> the 'msgdata' field of type TEXT as URL-encoded data. Optionall coding can be
>> set to indicate the character representation of the actual payload.
>> 
>> 2. we use a fork of smsbox's charset_processing() routine to map from defined
>> other character sets and make sure we URL-decode in first instance to obtain 
>> the
>> raw byte data.
>> 
>> 3. use a #define function for gw_sql_save_msg() to URL-encode again the
>> msg->sms.msgdata before calling the DB specific pointer function. This 
>> ensures
>> we have URL-encoded data again the the 'msgdata' table field.
>> 
>> Please review and comment.
>> 
>> 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
>> -------------------------------------------------------------------
>> <sqlbox-character-encoding.diff>
> 
> 


Reply via email to