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 ñ and é is using 2 bytes instead of 1 like supposed to be the GSM charset regards. 2011/5/20 Nikos Balkanas : > 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" > > To: > 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 @ ρ ι. > > 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. */ > #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 the chars "@ ρ or ι" I > just urlencode the values and send them with coding=0 > > $msg = urlencode('@ρι'); > > so $msg is %40%C3%B1%C3%A9 > > where: > %40 on UTF-8 is = 00 on gsm > %C3%B1 on UTF-8 is = 7D on gsm > %C3%A9 on UTF-8 is = 05 on gsm > > I send the message like: > > cgi-bin/sendsms?text=%40%C3%B1%C3%A9&coding=0 > > on the debug logs I see the following: > [12] DEBUG: Octet string at 0x801ef4e60: > [12] DEBUG: len: 3 > [12] DEBUG: size: 6 > [12] DEBUG: immutable: 0 > [12] DEBUG: data: 00 7d 05 .}. > [12] DEBUG: Octet string dump ends. > > where seems that kannel is properly converting from UTF-8 go the GSM 7 > bit charset > DEBUG: 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 @ρι > > Now If I add to the smsc this: > alt-charset = "UTF-8" > > the debug output is: > DEBUG: data: 40 c3 b1 c3 a9 @ > > and the bearerbox (access.log) is the same: > [msg:5:@] [udh:0:] > > But in this time the txt messages was properly delivering to the > users displaying the chars @ρι 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. > >
Re: gsm7 send messages > 140 <=160 chars length
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" To: 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 @ ρ ι. 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. */ #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 the chars "@ ρ or ι" I just urlencode the values and send them with coding=0 $msg = urlencode('@ρι'); so $msg is %40%C3%B1%C3%A9 where: %40 on UTF-8 is = 00 on gsm %C3%B1 on UTF-8 is = 7D on gsm %C3%A9 on UTF-8 is = 05 on gsm I send the message like: cgi-bin/sendsms?text=%40%C3%B1%C3%A9&coding=0 on the debug logs I see the following: [12] DEBUG:Octet string at 0x801ef4e60: [12] DEBUG: len: 3 [12] DEBUG: size: 6 [12] DEBUG: immutable: 0 [12] DEBUG: data: 00 7d 05 .}. [12] DEBUG:Octet string dump ends. where seems that kannel is properly converting from UTF-8 go the GSM 7 bit charset DEBUG: 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 @ρι Now If I add to the smsc this: alt-charset = "UTF-8" the debug output is: DEBUG: data: 40 c3 b1 c3 a9@ and the bearerbox (access.log) is the same: [msg:5:@] [udh:0:] But in this time the txt messages was properly delivering to the users displaying the chars @ρι 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.
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 @ ñ é. 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. */ #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 the chars "@ ñ or é" I just urlencode the values and send them with coding=0 $msg = urlencode('@ñé'); so $msg is %40%C3%B1%C3%A9 where: %40 on UTF-8 is = 00 on gsm %C3%B1 on UTF-8 is = 7D on gsm %C3%A9 on UTF-8 is = 05 on gsm I send the message like: cgi-bin/sendsms?text=%40%C3%B1%C3%A9&coding=0 on the debug logs I see the following: [12] DEBUG:Octet string at 0x801ef4e60: [12] DEBUG: len: 3 [12] DEBUG: size: 6 [12] DEBUG: immutable: 0 [12] DEBUG: data: 00 7d 05 .}. [12] DEBUG:Octet string dump ends. where seems that kannel is properly converting from UTF-8 go the GSM 7 bit charset DEBUG: 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 @ñé Now If I add to the smsc this: alt-charset = "UTF-8" the debug output is: DEBUG: data: 40 c3 b1 c3 a9@ and the bearerbox (access.log) is the same: [msg:5:@] [udh:0:] But in this time the txt messages was properly delivering to the users displaying the chars @ñé 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.
Re: I/O error or other error. Re-connecting.
Hi, Your problem is pretty clear from your logs. Kannel cannot connect to your smsc. Either you have the wrong settings, or you have a network problem. You should try connecting to it from the shell. It seems that your transmit port is wrong. Meanwhile, it seems that your receive port is connected, and therefore you can receive stuff from the smsc. Eventually, once your receive connection is establisehed, kannel will stop trying to reconnect the transmit end (this is a known kannel bug). You should really try using transceiver mode if you can. BR, Nikos - Original Message - From: Lee Vidor To: users@kannel.org Sent: Friday, May 20, 2011 11:23 AM Subject: I/O error or other error. Re-connecting. Hi group, Strange on really. The following is my current setup (from status page) Kannel bearerbox version `svn-r4901'. Build `Apr 18 2011 02:30:03', compiler `4.1.2 20080704 (Red Hat 4.1.2-48)'. System Linux, release 2.6.18-194.32.1.el5, version #1 SMP Wed Jan 5 17:52:25 EST 2011, machine x86_64. Hostname 28793_1_570919, IP 127.0.1.1. Libxml version 2.6.26. Using OpenSSL 0.9.8e-fips-rhel5 01 Jul 2008. Using native malloc. About every hour I get the following message in my kannel log file: 2011-05-20 08:02:28 [4308] [6] ERROR: SMPP[ABCDE]: I/O error or other error. Re-connecting. 2011-05-20 08:02:28 [4308] [6] ERROR: SMPP[ABCDE]: Couldn't connect to SMS center (retrying in 10 seconds). 2011-05-20 08:02:28 [4308] [7] ERROR: SMPP[ABCDE]: I/O error or other error. Re-connecting. 2011-05-20 08:02:28 [4308] [7] ERROR: SMPP[ABCDE]: Couldn't connect to SMS center (retrying in 10 seconds). 2011-05-20 08:02:38 [4308] [6] DEBUG: Connecting to <123.123.123.123> 2011-05-20 08:02:38 [4308] [7] DEBUG: Connecting to <123.123.123.123> Then after this i can no longer submit_sm but can receive deliver_sm for older messages fine. When I then attempt to submit_sm I get the following: 2011-05-20 07:59:54 [553] [9] DEBUG: boxc_receiver: sms received 2011-05-20 07:59:54 [553] [9] DEBUG: send_msg: sending msg to boxc: 2011-05-20 07:59:54 [553] [8] DEBUG: clear_old_concat_parts called 2011-05-20 07:59:54 [553] [8] DEBUG: sms_router: handling message (0x9016470 vs 0x9016470) 2011-05-20 07:59:54 [553] [8] DEBUG: Routing failed, re-queued. 2011-05-20 07:59:54 [553] [8] DEBUG: sms_router: handling message (0x9016470 vs 0x9016470) 2011-05-20 07:59:54 [553] [8] DEBUG: Routing failed, re-queued. 2011-05-20 07:59:54 [553] [8] DEBUG: sms_router: time to sleep 30.00 secs. 2011-05-20 07:59:54 [553] [8] DEBUG: sms_router: gwlist_len = 1 2011-05-20 07:59:54 [553] [8] DEBUG: sms_router: handling message (0x9016470 vs 0x9016470) 2011-05-20 07:59:54 [553] [8] DEBUG: Routing failed, re-queued. 2011-05-20 07:59:54 [553] [8] DEBUG: sms_router: handling message (0x9016470 vs 0x9016470) 2011-05-20 07:59:54 [553] [8] DEBUG: Routing failed, re-queued. 2011-05-20 07:59:54 [553] [8] DEBUG: sms_router: time to sleep 30.00 secs. 2011-05-20 07:59:58 [553] [6] DEBUG: SMPP[ABCDE]: Sending enquire link: If I then restart, all is okay. Current config: group = core dlr-storage = pgsql admin-port = 13000 admin-password = password status-password = password admin-allow-ip = '' smsbox-port = 13001 log-level = 0 log-file = "/tmp/kannelclient.log" box-allow-ip = "127.0.0.1" group = pgsql-connection id = mydlr host = localhost username = postgres password = password database = dlr max-connections =20 group = dlr-db id = mydlr table = dlr field-smsc = smsc field-timestamp = ts field-destination = destination field-source = source field-service = service field-url = url field-mask = mask field-status = status field-boxc-id = boxc group = smsbox smsbox-id = BOX1 bearerbox-host = 127.0.0.1 sendsms-port = 13013 log-file = "tmp/smsbox.log" log-level = 0 access-log = "/tmp/access.log" group = sendsms-user username = user password = password group = smsc smsc = smpp smsc-id = ABCDE host = 123.123.123.123 port = 7774 receive-port = 7775 smsc-username = username smsc-password = password address-range = "" system-type= "" enquire-link-interval = 30 dest-addr-npi = 1 dest-addr-ton = 1 group = smsbox-route smsc-id = ABCDE smsbox-id = BOX1 Has anyone seen this issue before ? Regards, Lee
I/O error or other error. Re-connecting.
Hi group, Strange on really. The following is my current setup (from status page) Kannel bearerbox version `svn-r4901'. Build `Apr 18 2011 02:30:03', compiler `4.1.2 20080704 (Red Hat 4.1.2-48)'. System Linux, release 2.6.18-194.32.1.el5, version #1 SMP Wed Jan 5 17:52:25 EST 2011, machine x86_64. Hostname 28793_1_570919, IP 127.0.1.1. Libxml version 2.6.26. Using OpenSSL 0.9.8e-fips-rhel5 01 Jul 2008. Using native malloc. About every hour I get the following message in my kannel log file: 2011-05-20 08:02:28 [4308] [6] ERROR: SMPP[ABCDE]: I/O error or other error. Re-connecting. 2011-05-20 08:02:28 [4308] [6] ERROR: SMPP[ABCDE]: Couldn't connect to SMS center (retrying in 10 seconds). 2011-05-20 08:02:28 [4308] [7] ERROR: SMPP[ABCDE]: I/O error or other error. Re-connecting. 2011-05-20 08:02:28 [4308] [7] ERROR: SMPP[ABCDE]: Couldn't connect to SMS center (retrying in 10 seconds). 2011-05-20 08:02:38 [4308] [6] DEBUG: Connecting to <123.123.123.123> 2011-05-20 08:02:38 [4308] [7] DEBUG: Connecting to <123.123.123.123> Then after this i can no longer submit_sm but can receive deliver_sm for older messages fine. When I then attempt to submit_sm I get the following: 2011-05-20 07:59:54 [553] [9] DEBUG: boxc_receiver: sms received 2011-05-20 07:59:54 [553] [9] DEBUG: send_msg: sending msg to boxc: 2011-05-20 07:59:54 [553] [8] DEBUG: clear_old_concat_parts called 2011-05-20 07:59:54 [553] [8] DEBUG: sms_router: handling message (0x9016470 vs 0x9016470) 2011-05-20 07:59:54 [553] [8] DEBUG: Routing failed, re-queued. 2011-05-20 07:59:54 [553] [8] DEBUG: sms_router: handling message (0x9016470 vs 0x9016470) 2011-05-20 07:59:54 [553] [8] DEBUG: Routing failed, re-queued. 2011-05-20 07:59:54 [553] [8] DEBUG: sms_router: time to sleep 30.00 secs. 2011-05-20 07:59:54 [553] [8] DEBUG: sms_router: gwlist_len = 1 2011-05-20 07:59:54 [553] [8] DEBUG: sms_router: handling message (0x9016470 vs 0x9016470) 2011-05-20 07:59:54 [553] [8] DEBUG: Routing failed, re-queued. 2011-05-20 07:59:54 [553] [8] DEBUG: sms_router: handling message (0x9016470 vs 0x9016470) 2011-05-20 07:59:54 [553] [8] DEBUG: Routing failed, re-queued. 2011-05-20 07:59:54 [553] [8] DEBUG: sms_router: time to sleep 30.00 secs. 2011-05-20 07:59:58 [553] [6] DEBUG: SMPP[ABCDE]: Sending enquire link: If I then restart, all is okay. Current config: group = core dlr-storage = pgsql admin-port = 13000 admin-password = password status-password = password admin-allow-ip = '' smsbox-port = 13001 log-level = 0 log-file = "/tmp/kannelclient.log" box-allow-ip = "127.0.0.1" group = pgsql-connection id = mydlr host = localhost username = postgres password = password database = dlr max-connections =20 group = dlr-db id = mydlr table = dlr field-smsc = smsc field-timestamp = ts field-destination = destination field-source = source field-service = service field-url = url field-mask = mask field-status = status field-boxc-id = boxc group = smsbox smsbox-id = BOX1 bearerbox-host = 127.0.0.1 sendsms-port = 13013 log-file = "tmp/smsbox.log" log-level = 0 access-log = "/tmp/access.log" group = sendsms-user username = user password = password group = smsc smsc = smpp smsc-id = ABCDE host = 123.123.123.123 port = 7774 receive-port = 7775 smsc-username = username smsc-password = password address-range = "" system-type= "" enquire-link-interval = 30 dest-addr-npi = 1 dest-addr-ton = 1 group = smsbox-route smsc-id = ABCDE smsbox-id = BOX1 Has anyone seen this issue before ? Regards, Lee