OnSipPhoneCallTimeoutNoResponse stoppen bei öffnen der Türe

  • Wenn also niemand auf das Klingeln reagiert, dann wird OnSipPhoneCallTimeoutNoResponse (call_timeout = 25) ausgelöst und das Script "wait_a_moment.sh" wird ausgeführt und eine Ansage über die Sprechanlage ausgeführt. Nun geht einer ans Türe und öffnet sie ohne das Telefon zu benützen und das Ansage läuft.

    Das möchte ich gern vermeiden und habe die Haustüre geöffnet mit einen Reedkontakt auf Pin 18 erweitert um das Ansage zu Stoppen.


    [EVENT_OnKeyPressed_onboardpins.18]

    10 = os_execute:/usr/local/etc/DoorPi/scripts/Pin18.sh


    Pin18.sh > OnSipPhoneCallTimeoutNoResponse stoppen??

    wie könnte es geschrieben werden??

  • Rein theoretisch müsste es einen Prozess (*) "wait_a_moment.sh" geben, wenn die Ansage läuft.


    Diesen Prozess müsste man mit killall wait_a_moment.sh beenden können.

    Ob da noch ein sudo davor muss, oder ob man den Prozess mit killall -9 wait_a_moment.sh "abwürgen" muss, weiß ich nicht.


    Am Besten mal ausprobieren.


    (*) Mit ps ax | grep wait_a_moment.sh kann man feststellen, ob es einen solchen Prozess gibt.

    Hierbei sollten in der Ausgabe zwei Zeilen angezeigt werden.

    Eine ist der Prozess, welcher gesucht wird, die andere Zeile ist der Prozess womit wir gesucht haben.


    Viele Grüße

    Olaf

  • Ich komme nicht weiter


    pi@raspberrypi:~ $ sudo killall -9 wait_a_moment.sh

    wait_a_moment.sh: Kein Prozess gefunden


    pi@raspberrypi:~ $ sudo killall -9 /usr/local/etc/DoorPi/scripts/wait_a_moment.sh

    /usr/local/etc/DoorPi/scripts/wait_a_moment.sh: Kein Prozess gefunden


    pi@raspberrypi:~ $ ps ax | grep wait_a_moment.sh

    5807 pts/0 S+ 0:00 grep --color=auto wait_a_moment.sh


    Lautsprecher " Jabra SPEAK 410 USB " :)

  • Wenn kein Prozess da ist, dann kann man auch nichts beenden.


    Das geht nur, wenn die Ansage läuft.


    Oder schickst du in der "wait_a_moment.sh" espeak in den Hintergrund? Dann wäre bei dem Befehl ein & am Ende.

    Dann könnte ein sudo killall -9 espeak weiter helfen. Ist nicht schön, aber eventl. funktioniert es.



    Viele Grüße

    Olaf

  • Danke Olaf, habe eine Lösung


    call_timeout = 25 #in Sekunden nach dem Klingeln

    Haustür auf z.B in 10sec. Pin18 > [EVENT_OnKeyPressed_onboardpins.18]

    Pin18.sh

    #!/bin/sh

    sudo killall -9 espeak

    sleep 1 # sec. pausieren

    sudo killall -9 espeak

    sleep 1 # sec. pausieren

    sudo killall -9 espeak

    ......

    ......

    das ganze 25 mal wiederholt im Script, um die Max call_timeout = 25 abzudecken

    und es klappt :), keine Ansage, da einer Zuhause war und die Tür selber aufgemacht hat, weil das Telefon irgendwo unterm Kopfkissen ist oder ähnliches!

  • Sieht nicht sonderlich hübsch aus, diese Lösung :D

    Shell-Script: Pin18.sh
    1. #!/bin/sh
    2. sudo kill -9 $(pgrep -f wait_a_moment.sh)



    offtopic: Bist du ansonsten eigtl mit eSpeak zufrieden? Kommen da einigermaßen natürlich klingende Ausgaben raus? Wie schlägt sich der Jabra Speak in Bezug auf die Echo Problematik?

  • espeak ist mit -v german+f5 ganz gut in der Ausgabe . Großschreiben und . zwischen dem Sätzen bzw. Wörtern hilft um eine gut verständliche Sätze zu zaubern.

    Jabra Speak 410 ist perfekt, hat keine Echo. Hatte vorher ein Polycom Communicator dran gehabt, war aber nicht glücklich damit.