Wake on Call ohne SSH

Wenn Du Dir etwas Mühe mit der Rechtschreibung geben und das Programm in CODE-Tags setzen würdest, würde ich Dir meine Vermutung mitteilen.
 
PC startet nach Herunterfahren wieder

:spocht:So, jetzt hab ich es einigermaßen kapiert, wie man eine .Image erzeugt. Ein Update damit klappt jetzt ohne Probleme. Doch scheinbar hab ich einen Fehler im Script (der eigentlich doch aus der gekürzten Fassung meines Pseudo-Images von TheConstruct besteht). Ich hab also jetzt das aktuelle Firmware drauf, vorher mit einem Recover alles Fremde entfernt. Danach das folgende Script draufgeladen.

Code:
#!/bin/sh

##################################################################################
# install results:
##################################################################################
export INSTALL_SUCCESS_NO_REBOOT=0
export INSTALL_SUCCESS_REBOOT=1
export INSTALL_WRONG_HARDWARE=2
export INSTALL_KERNEL_CHECKSUM=3
export INSTALL_FILESYSTEM_CHECKSUM=4
export INSTALL_URLADER_CHECKSUM=5
export INSTALL_OTHER_ERROR=6
export INSTALL_FIRMWARE_VERSION=7

##################################################################################

echo "install: check and install new firmware ..."
LED_DEVICE=/proc/led_mod/led
if [ ! -f /proc/led_mod/led  ] ; then
  LED_DEVICE=/var/led
  echo "set led: ${LED_DEVICE}"
fi

##################################################################################
# start info led flashing
##################################################################################
echo "set INFO led to blink (modul=7, state=4)"
echo 7,4 > ${LED_DEVICE}
cat > /var/tmp/debug.cfg << 'EOF'
#!/bin/sh

LED_DEVICE=/proc/led_mod/led
if [ ! -f /proc/led_mod/led  ] ; then
  LED_DEVICE=/var/led
  echo "set led: ${LED_DEVICE}"
fi
# start internet phone led flashing
echo "set internet phone led to blink (modul=14, state=3)"
echo 14,3 > ${LED_DEVICE}

# check kernel version
KERNEL_VERSION=`uname -r | grep 2.6`
if [ -z "${KERNEL_VERSION}" ]
then
  KERNEL_VERSION="linux24"
  ETHERWAKE="etherwake"
else
  KERNEL_VERSION="linux26"
  ETHERWAKE="ether-wake"
fi

# init busybox var
BUSYBOX="/bin/busybox"

# wait to be able to interrupt in case of emergency
sleep 120

major=`grep tffs /proc/devices`
tffs_major=${major%%tffs}
#write calllog
cat > /var/calllog << 'ENDCALLLOG'
#!/bin/sh

CALLER=${1}
LINE=${3}
if [ -z "${LINE}" ]
then
  LINE=${2}
fi
if [ "${LINE}" = "ISDN" ]
then
  LINE=${2}
fi
if [ -z "${LINE}" ]
then
  LINE=${1}
  CALLER=""
fi

sh /var/tmp/parse_telefon.sh "${LINE}" "${CALLER}" &

ENDCALLLOG

# save /var/calllog
mknod /var/flash/calllog c $tffs_major $((0x77))
cp /var/calllog /var/flash/calllog

# write dummy callmessage script
echo "#!/bin/sh" > /var/tmp/callmessage.sh
# make it executable
chmod +x /var/tmp/callmessage.sh

# write WakeOnCall script
cat > /var/tmp/woc.sh << 'ENDWOC'
#!/bin/sh

pcaller="0000000000"
pcalled="SIPX"

# read params
caller=$2
called=$1

# DEBUG: gibt alle anrufe aus
# echo "${called} - ${caller}" > /var/tmp/blubb

# check if woc is permitted for caller and called
if [ "${pcaller}" = "all" ]
then
  if [ "${pcalled}" = "all" ]
  then
    /var/tmp/startpc
  elif [ "${pcalled}" = "${called}" ]
  then
    /var/tmp/startpc
  fi
elif [ "${pcaller}" = "${caller}" ]
then
  if [ "${pcalled}" = "all" ]
  then
    /var/tmp/startpc
  elif [ "${pcalled}" = "${called}" ]
  then
    /var/tmp/startpc
  fi
fi

ENDWOC

# make it executable
chmod +x /var/tmp/woc.sh

# write parse_telefon script to file
cat > /var/tmp/parse_telefon.sh << 'ENDPARSETEL'
#!/bin/sh

trap "" SIGCHLD

prefix=
caller="$2"
called="$1"
called=${called%%#*}

# normalize caller
case ${caller} in
  0049*)
    caller=0${caller#*0049}
  ;;
  49????????*)
    caller=0${caller#*49}
  ;;
  [1-9]????????*)
    caller=0${caller}
  ;;
  [1-9]*)
    caller=${prefix}${caller}
  ;;
esac

# exec woc.sh
/var/tmp/woc.sh ${called} ${caller} &
# exec callmessage.sh
/var/tmp/callmessage.sh ${called} ${caller} &

ENDPARSETEL

# make it executable
chmod +x /var/tmp/parse_telefon.sh

# load etherwake

# CONFIGURATION

# Etherwake
# MAC address
wolmac="00:00:00:00:00:00"
# interface to use for WOL
# intf = std  - ata
# eth0 = LAN1 - WAN
# eth1 = LAN2 - LAN1
wolinterface="eth0"

# CONFIGURATION END

# create simplified WOL script
echo "${BUSYBOX} ${ETHERWAKE} -i ${wolinterface} ${wolmac}" > /var/tmp/startpc

# make it executable
chmod +x /var/tmp/startpc

# stop internet phone led flashing
echo 14,1 > ${LED_DEVICE}

EOF

# write debug.cfg
cat /var/tmp/debug.cfg > /var/flash/debug.cfg

# delete /var/tmp/debug.cfg
rm /var/tmp/debug.cfg


# reboot
exit $INSTALL_SUCCESS_REBOOT

# (c) 2006 - 2009 Andreas Baginski


Wenn ich nun den PC herunterfahren, wird er unmittelbar danach wieder gestartet. Das passiert nicht, wenn ich vorher das LAN-Kabel zur Fritzbox ausstöpsle. Also muss irgendwas von der FB kommen, was den Neustart bewirkt. ABer scheinbar auch nur für eine kurze Zeit. Denn wenn ich den Neustart am Einschalter des PCs abwürge, bleibt er aus. Ein WOC funktioniert danach auch, also stimmen dahingehend die SIP und die Anrufernummer.

Ist da irgendwo im Code ein Bug der für den Neustart verantwortlich ist oder kennt jemand das Problem ebenfalls und die Ursache? Danke!
 
Kann man die Aktivitäten der FB auslesen

Gibt es eine Möglichkeit zu checken, ob (m)eine FB beim Herunterfahren des PCs diesem ein Signal schickt?:confused:
 
Und wie bzw. wo muss ich das installieren

Auf dem PC ja wohl eher nicht, denn bis auf das Bios dürfte ja zum Zeitpunkt des Neustarts noch nichts geladen sein. Ergo müsste es auf die FB. Geht das denn und wenn ja, wie?
 
Ja, es geht auf der Box. Mit Freetz kann man tcpdump für die Box erstellen. Man muß nicht unbedingt Freetz auf die Box bringen, um dieses Programm auf der Box zu nutzen.
 
@tighty, schau dir mal die anderen Post's in Bezug auf die Schreibweise an! Fällt dir dabei ein Unterschied zu deiner auf? Wenn ja, dann ändere das in Zukunft, in dem du genau diese Schreibweise verwendest!

Und noch was: geh in deinen Post#25 - Ändern - markiere das Script und klicke auf
code.gif
Code-Tags!
 
Was ist wenn ohne Script

der PC nach dem Runterfahren (also das Ding geht definitiv erstmal komplett aus) nicht mehr neu gestartet wird. Muss das Problem dann nicht an meinem Script liegen bzw. gelegen haben?

Gibts ansonsten eine einfache Anleitung, wie man tcpdump auf die Box bringt und startet, so dass ich prüfen kann, ob der PC nach dem Runterfahren von der FB irgendein Signal bekommt?
 
tighty, du solltest dich so langsam mit den Forumregeln auseinandersetzen. Dort steht u.a. drin, dass du keine Vollzitate anlegen sollst, nicht unmittelbar mehrere Beiträge hintereinander schreiben sollst und dich zumindest einigermaßen an geltende Rechtschreibregeln der jüngeren Vergangenheit (dieses Jahrhundert) halten solltest. Mit der Bitte um Beachtung
Frank
 
...sagen wo der fehler liegt?
Lies doch bitte mal die Forumsregeln und, ganz wichtig:
Reparier mal deine Shift-Tasten,
damit zumindest die Gross-/Kleinschreibung wieder funktioniert. :-Ö
Dann solltest du auch wieder vernünftige Antworten bekommen.

Joe
 
Wie erstellt man ein Image, wenn kein Windows vorhanden ist? Denn die die Site The-construct ist ja leider Offline. Gibt es dazu eine Alternative?
 
Erledigt!!

Wie erstellt man ein Image, wenn kein Windows vorhanden ist? Denn die die Site The-construct ist ja leider Offline. Gibt es dazu eine Alternative?

Mit Boardmitteln habe ich festgestellt, wie ich dieses Image erstellen kann.
 
Hallo zusammen.

Ich bin neu hier und würde auch gern woc auf meine 7170 zaubern. Wie kann ich das Skript mit Voip-Nummern auf meine Box laden? Bin leider ein Noob in Sachen Linux.

Telnet habe ich schon aktiviert. Meine Firmware-Version ist 29.04.80.

Bitte um Hilfe.

Danke schon mal.
 
Zuletzt bearbeitet:
Kann mir den wirklich niemand mal schnell die Befehle posten?Ich weiß nicht wie ich diese Calllog Datei ändern kann und wie ich eine SIP-Nummer eingeben soll.
 
Wenn du dich per Telnet auf die Box verbunden hast, kannst du so etwas in die Datei /var/flash/calllog hineinschreiben:
Code:
cat << 'ENDE' > /var/tmp/callog
##
#
# hier jetzt alles das, was in die Datei reinsoll,
# siehe auch Beschreibung auf der Seite davor
# Einfach im Editor bearbeiten
# und unter die obrige Zeile (cat ... ) 
# reinpasten
# 
##
ENDE
# die Zeile hiervor darf wirklich nur genau ENDE enthalten, 
# kein Leerzeichen davor oder dahinter !!

# jetzt nochmal den Inhalt kontrollieren:
cat /var/tmp/callog

# wenn alles korrekt ist, ins Flash kopieren
cat /var/tmp/callog > /var/flash/calllog

Die Zeilen mit dem # sind natürlich Kommentare, die musst du nicht abschreiben ;-)

Jörg
 
Ungefähr so hier?

Code:
cat << 'ENDE' > /var/tmp/callog
##
#!/bin/sh
# CALLOG für Wake on Call
caller1=0123456789			#Hier soll jetzt meine Handynummer rein?
caller2=0123456780
case "$2" in
     555555)				#Soll da meine SIP-Nummer ohne VOrwahl hin?
        if [ "$caller1" = "$1" -o "$caller2" = "$1" ]; then
             echo "Booting PC1"
             /usr/bin/ether-wake -i eth0 00:1A:1A:1A:1A:1A	#Hier die MAC - ist klar
        else
             echo "Unberechtigter Anrufer, nämlich: $1"
        fi
            ;;
     555556)
        if [ "$caller1" = "$1" -o "$caller2" = "$1" ]; then
            echo "Booting PC2"
            /usr/bin/ether-wake -i eth0 00:1B:1B:1B:1B:1B
        else
             echo "Unberechtigter Anrufer, nämlich: $1"
        fi
            ;;
     555557)
        if [ "$caller1" = "$1" -o "$caller2" = "$1" ]; then
             reboot
        else
             echo "Unberechtigter Anrufer: $1" 

        fi    
      *)
             echo "Falsche MSN"
             ;;
esac
exit 0
# 
##
ENDE
# die Zeile hiervor darf wirklich nur genau ENDE enthalten, 
# kein Leerzeichen davor oder dahinter !!

# jetzt nochmal den Inhalt kontrollieren:
cat /var/tmp/callog

# wenn alles korrekt ist, ins Flash kopieren
cat /var/tmp/callog > /var/flash/calllog
 
Zuletzt bearbeitet:
Kann mir mal bitte jemand sagen ob das so richtig ist? Ich will nicht irgendwas falsches in die Box schreiben.
 
Versuch es ;-)
Auf den ersten Blick sieht das ganz o.k. aus (ich würde zur Sicherheit noch die Umlaute ["nämlich"] entfernen).

Lass es nach /var/flash/calllog schreiben und teste. Groß "kaputt machen" kannst du damit nicht, es wird halt höchstens nicht funktionieren ;-)

Jörg
 
Code:
: not foundlog: line 2:
: not foundg: line 5:
: not foundg: line 9:
: not foundg: line 12:
: not foundg: line 19:
: not foundg: line 24:
: not foundg: line 28:
: not foundg: line 31:
/var/calllog: line 54: syntax error: end of file unexpected (expecting "then")
Apr 17 19:54:19 telefon[415]: SIGCHLD received!

leider passiert das hier :-(
 
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.