> On 08 Oct 2015, at 14:04, Hillel <hbil...@ecommunicate.co.za> wrote:
> 
> Hi Alex and Andreas,
> 
> Vodacom says send Latin-1 characters and set your data_coding field to 3 to 
> tell the SMSC to translate the characters from Latin-1 to GSM. So that if we 
> want to display the curly bracket ‘}’ you have to send the escape character 
> and the round bracket character: ESC + )  Data values:0x1B 0x29 and on the 
> phone you will see curly bracket ‘}’
> 

this is clearly non standard and it is not Latin1 neither. if you send } in 
UTF8 or latin1 into kannel then kannel will send 1B 29 on SMPP as thats the 
correct representaition in GSM cahracter set (DCS=0)

> How do you send this via Kannel if we can’t touch  the data_coding field?

you send "}" and kannel does the magic. You can see this in a tcpump or a 
kannel bearerbox core logfile (set log-level=0) in the submit_sm statement.

> If we can't send this correctly via Kannel to Vodacom SIM cards, will you 
> allow Kannel users to set the data_coding field?. (This means also allowing 
> the Kannel user to bypass the internal Kannel conversion so you can send 0x1B 
> 0x29 and the external SMSC will convert it to the curly bracket ‘} )

thats happening if you send &coding=0&text=}

> 
> Below is our attempt to send the curly bracket ‘}’ if we can get this to work 
> we should be able to send all the other characters that are like this.
> If you see http://www.developershome.com/sms/gsmAlphabet.asp 
> <http://www.developershome.com/sms/gsmAlphabet.asp>
> Right curly bracket is Hex 1B29 for GSM 7-bit default alphabet and 7D for ISO 
> 8859 Latin 1
> 
> lynx -dump 
> "http://41.185.24.138:13013/cgi-bin/sendsms?username=x&password=y&to=27831234567&text=%7D&from=27821278120&smsc=vodacom
>  
> <http://41.185.24.138:13013/cgi-bin/sendsms?username=x&password=y&to=27831234567&text=%7D&from=27821278120&smsc=vodacom>
>  "
> 
> In Smsbox it comes out as Right curly bracket:
> 2015-10-08 10:37:32 [28232] [3] INFO: sendsms sender:<x:27821278120> 
> to:<27831234567> msg:<}>
> 


> In Bearerbox it comes out as Right curly bracket:
> 2015-10-08 10:37:32 [28165] [12] DEBUG: SMPP[vodacom]: Sending PDU:
> 2015-10-08 10:37:32 [28165] [12] DEBUG: SMPP PDU 0x7f10a4007020 dump:
> 2015-10-08 10:37:32 [28165] [12] DEBUG:   type_name: submit_sm
> 2015-10-08 10:37:32 [28165] [12] DEBUG:   command_id: 4 = 0x00000004
> 2015-10-08 10:37:32 [28165] [12] DEBUG:   command_status: 0 = 0x00000000
> 2015-10-08 10:37:32 [28165] [12] DEBUG:   sequence_number: 2309 = 0x00000905
> 2015-10-08 10:37:32 [28165] [12] DEBUG:   service_type: NULL
> 2015-10-08 10:37:32 [28165] [12] DEBUG:   source_addr_ton: 1 = 0x00000001
> 2015-10-08 10:37:32 [28165] [12] DEBUG:   source_addr_npi: 1 = 0x00000001
> 2015-10-08 10:37:32 [28165] [12] DEBUG:   source_addr: "27821278120"
> 2015-10-08 10:37:32 [28165] [12] DEBUG:   dest_addr_ton: 1 = 0x00000001
> 2015-10-08 10:37:32 [28165] [12] DEBUG:   dest_addr_npi: 1 = 0x00000001
> 2015-10-08 10:37:32 [28165] [12] DEBUG:   destination_addr: "27831234567"
> 2015-10-08 10:37:32 [28165] [12] DEBUG:   esm_class: 3 = 0x00000003
> 2015-10-08 10:37:32 [28165] [12] DEBUG:   protocol_id: 0 = 0x00000000
> 2015-10-08 10:37:32 [28165] [12] DEBUG:   priority_flag: 0 = 0x00000000
> 2015-10-08 10:37:32 [28165] [12] DEBUG:   schedule_delivery_time: NULL
> 2015-10-08 10:37:32 [28165] [12] DEBUG:   validity_period: "151011103732000+"
> 2015-10-08 10:37:32 [28165] [12] DEBUG:   registered_delivery: 0 = 0x00000000
> 2015-10-08 10:37:32 [28165] [12] DEBUG:   replace_if_present_flag: 0 = 
> 0x00000000
> 2015-10-08 10:37:32 [28165] [12] DEBUG:   data_coding: 0 = 0x00000000
> 2015-10-08 10:37:32 [28165] [12] DEBUG:   sm_default_msg_id: 0 = 0x00000000
> 2015-10-08 10:37:32 [28165] [12] DEBUG:   sm_length: 1 = 0x00000001
> 2015-10-08 10:37:32 [28165] [12] DEBUG:   short_message: "}"

you should look at the bytes of the "short_message" not the visual 
representation. The visual representation is } but the bytes should be 1b 29. 
Check that with wireshark.

It could probably mean that your linx command sends some odd character set 
encoding in the HTTP request. The HTTP header will specify in which character 
set the request is.
Or you have some kannel config option to nail it to a specific one. Try the 
same with a browser or wget to see if you have different results.

> 
> But, on the cell phone it comes out as Small letter n with tilde.  Which is 
> 7D for the GSM 7-bit default alphabet
> This means Kannel is converting the 7D to }
> But Vodacom is not converting the 7D to } , as its expects the data_coding to 
> be 3 and to receive ESC + ) i.e. Data values:0x1B 0x29  so the cell phone 
> gets the wrong character.
> 
> If we try another approach and send %1B%29 which is the Right curly bracket 
> in GSM 7-bit default alphabet we get ?)
> on the cell phone.
> From bearerbox:   short_message: "?)"
> 
> Is there any way to send this via Kannel with its current internal encoding?

what version of kannel are you using? do you have any settings concerning 
character set in your config file?

> 
> Kind Regards
> 
> Hillel Bilman
> Manager eCommunicate
> mailto: hbil...@ecommunicate.co.za <mailto:hbil...@ecommunicate.co.za>
> Cell: 083-2300002
> Landline: 011-443-6164
> Fax: 088-011-443-6164
> 
> Mobile Wallets  - .mobi Sites – Mobile Apps(Android, iPhone, Blackberry, 
> Nokia) -  Premium Rated SMSs and short codes - SMS competitions and campaigns 
> – Lead Generation - opt-in subscription Billing – MMS campaigns - USSD 
> campaigns - WAP - Outlook SMS – Bulk SMS and Bulk Email – Email 2 SMS 2 Email 
> - Developer Kit for Mobile Services integration

Attachment: signature.asc
Description: Message signed with OpenPGP using GPGMail

Reply via email to