Fritz!Box API für PHP (inkl. Login-Sessions)

Hi, gibt es eine Möglichkeit das Gast-WLAN auch über eine PHP-Anwendung zu aktivieren ohne dafür den Umweg über die Console zu machen?
Ich würde gerne auf einem internen Webserver eine Seite bereitstellen die man einfach vom iPhone aufruft um das Gast-WLAN zu aktivieren.
Das ist einfacher als wenn man sich erst in die Fritzbox einloggen muss und man muss sich nicht extra die app, die es dafür im Appstore gibt, runterladen ;)
Grüße
 
Wenn Du das mitgelieferte Script für den WLAN nimmst, es auf einen PHP-fähigen Webserver ablegst (lokal oder über den remote-login auch im Internet) und dann aufrufst, musst Du nur die Parameterübergabe etwas umbauen ($_GET statt $args benutzen). Wenn Dir das alles allerdings nichts sagt, lass es lieber. :) Das ist hier keine Läuft-einfach-Lösung, etwas PHP-Grundwissen sollte vorhanden sein.

Aber ja, für solche Einsatzzwecke ist das selbstverständlich alles gedacht, daher in erster Linie PHP und nicht irgendwas spezifisches für die Kommandozeile.
 
Hi, super ! Das war das fehlende Puzzleteil. Funktioniert super.
Grüße

PS: Danke dass man hier nicht bei so einer simplen Frage mit RTFM-Antworten bombardiert wird :)
 
Freut mich. Für alle: Für diesen Einsatzzweck muss man die Parameter $mode und $wpa_key aus seiner Applikation heraus direkt setzen und den ganzen Bereich unterhalb von "// handle the CLI arguments or give a help message" entfernen.

Wenn man keine Apllikation drum herum bauen will und auch den WPA-Key nicht neu setzen will, könnte das so aussehen:

PHP:
$mode = ( isset($_GET['enable']) && $_GET['enable'] != 0 ) ? 1 : 0;
$wpa_key = false;

Und zack, 30 Zeilen gespart. :) Der Aufruf läuft dann mit http://webserver.whatever/fritzbox_guestwlan_on_off.php?enable=1 zum einschalten bzw. nur http://webserver.whatever/fritzbox_guestwlan_on_off.php oder http://webserver.whatever/fritzbox_guestwlan_on_off.php?enable=0 zum ausschalten.

Liebe Grüße,
Gregor
 
Hat schon jemand was gemacht um mit FritzOS 5.50 die Rumfumleitungen zu schalten? Da hat sich ja einiges geändert...
 
Zuletzt bearbeitet:
Ich habe hier

http://www.autoitscript.com/forum/topic/138989-fb-tools-manage-your-fritzbox-from-autoit/

meine neue AutoitVersion der FritzBox API gepostet.

Die Grundfunktionen wie _FB_Init(), _FB_PostForm(), _FB_GetRequest($fields), usw. sind weitgehend an die PHP Funktionen angelehnt und daher ist die Verwendung sehr ähnlich.

Außerdem sind diverse Funktionen enthalten (ich nenne Sie Tools) die bestimmte Aufgaben erledigen können. Einige davon sind im Moment noch nicht als PHP Version verfügbar, können aber leicht auch in PHP umgesetzt werden wenn man den Autoit Code als Vorlage hat. Sollte also jemand aktuell irgendwas in der PHP Version vermissen kann er sich gerne dort bedienen.

Unter anderem gibt es:

Func _FB_SetBoxname($boxname)
Func _FB_SetGuestWLAN($onoff, $wlankey)
Func _FB_TamDelMessage($tamnum, $msgnum)
Func _FB_SetDateTime()
Func _FB_SetWLAN($onoff = 0)
Func _FB_SetDECT($onoff = "on", $dect_pin = "****", $dect_eco = "off", $dect_eco_modi = 1, $dect_security = 0, $dect_problems = "off", $dect_power = "off")
Func _FB_GetDECT()
Func _FB_GetGuestWLAN()
Func _FB_SetTAM($aTAMs)
Func _FB_GetMSNs()
Func _FB_SetTAMState($tam = 0, $onoff = 0)
Func _FB_GetTAMState($tam)
Func _FB_Reboot()
Func _FB_ReconnectInternet()
Func _FB_Blacklist($number, $mode = 1, $kind = 'rufnummer')
Func _FB_UnBlacklist($node)
Func _FB_GetFonecallslist()
Func _FB_GetGuestLAN()
Func _FB_SetGuestLAN($onoff = 0)
Func _FB_Dial($number = "**9", $phone = "1")
Func _FB_Dial_Hangup()

Func _FB_SetDiversity($diversity = 0, $mode = 1)

Das einzige was mit aktuellem FritzOS 5.50 noch nicht geht (weil ich keine Zeit dazu habe) ist die Einstellungen der Rufumleitungen (SetDiversity).

Nochmal vielen Dank für die PHP Version an Spackmat und seine freundliche Unterstützung !

Allow2010
 
Gibt es wohl Bestrebungen, die Fritz!DECT 200 in die API zu integrieren?
 
ich habe keines...daher kann ich da nicht viel machen...wenn mir jemand eines leihen möchte kann ich es gerne (für PHP und Autoit) versuchen...
 
Würde Dir nen Firebug-Log (Netzwerk) helfen?
 
hmmm, eher nicht...ich weiss ja nichtmal wie der login da funktioniert, usw...sorry
 
Hallo Zusammen,

gibt es auch ein Script Beispiel um das WLAN (nicht das Guest WLAN), ein und wieder auszuschalten.

Edit:

Habe das ganze mittels Dial erledigt, die Routine habe ich für andere beigefügt.
Danke auch von mir an den Ersteller der Basis API.


Gruss R.
 

Anhänge

  • fritzbox_wlan_on_off.php.zip
    683 Bytes · Aufrufe: 78
Zuletzt bearbeitet:
Hallo ich habe alles mögliche versucht etwas zu erreichen.
Habe die fritzbox_api_php_v0.5.0b7.zip auf einen Webserver bei gigahost abgelegt
und die fritzbox_user.conf.php angepaßt:

$this->config->setItem('use_lua_login_method', true);
$this->config->setItem('fritzbox_ip', 'https://pc1.dyndns.org');
$this->config->setItem('remote_config_user', '[email protected]');
$this->config->setItem('remote_config_password', 'xxxxxx');
$this->config->setItem('username', '[email protected]');
$this->config->setItem('password', 'xxxxxx');
$this->config->setItem('logging', 'console'); // output to the console
$this->config->setItem('newline', (PHP_OS == 'WINNT') ? "\r\n" : "\n");
$this->config->setItem('foncallslist_path', __DIR__ . '\foncallsdaten.csv');

hoffe doch richtig.

Dann habe ich die fritzbox_get_foncallslist.php aufgerufen.
und bekomme die Meldung:
Response of initialization call /login_sid.lua in initSID was not xml-formatted.

Ich habe eine
7390 FRITZ!OS 05.50 Firmware 84.05.50 in Deutschland
und eine
7390 FRITZ!OS 05.51 Firmware 84.05.51 in Ausland mit Annex A+B

Egal bei welcher Box ich es versuche immer die gleiche Fehlermeldung
was bitte mache ich wo falsch.

Beide Boxen sind unter xxx.dyndns.org erreichbar.
 
Hi,

der Fehler bedeutet, dass kein valides XML File kommt. Vermutlich kommt eine Fehlerseite, die nicht interpretiert werden kann.

Als fritzbo_ip nur pc1.dyndns.org eingeben. Das https:// setzt die Library selbst. Wenn ich https://pc1.dyndns.org im Browser aufrufe kommt gar nichts. Das muss erstmal funktionieren.
Wenn Du das im Browser aufrufst, musst Du Dich mit [email protected] und xxxxxx im Benutzerinterface der Fritzbox anmelden können. Sicher, dass Du da als User eine E-Mail Adresse angelegt hast???

Also zunächst spielst Du mal Library und versuchst, per DynDNS auf Deine Box mit den konfigurierten Daten zuzugreifen. Wenn DU das schaffst, kannst Du es die Library versuchen lassen.
 
https://pc1.dyndns.org IST NATÜRLICH NICHT ECHT.
Aber kann mich nach Aufruf von https://xxxx.dyndns.org in der Fritzbox
mit meiner E-Mail-Adresse und den Passwort einloggen und alle Einstellungen tätigen.

Habe auch das https:// entfernt und kommt die selbe Meldung (dauert nur länger als mit https://):
Response of initialization call /login_sid.lua in initSID was not xml-formatted.

Ich hinterlasse gerne die IP hier wenn jemand diese benötigt.
 
Zuletzt bearbeitet:
Dann fällt mir gerade auch nichts mehr ein. Die Fehlermeldung kam bei mir, als ich mich beim DynDNS vertippt hatte und er somit gar nicht die Fritzbox erreicht hat.
Prüfe nochmal die Einträge bei DynDNS, User & PW im Script. Falls Dein Passwort Sonderzeichen hat, lege mal einen User unter "System -> FRITZ!Box Kennwort -> FRITZ!Box Benutzer" an mit Name/PW ohne Sonderzeichen, Zugang aus dem Internet erlaubt, und den Haken bei den relevanten Einträgen hat. Bei mir ist das Konfigurieren & Sprachnachrichten.
 
Habe neuen Benutzer ohne Sonderzeichen angelegt.
Aber der Fehler ist weiterhin der gleiche.
Wenn du den Zugang auch über Internet machst, kann du mal deine config Posten ?
 
sieht bei mir nicht anders aus:

<?php
####################### central API config ########################
# notice: you only have to set values differing from the defaults #
###################################################################

# use the new .lua login method in current (end 2012) labor and newer firmwares (Fritz!OS 5.50 and up)
$this->config->setItem('use_lua_login_method', true);

# set to your Fritz!Box IP address or DNS name (defaults to fritz.box), for remote config mode, use the dyndns-name like example.dyndns.org
$this->config->setItem('fritzbox_ip', 'xxx.dyndns.org');

# if needed, enable remote config here
$this->config->setItem('enable_remote_config', true);
$this->config->setItem('remote_config_user', 'yyy');
$this->config->setItem('remote_config_password', 'zzz');

# set to your Fritz!Box username, if login with username is enabled (will be ignored, when remote config is enabled)
$this->config->setItem('username', false);

# set to your Fritz!Box password (defaults to no password, will be ignored, when remote config is enabled)
$this->config->setItem('password', false);

# set the logging mechanism (defaults to console logging)
$this->config->setItem('logging', 'console'); // output to the console
#$this->setItem('logging', 'silent'); // do not output anything, be careful with this logging mode
#$this->setItem('logging', 'tam.log'); // the path to a writeable logfile

# the newline character for the logfile (does not need to be changed in most cases)
$this->config->setItem('newline', (PHP_OS == 'WINNT') ? "\r\n" : "\n");


############## module specific config ###############

# set the path for the call list for the foncalls module
$this->config->setItem('foncallslist_path', __DIR__ . '\ab.csv');
 
Verstehe ich auch nicht.
Habe sogar ein anderen Webserver Provider getestet.
Gleiches Problem.

Nach dem ich xampp installiert habe funktioniert es über localhost.
Dann habe ich die fritzbox_get_foncallslist.php aufgerufen
und die Anrufliste wurde erstellt.
Auch der Aufruf von fritzbox_ring_phone.php lies das Telefon klingeln.

Aber über das Internet geht es trotzdem nicht.
weiterhin die Meldung: Response of initialization call /login_sid.lua in initSID was not xml-formatted.
 
Zuletzt bearbeitet:
Lass Dir mal die Anwort per echo ausgeben. Evtl. wird der Aufruf falsch geroutet, die FB läßt keine Aufrufe von extern zu (muss aktiviert werden) oder es liegt ein anderer Fehler vor (z.B. fehlerhafte Übertragung, Kodierung etc.).
 
in welcher Zeile von fritzbox_get_foncallslist.php
sollte ich den ein Echo eingeben um eine Ausgabe zu erhalten ?
 

Zurzeit aktive Besucher

Statistik des Forums

Themen
246,149
Beiträge
2,246,980
Mitglieder
373,668
Neuestes Mitglied
Stripi
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.