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'); }); */
});
});
});
});
});
});