SMS Server Tools

Frequently Asked Questions

1) What hardware do I need?
2) My GSM modem hangs often
3) Why do I have to set the dial prefixes of the providers?
4) What can I do if the program does not work?
5) Can I use smstools with gnooki?
6) How can I resend failed messages?
7) What means +CMS ERROR 512?
8) How fast are the SMS server tools?
9) My Nokia phone does not work
10) My Modem does not answer to AT-Commands
11) Error Message: Modem is not clear to send
12) Incoming SMS files have wrong permissions
13) Error loading libmm.so.11
14) Which GSM modem do you recommend?
15) Modem answers always ERROR when sending SM but receiving works fine
16) Can I change my sender's number when I send SM?
17) Received messages contain often garbage.

1) What hardware do I need?
You need a Linux server with a least one serial port an one GSM Modem. It does not matter how fast the CPU is and how much memory you installed. An old 486 with 32 MB memory is enough. I prefer GSM modems from Falcom, for example Falcom A2-1. Every GSM Modem with AT command set should work if it is GSM07.05 complatible but I tested only Falcom and Siemens. The Siemens modems hang often while the falcom modems run very stable. Please notice that most mobile phones are not supported.

2) My GSM modem hangs often
This is mostly caused by a weak power supply. The GSM modems of Falcom and Siemens work both with a 12V 800mA power supply. The Siemens devices are not as stable as the Falcom devices. You may try a capaciator at the power supply (2200 yF 25V).

3) Why do I have to set the dial prefixes of the providers?
You can save money using one modem for each provider. Sending SMS to a "foreign" provider may be more expensive than sending SMS withing the "home" provider. If the providers in your country share the same dial prefixes (I heard that about Singapure) you cannot use this feature.

If all SMS should be sent through the same provider without checking of the dial-prefix you can configure one provider and set the dial prefix to "0, 1, 2, 3, 4, 5, 6, 7, 8, 9". In this case all dial-prefixes are assigned to that single queue. Connect all GSM modems to that queue.

4) What can I do if the program does not work?
Check the modem using a terminal program (e.g. minicom) or look into the syslog messages (/var/log/messages) when calling putsms or getsms. Notice that some GSM modems work only with 9600bps and some work only with 19200bps. Check the mode option (ascii, old or new). Here are some interesting AT-commands for testing with minicom:

 
Command Answer Meaning
AT+CPIN? READY No Error
  PIN The modem needs the PIN number
  PUK The modem needs the PUK (the pin is locked)
  ERROR The SIM card if not found
AT+CPIN=1111 OK Enter the PIN
  ERROR The PIN is wrong or it was entered before
AT+CPIN=12345678,1111 OK Enter the PUK and set a new PIN
  ERROR The PUK is wrong
AT+CREG? 0,1 The modem is connected to the phone network
  0,2 The modem is connecting to the phone network
  other The modem is not connected to the network

Look into your modem's manual to find out what the error messages of the modem mean.

5) Can I use the smstools with gnooki
No but there is another project of a smstools version that is compatible to gnooki. You can get it from the authors homepage Juraj Bednar.

6) How can I resend failed messages?
Simply move the files from the failed queue to the outgoing queue. You can use the script smsresend to do that. This script inserts a counter in each message file that is used to detect the number of retries. The script ensures that each messages is retried max. 5 times. You may need to modify the script if your spool directories do not have the default names or if you want another retry limit. You can run the script manually or by a cronjob, for example every day.

7) What means +CMS ERROR 512?
This error code should be described in the modems manual. It occurs when you try to send a message while the modem received another one at the same time. This causes a collision in the message transfer protocol between modem and SMSC. There is nothing you can do against this, therefore the software retries sending 2 times after an ERROR.

8) How fast are the SMS Server Tools?
The performance depends on the number of modems that you use and on the modem itself. Sending messages takes between 5 and 10 seconds for each message. You can increase the performance by using more modems. There is no software limit how much modems you can use but your phone network provider allows only a limited number of connections. Please ask your provider for details. In normal cases there are at least 30 channels available.

9) My Nokia phone does not work
Some old Nokia phones (for example the 6110) have no internal modem with RS232 port and AT-Command set. You need gnokii if you want to use them (See Question 5).
Most newer Nokia phones (for example 6210 and 7110) haven an internal modem with RS232 port and they also support the older FBUS protocol. Ensure that you buy a RS232 cable and not an FBUS cable. Most non-original cables are only for the old FBUS protocol and do not work with the SMS Server Tools!

10) My modem does not answer to AT-Commands
Fine, you took a look into the debug log. If your modem does not answer to AT-Commands you probably set a wrong baudrate or the wrong serial port or your modem cable does not support hardware handshake. You can disable handshake in the configuration file.

11) Error Message: Modem is not clear to send
Your modem cable does not support hardware handshake or you use the wron serial port. You can disable handshake in the configuration file or buy another cable. This happens often with not-original cables for mobile phones.

12) Incoming SMS files have wrong permissions.
I spent a lot of time finding out why that happens on some Linux systems but without success. This problem seems to be caused by the fork() system call. Smsd seems to ignore the umask setting. As a workaround you can install an eventhandler that changes the permissions as you want. The example eventhandler in /usr/local/bin does exactly this.

13) Error loading libmm.so.11.
If you see an error message like this when you start smsd, the library loader does not find the libmm.so.11 file. Add the path (probably /usr/local/lib) to the envirronment variable LD_LIBRARY_PATH. Linux users can also set the path in /etc/ld.so.conf. If you have a program called ldconfig then run it once after modifying the config file.

To search the file: find . -name 'libmm.*' 2>/dev/null

14) Which GSM modem do you recommend?
I recommend Falcom modems. All models work fine with my software. They all support binary SMS (ringtones, etc) and status report. Falcom modems run very stable. I had never problems with them.

15) Modem answers always ERROR when sending SM but receiving works fine
Setting the SMSC number in the config file is often a quick solution for this problem.

16) Can I change the sender's number when I send SM?
No because this number is stored on the SIM card and not changeable by the user. Only "Large Accounts" support changing sender numbers or names. My Software does not support "Large Accounts".

17) Received messages contain often garbage
This is mostly caused by another program that accesses the serial port at the same time. Check if no other program ist running on that port and check if you did not accidently started smsd twice. If you enter "ps -ef | grep sms" you should see one smsd plus one for each modem (e.g. 3 if you have 2 modems) and eventueally one getsms or putsms for each modem.