|
|
SMS Server Tools 3 Community |
Welcome, Guest. The forum is currently read-only, but will open soon. |
Fri Mar 21, 2025 04:36 |
This topic is locked
Page: 1 2 Next
Author |
Post |
|
#1 Tue May 11, 2010 11:00, 180 months ago.
|
Member
Registered: May 2010
Location: Russian Federation
|
Operating system name and version: Ubuntu 10.04 Version of smsd: 3.1.6, 3.1.8 Smsd installed from: sources / package repository Name and model of a modem / phone: Siemens TC35i Interface: serial / USB Prolific We have a stange problems with smstools. Everything worked normal on 9.04 32-bit Ubuntu, but after upgrade smstools does not working. Tried 3.1.6 repository version, 3.1.8 compiled, USB and serial, problem exists anyway. Tested on another machine with gentoo 32-bit - working. Log:
|
|
#2 Wed May 12, 2010 12:38, 180 months ago.
|
Administrator
Registered: May 2009
Location: Jyväskylä, Finland
|
This problem really looks strange... I have tried to produce this kind of problem, but with no success. Everything is just working as expected... The compilation was tested under the previous version of Ubuntu 64bit. I now upgraded my test machine, and it has: # cat /etc/lsb-release DISTRIB_ID=Ubuntu DISTRIB_RELEASE=10.04 DISTRIB_CODENAME=lucid DISTRIB_DESCRIPTION="Ubuntu 10.04 LTS"# uname -aLinux AMD-64 2.6.32-22-generic #33-Ubuntu SMP Wed Apr 28 13:28:05 UTC 2010 x86_64 GNU/Linux# gcc -vUsing built-in specs. Target: x86_64-linux-gnu Configured with: ../src/configure -v --with-pkgversion='Ubuntu 4.4.3-4ubuntu5' --with-bugurl=file:///usr/share/doc/gcc-4.4/README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --enable-shared --enable-multiarch --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.4 --program-suffix=-4.4 --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-plugin --enable-objc-gc --disable-werror --with-arch-32=i486 --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu Thread model: posix gcc version 4.4.3 (Ubuntu 4.4.3-4ubuntu5) When there is the first error presented in the log, the communication has been working for a while. I cannot imagine where that answer "0" is coming from. Also it's coming too fast, because "OK" or "ERROR" is expected and there should be five seconds delay for the timeout. However, later when the PDU termination is sent, the timeout is spent. I therefore assume that you have not changed the setting read_timeout in the modem configuration. The counter for timeouts is also strange, because it's always 1. It should run from 1 to 10 and then 1 - 2 - 1 - 2 etc. And another strange issue is the PDU. It's a correct PDU of a status report, but it is not recognized as a report. In the log there is a number missing, but probably you have removed it? Anyway, there should be a message "SMS received (report x, y), From: number", not just "SMS received, From:". Have you checked what is in the message file /var/spool/sms/incoming/SUCT.0WAI1z, is it a status report or is it an ordinary message, or perhaps broken somehow? I'm still wondering what's going on, and have no any ideas for resolving this problem. Perhaps this problem has something to do with the libraries in your system, but I'm not sure...
|
|
#3 Thu May 13, 2010 09:27, 180 months ago.
|
Member
Registered: May 2010
Location: Russian Federation
Topic owner
|
Tried to switch off modem: Then switched on: As you can see, we have got several reports from modem and then it returns 'O' again  Maybe you can advise any debug actions to do?
|
|
#4 Thu May 13, 2010 11:25, 180 months ago.
|
Administrator
Registered: May 2009
Location: Jyväskylä, Finland
|
Okay, several reports were received and now they were all detected as a status reports. But still, every CMGD gets "O" and also CMGF gets "O". At the same time CMGR gets a correct answer, and this is what I do not understand...
After testing 3.1.8 from sources, I have installed 3.1.6-1 from the repository, and it also did not have any problems while testing.
What is the locale of your system? It may be interesting to know.
There is one character, "ю", which may be a clue, but, it's not sure.
When you tested smsd on other systems, the same modem Siemens TC35i was used, right?
I could provide some code for debugging, but it may take a time. Perhaps it would be easier that I connect to your system using ssh, if it's possible. Let's think about this later.
You could check one thing:
- Stop the smsd if it's running. - Start it in the communication mode: smsd -C SUCT
- Follow the instructions on the screen. - Type ATE1 (and Enter) to set the echo on. - Check what character sets are available: AT+CSCS=? - Check what is the current character set: AT+CSCS?
This information might be useful, but it's not sure because on your 32bit system everything worked without problems.
Another test which might be useful:
- Stop the smsd if it's running. - Communicate with a modem using Minicom. - From the log you can see what commands were sent and how. - Send those commands manually, AT, ATE0+CMEE=1 but use ATE1+CMEE=1 instead, AT+CPIN?, AT+CSQ, AT+CREG? and AT+CMGF=0. What happens and what is received? - Also you could test AT+CMGD=1, if possible.
|
|
#5 Thu May 13, 2010 14:44, 180 months ago.
|
Administrator
Registered: May 2009
Location: Jyväskylä, Finland
|
After done those test mentioned in my previous post, the following addition to the code might give a valuable information: Edit the file modeminit.c. Search "read data" and insert those lines shown bold and red: // read data got = read(modem_handle, answer +count, toread);
if (got > 0) { char tmp[SIZE_LOG_LINE]; int idx;
sprintf(tmp, "read count=%i, got=%i:", count, got); for (idx = count; idx < count +got; idx++) sprintf(strchr(tmp, 0), " %02X[%c]", (unsigned char)answer[idx], ((unsigned char)answer[idx] >= ' ')? answer[idx] : '.');
writelogfile(LOG_DEBUG, 0, tmp); }
// if nothing received ... if (got<=0)
|
|
#6 Thu May 13, 2010 17:40, 180 months ago.
|
Administrator
Registered: May 2009
Location: Jyväskylä, Finland
|
And... Probably it's the regexec() which causes the problem. Insert those lines too, search "wait for the modem-answer": // wait for the modem-answer answer[0] = 0; timeoutcounter = 0; got_timeout = 1; do { char *saved_answer;
read_from_modem(answer, max, 2); // One read attempt is 200ms
saved_answer = strdup(answer);
// check if it's the expected answer if (expect && expect[0] && (regexec(&re, answer, (size_t) 0, NULL, 0) == 0)) { if (strcmp(answer, saved_answer)) { char tmp[SIZE_LOG_LINE]; int idx;
writelogfile(LOG_DEBUG, 0, "the answer was changed");
sprintf(tmp, "answer after regexec: len=%i:", (int)strlen(answer)); for (idx = 0; idx < (int)strlen(answer); idx++) sprintf(strchr(tmp, 0), " %02X[%c]", (unsigned char)answer[idx], ((unsigned char)answer[idx] >= ' ')? answer[idx] : '.');
writelogfile(LOG_DEBUG, 0, tmp); strcpy(answer, saved_answer); } free(saved_answer);
got_timeout = 0; put_command_timeouts = 0; break; }
free(saved_answer);
// 3.1.1: Some modem does not give "OK" in the answer for CPMS: // +CPMS: "SM",0,30,"SM",0,30,"SM",0,30 if (strstr(answer, "+CPMS:"))
Try these code changes first, before checking anything else...
|
|
#7 Mon May 17, 2010 08:17, 180 months ago.
|
Member
Registered: May 2010
Location: Russian Federation
Topic owner
|
All your commands are working ok, modem is answering, Minicom also works. We tried changing locale to "C" with no effect. The same modem was used on all tested systems. Giving you a log with debugging info.
|
|
#8 Mon May 17, 2010 09:05, 180 months ago.
|
Administrator
Registered: May 2009
Location: Jyväskylä, Finland
|
Was there "saved_answer" change also included when creating the latest log? I could check the code which is created by your compiler. Run make to ensure that you have executable smsd and object files in the src directory, then pack all: tar -zcf rpra.tar.gz * and send the packet to me. Details in the private block: Hidden private text.
|
|
#9 Tue May 18, 2010 04:18, 180 months ago.
|
Member
Registered: May 2010
Location: Russian Federation
Topic owner
|
keke wrote Was there "saved_answer" change also included when creating the latest log?
Yes, it was, but never showed in log. Quote I could check the code which is created by your compiler. Run make to ensure that you have executable smsd and object files in the src directory, then pack all: tar -zcf rpra.tar.gz * and send the packet to me.
I sent it, but I think the problem is elsewere. Ubuntu native binary smstools package (3.1.6) have the same issue.
|
|
#10 Wed May 19, 2010 18:06, 180 months ago.
|
Member
Registered: May 2010
Location: Germany
|
I got the same issue here running on Ubuntu 10.4 64bit. After installing Ubuntu 10.4 32bit on the same machine, the Problem was gone. But that's not a 'solution' for the problem, we were planning to use 64bit servers.
Hardware Specs: Server: HP ProLiant DL360 G6 Modem: Siemens TC65i connected via USB or serial cable.
|
|
#11 Thu May 20, 2010 16:12, 180 months ago.
|
Administrator
Registered: May 2009
Location: Jyväskylä, Finland
|
rpra wrote I sent it, but I think the problem is elsewere. Ubuntu native binary smstools package (3.1.6) have the same issue.
Thanks. And you are right, the problem is not in the compilation. It's exactly the same as mine, and it's running well on my hardware. Too bad that it was not a problem with regexec... It was looking clear, because the answer from the modem is recognized (no timeout because of this), but when the answer is logged and handled, it's changed. There is not much code between those two points, and the answer did not corrupt every time. As valeni now has reported the same problem, can you both show the /proc/cpuinfo ? I'm not sure wether it helps, but not much ideas right now...  As you both have Siemens modem, is it sure that nothing additional drivers were installed for it?
|
|
#12 Thu May 20, 2010 16:20, 180 months ago.
|
Member
Registered: May 2010
Location: Germany
|
Hi here is the info you requested, but it's from the 32bit version, as we don't have the 64bit version around. There were no additional drives installed it's handled by the default USB Modem Abstraction layer. It has the same issue when it's connected with a normal serial cable.
|
|
#13 Fri May 21, 2010 04:06, 180 months ago.
|
Member
Registered: May 2010
Location: Russian Federation
Topic owner
|
|
|
#14 Thu Jun 03, 2010 08:50, 180 months ago.
|
Member
Registered: Jun 2010
Location: Rome, Italy
|
Hello, I confirm the problem described in the first post of this thread.
It shows the "O" response instead of the "OK" response in the log file.
Linux ubuntu 2.6.32-22-server #33-Ubuntu SMP Wed Apr 28 14:34:48 UTC 2010 x86_64 GNU/Linux
Greetings, Stefano Coletta
|
|
#15 Tue Jun 08, 2010 10:38, 179 months ago.
|
Administrator
Registered: May 2009
Location: Jyväskylä, Finland
|
I installed 2.6.32-21-server, but "unfortunately" it was running without this problem. Then I upgraded it to 2.6.32-22-server #36-Ubuntu SMP Thu Jun 3 20:38:33 UTC 2010 x86_64 GNU/Linux, but I still do not have this problem. The machine is using single processor, and it's AMD.
As there is a dist-upgrade available, does it have any effect with your machines?
|
|
#16 Tue Jun 08, 2010 11:03, 179 months ago.
|
Member
Registered: Jun 2010
Location: Rome, Italy
|
Hello, I've upgraded any package installed as you suggested.
root@server:~# apt-get upgrade Reading package lists... Done Building dependency tree Reading state information... Done 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
root@server:~# apt-get dist-upgrade Reading package lists... Done Building dependency tree Reading state information... Done Calculating upgrade... Done 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
root@server:~# uname -a Linux server 2.6.32-22-server #36-Ubuntu SMP Thu Jun 3 20:38:33 UTC 2010 x86_64 GNU/Linux
But unfortunately the smsd.log shows always the same message:
... 2010-06-08 12:57:11,7, GSM1: <- O 2010-06-08 12:57:11,7, GSM1: -> ^Z 2010-06-08 12:57:11,7, GSM1: Command is sent, waiting for the answer 2010-06-08 12:57:16,7, GSM1: put_command expected (OK)|(ERROR), timeout occurred. 1. 2010-06-08 12:57:16,7, GSM1: <- 2010-06-08 12:57:16,7, GSM1: -> AT 2010-06-08 12:57:16,7, GSM1: Command is sent, waiting for the answer 2010-06-08 12:57:17,7, GSM1: <- O 2010-06-08 12:57:17,7, GSM1: -> ^Z 2010-06-08 12:57:17,7, GSM1: Command is sent, waiting for the answer 2010-06-08 12:57:22,7, GSM1: put_command expected (OK)|(ERROR), timeout occurred. 1. 2010-06-08 12:57:22,7, GSM1: <- 2010-06-08 12:57:22,7, GSM1: -> AT 2010-06-08 12:57:22,7, GSM1: Command is sent, waiting for the answer 2010-06-08 12:57:22,7, GSM1: <- O 2010-06-08 12:57:22,7, GSM1: -> ^Z 2010-06-08 12:57:22,7, GSM1: Command is sent, waiting for the answer
If it helps, this is my configuration:
devices = GSM1 logfile = /var/log/smsd.log loglevel = 7 smart_logging = yes
eventhandler = /usr/local/bin/callhandlerwrapper
hangup_incoming_call = yes
failed = /var/spool/sms/failed sent = /var/spool/sms/sent report = /var/spool/sms/report
[GSM1] device = /dev/ttyUSB0 incoming = yes pin = **** phonecalls = yes report = yes
|
|
#17 Sat Jun 12, 2010 13:26, 179 months ago.
|
Administrator
Registered: May 2009
Location: Jyväskylä, Finland
|
The code in post #5 shows that the answer was correct when received from the modem. It was also not modified by regexec function. Now, there is not much code which handles the answer, before the answer is broken. Running smsd with a setting detect_message_routing = no could be tried, but I do not expect it to affect.
It is very strange that some answers breaks but some not. Because I was unable to reproduce this behaviour with my server, even with the same version of Ubuntu, but running on AMD processor, I have no ideas left on how to resolve this problem.
|
|
#18 Mon Jun 14, 2010 10:46, 179 months ago.
|
Administrator
Registered: May 2009
Location: Jyväskylä, Finland
|
When this error occurs, and the smsd is still running, does the restarting of a modem always help, or does it have any impact?
|
|
#19 Mon Jun 14, 2010 11:01, 179 months ago.
|
Member
Registered: Jun 2010
Location: Rome, Italy
|
Hello, I've just restarted the modem as you suggested.
Before restarting I've stopped the smsd and then started again.
The problem arises immediately, as shown in the log.
Just to make it clear, it happens ALWAYS, after upgrading from ubuntu 9 to ubuntu 10, it never happened when I was using ubuntu 9. We are always speaking of 64bit editions.
2010-06-14 12:48:44,2, smsd: Smsd mainprocess terminated. PID 6400, was started 10-06-14 00:00:02. 2010-06-14 12:54:09,2, smsd: Smsd v3.1.6 started. 2010-06-14 12:54:09,2, smsd: Running as root:root. 2010-06-14 12:54:09,7, smsd: Running startup_check (shell): /tmp/smsd_script.55IKjN /tmp/smsd_data.twEaQl 2010-06-14 12:54:09,7, smsd: Done: startup_check (shell), execution time 0 sec., status: 0 (0) 2010-06-14 12:54:09,4, smsd: File mode creation mask: 022 (0644, rw-r--r--). 2010-06-14 12:54:09,5, smsd: Outgoing file checker has started. PID: 7525. 2010-06-14 12:54:09,5, GSM1: Modem handler 0 has started. PID: 7526. 2010-06-14 12:54:09,5, GSM1: Using check_memory_method 1: CPMS is used. 2010-06-14 12:54:09,6, GSM1: Checking device for incoming SMS 2010-06-14 12:54:09,6, GSM1: Checking if modem is ready 2010-06-14 12:54:10,7, GSM1: -> AT 2010-06-14 12:54:10,7, GSM1: Command is sent, waiting for the answer 2010-06-14 12:54:10,7, GSM1: <- AT OK 2010-06-14 12:54:10,6, GSM1: Pre-initializing modem 2010-06-14 12:54:10,7, GSM1: -> ATE0+CMEE=1 2010-06-14 12:54:10,7, GSM1: Command is sent, waiting for the answer 2010-06-14 12:54:10,7, GSM1: <- ATE0+CMEE=1 OK 2010-06-14 12:54:10,6, GSM1: Checking if modem needs PIN 2010-06-14 12:54:11,7, GSM1: -> AT+CPIN? 2010-06-14 12:54:11,7, GSM1: Command is sent, waiting for the answer 2010-06-14 12:54:11,7, GSM1: <- +CPIN: SIM PIN OK 2010-06-14 12:54:11,5, GSM1: Modem needs PIN, entering PIN... 2010-06-14 12:54:11,7, GSM1: -> AT+CPIN="****" 2010-06-14 12:54:11,7, GSM1: Command is sent, waiting for the answer 2010-06-14 12:54:11,7, GSM1: <- O
|
|
#20 Mon Jun 14, 2010 11:07, 179 months ago.
|
Member
Registered: Jun 2010
Location: Rome, Italy
|
By using
detect_message_routing = no
not helped. Same behaviour.
|
|
#21 Mon Jun 14, 2010 11:22, 179 months ago.
|
Administrator
Registered: May 2009
Location: Jyväskylä, Finland
|
creator wrote Just to make it clear, it happens ALWAYS, after upgrading from ubuntu 9 to ubuntu 10, it never happened when I was using ubuntu 9. We are always speaking of 64bit editions.
Thank's for the information. The strange thing is that first three answers from the modem did not break. And in the log of rpra (post #1) there are some answers (for CMGF) which break, but after this there are answers which do not break. And later all answers break. I was wondering if a situation in the post #3 can be reproduced repeatedly. There smsd was running when the modem was restarted, and then the problem disappeared for a while, but came back later. Can you do the reset with smsd still running? Even better if you can apply the patch shown in the post #5, but it's not mandatory because from the log we can deduce that the answer from a modem was correct because there is no timeout. At least you could first try without the patch.
|
|
#22 Mon Jun 14, 2010 12:57, 179 months ago.
|
Member
Registered: Jun 2010
Location: Rome, Italy
|
I've restarted the modem as requested, without restarting SMSd.
As you can see, the smsd process is not able to communicate with the modem anymore. This maybe because my modem is connected via USB instead of RS232?
This is the log:
... 2010-06-14 14:21:02,7, GSM1: Command is sent, waiting for the answer 2010-06-14 14:21:03,7, GSM1: <- O 2010-06-14 14:21:03,7, GSM1: -> ^Z 2010-06-14 14:21:03,7, GSM1: Command is sent, waiting for the answer 2010-06-14 14:21:08,7, GSM1: put_command expected (OK)|(ERROR), timeout occurred. 1. 2010-06-14 14:21:08,7, GSM1: <-
<restarted here>
2010-06-14 14:21:11,3, GSM1: Modem is not clear to send 2010-06-14 14:21:24,3, GSM1: Modem is not clear to send 2010-06-14 14:21:38,3, GSM1: Modem is not clear to send 2010-06-14 14:21:51,3, GSM1: Modem is not clear to send 2010-06-14 14:22:04,3, GSM1: Modem is not clear to send 2010-06-14 14:22:18,3, GSM1: Modem is not clear to send 2010-06-14 14:22:31,3, GSM1: Modem is not clear to send 2010-06-14 14:22:44,3, GSM1: Modem is not clear to send 2010-06-14 14:22:57,3, GSM1: Modem is not clear to send 2010-06-14 14:23:11,3, GSM1: Modem is not clear to send 2010-06-14 14:23:24,3, GSM1: Modem is not clear to send 2010-06-14 14:23:37,3, GSM1: Modem is not clear to send 2010-06-14 14:23:47,3, GSM1: Modem is not ready to answer commands (Timeouts: 1) 2010-06-14 14:23:47,6, GSM1: Reading phonecall entries 2010-06-14 14:23:51,3, GSM1: Modem is not clear to send 2010-06-14 14:24:04,3, GSM1: Modem is not clear to send 2010-06-14 14:24:14,6, GSM1: No phonecall entries 2010-06-14 14:24:24,6, GSM1: Checking device for incoming SMS 2010-06-14 14:24:24,6, GSM1: Checking if modem is ready 2010-06-14 14:24:27,3, GSM1: Modem is not clear to send 2010-06-14 14:24:41,3, GSM1: Modem is not clear to send 2010-06-14 14:24:54,3, GSM1: Modem is not clear to send 2010-06-14 14:25:07,3, GSM1: Modem is not clear to send 2010-06-14 14:25:20,3, GSM1: Modem is not clear to send 2010-06-14 14:25:34,3, GSM1: Modem is not clear to send 2010-06-14 14:25:47,3, GSM1: Modem is not clear to send 2010-06-14 14:26:00,3, GSM1: Modem is not clear to send 2010-06-14 14:26:14,3, GSM1: Modem is not clear to send 2010-06-14 14:26:27,3, GSM1: Modem is not clear to send 2010-06-14 14:26:40,3, GSM1: Modem is not clear to send 2010-06-14 14:26:54,3, GSM1: Modem is not clear to send 2010-06-14 14:27:07,3, GSM1: Modem is not clear to send 2010-06-14 14:27:20,3, GSM1: Modem is not clear to send 2010-06-14 14:27:34,3, GSM1: Modem is not clear to send 2010-06-14 14:27:47,3, GSM1: Modem is not clear to send 2010-06-14 14:28:00,3, GSM1: Modem is not clear to send 2010-06-14 14:28:13,3, GSM1: Modem is not clear to send 2010-06-14 14:28:27,3, GSM1: Modem is not clear to send 2010-06-14 14:28:40,3, GSM1: Modem is not clear to send 2010-06-14 14:28:53,3, GSM1: Modem is not clear to send 2010-06-14 14:29:07,3, GSM1: Modem is not clear to send 2010-06-14 14:29:17,3, GSM1: Modem is not ready to answer commands (Timeouts: 1) 2010-06-14 14:29:17,6, GSM1: Reading phonecall entries 2010-06-14 14:29:20,3, GSM1: Modem is not clear to send 2010-06-14 14:29:33,3, GSM1: Modem is not clear to send 2010-06-14 14:29:43,6, GSM1: No phonecall entries 2010-06-14 14:29:53,6, GSM1: Checking device for incoming SMS 2010-06-14 14:29:53,6, GSM1: Checking if modem is ready 2010-06-14 14:29:57,3, GSM1: Modem is not clear to send 2010-06-14 14:30:10,3, GSM1: Modem is not clear to send 2010-06-14 14:30:23,3, GSM1: Modem is not clear to send 2010-06-14 14:30:36,3, GSM1: Modem is not clear to send 2010-06-14 14:30:50,3, GSM1: Modem is not clear to send ...
|
|
#23 Mon Jun 14, 2010 13:15, 179 months ago.
|
Administrator
Registered: May 2009
Location: Jyväskylä, Finland
|
creator wrote I've restarted the modem as requested, without restarting SMSd.
As you can see, the smsd process is not able to communicate with the modem anymore. This maybe because my modem is connected via USB instead of RS232?
Yes, because the /dev/ttyUSBn was gone and after reconnect it may be even different... Damn, we still have nothing  . I will look forward if I can provide some test code for you.
|
|
#24 Mon Jun 14, 2010 17:32, 179 months ago.
|
Administrator
Registered: May 2009
Location: Jyväskylä, Finland
|
Here is a source package for testing: h t t p : / / smstools3.kekekasvi.com/test/smstools3-3.1.8-test1.tar.gzIt tries to resolve when the failure happens, and how it happens. Any logs are welcome. « Last edit by keke on Fri Sep 03, 2010 15:32, 177 months ago. »
|
|
#25 Tue Jun 15, 2010 08:23, 179 months ago.
|
Member
Registered: Jun 2010
Location: Rome, Italy
|
The problem is still there even with 3.1.8-test1 version you posted. Here is the log: Hope it helps. 
|
This topic is locked
Page: 1 2 Next
Time in this board is UTC.
|
|
|
 |
|
 |
|