Hallo,
In Vorbereitung des Rückbaues einer alten Siedle Wechselsprechanlage habe ich mich damit beschäftigt, wie ich mit dem Klingeln an Hoftor und Haustür einen Anruf auf den Telefonen der Fritzbox auslösen kann und auch im Telefondisplay die richtige Klingel steht.
Wir haben 2 Fritzboxen (eine pro Etage), die im LAN-Mesh sind. Telefonie ist auch im Mesh freigegeben. Alle DECT Telefone sind an beiden Basisstationen bekannt und an der jeweils besseren angemeldet. Wenn von allen DECT Telefonen an allen Basisstationen der Rufruf mit **9 durchgeführt wurde, kennen alle Fritzboxen alle DECT-Telefone und vergeben eine interne Telefonnummer. Somit kann man auch intern mit 2 DECT Telefonen ein internes Gespräch führen, auch wenn sie an unterschiedlichen DECT Basisstationen angemeldet sind.
Die Klingeltaster habe ich übrigens mit einem potentialfreien KNX Binäreingang auf den Bus gebracht.
Mit dem AVM-Plugin habe ich es nicht stabil hinbekommen. Auch habe ich nicht rausfinden können, wie ich die Quelle des "Anrufes" Hoftor oder Haustür ins Display des Telefones bekomme.
Den Lösungsansatz habe ich hier gefunden. Die Idee ist, dass für jede Klingel eine SIP-Türsprechanlage in der Fritzbox angelegt und mit der SIP-Telefonanlage Asterisk in der Fritzbox registiert wird. Per Script werden die SIP-Telefonanlage angesprochen und führen einen Anruf auf Telefonen aus.
Wie geht es:
Bei Fragen könnt ihr Euch gern melden.
In Vorbereitung des Rückbaues einer alten Siedle Wechselsprechanlage habe ich mich damit beschäftigt, wie ich mit dem Klingeln an Hoftor und Haustür einen Anruf auf den Telefonen der Fritzbox auslösen kann und auch im Telefondisplay die richtige Klingel steht.
Wir haben 2 Fritzboxen (eine pro Etage), die im LAN-Mesh sind. Telefonie ist auch im Mesh freigegeben. Alle DECT Telefone sind an beiden Basisstationen bekannt und an der jeweils besseren angemeldet. Wenn von allen DECT Telefonen an allen Basisstationen der Rufruf mit **9 durchgeführt wurde, kennen alle Fritzboxen alle DECT-Telefone und vergeben eine interne Telefonnummer. Somit kann man auch intern mit 2 DECT Telefonen ein internes Gespräch führen, auch wenn sie an unterschiedlichen DECT Basisstationen angemeldet sind.
Die Klingeltaster habe ich übrigens mit einem potentialfreien KNX Binäreingang auf den Bus gebracht.
Mit dem AVM-Plugin habe ich es nicht stabil hinbekommen. Auch habe ich nicht rausfinden können, wie ich die Quelle des "Anrufes" Hoftor oder Haustür ins Display des Telefones bekomme.
Den Lösungsansatz habe ich hier gefunden. Die Idee ist, dass für jede Klingel eine SIP-Türsprechanlage in der Fritzbox angelegt und mit der SIP-Telefonanlage Asterisk in der Fritzbox registiert wird. Per Script werden die SIP-Telefonanlage angesprochen und führen einen Anruf auf Telefonen aus.
Wie geht es:
- An der Fritzbox (dem Mesh-Master) werden 2 IP-Türsprechanlagen mit interner Telefonnummer angelegt. Bei mit die <620> und <622>. Die Benutzernamen und Passwörter notieren. Den entsprechenden Klingelton kann man auch in der Fritzbox definieren.
- Desweiteren wird im Telefonbuch der Fritzbox eine Gruppe mit Telefonen erstellt, die Klingeln sollen. Diese Gruppe bekommt eine Kurzwahl. Bei mit die **702
- Auf dem RPI wird die Software Asterisk (Soft-IP-Telefonanlage) installiert mit
Code:
sudo apt-get install asterisk
- Als ersten Test können wir uns mit der CLI Verbinden:
Code:
asterisk -vvvr
- sip reload: Lädt die allgemeinen Einstellungen neu und baut eine Verbindung zum SIP Provider auf (nachdem er konfiguriert wurde)
- sip show registry: Zeigt den Status der konfigurierten SIP Zugänge an
- dialplan reload: Lädt den Wählplan neu. Muss nach jeder Änderung durchgeführt werden.
- Die Konfiguration der Asterisk Telefonanlage findet vornehmlich in zwei Dateien statt:
- /etc/asterisk/sip.conf
Hier werden allgemeine Einstellungen sowie die SIP Zugänge konfiguriert - /etc/asterisk/extensions.conf
Hier wird der Wählplan konfiguriert. Es wird also bestimmt wie ein- und ausgehende Anrufe zu behandeln sind.
- /etc/asterisk/sip.conf
- In der sip.conf die beiden in der Fritzbox angelegten IP-Telefone registrieren. Mein Beispiel hängt an.
- Das Auslösen von Anrufen mit Asterisk funktioniert über sogenannte Call-Dateien. Dabei handelt es sich um Textdateien, die Befehlsparameter für einen ausgehenden Anruf enthalten. Kopiert man sie in den Spooler-Ordner /var/spool/asterisk/outgoing, führt sie die Telefonanlage automatisch aus und löscht sie anschließend. Das Anklingeln einer Rufnummer benötigt vier Zeilen:
- Channel: SIP/624/**9
Application: Playback
Data: /var/lib/asterisk/nothing
WaitTime: 5
- Channel: SIP/624/**9
Die erste Zeile legt das Protokoll, den Channel und die Zielrufnummer fest. Weil Asterisk keine Funktion besitzt, um ein Telefon nur anzuklingeln, bietet sich die Anwendung Playback an, die auch ohne Audiodatei arbeitet. Die WaitTime ist die Zeit in Sekunden, die Asterisk auf die Annahme des Gespräches wartet, bevor der Anruf abbricht.
- Diese Dateien wurden mit einer Logik in shNG erzeugt. Bspw so:
Code:#!/usr/bin/env python3 # asterisk_torklingel.py import time import shutil import os import sys #Einstellungen callfilepfad = "/home/smarthome/klingel.call" #Dateipfad in dem das Script die .call-Datei ablegt sipkanal = "620" #Name des SIP-Kanals (in eckigen Klammern in der SIP.conf) sipziel = "**702" #Ziel des Anrufes (Beispiel: **9 als Rundruf der Fritz!Box) sipwartezeit = "10" #Wartezeit bevor wieder aufgelegt wird #Hier wird die .call-Datei zusammengebaut und abgespeichert callfile = "Channel: SIP/" + sipkanal + "/" + sipziel + "\nApplication: Playback\nWaitTime:" + sipwartezeit + "\nData: /var/lib/asterisk/sounds/custom/play" cf = open(callfilepfad, "w") cf.write(callfile) cf.close() ### shutil.copyfile(callfilepfad,'/var/spool/asterisk/outgoing/anruf.call')
- Die Logik wird dann bei Klingeln ausgelöst.
Bei Fragen könnt ihr Euch gern melden.
Kommentar