- Mitglied seit
- 27 Dez 2004
- Beiträge
- 3,309
- Punkte für Reaktionen
- 9
- Punkte
- 38
In den Firmwarewünschen zur FBF gibt es einige häufig gefragten Funktionen, welche seit Jahren fehlen.
Einen Großteil dieser Funktionen kann man mit einem Asterisk ergänzen.
Ich habe lange überlegt, in welches Unterforum dieser Thread passt. Letztlich kommt AVM/Telefonie, das sich ja mit dem Anschluss von Telefonanlagen an die FBF beschäftigt, dem am nächsten.
Es geht hier nicht darum, Asterisk auf einer FBF zu installieren - das kann bei sicherheitskritischen Firmwareupdates ein Problem geben. Es geht auch nicht darum, wie Asterisk allgemein funktioniert und was man damit machen kann.
Es geht nur - und ausschließlich - darum, wie man einen minimalen Asterisk einrichtet und so nutzt, dass man die fehlenden, seit Ewigkeiten gewünschten Funktionen ergänzt. Ziel ist es, so viel wie möglich die FBF machen zu lassen.
Folgende Funktionen sollen realisiert werden:
1. Parallelruf auf Handy/Smartphones mit Übermittlung der original Anrufernummer
2. Parallelruf zu mehreren Zielen
3. Callback mittels Boxtogo Pro auf einem Smartphone
4. Splitting eines Sipgate Basic Accounts in einzelne Rufnummern (wenn man z.B. Rufnummern dorthin portiert hat)
neu: 5. Anbindung von Handys via Bluetooth (eingehende Anrufe auf dem Handy an die Fritzbox übergeben und von der Fritzbox ausgehend über das Handy telephonieren)
Weitere Funktionen, wie das Anschließen einer Türklingel, kommen ggf. später dazu.
A. Hardwareauswahl
Ich habe selbst schon einige Asterisk auf verschiedener Hardware installiert:
- auf der FBF selbst mittels Freetz
- auf einem Igel Thin Client
- in einer VM auf einem WHS
- auf einem Raspberry und einem Banana Pi
- auf einem kommerziellen vserver (z.B. einen root server bei serverways.de mit echter IPv4 und IPv6 für 3,90€/Monat)
Am billigsten ist natürlich die Installation auf einer vorhandenen FBF. Allerdings setzt man den Asterisk damit ggf. direkt dem Internet aus - gerade Anfängern ist das nicht zu raten. Außerdem muss man entweder auf dem Asterisk oder der FBF den SIP Port von 5060 auf einen anderen Wert ändern. Auch nicht einsteigerfreundlich.
Ein Igel ist eine feine Sache, lohnt wegen des Stromverbrauchs aber nur, wenn man z.B. wie ich eine 4-port ISDN-Karte betreibe - und dann muss man den Asterisk und den Linux-Kernel selbst kompillieren.
Eine VM auf einem vorhandenem Server ist nur dann sinnvoll, wenn dieser im Dauerbetrieb läuft - und die anderen Prozesse nicht zu viel Last erzeugen. Auch eher was für Fortgeschrittene.
Ein Raspberry Pi kostet rund 30€. Für unser Projekt reicht eine SD_Karte mit 2GB als Bootmedium. Ein Gehäuse kann man dazu kaufen (ab 5€), als Netzteil reicht ein 5V MicroUSB-Handylader (mind 700mA). 5V*0,7A=3,5 W. Angst vor der Stromrechnung muss man nicht haben.
Ein Betriebssystem installiert man, indem man es als Imagedatei aus dem Netz läd und mit einem Windowstool auf die SD-Karte schreibt. Einfacher geht es kaum.
So sehr ich selbst Asterisk@FBF, auf Igel oder WHS interessant finde, für den Produktiveinsatz ist ein eigentändiger Rechner - in Form des RasPi - einfach ideal.
Wer über BananaPi oderr CubiBoard nachdenkt: Die zusätzliche Leistung brauchen wir hier nicht, also kann man das Geld sparen. Im Prinzip geht aber mit denen alles genauso.
Unterschiede kann es aber bei der USB-Anbindung von Bluetoothsticks geben, bei gleichem sonstigem Setup hatte ich beim BananaPi Qualitätsprobleme beim Ton, beim RasPi B (1) hingegen nicht.
Ein vServer ist insbesondere dann interessant, wenn man mehrere Wohnsitze hat oder den Parallelruf aufs Handy unabhängig von der Funktionsfähigkeit des heimischen Internetzugangs sicherstellen möchte. Hier sind entsprechende Sicherheitsrisiken zu berücksichtigen; für Kunden bei der Deutschen Telekom AG kommt hinzu, dass man die Rufnummern nur von Anschlüssen der DTAG, nicht aber vom vserver aus registrieren kann. Ich selbst habe alle meine genutzten Nummern bei Sipgate, ausgehend nutze ich delmont-Ableger. Auch 1&1 kann man vom vserver nutzen. Als wesentlichen Sicherheitsfaktor sollte man in den Kundencentern abgehende kostenpflichtige Anrufe sperren; zumindest bei 1&1 und Sipgate geht das problemlos. Bei Delmont-Ablegern sollte man die automatische Aufladung deaktivieren. So ist das Risiko bei Hackerangriffen auf vorhandene Guthaben - also in der Regel weniger als 10€ - beschränkt.
Für die Meisten sollte ein heimischer Raspberry Pi das Gerät der Wahl sein; die Anleitung orientiert sich also hieran.
Ich gehe davon aus, dass man die Installation von einem Windowsrechner aus vornimmt - Linuxuser brauchen diese HowTo eh nicht...
B. Die "Einkaufsliste"
B.1 Hardware
- Raspberry Pi Model B (mit Gehäuse, was man aber auch selbst bauen kann)
- SD-Karte mit mind. 2 GB (besser 4GB)
- 5V-Netzteil mit MicroUSB-Kabel, mind. 700 mA (mehr ist besser, bei USB-Sticks für Bluetooth empfehle ich eher 2A)
- Netzwerkkabel und freinen LAN-Port an der FBF (oder einen weiteren Switch)
- SDCard-USB-Adapter für den PC
- ... und natürlich eine FBF (an der IP-Telefone eingerichtet werden können)
- Für die Anbindung von Handys oder Headsets per Bluetooth einen Bluetooth-Stick, möglichst mit Cambridge Silicon Chip (die billigen aus China). Der Bluetooth Chip des Raspberry Pi3B arbeitet leider nicht korrekt mit Asterisk zusammen (kein Ton).
- eine echte Hardwarealternative ist der NextThing Chip (9$PC). Für die Debian Installation muss man allerdings der Herstellerseite folgen, da der C.H.I.P onbord-Flash und nicht SD hat.
Mit Ausnahme der FBF, den Bluetooth Sticks und einem eventuellen weiteren Switch und/oder USB-Hub habe ich das bei Reichelt mal zusammengestellt:
https://secure.reichelt.de/index.html?&ACTION=20&AWKID=984177&PROVID=2084
B.2 Software
- Raspian
- Win32 Disk Imager
- Putty
- PuttyGen
- Notepad++
- 7zip
- WinSCP
B.3 Provider
Für die Rufumleitung aufs Handy/Smartphone mit Rufnummernübermittlung gibt es zur Zeit zwei preiswerte Möglichkeiten:
B.3.1 Dellmont-Marken (z.B. CheapVoIP)
Mit dem Windowsclient kann man einstellen, wohin Anrufe, die beim Dellmontaccount eingehen, umgeleitet werden sollen hier trägt man die eigene Handynummer ein. Nun hat man gar keine eingehende Nummer, sondern kann nur per sip-uri (z.B. sip:[email protected]) angerufen werden.
Da wir Dellmont per sip nutzen wollen, müssen wir sip auf der Webseite ausdrücklich erlauben.
B.3.2 Sipgate Basic/Plus, wenn man eine Simquadratkarte im Handy/Smartphone hat.
Anrufe von Sipgate zu Simquadrat sind kostenfrei. Man kann bei Sipgate einstellen, dass die abgehende Rufnummer vom Endgerät gesetzt wird. Somit ist die Übermittlung einer beliebigen Rufnummer - sinnvollerweise der des eingehenden Anrufes - möglich.
Auch eignet sich Sipgate zur Weiterleitung an einen anderen Festnetzanschluss. Die Entgelte sind erträglich (bei Sipgate Plus 1 Cent/Min).
B.3.3 IP-Telefon in der FBF
Die FBF soll unsere Hauptzentrale bleiben, also eingehende Anrufe annehmen. Damit der Asterisk diese weiterleiten kann, muss er sich an der FBF als IP-Telefon anmelden.
Wir richten in der FBF folgendes IP-Telefone ein:
620: Hier werden eingehende Anrufe für den Asterisk signalisiert.
Natürlich geht auch jede andere Nummer, in meinen Beispielconfigs werde ich jedoch von 620 mit Kennwort qwertz und IP der FBF 192.168.178.1 ausgehen.
C. Installation des Grundsystems
Das heruntergeladene Image muss noch entpackt werden. 7zip eignet sich gut dafür.
Anschließend steckt man die SD-Karte in den USB-Adapter und schließt diesen am PC an. Die SD-Karte sollte nun im Windowsexplorer erkannt werden.
Mit dem Win32 Disk Imager schreibt man das vorher entpackte Raspian auf die SD-Karte. Das kann etwas dauern.
Ist der Schreibvorgang erfolgreich abgeschlossen, muss man noch eine leere Datei mit dem Namen "SSH" (ohne Dateiendung) auf der SD-Karte anlegen - sonst kann man sich nicht per SSH am Pi anmelden. Einfach per Explorer neue Textdatei anlegen und in "SSH" umbenennen. Dann wirft man die SD-Karte aus und steckt sie in den Raspberry Pi.
Nun kann man den RasPi ans Netzwerk anschließen und anschließend mit Strom versorgen (die Reihenfolge beachten, denn der RasPi soll sich via DHCP seine IP holen).
Nun heist es, einige Minuten zu warten, bis der RasPi im Webinterface der FBF unter Heimnetz/Netzwerk zu finden ist. Hier erfahren wir die IP des Raspberry (und legen in der FBF auch gleich fest, dass er immer die gleiche IP erhalten soll).
Mit Kenntnis der IP können wir nun Putty starten und uns mit dem RasPi verbinden. Da dies zum ersten Mal geschieht, ist der beim Erststart vom RasPi erzeugte Schlüssel noch unbekannt, es erscheint eine Warnung. Wir akzeptieren natürlich den Schlüssel, woraufhin wir eine Shell erreichen (sowas wie die MS-Dos-Eingabeaufforderung).
Mit dem Benutzernamen "pi" und dem Kennwort "raspberry" loggen wir uns ein.
Da man aber für vieles hinterher einen Root-Zugang braucht, muss man diesen zunächst zulassen. Dazu setzt man erstmal ein Passwort für root:
$ sudo passwd
Um per ssh als root auf den pi einloggen zu können, mus zudem die /etc/ssh/sshd_config geändert werden:
$ sudo nano /etc/ssh/sshd_config
Hier ändert man "#PermitRootLogin prohibit-password" in "PermitRootLogin yes".
Mit <CTRL>+<o> und anschließendem <Enter> speichert man die geänderte config und beendet nano mit <CTRL>+<x>
$ sudo /etc/init.d/ssh restart
startet den ssh-server neu, damit die Änderung übernommen wird.
Nun beendet man die Putty-Session und startet sie neu. Jetzt loggt man sich mit root und dem frisch gesetztem Passwort wieder ein.
Aus Sicherheitsgründen sollte ein root-Login nur mittels sicherer assymetrischer Schlüsseldatei möglich sein. Eine sehr gute bebilderte Schritt für Schritt-Anleitung findet sich unter:
https://www.howtoforge.de/anleitung/key-basierte-ssh-logins-mit-putty/
Je länger der Schlüssel, desto sicherer.
Da die Anleitung nicht mehr ganz up-to date ist, ein paar Tips:
Raspian wurde als möglichst kleines Image ausgeliefert und 1:1 auf die SD-Karte geschrieben. Dadurch bleibt meist ein Großteil der Kapazität der SD-Karte zunächst ungenutzt. Es macht Sinn, das Filesystem auf die Gesamtgröße der SD zu expandieren. Dies kann mit rasp-config vorgenommen werden:
$ raspi-config
In der Konfiguration kann man dem Rasperry auch noch einen anderen Namen geben, damit man im Netzwerk immer gleich erkennt, was er macht - vor allem, wenn man mehrere Pis hat. Ich nenne ihn z.B. gerne "Rasperisk".
Nun wird das Raspbian-Image nur alle paar Monate aktualisiert, so dass wir es erstmal auf den neusten Stand bringen müssen:
$ apt-get update
$ apt-get dist-upgrade
$ apt-get upgrade
Alle eventuellen Anfragen beantworten wir mit y(es).
Jetzt können wir asterisk installieren.
Ich schlage vor, die Version mit chan_mobile Unterstützung zu verwenden, auch wenn man erst später Bluetooth nutzen möchte.
$ apt-get install asterisk-mobile
$ apt-get install asterisk-prompt-de
Wer chan_mobile mit Bluetooth nutzen möchte, sollte natürlich noch den Bluetooth-Stack und die erforderlichen Tools installieren:
$ apt-get install bluez bluez-tools
Im Prinzip haben wir nun schon einen lauffähigen Asterisk - wir müssen ihn "nur noch" konfigurieren.
Der SSH-Dienst unterstützt auch die Dateiteiübertragung. WinSCP übernimmt auf Wunsch die Verbindungseinstellungen von Putty, einschließliche der Pfade zu den Schlüsseln. Die Nutzung ist ebenso bequem wie die des normalen Explorers (wegen der standardmäßigen Zweifensteransicht sogar bequemer). Dateien auf dem Linux-System können kopiert, verschoben, gelöscht und - bei den Konfigdateien - auch entweder mit dem internen Editor von WinSCP oder Notepad+ bearbeitet und gleich wieder auf dem Server gesichert werden. Auch das Rechtemanagement ist direkt mit WinSCP möglich.
Wir haben nun einen lauffähigen Asterisk auf unserem Raspberry Pi, den wir bequem von Windows aus konfigurieren können. Nur zum Neueinlesen der geänderten Konfigdateien müssen wir per putty/ssh auf dem Pi eingelogt sein.
Da ich zu bequem bin, mir zu merken, welchen Befehl ich brauche um welche configs neu zu laden, starte ich meinen Asterisk nach jeder Änderung einfach neu. Für unsere Zwecke reicht es:
# sudo killall asterisk
# sudo asterisk
D. Die Konfigdateien
Entscheidende Konfigs sind
asterisk.conf - hier finden sich gewisse Grundeinstellungen, wir können sie erstmal so lassen wie sie ist
sip.conf - hier werden sowohll die externen Accounts, an denen sich der Asterisk registriert, wie auch die Nebenstelle(n), an denen sich Endgeräte (z.B. die Fritzbox) registrieren können, definiert
extentions.conf - dies ist die "Was-passiert-dann-Maschine", der Wählplan.
chan_mobile.conf - diese wird für die Einbindung der Bluetooth-Adapter, Handys und Headsets/Freisprechanlagen benötigt. Das Thema wird erst zum Schluss behandelt.
Im Folgenden die sip.conf, wie wir sie für die gewünschten Funktionen benötigen:
Die extensions.conf:
In diesem Beispiel ist nur der Parallelruf zu zwei Zielen realisiert. Den Rest (und noch einiges mehr) habe ich noch nicht anonymisiert und kommentiert - das mache ich, wenn ich etwas Zeit habe und hier Interesse besteht.
Sollte etwas nicht klappen, bitte melden. Mein System ist etwas komplexer und ich habe diese Abschnitte daraus isoliert. Es kann immer sein, dass ich mich irgendwo vertippt oder etwas übersehen habe.
Ich bin kein Asterisk-Profi, daher gibt es für vieles sicher bessere Lösungen. Ich kann keine Haftung für eventuelle Fehler übernehmen und empfehle ausdrücklich, Dellmont und Sipgate nur prepaid zu nutzen (ohne automatische Aufladung) um ein eventuelles Risiko zu begrenzen. Bei 1&1 sollte man nur abgehende Telefonate erlauben, die in der Flat enthalten sind (also ins Deutsche Festnetz).
E. Erweiterte Beispielkonfiguration
Alle eingangs genannten Funktionen, also auch Callback, habe ich in anonymisierten Konfigs realisiert. Die Dateien finden sich in der angehängten configs.zip
Gegenüber dem Beispiel weiter oben gehen die Konfigs von folgenden Voraussetzungen aus:
In der FBF sind folgende IP-Provider eingerichtet:
*121# bis *124#: Externe Rufnummern (z.B. 1&1)
*125# ein Dellmont-Account
*126# der Asterisk (Nutzername 299, Passwort qwertz)
Zudem folgende IP-Telefone:
620 eingehend und ausgehend 1. externe Rufnummer
621 eingehend und ausgehend 2. externe Rufnummer
622 eingehend und ausgehend 3. externe Rufnummer
623 eingehend und ausgehend 4. externe Rufnummer
624 Nur ausgehend Delmont-Account, eingehend auf keine Nummer reagieren
Die FBF ist über einen dyndnsdienst von außen erreichbar (dyndnsname in die sip.conf eintragen)
Fernwartung ist aktiviert
Ein Android Smartphone ist mit BoxToGo Pro versehen.
Bei der Wahlhilfe ist das Präfix *126#1 eingetragen (im Kommentar in der Beispielkonf steht noch *128#1, das werde ich später ändern)
Die Konfigs sind gegliedert. Eigentlich sind es nur extensions.conf und sip.conf.
Um einzelne Funktionen übersichtlicher zu gestalten, habe ich diese in eigene confs ausgegliedert, die in sip.conf bzw. extensions.conf per #include eingebunden sind.
Dadurch kann man hoffentlich den Aufbau besser nachvollziehen.
Anhang anzeigen configs.zip
F. Einbindung von Headsets und Handys
Mit einem (oder mehreren) Bluetoothsticks wird es möglich, Handys oder Headsets einzubinden und als "externe Leitung" bzw. "Endgerät" zu nutzen. Dabei gilt: Je angebundenes Gerät ist ein Stick erforderlich.
Mit # bluetoothctl wird das Kommandozeilentool zum Einrichten von Bluetoothverbindungen gestartet. Dabei zeigt das Tool zunächst die MACs der bekannten Geräte. Bei einem frisch installiertem System also nur die der/des Bluetoothadapter(s), z.B.:
[NEW] Controller 00:0A:XX:XX:XX:XX raspberrypi #1 [default]
[NEW] Controller 00:0B:XX:XX:XX:XX raspberrypi
Zunächst reicht uns diese Info, wichtig sind die MACs. Bluetoothctr wird mit exit beendet.
Diese Mac verwendet man in der chan_mobile.conf, die folgendes enthalten sollte
Nach Speichern beendet man den Asterisk (# killall asterisk) sofern er noch läuft und startet ihn mit asterisk -cvvv neu.
Sobald der Asterisk gestartet ist kann man mit mobile search nach Bluetoothgeräten in der Umgebung suchen. Dazu muss man natprlich das Headset oder das Handy, das man verbinden möchte, in den Pairingmodus setzen bzw. sichtbar machen. Man erhält dann eine Ausgabe wie z.B.:
Mit diesen Informationen können wir den Asterisk erstmal wieder beenden (Strg+c) und die chan_mobile.conf um den Abschnitt für die Bluetoothgeräte erweitern:
Das war der einfache Teil, jetzt (und wirklich erst jetzt, nachdem mobile search erfolgreich war) müssen wir noch das Pairing durchführen. Dabei muss man aufpassen, dass man wirklich den richtigen Stick mit dem richtigem Gerät pairt.
Dazu startet man wieder bluetoothctl
# bluetoothctrl
und aktiviert parallel das Pairing am ersten Bluetoothgerät (ich fange mit dem Headset an)
Jetzt kann man das nächste Gerät in den Pairing Modus bringen.
Bei mehr BT-Adaptern und Controllern gehts entsprechend weiter.
Nachdem die Verbindungen nun definiert sind, wollen wir sie natürlich auch nutzen - also Telephonate, die auf der FritzBox ankommen, mit dem Bluetoothheadset annehmen oder Telephonate von der Fritzbox übers Handy führen.
Eingehende Anrufe kommen im Kontext [incoming-mobile] an. Um sie an die Fritzbox zu übergeben, brauchen wir entsprechend einen Kontext in der extensions.conf und eine zusätzliche Nebenstelle, an welche wir die Fritzbox anmelden können. Für ausgehende Anrufe über das Handy noch einen passenden Kontext [ausgehend-mobile] in der extensions.conf
sip.conf
extensions.conf
In der Fritzbox wird ein Internettelephonieanbieter eingerichtet, Nutzername BTHandy, Passwort passwort. Über diesen können dann ein- und ausgehend Gespräche übers Handy geführt werden.
Um ein Bluetooth Headset nutzen zu können, muss man in der Fritzbox ein weiteres IP-Telephon einrichten, an welchem sich der Asterisk registriert. Ich nehme hier mal 625. Aus Sicht der FBF ist das BT-Headset also ein ganz normales IP-Telephon.
Zu den Registereinträgen muss man entsprechend in der sip.conf die passende Registrierung hinzufügen:
In der extensions.conf ist noch der Kontext [incoming-headset] zu ergänzen
Es ist sicherlich sinnvoll, den Parallelruf aufs Handy davon abhängig zu machen, dass das Handy disconnected ist. Es macht schlie0lich keinen Sinn, aufs Handy umzuleiden, wenn das Handy selbst wieder zum Asterisk zurück leitet. In meinen Beispielkonfigs wäre entsprechend die extensions-Parallelrufgateways.conf ab Prüfung, ob sie überhaupt aktiv sein soll, anzupassen:
Mehr als ein Gespräch über Bluetooth gleichzeitig führt zu stark verminderter Tonqualität. Will man mehrere Bluetoothverbindungen gleichzeitig nutzen, kann der Next Thing C.h.i.p (9$-Rechner mit WLAN und BT) eine interessante Alternative sein. Je zu koppelndem Gerät nimmt man einen C.h.i.p und richtet dort einen Asterisk drauf ein - und benutzt ihn nur als BT-VoIP-Gateway. Mit der aktuellen Firmware funktioniert Audio auf dem internen BT des C.H.I.P allerdings nicht - ein billiger CSR-BT-Stick funktioniert hingegen einwandfrei.
Als Asteriskserver ist der C.H.I.P eine echte Alternative zum Pi, preislich und auch vom Stromverbrauch. Mit BT-Stick bleibt er ummer, auch beim Start, unter den 900mA, die bei einer 7490 am USB3 zur Verfügung stehen. Flash ist auch bereits genug (4GB) drauf, man braucht nicht einmal eine SD.
Hinweis zur Providerwahl
Bei http://www.voip-comparison.com/ gibt es die Möglichkeit, die verschiedenen Dellmontmarken zu vergleichen. Man kann so sehr gut den oder die für die bevorzugten Ziele am Besten geeigneten Marken herausfinden.
Da sich die Preislisten gelegentlich ändern und diese Site täglich aktualisiert, sollte man, wenn man das Guthaben verbraucht hat, nachschauen, ob nicht der Zeitpunkt gekommen ist, die Marke zu wechseln.
Einen Großteil dieser Funktionen kann man mit einem Asterisk ergänzen.
Ich habe lange überlegt, in welches Unterforum dieser Thread passt. Letztlich kommt AVM/Telefonie, das sich ja mit dem Anschluss von Telefonanlagen an die FBF beschäftigt, dem am nächsten.
Es geht hier nicht darum, Asterisk auf einer FBF zu installieren - das kann bei sicherheitskritischen Firmwareupdates ein Problem geben. Es geht auch nicht darum, wie Asterisk allgemein funktioniert und was man damit machen kann.
Es geht nur - und ausschließlich - darum, wie man einen minimalen Asterisk einrichtet und so nutzt, dass man die fehlenden, seit Ewigkeiten gewünschten Funktionen ergänzt. Ziel ist es, so viel wie möglich die FBF machen zu lassen.
Folgende Funktionen sollen realisiert werden:
1. Parallelruf auf Handy/Smartphones mit Übermittlung der original Anrufernummer
2. Parallelruf zu mehreren Zielen
3. Callback mittels Boxtogo Pro auf einem Smartphone
4. Splitting eines Sipgate Basic Accounts in einzelne Rufnummern (wenn man z.B. Rufnummern dorthin portiert hat)
neu: 5. Anbindung von Handys via Bluetooth (eingehende Anrufe auf dem Handy an die Fritzbox übergeben und von der Fritzbox ausgehend über das Handy telephonieren)
Weitere Funktionen, wie das Anschließen einer Türklingel, kommen ggf. später dazu.
A. Hardwareauswahl
Ich habe selbst schon einige Asterisk auf verschiedener Hardware installiert:
- auf der FBF selbst mittels Freetz
- auf einem Igel Thin Client
- in einer VM auf einem WHS
- auf einem Raspberry und einem Banana Pi
- auf einem kommerziellen vserver (z.B. einen root server bei serverways.de mit echter IPv4 und IPv6 für 3,90€/Monat)
Am billigsten ist natürlich die Installation auf einer vorhandenen FBF. Allerdings setzt man den Asterisk damit ggf. direkt dem Internet aus - gerade Anfängern ist das nicht zu raten. Außerdem muss man entweder auf dem Asterisk oder der FBF den SIP Port von 5060 auf einen anderen Wert ändern. Auch nicht einsteigerfreundlich.
Ein Igel ist eine feine Sache, lohnt wegen des Stromverbrauchs aber nur, wenn man z.B. wie ich eine 4-port ISDN-Karte betreibe - und dann muss man den Asterisk und den Linux-Kernel selbst kompillieren.
Eine VM auf einem vorhandenem Server ist nur dann sinnvoll, wenn dieser im Dauerbetrieb läuft - und die anderen Prozesse nicht zu viel Last erzeugen. Auch eher was für Fortgeschrittene.
Ein Raspberry Pi kostet rund 30€. Für unser Projekt reicht eine SD_Karte mit 2GB als Bootmedium. Ein Gehäuse kann man dazu kaufen (ab 5€), als Netzteil reicht ein 5V MicroUSB-Handylader (mind 700mA). 5V*0,7A=3,5 W. Angst vor der Stromrechnung muss man nicht haben.
Ein Betriebssystem installiert man, indem man es als Imagedatei aus dem Netz läd und mit einem Windowstool auf die SD-Karte schreibt. Einfacher geht es kaum.
So sehr ich selbst Asterisk@FBF, auf Igel oder WHS interessant finde, für den Produktiveinsatz ist ein eigentändiger Rechner - in Form des RasPi - einfach ideal.
Wer über BananaPi oderr CubiBoard nachdenkt: Die zusätzliche Leistung brauchen wir hier nicht, also kann man das Geld sparen. Im Prinzip geht aber mit denen alles genauso.
Unterschiede kann es aber bei der USB-Anbindung von Bluetoothsticks geben, bei gleichem sonstigem Setup hatte ich beim BananaPi Qualitätsprobleme beim Ton, beim RasPi B (1) hingegen nicht.
Ein vServer ist insbesondere dann interessant, wenn man mehrere Wohnsitze hat oder den Parallelruf aufs Handy unabhängig von der Funktionsfähigkeit des heimischen Internetzugangs sicherstellen möchte. Hier sind entsprechende Sicherheitsrisiken zu berücksichtigen; für Kunden bei der Deutschen Telekom AG kommt hinzu, dass man die Rufnummern nur von Anschlüssen der DTAG, nicht aber vom vserver aus registrieren kann. Ich selbst habe alle meine genutzten Nummern bei Sipgate, ausgehend nutze ich delmont-Ableger. Auch 1&1 kann man vom vserver nutzen. Als wesentlichen Sicherheitsfaktor sollte man in den Kundencentern abgehende kostenpflichtige Anrufe sperren; zumindest bei 1&1 und Sipgate geht das problemlos. Bei Delmont-Ablegern sollte man die automatische Aufladung deaktivieren. So ist das Risiko bei Hackerangriffen auf vorhandene Guthaben - also in der Regel weniger als 10€ - beschränkt.
Für die Meisten sollte ein heimischer Raspberry Pi das Gerät der Wahl sein; die Anleitung orientiert sich also hieran.
Ich gehe davon aus, dass man die Installation von einem Windowsrechner aus vornimmt - Linuxuser brauchen diese HowTo eh nicht...
B. Die "Einkaufsliste"
B.1 Hardware
- Raspberry Pi Model B (mit Gehäuse, was man aber auch selbst bauen kann)
- SD-Karte mit mind. 2 GB (besser 4GB)
- 5V-Netzteil mit MicroUSB-Kabel, mind. 700 mA (mehr ist besser, bei USB-Sticks für Bluetooth empfehle ich eher 2A)
- Netzwerkkabel und freinen LAN-Port an der FBF (oder einen weiteren Switch)
- SDCard-USB-Adapter für den PC
- ... und natürlich eine FBF (an der IP-Telefone eingerichtet werden können)
- Für die Anbindung von Handys oder Headsets per Bluetooth einen Bluetooth-Stick, möglichst mit Cambridge Silicon Chip (die billigen aus China). Der Bluetooth Chip des Raspberry Pi3B arbeitet leider nicht korrekt mit Asterisk zusammen (kein Ton).
- eine echte Hardwarealternative ist der NextThing Chip (9$PC). Für die Debian Installation muss man allerdings der Herstellerseite folgen, da der C.H.I.P onbord-Flash und nicht SD hat.
Mit Ausnahme der FBF, den Bluetooth Sticks und einem eventuellen weiteren Switch und/oder USB-Hub habe ich das bei Reichelt mal zusammengestellt:
https://secure.reichelt.de/index.html?&ACTION=20&AWKID=984177&PROVID=2084
B.2 Software
- Raspian
- Win32 Disk Imager
- Putty
- PuttyGen
- Notepad++
- 7zip
- WinSCP
B.3 Provider
Für die Rufumleitung aufs Handy/Smartphone mit Rufnummernübermittlung gibt es zur Zeit zwei preiswerte Möglichkeiten:
B.3.1 Dellmont-Marken (z.B. CheapVoIP)
Mit dem Windowsclient kann man einstellen, wohin Anrufe, die beim Dellmontaccount eingehen, umgeleitet werden sollen hier trägt man die eigene Handynummer ein. Nun hat man gar keine eingehende Nummer, sondern kann nur per sip-uri (z.B. sip:[email protected]) angerufen werden.
Da wir Dellmont per sip nutzen wollen, müssen wir sip auf der Webseite ausdrücklich erlauben.
B.3.2 Sipgate Basic/Plus, wenn man eine Simquadratkarte im Handy/Smartphone hat.
Anrufe von Sipgate zu Simquadrat sind kostenfrei. Man kann bei Sipgate einstellen, dass die abgehende Rufnummer vom Endgerät gesetzt wird. Somit ist die Übermittlung einer beliebigen Rufnummer - sinnvollerweise der des eingehenden Anrufes - möglich.
Auch eignet sich Sipgate zur Weiterleitung an einen anderen Festnetzanschluss. Die Entgelte sind erträglich (bei Sipgate Plus 1 Cent/Min).
B.3.3 IP-Telefon in der FBF
Die FBF soll unsere Hauptzentrale bleiben, also eingehende Anrufe annehmen. Damit der Asterisk diese weiterleiten kann, muss er sich an der FBF als IP-Telefon anmelden.
Wir richten in der FBF folgendes IP-Telefone ein:
620: Hier werden eingehende Anrufe für den Asterisk signalisiert.
Natürlich geht auch jede andere Nummer, in meinen Beispielconfigs werde ich jedoch von 620 mit Kennwort qwertz und IP der FBF 192.168.178.1 ausgehen.
C. Installation des Grundsystems
Das heruntergeladene Image muss noch entpackt werden. 7zip eignet sich gut dafür.
Anschließend steckt man die SD-Karte in den USB-Adapter und schließt diesen am PC an. Die SD-Karte sollte nun im Windowsexplorer erkannt werden.
Mit dem Win32 Disk Imager schreibt man das vorher entpackte Raspian auf die SD-Karte. Das kann etwas dauern.
Ist der Schreibvorgang erfolgreich abgeschlossen, muss man noch eine leere Datei mit dem Namen "SSH" (ohne Dateiendung) auf der SD-Karte anlegen - sonst kann man sich nicht per SSH am Pi anmelden. Einfach per Explorer neue Textdatei anlegen und in "SSH" umbenennen. Dann wirft man die SD-Karte aus und steckt sie in den Raspberry Pi.
Nun kann man den RasPi ans Netzwerk anschließen und anschließend mit Strom versorgen (die Reihenfolge beachten, denn der RasPi soll sich via DHCP seine IP holen).
Nun heist es, einige Minuten zu warten, bis der RasPi im Webinterface der FBF unter Heimnetz/Netzwerk zu finden ist. Hier erfahren wir die IP des Raspberry (und legen in der FBF auch gleich fest, dass er immer die gleiche IP erhalten soll).
Mit Kenntnis der IP können wir nun Putty starten und uns mit dem RasPi verbinden. Da dies zum ersten Mal geschieht, ist der beim Erststart vom RasPi erzeugte Schlüssel noch unbekannt, es erscheint eine Warnung. Wir akzeptieren natürlich den Schlüssel, woraufhin wir eine Shell erreichen (sowas wie die MS-Dos-Eingabeaufforderung).
Mit dem Benutzernamen "pi" und dem Kennwort "raspberry" loggen wir uns ein.
Da man aber für vieles hinterher einen Root-Zugang braucht, muss man diesen zunächst zulassen. Dazu setzt man erstmal ein Passwort für root:
$ sudo passwd
Um per ssh als root auf den pi einloggen zu können, mus zudem die /etc/ssh/sshd_config geändert werden:
$ sudo nano /etc/ssh/sshd_config
Hier ändert man "#PermitRootLogin prohibit-password" in "PermitRootLogin yes".
Mit <CTRL>+<o> und anschließendem <Enter> speichert man die geänderte config und beendet nano mit <CTRL>+<x>
$ sudo /etc/init.d/ssh restart
startet den ssh-server neu, damit die Änderung übernommen wird.
Nun beendet man die Putty-Session und startet sie neu. Jetzt loggt man sich mit root und dem frisch gesetztem Passwort wieder ein.
Aus Sicherheitsgründen sollte ein root-Login nur mittels sicherer assymetrischer Schlüsseldatei möglich sein. Eine sehr gute bebilderte Schritt für Schritt-Anleitung findet sich unter:
https://www.howtoforge.de/anleitung/key-basierte-ssh-logins-mit-putty/
Je länger der Schlüssel, desto sicherer.
Da die Anleitung nicht mehr ganz up-to date ist, ein paar Tips:
- nano statt vi ist komfortabler.
- wir müssen als root eingelogt sein - wenn wir den Asterisk später konfigurieren, brauchen wir meist root-Rechte
- Das vorhin geänderte "PermitRootLogin yes" wird (wenn der Zugriff via Schlüsseldatei funktioniert) in "PermitRootLogin without-password" geändert.
- da die sshd_config inzwischen etwas anders aufgebaut ist, ans Ende "Protocol 2" anfügen (ist aber wohl inzwischen sowieso eingestellt)
- "#PasswordAuthentication yes" in "PasswordAuthentication no" ändern
- "#UsePAM yes" in "#UsePAM no" ändern
- /etc/init.d/ssh restart
Raspian wurde als möglichst kleines Image ausgeliefert und 1:1 auf die SD-Karte geschrieben. Dadurch bleibt meist ein Großteil der Kapazität der SD-Karte zunächst ungenutzt. Es macht Sinn, das Filesystem auf die Gesamtgröße der SD zu expandieren. Dies kann mit rasp-config vorgenommen werden:
$ raspi-config
In der Konfiguration kann man dem Rasperry auch noch einen anderen Namen geben, damit man im Netzwerk immer gleich erkennt, was er macht - vor allem, wenn man mehrere Pis hat. Ich nenne ihn z.B. gerne "Rasperisk".
Nun wird das Raspbian-Image nur alle paar Monate aktualisiert, so dass wir es erstmal auf den neusten Stand bringen müssen:
$ apt-get update
$ apt-get dist-upgrade
$ apt-get upgrade
Alle eventuellen Anfragen beantworten wir mit y(es).
Jetzt können wir asterisk installieren.
Ich schlage vor, die Version mit chan_mobile Unterstützung zu verwenden, auch wenn man erst später Bluetooth nutzen möchte.
$ apt-get install asterisk-mobile
$ apt-get install asterisk-prompt-de
Wer chan_mobile mit Bluetooth nutzen möchte, sollte natürlich noch den Bluetooth-Stack und die erforderlichen Tools installieren:
$ apt-get install bluez bluez-tools
Im Prinzip haben wir nun schon einen lauffähigen Asterisk - wir müssen ihn "nur noch" konfigurieren.
Der SSH-Dienst unterstützt auch die Dateiteiübertragung. WinSCP übernimmt auf Wunsch die Verbindungseinstellungen von Putty, einschließliche der Pfade zu den Schlüsseln. Die Nutzung ist ebenso bequem wie die des normalen Explorers (wegen der standardmäßigen Zweifensteransicht sogar bequemer). Dateien auf dem Linux-System können kopiert, verschoben, gelöscht und - bei den Konfigdateien - auch entweder mit dem internen Editor von WinSCP oder Notepad+ bearbeitet und gleich wieder auf dem Server gesichert werden. Auch das Rechtemanagement ist direkt mit WinSCP möglich.
Wir haben nun einen lauffähigen Asterisk auf unserem Raspberry Pi, den wir bequem von Windows aus konfigurieren können. Nur zum Neueinlesen der geänderten Konfigdateien müssen wir per putty/ssh auf dem Pi eingelogt sein.
Da ich zu bequem bin, mir zu merken, welchen Befehl ich brauche um welche configs neu zu laden, starte ich meinen Asterisk nach jeder Änderung einfach neu. Für unsere Zwecke reicht es:
# sudo killall asterisk
# sudo asterisk
D. Die Konfigdateien
Entscheidende Konfigs sind
asterisk.conf - hier finden sich gewisse Grundeinstellungen, wir können sie erstmal so lassen wie sie ist
sip.conf - hier werden sowohll die externen Accounts, an denen sich der Asterisk registriert, wie auch die Nebenstelle(n), an denen sich Endgeräte (z.B. die Fritzbox) registrieren können, definiert
extentions.conf - dies ist die "Was-passiert-dann-Maschine", der Wählplan.
chan_mobile.conf - diese wird für die Einbindung der Bluetooth-Adapter, Handys und Headsets/Freisprechanlagen benötigt. Das Thema wird erst zum Schluss behandelt.
Im Folgenden die sip.conf, wie wir sie für die gewünschten Funktionen benötigen:
Code:
[general]
language=de
bindport = 5060
bindaddr = 0.0.0.0
realm = dyndnsname
externip = dyndnsname
type=friend
context=incomming
externrefresh=30
nat=yes
srvlookup=yes
transport=udp
localnet=192.168.178.0/255.255.255.0
directmedia=no
;********************
;* Registrierungen *
;********************
;fritzbox
register => 620:[email protected]/620
;********************
;* Externe Accounts *
;********************
[dellmont]
type=friend
insecure=invite
nat=yes
username=benutzername
defaultuser=+494012345
secret=geheim
host=sip.cheapvoip.com
canreinvite=no
directmedia = no
dtmfmode=rfc2833
disallow=all
allow=ulaw
[sipgate]
host = sipgate.de
defaultuser = 123456
secret = geheim
canreinvite = no
directmedia=no
nat = yes
insecure = port,invite
type = friend
outboundproxy=proxy.live.sipgate.de
disallow=all
allow=ulaw
Die extensions.conf:
Code:
[general]
[incomming]
exten => _X.,1,Dial(Local/Mobil@gateways&Local/SimQuadrat@gateways,50,o)
[gateways]
exten => Mobil,1,Set(CALLERID(name)=49${CALLERID(number):1})
exten => Mobil,2,Set(CALLERID(number)=49${CALLERID(number):1})
exten => Mobil,3,Dial(SIP/[email protected])
exten => SimQuadrat,1,Set(CALLERID(name)=49${CALLERID(number):1})
exten => SimQuadrat,2,Set(CALLERID(number)=123456) ; 123456=Benutzername bei Sipgate, nicht Rufnummer!
exten => SimQuadrat,5,Dial(SIP/zielnummer@sipgate)
In diesem Beispiel ist nur der Parallelruf zu zwei Zielen realisiert. Den Rest (und noch einiges mehr) habe ich noch nicht anonymisiert und kommentiert - das mache ich, wenn ich etwas Zeit habe und hier Interesse besteht.
Sollte etwas nicht klappen, bitte melden. Mein System ist etwas komplexer und ich habe diese Abschnitte daraus isoliert. Es kann immer sein, dass ich mich irgendwo vertippt oder etwas übersehen habe.
Ich bin kein Asterisk-Profi, daher gibt es für vieles sicher bessere Lösungen. Ich kann keine Haftung für eventuelle Fehler übernehmen und empfehle ausdrücklich, Dellmont und Sipgate nur prepaid zu nutzen (ohne automatische Aufladung) um ein eventuelles Risiko zu begrenzen. Bei 1&1 sollte man nur abgehende Telefonate erlauben, die in der Flat enthalten sind (also ins Deutsche Festnetz).
E. Erweiterte Beispielkonfiguration
Alle eingangs genannten Funktionen, also auch Callback, habe ich in anonymisierten Konfigs realisiert. Die Dateien finden sich in der angehängten configs.zip
Gegenüber dem Beispiel weiter oben gehen die Konfigs von folgenden Voraussetzungen aus:
In der FBF sind folgende IP-Provider eingerichtet:
*121# bis *124#: Externe Rufnummern (z.B. 1&1)
*125# ein Dellmont-Account
*126# der Asterisk (Nutzername 299, Passwort qwertz)
Zudem folgende IP-Telefone:
620 eingehend und ausgehend 1. externe Rufnummer
621 eingehend und ausgehend 2. externe Rufnummer
622 eingehend und ausgehend 3. externe Rufnummer
623 eingehend und ausgehend 4. externe Rufnummer
624 Nur ausgehend Delmont-Account, eingehend auf keine Nummer reagieren
Die FBF ist über einen dyndnsdienst von außen erreichbar (dyndnsname in die sip.conf eintragen)
Fernwartung ist aktiviert
Ein Android Smartphone ist mit BoxToGo Pro versehen.
Bei der Wahlhilfe ist das Präfix *126#1 eingetragen (im Kommentar in der Beispielkonf steht noch *128#1, das werde ich später ändern)
Die Konfigs sind gegliedert. Eigentlich sind es nur extensions.conf und sip.conf.
Um einzelne Funktionen übersichtlicher zu gestalten, habe ich diese in eigene confs ausgegliedert, die in sip.conf bzw. extensions.conf per #include eingebunden sind.
Dadurch kann man hoffentlich den Aufbau besser nachvollziehen.
Anhang anzeigen configs.zip
F. Einbindung von Headsets und Handys
Mit einem (oder mehreren) Bluetoothsticks wird es möglich, Handys oder Headsets einzubinden und als "externe Leitung" bzw. "Endgerät" zu nutzen. Dabei gilt: Je angebundenes Gerät ist ein Stick erforderlich.
Mit # bluetoothctl wird das Kommandozeilentool zum Einrichten von Bluetoothverbindungen gestartet. Dabei zeigt das Tool zunächst die MACs der bekannten Geräte. Bei einem frisch installiertem System also nur die der/des Bluetoothadapter(s), z.B.:
[NEW] Controller 00:0A:XX:XX:XX:XX raspberrypi #1 [default]
[NEW] Controller 00:0B:XX:XX:XX:XX raspberrypi
Zunächst reicht uns diese Info, wichtig sind die MACs. Bluetoothctr wird mit exit beendet.
Diese Mac verwendet man in der chan_mobile.conf, die folgendes enthalten sollte
Code:
[general]
interval=30
[adapter]
id=blue1
address=00:0A:XX:XX:XX:XX
[adapter]
id=blue2
address=00:0B:XX:XX:XX:XX
Nach Speichern beendet man den Asterisk (# killall asterisk) sofern er noch läuft und startet ihn mit asterisk -cvvv neu.
Sobald der Asterisk gestartet ist kann man mit mobile search nach Bluetoothgeräten in der Umgebung suchen. Dazu muss man natprlich das Headset oder das Handy, das man verbinden möchte, in den Pairingmodus setzen bzw. sichtbar machen. Man erhält dann eine Ausgabe wie z.B.:
Code:
*CLI> mobile search
Address Name Usable Type Port
FC:yy:yy:yy:yy:yy BM-8810 Yes Headset 2
FC:zz:zz:zz:zz:zz catapilar Yes Phone 4
Mit diesen Informationen können wir den Asterisk erstmal wieder beenden (Strg+c) und die chan_mobile.conf um den Abschnitt für die Bluetoothgeräte erweitern:
Code:
[headset]
address=FC:yy:yy:yy:yy:yy
port=2
type=headset
adapter=blue1
[Handy]
address=FC:zz:zz:zz:zz:zz
port=4
context=incoming-mobile
adapter=blue2
group=1
Das war der einfache Teil, jetzt (und wirklich erst jetzt, nachdem mobile search erfolgreich war) müssen wir noch das Pairing durchführen. Dabei muss man aufpassen, dass man wirklich den richtigen Stick mit dem richtigem Gerät pairt.
Dazu startet man wieder bluetoothctl
# bluetoothctrl
und aktiviert parallel das Pairing am ersten Bluetoothgerät (ich fange mit dem Headset an)
Code:
[bluetooth]# list
Controller [FONT=courier new]00:0A:XX:XX:XX:XX[/FONT] raspberrypi #1 [default]
Controller [FONT=courier new]00:0B:XX:XX:XX:XX[/FONT] raspberrypi
[bluetooth]# select [FONT=courier new]00:0A:XX:XX:XX:XX[/FONT]
[CHG] Controller [FONT=courier new]00:0A:XX:XX:XX:XX[/FONT] Discoverable: no
[bluetooth]# scan on
Discovery started
[CHG] Controller [FONT=courier new]00:0A:XX:XX:XX:XX[/FONT] Discovering: yes
[NEW] Device FC:yy:yy:yy:yy:yy BM-8810
[CHG] Device FC:yy:yy:yy:yy:yy RSSI: -66
[CHG] Device FC:yy:yy:yy:yy:yy RSSI: -74
[bluetooth]# pair FC:yy:yy:yy:yy:yy
Attempting to pair with FC:yy:yy:yy:yy:yy
[CHG] Device FC:yy:yy:yy:yy:yy Connected: yes
[CHG] Device FC:yy:yy:yy:yy:yy UUIDs:
00001108-0000-1000-8000-00805f9b34fb
0000110b-0000-1000-8000-00805f9b34fb
0000110c-0000-1000-8000-00805f9b34fb
0000110e-0000-1000-8000-00805f9b34fb
0000111e-0000-1000-8000-00805f9b34fb
[CHG] Device FC:yy:yy:yy:yy:yy Paired: yes
Pairing successful
[CHG] Device FC:yy:yy:yy:yy:yy Connected: no
[bluetooth]# trust FC:yy:yy:yy:yy:yy
[CHG] Device FC:yy:yy:yy:yy:yy Trusted: yes
Changing FC:yy:yy:yy:yy:yy trust succeeded
[bluetooth]#
Jetzt kann man das nächste Gerät in den Pairing Modus bringen.
Code:
[bluetooth]# select [FONT=courier new]00:0B:XX:XX:XX:XX[/FONT]
[CHG] Controller [FONT=courier new]00:0B:XX:XX:XX:XX[/FONT] Discoverable: no
[bluetooth]# scan on
Discovery started
[CHG] Controller [FONT=courier new]00:0B:XX:XX:XX:XX[/FONT] Discovering: yes
[NEW] Device FC:zz:zz:zz:zz:zz Cat
[CHG] Device FC:zz:zz:zz:zz:zz RSSI: -66
[CHG] Device FC:zz:zz:zz:zz:zz RSSI: -74
[bluetooth]# pair FC:zz:zz:zz:zz:zz
Attempting to pair with FC:zz:zz:zz:zz:zz
[CHG] Device FC:zz:zz:zz:zz:zz Connected: yes
[CHG] Device FC:zz:zz:zz:zz:zz UUIDs:
00001108-0000-1000-8000-00805f9b34fb
0000110b-0000-1000-8000-00805f9b34fb
0000110c-0000-1000-8000-00805f9b34fb
0000110e-0000-1000-8000-00805f9b34fb
0000111e-0000-1000-8000-00805f9b34fb
[CHG] Device FC:zz:zz:zz:zz:zz Paired: yes
Pairing successful
[CHG] Device FC:zz:zz:zz:zz:zz Connected: no
[bluetooth]# trust FC:zz:zz:zz:zz:zz
[CHG] Device FC:zz:zz:zz:zz:zz Trusted: yes
Changing FC:zz:zz:zz:zz:zz trust succeeded
Bei mehr BT-Adaptern und Controllern gehts entsprechend weiter.
Nachdem die Verbindungen nun definiert sind, wollen wir sie natürlich auch nutzen - also Telephonate, die auf der FritzBox ankommen, mit dem Bluetoothheadset annehmen oder Telephonate von der Fritzbox übers Handy führen.
Eingehende Anrufe kommen im Kontext [incoming-mobile] an. Um sie an die Fritzbox zu übergeben, brauchen wir entsprechend einen Kontext in der extensions.conf und eine zusätzliche Nebenstelle, an welche wir die Fritzbox anmelden können. Für ausgehende Anrufe über das Handy noch einen passenden Kontext [ausgehend-mobile] in der extensions.conf
sip.conf
Code:
[BTHandy]
host=dynamic
type=friend
secret=passwort
context=ausgehend-mobile
canreinvite = no
directmedia=no
disallow=all
allow=ulaw
extensions.conf
Code:
[incoming-mobile]
exten => s,1,Dial(SIP/BTHandy)
[ausgehend-mobile]
[TABLE]
[TR]
[TD]exten => _X.,1,Dial(Mobile/Handy/${EXTEN},45)
exten => _X.,n,Hangup[/TD]
[/TR]
[/TABLE]
Um ein Bluetooth Headset nutzen zu können, muss man in der Fritzbox ein weiteres IP-Telephon einrichten, an welchem sich der Asterisk registriert. Ich nehme hier mal 625. Aus Sicht der FBF ist das BT-Headset also ein ganz normales IP-Telephon.
Zu den Registereinträgen muss man entsprechend in der sip.conf die passende Registrierung hinzufügen:
Code:
register => 626:[email protected]/fbfheadset
[fbfheadset]
context=incoming-headset
type=friend
insecure=invite
nat=yes
username=625
fromuser=625
fromdomain=fritz.box
secret=passwort
host=192.168.178.1
canreinvite=no
directmedia = no
dtmfmode=rfc2833
disallow=all
allow=ulaw
In der extensions.conf ist noch der Kontext [incoming-headset] zu ergänzen
Code:
[incoming-headset]
exten => s,1,Dial(Mobile/headset,50)
Es ist sicherlich sinnvoll, den Parallelruf aufs Handy davon abhängig zu machen, dass das Handy disconnected ist. Es macht schlie0lich keinen Sinn, aufs Handy umzuleiden, wenn das Handy selbst wieder zum Asterisk zurück leitet. In meinen Beispielkonfigs wäre entsprechend die extensions-Parallelrufgateways.conf ab Prüfung, ob sie überhaupt aktiv sein soll, anzupassen:
Code:
exten => ParallelrufgatewayMobil,22,GotoIf($[${DB(rufuml/mobile)}=1]?24:23)
exten => ParallelrufgatewayMobil,23,MobileStatus(Handy,MobileDiconected)
exten => ParallelrufgatewayMobil,24,GotoIf($["${MobileDiconected}" = "1"]?25:26)
exten => ParallelrufgatewayMobil,25,Dial(SIP/[email protected])
exten => ParallelrufgatewayMobil,26,NoOp()
Mehr als ein Gespräch über Bluetooth gleichzeitig führt zu stark verminderter Tonqualität. Will man mehrere Bluetoothverbindungen gleichzeitig nutzen, kann der Next Thing C.h.i.p (9$-Rechner mit WLAN und BT) eine interessante Alternative sein. Je zu koppelndem Gerät nimmt man einen C.h.i.p und richtet dort einen Asterisk drauf ein - und benutzt ihn nur als BT-VoIP-Gateway. Mit der aktuellen Firmware funktioniert Audio auf dem internen BT des C.H.I.P allerdings nicht - ein billiger CSR-BT-Stick funktioniert hingegen einwandfrei.
Als Asteriskserver ist der C.H.I.P eine echte Alternative zum Pi, preislich und auch vom Stromverbrauch. Mit BT-Stick bleibt er ummer, auch beim Start, unter den 900mA, die bei einer 7490 am USB3 zur Verfügung stehen. Flash ist auch bereits genug (4GB) drauf, man braucht nicht einmal eine SD.
Hinweis zur Providerwahl
Bei http://www.voip-comparison.com/ gibt es die Möglichkeit, die verschiedenen Dellmontmarken zu vergleichen. Man kann so sehr gut den oder die für die bevorzugten Ziele am Besten geeigneten Marken herausfinden.
Da sich die Preislisten gelegentlich ändern und diese Site täglich aktualisiert, sollte man, wenn man das Guthaben verbraucht hat, nachschauen, ob nicht der Zeitpunkt gekommen ist, die Marke zu wechseln.
Zuletzt bearbeitet: