Basierend auf dem Artikel FRITZ!Box als GSM-Gateway möchte ich meinen Asterisk-Server mit einem UMTS-Stick ausstatten. Auf die Installation und Grundkonfiguration von Asterisk möchte ich an dieser Stelle nicht eingehen. Für den Betrieb eines UMTS-Sticks, in meinem Fall von Huawei, wird das externe Asterisk Modul “chan_dongle” benötigt. Dieses Modul muss manuell auf Basis der Sourcen des installierten Asterisk-Servers gebaut werden.
Das folgende Howto bezieht sich auf meine Umgebungsparameter, die je nach Bedarf angepasst werden müsssen.
Installationspfad zu Asterisk: /opt/asterisk
Pfad zu den Asterisk-Sourcen: /opt/install/asterisk
Download von chan_dongle: http://code.google.com/p/asterisk-chan-dongle/downloads/list
Hinweis zu chan_dongle in Verbindung mit Asterisk 11:
Mit dem Trunk 1.1r14 gibt es einige Probleme beim Kompilieren mit den Sourcen von Asterisk 11. Jacub Stasiac hat ein modifiziertes Release zur Verfügung gestellt, bei welchem nötige Änderungen bereits eingeflossen sind. [DOWNLOAD]
Wie folgt lässt sich nach einem Checkout der chan_dongle Sourcen oder der gepatchten Version für Asterisk 11 das Modul bauen und installieren:
DESTDIR="/opt/asterisk/lib/asterisk/modules" ./configure --disable-manager --disable-apps --with-asterisk=/opt/install/asterisk/include make make install
Nach erfolter Installation fehlt noch eine valide dongle.conf im Asterisk-Konfigruationsverzeichnis (/opt/asterisk/etc/asterisk). Für die Grundkonfiguration wird die IMEI des UMTS-Sticks benötigt, welche an die entsprechender Stelle in der Konfigurationsdatei eingetragen werden muß. Damit ist gewährleistet, dass der UMTS-Stick eindeutig identifiziert und die Zugriffskanäle eingerichtet werden können. Selbstverständlich können weitere Modifikationen nach bestem Wissen an den Standeinstellungen vorgenommen werden.
Eine PIN-Überprüfung wird von chan_dongle noch nicht unterstützt. Daher muß vor dem Hinzufügen des UMTS-Sticks in das System die PIN auf der eingelegten SIM-Karte deaktiviert werden.
Sobald die dongle.conf und der UMTS-Stick dem Asterisk-Server zur Verfügung stehen, kann durch einen hook auf diesen
/opt/asterisk/sbin/asterisk -r
das Modul chan_dongle geladen werden
scrat*CLI> module load chan_dongle Loaded chan_dongle [Dec 11 18:03:20] NOTICE[30059]: chan_dongle.c:1559 reload_config: [dongle0] Loaded device
und die Verbindung zum UMTS-Stick überprüft werden.
scrat*CLI> dongle show devices ID Group State RSSI Mode Submode Provider Name Model Firmware IMEI IMSI Number dongle0 0 Free 12 0 0 Telekom.de K3520 11.315.05.00.00 123456789012345 123456789012345 +49171234567 scrat*CLI>
Mit dem Befehl “dongle show devices” werden alle an das Asterisk-System gekoppelten UMTS-Sticks mit entsprechenden Hardware- und SIM-Informationen angezeigt.
Die Grundkonfiguration ist damit beendet. Ein erster Test könnte zu diesem Zeitpunkt das Versenden einer SMS sein.
dongle sms dongle0 0171123456789 Hello World

Damit eingehende Anrufe und SMS erfolgreich vom Asterisk-Server verarbeitet werden können, müssen die in der Konfigurationsdatei dongle.conf angegebenen Parameter in der extensions.conf umgesetzt werden. Unter der Annahme dass in der dongle.conf als context “umtsstick” angegeben wurde, kann der Eintrag wie folgt aussehen:
[umtsstick]
exten => sms,1,Set(MESSAGE=${BASE64_DECODE(${SMS_BASE64})})
exten => sms,n,NoOp(Folgende SMS wurde empfangen: ${MESSAGE})
exten => sms,n,Hangup()
exten => +49171123456789,1,NoOp(Eingehender Anruf auf Extension ${EXTEN} von Rufnummer ${CALLERID(num)}.)
exten => +49171123456789,n,Playback(hello-world)
exten => +49171123456789,n,Hangup()
Asterisk bietet jetzt eine Vielzahl von Möglichkeiten eingehende/abgehende Anrufe und SMS zu verarbeiten. Generell gelten die Asterisk üblichen Funktionen im Zusammenspiel mit denen von chan_dongle bereitgestellten. Eine gute Übersicht über die möglichen Befehle und Modulfunktionen befindet sich im chan_dongle Wiki.
