[gelöst] Wake-On-Call, ohne viel Aufwand, ohn Mod Installation

Hellspawn

Neuer User
Mitglied seit
1 Dez 2005
Beiträge
63
Punkte für Reaktionen
0
Punkte
0
Ich übernehme keinerlei Haftung

Wake-On-Call? Nichts neues denken die meisten. Aber ich hab ein einfaches Script gebastelt, mit dem man, ohne viel Aufwand und ohne einen Mod zu installieren, einen Rechner in seinem LAN per Telefonanruf wecken kann.

Voraussetzung für Wake-On-Call: Dieses muss bei euch bereits funzen

Den Code könnt ihr ganz einfach an eure debug.cfg anhängen. Dann nur noch $woltel und $wolsip konfigurieren, debug.cfg zurück in den flash schreiben, rebooten, fertig!

Have Phun

Code:
#############################
# wake-on-call config START #
#############################
# Wenn ein Anruf auf diesem SIP Port erfolgt, dann soll er meinen Rechner starten
# SIP Port Nummer gibts hier: FBF Web-Interface öffnen / Telefonie / Internettelefonie
# Beispiel: *124# ist dann z.B. SIP4
# Wenn Wake-On-Call deaktivert werden soll, dann irgendwas eintragen
wolsip=SIP4

# Wer darf den PC per WOL über Tel aufwecken?
# jeder     	Jeder der die Nummer $wolsip anruft, darf den Rechner aufwecken
# TelNummer		Wenn es nur eine bestimmte Tel-Nummer darf
woltel=0123456789

# $wolsip und $woltel lassen sich in $localdir/wake-on-call.info kontrollieren
# Denn manchmal wird die Nummer nicht so übermittelt 0123... sondern so +49123...
# Bitte kontrollieren und entsprechend hier eintragen

############################
# wake-on-call config ENDE #
############################

######################
# wake-on-call START #
######################

# wake-on-call.sh erstellen
cat > $localdir/wake-on-call.sh << 'END'
#!/bin/sh
trap "" SIGCHLD
# stdin: Ausgabe vom Telefon Daemon wird erwartet
while read line
do
case ${line} in
IncomingCall:*)
caller=${line#*caller: \"}
caller=${caller%%\"*}
called=${line#*called: \"}
called=${called%%\"*}
echo Angerufende Nummer = $called  > $localdir/wake-on-call.info
echo Nummer vom Anrufer = $caller >> $localdir/wake-on-call.info
END
echo "# Pruefen ob die angerufende Nr die WOL-SIP ist"                       >> $localdir/wake-on-call.sh
echo "if [ "$"called = $wolsip ]; then"                                      >> $localdir/wake-on-call.sh
echo "  # Prüfen ob jeder den Rechner wecken darf. Wenn "jeder" dann wecken" >> $localdir/wake-on-call.sh
echo "  if [ jeder = $woltel ]; then"                                        >> $localdir/wake-on-call.sh
echo "    $localdir/startpc"                                                 >> $localdir/wake-on-call.sh
echo "  fi"                                                                  >> $localdir/wake-on-call.sh
echo "  # Dann darf es wohl nur eine bestimmte Nummer"                       >> $localdir/wake-on-call.sh
echo "  # Prüfen ob es die bestimmte Nummer ist"                             >> $localdir/wake-on-call.sh
echo "  if [ "$"caller = $woltel ]; then"                                    >> $localdir/wake-on-call.sh
echo "    $localdir/startpc"                                                 >> $localdir/wake-on-call.sh
echo "  fi"                                                                  >> $localdir/wake-on-call.sh
echo "fi"                                                                    >> $localdir/wake-on-call.sh
chmod +x $localdir/wake-on-call.sh

#wake-on-call einbinden
# Telefon Daemon neu starten; Ausgabe ge-piped nach wake-on-call.sh
if [ -x $localdir/wake-on-call.sh ]
  sleep 4
  then
  # Telefon Daemon sicher stoppen
  killall -15 telefon
  sleep 4
  killall -9 telefon
  rm -f /var/run/telefon.pid
  sleep 4
  # Telefon Daemon starten
  telefon a127.0.0.1 | $localdir/wake-on-call.sh &
fi
#####################
# wake-on-call ENDE #
#####################
 
Funktioniert nicht mit 7170 .99' Firmware

Hallo,

ich habe den Abend heute damit verbracht Dein Script bei mir zum Laufen zu bringen. Die wake-on-call.sh wird noch erstellt und der Telefon Daemon gestartet, aber bei einem Anruf wird die wake-on-call.info nicht geschrieben. Entsprechend wird auch der startpc nicht ausgelöst. Hast Du vielleicht eine Idee woran es liegen könnte.

Gruß
Christian
 
Das liegt daran, dass in der 99er Firmware der telefon-Dämon nicht mehr die benötigten Ausgaben im macht.
:-(
 
Für mich leider noch nicht gelöst

Hallo,

ich bin nicht der Linux-Profi. Wie starte ich den Telefon Daemon denn mit dem Argument 1. Vielleicht kann mir jemand beschreiben, was ich im oberen Script ändern muß. Danke....

Gruß
Christian
 
Code:
telefon 1 a127.0.0.1 | $localdir/wake-on-call.sh &
MfG Oliver
 
Hallo Oliver,

vielen Dank für die schnelle Antwort. Leider arbeitet das Script immer noch nicht. Die wake-on-call.info wird nicht geschrieben und deshalb denke ich, dass der Telefon Daemon Werte für "caller" und "called" nicht richtig anzeigt. Hast Du oder jemand anders noch eine Idee? Wie kann ich diese Werte während eines Anrufs innerhalb einer Telnet-Verbindung anzeigen lassen?

Gerade habe ich festgestellt, dass noch ein anderes Problem auftritt wenn man den Daemon mit dem Argument 1 startet. Die Anrufliste wird nicht mehr angezeigt und bei einem Zugriff auf die Anrufliste nach einem Anruf, startet die Box neu.

Gruß
Christian
 
Zuletzt bearbeitet:
ckg02 schrieb:
deshalb denke ich, dass der Telefon Daemon Werte für "caller" und "called" nicht richtig anzeigt.
Die Ausgaben des telefon-Dämons haben sich leicht geändert: Es wird nun "telefon: " vor jeder Zeile ausgegeben. Das müsstest du durch eine minimale Änderung in den Griff bekommen können (der Stern):
Code:
case ${line} in
[highlight]*[/highlight]IncomingCall:*)
caller=${line#*caller: \"}

noch ein anderes Problem auftritt wenn man den Daemon mit dem Argument 1 startet. Die Anrufliste wird nicht mehr angezeigt und bei einem Zugriff auf die Anrufliste nach einem Anruf, startet die Box neu.
Kann ich nicht reproduzieren, weder das eine noch das andere. Bei mir funktioniert die Anrufliste wie immer.

Gruß,
Andreas
 
Hat bei mir leider auch keinen Erfolg. Das Problem bleibt. Nach starten des Daemon mit

telefon 1 a127.0.0.1 | $localdir/wake-on-call.sh &

bleibt die Telefonliste hängen und auch die Nebenstellenkonfiguration zeigt einen Fehler an. Kurze Zeit später startet die Box dann selbstständig neu.
 
ckg02 schrieb:
bleibt die Telefonliste hängen und auch die Nebenstellenkonfiguration zeigt einen Fehler an. Kurze Zeit später startet die Box dann selbstständig neu.
Nach einem genaueren Blick: Das Skript wake-on-call.sh hat Syntaxfehler (z.B. werden die while-Schleife und das case-Statement nicht geschlossen), deswegen kann telefon seine Ausgabe nicht schreiben und es kommt zu den beobachteten Symptomen bis zum Notfall-Neustart. Es liegt also nicht am Argument "1".

Andreas
 
Hallo Andreas,

wie schon gesagt Bash-Programmierung ist neu für mich. Ich weiß nur, dass die While-Schleife wahrscheinlich mit "done" geschlossen und das Case-Statement eigentlich mit ";;" beendet werden müßte. Leider ist mir nicht ganz klar an welchen Stellen dieses passieren muß. Vielleicht kannst Du mir noch eine kleine Hilfestellung geben. Danke im Voraus!!!

Gruß Christian
 
ckg02 schrieb:
wie schon gesagt Bash-Programmierung ist neu für mich. Ich weiß nur, dass die While-Schleife wahrscheinlich mit "done" geschlossen und das Case-Statement eigentlich mit ";;" beendet werden müßte.
Ja, die Syntax einer while-Schleife ist
Code:
while BEDINGUNG
do
   AKTION
   ...
done
Das case-Statement hört mit "esac" auf (case rückwärts); jeder Zweig mit ";;":
Code:
case WERT in
  MUSTER1) AKTION1 ;;
  MUSTER2) AKTION2 ;;
  ...
esac
Leider ist mir nicht ganz klar an welchen Stellen dieses passieren muß.
Ans Ende der wake-on-call.sh müsste wohl noch folgendes geschrieben werden (z.B. mit weiteren echo-Zeilen), wenn ich das richtig sehe (hab's nicht ausprobiert).
Code:
    ;;
  esac
done

Andreas
 
Kann man das Script auch so ändern, dass man über einen Telefonanruf Wlan einschalten kann? Wenn ja, wie?
(Ich möchte meinem Nachbarn Wlan anbieten, das sollte aber nur eingeschaltet sein, wenn er es wirklich braucht.)
 
wlan

Tippfehler schrieb:
Kann man das Script auch so ändern, dass man über einen Telefonanruf Wlan einschalten kann? Wenn ja, wie?
(Ich möchte meinem Nachbarn Wlan anbieten, das sollte aber nur eingeschaltet sein, wenn er es wirklich braucht.)

Hi, das geht schon jetzt, auch ohne Modifikation. Such mal nach der Liste mit den Tastencodes...

Gruss

Psychodad
 
Das mit den Tastencodes kenne ich natürlich, nur mein Nachbar hat kein an meine Box angeschlossenes Telefon. Er müßte es auf einer VOIP-Nummer kurz klingeln lassen. Es soll ja keine Gebühren kosten.
 
Tippfehler schrieb:
Kann man das Script auch so ändern, dass man über einen Telefonanruf Wlan einschalten kann?
Hallo, prinzipiell geht das: Du kannst den entsprechenden Aufruf an das Webinterface simulieren (incl. vorherigem Login); in meinem Callmonitor mache ich sowas durch direkten Aufruf des CGI-Programms webcm auf der Box.

Andreas
 
buehmann schrieb:
Hallo, prinzipiell geht das: ...
Das hört sich gut an. Leider mangelt es bei mir an Programmierkenntnissen.
Kann mir evtl. Jemand etwas auf die Sprünge helfen?
 
Hi,

nachdem ich sowohl WoL und WoC zum laufen bekomme habe, hätte ich noch interesse an einer kleinen Feinheit.

Mein PC startet sobald ich mit meinem Handy zu hause anrufe... was nicht so schlimm ist da ich mich selber nie zu hause auf Festnetz per Handy anrufe... allerdings ist es ziemlich nervig für meine Family wenn jedes mal das Telefon kurz klingelt wenn ich gerade von der Arbeit nach Hause fahre.

Also, gibt es eine Möglichkeit das Telefon nicht oder lautlos klingeln zu lassen wenn ich mit meinem Handy anrufe oder gar eine Möglichkeit die komplette Leitung freizuhalten ?

Was sagen unsere Profis ?
 
hallo,

auf welchen anschluss wird angerufen analog, isdn oder voip ?
 
Ich hoffe es hilft weiter, VoIP.

Also mein Telefon mit 3 Stationen am Anschluss des Routers per TAE-ISDN Wandler Dingens ^^.

Fritz Box 7170.
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.