[HowTo] Fehlende Funktionen der FBF mittels minimalem Asterisk nachrüsten

Andre

IPPF-Promi
Mitglied seit
27 Dez 2004
Beiträge
3,309
Punkte für Reaktionen
5
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 [email protected], 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
Ab jetzt ist der Login per SSH nur noch als Root mit Schlüsselidentifikation möglich. Wer sich auch als Nutzer pi per ssh einloggen können möchte, sollte auch für diesen Nutzer einen Schlüssel einrichten.

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/[email protected]&Local/[email protected],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/[email protected])
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]
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:

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:
  • Like
Reaktionen: sparkie

andiling

IPPF-Promi
Mitglied seit
19 Jun 2013
Beiträge
5,975
Punkte für Reaktionen
1
Punkte
0
Finde ich toll, dass sich jemand die Mühe macht, das mal so ausführlich zu beschreiben.

Was halt technisch bedingt oftmals nicht funktioniert ist die Verwendung der eigenen Flats, da der Anbieter die Nutzung von Set CALLERID unterstützen muss. o2, 1&1, easybell und die Telekom scheiden da halt aus, die meisten werden da zumindest eine Festnetzflat haben.

Die Telefonate von sipgate zu simquadrat scheinen tatsächlich kostenlos zu sein, wenngleich in der Preisliste nur von anderen sipgate Konten (basic/plus/team) die Rede ist.
 

Andre

IPPF-Promi
Mitglied seit
27 Dez 2004
Beiträge
3,309
Punkte für Reaktionen
5
Punkte
38
Jipp, die Möglichkeit, die CallerID frei zu setzen, bietet nur Sipgate. Dies allerdings auch nur unter CallerID(Name), nicht als Nummer. Eine Weiterleitung zu meinem Bruder, der eine Speedport hat, zeigt die Nummer auf den Telefonen richtig, im Anrufprotokoll aber Falsch (immer die bei Sipgate registrierte Nummer) an.

Bei Dellmont ist der Trick halt der, dass man einen Sip-Uri-Call an sich selbst mach, der dann beim Anbieter umgeleitet wird. Den Header bei einem reinem Sip-UriCall kann man dann aber frei setzen.

Die Weiterleitung auf eine andere Festnetznummer bei Flat kann man auch beim Anbieter setzen. Je nach Anbieter ist das auch von der Flat gedeckt. Dazu bräuchte man den Asterisk also nicht zwingend.
Ein Flat ins Mobilnetz ist kaum lohnend, wenn man bei CheapVoip nur 0,5 Cent/Min zahlt, daher sehe ich das nicht so als Problem.
 

chilango79

Aktives Mitglied
Mitglied seit
14 Apr 2010
Beiträge
2,006
Punkte für Reaktionen
57
Punkte
48
Wären solche Howtos nicht besser im Wiki von wehavemorefun aufgehoben?
Ich habe schon öfter die alten Howtos im Forum ewig gesucht. (z.B. Annex A auf 7050)
Am besten im Wiki eine Übersicht "Howto s" und dort dann eine Liste derselben.
Wie auch bei Freetz.org

Aber trotzdem auch vielen Dank an Andre für diese Ausführlichkeit
 

Andre

IPPF-Promi
Mitglied seit
27 Dez 2004
Beiträge
3,309
Punkte für Reaktionen
5
Punkte
38
Momentan ist das HowTo noch in Entwicklung. Im Forum stoßen schlicht mehr Nutzer drauf, die mitdiskutieren, ausprobieren und weitere Wünsche äußern.
Wenn das HowTo fertig ist und möglicht alle Wünsche erfüllt, ist es sicher sinnvoll, es im Wiki zu verewigen und dorthin zu verlinken. Was - siehe meine Signatur - jeder auch jederzeit tun darf.
 

andiling

IPPF-Promi
Mitglied seit
19 Jun 2013
Beiträge
5,975
Punkte für Reaktionen
1
Punkte
0
Interessant ist ja der Parallelruf, der außer bei 1&1 bei den DSL-Anbietern nicht (mehr) verfügbar ist.
 

Andre

IPPF-Promi
Mitglied seit
27 Dez 2004
Beiträge
3,309
Punkte für Reaktionen
5
Punkte
38
Ja, das ist einer der Hauptgründe, warum ich diese Asterisklösung bereit stelle. Mit CheapVoIP kostet der Parallelruf nur 0,5 Cent in alle Netze, nimmt man FreeVoIPDeal, ist er ins Festnetz sogar kostenlos (in den 120 Tagen nach einer 10$-Aufladung).
Zweiter Grund ist das Callback, das an den Angerufenen immer meine Festnetznummer übermitteln soll. Das geht mit MobileVoIP-App nämlich nicht. Außerdem spart man mit dem Selbstbau das Verbindungsentgelt (Connectionfee).

Alle Funktionen nutze ich seit ca. einem Monat produktiv ohne Probleme. Dass ich trotzdem das Howto nur schrittweise entwickeln kann, liegt an meiner sehr unübersichtlichen Konfiguration - es hat sich halt nach und nach entwickelt. Ich muss alle confs verallgemeinern, ausführlich kommentieren und vor allem hervorheben, wo individuell vom Nutzer anzupassen ist. Dazu möchte ich es gleich für vier Festnetznummern / Nutzer auslegen, was einem typischem Haushalt entspräche.
 

Andre

IPPF-Promi
Mitglied seit
27 Dez 2004
Beiträge
3,309
Punkte für Reaktionen
5
Punkte
38
Vollständige Configs im ersten Beitrag

Moin,

das HowTo wurde von mir im ersten Beitrag erheblich geändet und erweitert.
In den gezippten configs befindet sich wohl jetzt mehr Erläuterungstext, als im ganzen übrigen HowTo.

Ich bitte um Rückmeldung, wenn etwas nicht verständlich ist.

(Dieser Beitrag ist kein "Push" für den Thread, sondern lediglich notwendig, weil eine Änderung von vorhandenen Beiträgen ohne einen neuen Post den Abonnenten sonst leider nicht mitgeteilt wird)
 

geierschnabel

Neuer User
Mitglied seit
20 Nov 2014
Beiträge
1
Punkte für Reaktionen
0
Punkte
0
@ Andre

Vielen, herzlichen Dank für die Mühe, die Sie sich hier damit machen, Ihre ausgefeilte Konfiguration zu dokumentieren.
Bisher habe ich nur im IPFF mitgelesen und über zig Monate verfolgt, mit wieviel Aufwand Sie die 'Sache' verfolgt haben und wie 'tricky' die ganze Angelegenheit eigentlich ist.
Allein die Neugier auf den Inhalt, der im ersten Posting nun bereitgestellten 'configs.zip' war heute einfach so groß, daß ich mich nun angemeldet habe.
Leider bin ich z.Zt. so eingespannt, daß ich nicht gleich loslegen kann. Aber zu Weihnachten schenke ich mir einen neuen Provider und einen 'Raspberry Pi'.

So nun hoffe ich inständigst, daß mir die Moderatoren, diese kleine Danksagung durchgehen lassen und mich nicht wegen 'out-of-topic-Gequatsches' rügen oder verwarnen.

Aber ich bin halt der Meinung, daß ein herzlicher Dank,für die Mühe, die sich Andre hier gibt, einfach fällig ist.

Also verbleibe ich, mich auf Weihnachten freuend und nochmals herzlich dankend

mit freundlichen Grüßen

geierschnabel
 

henry90

Aktives Mitglied
Mitglied seit
13 Feb 2007
Beiträge
822
Punkte für Reaktionen
5
Punkte
18
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, momentan 0,5 Cent/Min in alle Netze)
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.
PowerVoip fest und mobil 0,1 ct/min
 

Andre

IPPF-Promi
Mitglied seit
27 Dez 2004
Beiträge
3,309
Punkte für Reaktionen
5
Punkte
38
Aber Verbindungsentgelt pro Verbindung. Das ist der Nachteil der Vergleichsseiten, dass das nicht automatisch mit ausgewertet werden kann.
All PowerVoip calls are subject to 0.039 US Dollar connection fee
PowerVoIP lohnt sich also erst bei mind. 9 Minuten Gespräch. Das ist bei RUL aufs Handy häufig nicht erreicht. Bei Callback, wo man gar nicht weis, ob man den anderen erreicht, noch unangenehmer.

Die Vergleichsseiten dürfen also nur zur "Vorauswahl" verwendet werden, man muss dann beim jeweiligen Anbieter noch genau hinschauen.
 
Zuletzt bearbeitet:

ta-baluga

Neuer User
Mitglied seit
27 Jan 2006
Beiträge
23
Punkte für Reaktionen
0
Punkte
0
zzgl. 0.039 US Dollar connection fee je Anruf?
 

Andre

IPPF-Promi
Mitglied seit
27 Dez 2004
Beiträge
3,309
Punkte für Reaktionen
5
Punkte
38
Bei Callback dann sogar zwei Verbindungen... Lohnt sich gegenüber CheapVoIP alsoerst nach 18 Minuten. MwSt/Zahlungsentgelt eingerechnet.
 

henry90

Aktives Mitglied
Mitglied seit
13 Feb 2007
Beiträge
822
Punkte für Reaktionen
5
Punkte
18
So ein Pech!
Hätte man sich aber auch gleich denken können,dass da ein Haken ist.
Na ja, 0,5 ct/min ist ja toll genug.
 

Telefisch

Neuer User
Mitglied seit
19 Nov 2014
Beiträge
154
Punkte für Reaktionen
1
Punkte
18
Respekt, tolle Anleitung.
Die Providerdiskussion dient im Grunde der Kosteneinsparung oder hat das auch technische Hintergründe?
Mit anderen Worten, wenn ich genug Rufnummern im Telekom Allnet Tarif hab geht das auch ohne zusätzliche Provider?

Ich frage da in einem anderen Threat die Ansage kam dass Sipgate keine H264 Übertragung unterstützt.
Bin, wie unschwer zu erkenenn noch totaler Newbe bei voip :rolleyes:

Gruss Carsten
 

Andre

IPPF-Promi
Mitglied seit
27 Dez 2004
Beiträge
3,309
Punkte für Reaktionen
5
Punkte
38
Man braucht einen Dellmontaccount, wenn man Parallelruf aufs Handy oder eine andere Festnetznummer einrichten möchte (es geht auch Sipgate, aber meist teurer).

Der Asterisk nimmt den eingehenden Anruf entgegen und lässt gleichzeitig:
- die internen Telefone klingeln
- ruft das oder die weiteren externen Rufnummern.
Für den zweiten Teil muss der Asterisk so tun, als habe er selbst die Nummer des Anrufers, muss also als Absendekennung die eingehende Rufnummer setzen. Das geht - außer bei Sipgate - eigentlich nigendwo so einfach (Businesstarife mal ausgenommen). Bei Sipgate aber auch nur über den Callernamen (Sipgate zu Simquadrat ist kostenfrei, dort ist das also eine sinnvolle Sache, Sipgate zu nutzen, auch bei Festnetz 1Cent/Min bei Sipgate Plus ist es erträglich).

Bei Dellmont (CheapVoIP, FreeVoIPDeal...) gibt es aber einen Trick, mit dem man beliebige Nummern an eine eingestellte Zielnummer übermitteln kann. Man kann im WindowsClient von Dellmont eine Rufumleitung einrichten, dass eingehende Anrufe auf <benutzername>@sip.<dellmontmarke>.com sofort auf eine Zielnummer umgeleitet werden. Ruft man also per SIP-URI diese Adresse, so geht der Anruf z.B. aufs Handy.

Bei SIP-URI-Calls kann man aber den SIP-Header frei setzen, also Callername und Number. Da man direkt vom Asterisk auf die SIP-URI ruft, wird das nicht verifiziert.Bei diesem Anruf kann man also so tun, als sei man derjenige, der gerade bei einem anruft. Auf dem Handy wird also die vom Asterisk übertragene Rufnummer, die diejenige des zu hause eingehenden Anrufs ist, angezeigt.

Leitet man hingegen über eine Rufnummer der Telekom aufs Handy weiter, so würde auf dem Handy immer die eigene Rufnummer angezeigt - es sei denn, man macht die Rufumleitung direkt bei der Telekom, dann klingelt es aber nicht mehr gleichzeitig zu hause.

Ich habe H264 bei Sipgate noch nicht getestet, weil ich Videotelefonie eh nur hausintern nutze. Wundert mich eigentlich, das Sipgate da beschränkt ist, denn SIP handelt ja nur die Kommunikation zwischen den Endpunkten aus (Weshalb ich auch nicht kapiere, warum AVM SIP-Video nicht unterstützt)


Callback oder Parallelruf ohne Übermittlung der eingehenden Rufnummer gehen natürlich mit beliebigen Anbietern. Z.B. mit BoxToGo pro auf dem Smartphone sieht man ja eh, wer angerufen hat.
 
Zuletzt bearbeitet:

Telefisch

Neuer User
Mitglied seit
19 Nov 2014
Beiträge
154
Punkte für Reaktionen
1
Punkte
18
Ah ok, verstehe...
Diese Aufgabenstellung (Parallelruf) war mir bisher nicht klar.
ist ein interessanter Ansatz für die privaten Rufnummern.
Bei den Firmennummern ist unsere Konstellation besser für die klassische Rufumleitung geeignet.
Ich denke das Scenario muss ich nochmal gründlich durchdenken aber ist schon cool zumindest zu Hause das Handy als Schnurlos-Telefon zu verwenden (ohne irgend eine App installieren zu müssen).
 

Andre

IPPF-Promi
Mitglied seit
27 Dez 2004
Beiträge
3,309
Punkte für Reaktionen
5
Punkte
38
Gerade im Büro vermisse ich die Möglichkeit des Parallelrufs. Ich bin häufig hausintern unterwegs. Natürlich könnte ich am Telefon RUL ein und ausschalten. Denkt man aber nicht immer dran. Mit der dort möglichen RUL geht leider die Anrufernummer verloren, dauernde RUL ist also keine Lösung :-( Am liebsten wäre es mir, wenn man dort Parallelruf hätte, wie ich es zu hause habe.
 

sparkie

Aktives Mitglied
Mitglied seit
13 Nov 2005
Beiträge
1,592
Punkte für Reaktionen
20
Punkte
38
Das geht - außer bei Sipgate - eigentlich nigendwo so einfach (Businesstarife mal ausgenommen).
das stimmt aber so nicht ganz:
bei PERSONAL-VOIP ist die Funktionalitaet genauso wie bei Sipgate (insbes. die parallele Uebertragung der UPN (UserProvidedNotScreened) und NP (NetworkProvided) Rufnummer) gegeben.

Bei voippro.com wird die vorgegebene Rufnummer sogar einzig nur als NP Rufnummer uebertragen - ohne dabei den Umweg ueber die SIP-URI gehen zu muessen (wie anscheinend bei den anderen Dellmont Ablegern erforderlich).

Weitere interessante Provider zum Thema habe ich zufaellig in diesem Thread entdeckt (allerdings ohne es selbst verifiziert zu haben):
Dellmont Wholesale Caller-ID

- sparkie
 
3CX

Neueste Beiträge

Statistik des Forums

Themen
235,582
Beiträge
2,062,854
Mitglieder
356,342
Neuestes Mitglied
computerfuchs