Which databases does SMSD support?

SMSD natively supports MySQL and PostgreSQL. However it has also support for libdbi, which provides access to wide range of database engines (eg. SQLite, MS SQL Server, Sybase, Firebird,…). Unfortunately libdbi currently does not work natively on Microsoft Windows, so you can use it only on Unix platforms.

Since version 1.29.92, SMSD can also connect to any ODBC data source, so you should be able to connect to virtually any database engine using this standard.

See also

SQL Service

Is there some user interface for SMSD?

Yes. You can use some of example interfaces distributed with gammu in contrib directory. Or there is full featured separate interface written in PHP called Kalkun.

Which phone is best for SMSD gateway?

Standard phones usually do not perform good when used long term as a modem. So it’s always better to choose some GSM (GPRS, EDGE, UMTS) terminals/modems, which are designed to be used long for term in connection with computer.

The best option seem to be Siemens modems (eg. ES75/MC35i/MC55i). Slightly cheaper, while still good are modems made by Huawei (eg. E160/E220/E1750/…). We have heard also positive experiences with cheap modems from various Chinese resellers like DealExtreme or Alibaba.

See also

You can check other user experiences in Gammu Phones Database.

The RunOnReceive script fails, how to fix that?

There can be various reasons why the script you’ve supplied as RunOnReceive has failed. You can usually find more information in the debug log (see Reporting Bugs). For example it can look like following:

gammu-smsd[9886]: Starting run on receive: ../
gammu-smsd[9875]: Process failed with exit status 2
gammu-smsd[9875]: Subprocess output: ../ 7: ../ Syntax error: end of file unexpected (expecting "then")

From here it’s quite easy to diagnose it’s a syntax error in the script causing troubles.


If process output is missing from your debug log, you’re using older version, which didn’t support this. Please upgrade to version newer than 1.36.4.

Why received delivery reports are not matched to sent messages?

This can occasionally happen and can have several reasons.

  • If reports are arriving late, you can adjust DeliveryReportDelay.

  • If reports are coming from different SMSC than you’re using for sending, set SkipSMSCNumber.

  • If SMSD is unable to match sent message with delivery report, it might be due to missing international prefix in one of the numbers. Generally the best approach is to always send messages to international number (eg. use +32485xxxxxx instead of 0485xxxxxx).


If using Gammu 1.36.3 or newer, whenever first two cases happen, you will see hint to adjust the configuration in the log.