NEWS
[Aufruf] Asterisk VoIP Adapter
-
Hallo,
ich habe einen neuen Adapter entwickelt mit dem man über ioBroker mit dem Anrufe tätigen kann um Audiodateien dem Angerufenen vorzuspielen. Alternativ kann auch ein Text (maximal 200 Zeichen) dem Angerufenen vorgelesen werden.
Die VoIP Anbindung geschieht über https://www.asterisk.org/. Deswegen ist eine Asterisk Installation auf dem ioBroker Rechner Voraussetzung. Eine genaue Anleitung wie das geht, findet ihr https://github.com/schmupu/ioBroker.asterisk/blob/master/README.md.
Auch müsst Ihr entweder eine Fritzbox besitzen oder einen VoIP / SIP Account haben.
Sobald Asterisk und ffmpeg installiert ist, müsst Ihr noch 3 Konfigurationsdateien kopieren und davon die /etc/asterisk/sip.conf und /etc/asterisk.manager.conf um Benutzername, IP-Adresse, Passwort, etc. anpassen. Die /etc/asterisk/extensions.ael bitte unberührt lassen.
Wenn alles fertig installiert ist, kann wie folgt eine Textnachricht verschickt werden:
Asterisk VoIP Adapter: https://github.com/schmupu/ioBroker.asterisk
var number = "040 666-7766"; var msg = "Hello, this textmessage will be converted to audio"; // Call telephone number 040 666-7766 and play text message as audio message sendTo('asterisk.0', "dial", { telnr: number, text: msg}, (res) => { console.log('Result: ' + res); }); // Call number an play mp3 audio file to callee sendTo('asterisk.0', "dial", {telnr: , audiofile: '/tmp/say.mp3' }, (result) => { console.log('Result: ' + res); }); // Call number an play gsm audio file to callee sendTo('asterisk.0', "dial", {telnr: , audiofile: '/tmp/say.gsm' }, (result) => { console.log('Result: ' + res); });
Ich bin gespannt auf Euer Feedback!
VG
Stübi
-
Moin,
ab heute gibt es denn Asterisk VoIP Adapter in der Version 0.1.3. Falls ihr den Adapter schon an laufen habt, müsst ihr einmal die /etc/asterisk/super.conf ändern. Hier muss nun [iobroker] statt der [Fritzbox Username] stehen.
Weiterhin könnt ihr auch Asterisk auf einem anderem Rechner installieren. Wichtig, dass beide Rechner auf ein gemeinsames Laufwerk zugreifen können und das der Pfad auf beiden Rechnern dann gleich heisst und Asterisk und ioBroker lese und schreibe Berechtigungen auf das freigegebene Verzeichnis haben.
Bsp:
Auf Raspberry 1 liegen die Audio Dateien im Pfad /var/spool/asterisk/audio
Dann mounted man auf der. Rasberry 2 das Verz. mit
mount raspi1:/var/spool/asterisk/audio /var/spool/asterisk/audio
Auf beiden Rechnern ist der Pfad nun /var/spool/asterisk/audio
Einfacher ist alles auf der gleichen Hardware zu installieren!!!
Gesendet von iPhone mit Tapatalk
-
Coole Idee. Hast du einen konkreten Anwendungsfall? Lässt du dich selbst anrufen oder wie setzt du den Adapter ein?
Könnte mir das als Alarmierung vorstellen. Dann über IVR per DTMF einen Alarm bestätigen.
Bin auf weitere Ideen gespannt.
Gesendet von meinem SM-G950F mit Tapatalk
-
Coole Idee. Hast du einen konkreten Anwendungsfall? Lässt du dich selbst anrufen oder wie setzt du den Adapter ein?
Könnte mir das als Alarmierung vorstellen. Dann über IVR per DTMF einen Alarm bestätigen.
Bin auf weitere Ideen gespannt.
Gesendet von meinem SM-G950F mit Tapatalk `
ich nutze den Adapter für meine Alarmanlage. Über den https://github.com/schmupu/ioBroker.contactid Adapter erhalte ich immer den aktuellen Status der Alarmanlage. Bei einem Einbruch, Feuer, Wassereinbruch werde ich über den Asterisk VoIP zusätzlich zu einer SMS und Email angerufen. SMS und Email übersehe ich gerne, aber einen Anruf bekomme ich immer mit.
-
Noch ein wichtiger Hinweis. Wenn man den Adapter zusammen mit der Fritzbox nutzt, darf auf der Fritzbox unter Telefongerät der Benutzername nur aus Zahlen bestehen!
; /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 => 12345689:mypassword@192.168.1.1/1000 ; Username (only numbers permitted), Password and IP address of Fritzbox WLAN/LAN telephone [iobroker] ; Do not change type = friend ; Do not change username = 123456789 ; Change to username of Fritzbox WLAN/LAN telephone (only numbers permitted) host = 192.168.1.1 ; Change hostname / IP address of Fritzbox secret = mypassword ; Change password of Fritzbox WLAN/LAN telephone fromdomain = 192.168.1.1 ; Change hostname / IP address of Fritzbox fromuser = 123456789 ; Change username of Fritzbox WLAN/LAN telephone (only numbers permitted) callerid= 03047114711 ; Change your telephone number defined in the Fritzbox
-
Ab Morgen gibt es die Version 0.1.6 vom Asterisk VoIP Adapter. Was hat sich geändert:
-
Das Asterisk Passwort wird nun in ioBroker verschlüsselt gespeichert. Aus diesem Grund ist das Passwort erneut einzugeben.
-
Die Textlänge ist nicht mehr beschränkt auf 200 Zeichen. Theoretisch kann dieses nun unendlich lang sein
var number = "040 666-7766"; var msg = "Hello, this textmessage will be converted to audio"; // now unlimited size // Call telephone number 040 666-7766 and play text message as audio message sendTo('asterisk.0', "dial", { telnr: number, text: msg}, (res) => { console.log('Result: ' + res); });
-
-
Könnte man auch bestimmte Funktionen auslösen via DTMF?
Gruß
-
Könnte man auch bestimmte Funktionen auslösen via DTMF?
Gruß `
Gute Idee, ioBroker ruft an und man tippt ein DTMF Code ein, welcher eine bestimmte Funktion auslöst.
Ich werde mal schauen ob das umzusetzen ist
-
Ja,
meine Intension geht dahin das ich unterwegs den ioBroker anrufen kann und erstmal ein Passwort via DTMF eingeben muss und danach kann ich zum Beispiel mein Tor öffnen lassen oder irgendwas veranlassen…
-
Cooler Adapter 8-) Möchte es so gern probieren aber ich habe bereits eine Asterisk installation auf eine anderen server in gebrauch. Ist dass möglich :? ?
Viele Grüsse aus Dänemark
-
Cooler Adapter 8-) Möchte es so gern probieren aber ich habe bereits eine Asterisk installation auf eine anderen server in gebrauch. Ist dass möglich :? ?
Viele Grüsse aus Dänemark `
Ja, das ist möglich, habe ich selber auch schon genutzt. Du musst Ein Verzeichnis auf irgendeinem Server anlegen (z.b. NAS, Asterisk Server oder ioBroker Server). Nun musst Du das Verzeichnis vom Asterisk Server und ioBroker Server aus mounten. Wichtig, das Verzeichnis muss auf dem Asterisk und ioBroker Server muss umbedingt identisch heißen. Helfen tut dabei auch der ln -s Befehl. Anschließend muss Du in der Adapter Konfiguration den angelegten Verzeichnisnamen in ioBroker / Asterisk hinterlegen.
Ist das geschehen speichert der Asterisk Adapter die GSM (WAV) Files in dem Verzeichnis. Asterisk kann dann auf das File zugreifen.
Viel Spaß in Dänemark!
VG
-
Könnte man auch bestimmte Funktionen auslösen via DTMF?
Gruß `
Ab der der Version 0.1.7 wird das ab heute unterstützt. Die Version kannst Du entweder heute über GitHub herunterladen oder Morgen/Übermorgen als Update in ioBroker sehen.
Du musst in der Version ein paar Dinge an Deiner Konfiguration anpassen. Einmal in der sip.conf. Statt [iobroker] muss dort jetzt Dein Username aus der Fritzbox stehen (dürfen nur Zahlen enthalten und identisch zu dem Eintrag username = .. in der sip.conf) wie z.B. [123456789]. Dann ist die extension.ael von der README unter https://github.com/schmupu/ioBroker.asterisk zu kopieren. Zuletzt ist noch in der Adapter Konfiguration der Username aus der sip.conf zu pflegen. In dem Beispiel oben 123456789.
Hier ein Beispiel um den DTMF Code abzufragen:
// Show entered DTMF code on({ id: "asterisk.0.dialin.dtmf"/*DTMF Code*/ }, (obj) => { let dtmf = obj.state.val; console.log("DTMF: " + dtmf); }); // Show entered DTMF code on({ id: "asterisk.0.dialout.dtmf"/*DTMF Code*/ }, (obj) => { let dtmf = obj.state.val; console.log("DTMF: " + dtmf); });
-
<u>WICHTIG ab Version 0.1.7</u>
Ab der Version 0.1.7 sind leider ein paar Anpassungen notwendig damit der Adapter weiterhin läuft!!!!
<list type="decimal">4. Die sip.conf ist anzupassen. Statt [iobroker] muss hier der username der immer aus Zahlen besteht aus der sip.conf stehen. Beispiel [12345689]
-
In der Asterisk Adapter Konfiguration ist der Username aus der sip.conf zusätzlich zu hinterlegen. Beispiel: 123456789
-
Die /etc/asterisk/extension.ael ist von der Seite https://github.com/schmupu/ioBroker.asterisk in das Verzeichnis /etc/asterisk zu kopieren.
Damit werden folgende neue Features unterstützt
-
Anrufe können nun auch über States und nicht nur über sendTo initiiert werden
-
Text bei eingehenden Anrufen kann über States vorgegeben werden
-
Bei eingehende Anrufen kann der DTMF Code ausgewertet werden
-
Bei ausgehenden Anrufen kann der DTMF Code ausgewertet werden
Zukünftig werde ich den Adapter von Asterisk AMI auf Asterisk AGI umstellen. Dann sind weniger manuelle Einstellungen notwendig.
VG
Stübi
-
-
Guten Abend,
ich habe heute mich mal mit Asterisk beschäftigt.
Wenn ich die Interne Nummer vom Asterisk Server Anrufe bekomme ich auch die Meldung am Telefon dass es geklapt hat.
Im ioBroker ist auch im Log das er connected ist aber, wenn ich nun das Testscript laufen lassen. bekomme ich die Fehlermeldung:
"Paramter telnr and/or text/audiofile is missing"
Kann mir da jemand weiter helfen?
Vielen Dank im voraus.
Mit freundlichen Grüßen
Secrenz
-
Hallo Secrenz,
welche Asterisk Adapter Version nutzt Du und welche Sprache hast Du beim Adapter eingestellt? Hast Du den Befehl wie folgt eingegeben?
let telnr = '017247114711'; let textmsg = 'Ein Test mit dem ioBroker Asterisk Adapterer'; sendTo('asterisk.0', 'dial', { telnr: telnr, text: textmsg }, (res) => { console.log('Result ' + JSON.stringify(res)); });
oder folgendes
Gruß
Thorsten
-
@tstueben:<u>WICHTIG ab Version 0.1.7</u>
Ab der Version 0.1.7 sind leider ein paar Anpassungen notwendig damit der Adapter weiterhin läuft!!!!
<list type="decimal">4. Die sip.conf ist anzupassen. Statt [iobroker] muss hier der username der immer aus Zahlen besteht aus der sip.conf stehen. Beispiel [12345689]
-
In der Asterisk Adapter Konfiguration ist der Username aus der sip.conf zusätzlich zu hinterlegen. Beispiel: 123456789
-
Die /etc/asterisk/extension.ael ist von der Seite https://github.com/schmupu/ioBroker.asterisk in das Verzeichnis /etc/asterisk zu kopieren.
Damit werden folgende neue Features unterstützt
-
Anrufe können nun auch über States und nicht nur über sendTo initiiert werden
-
Text bei eingehenden Anrufen kann über States vorgegeben werden
-
Bei eingehende Anrufen kann der DTMF Code ausgewertet werden
-
Bei ausgehenden Anrufen kann der DTMF Code ausgewertet werden
Zukünftig werde ich den Adapter von Asterisk AMI auf Asterisk AGI umstellen. Dann sind weniger manuelle Einstellungen notwendig.
VG
Stübi `
Hallo Stübi,
danke für die Info!
Hab mich schon gewundert warum mein Adapter nicht mehr geht.
Bist du auch der Maintainer der https://www.npmjs.com/package Source?
Hier sollte im Changelog darauf verwiesen werden das ab 0.1.7 diese Änderungen nötig sind.
Hätte mir 2 Stunden logfile lesen erspart
Gruß und schönen Start ins Wochenende
Stoamandl
-
-
@tstueben:<u>WICHTIG ab Version 0.1.7</u>
Ab der Version 0.1.7 sind leider ein paar Anpassungen notwendig damit der Adapter weiterhin läuft!!!!
<list type="decimal">4. Die sip.conf ist anzupassen. Statt [iobroker] muss hier der username der immer aus Zahlen besteht aus der sip.conf stehen. Beispiel [12345689]
-
In der Asterisk Adapter Konfiguration ist der Username aus der sip.conf zusätzlich zu hinterlegen. Beispiel: 123456789
-
Die /etc/asterisk/extension.ael ist von der Seite https://github.com/schmupu/ioBroker.asterisk in das Verzeichnis /etc/asterisk zu kopieren.
Damit werden folgende neue Features unterstützt
-
Anrufe können nun auch über States und nicht nur über sendTo initiiert werden
-
Text bei eingehenden Anrufen kann über States vorgegeben werden
-
Bei eingehende Anrufen kann der DTMF Code ausgewertet werden
-
Bei ausgehenden Anrufen kann der DTMF Code ausgewertet werden
Zukünftig werde ich den Adapter von Asterisk AMI auf Asterisk AGI umstellen. Dann sind weniger manuelle Einstellungen notwendig.
VG
Stübi `
Hallo Stübi,
danke für die Info!
Hab mich schon gewundert warum mein Adapter nicht mehr geht.
Bist du auch der Maintainer der https://www.npmjs.com/package Source?
Hier sollte im Changelog darauf verwiesen werden das ab 0.1.7 diese Änderungen nötig sind.
Hätte mir 2 Stunden logfile lesen erspart
Gruß und schönen Start ins Wochenende
Stoamandl `
Sorry, du hast Recht. Ändere ich dann lieber und setzte die Version hoch
Gesendet von iPhone mit Tapatalk
-
-
@tstueben:Hallo Secrenz,
welche Asterisk Adapter Version nutzt Du und welche Sprache hast Du beim Adapter eingestellt? Hast Du den Befehl wie folgt eingegeben?
let telnr = '017247114711'; let textmsg = 'Ein Test mit dem ioBroker Asterisk Adapterer'; sendTo('asterisk.0', 'dial', { telnr: telnr, text: textmsg }, (res) => { console.log('Result ' + JSON.stringify(res)); });
oder folgendes
filename="Bildschirmfoto 2018-12-28 um 07.38.19.png" index="0">~~
Gruß
Thorsten `
Ich habe die jetzt die 0.1.8 hatte auch ein downgrade auf 0.1.6 gemacht. Einfach nur zu testen.
Im angegebenen Pfad werden auch gsm Dateien angelegt
-
Das ist schon mal gut, das GSM Dateien angelegt werden. Die sip.conf und extension.ael haben sich in Version 0.1.8 geändert. Die hast Du hoffentlich angepaßt.
Du kannst auf dem Asterisk Server einmal asterisk -rvvvvvv aufrufen und dann nochmals von ioBroker aus ein Telefonat starten. Was bekommst Du da angezeigt?
Dann kannst Du noch den Debug Modus bei Instanzen des Asterisk Adapters aktivieren. Die Meldungen kannst Du mir nochmals schicken.
-
Ja ich bin auch nach der aktuellen Anleitung vorgegangen.
wenn ich asterisk -rvvvvvv eingebe und ein Anruf mache bekomme ich die Meldung in Putty dass Nutzer oder service nicht kennt.
Ich kontrollieren noch mal meine config