Mittwoch, 27. Juli 2016

SMS Server einrichten

SMS Server einrichten

Auf einem Ubuntu 16.04 Server soll ein SMS Server Dienst zur Alarmierung über SMS eingerichtet werden. Dazu soll das Paket "gammu" eingesetzt werden.
Als Hardware dient ein Huawei E1552 web'n'walk Stick Fusion II USB stick.
Zunächst soll sicher gestellt werden, dass der Stick im richtigen Modus (Modem) arbeitet und immer die selbe Device Bezeichnung zugewiesen bekommt.

Udev Regel zur Umschaltung von Storage in Modem Funktion

USB ModeSwitch muss installiert werden und folgende Regeln werden in /etc/udev/rules.d/ eingefügt:

# eigene udev-Regeln für UMTS-Sticks 
ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="12d1", ATTRS{idProduct}=="1446", RUN+="/usr/sbin/usb_modeswitch -v 12d1 -p 1446 -M '55534243123456780000000000000011062000000100000000000000000000'"
ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="12d1", ATTRS{idProduct}=="1436", RUN+="/bin/bash -c 'modprobe option && echo 12d1 1436 > /sys/bus/usb-serial/drivers/option1/new_id'"

Eindeutiger Device Name festlegen

Damit der USB Stick auch immer den selben Namen bekommt, muss man eine weitere Regel in /etc/udev/rules.d einfügen:
SUBSYSTEM=="tty", SUBSYSTEMS=="usb", ATTRS{idVendor}=="12d1", ATTRS{idProduct}=="1436",  SYMLINK+="mytty-huawei-stick"

Beim erneuten Einstecken wird der Stick nun immer als /dev/mytty-huawei-stick angemeldet.

Gammu installieren und konfigurieren

$ apt get install gammu gammu-smsd 
Eine Konfigurationsdatei anlegen /etc/gammu-smsdrc
# Configuration file for Gammu SMS Daemon
# Gammu library configuration, see gammurc(5)
[gammu]
# Please configure this!
port = /dev/mytty-huawei-stick
connection = at115200
# Debugging
logformat = textall

# SMSD configuration, see gammu-smsdrc(5)
[smsd]
service = files
logfile = syslog
PIN = 'xxxx'
# Increase for debugging information
debuglevel = 0

# Paths where messages are stored
inboxpath = /var/spool/gammu/inbox/
outboxpath = /var/spool/gammu/outbox/
sentsmspath = /var/spool/gammu/sent/
errorsmspath = /var/spool/gammu/error/

Der gamu-smsd Service kann nun aktiviert und gestartet (systemd) werden
$ sudo systemctl enable gammu-smsd
$ sudo systemctl start gammu-smsd

Prüfen kann man die Funktion mit
sudo gammu-smsd-monitor -n 1 -d 1
Damit man in einem cron job den Stick überwachen kann - ohne root zu sein - ist es anzuraten, dem Binary das Setuid Bit zu setzen, dann kann jeder unprivilegierte User das Kommando (als root) ausführen:
$ chmod u+s /usr/bin/gammu-smsd-monitor

Versenden von SMS

Zuerst sollte man die Spool Directories für alle schreibbar machen sonst kann nur ein Benutzer senden:
$ chmod -R o+rwx /var/spool/gammu/

Jetzt kann die erste Textnachricht versendet werden:
echo "Testnachricht" | gammu-smsd-inject TEXT +4917XXXXXX

Option

Wer noch mag, kann sich noch Kalkun installieren, der mittels einer SQL Datenbank einen kompletten SMS Server, vergleichbar mit einem Email Server realisiert.

Keine Kommentare:

Kommentar veröffentlichen