NEWS
Asterisk Hangup Calls
-
Hallo,
der Asterisk Adapter ist echt genial. Funktioniert sofort mit der Fritzbox nach Anleitung und mit generierten config files. Danke an den/die Entwickler
Meine Anwendung ist einfach: Wenn jemand an der Tür klingelt, klingelt auch das Telefon und sagt "Es klingelt an der Tür...". Sehr praktisch wenn man mit dem DECT Phone von der Fritzbox im Garten sitzt und die Hausklingel nicht hören würde.
Falls die Haustür aufgeht (Sensor dran) sollte aber der asterisk-Adapter den Call auflegen auch wenn am Telefon keiner abgenommen hat. Das Telefon zeigt ja schon die Call-ID an und es ist klar, dass die Tür anruft.
Leider hat der Asterisk Adapter nur einen Call Button, aber keinen Hangup Button.
Gibt's irgend eine gute Methode ausser brutal auf Systemebene den Prozess zu killen und restarten?Besten dank!
Stefan -
man kann natürlich als root
sudo asterisk -r -U asterisk -x "hangup request all"
an den asterisk server schicken.
Aber node-red aus dem ich das steuere macht ja keine shell executes als root. -
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ß.