NEWS
Asterisk bringt "Error while dialing (2). Error: {}"
-
also rein der fritz box neustart hat bei mir nichts gebracht (image backup wurde eingespielt so dass die ursprüngliche Installation und config wieder da war)
-
@varg sagte in Asterisk bringt "Error while dialing (2). Error: {}":
also rein der fritz box neustart hat bei mir nichts gebracht (image backup wurde eingespielt so dass die ursprüngliche Installation und config wieder da war)
Erzeugts du die Datei jetzt auch mit pico2wave ?
Ich hatte wohl mehrere Probleme:
- Datei wurde nicht erzeugt : Lösung war pico2wave
Hier muss der Entwickler dran ! - Login hatte nicht gepasst: Lösung war manuell Datei sip.conf geändert
- Fritzbox wollte nicht: Lösung war neustart der FB
mfg
Dieter - Datei wurde nicht erzeugt : Lösung war pico2wave
-
@bahnuhr
wie hast du diese problem gelöst.
bei mir habe ich alles neu istalliert aber ich bekomme immer das Fehler:
Error while dialing (2). Error: {}Meine allarmirung hat diese funktion verwendet und jetz funktioniert nicht mehr...
Ich brauche eine lösung voice meldungen von Iobroker zu sendenDanke
Stefano -
@stek sagte in Asterisk bringt "Error while dialing (2). Error: {}":
wie hast du diese problem gelöst.
steht genau 1 Beitrag vor deinem.
-
Wow, ihr seid genial!
Ich war zwischenzeitlich aus privaten Gründen hier nicht mehr aktiv und hatte es nicht verfolgt. Mit der Lösung via pico2wave läuft es nun astrein!
Merke: Je weniger externe Abhängigkeiten, desto besser
Vielen vielen Dank!
-
hantiere hier gerade mit einem testsystem rum. zeilen hab ich ausgeklammert. connected to manager passt auch ohne error.
Nur dann will er bei der nummer string. Steh ich auf dem Schlauch ?Plattform: linux
RAM: 1.8 GB
Node.js: v14.17.1
NPM: 6.14.13
Admin ist die neueste beta
host ist 3.3.12sterisk.0 2021-06-19 05:36:43.988 info (948) State value to set for "asterisk.0.dialout.telnr" has to be type "string" but received type "number" ``` `
-
Das Einfügen dieses Codes (und die Installation von pico2wave) wird mit jeder anderen Modifikation funktionieren.
Danke für die Tipps, jetzt funktioniert der Hausalarm wieder...für alle, die es ausprobieren wollen
on({id: 'asterisk.0.dialout.call'}, function (obj) { let msg = getState('asterisk.0.dialout.text').val; let tnr = getState('asterisk.0.dialout.telnr').val; let cid = getState('asterisk.0.dialout.callerid').val; exec('pico2wave -w /tmp/ttsdatei.wav -l it-IT "' + msg + '"', function (error, stdout, stderr) { /* wav erstellt */ exec('sox /tmp/ttsdatei.wav -r 8000 -c 1 /tmp/ttsdatei.gsm', function (error, stdout, stderr) { /* gsm erstellt */ exec('rm /tmp/ttsdatei.wav', function (error, stdout, stderr) { /* wav gelöscht, sonst wurde beim folgenden Anruf ggf. die falsche Datei aufgerufen... */ sendTo('asterisk.0', "dial", { telnr: tnr , callerid: cid, audiofile: '/tmp/ttsdatei.gsm'}, (res) => { console.log('Result: ' + JSON.stringify(res)); exec('cp /tmp/ttsdatei.gsm /tmp/asterisk_dtmf.gsm', function (error, stdout, stderr) { /* Die asterisk_dtmf.gsm wird für Dial-In Anrufe verwendet... Hier wird dann einfach der letzte Anruf nochmal wiedergegeben */ /* Das folgende Löschen führte bei mir zu Problemen, also bleibt die Datei liegen.. wird ja eh überschrieben */ /* exec('rm /tmp/ttsdatei.gsm', function (error, stdout, stderr) { console.log('Telefonalamierung: gsm gelöscht'); }); */ }); }); }); }); }); });
-
cool danke klappt
-
Ich bekomme es leider nicht hin.
Kann jemand vielleicht über mein Fehlerbild drüber schauen und mir noch einen Tipp geben.asterisk.0
2021-06-26 09:29:49.389 error Error while dialing (1). Error: {"response":"Error","actionid":"d4032cc3-b84e-5573-5779-f676c768a050","message":"Originate failed"}, Result: {"parameter":{"telnr":"**611","callerid":"**621","audiofile":"/tmp/ttsdatei","extension":"15041965"},"options":{"action":"originate","channel":"SIP/15041965/**611","context":"ael-ansage","exten":"**611","priority":1,"timeout":60000,"variable":{"repeat":5,"file":"/tmp/ttsdatei","del":""},"callerid":"**621"},"guid":"d4032cc3-b84e-5573-5779-f676c768a050","result":{"response":"Error","actionid":"d4032cc3-b84e-5573-5779-f676c768a050","message":"Originate failed"}}**621 und **611 sind die internen Telefonfonnummer der Telephoniegeräte der Fritzbox. Diese habe ich im Script in Hochkommas gesetzt. ohne Hochkommas geht das Script in einen Error, mit den Sternchen vor der Nummer.
-
@crazyfloyd
funktionieren denn andere Rufnummern oder gar keine?
werden eingehende Anrufe vom asterisk/iobroker beantwortet?
zeig doch mal das Script... -
@boeskij sagte in Asterisk bringt "Error while dialing (2). Error: {}":
@crazyfloyd
funktionieren denn andere Rufnummern oder gar keine?
werden eingehende Anrufe vom asterisk/iobroker beantwortet?
zeig doch mal das Script...Hier mein script:
on({id: 'asterisk.0.dialout.call'}, function (obj) {
let msg = getState('asterisk.0.dialout.text').val;
let tnr = getState('asterisk.0.dialout.telnr').val;
let cid = getState('asterisk.0.dialout.callerid').val;exec('pico2wave -w /tmp/ttsdatei.wav -l it-IT "' + msg + '"', function (error, stdout, stderr) { /* wav erstellt */ exec('sox /tmp/ttsdatei.wav -r 8000 -c 1 /tmp/ttsdatei.gsm', function (error, stdout, stderr) { /* gsm erstellt */ exec('rm /tmp/ttsdatei.wav', function (error, stdout, stderr) { /* wav gelöscht, sonst wurde beim folgenden Anruf ggf. die falsche Datei aufgerufen... */ sendTo('asterisk.0', "dial", { telnr: '**611' , callerid: '**621', audiofile: '/tmp/ttsdatei.gsm'}, (res) => { console.log('Result: ' + JSON.stringify(res)); exec('cp /tmp/ttsdatei.gsm /tmp/asterisk_dtmf.gsm', function (error, stdout, stderr) { /* Die asterisk_dtmf.gsm wird für Dial-In Anrufe verwendet... Hier wird dann einfach der letzte Anruf nochmal wiedergegeben */ /* Das folgende Löschen führte bei mir zu Problemen, also bleibt die Datei liegen.. wird ja eh überschrieben */ /* exec('rm /tmp/ttsdatei.gsm', function (error, stdout, stderr) { console.log('Telefonalamierung: gsm gelöscht'); }); */ }); }); }); }); });
});
-
@crazyfloyd
das sieht jetzt erstmal nicht so verkehrt aus...
funktionieren denn andere Rufnummern oder gar keine?
werden eingehende Anrufe vom asterisk/iobroker beantwortet?
verbindet sich die asterisk-instanz mit dem asterisk?
verbindet sich asterisk mit der fritzbox? -
@varg habe gerade eine chat anfrage erhalten und poste nochmals hier die vorgehensweise die (dank der jungs hier) bei mir funktioniert hat.
wget -q https://ftp-master.debian.org/keys/release-10.asc -O- | sudo apt-key add -
echo "deb http://deb.debian.org/debian buster non-free" | sudo tee -a /etc/apt/sources.list
sudo apt update
sudo apt install libttspico-utilssudo apt-get install libttspico-utils lame
in asterisk transcoder auf sox gestellt.
asterisk config nach githubon({id: 'asterisk.0.dialout.call'}, function (obj) { let msg = getState('asterisk.0.dialout.text').val; let tnr = getState('asterisk.0.dialout.telnr').val; let cid = getState('asterisk.0.dialout.callerid').val; exec('pico2wave -w /tmp/ttsdatei.wav -l de-DE "' + msg + '"', function (error, stdout, stderr) { /* wav erstellt */ exec('sox /tmp/ttsdatei.wav -r 8000 -c 1 /tmp/ttsdatei.gsm', function (error, stdout, stderr) { /* gsm erstellt */ exec('rm /tmp/ttsdatei.wav', function (error, stdout, stderr) { /* wav gelöscht, sonst wurde beim folgenden Anruf ggf. die falsche Datei aufgerufen... */ sendTo('asterisk.0', "dial", { telnr: tnr , callerid: cid, audiofile: '/tmp/ttsdatei.gsm'}, (res) => { console.log('Result: ' + JSON.stringify(res)); exec('cp /tmp/ttsdatei.gsm /tmp/asterisk_dtmf.gsm', function (error, stdout, stderr) { /* Die asterisk_dtmf.gsm wird für Dial-In Anrufe verwendet... Hier wird dann einfach der letzte Anruf nochmal wiedergegeben */ /* Das folgende Löschen führte bei mir zu Problemen, also bleibt die Datei liegen.. wird ja eh überschrieben */ /* exec('rm /tmp/ttsdatei.gsm', function (error, stdout, stderr) { console.log('Telefonalamierung: gsm gelöscht'); }); */ }); }); }); }); }); });
bei instanzstart kommt zwar nach wie vor error while converting file aber das wird ja dann vom script und tts übernommen.
mit folgendem blockly trigger ich dann die datenpunkte
<xml xmlns="https://developers.google.com/blockly/xml"> <block type="on" id="kKge@_%+BDw6n!K(/^X(" x="63" y="1163"> <field name="OID">0_userdata.0.notfall.asterisk_04</field> <field name="CONDITION">true</field> <field name="ACK_CONDITION"></field> <statement name="STATEMENT"> <block type="control" id="Zma!K=;5A|U@oRsH4[0s"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">asterisk.0.dialout.text</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text" id="{d.,gn^x-!O3Mf%OFwu;"> <field name="TEXT">Rauchmelder zu Hause ausgelöst</field> </block> </value> <next> <block type="control" id="j}/Ii|hS}Tm=mI8[ah[Y"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">asterisk.0.dialout.telnr</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text" id="jGY8`[Q9`0u#J+]CWWmc"> <field name="TEXT">00000000000</field> </block> </value> <next> <block type="control" id="7vVeDp2(HKA^yDV..=`M"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation> <field name="OID">asterisk.0.dialout.callerid</field> <field name="WITH_DELAY">FALSE</field> <value name="VALUE"> <block type="text" id=".PKJzB615hu)o|v.ns7)"> <field name="TEXT">0</field> </block> </value> <next> <block type="control" id="#gb%Wc4:m]{xk1W|KxyX"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation> <field name="OID">asterisk.0.dialout.call</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">2000</field> <field name="UNIT">ms</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="E8SqluH0+3,i.U;2GT+2"> <field name="BOOL">TRUE</field> </block> </value> <next> <block type="control" id="jpO:t6;=~p9o[/]KMr?A"> <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="true"></mutation> <field name="OID">0_userdata.0.notfall.asterisk_04</field> <field name="WITH_DELAY">TRUE</field> <field name="DELAY_MS">60</field> <field name="UNIT">sec</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="VALUE"> <block type="logic_boolean" id="`s`R94Iz^9G|2Sh/.jsq"> <field name="BOOL">FALSE</field> </block> </value> </block> </next> </block> </next> </block> </next> </block> </next> </block> </statement> </block> </xml>
-
@boeskij sagte in Asterisk bringt "Error while dialing (2). Error: {}":
@crazyfloyd
das sieht jetzt erstmal nicht so verkehrt aus...
funktionieren denn andere Rufnummern oder gar keine?
werden eingehende Anrufe vom asterisk/iobroker beantwortet?
verbindet sich die asterisk-instanz mit dem asterisk?
verbindet sich asterisk mit der fritzbox?ja und nein. ich habe festgestellt das ich von der asterix istanz folgende fehlermeldung bekomme:
sudo asterisk -rvvvvvvv
Asterisk 16.2.1~dfsg-1+deb10u2, Copyright (C) 1999 - 2018, 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 16.2.1~dfsg-1+deb10u2 currently running on rasp-iobroker (pid = 29625)
rasp-iobroker*CLI> sip show registry
Host dnsmgr Username Refresh State Reg.Time
192.168.2.1:5060 N 123456789 120 Request Sent
1 SIP registrations.
[Jun 27 17:28:13] ERROR[29927]: chan_sip.c:4321 __sip_reliable_xmit: Serious Network Trouble; __sip_xmit returns error for pkt data
[Jun 27 17:28:13] NOTICE[29927]: chan_sip.c:15981 sip_reg_timeout: -- Registration for '123456789@192.168.2.1' timed out, trying again (Attempt #2)ich bin mir aber sicher das das telefoniegerät an der fritzbox und der user in der sip.conf richtig sind. werde langsam wahnsinnig.
kann das evtl an der neuen fritz soft liegen version 7.27 auf einer 7530.? -
@crazyfloyd sagte in Asterisk bringt "Error while dialing (2). Error: {}":
@boeskij sagte in Asterisk bringt "Error while dialing (2). Error: {}":
@crazyfloyd
das sieht jetzt erstmal nicht so verkehrt aus...
funktionieren denn andere Rufnummern oder gar keine?
werden eingehende Anrufe vom asterisk/iobroker beantwortet?
verbindet sich die asterisk-instanz mit dem asterisk?
verbindet sich asterisk mit der fritzbox?ja und nein. ich habe festgestellt das ich von der asterix istanz folgende fehlermeldung bekomme:
sudo asterisk -rvvvvvvv
Asterisk 16.2.1~dfsg-1+deb10u2, Copyright (C) 1999 - 2018, 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 16.2.1~dfsg-1+deb10u2 currently running on rasp-iobroker (pid = 29625)
rasp-iobroker*CLI> sip show registry
Host dnsmgr Username Refresh State Reg.Time
192.168.2.1:5060 N 123456789 120 Request Sent
1 SIP registrations.
[Jun 27 17:28:13] ERROR[29927]: chan_sip.c:4321 __sip_reliable_xmit: Serious Network Trouble; __sip_xmit returns error for pkt data
[Jun 27 17:28:13] NOTICE[29927]: chan_sip.c:15981 sip_reg_timeout: -- Registration for '123456789@192.168.2.1' timed out, trying again (Attempt #2)ich bin mir aber sicher das das telefoniegerät an der fritzbox und der user in der sip.conf richtig sind. werde langsam wahnsinnig.
kann das evtl an der neuen fritz soft liegen version 7.27 auf einer 7530.?Ich hab es jetzt hin bekommen. Kann aber nicht genau sagen woran es letzt-endlich gelegen hat. Danke für alles..... Von Herzen..
-
doppelt, sorry.
-
@boeskij said in Asterisk bringt "Error while dialing (2). Error: {}":
Hallo zusammen,
ich vermute Google hat etwas an der verwendeten Text-To-Speech API verändert, sodass nur noch eine bestimmte Anzahl Wandlungen in einem Zeitraum möglich sind (wenn überhaupt noch)...
Ich habe es jetzt so gelöst, dass im Skript "umzu" mit lokalem PicoTTS wav-Dateien erzeugt und mit sox zur gsm konvertiert werden.Problem ist, dass beim Starten des Adapters der Dial-In-Text an Google geschickt wird und natürlich nicht gewandelt wird...
Als Konsequenz daraus startet dann der Adapter nicht korrekt (kein DTMF mehr möglich)
Um dies quick and dirty zu beheben habe ich in der asterisk.js die Zeilen 757 und 788 auskommentiert...
Der Teil dazwischen wurde sonst nicht ausgeführt...757: /* convertDialInFile(parameter, () => { */ ..... 788: /* }); */
Wäre natürlich toll, wenn jemand den Adapter so umbauen könnte, dass eine andere TTS-Engine genutzt wird...
Wo finde ich denn die Datei asterisk.js. zum auskommentieren? Im iobroker-data finde ich sie nicht.
Danke! -
@zaggul sagte in Asterisk bringt "Error while dialing (2). Error: {}":
Wo finde ich denn die Datei asterisk.js. zum auskommentieren? Im iobroker-data finde ich sie nicht.
Warum lässt du es nicht so wie es ist.
Es kommt Fehlermeldung, aber mehr auch nicht.Beim nächsten update würde dies sowieso wieder überschrieben werden.
js findest du in node-modules.
-
@zaggul
bei mir liegt die Datei unter/opt/iobroker/node_modules/iobroker.asterisk/asterisk.js
@bahnuhr said in Asterisk bringt "Error while dialing (2). Error: {}":
Warum lässt du es nicht so wie es ist.
Es kommt Fehlermeldung, aber mehr auch nicht.Beim nächsten update würde dies sowieso wieder überschrieben werden.
Ja, die Datei würde beim nächsten Update überschrieben (aber im Moment gibt es ja keine Updates...)
Es kommt die Fehlermeldung und es sind keine DTMF-Befehle mehr möglich!
Wenn nur ein Text vorgelesen werden soll ist das OK, wenn aber Befehle durch eine Zahlenkombination ausgeführt werden sollen, funktioniert das nicht... -
This will not work:
$ wget "https://translate.google.com/translate_tts?ie=UTF-8&client=tw-ob&q=hallo%20du&tl=de&total=1&idx=0&textlen=10" --2021-07-16 22:49:43-- https://translate.google.com/translate_tts?ie=UTF-8&client=tw-ob&q=hallo%20du&tl=de&total=1&idx=0&textlen=10 Auflösen des Hostnamens translate.google.com (translate.google.com)… 142.250.185.238, 2a00:1450:4005:80b::200e Verbindungsaufbau zu translate.google.com (translate.google.com)|142.250.185.238|:443 … verbunden. HTTP-Anforderung gesendet, auf Antwort wird gewartet … 403 Forbidden 2021-07-16 22:49:44 FEHLER 403: Forbidden.
This will work:
$ wget --user-agent='Mozilla/5.0 (Windows NT 6.3; WOW64; rv:41.0) Gecko/20100101 Firefox/41.0' "https://translate.google.com/translate_tts?ie=UTF-8&client=tw-ob&q=hallo%20du&tl=de&total=1&idx=0&textlen=10" --2021-07-16 22:51:58-- https://translate.google.com/translate_tts?ie=UTF-8&client=tw-ob&q=hallo%20du&tl=de&total=1&idx=0&textlen=10 Auflösen des Hostnamens translate.google.com (translate.google.com)… 142.250.184.206, 2a00:1450:4001:802::200e Verbindungsaufbau zu translate.google.com (translate.google.com)|142.250.184.206|:443 … verbunden. HTTP-Anforderung gesendet, auf Antwort wird gewartet … 200 OK Länge: nicht spezifiziert [audio/mpeg] Wird in »translate_tts?ie=UTF-8&client=tw-ob&q=hallo du&tl=de&total=1&idx=0&textlen=10« gespeichert. translate_tts?ie=UTF-8&client=tw-ob&q=hallo du&tl=de&total= [ <=> ] 5,16K --.-KB/s in 0s 2021-07-16 22:51:58 (10,8 MB/s) - »translate_tts?ie=UTF-8&client=tw-ob&q=hallo du&tl=de&total=1&idx=0&textlen=10« gespeichert [5280]
So we can change in lib/transcode.js line 100 - 105
// https://translate.google.com/translate_tts?ie=UTF-8&client=tw-ob&q=%D0%BE%D1%82%D0%B2%D0%B5%D1%82%D0%B8%D1%82%D1%8C%207&tl=ru&total=1&idx=0&textlen=10 const options = { host: 'translate.google.com', //port: 443, path: '/translate_tts?ie=UTF-8&client=tw-ob&q=' + encodeURI(text) + '&tl=' + language + '&total=1&idx=0&textlen=' + text.length // };
to
// https://translate.google.com/translate_tts?ie=UTF-8&client=tw-ob&q=%D0%BE%D1%82%D0%B2%D0%B5%D1%82%D0%B8%D1%82%D1%8C%207&tl=ru&total=1&idx=0&textlen=10 const options = { host: 'translate.google.com', //port: 443, path: '/translate_tts?ie=UTF-8&client=tw-ob&q=' + encodeURI(text) + '&tl=' + language + '&total=1&idx=0&textlen=' + text.length, // headers: {'user-agent': 'Mozilla/5.0 (Windows NT 6.3; WOW64; rv:41.0) Gecko/20100101 Firefox/41.0'} };
The API will only talk to firefox