Fritzbox von externem Telefon/Handy rebooten

Netsn00p

Neuer User
Mitglied seit
11 Jan 2010
Beiträge
53
Punkte für Reaktionen
0
Punkte
0
Hallo,

ich bräuchte mal ein wenig Unterstützung bzw. einen Tip wie ich es hinbekomme, dass ich meine Fritzbox per Anruf von extern neu starten kann.

Ich habe 3 ISDN Nummern, für die Reboot-Funktion könnte ich eine dafür nehmen und es sollte die Nummer abgeprüft werden, welche anruft, damit nicht jeder meine FB neu starten kann ;) .

Hab hier dazu schon ein bissel rumgesucht, aber nichts direktes dazu gefunden.

Könnte es evtl. so funktionieren? Habe ich in einem Post von sawo20 hier im Forum gefunden und etwas abgeändert.


Code:
#! /bin/sh
# Beispiel für einen Fritzbox-Reboot per Anruf
# Parameter von Telefon Daemon
# $1 caller (Anrufer ID)
# $2 MSN Nummer
# $3 ist SIP0/ISDN

# Definition
# MSN = Telefonnummer zum wecken
# caller = nummer oder jeder
# caller2= weitere Nummer

MSN=123456
#caller=jeder
caller=000000
caller2=000001


if [ "$MSN" = "123456" ]; then
# Prüfen ob der Anrufer die Fritzbox rebooten darf
if [ "$caller" = "$1" -o "$caller2" = "$1" ]; then
shutdown -r -t 5
fi
fi
Exit 0

EDIT: Habe eben grad gemerkt, "shutdown" geht nicht bei der Fritzbox, hmm... und wenn man "reboot" nimmt, dann läuft das Skript nicht durch...

Ich habe eine FRITZ!Box 7270 mit der aktuellen Firmware 74.05.05 .


Gruß
Christian
 
Zuletzt bearbeitet:
Keiner nen Tip?
 
Hmm, das soll wohl nicht funktionieren -> calltrough oder hier

Oder mal ein anderes Skript, könnte das so funtkionieren?

Code:
trap "" SIGCHLD
# Einschraenkung auf MSN
if [[ "$2" != "meineMSN" ]]; then
exit 0
fi
/sbin/reboot

Da könnte ich eine meiner 3 ISDN Nummern nehmen, allerdings sollte schon noch die Abfrage nach dem Anrufer mit drin sein, ist mir sicherer. Ist wahrscheinlich für einen Coder einfach, ich kenn mich da allerdings nicht so gut aus.

Nachts neu starten hilft mir nicht wirklich weiter, ich möchte schon die Möglichkeit haben selbst den Reboot einzuleiten.

Gruß Christian
 
Zuletzt bearbeitet:
Hi Joe,

noch gar nicht, bevor ich da was fummle, möchte ich schon wissen ob es sinnig ist ;) .
Wie schon gesagt, ich versuch da zwar logisch ranzugehen, aber ich bin kein Coder und somit werd ich, was zum Beispiel die Syntax angeht etc., sehr wahrscheinlich Fehler reinbauen. Da hier bestimmt einige Leute sind, welche das Coden richtig gut drauf haben und auch schon einige Mods geproggt haben, sehe ich es als sinniger an, diese dort mal rüber schaun zu lassen. Mich verwundert allerdings, dass es dazu noch keine vernünftig funktionierende Lösung hier im AVM Forum gibt...

Zum Beitrag #1:

"EDIT: Habe eben grad gemerkt, "shutdown" geht nicht bei der Fritzbox, hmm... und wenn man "reboot" nimmt, dann läuft das Skript nicht durch..."

Das war eine für mich logische Schlussfolgerung, kein Test. Wenn der "reboot" Befehl kommt, wird das Skript ja nicht komplett bearbeitet und sollte somit nicht funktionieren.

Gruß Christian
 
Zuletzt bearbeitet:
...Mich verwundert allerdings, dass es dazu noch keine vernünftig funktionierende Lösung hier im AVM Forum gibt...
Darauf gibt es eine ganz einfache Antwort:
Es macht überhaupt keinen Sinn, eine funktionierende Fritz!Box über einen Telefonanruf neu zu starten!

Joe
 
Wenn man damit weiter nichts macht, stimmt das wohl. Aber wenn man dort zum Bsp. mit dynamischen DNS arbeitet und VPN, dann macht es schon Sinn ;-) .

Ich habe die aktuelle Firmware drauf und habe nur SSH und TinyProxy in der debug.conf eingetragen, sonst sind keine Mods mit der Box gemacht. Trotzdem verliert diese immer mal die Connection auf den DynDns Account, so dass ich die Box dann entweder neu starte muss, oder den DynDns Account auf der Fritzbox refreshe. Geht natürlich beides nur wenn ich zu Hause bin, daher meine Frage zu einem Reboot per Telefon.

Gruß Christian
 
Dann möchtest Du also die FB neu starten, weil das Update der IP-Adresse nicht funktioniert hat.
Stattdessen könntest Du untersuchen, warum es nicht funktioniert. Es gibt einige Threads hier im Forum, das es in letzter Zeit bei dyndns.com zu Problemen. Als Lösung wird vorgeschlagen, einen anderen Anbieter zu wählen.
Eine andere Möglichkeit wäre, ein skript zu schreiben, welches die Aktualisierung der IP-Adresse durchführt, und dieses durch einen Anruf zu auszuführen. (Wenn das denn möglich ist).
Eine andere Möglichkeit wäre, dass Du den Zeitpunkt der Zwangstrennung auf kurz vor 24:00 Uhr legst und Dir dann täglich eine Push-Mail (wir bei mir immer kurz nach 00:00 Uhr) zusenden lässt. Im Ereignisprotokoll ist auch die letzte IP-Adresse enthalten.
 
Das Update der IP-Adresse funktioniert eigentlich ganz gut. Ich hatte allerdings von Arbeit aus mal 2 VPN Verbindungen hergestellt (1x Smartphone + 1x Notebook) da ich diese nochmal konfigurieren musste, habe ich die VPN Verbindungen getrennt und habe diese dann in der Fritzbox gelöscht um danach eine neue VPN-Config einzuspielen, leider kam ich nicht mehr dazu, bin nicht mehr auf die Box gekommen. Den einen Tag hatte ich noch Glück, da war meine Freundin schon zu Hause und konnte die Fritzbox neu starten, danach lief wieder alles. Ein anderes Mal war niemand da und ich habe mich dann nach der Arbeit mal rangesetzt und habe gesehen, das zwar noch alles lief, aber beim DynDNS Account FEHLER stand, liegt dann wohl doch nahe, dass es mit der DynDNS Störung zu tun hat. Allerdings ist es immer dann passiert, wenn ich die VPN Nutzer auf der Box gelöscht habe. Damit ich ein Hintertürchne habe, wollte ich mir jetzt zumindest die Möglichkeit realisieren, die Box per Anruf neu zu starten.

Die Calltrough Funktion klappt leider nicht, da nach der Eingabe des 3ten Zeichens des Befehls für den Neustart, ein Besetzt-Ton zu hören ist. Ich habe darauf hin eine Kurzwahl angelegt, leider hat es auch damit nicht funktioniert.

Die Skripte von oben, werden wohl von der Logic her auch nicht funktionieren (ich habs noch nicht probiert) aber die Idee mit der Erneuerung der IP per Skript ist ganz gut ;) werd mich da mal versuchen und melde mich dann wieder. Danke für den Tip!


Gruß Christian
 
Callmonitor verwenden

Hallo , REBOOT geht einfach mit callmonitor und folgenden einträgen in der Konfiguration:


Code:
in:request <handnummer>  <isdn-msn>   mailmessage -s "HANDY_REBOOT_DER_FRITZ-BOX: $TIMESTAMP $SOURCE"
in:request <handnummer>  <isdn-msn>   reboot

Viel Erfolg
gruss Tom
 
Danke dattom, dass hört sich doch schonmal gut an. Jetzt muss ich nur noch schaun, wie ich den CallMonitor ohne MOD auf meine FB bekomme und dann hab ich endlich meinen Reboot ;) .


Gruß Christian
 
callmonitor

Nimm doch einfach FREETZ, ( da ist der callmonitor ja auch zu finden ), und bau dir ein möglichst einfaches freetzimage. Anleitung dazu gibts ja super gute auf der freetz homepage. Glaube das geht am schnellsten !!

viel Erfolg

gruss tom
 
So, Fritz!Box ist gefreetzt. Habe jetzt folgende Regel erstellt:

Code:
in:request ^0151123456$  ^030123456$   mailmessage -s "HANDY_REBOOT_DER_FRITZ-BOX: $TIMESTAMP $SOURCE"
in:request ^0151123456$  ^030123456$   reboot

Leider funktioniert der Reboot nicht.


Wenn ich allerdings im CallMonitor einen Testanruf durchführe, klappt es...

Code:
including /usr/lib/callmonitor/actions.d/config.sh
including /usr/lib/callmonitor/actions.d/dboxlcd.sh
including /usr/lib/callmonitor/actions.d/dial.sh
including /usr/lib/callmonitor/actions.d/mail.sh
including /usr/lib/callmonitor/actions.d/messages.sh
including /usr/lib/callmonitor/actions.d/musicpal.sh
including /usr/lib/callmonitor/actions.d/rc.sh
including /usr/lib/callmonitor/actions.d/roku.sh
including /usr/lib/callmonitor/actions.d/samsung.sh
>>> in:request ID=1 TIMESTAMP=02.01.12 17:07 SOURCE=0151123456 DEST=030123456 EXT=4 DURATION=16 PROVIDER=
[0] event detected:
  EVENT=in:request
  SOURCE='0151123456'
  DEST='030123456'
[0+] detailed event data:
  SOURCE_DISP='151123456'
  SOURCE_ENTRY='151123456; Mobilfunk*'
    SOURCE_NAME='151123456'
    SOURCE_ADDRESS='Mobilfunk*'
  DEST_DISP='30123456'
  DEST_ENTRY=''
    DEST_NAME=''
    DEST_ADDRESS=''
  ID=1
  EXT=4
  DURATION=16
  TIMESTAMP='02.01.12 17:07'
  PROVIDER=
[0:0] processing rule 'in:request' '^0151123456$' '^030123456$' 'mailmessage -s "HANDY_REBOOT_DER_FRITZ-BOX: $TIMESTAMP $SOURCE"'
[0:0] event 'in:request' matches pattern 'in:request'
[0:1] processing rule 'in:request' '^0151123456$' '^030123456$' 'reboot'
[0:1] event 'in:request' matches pattern 'in:request'
[0:0] parameter SOURCE='0151123456' matches pattern '^0151123456$'
[0:0] parameter DEST='030123456' matches pattern '^030123456$'
[0:0] SUCCEEDED
[0:0] ACTION: 'mailmessage -s "HANDY_REBOOT_DER_FRITZ-BOX: $TIMESTAMP $SOURCE"'
[0:1] parameter SOURCE='0151123456' matches pattern '^0151123456$'
[0:1] parameter DEST='030123456' matches pattern '^030123456$'
[0:1] SUCCEEDED
[0:1] ACTION: 'reboot'


Mache ich noch was falsch?


Gruß Christian
 
Die Regel
Code:
in:request ^0151123456$  ^030123456$   mailmessage -s "HANDY_REBOOT_DER_FRITZ-BOX: $TIMESTAMP $SOURCE"
in:request ^0151123456$  ^030123456$   reboot
Sollte doch eher so aussehen:
Code:
in:request 0151123456 123456 mailmessage -s "HANDY_REBOOT_DER_FRITZ-BOX: $TIMESTAMP $SOURCE"
in:request 0151123456 123456 reboot
:noidea:

Joe
 
Hi Joe,

danke für Deine Antwort. Ich hatte mich im CallMonitor Wiki etwas belesen:

http://freetz.org/wiki/packages/callmonitor/listeners#

Dort stand die Syntax so:

^0123456$ - nur genau die Nummer 0123456

Ich habe dann Deinen Code mal ausprobiert und hatte zuerst auch keinen Erfolg, dann ist mir aber aufgefallen, dass Du bei der MSN keine Vorwahl angegeben hast ;) und dat wars dann auch schon, funzt jetzt 1A. Auch mit ^ und $ :p . Warum es allerdings beim Testanruf mit der Vorwahl funktioniert hat, ist mir nicht klar.

Ich dank Dir vielmals :bier: !


Gruß Christian
 
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.