NEWS
IoBroker und VOIP / SIP Calls mit Asterisk + Fritzbox
-
Moin
der Thread ist zwar schon alt, aber vielleicht findet sich ja ein asterisk Profi der mir helfen kann.
Ich habe den iobroker asterisk adapter auf einem anderen host wie den asterisk server und alles entsprechend https://github.com/schmupu/ioBroker.asterisk/blob/master/docs/SSH_DE.md eingerichtet.
Der iobroker meldet sich korrekt am remote asterisk an und schickt auch via ssh/scp die generierten audio files rüber.
Leider scheint dort irgend was mit er Konfiguration schief zu laufen.
Der asterisk adapter im iobroker meldet dann "Originate failed:
Error while dialing (1). Error: {"response":"Error","actionid":"ee1bb6cf-1fe7-80ae-252c-8ba913a0d052","message":"Originate failed"}, Result: {"parameter":{"callerid":"**620","telnr":"017643282951","text":"Hallo!","extension":"Smarthome","audiofile":"/tmp//audio_1234","delete":"delete"},"options":{"action":"originate","channel":"SIP/Smarthome/1234","context":"ael-ansage","exten":"1234","priority":1,"timeout":60000,"variable":{"repeat":5,"file":"/tmp//audio_1234","del":"delete"},"callerid":"**620"},"guid":"ee1bb6cf-1fe7-80ae-252c-8ba913a0d052","result":{"response":"Error","actionid":"ee1bb6cf-1fe7-80ae-252c-8ba913a0d052","message":"Originate failed"}}Der asterisk sagt im debug mode dies:
asterisk -rvvvvv Asterisk 18.24.3, Copyright (C) 1999 - 2022, Sangoma Technologies Corporation 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 18.24.3 currently running on mediau (pid = 8597) mediau*CLI> core set debug 10 Core debug was OFF and is now 10. == Manager 'manager' logged on from 10.0.0.3 [Sep 21 13:23:14] WARNING[8682]: channel.c:6332 request_channel: No channel type registered for 'SIP' -- Executing [failed@ael-ansage:1] Answer("OutgoingSpoolFailed", "") in new stack -- Executing [failed@ael-ansage:2] Wait("OutgoingSpoolFailed", "1") in new stack -- Executing [failed@ael-ansage:3] Read("OutgoingSpoolFailed", "dtmf,/tmp//audio_1726924993523&beep,0,s,5,1") in new stack -- Executing [failed@ael-ansage:4] GotoIf("OutgoingSpoolFailed", "0?5:6") in new stack -- Goto (ael-ansage,failed,6) -- Executing [failed@ael-ansage:6] NoOp("OutgoingSpoolFailed", "Finish if_ael-ansage_1") in new stack -- Executing [failed@ael-ansage:7] Hangup("OutgoingSpoolFailed", "") in new stack == Spawn extension (ael-ansage, failed, 7) exited non-zero on 'OutgoingSpoolFailed' -- Executing [h@ael-ansage:1] GotoIf("OutgoingSpoolFailed", "1?2:4") in new stack -- Goto (ael-ansage,h,2) -- Executing [h@ael-ansage:2] NoOp("OutgoingSpoolFailed", "/bin/rm /tmp//audio_1726924993523.*") in new stack -- Executing [h@ael-ansage:3] System("OutgoingSpoolFailed", "/bin/rm /tmp//audio_1726924993523.*") in new stack -- Executing [h@ael-ansage:4] NoOp("OutgoingSpoolFailed", "Finish if_ael-ansage_2") in new stack -- Executing [h@ael-ansage:5] SayDigits("OutgoingSpoolFailed", "") in new stack -- Executing [h@ael-ansage:6] NoOp("OutgoingSpoolFailed", "Finish if_ael-ansage_1") in new stack -- Executing [h@ael-ansage:7] Hangup("OutgoingSpoolFailed", "") in new stack == Spawn extension (ael-ansage, h, 7) exited non-zero on 'OutgoingSpoolFailed'ich habe keine Ahnung was der Asterisk Channel ist, der hier fehlt.
Meine sip.com
[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 => 62162162:pw****@10.0.0.1/1000 ; Username, Password and IP address of Fritzbox WLAN/LAN telephone [62162162] ; Change to username of Fritzbox WLAN/LAN telephone type = friend ; Do not change username = 62162162 ; Change to username of Fritzbox WLAN/LAN telephone host = 10.0.0.1 ; Change hostname / IP address of Fritzbox secret = pw****** ; Change password of Fritzbox WLAN/LAN telephone fromdomain = 10.0.0.1 ; Change hostname / IP address of Fritzbox fromuser = 62162162 ; Change username of Fritzbox WLAN/LAN telephone context = defaultder 62162162 ist der username des SIP accounts in meine Fritzbox
extentions.ael ist die oben beschrieben datei: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 extenstions.conf ist der standard den die 1000 definiert
... exten => 1000,1,Goto(default,s,1) ...Irgend wie scheint in der asterisk config was faul zu sein.
Kann jemand helfen?
Lieben Dank
Stefan@stefanried
the issue is resolved.
There was something wrong with files in the /etc/asterisk folder.Der folder stammt aus einer aktuellen 18.24.3 installation.
Auf einem älteren iobroker war ein asterisk 16.2.1 mit dem es lief.
Ich habe einfach alle files aus dem /etc/asterisk von der alten version auf die neu installiert und siehe da. das Problem war weg. -
@stefanried
the issue is resolved.
There was something wrong with files in the /etc/asterisk folder.Der folder stammt aus einer aktuellen 18.24.3 installation.
Auf einem älteren iobroker war ein asterisk 16.2.1 mit dem es lief.
Ich habe einfach alle files aus dem /etc/asterisk von der alten version auf die neu installiert und siehe da. das Problem war weg.Hallo Zusammen,
wird der Adapter noch gepflegt ?
ich bekomme nach der Installation des Adapters keine Instanz angezeigt um die Konfiguration vorzunehmen
https://github.com/schmupu/ioBroker.asterisk über URL installiert.

so sieht es dan unter Adapters aus.
was mach ich Falsch ?
Danke
-
@powertrain01 Welche URL haben Sie verwendet? Ich kann den Adapter nach dem Update des Brokers nicht mehr installieren. Gefunden: https://github.com/schmupu/ioBroker.asterisk.git Es erstellt die Instanz für mich und die telefonischen Benachrichtigungen funktionieren. Habe versucht, auf die drei vertikalen Punkte und dann auf + zu klicken?

-
@powertrain01 Welche URL haben Sie verwendet? Ich kann den Adapter nach dem Update des Brokers nicht mehr installieren. Gefunden: https://github.com/schmupu/ioBroker.asterisk.git Es erstellt die Instanz für mich und die telefonischen Benachrichtigungen funktionieren. Habe versucht, auf die drei vertikalen Punkte und dann auf + zu klicken?

Ich hab ne dumme Frage!
Kann man den Adapter auch zum telefonieren benutzen?
Ich würde gerne einen Button in der VIS haben, und wenn ich den anklicke dann soll aus der VIS heraus eine Nebenstelle angerufen werden.Soetwas gibts irgendwie noch nicht.
Die Kollegen von home assistant haben einen ha-sip Adapter der mit pjsip programmiert ist. Da kann man scheinbar ohne websocket-verbindung und vor allem ohne Zertifikat direkt telefonieren. So kann jeder mit seiner Fritzbox eine Sprechverbindung aufbauen ohne asterisk installieren zu müssen.Hintergrund:
Ich will mal meine Türsprechanlagen in iobroker integrieren. -
@powertrain01 Welche URL haben Sie verwendet? Ich kann den Adapter nach dem Update des Brokers nicht mehr installieren. Gefunden: https://github.com/schmupu/ioBroker.asterisk.git Es erstellt die Instanz für mich und die telefonischen Benachrichtigungen funktionieren. Habe versucht, auf die drei vertikalen Punkte und dann auf + zu klicken?

@maxemaxe said in IoBroker und VOIP / SIP Calls mit Asterisk + Fritzbox:
@powertrain01 Welche URL haben Sie verwendet? Ich kann den Adapter nach dem Update des Brokers nicht mehr installieren. Gefunden: https://github.com/schmupu/ioBroker.asterisk.git Es erstellt die Instanz für mich und die telefonischen Benachrichtigungen funktionieren. Habe versucht, auf die drei vertikalen Punkte und dann auf + zu klicken?

Von direkten Installation von GitHub - insbesondere auf produktiven Systemen - wird explizit abgeraten.
GitHub Versionen können sich jederzeit (auch kurzfristig) ändern und durchaus auch in sich inkonsistent und fehlerhaft sein. Versionsangaben von GitHub Installationen sind Schall und Rauch da die Versionsnummer zumindest bei Verwendung der standardmäßigen Umgebung erst im Zuge der Releaseerstellung geändert wird.
Auf explizite Aufforderung durch den Entwickler kann eine GitHub Installation zur Fehlereingrenzung oder zum Test neuer Funktionalität - unter Inkaufnahme des erhöhten Risikos - natürlich erfolgen.
Adapter die nur via GitHub oder npm (also NICHT aus einem der beiden Repositories) installierbar sind sind mit erhöhter Vorsicht zu betrachten. Hier sollte der Entwickler drum ersucht werden eine Aufnahme in die Repositories zu veranlassen indem z.B. ein Issue im Adapterrepository erstellt wird.
Und falls es irgendwie unklar ist:
ioBroker unterstützt folgende Arten von Installation:
-
aus dem STABLE Repository
Das sind Adapter Releases die keine groben Fehler aufweisen (sollten). Natürlich kann es auch dort Fehler geben, die Behebung davon obliegt dem jeweiligen Dev und kann ggF auch dauern.
-
aus dem LATEST Repository
Das sind Adapter Releases die neu erstellt wurden und nur rudimentär getestet sind - oft auch als BETA Releases bezeichnet. Releases aus dem LATEST sind primär für unsere zahlreichen freiwilligen Tester gedacht. BETA / LATEST Releases können durchaus Fehler aufweisen - auch wenn ich davon ausgehe dass jeder aintainer dies zu vermeiden versucht. Vom Einsatz auf produktiven Systemen wird abgeraten außer man braucht irgenein neues Feature (z.B. neues Gerät) unbedingt. Hier muss dann jeder Entscheiden was ihm wichtig ist.
-
direkt von GITHUB
Von Installationen direkt aus Giuthub wird definitiv abgeraten außer auf Anweisung des Maintainers und für den Fall dass man gemeinsam mit diesem etwas testen will. Details siehe oben.
-
direkt von npm
Diese Installation kann erforderlich sein, wenn man eine bestimmte Version installieren möchte / muss. Im Normalfall sollte man direkte npm Installationen ebenso meiden wie direkte GitHub Installationen - ausgenommen um z.B. zu einer bekannten Version downzugraden - obwohl hier wenigstens ein definierter Stand garantiert ist.
Adapter die NUR via npm und/oder nur via GitHub installierbar sind sollte man meiden - diese wurden nicht mal einem rudimentären Review unterzogen und sollten mit dem Attribut "vollständig auf eigenes Risiko verwenden" installiert werden. Hier empfiehlt es sich den Developer zu ersuchen eine Aufnahme in die Repos zu veranlassen. Wenn dieser darauf nicht reagiert sollte man von einer eher kurzen und unklaren Lebensdauer des Adapters ausgehen. Support meiner-/unsererseits für solche Adapter ist mit Sicherheit minimalistisch.
P.S: Der Adapter ist ganz normal in den Repositories enthalten.
-
-
Hallo Zusammen,
wird der Adapter noch gepflegt ?
ich bekomme nach der Installation des Adapters keine Instanz angezeigt um die Konfiguration vorzunehmen
https://github.com/schmupu/ioBroker.asterisk über URL installiert.

so sieht es dan unter Adapters aus.
was mach ich Falsch ?
Danke
@powertrain01 said in IoBroker und VOIP / SIP Calls mit Asterisk + Fritzbox:
Hallo Zusammen,
wird der Adapter noch gepflegt ?
ich bekomme nach der Installation des Adapters keine Instanz angezeigt um die Konfiguration vorzunehmen
https://github.com/schmupu/ioBroker.asterisk über URL installiert.

so sieht es dan unter Adapters aus.
was mach ich Falsch ?
Danke
Der Fehler liegt darin einen Adapter direkt von Github zu installieren ohne dass es dazu einen Grund gibt. Bei einem nur für die Ntwicklung / Fehlersuche vorgesehenen Installationweg fallen zusätzliche Schritte an, die hier offensichtlich fehlen.
--> Adapter bitte ganz normal über das Repository installieren - sofern keine Aufforderung des Maintainers existiert etwas zu testen.
-
@powertrain01 said in IoBroker und VOIP / SIP Calls mit Asterisk + Fritzbox:
Hallo Zusammen,
wird der Adapter noch gepflegt ?
ich bekomme nach der Installation des Adapters keine Instanz angezeigt um die Konfiguration vorzunehmen
https://github.com/schmupu/ioBroker.asterisk über URL installiert.

so sieht es dan unter Adapters aus.
was mach ich Falsch ?
Danke
Der Fehler liegt darin einen Adapter direkt von Github zu installieren ohne dass es dazu einen Grund gibt. Bei einem nur für die Ntwicklung / Fehlersuche vorgesehenen Installationweg fallen zusätzliche Schritte an, die hier offensichtlich fehlen.
--> Adapter bitte ganz normal über das Repository installieren - sofern keine Aufforderung des Maintainers existiert etwas zu testen.
gelöscht
-
Hallo,
vielleicht hat jemand daran Interesse. Bei bestimmten Events z.b. wenn die Alarmanlage ausgelöst wurde, soll mich ioBroker auf dem Handy anrufen und eine Sprachnachricht vorspielen.
Was wird dafür benötigt. Eine Fritzbox oder irgendeinen VoIP Anbieter und Asterisk (https://www.asterisk.org). Asterisk gibt es für Linux und ich glaube aber auch für Windows.
Falls Asterisk auf der Synology läuft, müssen ie UDP Ports 5038,5060 und die UDP Ports 7078 bis 7079 exposed im Container werden. Das ist etwas aufwändigerNun auf der Fritzbox anmelden und unter Telefon -> Telefoniegeräte ein neues LAN/WLAN Telefon konfigurieren. In meinem Beispiel habe ich ein Telefon angelegt mit dem Namen ioBroker. Der Username lautet 12345689 und das Password mypassword. Die Fritzbox ist unter der IP Adresse 192.168.1.1 erreichbar. Weiterhin sollen Anrufe über die Rufnummer 03047114711 entgegengenommen werden (optional) und getätigt werden.
Zusammenfassung:
Beschreibung Wert IP Adresse ioBroker und Asterisk Server 192.168.1.2 Asterisk Port (manager.conf) 5038 IP Adresse FritzBox (SIP Server) 192.168.1.1 Eigene Rufnummer 03047114711 Username Manager manager Passwort Manager password1 FritzBox Benutzername (Telefoniegeräte -> Anmeldedaten) 123456789 FritzBox Kennwort (Telefoniegeräte -> Anmeldedaten) mypassword Konfiguration Fritzbox:


Nun folgende Pakte auf dem ioBroker/Asterisk Server installieren:
sudo apt-get install lame sudo apt-get install sox sudo apt-get install libsox-fmt-mp3 sudo apt-get install ffmpeg sudo apt-get install asteriskAsterisk Adapter in ioBroker installieren und folgende Einstellungen vornehmen und umbedingt die Checkbox "Create Asterisk config files (once)" anklicken.
Die Einstellungen auf dem Asterisk Settings Tab sind für die Verbindung vom ioBroker zum Asterisk Server notwendig. Die haben noch nichts mit der Verbindung zur Fritzbox zu tun!
Jetzt auf den Tab SIP Settings wechseln. Hier werden nun die Einstellungen vorgenommen, dass Asterisk (bzw. ioBroker über Asterisk) mit der Fritzbox kommunizieren kann.

Auf dem SSH Tab ist nichts auszufüllen. Dieses ist nur notwendig wenn ioBroker und Asterisk auf unterschiedlichen Servern läuft. Das sollte man aber nur tun, wenn man gute Linux Kenntnisse hat da die Konfiguration komplizierter ist.
Nicht vergessen auf dem "Asterisk Settings" Tab "Create Asterisk config files (once)" anzuklicken. Nun Konfiguration speichern und den Adapter starten. Es werden jetzt mehrere Konfigurationsfiles im den Verzeichnis /tmp/ erstellt. Diese umbennen, in das Verzeichnis /etc/asterisk verschieben.
Unter Umständen sind noch die Dateiberechtigungen der kopierten Dateien anzupassen.sudo mv /tmp/extensions.ael /etc/asterisk/extensions.ael sudo mv /tmp/manager.conf /etc/asterisk/manager.conf sudo mv /tmp/pjsip_fritzbox.conf /etc/asterisk/pjsip.conf sudo mv /tmp/rtp.conf /etc/asterisk/rtp.conf sudo rm /tmp/pjsip*.conf # Example if userrights of files have owner asterisk and group asterisk sudo chown asterisk:asterisk /etc/asterisk/extensions.ael sudo chown asterisk:asterisk /etc/asterisk/manager.conf sudo chown asterisk:asterisk /etc/asterisk/pjsip.conf sudo chown asterisk:asterisk /etc/asterisk/rtp.confSo jetzt Asterisk neu starten. Dieses geschieht z.b. über /etc/init.d/asterisk restart
Wenn alles geklappt hat, kann man jetzt Anrufe über ioBroker tätigen.
Das geht z.B. wie folgt (Anruf der Nummer 04047114711 und es wird "Huhu ein Test" angesagt)
Alternativ kann man auch über Javascript Anrufe durchführen:
var number = "040 666-7766"; var callerid = '040 123 999'; // optional, if not set anonymous call var msg = "Hello, this textmessage will be converted to audio"; // call telephone nummber 040 666-7766 and play text message as audio sendTo('asterisk.0', "dial", { telnr: number, callerid: callerid, text: msg}, (res) => { console.log('Result: ' + JSON.stringify(res)); });Mehr Infos über den Adapter und Installation findet ihr hier: https://github.com/schmupu/ioBroker.asterisk. Auch wie ihr die Konfigurationsdateien manuell erstellt.
@stuebi
Moin,
also habe mich mit meinen laienhaften Kenntnissen bis zum Punkt Blockly durchgekämpft.
Mit Debian 13 geht erstmal nix, auch neuere Versionen von Asterisk funktionieren nicht.
Also, das letzte Image von Debian 12 wieder raufgeholt und alles aktualisiert.
Dann nach der Anleitung Asterisk-Adapter, manuell Asterisk 16.30 mit SIP-über Fritzbox installiert und verknüppert.
Es funktioniert.
Habe wie oben einen Test gemacht - Anruf und T2S funktionieren - geil ...
Nun zum Blockly:
Bedingung ist:
Webhook von homey kommt und setzt Alarm auf true.

Soweit komme ich ....


Eigentlich sollte jetzt kommen:
setzte:- dialout
- language
- text
- telnr
- repeat
- usw
- zum Schluss "Start Call"
Wo komme ich an die einzelnen punkte an den objekten

Ich steh irgendwie auf dem schlauch bei Blockly ...

Wer kann helfen ??
-
@stuebi
Moin,
also habe mich mit meinen laienhaften Kenntnissen bis zum Punkt Blockly durchgekämpft.
Mit Debian 13 geht erstmal nix, auch neuere Versionen von Asterisk funktionieren nicht.
Also, das letzte Image von Debian 12 wieder raufgeholt und alles aktualisiert.
Dann nach der Anleitung Asterisk-Adapter, manuell Asterisk 16.30 mit SIP-über Fritzbox installiert und verknüppert.
Es funktioniert.
Habe wie oben einen Test gemacht - Anruf und T2S funktionieren - geil ...
Nun zum Blockly:
Bedingung ist:
Webhook von homey kommt und setzt Alarm auf true.

Soweit komme ich ....


Eigentlich sollte jetzt kommen:
setzte:- dialout
- language
- text
- telnr
- repeat
- usw
- zum Schluss "Start Call"
Wo komme ich an die einzelnen punkte an den objekten

Ich steh irgendwie auf dem schlauch bei Blockly ...

Wer kann helfen ??
Habe mal ein Java-Script von oben angepasst:

(Was ich im Java-Script nicht hinbekomme ist die Widerholung (5x), das ist wohl default in Asterisk)
Das ändert dann das Objekt so:

Anruf kommt auf dem internen Telefon an - T2S auch OK. - das kalppt also alles.
Aber mit dem Blockly klappt es noch nicht - hab keinen Plan.
-
Habe mal ein Java-Script von oben angepasst:

(Was ich im Java-Script nicht hinbekomme ist die Widerholung (5x), das ist wohl default in Asterisk)
Das ändert dann das Objekt so:

Anruf kommt auf dem internen Telefon an - T2S auch OK. - das kalppt also alles.
Aber mit dem Blockly klappt es noch nicht - hab keinen Plan.
OK läuft habs hinbekommen.