NEWS
IoBroker und VOIP / SIP Calls mit Asterisk + Fritzbox
-
@Kai103 , jetzt läuft schon einmal asterisk. Du sieht unter
asterisk -rvvvv
ob sich ioBroker connected oder nicht. Wenn das nicht der Fall ist, stimmt etwas an Deiner Konfiguration nicht. Ich nehme an, dass Du die IP Adressen vertauscht hast unter "IP / Hostname des Asterisk-Servers". Dort muss die vom Asterisk Server stehen oder Du hast die erzeugten Konfigurationsdateien von ioBroker aus dem /tmp/ Verzeichnis nicht in /etc/asterisk kopiert oder es stimmen nicht die Berechtigungen der kopierten Dateien.
Falls Du die Konfigruationsdateien in /etc/asterisk anpasst, musst asterisk neu starten oder die Konfiguration neu lesen. -
@Stuebi said in IoBroker und VOIP / SIP Calls mit Asterisk + Fritzbox:
Ich nehme an, dass Du die IP Adressen vertauscht hast unter "IP / Hostname des Asterisk-Servers"
AUTSCH.... ich sage mal nix, aber ich hatte da gedacht , dass da auch die von der Fritz.box rein muss.... Geändert auf die IP vom PI und schon läuft, zumindest kommt die Verbindung zustande und ich kann einen Call ausgeben. Der Text wird aber "noch" nicht vorgelesen ?
-
@Kai103 , wenn das mit dem Anruf funktioniert und es bei Dir klingelt ist schon einmal super.
Steht irgendetwas im ioBroker Logfile? Ick könnte mir vorstellen, dass entweder ein falsches Verzeichnis unter"Path for temporary audio files. Must be accessible and authorized for Asterisk and ioBroker"
steht. Versuche es z.B. mit/tmp/
. Auf das Verzeichnis sollte ioBroker und asterisk zugreifen können. Dann kann ich mir noch vorstellen, dass kein DNS Service auf Deinem RPI installiert ist und google translate nicht gefunden wird. Um das auszuschließen, versuche auf der Kommandozeile einmal folgendes einzugeben:nslookup translate.googleapis.com # oder folgendes ping translate.googleapis.com
Was passiert?
-
Log vom Iobroker ist jetzt da (habe aber eben auch erst die ausgehende Nummer angegeben, die er zwar nicht übernimmt, aber das ist erst mal so was von Egal...)
*2019-10-13 17:55:00.354 - error: asterisk.0 Error while dialing (1). Error: {"response":"Error","actionid":"5b498833-0a07-5170-aef9-5203a0ebc80b","message":"Originate failed"}, Result: {"parameter":{"callerid":"045242XXXXXX","telnr":"0176XXXXXXX","text":"Testansage"extension":"24XXXXXX","audiofile":"/tmp/audio_1570981947749","delete":"delete"},"options":{"action":"originate","channel":"SIP/24XXXXX/0176XXXXXXX","context":"ael-ansage","exten":"01765XXXXXX","priority":1,"timeout":60000,"variable":{"repeat":5,"file":"/tmp/audio_1570981947749","del":"delete"},"callerid":"0452XXXXXXXX"},"guid":"5b498833-0a07-5170-aef9-5203a0ebc80b","result":{"response":"Error","actionid":"5b498833-0a07-5170-aef9-5203a0ebc80b","message":"Originate failed"}}
*
tmp Verzeichnis scheint zu gehen, hier mal der Inhalt :asterisk_dtmf.gsm audio_1570965683966.gsm audio_1570980870624.gsm audio_1570980895399.gsm audio_1570981857561.gsm audio_1570981862292.gsm audio_1570981903327.gsm audio_1570981947749.gsm extensions.ael manager.conf npm-1744-b847243b rtp.conf sip_fritzbox.conf systemd-private-f88aeb7dfaff441e8c80f60c295e2eac-redis-server.service-wPY7MK systemd-private-f88aeb7dfaff441e8c80f60c295e2eac-systemd-timesyncd.service-tWRw10
Der Pingbefehl geht, der erste wird nicht erkannt...
PS: Danke schon mal -
@Kai103 sagte in IoBroker und VOIP / SIP Calls mit Asterisk + Fritzbox:
Originate failed
jetzt musst Du suchen, im ioBroker Logfile und unter
asterisk -rvvvv
schauen. Das ist nicht ganz so einfach den Fehler einzugrenzen. Ich schätze irgendetwas stimmt mit Deiner Konfiguration nicht.Du kannst gerne einmal alle Konfigurationsfiles (/etc/asterisk/sip.conf , /etc/asterisk/extensions.ael, /etc/asterisk/manager.conf, ... ) und Screenshots von der ioBroker Asterisk Konfiguration schicken.
Bitte alle Passwörter entfernen bzw. nachdem verschicken ändern. Du kannst mir diese auch gerne an thorsten@stueben.de direkt schicken. -
@Stuebi said in IoBroker und VOIP / SIP Calls mit Asterisk + Fritzbox:
asterisk -rvvvv
hm... jetzt zwei mal einen Anruf gemacht, keine Fehler . im Asterisk -rvvvv erscheint
Using SIP RTP CoS mark 5 -- Called 24......../01765XXXXXXXX > 0x73f07880 -- Strict RTP learning after remote address set to: 192.168.0.1:7078 -- SIP/24.......-00000001 is making progress -- SIP/24........-00000001 answered -- Executing [0176XXXXXXXXX@ael-ansage:1] Answer("SIP/24......-00000001", "") in new stack -- Executing [0176XXXXXXX@ael-ansage:2] Wait("SIP/24.........-00000001", "1") in new stack -- Executing [0176XXXXXXX@ael-ansage:3] Read("SIP/24........-00000001", "dtmf,/tmp/audio_1570985582279&beep,0,s,5,1") in new stack -- <SIP/24..........-00000001> Playing '/tmp/audio_1570985582279.gsm' (language 'en') -- <SIP/24...........-00000001> Playing 'beep.gsm' (language 'en') -- User entered nothing, 4 chances left -- <SIP/24...........-00000001> Playing '/tmp/audio_1570985582279.gsm' (language 'en') -- <SIP/24.............-00000001> Playing 'beep.gsm' (language 'en') -- User entered nothing, 3 chances left -- <SIP/24.........-00000001> Playing '/tmp/audio_1570985582279.gsm' (language 'en') -- <SIP/24...........-00000001> Playing 'beep.gsm' (language 'en') -- User entered nothing, 2 chances left -- <SIP/24..........-00000001> Playing '/tmp/audio_1570985582279.gsm' (language 'en') -- <SIP/24...........-00000001> Playing 'beep.gsm' (language 'en') -- User entered nothing, 1 chance left -- <SIP/24...........-00000001> Playing '/tmp/audio_1570985582279.gsm' (language 'en') -- <SIP/24.........-00000001> Playing 'beep.gsm' (language 'en') -- User entered nothing. -- Executing [0176xxxxxxxx@ael-ansage:4] GotoIf("SIP/24.......-00000001", "0?5:6") in new stack -- Goto (ael-ansage,0176xxxxxxx,6) -- Executing [0176xxxxxxx@ael-ansage:6] NoOp("SIP/24...........-00000001", "Finish if_ael-ansage_1") in new stack -- Executing [0176xxxxxxxxx@ael-ansage:7] Hangup("SIP/24..........-00000001", "") in new stack == Spawn extension (ael-ansage, 0176xxxxxxxx, 7) exited non-zero on 'SIP/24........-00000001' -- Executing [h@ael-ansage:1] GotoIf("SIP/24.........-00000001", "1?2:4") in new stack -- Goto (ael-ansage,h,2) -- Executing [h@ael-ansage:2] NoOp("SIP/2...........-00000001", "/bin/rm /tmp/audio_1570985582279.*") in new stack -- Executing [h@ael-ansage:3] System("SIP/24..........-00000001", "/bin/rm /tmp/audio_1570985582279.*") in new stack -- Executing [h@ael-ansage:4] NoOp("SIP/24...........-00000001", "Finish if_ael-ansage_2") in new stack -- Executing [h@ael-ansage:5] SayDigits("SIP/24........-00000001", "") in new stack -- Executing [h@ael-ansage:6] NoOp("SIP/24.......-00000001", "Finish if_ael-ansage_1") in new stack -- Executing [h@ael-ansage:7] Hangup("SIP/24........-00000001", "") in new stack == Spawn extension (ael-ansage, h, 7) exited non-zero on 'SIP/24.......-00000001'
gefühlt sehe ich da keinen Fehler, aber auf was wartet das Programm ?
User entered nothing, 1 chance left
Und im Iobroker Log auch keine Fehler mehr :
2019-10-13 18:53:24.161 - info: asterisk.0 Dialing completed. Result: {"parameter":{"callerid":"04111111111","telnr":"0176XXXXXXXX","text":"Test Test","extension":"24........","audiofile":"/tmp/audio_1570985582279","delete":"delete"},"options":{"action":"originate","channel":"SIP/24....../0176XXXXXXX","context":"ael-ansage","exten":"0176XXXXXXX","priority":1,"timeout":60000,"variable":{"repeat":5,"file":"/tmp/audio_1570985582279","del":"delete"},"callerid":"0411111111111111"},"guid":"8d8e363b-67e2-3517-d116-f8f1aa366880","result":{"response":"Success","actionid":"8d8e363b-67e2-3517-d116-f8f1aa366880","message":"Originate successfully queued"}}Wobei es schon faszinierend ist, überall ist die zu verwendende abgehende Nummer eingetragen, das wird aber ignoriert und es wird immer die Hauptfestnetznummer angezeigt.
-
@Kai103 , wenn ich dich richtig verstehe, funktioniert es jetzt.
Das Problem mit der Hauptfestnetznummer kenne ich. Ich glaube die Fritzbox überschreibt den die Hauptfestnetznummer wieder. Du kannst ja nochmals versuchen diese mit Vorwahl und ohne Vorwahl einzutragen. Vielleicht hilft das. -
Hi,
es lief... dann musste ich ich wieder auf einen anderen pi wechseln, und da gibt es nun wieder Ärger. Ich schicke dir mal ne Mail...
Danke schon mal -
Leider bekomme ich folgende Fehlermeldung
...
pi@raspberrypi:~ $ asterisk -rvvvvv
Unable to open specified master config file '/etc/asterisk/asterisk.conf', using built-in defaults
Unable to connect to remote asterisk (does /var/run/asterisk/asterisk.ctl exist? )Was mache ich falsch?
Danke und Gruß
Michael -
@Inxession , es sieht so aus als ob asterisk nicht gestartet wurde. Einmal asterisk starten und dann nochmals versuchen.
Wie du asterisk startest, findest du in der README . -
Guten Morgen @Stuebi
...so nun habe ich nochmal alles neu aufgesetzt.
Der Log von iobroker wird jetzt nicht mehr zugemüllt.
Allerdings bringt mir der Befehl
asterisk -rvvvvv
folgende AusgabeUnable to open specified master config file '/etc/asterisk/asterisk.conf', using built-in defaults
Unable to connect to remote asterisk (does /var/run/asterisk/asterisk.ctl exist?)Als Werte in der Callout Funktion trage ich die Rufnummer ein, einen Text und die abgehende Rufnummer.
Wenn ich dann den Button betätige, meldet der Log von iobroker "Start dialing".
Mehr passiert leider nicht.Danke und schönes Wochenende
-
Hallo, ich habe da auch mal eine Frage. Ich möchte gerne einstellen das bei meiner Alarmanlage erst die eine Nummer und dann verzögert eine Andere Nummer Angerufen wird. Habe es schon versucht den Adapter zwei mal zu installieren aber es läuft immer nur über einen. Von dem ich halt die Daten kopiert habe per putty.
Hat da jemand eine einfache Lösung für mich?
-
@Flo1989 , standardmäßig laufen die Calls asynchron und daher parallel. schaue nachher ob man diese auch synchron starten kann.
-
@Stuebi , versuche es mit async = false.
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, async: false}, (res) => { console.log('Result: ' + JSON.stringify(res)); });
-
@Stuebi Sry für die doofe Frage aber wo und wie füge ich die zweite Nummer ein bzw. Wie schreibe ich das per putty? Bin da noch Neuling und mache die meisten Einstellungen über den IoBroker oder per Blocky.
-
Hallo,
ich habe mir auch den Asterisk Adapter installiert und eingerichtet.
Bei mir funktioniert nur das einloggen in der Fritzbox nicht. Nutzername und Passwort sind natürlich kontrolliert und richtig. In den Ereignissen der Fritzbox kommen folgende Meldungen:Anmeldung für IP-Telefoniegerät "12345678" von IP-Adresse 192.168.178.xx nicht erfolgreich
Wenn ich in Putty den Befehl asterisk -rvvvvvvv eingebe, kommt folgendes:
[Nov 6 09:22:22] NOTICE[649]: chan_sip.c:15981 sip_reg_timeout: -- Registration for '12345678@192.168.178.1' timed out, trying again (Attempt #379) [Nov 6 09:22:42] NOTICE[649]: chan_sip.c:15981 sip_reg_timeout: -- Registration for '12345678@192.168.178.1' timed out, trying again (Attempt #380) [Nov 6 09:23:02] NOTICE[649]: chan_sip.c:15981 sip_reg_timeout: -- Registration for '12345678@192.168.178.1' timed out, trying again (Attempt #381)
und das wiederholt sich dann immer wieder. Woran kann das liegen? Bin genau nach der Anleitung vorgegangen. Meine Fritzbox ist eine 7590 mit der Firmware 7.12.
Genutzt wird mein ioBroker und somit auch der Asterisk Adapter auf einem Raspberry Pi 4. -
Bei mir das gleiche Verhalten bzw. Fehler wie bei @flisse
Ebenbfalls Pi4 4GB mit Fritzbox 7590.
Gibt es dazu schon eine Lösung oder hat jemand einen Tipp.
Danke. -
@Rupert , kannst du einmal die Meldung aus asterisk -rvvvvvv hier veröffentlichen. Kannst du die Fritzbox von der asterisk Maschine aus mit Ping erreichen? Steht etwas im Fritzbox Logfile? Sind asterisk und die Fritzbox im gleichen Netz?
VG
Stübi -
@Stuebi
Danke.
Sind im gleichen Netz. Das Andere erledige ich Anfang der Woche, da ich jetzt übers WE nicht zuhause bin. -
asterisk -rvvvvvv sagt:
Connected to Asterisk 16.2.1~dfsg-1+deb10u1 currently running on raspberrypi (pid = 621) [Dec 16 14:35:17] NOTICE[821]: chan_sip.c:15981 sip_reg_timeout: -- Registration for '12345678@192.168.9.250' timed out, trying again (Attempt #6) [Dec 16 14:35:37] NOTICE[821]: chan_sip.c:15981 sip_reg_timeout: -- Registration for '12345678@192.168.9.250' timed out, trying again (Attempt #7) [Dec 16 14:35:57] NOTICE[821]: chan_sip.c:15981 sip_reg_timeout: -- Registration for '12345678@192.168.9.250' timed out, trying again (Attempt #8)
Fritzbox-Log sagt:
16.12.19 14:25:13 Anmeldung für IP-Telefoniegerät "12345678" von IP-Adresse 192.168.9.170 nicht erfolgreich. [2 Meldungen seit 16.12.19 14:06:53]
Ping zur Fritzbox IP 192.168.9.250 sagt:
PING 192.168.9.250 (192.168.9.250) 56(84) bytes of data. 64 bytes from 192.168.9.250: icmp_seq=1 ttl=64 time=0.438 ms 64 bytes from 192.168.9.250: icmp_seq=2 ttl=64 time=0.432 ms 64 bytes from 192.168.9.250: icmp_seq=3 ttl=64 time=0.369 ms 64 bytes from 192.168.9.250: icmp_seq=4 ttl=64 time=0.327 ms
Fritzbox hat in meinem Netzt die 192.168.9.250
Pi4 hat im selben Netz die 192.168.9.170
Auf dem Pi4 laufen iobroker + pivccu3Realisieren möchte ich folgende Funktion:
Wenn die Türschelle betätigt wird sollen alle Telefone im Haus für ca. 15 Sek. klingeln.
Auf dem Display soll als Nachricht "Türklingel" erscheinen.
Anruf soll sich danach automatisch beenden, eine Durchsage benötige ich nicht.Beste Grüße