WLAN per Skript ein/ausschalten

sr2831

Neuer User
Mitglied seit
27 Okt 2007
Beiträge
3
Punkte für Reaktionen
0
Punkte
0
Hallo Forum,

ich hab ein kleines Problem mit dem Callmonitor, welcher bei Anruf von extern das WLAN ein- oder auschalten soll.
die im Wiki angegeben Lösung mit config wlan <on/off> funktioniert gar nicht:

/var/mod/root $ config wlan
-sh: config: not found
/var/mod/root $

Die Variante mit /etc.init.d/rc.net wlanstart funktioniert nur wenn das WLAN zuvor mittel rc.net wlanstop ausgeschaltet wurde.
Wurde das WLAN mittel Schalter an der FritzBox oder durch die Nachtschaltung deaktiviert erscheint folgende Meldung:

[0:1] ACTION: '/etc/init.d/rc.net wlanstart'
[0:0] event 'in:request' matches pattern 'in:request'
[0:0] parameter SOURCE='88xxx' matches pattern '88xxx'
[0:0] parameter DEST='03xxx' does NOT match pattern '07xxx'
[0:0] FAILED
MAC WLAN: 00:15:0C:C2:31:0C
WLAN is not enabled
ifconfig: SIOCGIFFLAGS: No such device
ifconfig: SIOCGIFFLAGS: No such device
ifconfig: SIOCGIFFLAGS: No such device
ifconfig: SIOCGIFFLAGS: No such device
ifconfig: SIOCGIFFLAGS: No such device
ifconfig: SIOCGIFFLAGS: No such device
[0:1] listener failed with an exit status of 1


FRITZ!Box Fon WLAN 7170, Labor-Version 29.04.40ds26-15.2

Wer weiss wie ich das WLAN auch nach Auschalten mittels Taster wieder per Telefonanruf aktivieren kann ? :confused:

Vielen Dank !
 
hm... ok wenn das so stimmt was du schreibst würd mich die antwort auch interessieren... da ich was ähnliches vor hab...
 
Das Verhalten ist mir auch bekannt, eine Lösung kann ich leider nicht anbieten.

@sr2831
Wo steht das denn im Wiki?

MfG Oliver
 
hm... und mal angenommen ich mach bevor ich es mit /etc/init.d/rc.net wlanstart wieder anschalte noch mal mit /etc/init.d/rc.net wlanstop "richtig" ? vll änder das was an den strtup setting (welche das/wo auch immer die sind).

EDIT: ja gut hab das versucht aber geht nich... sonst noch jem. ne idee ?
 
Zuletzt bearbeitet:
sr2831 schrieb:
/var/mod/root $ config wlan
-sh: config: not found
/var/mod/root $
config ist eine Aktion des Callmonitors und kein Shellskript, deshalb kannst du das so nicht von der Kommandozeile aufrufen.

Um dem Problem näher zu kommen müsstet ihr mal untersuchen, ob sich was an der wlan.cfg ändert, wenn man den Schalter betätigt.
Dann müsst ihr schauen, ob sich das wlan aktivieren lässt indem man das Modul und die benötigten Daemons selbst (bzw. per Skript) lädt...

MfG Oliver
 
Hallo sr2831,

ich habe folgende Lösung im Einsatz, dazu muß folgendes erstellt werden:

0. Die Schritte in 1. machst du erstmalig in der Konsole.

1. In der debug.cfg folgend Zeilen hinzufügen, damit das Script einen Reboot überdauert:

mknod /var/flash/wlan_call c $tffs_major $((0x23))
cat /var/flash/wlan_call > /var/flash/wlan_call.sh
chmod 722 /var/flash/wlan_call.sh

(Kommentar: wlan_call wird bei jedem boot in die Datei wlan_call.sh gebracht und ausführbar gemacht.)

2. Folgende Zeilen in die vorerst leere Datei wlan_call einfügen (mit nvi editieren). Im Script "passwort" mit deinem Passwort der Fritzbox Weboberfläche ersetzen:


#wlanrestart <1 oder 0> 1=einschalten 0=ausschalten

#Weboberflaeche Freischalten

export REQUEST_METHOD="POST"
export REMOTE_ADDR="127.0.0.1"
export CONTENT_TYPE="application/x-www-form-urlencoded"
POST_DATA="login:command/password=passwort"
export CONTENT_LENGTH=${#POST_DATA}
echo -n "$POST_DATA" | /usr/www/html/cgi-bin/webcm > /dev/null

#wlan stoppen oder starten

if [ "$1" = "wlanrestart" ]
then export REQUEST_METHOD="POST";
export REMOTE_ADDR="127.0.0.1";
export CONTENT_TYPE="application/x-www-form-urlencoded";
POST_DATA="wlan:settings/ap_enabled=$2";
export CONTENT_LENGTH=${#POST_DATA};
echo -n "$POST_DATA" | /usr/www/html/cgi-bin/webcm > /dev/null;
sleep 3;
echo /etc/init.d/rc.net wlanreload
fi

3. In der Listeners des Callmonitors folgende zwei Zeilen einfügen:
#in:request ^SrcRufnr ^DestRufnr1 /var/flash/wlan_call.sh wlanrestart 1
#in:request ^SrcRufnr ^DestRufnr2 /var/flash/wlan_call.sh wlanrestart 0
Mit der 1 wird WLAN gestartet, mit 0 WLAN gestoppt.

Das Script unter 2. ist in Anlehnung an das callback Script von Andre http://www.ip-phone-forum.de/showthread.php?t=90971 erstellt worden.

Das Script unter zwei ändert den Status des normalerweise in der Weboberfläche aktivierbaren/deaktivierbaren WLANS und übernimmt durch das wlanreload die gemachte Einstellung.

Gruß,

Feliz
 
Zuletzt bearbeitet:
ich nehm mal an das

#in:request ^SrcRufnr ^DestRufnr1 /var/flash/wlan_call.sh wlanrestart 1
#in:request ^SrcRufnr ^DestRufnr2 /var/flash/wlan_call.sh wlanrestart 0

in die callmonitor config kommt

aber besteht die möglickeit das dass ganze auch ohen dsmod bzw callmonitor funktioniert ?
 
Wie willst du denn das wlan starten, wenn nicht über den Callmonitor?

MfG Oilver
 
Hallo milkpirate,

ja, die zwei Zeilen kommen in die Listeners-Datei, die zum callmonitor gehört. Habe in dem Beitrag unter 3. ergänzt, dass die Listeners zum callmonitor gehört.

aber besteht die möglickeit das dass ganze auch ohen dsmod bzw callmonitor funktioniert ?
Ohne ürgend eine Veränderung an der FBF 7170 wirst du nicht zum Ziel kommen, aber bestimmt kann man über einen USB-Stick ein Programm mit der debug.cfg starten, welches bei bestimmten Aktionen dann Befehle wie die unter 3. ausführt.

Vielleicht kannst du den callmonitor isoliert ohne den dsmod über einen USB-Stick verwenden?

Gruß,

Feliz
 
Hi, bin gerade zufällig auf diesen Thread gestoßen: Ein paar Worte von mir zum Callmonitor und "config wlan":
  • Das, was in dem wlan_call.sh von oben gemacht wird, ist ziemlich genau das, was auch bei "config wlan [on|off]" passiert.
  • "config wlan" hatte den oben genannten Fehler (falsche Argumentanzahl), der aber in Version 1.10.2 behoben ist.
  • "config wlan ..." ist eine Aktion des Callmonitor und funktioniert als solche nur in der Listeners-Datei (ist intern als Shell-Funktion realisiert). Zum Testen von der Kommandozeile muss man ein "callaction" voranstellen, z.B.
    Code:
    callaction config wlan on
Ich hoffe, das hilft weiter.

Andreas
 
@olistudent
ich wollte das mit einer abwandlung von den WOC script machen.

@Feliz
ja dann brauch ich ne statische callmonitor bin.

hast du da vll was olistudent ?
 
Callmonitor ohne dsmod geht nicht, soweit ich weiß.

MfG Oliver
 
ja gut dann hat sich das wieder erledigt... :-(

EDIT: nein hat sichs nich... ich hab das ursprünglische WOC script auf das hier abgewandelt:

Code:
WLANSIP=SIP0
WLANTEL=0123456789

cat > /var/tiwlan7 << 'END'
trap "" SIGCHLD
while read line
do
case ${line} in
IncomingCall:*)
caller=${line#*caller: \"}
caller=${caller%%\"*}
called=${line#*called: \"}
called=${called%%\"*}
echo Angerufende Nummer = $called  > /var/wlan-on-call.info
echo Nummer vom Anrufer = $caller >> /var/wlan-on-call.info
END

echo "if [ "$"called = $WLANSIP ]; then"  > /var/telwlan
echo "  if [ jeder = $woltel ]; then"  >> /var/telwlan
echo "    [COLOR="Red"]/var/wlanoc[/COLOR]"  >> /var/telwlan
echo "  fi"  >> /var/ttelwlan
echo "  if [ "$"caller = $WOLTEL ]; then"  >> /var/telwlan
echo "    [COLOR="Red"]/var/wlanoc[/COLOR]"  >> /var/telwlan
echo "  fi"  >> /var/telwlan
echo "fi"  >> /var/telwlan
chmod +x /var/telwlan

if [ -x /var/telwlan ]
  sleep 4
  then
  killall -15 telefon
  sleep 4
  killall -9 telefon
  rm -f /var/run/telefon.pid
  sleep 4
  telefon a127.0.0.1 | /var/telwlan &
fi

man schreibt dann einfach

Code:
#wlanrestart <1 oder 0> 1=einschalten 0=ausschalten

#Weboberflaeche Freischalten

export REQUEST_METHOD="POST"
export REMOTE_ADDR="127.0.0.1"
export CONTENT_TYPE="application/x-www-form-urlencoded"
POST_DATA="login:command/password=passwort"
export CONTENT_LENGTH=${#POST_DATA}
echo -n "$POST_DATA" | /usr/www/html/cgi-bin/webcm > /dev/null

#wlan stoppen oder starten

if [ "$1" = "wlanrestart" ]
then export REQUEST_METHOD="POST";
export REMOTE_ADDR="127.0.0.1";
export CONTENT_TYPE="application/x-www-form-urlencoded";
POST_DATA="wlan:settings/ap_enabled=$2";
export CONTENT_LENGTH=${#POST_DATA};
echo -n "$POST_DATA" | /usr/www/html/cgi-bin/webcm > /dev/null;
sleep 3;
echo /etc/init.d/rc.net wlanreload
fi

in das wlanonc script. könnte das so funktionieren ?
und wie schaut das aus wenn ich dazu noch LRC laufen hab welches ja auch die ausgabe von telefon a127.0.0.1 per pipe bekommt ?

kann zwei instanzen von telefon laufen ?
oder wenn nicht wie kann man die ausgabe von telefon simultan an zwei andere progamme pipen ?
 
Zuletzt bearbeitet:
...
oder wenn nicht wie kann man die ausgabe von telefon simultan an zwei andere progamme pipen ?
Das funktioniert z.B. so:
Code:
echo hallo | tee file | sed -e 's/h/l/';cat file | sed -e 's/h/p/';rm file
Ist ein wenig umständlich. Vielleicht gibt es auch bessere Lösungen. Wie man mit tee direkt in ein anderes Kommando piped, hab ich noch nicht herausgefunden (wenn's überhaupt geht ohne FIFOs).

Ich bin auf diesen Thread gestoßen, weil ich eine Lösung suche, das WLAN per Anruf ein-/auszuschalten - und zwar ohne ds-mod. Leider hab ich noch nicht ganz durchgeblickt. Geht das denn jetzt bei jemandem?
 
Kostenlos!

Statistik des Forums

Themen
247,210
Beiträge
2,263,848
Mitglieder
375,704
Neuestes Mitglied
fraserarturas