Re: gsm7 send messages > 140 <=160 chars length

2011-05-20 Thread Nicolas de Bari Embriz Garcia Rojas
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

2011-05-20 Thread 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.




gsm7 send messages > 140 <=160 chars length

2011-05-20 Thread Nicolas de Bari Embriz Garcia Rojas
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.

2011-05-20 Thread Nikos Balkanas

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.

2011-05-20 Thread Lee Vidor
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