NEWS
IoBroker und VOIP / SIP Calls mit Asterisk + Fritzbox
-
Guten Morgen und ein frohes Neues!
Ich habe nach der Anleitung erfolgreich den Adapter zum Laufen gebracht (Anruf der hinterlegten Telefonnummer und Ansage des Textes funktioniert). ioBroker und der Asterisk-Server sind auf der selben Maschine (Notebook), also auch die selbe IP Adresse. Mit dem Eintrag in der manager.conf hatte ich so mein Problemchen (permit=subnet/mask). Da bei mir alle IP von 192.168.178.1 bis .255 in 255.255.255.0 sind, ist der Eintrag 192.168.178.0/255.255.255.0 wohl passend.
Jetzt wollte ich das beim Nachbarn auch einrichten, im ioBroker Log kommt aber immer "could not connect to asterisk manager try to connect in 30 seconds again". Beim Ihm läuft ioBroker und Asterisk im selben Docker-Container auf einer Synology. Die Syno und der Container/Docker haben unterschiedliche IP, sind aber alle im selben Subnetz, würde ich sagen.
Welche IP muss denn im Adapter in ioBroker bei IP des Asterisk-Servers eingetragen werden? Oder woran könnte es noch liegen. Wir haben die Dateien wie in der Anleitung beschrieben im Ordner /etc/asterisk/. Danke schon mal für Eure Ideen. -
@trottellumme , also wenn ioBroker und Asterisk im gleichen Docker Container laufen sollte die Verbindung zum Asterisk Manager unproblematisch sein. Schwieriger wird die Verbindung zur Fritzbox. Da muss man unter Umständen die RTP Ports alle freigeben.
Läuft der ioBroker Container im Host, Bridge oder MACVLAN Modus? Das kann man auf der Synology in den Docker Einstellungen sehen. Wurde Asterisk auch gestartet. Dafür am einfachsten im ioBroker Docker Container über die Synology anmelden und asterisk -rvvvvv ausführen. Funktioniert das? Du kannst auch einps -ef | grep asterisk
im ioBroker Container ausführen. -
@Stuebi , vielen Dank. Asterisk war wohl nicht gestartet. Wir dachten, wenn der Container aus und wieder eingeschaltet wird, dann reicht das. Jedenfalls klappte ein Testanruf dann. Aber: Der Nachbar hat zwei Container im Docker parallel, einen zum Testen und einen "Finalen". Wenn eine neue Installation im Test-Container läuft, wird der ausgeschaltet und im finalen wird installiert. Da ging es dann wieder nicht :-(. Zurück zum Testcontainer, da ging es auch nicht mehr :-(. Ein Drama... Wir haben dann im finalen Container sowohl den Asterisk als auch den Adapter im ioBroker deinstalliert/ gelöscht und neu installiert. Klappte nicht, es kam dann irgendetwas mit chan-sip ... registration ... timed out ... try again in 30 seconds. Auch die Fritzbox stromlos, neues Telefon in der Fritzbox und die Einträge qualify=yes und qualifyfreq=600 klappte nicht. Jetzt konnte sich ioB nicht am Asterisk anmelden. Da müssen wir nochmal ran, weiß nur noch nicht so recht wie.
Für mich nur mal zum Verständnis:- Verbindung ioBroker-Asterisk: wird im Adapter mit IP, Port, Benutzer "manager" und Kennwort eingestellt und diese Daten müssen mit denen in der manager.conf übereinstimmen. Dann würde man über sudo asterisk -rvvvvv hoffentlich die Verbindung zum Asterik-Server erkennen.
- Verbindung Asterisk-Fritzbox: Der Anmeldename und das Kennwort aus dem Telefoniegerät in der FB sowie das Subnetz und die Netzmaske in der sip.conf müssen stimmen, dann kann sich Asterisk an der FB registrieren (könnte man in der CLI mit show register... oder so erkennen)
Etwas viel Text, aber habe ich das so richtig verstanden? Wünsche einen sonnigen Freitag :-).
-
@Stuebi im Testcontaier läuft es nun, im echten leider nicht. Wir haben die vier Dateien verglichen, die Portfreigabe geprüft, Rechte der Dateien sind identisch. ioBroker und Asterisk sind verbunden, denke ich. Aber Asterisk kann sich nicht an der Fritzbox registrieren. Wo würdest Du am ehesten den Fehler vermuten? Das ist die Fehlermeldung aus der CLI:
Vielen Dank.
-
@trottellumme sagte in IoBroker und VOIP / SIP Calls mit Asterisk + Fritzbox:
Die Fritzbox ist der IP 192.168.1.1? Und kannst Du die 192.168.1.1 aus dem Asterisk Container mit ping erreichen? -
@Stuebi Ja, die Fritzbox ist die 192.168.1.1 und ich denke, sie ist aus dem Asterisk Container per Ping erreichbar, oder?
-
@trottellumme , ja das sieht gut aus! jetzt musst du den Fehler eingrenzen. Siehst Du folgendes wenn Du
asterisk -rvvvv
aufrufst:== Manager 'manager' logged on from 192.168.20.91
Dann steht schon einmal die Verbindung zwischen ioBroker und Asterisk. Die IP 192.168.20.91 in dem Beispiel oben muss natürlich die von ioBroker sein.
Schau Dir mal folgende Seite https://www.ip-phone-forum.de/threads/fritzbox-und-asterisk-registration-timed-out.257765/ an. Da sind ein paar Tipps bei dem Fehler. Da musst Du ein wenig experimentieren.
-
@Stuebi , danke erstmal und wir werden berichten. Mich wundert halt nur, dass es in dem einem Container geht und im anderen nicht Wir werden mal experimentieren, wobei die Einträge in der sip.conf für uns "böhmische Dörfer" sind. Naja, so schnell geben wir nicht auf.
-
@Stuebi doofe Frage, wo soll ich das eingeben? Wenn ich das bei mir in der Console eingebe, kommt auch nur Connected to Asterisk... wie bei -r mit 5*v ???
-
@Stuebi wir haben es in der CLI mit manager show connected versucht, dies ist ist Ausgabe. Würde sagen, ist verbunden. Wie gesagt, ioBroker und Asterisk laufen im selben Container.
-
Hallo und Guten Abend,
bin von dem Adapter begeistert.
Er lief ohne Probleme.
Benutze es für einen Anruf, wenn der Feuermelder ausgelöst hat.
Dieser wurde dann in der Küche ausgelöst! Allerdings habe ich keinen Anruf erhaltenKann mir leider nicht erklären wieso?
Die GSM-Datei wird im "tmp" Order erzeugt und kann Sie mir auf dem PC auch anhören.
Auch Interne Telefone laufen nicht :-(. Als würde der Anruf nicht raus gehen....
Wenn ich die Interne Nummer von dem "iobroker"-Telefon anrufe kommt folgende
Sprachansage : Please enter after the beep tone your passwort and press hashtag.Was kann ich noch machen ?
Hier mal der LOG aus iobroker:
asterisk.0 2020-02-23 21:11:50.920 info (29974) Start dialing asterisk.0 2020-02-23 21:11:50.919 debug (29974) Converting completed. Result: {"fileNameMP3":"/tmp/audio_1582488457881.mp3","fileNameGSM":"/tmp/audio_1582488457881.gsm","code":0,"signal":null} asterisk.0 2020-02-23 21:11:50.756 debug (29974) Start converting text message (Feueralarm im Wohnzimmer Unten) to GSM audio ‚file /tmp/audio_1582488457881 asterisk.0 2020-02-23 21:11:50.756 debug (29974) Parameter: {"callerid":"**622","telnr":"**610","text":"Feueralarm im Wohnzimmer Unten","extension":"19900808","audiofile":"/tmp/audio_1582488457881","delete":"delete"} asterisk.0 2020-02-23 21:11:50.755 debug (29974) Dial Command asterisk.0 2020-02-23 21:11:50.755 debug (29974) Message: {"callerid":"**622","telnr":"**610","text":"Feueralarm im Wohnzimmer Unten"} asterisk.0 2020-02-23 21:11:50.712 debug (29974) stateChange asterisk.0.dialout.call {"val":true,"ack":false,"ts":1582488710711,"q":0,"from":"system.adapter.admin.0","user":"system.user.admin","lc":1578164663861}
-
@Knallix said in IoBroker und VOIP / SIP Calls mit Asterisk + Fritzbox:
.... Habe die Lösung schon gefunden.
Das Password vom "manager" hat sich wohl auch nach dem Update vom " js-controller"
zurückgesetzt...
Allerdings gab es kein Fehler. Bei den anderen Adaptern hat er einen Fehler angezeigt z.B. beim fritzdect.0)
Ist es möglich dieses noch zu ändern , dass ein Fehler angezeigt wird. DANKE -
Bei mir kommt das und weiter passiert leider nichts:
asterisk.0 2020-02-24 09:24:12.402 info (1235) Start dialing
In der Fritzbox wird auch kein aktiver Anruf angezeigt.
-
Nochmals Danke für den tollen Adapter!
Läuft soweit prima. Jetzt geht es bei mir an das Feintuning.
Daher meine Frage:
Was muss ich wo einstellen, damit der interne Ruf nach 20 Sekunde automatisch unterbrochen wird bzw. dass es nur 20 Sekunden lang klingelt?Konstellation ist noch immer wie folgt:
Wenn die Türschelle betätigt wird sollen alle Telefone im Haus für ca. 20 Sek. klingeln.
Auf dem Display soll als Nachricht "Türklingel" erscheinen.
Anruf soll sich danach automatisch beenden.Danke
-
@Stuebi Es gibt einen relativ neuen Adapter welcher es ermöglicht über Asterix Gespräche über ein VIS-Widget zu führen.
https://github.com/iobroker-community-adapters/ioBroker.vis-sip-asterisk
Das funktioniert aber wohl nur, wenn man eine Doorbird-Klingelanlage besitzt.
Das funktioniert per SIP.
Ich habe eine Telegärtner Doorline Exlusive Klingel an meiner Fritzbox (drahtgebunden) angeschlossen.
Meine Frage wäre, ob man den Adapter so umbiegen könnte, das ich mit meiner Klingelanlage Gespräche über mein Wandtablet (ViS) führen könnte. -
@Knallochse , leider schaffe ich es momentan zeitlich nicht am Adapter viel neu zu entwickeln.
Ich hoffe 2021 sieht es wieder besser aus. -
Ich habe eine Fehlermeldung und bekomme den Adapter über mein Tinkerboard nicht ans laufen. Ich vermute es ist ein Rechteproblem. Wenn ich DIAL OUT drücke, kommt die Fehlermeldung "Extension doesn´t exist."
pi@tinkerboardmaster:~$ sudo asterisk -rvvvvvv Asterisk 13.14.1~dfsg-2+deb9u4, Copyright (C) 1999 - 2014, Digium, Inc. and others. Created by Mark Spencer <markster@digium.com> Asterisk comes with ABSOLUTELY NO WARRANTY; type 'core show warranty' for details. This is free software, with components licensed under the GNU General Public License version 2 and other licenses; you are welcome to redistribute it under certain conditions. Type 'core show license' for details. ========================================================================= Connected to Asterisk 13.14.1~dfsg-2+deb9u4 currently running on tinkerboardmaster (pid = 15662) == Manager 'manager' logged on from 192.168.178.15 tinkerboardmaster*CLI> Disconnected from Asterisk server Asterisk cleanly ending (0). Executing last minute cleanups pi@tinkerboardmaster:~$ sudo nano /etc/asterisk/manager.conf pi@tinkerboardmaster:~$ sudo nano /etc/asterisk/sip.conf pi@tinkerboardmaster:~$ sudo nano /etc/asterisk/extensions.ael pi@tinkerboardmaster:~$ sudo nano /etc/asterisk/sip.conf pi@tinkerboardmaster:~$ asterisk -rvvvvvv Unable to connect to remote asterisk (does /var/run/asterisk/asterisk.ctl exist?)
Meine Configs sehen wie folgt aus ->
manager.conf
pi@tinkerboardmaster:~$ sudo cat /etc/asterisk/manager.conf [general] ; Do not change enabled = yes ; Do not change port = 5038 ; Do not change bindaddr = 0.0.0.0 ; Do not change [manager] ; Do not change secret = Hanna080917! ; Change Manager password for ioBroker asterisk adapter permit = 192.168.178.0/255.255.255.0 ; Change to your subnet and netmask read = all ; Do not change write = all ; Do not change
sip.conf
pi@tinkerboardmaster:~$ sudo cat /etc/asterisk/sip.conf [general] ; Do not change port = 5060 ; Do not change bindaddr = 0.0.0.0 ; Do not change context = default ; Do not change subscribecontext = default ; Do not change register => 123456789: Hanna111111!@192.168.178.1/1000 ; Username, Password and IP address of Fritzbox WLAN/LAN telephone [123456789] ; Change to username of Fritzbox WLAN/LAN telephone type = friend ; Do not change username = 123456789 ; Change to username of Fritzbox WLAN/LAN telephone host = 192.168.178.1 ; Change hostname / IP address of Fritzbox secret = Hanna111111! ; Change password of Fritzbox WLAN/LAN telephone fromdomain = 192.168.178.1 ; Change hostname / IP address of Fritzbox fromuser = 123456789 ; Change username of Fritzbox WLAN/LAN telephone
extensions.ael
pi@tinkerboardmaster:~$ sudo cat /etc/asterisk/extensions.ael context default { 1000 => { Goto(ael-antwort,s,1); } } context ael-ansage { _. => { Answer(); Wait(1); Read(dtmf,${file}&beep,0,s,${repeat},1); if ("${dtmf}" != "") { SayDigits(${dtmf}); } Hangup(); } h => { if ("${del}" = "delete") { NoOp(/bin/rm ${file}.*); System(/bin/rm ${file}.*); } } } context ael-antwort { s => { Answer(); Wait(1); Set(repeat=5); Read(dtmf,/tmp//asterisk_dtmf&beep,0,s,${repeat},1); if ("${dtmf}" != "") { SayDigits(${dtmf}); } Hangup(); } _. => { Goto(ael-antwort,s,1); } }
Die Fehlermeldung im ioBroker sieht wie folgt aus ->
2020-07-24 09:35:52.578 - info: asterisk.0 (23613) starting. Version 1.0.6 in /opt/iobroker/node_modules/iobroker.asterisk, node: v12.18.3, js-controller: 3.1.6 2020-07-24 09:35:52.650 - info: asterisk.0 (23613) Starting Adapter asterisk.0 in version 1.0.6 with transcoder ffmpeg and language DE 2020-07-24 09:35:52.670 - info: asterisk.0 (23613) Connected to Asterisk Manager 2020-07-24 09:35:53.444 - debug: asterisk.0 (23613) Converting completed. Result: {"fileNameMP3":"/tmp/asterisk_dtmf.mp3","fileNameGSM":"/tmp/asterisk_dtmf.gsm","code":0,"signal":null} 2020-07-24 09:35:53.445 - debug: asterisk.0 (23613) Listing vor Dial In Event 2020-07-24 09:36:13.780 - debug: asterisk.0 (23613) system.adapter.admin.0: logging true 2020-07-24 09:36:19.495 - debug: asterisk.0 (23613) stateChange asterisk.0.dialout.call {"val":true,"ack":false,"ts":1595576179488,"q":0,"from":"system.adapter.admin.0","user":"system.user.admin","lc":1568967941534} 2020-07-24 09:36:19.544 - debug: asterisk.0 (23613) Message: {"callerid":"02561*********","telnr":"01*******","text":"Diest ist ein Test"} 2020-07-24 09:36:19.545 - debug: asterisk.0 (23613) Dial Command 2020-07-24 09:36:19.547 - debug: asterisk.0 (23613) Parameter: {"callerid":"0256********","telnr":"01*******","text":"Diest ist ein Test","extension":"123456789","audiofile":"/tmp/audio_1595576062326","delete":"delete"} 2020-07-24 09:36:19.548 - debug: asterisk.0 (23613) Start converting text message (Diest ist ein Test) to GSM audio ‚file /tmp/audio_1595576062326 2020-07-24 09:36:20.034 - debug: asterisk.0 (23613) Converting completed. Result: {"fileNameMP3":"/tmp/audio_1595576062326.mp3","fileNameGSM":"/tmp/audio_1595576062326.gsm","code":0,"signal":null} 2020-07-24 09:36:20.034 - info: asterisk.0 (23613) Start dialing 2020-07-24 09:36:20.040 - error: asterisk.0 (23613) Error while dialing (1). Error: {"response":"Error","actionid":"78319eac-66e3-bbd7-e21a-d9f9a960b05b","message":"Extension does not exist."}, Result: {"parameter":{"callerid":"025619596536","telnr":"017624222610","text":"Diest ist ein Test","extension":"123456789","audiofile":"/tmp/audio_1595576062326","delete":"delete"},"options":{"action":"originate","channel":"SIP/123456789/017*******610","context":"ael-ansage","exten":"01*********0","priority":1,"timeout":60000,"variable":{"repeat":5,"file":"/tmp/audio_1595576062326","del":"delete"},"callerid":"025619******"},"guid":"78319eac-66e3-bbd7-e21a-d9f9a960b05b","result":{"response":"Error","actionid":"78319eac-66e3-bbd7-e21a-d9f9a960b05b","message":"Extension does not exist."}} 2020-07-24 09:36:20.041 - debug: asterisk.0 (23613) Calling callback function: (res, err) => { // check for error }
-
@Stuebi stehe irgendwie auf dem schlauch
Wie kann ich die Berechtigung geben15990874572595863667395592355507.jpg -
Moin,
hat schon jemand den Spaß mit FreePBX zum laufen bekommen? Problem ist ich kann ja nicht einfach in den Config-Files rumfummeln da die im Worst-Case beim nächsten mal von FreePBX doch wieder überschrieben werden
Derzeit komme ich bis zum Punkt "(15549) Start dialing" sehe aber in keinem Log etwas auf dem FreePBX / Asterisk Server.
Was natürlich auch der Fall ist: Asterisk ist in meinem Fall der SIP-Server, ich hab also keine Fritzbox oder dergleichen. Die Asterisk kommuniziert direkt mit den SIP-Servern der Telekom.Bisher habe ich in FreePBX eine Extension angelegt (hab ich für z.b. die Doorbird auch gemacht) und diese entsprechend mit den Zugangsdaten im Reiter SIP eingetragen.
Grüße
Edit: So jetzt hänge ich bei "6428) Error while dialing (1). Error: {"response":"Error","actionid":"b9f31712-8e73-c63b-d206-d7cb374b64d6","message":"Extension does not exist."}, ". Dabei existiert die Extension in Asterisk.
-
Hallo zusammen, ich würde mich selbst als Newbie auf diesem Gebiet bezeichnen, versuche mich aber erst mal selbst, indem ich das Forum studiere um Lösungen zu finden. Ich habe bei mir eine CCU3, einen seperaten Raspbi4 mit Iobroker und eine eine Doorbird Klingelanlage installiert. Auf der Suche nach einer Sprachausgabe für Systemzustände (alarm scharf oder unscharf) bin ich auf den Asterisk Adapter gestoßen und direkt als Lösung für mein Problem erkannt. Die Doorbird ist als SIP--Client auf meiner Fritzbox integriert. Ich habe nach langem Hin und Her auf der PI4 den Asterisk Server am laufen und erfolgreich mit dem IObroker verbunden. Allerdings fumtionierte es bisher nicht. Den Fehler habe ich durch die hier studierten Forenbeiträge selbst gefunden. Es liegt an dem Freigabeordner, welcher auf dem IObroker Adapter noch mit /tmp/ am Anfang der Installation bezeichnet war und erst nachfolgend durch mich auf den im Server hinterlegten Ordner geändert wurde. Leider erfolgt für diesen Ordner offensichtlich jetzt keine Freigabe. Ohne alles neu zu installieren würde ich das natürlich gerne manuell konfigurieren/freigeben. Ich habe im Internet hierzu folgende Seite gefunden:
https://www.asterisk-berlin.de/asterisk-grundlagen/asterisk-non-root.phpMeine Frage ist nun, ob ich die dort hinterlegten Befehle nutzen kann, oder ob diese nicht für diese Form des Adapters/Servers funktionieren, wie gesagt ich habe kaum Linux-Kenntnisse und wurschtle mich so durch .
Ach ja getestet habe ich die Funktion mit dem /tmp/ Ordner und es funktioniert dort alles wunderbar. Ich bedanke mich schonmal vorab für die hier geleistete Arbeit, echt Klasse.
Gruß Andi