1) What hardware do I need?
2) How fast are the SMS server tools?
3) Can I change the sender ID of sent messages?
4) How can I resend failed messages?
5) Command echoes are missing some characters
5) My modem does not answer to any AT-Commands
6) Error Message: Modem is not clear to send
7) Received messages or answers to AT commands contain often garbage.
8) How can I check the modem manually
9) What means +CMS ERROR 512?
10) Why does my modem answer ERROR?
11) I can send but I cannot receive
12) I can receive but I cannot send
13) Incoming SMS files have wrong permissions
14) Error loading libmm.so.11
1) What hardware do I need?
You need a Computer with at least one serial port.
It does not matter how fast the CPU is and how much memory you installed. An old 486DX processor with 32 MB memory is enough.
You also need at least one GSM modem with SMS command set according to the european specifications GSM 07.05 (=ETSI TS 300 585) and GSM 03.38 (=ETSI TS 100 900).
When a vendor writes "SMS command set" without giving the specification names, then the device typically supports a subset of this specification. In this case you can surely send 7bit text messages and you can probably receive them. But its not sure, if status reports, binary messages or unicode messages work.
The software runs on Windows and all Unix-Style operating systems that I every heard about. I recommend Linux.
2) How fast are the SMS Server Tools?
The performance depends on the number of modems that you use and on the modem itself. Sending a single message takes between 5 and 10 seconds. You can increase the performance by using up to 32 modems.
2) My GSM modem hangs often
This is mostly caused by a weak power supply. Most GSM modems of Falcom and Siemens
work with a 12V 800mA power supply. The Siemens devices are not as stable
as the Falcom devices. You may try to add a capaciator at the power supply (2200µF/25V) or change to a stabilized power supply.
3) Can I change the sender ID of sent messages?
My software uses the signalling channel that is limited to the senders phone number only. You cannot change it. If you really need that feature, you need a large-account to the SMSC and another software, for example SendXMS. Be prepared to very high costs.
4) How can I resend failed messages?
The program does already two retries. If you need more, then simply
move the files from the failed directory to the outgoing directory. You can use the script smsresend to do that. This script inserts a retry counter so that the number of retries per message can be limited. Run this script with a timer (for example cron) if you need automatic retries.
5) Command echoes are missing some characters
You see in the logfile that the commands are echoed by the modem. But the echoes from the modem are missing some
characters and therefore the modem does not answer or answers with ERROR. This happens when the modem or cable does not support hardware handshake and when the handshake wires are simply bridged. Try a lower bitrate or use the
send_delay option in the config file to make the program even slower. But to make it really stable and fast, I highly recommend to replace the bad hardware.
6) My modem does not answer to any AT-Commands
You probably set a wrong baudrate or a wrong serial port name. If both are ok, then ensure that no other program is currently using the serial port already. Many unix systems have a "getty" program for login through the serial port that you probably need to disable. The command lsof might be helpful to check this.
If this is Ok, then check the modem manually. See 9).
It could bee a good idea to test the modem under another operating system (for example Windows or Knoppix) and it might also help to check if another modem is accessible on that suspicious serial port.
7) Error Message: Modem is not clear to send
The modem does not signal that it is ready to accept commands. The CTS wire is not activated. This can be caused by a broken cable, missing CTS wire or missing hardware handshake support in your hardware.
Try to disable hardware handshake in the config file and use the lowest possible baudrate.
8) Received messages or modem answers contain often garbage
This is mostly caused by missing hardware handshake, but it can also be caused by a too high serial bitrate. Try 2400 baud, this will have only minor effect to the overall performance.
If this does not help, then try to use the send_delay option in the config file to make the program even slower.
Another cause might be that another program accesses the same serial port while the SMS Server Tools are talking to the modem.
9) How can I check the modem manually?
Check the modem using a terminal program like Hyperterminal, minicom or tip. Use the
9600 or 19200 baud, no parity, 8 bit, 1 stopbit. Enable hardware handshake (RTS/CTS) because my software also needs this. Here are some interesting AT-commands that you might try to enter:
Command | Answer | Meaning |
AT | OK | Serial cable works and current serial settings are useable |
AT+CPIN? | READY | The modem knows the PIN already |
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 fixed 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 |
10) What means +CMS ERROR 512?
This error code should be described in the modems manual. There are a lot of possible
reasons. Most users see this error code when they 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.
11) Why does my modem answer ERROR?
Normaly the modem manual should contain a description of every command incuding possible ERROR causes. Some modems support the command AT+CMEE=1 to get more informations about the ERROR cause. There is no standarisation for the additional error message. I cannot say for sure if this feature works fine with my software, so please try yourself to put it into the init-string.
12) I can send but I cannot receive
Some modems store received messages in the internal memory instead of the SIM card. But they try to read them from the SIM card by default. In this case, the init-string AT+CPMS="SM" or AT+CPMS="ME" will tell the modem to do both on the SIM card (SM) or on the internal memory (ME).
Most modems work only fine with the setting "SM", some support both and some few modem work only with "ME".
13) I can receive but I cannot send
Setting the corrrect SMSC number in the config file is often a quick solution for this problem. This happens when the default SMSC number that is stored on the SIM card is wrong or missing.
14) Incoming SMS files have wrong permissions.
Install an eventhandler script for RECEIVED message that changes the file permissions using the "chmod" command.
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.
p>15) Error loading libmm.so.11.
If you see an error message like this when you start smsd, then the operating system did not find the file libmm.so.11. Add the correct path (probably /usr/local/lib) to the envirronment variable LD_LIBRARY_PATH. Linux users can also set the path in /etc/ld.so.conf.