Listing 7 zeigt ein einfaches Beispiel für ein entsprechendes Skript. Es erhält über Umgebungsvariablen Meta-Informationen sowie Inhalte der SMS, die Details sind gut dokumentiert. In der Praxis sollte das Skript zumindest die Nummer des Absenders prüfen (auch wenn sich diese fälschen ließe).
Analog zu RunOnReceive besteht übrigens die Möglichkeit, weitere Skripte für andere Ereignisse zu hinterlegen: Dazu nutzen Sie RunOnSent beziehungsweise RunOnError.
Listing 7
#!/bin/bash
# Absender überprüfen
# if [ "$SMS_1_NUMBER" != "Nummer_OK" ] ; then
# exit
# fi
# Alle physischen Meldungen ins Syslog ausgeben
for i in $(seq $SMS_MESSAGES) ; do
logger -t smsd "SMS Teil: $i"
eval logger -t smsd \"Absender: \${SMS_${i}_NUMBER}\"
eval logger -t smsd \"Text: \${SMS_${i}_TEXT}\"
done
Parallelbetrieb
Während der parallele Betrieb von Gammu und dem Server nicht klappt, da beide auf dasselbe Gerät zugreifen, stellt der Versand und Empfang bei aktiver Datenverbindung per UMTS keinerlei Problem dar. Das funktioniert, wenn Wvdial beziehungsweise der PPPD das erste Modem-Device des Sticks nutzen (üblicherweise /dev/ttyUSB0). Die Details der Konfiguration eines Sticks für schnelle Datenverbindungen lesen Sie im 3G-Hotspot-Artikel aus der vorletzten Ausgabe [1] nach.
Fazit
Mit Gammu und Gammu-SMSD gibt es zwei leistungsstarke, aber einfach zu bedienende Pakete zum Verarbeiten von SMS auf dem Raspberry Pi. Haben Sie keinen UMTS-Stick zur Hand, greifen Sie alternativ via Gammu sogar auf ein per Bluetooth gekoppeltes Smartphone als Ersatz zu.
Betreiben Sie den RasPi in einem stabilen Netzwerk, steht Ihnen eine weitere Möglichkeit zur Verfügung: Es gibt Dienstleister, die sogenannte SMS-Gateways betreiben [6]. Über ein einfaches API versenden Sie dann preisgünstig eine SMS. Diese Anbieter ermöglichen in einigen Fällen auch eingehende SMS – hier erfolgt die Koppelung mit dem Raspberry Pi entweder per E-Mail, oder der Provider führt einen vordefinierten GET-Request auf dem Webserver des Kunden aus.
Dank UMTS-Stick, Smartphone oder Gateway hält der Raspberry Pi also bei Bedarf per SMS Kontakt mit der Welt. Da das nur eine minimale Systemlast verursacht, bleiben genug Ressourcen für anspruchsvollere Tätigkeiten übrig.
Der Autor
Bernhard Bablok ([email protected]) arbeitet bei der Allianz Managed&Operations Services SE als SAP-HR-Entwickler. Wenn er nicht Musik hört, mit dem Radl oder zu Fuß unterwegs ist, beschäftigt er sich mit Themen rund um Linux, Programmieren und neuerdings Mini-PCs.
Infos
- RasPi als 3G-Hotspot: Bernhard Bablok, “Do it yourself”, RPG 06/2015, S. 48, http://www.raspi-geek.de/35641
- Gammu: https://wammu.eu
- SMS-Server-Tools: http://smstools3.kekekasvi.com
- Prepaid-Wiki: http://www.prepaid-wiki.de
- Interaktive USSDs (Perl-Skript): https://github.com/JochenHoch2/gsm-ussd
- SMS-Gateway: https://www.sms77.de
- Online -PDU-Konverter: http://smstools3.kekekasvi.com/topic.php?id=288





