SMS Server Tools 3
 Menu
Basic information:
Additional information:
Support:
Get SMS Server Tools 3:
Additional Options

 Sponsored links

 Search
Custom Search

 Visitor locations
 
 SMS Server Tools 3 Community
Welcome, Guest. The forum is currently read-only, but will open soon. Fri Nov 22, 2024 04:22
SMSTools3 Community » Help and support Bottom

[solved] Incoming sms using ISO-8859-7

  This topic is locked

Page:  1

Author Post
Member
Registered:
Oct 2009
Location: Thessaloniki, Greece
Operating system name and version: Linux Centos
Version of smsd: 3.1.5
Smsd installed from: sources
Name and model of a modem / phone: Wavecom Fastrak
Interface: serial

How can i read my messages in ISO-8859-7 (Greek)?? The incomming messages appears scrambled...
Thank you for your time

Administrator
Registered:
May 2009
Location: Jyväskylä, Finland
I would like to see how the message is scrambled.

If you are running smsd with loglevel = 7 setting, you have a PDU string in the smsd.log file. Show it here.

If you do not have the PDU string, add the following setting to the global part of smsd.conf file: store_received_pdu = 3. Restart the smsd and receive a problematic message again. Show the message file here.

You can use Private tags for protecting the PDU or message file, if you like.

Also show what text it should be.

Member
Registered:
Oct 2009
Location: Thessaloniki, Greece
Topic owner
The PDU string is:

Hidden private text.


the word in greek i'm sending is ΔΟΚΙΜΕΣ which appears as .OKIME. The greek characters Δ and Σ appears as dots.

also the smsd.conf is




« Last edit by keke on Mon Oct 19, 2009 16:04, 183 months ago. »
Administrator
Registered:
May 2009
Location: Jyväskylä, Finland
You need to modify the sources. Edit the file src/charset.c. Search "greek". There are capital greek characters listed but commented out. Those characters, 0x10 - 0x1A in GSM alphabet, are defined using ISO8859-1. Remove comment marks from the ISO8859-7 area and comment out ISO8859-1 area. You will get:



Recompile, restart smsd and test once again. If possible, use all greek character to see if they are correct.

I have to think what to do with this issue, probably some setting is needed for usage of this alphabet.

Member
Registered:
Oct 2009
Location: Thessaloniki, Greece
Topic owner
It worked like a charm!!!!!
Thank you very much!!!!

Administrator
Registered:
May 2009
Location: Jyväskylä, Finland
Thank's for the information.

Next version will have a setting use_iso-8859-7 = yes/no for this.

By the way, what says your locale? Probably this setting could be automatic.

Member
Registered:
Oct 2009
Location: Thessaloniki, Greece
Topic owner
Sorry for my delayed answer...


My locale output is

root@host235 root]# locale
LANG=el_GR
LC_CTYPE="el_GR"
LC_NUMERIC="el_GR"
LC_TIME="el_GR"
LC_COLLATE="el_GR"
LC_MONETARY="el_GR"
LC_MESSAGES="el_GR"
LC_PAPER="el_GR"
LC_NAME="el_GR"
LC_ADDRESS="el_GR"
LC_TELEPHONE="el_GR"
LC_MEASUREMENT="el_GR"
LC_IDENTIFICATION="el_GR"
LC_ALL=

What i found is that receiving sms works like a charm, but when i try to send a sms, i have to change between the languages GR and US. This because as i understand the GSM alphabet does not contain all the Greek capital letters but only the different ones. For example Δ,Φ,Ξ,Ω,Π, Λ exists only at Greek Aplhabet, while H,I,K,O,T,P,A exists in both Alphabets.

Administrator
Registered:
May 2009
Location: Jyväskylä, Finland
The GSM alphabet ( 03.38 ) contains those Greek letters:

Δ Φ Γ Λ Ω Π Ψ Σ Θ Ξ

The same modified charset table is used for both directions. However, there is a problem with PSI: incoming 0x17 is changed to 0xD8 (which is correct), but outgoing 0xD8 is changed to 0x0B (latin capital letter O with stroke).

For other Greek letters the mapping should work with outgoing messages too. Have you ensured that when you type those Greek letters, your file has the same character code as the incoming message had? You could also receive a message which contains those letters, and just send it back without retyping the text.

Member
Registered:
Oct 2009
Location: Thessaloniki, Greece
Topic owner
here we go..

i send a sms to my phone containing all greek alphabet capitals:
Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ Ν Ξ Ο Π Ρ Σ Τ Υ Φ Χ Ψ Ω


at my phone arrived this:
Α Α Γ Δ Å Æ Ç Θ É É Λ I I Ξ I Π Ñ Σ O O Φ χ Ø Ω


i resend the message to my pc and the result was
Α Α Γ Δ Ε Ζ Η Θ Ι Ε Λ Ι Ι Ξ Ι Π Ρ Σ Ο Ο Φ χ Ψ Ω



after taking a look at http://www.unicode.org/Public/MAPPINGS/ETSI/GSM0338.TXT


i found that there are differences between same optical letters but different alphabets.


0x41 0x0041 # LATIN CAPITAL LETTER A
#0x41 0x0391 # GREEK CAPITAL LETTER ALPHA
0x42 0x0042 # LATIN CAPITAL LETTER B
#0x42 0x0392 # GREEK CAPITAL LETTER BETA
0x45 0x0045 # LATIN CAPITAL LETTER E
#0x45 0x0395 # GREEK CAPITAL LETTER EPSILON

so when i type greek Alpha the sms server receives 0x0391 instead of 0x0041 which is the only character accepted.

and as far as i can understand my phone also send only some greek capitals. the rest must be latin characters but simmilar optical with greek.

Actually this is not a major problem since my computer will send some pre-writen automated messages
And really thank you very, very much for the time you spend with my problem!!! :D

Administrator
Registered:
May 2009
Location: Jyväskylä, Finland
Vincent wrote
so when i type greek Alpha the sms server receives 0x0391 instead of 0x0041 which is the only character accepted.

Yes. The result is incorrect, because all greek capitals are not found from the charset table. This table contains only those characters which are included in the GSM character set. Unknown characters are currently replaced with "near optical" characters, but this replacement is based on ISO-8859-15 character set. A new table is needed, or at least this replacement should be disabled. Without a new table, greek capital outside the GSM character set will produce an error message to the log and the character is ignored.

Vincent wrote
and as far as i can understand my phone also send only some greek capitals. the rest must be latin characters but simmilar optical with greek.

That's right.

Vincent wrote
Actually this is not a major problem since my computer will send some pre-writen automated messages

Ok. I will look forward with this. Something more is needed to the code, but not very much.

If you want to, you can disable "near optical" replacement with the following change:
In the charset.c, locate the following and insert the line which is bold (0, 0,):
// This table is used for outgoing (to GSM) conversion only:

char iso_8859_15_chars[] =
{
0, 0,
0x60, 0x27, // GRAVE ACCENT --> APOSTROPHE
0xA0, 0x20, // NO-BREAK SPACE --> SPACE
0xA2, 0x63, // CENT SIGN --> c
Vincent wrote
And really thank you very, very much for the time you spend with my problem!!! :D

Thank's 8)

Administrator
Registered:
May 2009
Location: Jyväskylä, Finland
Here is a new table for your language:
// This table is used for outgoing (to GSM) conversion only:

char iso_8859_15_chars[] =
{
0xC1, 0x41, // ALPHA --> A
0xC2, 0x42, // BETA --> B
0xC5, 0x45, // EPSILON --> E
0xC7, 0x48, // ETA --> H
0xC9, 0x49, // IOTA --> I
0xCA, 0x4B, // KAPPA --> K
0xCC, 0x4D, // MU --> M
0xCD, 0x4E, // NU --> N
0xCF, 0x4F, // OMICRON --> O
0xD1, 0x50, // RHO --> P
0xD4, 0x54, // TAU --> T
0xD5, 0x55, // UPSILON --> U
0xD7, 0x58, // CHI --> X
0xC6, 0x5A, // ZETA --> Z
0, 0,

0x60, 0x27, // GRAVE ACCENT --> APOSTROPHE
0xA0, 0x20, // NO-BREAK SPACE --> SPACE
0xA2, 0x63, // CENT SIGN --> c
....
I will change the naming in the future releases... ;)

Member
Registered:
Oct 2009
Location: Thessaloniki, Greece
Topic owner
:D
you are very kind...

i made the conversion to charset.c and now it looks like this


'?' , 0x3F, // QUESTION MARK
0xA1, 0x40, // INVERTED EXCLAMATION MARK
// 'A' , 0x41, // LATIN CAPITAL LETTER A...Z
// 'B' , 0x42,
0xC1, 0x41,
0xC2, 0x42,
'C' , 0x43,
'D' , 0x44,
// 'E' , 0x45,
0xC5, 0x45,
// 'H' , 0x48,
// 'I' , 0x49,
0xC7, 0x48,
0xC9, 0x49,
'J' , 0x4A,
// 'K' , 0x4B,
0xCA, 0x4B,
'L' , 0x4C,
// 'M' , 0x4D,
// 'N' , 0x4E,
// 'O' , 0x4F,
// 'P' , 0x50,
0xCC, 0x4D,
0xCD, 0x4E,
0xCF, 0x4F,
0xD1, 0x50,
'Q' , 0x51,
'R' , 0x52,
'S' , 0x53,
// 'T' , 0x54,
0xD4, 0x54,
// 'X' , 0x58,
// 'Y' , 0x59,
// 'Z' , 0x5A,
0xD5, 0x59,
0xD7, 0x58,
0xC6, 0x5A,

The message send (the greek capital alphabet) is having some problems (letters E, Z, H, I and Ψ) although i double checked the conversion for mistakes.. When i resend the message back to my linux box the message appears RIGHT.... :shock: :shock: .All the other letters appear fine..... And i lost the latin characters... I think i will turn it back!!!!! :roll: :D

Member
Registered:
Oct 2009
Location: Thessaloniki, Greece
Topic owner
It seems that the problem is at the phone, not at the charset.c...
i tried it and to another phone and it happens the same thing.....
The devices does not support all the greek characters.....

Administrator
Registered:
May 2009
Location: Jyväskylä, Finland
Vincent wrote
The devices does not support all the greek characters.....

Only those greek characters are supported by the phones:
Δ Φ Γ Λ Ω Π Ψ Σ Θ Ξ

This is because GSM character set does not include other greek characters.

If you apply the conversion table change (iso_8859_15_chars in the previous post), you can write a message using all greek characters. Those characters which are not supported, are automatically changed to the "optical" equivalent. For example ALPHA --> A etc.

Without a new conversion table, only supported greek characters can be used and all other must be Latin.

Member
Registered:
Oct 2009
Location: Thessaloniki, Greece
Topic owner
Well, all fine with these stuff..

Can i ask you something at this post or sholuld i start another topic?? My question is how can i execute a shell command using sms??? E.g. how can i send a "reboot" command to my Linux Box through sms??

Administrator
Registered:
May 2009
Location: Jyväskylä, Finland
Vincent wrote
Well, all fine with these stuff..

There is one thing, locate this from charset[] table:
                   0xD8, 0x0B, // LATIN CAPITAL LETTER O WITH STROKE
and change to:
                   '@', 0x0B, // LATIN CAPITAL LETTER O WITH STROKE
Vincent wrote
Can i ask you something at this post or sholuld i start another topic?? My question is how can i execute a shell command using sms??? E.g. how can i send a "reboot" command to my Linux Box through sms??

When a question does not match to the topic title, a new topic is recommended.

Your keyword is "eventhandler". Look this post, there is eventhandler in use and it will get information from the incoming SMS. Any commands can be run by the eventhandler, but for rebooting I recommend to create a flag file which is monitored by the cron job which will do the reboot.

  This topic is locked

Page:  1

SMSTools3 Community » Help and support Top

 
Time in this board is UTC.  

Privacy Policy   SMS Server Tools 3 Copyright © Keijo Kasvi.