Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Tester
    4. [Aufruf] Asterisk VoIP Adapter

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    [Aufruf] Asterisk VoIP Adapter

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

      @tstueben:

      Coole Sache !!!

      ich wollte über die Feiertage einen ähnlichen Adapter implementieren. Jetzt hast Du mir die Arbeit abgenommen :mrgreen:

      In meinem Scenario brauche ich noch eine Möglichkeit ein DBPut oder DBGet zu machen um Variablen vom VIS aus in der Asterisk zu setzen, z.B. um eine Rufumleitung basierend der Abwesenheitserkennung o.ä. zu implementieren.

      Steht das evtl. auf deiner ToDo Liste?

      Frohes Neues 🙂

      1 Reply Last reply Reply Quote 0
      • E
        ErazorVIP last edited by

        Also ich habe es jetzt erstmal soweit hinbekommen das Asterisk auf den eingehenden Anruf antwortet.

        Leider bekomme ich aber keine Ansage…

        Im CLI kommt folgendes:

         == Using SIP RTP CoS mark 5
            -- Executing [1000@default:1] Goto("SIP/27062010-00000003", "ael-antwort,10,1") in new stack
            -- Goto (ael-antwort,10,1)
            -- Executing [10@ael-antwort:1] Answer("SIP/27062010-00000003", "") in new stack
               > 0xb4509628 -- Probation passed - setting RTP source address to 192.168.2.1:7082
            -- Executing [10@ael-antwort:2] Wait("SIP/27062010-00000003", "1") in new stack
            -- Executing [10@ael-antwort:3] Set("SIP/27062010-00000003", "repeat=3") in new stack
            -- Executing [10@ael-antwort:4] Read("SIP/27062010-00000003", "dtmf,/tmp/asterisk_dtmf&beep,0,s,3") in new stack
        [Jan  2 12:58:52] WARNING[8177][C-00000003]: file.c:774 ast_openstream_full: File /tmp/asterisk_dtmf does not exist in any format
        [Jan  2 12:58:52] WARNING[8177][C-00000003]: file.c:1100 ast_streamfile: Unable to open /tmp/asterisk_dtmf (format (ulaw)): No such file or directory
        [Jan  2 12:58:52] WARNING[8177][C-00000003]: file.c:774 ast_openstream_full: File beep does not exist in any format
        [Jan  2 12:58:52] WARNING[8177][C-00000003]: file.c:1100 ast_streamfile: Unable to open beep (format (ulaw)): No such file or directory
            -- User disconnected
            -- Executing [10@ael-antwort:5] GotoIf("SIP/27062010-00000003", "0?6:7") in new stack
            -- Goto (ael-antwort,10,7)
            -- Executing [10@ael-antwort:7] NoOp("SIP/27062010-00000003", "Finish if_ael-antwort_4") in new stack
            -- Executing [10@ael-antwort:8] Hangup("SIP/27062010-00000003", "") in new stack
          == Spawn extension (ael-antwort, 10, 8) exited non-zero on 'SIP/27062010-00000003'
        
        

        Die Audiofiles liegen alle im /tmp/ das sollte eigentlich passen.

        die Rechte sind -rwxrwxrwx 1 root root 17961 Jan 2 12:46 asterisk_dtmf.mp3

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

          @ErazorVIP:

          Also ich habe es jetzt erstmal soweit hinbekommen das Asterisk auf den eingehenden Anruf antwortet.

          Leider bekomme ich aber keine Ansage…

          Im CLI kommt folgendes:

           == Using SIP RTP CoS mark 5
              -- Executing [1000@default:1] Goto("SIP/27062010-00000003", "ael-antwort,10,1") in new stack
              -- Goto (ael-antwort,10,1)
              -- Executing [10@ael-antwort:1] Answer("SIP/27062010-00000003", "") in new stack
                 > 0xb4509628 -- Probation passed - setting RTP source address to 192.168.2.1:7082
              -- Executing [10@ael-antwort:2] Wait("SIP/27062010-00000003", "1") in new stack
              -- Executing [10@ael-antwort:3] Set("SIP/27062010-00000003", "repeat=3") in new stack
              -- Executing [10@ael-antwort:4] Read("SIP/27062010-00000003", "dtmf,/tmp/asterisk_dtmf&beep,0,s,3") in new stack
          [Jan  2 12:58:52] WARNING[8177][C-00000003]: file.c:774 ast_openstream_full: File /tmp/asterisk_dtmf does not exist in any format
          [Jan  2 12:58:52] WARNING[8177][C-00000003]: file.c:1100 ast_streamfile: Unable to open /tmp/asterisk_dtmf (format (ulaw)): No such file or directory
          [Jan  2 12:58:52] WARNING[8177][C-00000003]: file.c:774 ast_openstream_full: File beep does not exist in any format
          [Jan  2 12:58:52] WARNING[8177][C-00000003]: file.c:1100 ast_streamfile: Unable to open beep (format (ulaw)): No such file or directory
              -- User disconnected
              -- Executing [10@ael-antwort:5] GotoIf("SIP/27062010-00000003", "0?6:7") in new stack
              -- Goto (ael-antwort,10,7)
              -- Executing [10@ael-antwort:7] NoOp("SIP/27062010-00000003", "Finish if_ael-antwort_4") in new stack
              -- Executing [10@ael-antwort:8] Hangup("SIP/27062010-00000003", "") in new stack
            == Spawn extension (ael-antwort, 10, 8) exited non-zero on 'SIP/27062010-00000003'
          
          

          Die Audiofiles liegen alle im /tmp/ das sollte eigentlich passen.

          die Rechte sind -rwxrwxrwx 1 root root 17961 Jan 2 12:46 asterisk_dtmf.mp3 `

          Hallo,

          die Datei muss die Endung gsm und im gsm format dort liegen. D.h. /tmp/asterisk_dtmf.gsm . Du kannst versuchen die Datei über https://convertio.co/de/mp3-gsm/ einmal von mp3 nach gsm zu konvertieren oder Du versuchst es über den Befehl:

          sendTo('asterisk.0', 'dial', { telnr: '0172xxxxxxx', text: 'Das ist ein Test!' });

          VG

          Thorsten

          1 Reply Last reply Reply Quote 0
          • E
            ErazorVIP last edited by

            Super, das mit dem convertieren hat geklappt.

            Wenn ich jetzt aus einem Script heraus das probiere geht leider noch kein Anruf raus:

            asterisk.0	2019-01-02 13:53:34.592	debug	sendTo "dial" to system.adapter.javascript.0 from system.adapter.asterisk.0
            asterisk.0	2019-01-02 13:53:34.592	error	Error while dialing (2). Error: {}
            asterisk.0	2019-01-02 13:53:34.312	debug	Start converting text message (Das ist ein Test!) to GSM audio ‚file /tmp/audio_91225331
            asterisk.0	2019-01-02 13:53:34.311	debug	Parameter: {"telnr":"******","text":"Das ist ein Test!","extension":"27062010","audiofile":"/tmp/audio_91225331"}
            asterisk.0	2019-01-02 13:53:34.310	debug	Dial Command
            asterisk.0	2019-01-02 13:53:34.310	debug	Message: {"telnr":"******","text":"Das ist ein Test!"}
            asterisk.0	2019-01-02 13:53:34.310	debug	Connected to Asterisk
            
            
            1 Reply Last reply Reply Quote 0
            • Stuebi
              Stuebi last edited by

              das sieht doch schon einmal gut aus. Im /tmp/ Verzeichnis ist auch die Datei audio_91225331.gsm (mit Endung .gsm)? Und Asterisk u. ioBroker laufen in der gleichen Umgebung?

              Kannst Du bitte einmal auf der Shell den Befehlt asterisk -rvvvvvv aufrufen und das Protokoll zur Verfügung stellen.

              VG

              Thorsten

              1 Reply Last reply Reply Quote 0
              • E
                ErazorVIP last edited by

                Hallo,

                beim Aufruf mit asterisk -rvvvvvv erhalte ich das:

                Asterisk 13.1.0~dfsg-1.1ubuntu4.1, 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.1.0~dfsg-1.1ubuntu4.1 currently running on ioBroker-Tinker (pid = 13398)
                ioBroker-Tinker*CLI></markster@digium.com> 
                

                Im Verzeichnis /tmp/ befindet sich eine audio_91225331.gsm aber keine .mp3.

                1 Reply Last reply Reply Quote 0
                • B
                  bassbumper last edited by

                  Mal eine andere Frage…

                  Wenn ich einen Anruf mache mit

                  sendTo('asterisk.0', "dial", { telnr: "8004", callerid: "4711", text:  "Hallo},  (res) => {
                        console.log('Result: ' + JSON.stringify(res));
                  }); 
                  

                  versucht der Adapter immer eine Verbindung über den Peer/Fritzbox zu erstellen den man im Adapter angegeben hat (hier 9001).

                   == Using SIP RTP CoS mark 5
                      -- Called 9901/8004
                      -- SIP/9901-0000001b is ringing
                  
                  

                  @ tstueben

                  Hattest Du nicht auch gesagt, das es ohne die Fritzbox geht? Ich möchte den Anruf direkt an ein anderes SIP-Telefon machen (ohne Fritzbox dazwischen)

                  1 Reply Last reply Reply Quote 0
                  • B
                    bassbumper last edited by

                    ok, habe die Antwort selbst gefunden. Habe gerade mal in Deinen Adapter geschaut 😉

                    Der Anruf wird wie folgt initiiert:

                             'action': 'originate',
                             'channel': 'SIP/' + extension + '/' + telnr,
                    
                    

                    Ein Anruf ohne Peer(extension) ist also aktuell nicht möglich :roll:

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

                      @bassbumper:

                      ok, habe die Antwort selbst gefunden. Habe gerade mal in Deinen Adapter geschaut 😉

                      Der Anruf wird wie folgt initiiert:

                               'action': 'originate',
                               'channel': 'SIP/' + extension + '/' + telnr,
                      
                      

                      Ein Anruf ohne Peer(extension) ist also aktuell nicht möglich :roll: `

                      okay, hilft es wenn ich wenn ich folgendes in Adapter ändere:

                      wenn extension leer, dann :
                         'action': 'originate',
                         'channel': 'SIP/' + telnr,
                      sonst:
                        'action': 'originate',
                        'channel': 'SIP/' + extension + '/' + telnr,
                      
                      

                      VG

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

                        Hallo,

                        mit der nächsten Version (1.0.0) kann man als Alsternative zu ffmpeg nun sox zum konvertieren von Text zu Audiodateien (gsm Format) auswählen. Auf dem Tinkboard Ubuntu 16.04 LTS wollte es einfach nicht mit ffmpeg laufen.

                        Weiterhin kann man nun die Ausgabesprache im Menü vorgeben.

                        4352_unbenannt.png

                        VG

                        Stübi

                        1 Reply Last reply Reply Quote 0
                        • B
                          bassbumper last edited by

                          > mit der nächsten Version (1.0.0) kann man als Alsternative zu ffmpeg nun sox zum konvertieren von Text zu Audiodateien (gsm Format) auswählen. Auf dem Tinkboard Ubuntu 16.04 LTS wollte es einfach nicht mit ffmpeg laufen.

                          Cool das macht die Sache einfacher, da es ja meist schon mit Asterisk mitkommt 😄

                          Ich musste mir auf dem PI gestern n Ast biegen um ffmpeg installiert zu bekommen :roll:

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

                            Moin,

                            In der Version 1.0.2 ist seit heute raus. Es wird jetzt nicht nur SIP sondern auch PJSIP angeboten. Weiterhin habe ich in einem Beispiel beschrieben wie man Asterisk ohne Fritzbox mit der Telekom funktioniert.

                            VG

                            Stübi

                            Gesendet von iPhone mit Tapatalk

                            1 Reply Last reply Reply Quote 0
                            • B
                              bassbumper last edited by

                              @tstueben:

                              okay, hilft es wenn ich wenn ich folgendes in Adapter ändere:

                              wenn extension leer, dann :
                                 'action': 'originate',
                                 'channel': 'SIP/' + telnr,
                              sonst:
                                'action': 'originate',
                                'channel': 'SIP/' + extension + '/' + telnr,
                              
                              

                              VG `

                              Ja, ich glaube so in der Art hatte ich es im PullRequest 🙂

                              VG

                              Bassbumper

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

                                @bassbumper:

                                Ja, ich glaube so in der Art hatte ich es im PullRequest 🙂

                                VG

                                Bassbumper `

                                Ich hatte deine Änderung übernommen. Das sollte eigentlich gehen. Hast du es Mal getestet?

                                Gesendet von iPhone mit Tapatalk

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

                                  Ab Morgen gibt es die Version 1.0.3 unter latest auf GitHub heute schon. Damit man ioBroker und Asterisk auf unterschiedlichen Servern einfach laufen lassen kann, habe ich jetzt eine scp/ssh Option eingebaut. Im ioBroker wird die Sprachdatei erstellt und dann per scp auf den Asterisk Server kopiert und anschließend auf dem ioBroker Server gelöscht.

                                  Auf Rückmeldungen freue ich mich!

                                  4352_iobroker_fritzbox_sip.png

                                  4352_iobroker_ssh.png

                                  Gruß

                                  Stübi

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

                                    @Secrenz:

                                    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 `

                                    Hast Du Probleme mit SSH oder Asterisk?

                                    SSH

                                    Einstellungen in ioBroker über den Reiter SSH

                                    Du musst auf dem Asterisk Server einen User inklusive Passwort anlegen oder einen vorhanden User nutzen. Wichtig, der SSH User muss die Unix Schreibrechte haben um in ein Verzeichnis die "Sprachdateien" zu kopieren. Asterisk muss auch die entsprechenden Rechte haben um diese Datei zu lesen. Du kannst zum Beispiel ein Verzeichnis /var/asterisk/ioboroker anlegen und diesem Verzeichnis die Gruppenrechte asterisk vergeben (vorausgesetzt asterisk läuft mit dem mit dem User asterisk, der in der Gruppe asterisk ist). Dem SSH User erteilst zusätzlich die Gruppenrechte des Asterisk Users.

                                    Asterisk

                                    Einstellungen in ioBroker über den ersten Reiter (Haupteinstellungen).

                                    Hier ist der User und das Passwort aus der /etc/asterisk/manager.conf einzutragen. Der User ist komplett unabhängig von SSH.

                                    Trage in dem Beispiel hier unter "Path for temporary audio files. Must be accessible and authorized for Asterisk and ioBroker" dann var/asterisk/ioboroker ein.

                                    Ich hoffe das hilft weiter?

                                    VG

                                    Stübi

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

                                      WICHTIG: Morgen gibt es eine neue Version vom ioBroker Asterisk Adapter in der Version 1.0.4
                                      Wenn Du diese Version installierst musst Du umbedingt die extension.ael anpassen damit der Adapter weiterhin funktioniert! Ersetze 10 => { ... } durch _. => { ... } .

                                      bis zu Version 1.0.3

                                      context ael-ansage {
                                      	10 => {
                                              Answer();
                                              Wait(1);
                                      		Read(dtmf,${file}&beep,0,s,${repeat},1);
                                      		if ("${dtmf}"  != "") {
                                      			SayDigits(${dtmf});
                                      		}
                                      		Hangup();
                                              }
                                      }
                                      

                                      ab Version 1.0.4

                                      context ael-ansage {
                                      	_. => {
                                              Answer();
                                              Wait(1);
                                      		Read(dtmf,${file}&beep,0,s,${repeat},1);
                                      		if ("${dtmf}"  != "") {
                                      			SayDigits(${dtmf});
                                      		}
                                      		Hangup();
                                              }
                                      }
                                      
                                      1 Reply Last reply Reply Quote 0
                                      • M
                                        martin last edited by

                                        Nachdem Asterisk jetzt eine zeitlang problemlos lief habe ich seit ein paar Tagen folgende Meldung im Log:
                                        asterisk.0 2019-05-03 14:50:53.594 error Cound not connect to Asterisk Manager! Try to connect in 30 seconds again!
                                        asterisk.0 2019-05-03 14:50:18.196 error Cound not connect to Asterisk Manager! Try to connect in 30 seconds again!
                                        asterisk.0 2019-05-03 14:49:42.777 error Cound not connect to Asterisk Manager! Try to connect in 30 seconds again!
                                        asterisk.0 2019-05-03 14:49:07.379 error Cound not connect to Asterisk Manager! Try to connect in 30 seconds again!

                                        Was stimmt da nicht? Er ruft auch nicht mehr an.

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

                                          @martin, läuft der Asterisk Prozess? Ich denke Asterisk läuft nicht oder ist von ioBroker nicht erreichbar.

                                          1 Reply Last reply Reply Quote 0
                                          • M
                                            martin last edited by

                                            Unter Instanzen ist Asterisk grün.

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            633
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

                                            adapter asterisk sip voip
                                            10
                                            71
                                            8317
                                            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