Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. IoBroker und VOIP / SIP Calls mit Asterisk + Fritzbox

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    IoBroker und VOIP / SIP Calls mit Asterisk + Fritzbox

    This topic has been deleted. Only users with topic management privileges can see it.
    • Stuebi
      Stuebi last edited by Stuebi

      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ändiger

      Nun 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:
      4352_fritzbox1.png
      4352_fritzbox2.png

      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 asterisk
      

      Asterisk 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!

      iobroker_main.png

      Jetzt auf den Tab SIP Settings wechseln. Hier werden nun die Einstellungen vorgenommen, dass Asterisk (bzw. ioBroker über Asterisk) mit der Fritzbox kommunizieren kann.

      iobroker_fritzbox_pjsip.png

      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.conf
      

      So 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)

      iobroker-dialout.png

      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.

      1 Reply Last reply Reply Quote 5
      • L
        LJSven last edited by

        Mega nice! Würde mich über einen Adapter freuen!

        1 Reply Last reply Reply Quote 0
        • Stuebi
          Stuebi last edited by

          @LJSven:

          Mega nice! Würde mich über einen Adapter freuen! `

          Die erste Beta Version ist fertig und kann gerne getestet werden. Muss über die GitHub Katze unter Adapter installiert werden. Dafür folgenden Link eintragen https://github.com/schmupu/ioBroker.asterisk.

          Textnachricht kann man wie folgt als Audio per VoIP an irgendeine Telefonnummer verschicken:

          var number  = "040 666-7766";
          var msg     = "Hello, this textmessage will be converted to audio"; 
          
          sendTo('asterisk.0', "dial", {
              telnr: number, 
              text:  msg}, 
              (res) => {
                  console.log('Sent to ' + res + ' users');
          });       
          
          
          1 Reply Last reply Reply Quote 0
          • Thisoft
            Thisoft last edited by

            HAllo,

            das klingt ja phantastisch! Genau damit wollte ich mich schon lange mal beschäftigen. Jetzt muss ich nur noch etwas Zeit finden um das Ganze zu installieren.

            Ich sag schon mal Danke

            1 Reply Last reply Reply Quote 0
            • L
              LJSven last edited by

              Das heißt ich muss nur den Adapter installieren, alles andere passiert von allein? Ich meine die anderen Verknüpfungen etc.

              Gesendet von iPhone mit Tapatalk

              1 Reply Last reply Reply Quote 0
              • Stuebi
                Stuebi last edited by

                @LJSven:

                Das heißt ich muss nur den Adapter installieren, alles andere passiert von allein? Ich meine die anderen Verknüpfungen etc.

                Gesendet von iPhone mit Tapatalk `

                Leider nein. Du musst einmal Asterisk und ffmpeg mit apt-get install asterisk ffmpeg installieren und anschließend 3 Konfigurationsdateien kopieren und 2 davon anpassen. Sollte aber hoffentlich nicht so schwer sein. Wenn du das geschafft hast, dann kannst Du mit dem Adapter ganz einfach Texte als Sprachnachrichten verschicken.

                Eine genaue Anleitung findest Du hier: https://github.com/schmupu/ioBroker.asterisk

                var number  = "040 666-7766";
                var msg     = "Hello, this text message will be converted to audio"; 
                
                // call telephone number 040 666-7766 and play text message as audio
                sendTo('asterisk.0', "dial", { telnr: number, text:  msg},  (res) => {
                      console.log('Result: ' + JSON.stringify(res));
                });  
                
                
                1 Reply Last reply Reply Quote 0
                • D
                  DeepCore last edited by

                  Wow, mega!

                  So etwas wollte ich auch schon länger mal versuchen. Danke fürs zeigen!

                  Jetzt bin ich etwas "traurig", dass ich aktuell Job-mässig viel zu viel um die Ohren habe, um mit ioBroker und Asterisk spielen zu können … 😢

                  1 Reply Last reply Reply Quote 0
                  • Stuebi
                    Stuebi last edited by

                    @DeepCore:

                    Wow, mega!

                    So etwas wollte ich auch schon länger mal versuchen. Danke fürs zeigen!

                    Jetzt bin ich etwas "traurig", dass ich aktuell Job-mässig viel zu viel um die Ohren habe, um mit ioBroker und Asterisk spielen zu können … 😢 `

                    Danke!!! läuft ja nicht weg 😉

                    1 Reply Last reply Reply Quote 0
                    • K
                      Kai102 last edited by

                      Hallo,

                      das ist genau die Funktion, die ich suche, hauptsächlich als Alarmanlage. Kurze SMS oder Push Nachrichten überliest man ja dann doch mal, so dass ein Anruf schon besser wäre.

                      Da ich aber noch absoluter Newbie bin, habe ich an einer Stelle dazu mal eine Frage.

                      Und zwar der Schritt :

                      "Now you have to edit the follwoing asterisk configuration files. Delete the old staff in this 3 files! Do not change the user authority of the files.

                      /etc/asterisk/manager.conf"….

                      Wie genau macht man das ?

                      Ich habe Iobroker auf dem Raspberry und die Befehle ( sudo apt-get install ffmpeg

                      sudo apt-get install asterisk ) auch schon ausgeführt, aber wo / wie editiere und kopiere ich diese Datein ?

                      1 Reply Last reply Reply Quote 0
                      • Stuebi
                        Stuebi last edited by

                        @Kai102:

                        Hallo,

                        das ist genau die Funktion, die ich suche, hauptsächlich als Alarmanlage. Kurze SMS oder Push Nachrichten überliest man ja dann doch mal, so dass ein Anruf schon besser wäre.

                        Da ich aber noch absoluter Newbie bin, habe ich an einer Stelle dazu mal eine Frage.

                        Und zwar der Schritt :

                        "Now you have to edit the follwoing asterisk configuration files. Delete the old staff in this 3 files! Do not change the user authority of the files.

                        /etc/asterisk/manager.conf"….

                        Wie genau macht man das ?

                        Ich habe Iobroker auf dem Raspberry und die Befehle ( sudo apt-get install ffmpeg

                        sudo apt-get install asterisk ) auch schon ausgeführt, aber wo / wie editiere und kopiere ich diese Datein ? `

                        okay, wenn Du Dich mit Linux auskennst, kannst Du z.B. den Editor vi (apt-get install vim) installieren und dann man mit vi /etc/asterisk/manager.conf editieren. Dann kopierst Du dort den Inhalt der Konfiguration aus der README dort rein.

                        Ich werde aber gleich noch einmal die Configfiles hier mit anhängen. Dann musst Du diese nur anpassen und in das Verzeichnis /etc/asterisk ohne Endung .txt kopieren.

                        4352_sip.conf.txt
                        4352_manager.conf.txt
                        4352_extensions.ael.txt

                        1 Reply Last reply Reply Quote 0
                        • K
                          Kai102 last edited by

                          wow, das ging schnell… Das ich mich in Linux auskenne ist etwas .... zu viel gesagt...

                          Aber ich werde es mal testen...

                          den Editor installiere ich direkt beim Raspberry und nicht in der Iobroker Oberfläche, oder ? ( ich weiß, peinliche Frage)....

                          1 Reply Last reply Reply Quote 0
                          • Stuebi
                            Stuebi last edited by

                            @Kai102:

                            wow, das ging schnell… Das ich mich in Linux auskenne ist etwas .... zu viel gesagt...

                            Aber ich werde es mal testen...

                            den Editor installiere ich direkt beim Raspberry und nicht in der Iobroker Oberfläche, oder ? ( ich weiß, peinliche Frage).... `

                            es gibt keine peinlichen Fragen. Den vi musst Du über Linux installieren. Mein Kollege sagt gerade, installiere den Editor nano (apt-get instlall nano) unter Linux. Der ist viel einfacher zu bedienen.

                            https://jankarres.de/2015/03/debian-editor-nano-kompakt-erklaert/

                            1 Reply Last reply Reply Quote 0
                            • K
                              Kai102 last edited by

                              So, das werde ich mal testen, allerdings dauert es etwas, der kleine pi hat sich gerade komplett verabschiedet. Den muss ich erst mal neu aufsetzen…

                              1 Reply Last reply Reply Quote 0
                              • K
                                Kai102 last edited by

                                hm, dachte, das nano einfacher wäre ( oder ich das zumindest verstehen würde… ) Leider wohl nicht.

                                Habe als root den Befehl nano / /etc/asterisk/manager.conf

                                eingegeben.. Da kam das :

                                ; Asterisk Call Management support

                                ;

                                ; By default asterisk will listen on localhost only.

                                [general]

                                enabled = yes

                                port = 5038

                                bindaddr = 127.0.0.1

                                ; No access is allowed by default.

                                ; To set a password, create a file in /etc/asterisk/manager.d

                                ; use creative permission games to allow other serivces to create their own

                                ; files

                                #include "manager.d/*.conf"

                                nano /etc/

                                hier weiß ich nun nicht weiter… 😞

                                1 Reply Last reply Reply Quote 0
                                • Stuebi
                                  Stuebi last edited by

                                  Das ist die Standard Konfiguration die bei der Installation angelegt wird. Den Inhalt der Datei durch den Inhalt der jeweiligen Konfiguration in der README ersetzen.

                                  Hilft das weiter?

                                  Gesendet von iPhone mit Tapatalk

                                  1 Reply Last reply Reply Quote 0
                                  • K
                                    Kai102 last edited by

                                    Sorry, nicht wirklich… Ich stehe da echt auf dem Schlauch...

                                    1 Reply Last reply Reply Quote 0
                                    • Stuebi
                                      Stuebi last edited by

                                      okay, wenn Du asterisk über apt-get install asterisk installierst, werden im Verzeichnis /etc/asterisk/ Konfigurationsdateien angelegt. Darunter sind auch sip.conf, manager.conf und extensions.ael (die kann vielleicht fehlen). Nun musst die "Standardkonfiguration" aus den 3 Dateien mit dem Inhalt aus der https://github.com/schmupu/ioBroker.asterisk/blob/master/README.md ersetzen.

                                      Ein Beispiel, in der /etc/asterisk/manager.conf löscht Du den kompletten Inhalt so dass diese leer ist und trägst dann folgendes ein:

                                      [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 = managerpassword				; Change Manager password for ioBroker asterisk adapter
                                      permit = 192.168.1.0/255.255.255.0  			; Change to your subnet and netmask
                                      read = all						; Do not change
                                      write = all						; Do not change
                                      
                                      

                                      Alternativ kannst Du auch die /etc/asterisk/manager.conf löschen und mit dem Inhalt von oben neu anlegen. Da musst Du aber aufpassen, dass die Berechtigungen und der/die Benutzer/Gruppe der Datei gleich bleiben. Wenn Du den Inhalt von oben in die manager.conf eingetragen hast, musst Du noch die individuellen Anpassungen vornehmen, d.h. bei secret = und permit =

                                      Das machst Du dann für die sip.conf und extensions.ael genauso. Anschließens startest Du Asterisk nochmals z.B. /etc/init.de/asterisk restart

                                      Jetzt klarer?

                                      VG

                                      1 Reply Last reply Reply Quote 0
                                      • K
                                        Kai102 last edited by

                                        Ich habe den Nano aufgerufen im entsprechenden Verzeichnis,

                                        habe dann einfach das "leere" Blatt entsprechend gefüllt, mit X beendet, dann kommt die Frage, ob ich speichern will und unter welchen Datei Namen. da habe ich dann einfach z.b: manager.conf angegeben, da kam der Hinweis : gibt es schon und ich konnte es überschreiben. Soweit glaube ich ist alles drin.

                                        Asterisk musste ich in iObroker noch mal installieren, dann habe ich meine Werte eingetragen, Asterisk ist grün, aber :

                                        Im Log steht : cannot connect to asterisk…

                                        ?

                                        1 Reply Last reply Reply Quote 0
                                        • Stuebi
                                          Stuebi last edited by

                                          Wenn musst Du mir die ganze Fehlermeldung schicken, sonnst kann ich Dir nicht sagen wo der Fehler ist.

                                          Hast Du die 3 Dateien /etc/asterisk/manager.conf, /etc/asterisk/sip.conf und /etc/asterisk/extensions.ael angepaßt, d.h alles gelöscht mit dem Teil aus der README ersetzt? Hast Du auch die Stellen in der Konfiguration angepaßt, die ich im Kommentar gekennzeichnet habe? Die müssen mit Deiner Friztbox Konfiguration übereinstimmen. Und zu aller Letzt musst Du in der Asterisk Instanz Administration auch noch die passenden Werte hinterlegen.

                                          Asterisk muss Du nach der Konfiguration neu starten /etc/init.d/astersik restart oder asterisk -vvvv aufrufen und reload eingeben.

                                          führe mal folgende nacheinander Befehle aus

                                          cat /etc/asterisk/manager.conf

                                          cat /etc/asterisk/sip.conf

                                          cat /etc/asterisk/extensions.ael

                                          Und schicke mir den jeweiligen Output! (Passwort entfernen!!!!) und ein Screenshot von der Asterisk Instanz Administration.

                                          VG

                                          1 Reply Last reply Reply Quote 0
                                          • K
                                            Kai102 last edited by

                                            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 = XXXXXX ; Change Manager password for ioBroker asterisk adapter

                                            permit = 192.168.0.1/255.255.255.0 255 ; Change to your subnet and netmask

                                            read = all ; Do not change

                                            write = all ; Do not change

                                            –-----------

                                            hier sehe ich schon ein Fehler bei permit ( 192.168.0.1/255.255.255.0 255

                                            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 => XXXXXXX:XXXXXXX@192.168.0.1/1000 ; Username, Password and IP address of Fritzbox WLAN/LAN telephone

                                            [XXXXXXXXXX] ; Change to username of Fritzbox WLAN/LAN telephone

                                            type = friend ; Do not change

                                            username = XXXXXXX ; Change to username of Fritzbox WLAN/LAN telephone

                                            host = 192.168.ß.1 ; Change hostname / IP address of Fritzbox

                                            secret = XXXXXXXX ; Change password of Fritzbox WLAN/LAN telephone

                                            fromdomain = 192.168.0.1 ; Change hostname / IP address of Fritzbox

                                            fromuser =XXXXXXX ; Change username of Fritzbox WLAN/LAN telephone

                                            –--------

                                            oh man, das ß ist der zweiter Fehler....

                                            extensions.ael :

                                            context default {

                                            1000 => {

                                            Goto(ael-antwort,10,1);

                                            }

                                            }

                                            context ael-ansage {

                                            10 => {

                                            Answer();

                                            Wait(1);

                                            Read(dtmf,${file}&beep,0,s,${repeat},1);

                                            if ("${dtmf}" != "") {

                                            SayDigits(${dtmf});

                                            }

                                            Hangup();

                                            }

                                            }

                                            context ael-antwort {

                                            10 => {

                                            Answer();

                                            Wait(1);

                                            Set(repeat=5);

                                            Read(dtmf,/tmp/asterisk_dtmf&beep,0,s,${repeat},1);

                                            if ("${dtmf}" != "") {

                                            SayDigits(${dtmf});

                                            }

                                            Hangup();

                                            }

                                            }

                                            –---

                                            und hier der Screenshot
                                            17246_screenasterisk.jpg

                                            So, habe doch schon alles geändert, brachte aber nichts, im Log steht trotzdem cannot start asterisk….

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            872
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

                                            44
                                            202
                                            32809
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo