09. Jul 2013 10:07
Ein Kommentar

SMS mit Asterisk und DECT-Telefon

Asterisk SMS mit einem Gigaset DECT Telefon
Asterisk SMS mit einem Gigaset DECT Telefon

Nachdem ich mich bereits ausgiebig mit dem Telefonieren mit Asterisk auf dem Raspberry Pi und Analog Telefonen sowie Voice Over IP beschäftigt habe, möchte ich in diesem Artikel einmal beschreiben, wie man die SMS Funktion von Festnetztelefonen mit Asterisk nutzen kann. Hierfür bietet Asterisk bereits eingebaute Funktionen und Tools. Somit kann man nicht nur SMS auf Geräten wie z.B. von Gigaset senden und empfangen, man kann auch nette Services einbauen wie z.B. das Zustellen von E-Mails per SMS, Abfrage von Systemdaten, Wetterinfos usw. Man kennt die bekannten SMS Dienste ja bereits aus dem Mobilfunknetz.

Basisinstallation und Konfiguration

Für die Basisinstallation und Konfiguration kann man sich auf meine Artikel Asterisk Analog Telefon sowie Asterisk Telefonanlage stützen. Das Ganze läuft bei mir auf meinem Raspberry Pi mit Arch Linux. Um mit dieser Anleitung zurecht zu kommen, empfiehlt es sich eine bestehende Asterisk-Konfiguration mit einem SMS-fähigen DECT-Telefon zu haben. Wichtig ist auch, dass die Rufnummernübermittlung auf dem DECT-Telefon bereits funktioniert. Die dahinter liegende Technik stellt auch die Basis für den Versand von SMS. Bei wem die Rufnummernübermittlung von Asterisk zum Festnetztelefon noch nicht funktioniert, der sollte sich am Besten zuerst diesem zuwenden. Häufig liegt der Fehler in der falschen Konfiguration am Analog-Adapter, sofern man denn einen hat. Ich verwende den Grandstream Handy Tone 503. Werfen wir also einmal einen Blick darauf, wie SMS im Festnetz funktionieren.

Funktionsweise von SMS im Festnetz

Während im Mobilfunknetz der Kurznachrichtendienst SMS ein fester Bestandteil des Netzes ist, so ist das im analogen Telefonnetz nicht der Fall. Selbiges gilt jedoch auch für die Rufnummernübermittlung namens CLIP (Calling Line Identification Presentation). Für beide Dienste wird der sog. ETSI FSK Standard verwendet. FSK steht für Frequency-shift keying und bedeutet auf Deutsch Frequenzumtastung. Mittels Frequenzumtastung können im analogen Telefonnetz digitale Daten übertragen werden. Dazu gehören zum Einen die Rufnummernübermittlung, zum Anderen aber auch Dienste wie SMS. Deshalb auch Eingangs der Verweis auf die Rufnummernübermittlung. Funktioniert diese nicht einwandfrei, wird es wohl Probleme mit FSK geben, sodass die Konfiguration von SMS erschwert wird oder nicht funktioniert.

169,95 €
Jetzt bestellen »
Gigaset SL400A High End Schnurlostelefon (4,6cm (1,8 Zoll) TFT-Farbdisplay, Anrufbeantworter, USB-Anschluss, Bluetooth)metall / schwarz
Versandfertig in 1 - 2 Werktagen

Konfiguration des DECT bzw. Festnetz-Telefons

Ich habe mich mittels Asterisk Konsole und Tests mit meinem Gigaset-Telefon langsam heran getastet an SMS. Bei mir kommt hierbei ein einfaches und günstiges Gigaset C380 zum Einsatz. Im Menü kann man dort unter "SMS > Einstellungen > SMS-Zentren" das sog. SMS-Center (kurz SMSC) konfigurieren. Für die Konfiguration für sein eigenes Telefon sollte man einen Blick in die Bedienungsanleitung werfen. Sowohl im Mobilfunk als auch im Festnetz senden die Geräte SMS immer an das SMS-Center welches die SMS dann widerum verarbeitet und weiter versendet. In meinem Fall habe ich dort die Rufnummer "4711" als erstes und einziges Profil für die SMS-Zentrale angegeben. Mit der Eingabe hat sich die Konfiguration des Telefons dann auch schon erledigt. Bei einem ersten Versandversuch ohne konfiguriertes Asterisk, zeigte dieses dass das Telefon die SMS an die Rufnummer "47110" zustellen wollte, da die Telefone wohl immer die Nummer des Profiles beginnend mit 0 an die Rufnummer der SMSC anhängen.

Asterisk als SMSC bzw. SMS-Zentrale

Der Empfang und Versand soll vollständig von Asterisk kontrolliert und gesteuert werden. Es kommt also keine zusätzliche SMS-Zentrale zum Einsatz. Asterisk wird die SMS-Zentrale sein. Mein Gigaset DECT-Telefon ist in der sip.conf so konfiguriert, dass es den Kontext "dect" benutzt. Werfen wir zunächst einen Blick auf die Konfiguration des Kontexts "dect" für SMS in der extensions.conf

Wie man sieht handelt es sich um einen simplen Zweizeiler. Die Variable ${EXTEN} gibt an, dass der Queue bzw. Speicher der gewählten Extension (also 47110) verwendet werden soll, um die Nachricht zu speichern. Der Parameter "s" gibt an, dass Asterisk als SMSC bzw. Short Message Service Center agieren soll. Mit "a" wird angegeben, dass die Anfrage beantwortet wird also z.B. lt. Doku ein initiales FSK-Paket versendet werden soll. Nachdem wir die Konfiguration entsprechend angepasst haben, können wir auch schon die erste SMS vom Telefon an Asterisk senden. In der Asterisk CLI bzw. Konsole sollte man den Zustellstatus prüfen und schauen, ob dort Schwierigkeiten auftreten.

Nach erfolgreicher Zustellung der SMS an Asterisk finden wir im Ordner "/var/spool/asterisk/sms/morx" eine Datei mit dem Inhalt der übertragenen SMS und der sieht wie im obigen Beispiel aus. Anfangs hatte ich einige Schwierigkeiten, da mein Asterisk nicht als "root" sondern als "asterisk"-Benutzer läuft. Aus Sicherheitsgründen ist das so auch Standard und absolut empfehlenswert. Unter Umständen, muss man dann mit folgenden Befehlen noch die Berechtigung für die entsprechenden Verzeichnisse mit folgenden Befehlen setzen.

Danach sollte es einwandfrei funktionieren, wenn Asterisk vorher eine Fehlermeldung wie "cannot stat" in der Konsole ausgegeben hat. Bei mir hat das dann jedenfalls funktioniert und die eingehenden SMS wurden alle einwandfrei im Verzeichnis abgelegt. Damit hat man den Versand vom Telefon zu Asterisk auch schon konfiguriert. Widmen wir uns nun der umgekehrten Richtung.

Empfangen von SMS aus dem Festnetz

Es ist möglich mit der SMS-Funktion in Asterisk auch SMS von Mobiltelefonen zu empfangen und auch welche über das Festnetz an Mobiltelefone zu versenden. Der Empfang ist hierbei nach meiner Kenntniss kostenlos, der Versand nicht wirklich billig. Die Konfiguration meiner eingehenden Telefonate mit SMS-Unterstützung sieht wie folgt aus.

Darin sieht man jetzt eine Menge, die eigentlich für die Telefonate gedacht ist. Das Skript liest auch, wie in meinem Asterisk mit Analog Telefon Artikel beschrieben, die Rufnummer des Anrufers aus und gleicht das mit dem Adressbuch ab. Ist die Rufnummer 01930100 also die SMSC der Deutschen Telekom, dann springt der Wählplan mit GotoIf zum Punkt "n(inboundsms)" und verarbeitet die SMS. Danach startet Asterisk mit dem System-Befehl ein kleines PHP Skript, welches ich unter "/usr/bin" liegen habe und welches wie folgt aussieht.

Ich möchte das Skript nicht bis ins letzte Detail erläutern, sondern nur kurz die Funktionsweise darlegen. Das Skript ist ein PHP CLI Skript, welches die SMS Dateien die eingegangen sind ausliest, per SMS an das DECT Telefon sendet und auch per E-Mail weiterleitet. Damit hat man dann auch quasi direkt einen SMS E-Mail Gateway geschaffen.

SMS-Versand von Asterisk zum Festnetztelefon

Eingangs habe ich ja bereits erwähnt, dass ich den Raspberry Pi als Telefonanlage mit Asterisk verwende. Da gibt es ein paar Besonderheiten, denn wir benötigen das Programm "smsq", welches bei Asterisk auf dem Raspberry Pi sowohl unter Arch Linux als auch Raspbian nicht vorhanden ist. Wir müssen smsq selbst kompilieren. Aber keine Angst, das ist kinderleicht und mit drei Befehlen abgefrühstückt. Zuerst blicken wir jedoch nochmal kurz in die extensions.conf, wo ich mir einen separaten Kontext für SMS angelegt habe. Das habe ich einfach gemacht, weil viele Konfiguration wie DENOISE, SIP Header usw. die ich für CLIP benutze bei SMS nur stören. Deshalb existieren dort beide der folgenden Zeilen.

Sehr simpel: der Kontext macht nichts anderes als bei Anwahl des SIP-Anschlusses "dect" diesen entsprechend zu wählen. Hat man einen sehr einfachen Wählplan in der extensions.conf, dann kann man das auch gerne weglassen. Widmen wir uns nun der Installation des Programms smsq.

Installation und Kompilierung von SMSQ

SMSQ ist ein kleines Hilfsprogramm vom Asterisk-Projekt, welches den Versand von SMS zu Geräten und SMS-Zentralen ermöglicht. Ohne dieses Tool können wir von Asterisk aus nicht selbst SMS versenden. Ein absolutes Must-Have also. Warum selbst große Distributoren es nicht kompiliert mitliefern, bleibt schleierhaft. Jetzt braucht man aber keine schlotternden Knie zu bekommen: wir müssen nur das Tool kompilieren und nicht gleich das komplette Asterisk. Damit wir uns sicher sind welche Version von Asterisk wir haben, loggen wir uns mit "asterisk -vvvr" in die Konsole ein und lesen die Willkommensnachricht aus, denn in der steht bei mir:

Dadurch weiß man nun, dass es sich um Asterisk Version 11.4 handelt. Es sei erwähnt, dass Raspbian zur Zeit des Verfassens dieses Artikels die ältere Version 1.8 verwendete. Ich habe SMS mit Asterisk in beiden Versionen erfolgreich betrieben. Damit wir den Quellcode von Asterisk herunter laden können, benötigen wir zuerst den Client für die Versionsverwaltung "Subversion", welchen wir mit "pacman -S subversion" unter Arch Linux oder "apt-get install subversion" unter Raspbian installieren. Ich habe mir unter "/root/asterisk" einen Ordner angelegt, wo ich den Quellcode mit Subversion wie folgt herunter geladen habe.

Wer Raspbian mit Asterisk 1.8 verwendet, gibt statt "11" entsprechend "1.8" an. Danach dauert es in etwa 10 Minuten bis der gesamte Quellcode auf den kleinen Raspberry Pi herunter geladen ist. Im Anschluss haben wir im Verzeichnis /root/asterisk dann auch noch ein Unterverzeichnis "11" bzw. "1.8".  Wir wechseln in diesen Ordner und dort sehen wir dann all die Quellcode-Dateien und Ordner. Bevor wir loslegen, stellen wir sicher, dass die Programme "gcc" und "make" installiert sind und wenn nicht unter Arch Linux mit "pacman -S" oder Raspbian mit "apt-get install" installieren. Anschließend führen wir die Konfiguration durch, indem wir in dem Ordner in der Konsole "./configure" eingeben. Danach wechseln wir in den Ordner "utils". Bevor wir smsq kompilieren können, brauchen wir noch die Bibliothek "libpopt": unter Arch einfach "popt" installieren und unter Raspbian "libpopt". Damit das Make-Skript weiß, wo diese liegt verwendet es eine Umgebungsvariable. Diese setzen wir mit folgendem Befehl.

Nachdem wir die wichtige Umgebungsvariable gesetzt haben, können wir dann mit folgendem einfachen Befehl auch sofort das Programm smsq für unsere Distribution und den Raspberry Pi kompilieren.

Nach ein paar Zeilen Bildschirmausgabe meldet GCC hoffentlich erfolgreiches Kompilieren und wir haben in dem Verzeichnis eine ausführbare Datei namens "smsq". Diese kopieren wir nun in das Verzeichnis "/usr/bin" wo auch alle anderen Benutzerprogramme drin sind. Danach können wir es systemweit ausführen.

Versenden einer SMS von Asterisk an das DECT-Telefon

Das Programm "smsq" kann man direkt auf der Konsole ausführen, wenn Asterisk läuft. Es empfiehlt sich die Dokumentation von SMSQ zu lesen. Der folgende Befehl sendet eine SMS an das DECT-Telefon.

Kurz zur Erläuterung von smsq und seinen Parametern. Der "mt" Paramter steht für "mobile terminated", also wird auf dem Endgerät final terminiert bzw. das Endgerät also Telefon ist der Zielort für die SMS. "mttx-channel" gibt an auf welchem Kanal die SMS terminiert werden soll. Hier bei mir ist das Lokal der Teilnehmer "dect" im "dectsms" Kontext. "mttx-callerid" ist die SMSC, die ich im Telefon konfiguriert habe, damit das Telefon per CLIP erkennt, dass dies die SMSC ist und den SMS-Empfang beginnt. "oa" ist die Ausgangsadresse (Origin Address) - also der urgsprüngliche Versender der Nachricht. Ich hätte hier auch irgendeine andere Rufnummer angeben können. Das ist dem Programm egal. "hello dect" ist die Nachricht, die wir übermitteln.

140,77 €
Jetzt bestellen »
Raspberry Pi RBCA000 Mainboard (ARM 1176JZF-S, 512MB RAM, HDMI, 2x USB 2.0, 3,5 Watt)

Weitere Möglichkeiten mit Asterisk und SMS

Man kann mit der SMS Funktion und SMSQ unter Asterisk einige weitere Dinge anstellen, wenn man ein bisschen Scripting beherrscht. Ein denkbarer Einsatz wäre als Alarmsystem in Rechenzentren oder als Informationssystem in Kliniken, wo üblicherweise viele DECT-Telefone eingesetzt werden. Man kann damit jedoch auch ganz einfach über Festnetz-SMSC von Telekom und Co. SMS versenden. Das ist aufgrund der Kosten jedoch nicht so wirklich zu empfehlen. Man sollte da lieber einen Anbieter verwenden, der weltweit günstige SMS-Preise bietet. Der Empfang ist damit jedoch möglich. Informationsdienste, Wetterinfos, Erinnerungen usw. kann man alles mit Asterisk und SMS machen. Ich hatte auch noch an einem kleinen Skript gearbeitet, um mit dem Festnetz-Telefon SMS direkt als Twitter-Updates zu posten, aber soweit bin ich damit noch nicht ganz fertig und es dauert auch noch ein bisschen. Für mich ist SMS mit Asterisk eines der spannensten Themen unter Asterisk und zeigt einmal mehr wie sehr die Open Source Software hier kommerziellen Produkten aufgrund seiner Offenheit überlegen ist.

Bücher zum Thema „SMS“

Die nachfolgenden Bücher behandeln das Thema "SMS" und werden von Amazon empfohlen. Viele dieser Bücher habe ich selbst gelesen und teilweise auch zur Recherche für diesen Artikel genutzt.
6,99 €
Jetzt bestellen »
SMS für dich
Sofie Cramer, Rowohlt Taschenbuch Verlag
9,99 €
Jetzt bestellen »
Abi genial Politik und Wirtschaft: Das Schnell-Merk-System (Duden SMS - Schnell-Merk-System)
Peter Jöckel, Duden
9,99 €
Jetzt bestellen »
Abi genial Geschichte: Das Schnell-Merk-System (Duden SMS - Schnell-Merk-System)
Krista Düppengießer, Duden
9,99 €
Jetzt bestellen »
Abi genial Biologie: Das Schnell-Merk-System (Duden SMS - Schnell-Merk-System)
Wilfried Probst, Duden

Diese Artikel könnten Dich auch interessieren

Besucher, die diesen Beitrag gelesen haben, haben sich auch die unten aufgeführten Beiträge angesehen. Schau' doch einfach mal in die Artikel rein.
51 Besucher haben auch das gelesen
37 Besucher haben auch das gelesen
23 Besucher haben auch das gelesen
13 Besucher haben auch das gelesen
9 Besucher haben auch das gelesen
5 Besucher haben auch das gelesen

Kommentare zum Thema „SMS mit Asterisk und DECT-Telefon“

Wenn Du möchtest, kannst Du hier Kommentare zum Thema hinterlassen und Dich mit anderen Nutzern austauschen. Damit Du kommentieren kannst, musst Du Dich nur anmelden und schon kann es losgehen.
30.01.2014 14:40
Hallo, ich versuche gerade in FreePBX bzw. Asterisk SMS-Empfang für meine Sipgate-Ortsrufnummer (Tarif "Trunking") zu aktivieren. Allerdings werden die SMS aus dem Mobilfunknetz bzw. Skype nicht zugestellt. Du schreibst in einem Kommentar auf http://www.sipgateblog.de/sipgate-team-complete-mobil.../ man muss seine Sipgate-Nummer bei den SMSC registrieren? Wie macht man das? Ich kenne nur die Methode ANMELD an 8888 für die Telekom - ist das gemeint, und muss ich die Anmeldung für alle deutschen SMSC wiederholen?
Jetzt zum Kommentieren anmelden