Hallo,
habe grade selbst eine Lösung gefunden und schreibe es nur, falls jemand das gleiche Problem hat.
kleines C programm schreiben:
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <unistd.h>
int main()
{
setuid( 0 ); // you can set it at run time also
system( "asterisk -r -U asterisk -x \"hangup request all\"" );
return 0;
}
Compilieren und dann das Binary mit Sticky-Bit zum Root-Executable machen
cc asteriskhangup.c
mv a.out asteriskhangup
sudo chown root:root asteriskhangup
sudo chmod a+xs asteriskhangup
Wenn das binary jetzt aufgerufen wird, wird der enthaltene Befehl immer als root ausgeführt. Das wird also auch als root ausgeführt, wenn es beispielsweise aus dem iobroker ausgeführt wird. Man kann es also auch in einen normalen Exec-Node in Node-Red einbauen. Leider funktioniert der Trick nicht mit scripts.
Damit kann man alle laufenden Gespräche einfach killen, falls der Grund für das Gespräch entfallen ist.
Es ist natürlich eine Workaround und ein Hangup-Button neben dem call-Button im adapter wäre natürlich viel eleganter.
Viel Spaß.