Raspberry Pi · 9 min read · Dec 08, 2025

Wie man einen Raspberry Pi SMS-Server installiert

Bevor wir anfangen

Dieses Tutorial zeigt Ihnen, wie Sie einen SMS-Server auf einem Raspberry Pi 2 Model B einrichten können, der Raspbian ausführt.

Wir werden playsms und smstools verwenden. In meinem Beispiel habe ich ein Huawei E3131 3G-Modem verwendet.

Raspbian

Zuerst müssen wir Raspbian herunterladen, die neueste Version finden Sie unter https://www.raspberrypi.org/downloads/

Direkte URL: http://downloads.raspberrypi.org/raspbian_latest

Jetzt müssen wir die Datei 2015-05-05-raspbian-wheezy.zip entpacken:

unzip 2015-05-05-raspbian-wheezy.zip

Sie erhalten eine Datei mit dem Namen 2015-05-05-raspbian-wheezy.img, diese Datei muss auf Ihre micro-SD-Karte geschrieben werden.

Wenn Sie einige Grundlagen darüber wissen möchten, wie man mit dem Raspberry Pi arbeitet und das Image auf die micro-SD-Karte schreibt, können Sie mit dem Lesen dieses Tutorials beginnen:

https://www.howtoforge.com/tutorial/howto-install-raspbian-on-raspberry-pi/

Schreiben Sie die Image-Datei auf die micro-SD-Karte, auf meinem PC wird die micro-SD-Karte als /dev/mmcblk0 angezeigt, unter Linux können Sie dd verwenden:

dd bs=4M if=2015-05-05-raspbian-wheezy.img of=/dev/mmcblk0
  • Bitte beachten Sie, dass die Blockgröße von 4M in den meisten Fällen funktioniert; wenn nicht, versuchen Sie 1M, obwohl dies erheblich länger dauert.
  • Beachten Sie auch, dass Sie, wenn Sie nicht als root angemeldet sind, dies mit sudo voranstellen müssen.

Wenn das Image geschrieben wurde, stecken Sie die micro-SD-Karte in Ihren Raspberry Pi und schalten Sie ihn ein.

Wenn der Raspberry Pi gebootet ist, sollten Sie beim ersten Start einen Bildschirm wie diesen sehen.

Jetzt wähle ich folgende Optionen:

1 Expand Filesystem  
3 Enable Boot To Desktop/Scratch -> Wählen Sie Konsole Textkonsole, die eine Anmeldung erfordert (Standard)  
8 Advanced Options -> A4 SSH -> Aktivieren  
8 Advanced Options -> A0 Update   
Finish -> Reboot

Jetzt können Sie sich mit folgendem Benutzernamen anmelden: pi und Passwort: raspberry.

Zuerst richten wir die Netzwerkkonfiguration für unseren Server ein, indem wir

sudo nano /etc/network/interfaces

Meine /etc/network/interfaces-Datei sieht so aus (ändern Sie die Konfiguration nach Ihren Bedürfnissen):

auto lo
iface lo inet loopback

auto eth0
allow-hotplug eth0
iface eth0 inet static
        address 10.255.50.30
        netmask 255.255.255.0
        gateway 10.255.50.1
        dns-nameservers 8.8.8.8 8.8.4.4

Jetzt starten wir den Netzwerkdienst auf dem Pi neu:

sudo /etc/init.d/networking restart

Dann deaktivieren wir DHCP beim Start mit diesem Befehl:

sudo update-rc.d -f dhcpcd remove

Wenn Sie es später wieder aktivieren möchten, führen Sie einfach folgenden Befehl aus:

sudo update-rc.d dhcpcd defaults

Jetzt können wir einen SSH-Client wie PuTTY verwenden, um von unserem PC aus eine Verbindung zum Raspberry Pi herzustellen.

Jetzt aktualisieren wir Raspbian mit folgendem Befehl:

sudo apt-get update &&  apt-get upgrade -y && apt-get dist-upgrade -y

PlaySMS

Laden Sie playsms 1.1 herunter und installieren Sie es:

sudo -s  
apt-get install apache2 libapache2-mod-php5 mysql-server php5 php5-cli php5-mysql php5-mcrypt php5-gd php5-imap php5-curl  
php5enmod mcrypt  
service apache2 restart

Wenn Sie nach dem neuen Passwort für den MySQL “root”-Benutzer gefragt werden, verwenden Sie ein starkes Passwort, in diesem Beispiel habe ich MyP@$$w0rd verwendet.

Jetzt können wir zu http://your-ip gehen, in meinem Fall http://10.255.50.30, und wir sehen eine Seite, die anzeigt: “Es funktioniert!”.

cd /tmp/  
wget http://downloads.sourceforge.net/project/playsms/playsms/Version%201.1/playsms-1.1.tar.gz  
tar -zxf playsms-1.1.tar.gz -C /usr/local/src  
ls -l /usr/local/src/  
cd /usr/local/src/playsms-1.1/  
cp install.conf.dist install.conf  
nano install.conf

Kopieren Sie install.conf.dist nach install.conf und bearbeiten Sie install.conf

Lesen Sie install.conf und nehmen Sie Änderungen vor, um Ihrer Systemkonfiguration zu entsprechen.

Ich habe die Datei bearbeitet, sodass sie so aussieht:

# INSTALL DATA
# ============


# Bitte ändern Sie INSTALL DATA unten, um Ihrer Systemkonfiguration zu entsprechen

# Bitte ändern Sie nicht den Variablennamen, Sie können nur den Wert ändern

# MySQL-Datenbank-Benutzername
DBUSER="root"

# MySQL-Datenbank-Passwort
DBPASS="MyP@$$w0rd"

# MySQL-Datenbank-Name
DBNAME="playsms"

# MySQL-Datenbank-Host
DBHOST="localhost"

# MySQL-Datenbank-Port
DBPORT="3306"

# Benutzer des Webservers, z. B. ist der apache2-Benutzer standardmäßig www-data
# Hinweis: Bitte stellen Sie sicher, dass Ihr Webserver-Benutzer
WEBSERVERUSER="www-data"

# Gruppe des Webservers, z. B. ist die apache2-Gruppe standardmäßig www-data
# Hinweis: Bitte stellen Sie sicher, dass Ihre Webserver-Gruppe
WEBSERVERGROUP="www-data"

# Pfad zu den extrahierten Quell-Dateien von playSMS
PATHSRC="$(pwd)"

# Pfad zu den Web-Dateien von playSMS
# Hinweis: Bitte stellen Sie sicher, dass Ihr Web-Stammverzeichnis, in diesem Beispiel ist es /var/www/html
PATHWEB="/var/www/html/playsms"

# Pfad zu den zusätzlichen Dateien von playSMS
PATHLIB="/var/lib/playsms"

# Pfad zu den Daemon- und anderen Binärdateien von playSMS
PATHBIN="/usr/local/bin"

# Pfad zu den Protokolldateien von playSMS
PATHLOG="/var/log/playsms"


# ENDE DER INSTALLATIONSDATEN
# ===================

Jetzt ausführen:

./install-playsms.sh

Drücken Sie Y, wenn alles in Ordnung aussieht.

Jetzt möchten wir sicherstellen, dass playsms beim Booten startet, indem wir eine Zeile in die rc.local-Datei hinzufügen.

nano /etc/init.d/rc.local

Fügen Sie Folgendes in die Datei ein: /usr/local/bin/playsmsd start
unten in der Datei (vor exit, falls es einen exit-Befehl gibt).
Auf diese Weise wird playsmsd beim Booten automatisch gestartet.

..
/usr/local/bin/playsmsd start

Bearbeiten Sie die Apache vhost-Datei:

nano /etc/apache2/sites-available/default

Meine vhost-Datei sieht so aus:

        ServerAdmin webmaster@localhost

        DocumentRoot /var/www/html/playsms
        
                Options FollowSymLinks
                AllowOverride None
        
                
                Options Indexes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                allow from all
        

        ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
        
                AllowOverride None
                Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
                Order allow,deny
                Allow from all
        

        ErrorLog ${APACHE_LOG_DIR}/error.log

        # Mögliche Werte sind: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn

        CustomLog ${APACHE_LOG_DIR}/access.log combined

Jetzt laden Sie die Apache2-Konfiguration neu, um die Änderungen anzuwenden.

service apache2 reload

Dann sollten Sie in der Lage sein, die playsms-Website unter folgender URL zu erreichen:

Gehen Sie zu http://your-ip usw. http://10.255.50.30

Sie können sich anmelden mit:

Benutzername: admin
Passwort: admin

Gateway - SMS Server Tools 3

Zuerst installieren wir die Build-Tools, um die neueste Version zu erstellen. Führen Sie aus:

apt-get install build-essential libusb-1.0 libusb-1.0-0-dev

Jetzt habe ich das Huawei E3131-Modem eingesteckt, und ich kann es mit lsusb auflisten:

lsusb
lsusb
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp.
Bus 001 Device 004: ID 12d1:14fe Huawei Technologies Co., Ltd.

Wir möchten, dass es mit ID: 12d1:1506 ist, aber es wird derzeit mit 12d1:14fe erkannt.

Um dies zu ändern, installieren wir usb_modeswitch im System, die neueste Version finden Sie hier:

http://www.draisberghof.de/usb_modeswitch/#download

cd /tmp  
wget http://www.draisberghof.de/usb_modeswitch/usb-modeswitch-2.2.5.tar.bz2  
tar jxvf usb-modeswitch-2.2.5.tar.bz2  
cd usb-modeswitch-2.2.5  
make install  
cd /tmp  
wget http://www.draisberghof.de/usb_modeswitch/usb-modeswitch-data-20150627.tar.bz2  
tar xjvf usb-modeswitch-data-20150627.tar.bz2  
cd usb-modeswitch-data-20150627  
make install

Jetzt ziehen Sie das Modem ab und stecken Sie es wieder ein, und führen Sie dann aus:

lsusb
 lsusb
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp.
Bus 001 Device 006: ID 12d1:1506 Huawei Technologies Co., Ltd. E398 LTE/UMTS/GSM Modem/Netzwerkkarte

Jetzt haben wir den gewünschten Modus: 12d1:1506.

Als nächstes fahren wir mit SMS Server Tools 3 fort.

Zuerst laden wir es herunter, entpacken es und installieren es.

cd /usr/local/src  
wget http://smstools3.kekekasvi.com/packages/smstools3-3.1.15.tar.gz  
tar -zxvf smstools3-3.1.15.tar.gz  
cd smstools3  
make

Wenn Sie einen Fehler sehen, wie in meinem Fall, wenn Sie make ausführen:

 make
cd src && make -
make[1]: Betritt das Verzeichnis '/usr/local/src/smstools3/src'
Makefile:51: * Rezept beginnt vor dem ersten Ziel.  Stop.
make[1]: Verlasse das Verzeichnis '/usr/local/src/smstools3/src'
Makefile:10: Rezept für das Ziel 'compile' fehlgeschlagen
make: * [compile] Fehler 2

Dann machen Sie Folgendes:

nano src/Makefile

Das Problem ist ein fehlendes Tabulatorzeichen, suchen Sie jetzt nach:

ifeq (,$(findstring DISABLE_INET_SOCKET,$(CFLAGS)))
override LFLAGS += -lsocket -lnsl
endif

Und verschieben Sie die Zeile override LFLAGS += -lsocket -lnsl mit einem TAB

ifeq (,$(findstring DISABLE_INET_SOCKET,$(CFLAGS)))
        override LFLAGS += -lsocket -lnsl
endif

Und versuchen Sie erneut, make auszuführen:

make  
make install

Jetzt erstellen wir einige erforderliche Ordner:

mkdir -p /var/log/sms/stats  
mkdir -p /var/spool/sms/{checked,failed,incoming,outgoing,sent}  
mkdir /var/spool/sms/modem1  
chown www-data:www-data -R /var/spool/sms  
chmod 777 -R /var/spool/sms

Und dann verschieben wir die ursprüngliche Konfigurationsdatei und laden ein Beispiel von PlaySMS herunter:

mv /etc/smsd.conf /etc/smsd.conf.dist  
cd /tmp   
wget -c https://raw.githubusercontent.com/antonraharja/playSMS/master/contrib/smstools/smsd.conf  
cp smsd.conf /etc/

Um sicherzustellen, dass ich immer das richtige Gerät verwende, werde ich eine dynamische Geräte-Datei verwenden.

Lesen Sie mehr über dynamische Geräte-Dateien unter folgender URL: http://antonraharja.com/2015/05/14/persistent-paths-for-dynamic-device-file/

nano /etc/udev/rules.d/80-ttyusb-map.rules
ACTION=="add", KERNEL=="ttyUSB[0-9]*", PROGRAM="/etc/udev/rules.d/ttyusb-map.sh %p", SYMLINK+="gsm%c"
touch /etc/udev/rules.d/ttyusb-map.sh   
chmod 755 /etc/udev/rules.d/ttyusb-map.sh   
nano /etc/udev/rules.d/ttyusb-map.sh
#!/usr/bin/perl -w

@items = split("/", $ARGV[0]);
for ($i = 0; $i < @items; $i++) {
    if ($items[$i] =~ m/^usb[0-9]+$/) {
        print $items[$i + 1] . "\n";
        last;
    }
}

Jetzt ziehen Sie das Modem ab und stecken es wieder ein, und es sollte sich unter /dev/gsm* befinden:

ls -l /dev/gsm*   
lrwxrwxrwx 1 root root 7 Jul 24 01:39 /dev/gsm1-1 -> ttyUSB0   
lrwxrwxrwx 1 root root 7 Jul 24 01:39 /dev/gsmmodem -> ttyUSB0

Ich habe einige Änderungen an der Datei vorgenommen, hier ist meine Konfiguration, mein Modem befindet sich unter /dev/gsm1-1, ersetzen Sie dies durch Ihren Speicherort.

# Globale Konfiguration

#devices = modem1, modem2
devices = modem1

loglevel = 5

# Protokolldateien
stats = /var/log/sms/stats
logfile = /var/log/sms/smsd.log

# Standard-Warteschlangenverzeichnis = /var/spool/sms
outgoing = /var/spool/sms/outgoing
checked = /var/spool/sms/checked
failed = /var/spool/sms/failed
incoming = /var/spool/sms/incoming
sent = /var/spool/sms/sent

# Setzen Sie keinen Berichtsordner, lassen Sie Statusberichtdateien im Eingangsordner speichern
#report = /var/spool/sms/report

delaytime = 2
errorsleeptime = 10
blocktime = 180
autosplit = 3
#receive_before_send = yes
incoming_utf8 = yes

# Warteschlangen-Konfigurationen

[queues]
modem1 = /var/spool/sms/modem1
#modem2 = /var/spool/sms/modem2

# Modem-Konfigurationen

# Modemname: modem1
# Modemtyp: Wavecom USB
[modem1]
#init = AT+CNMI=2,2,0,1,0;+CMEE=1
#init = AT+CPMS="ME","ME","ME"
device = /dev/gsm1-1
baudrate = 19200
incoming = yes
pin = 3391
report = yes
queues = modem1
decode_unicode_text = yes
cs_convert = yes

# Modemname: modem2
# Modemtyp: Wavecom USB
#[modem2]
#init = AT+CNMI=2,2,0,1,0;+CMEE=1
#device = /dev/ttyUSB1
#baudrate = 115200
#incoming = yes
#report = yes
#queues = modem2

Starten Sie die SMS Server Tools 3 neu:

/etc/init.d/sms3 restart

Überprüfen Sie, ob die SMS Server Tools 3 ausgeführt werden:

ps ax | grep -v grep | grep smsd

Überwachen Sie die Protokolldatei der SMS Server Tools 3:

tail -f /var/log/smsd.log

Melden Sie sich an und konfigurieren Sie smstools im playsms-Webpanel

Melden Sie sich bei Ihrer playsms-Installation an, meine Adresse ist http://10.255.50.30/

Benutzername ist admin
Passwort ist admin

Gehen Sie jetzt zu Einstellungen => Gateway verwalten und SMSC.

Sie sollten einen Bildschirm wie diesen sehen:

Jetzt klicken Sie auf Bearbeiten des smstools-Gateways.

Und stellen Sie sicher, dass es so eingerichtet ist:

Klicken Sie auf Speichern, und wenn es gespeichert ist, klicken Sie zurück.

Jetzt müssen Sie das SMSC einrichten, also wählen Sie bitte das + Zeichen bei SMSTools.

Sie sollten die SMSC-Details wie folgt ausfüllen, geben Sie Ihre Modemtelefonnummer in die Empfängernummer ein.

Wenn Sie fertig sind, klicken Sie auf Speichern.

Gehen Sie jetzt zu Einstellungen => Hauptkonfiguration

Und füllen Sie folgende Felder aus:

Standard-Absender-ID
Standard-Präfix oder Ländervorwahl

Und setzen Sie Standard-SMSC auf smstools, wie im Bild unten gezeigt.

Klicken Sie auf Speichern, wir sind bereit, die erste SMS zu senden.

Eine SMS senden

Gehen Sie jetzt zu Mein Konto => Nachricht verfassen

Geben Sie Ihre Handynummer in “An” ein und eine Nachricht wie “Hallo Welt!” im Nachrichtenfeld und klicken Sie auf Senden.

Wenn die Nachricht in die Warteschlange gestellt wird, können Sie die Transaktion hier verfolgen:

Gehen Sie zu Berichte => Alle gesendeten Nachrichten

Eingehende Nachrichten, die nicht bearbeitet werden, werden im Sandbox gespeichert, Sie finden dies in Berichte => Sandbox

Und das Protokoll, wenn etwas nicht funktioniert, befindet sich in Berichte => Protokoll anzeigen

Wenn Sie Probleme mit Ihrer Einrichtung haben, ist ein guter Ort, um Hilfe zu suchen, das playsms-Forum.

https://forum.playsms.org/

Share: X/Twitter LinkedIn

Erhalte neue Beiträge in deinem Posteingang.

Kein Spam. Jederzeit abmelden.