Versteckte Features
From Fritz!Box
[edit] rc.user ab Firmware xx.03.14
Ab Version xx.03.14 gibt es eine neue Datei in /var/flash: debug.cfg. Der Inhalt dieser Datei wird beim Booten durch /etc/init.d/rc.S nach /var/rc.user geschrieben und dann ausgeführt. Somit kann man z.B. den telnetd starten, ohne die Firmware zu modifizieren, indem man folgendes in /var/rc.user schreibt (Wundert euch nicht über den leeren Inhalt der rc.user Datei. Einfach folgendes rein schreiben und dann in die "debug.cfg" sichern.):
#! /bin/sh /usr/sbin/telnetd -l /sbin/ar7login
und dann noch ins Flash sichert:
cat /var/rc.user > /var/flash/debug.cfg
Diese Aktionen kann man natürlich automatisiert aus einem Pseudo-Firmware-Update ausführen lassen.
Näheres zum starten von telnetd.
[edit] DDNS (Dynamisches DNS / DynamicDNS) im multid
Ab der Firmware *.03.22 kann das ganze auch übers Webinterface konfiguriert werden. Der folgende Text dient nunmehr der Dokumentation der Möglichkeiten, falls das in einem Spezialfall nicht ausreichen sollte :-)
Hinweis: wer DDNS manuell konfiguriert hat, sollte vor dem Update auf die *.03.22 die ddns{}-Sektion wieder löschen, damit von der Firmware die Default-Anbieter vorkonfiguriert werden.
Die Fritz!Box Firmware mit multid kann DDNS. Die Konfiguration besteht aus drei Listen innerhalb der Sektion ddns in der Datei /var/flash/ar7.cfg.
- types
- definiert URLs für die DDNS Registrierung, in der <username>, <pass>, <domain> und <ipaddr> ersetzt werden. Ausserdem gibt es noch die Tags <b64> und </b64>, die wohl zum Base64-encoden dienen (nicht getestet). Weiterhin werden <username> und <pass> für HTTP-Authentication verwendet.
- provider
- definiert weitere Parameter für die DDNS Registrierung wie Registrierungsserver, beschreibende URL, Check-Verzögerung und Intervall für forced updates
- accounts
- definiert die Zuordnung von User, Pass, Domain und Interface(?)
Beispieleintrag in der ar7.cfg für dyndns.org:
ddns {
types {
type = "dyndns";
url = "/nic/update?system=dyndns&hostname=<domain>&myip=<ipaddr>&wildcard=NOCHG";
}
provider {
name = "dyndns.org";
type = "dyndns";
livedelay = 0w;
touchtime = 30d;
server = "members.dyndns.org";
infourl = "http://www.dyndns.org/";
}
accounts {
enabled = yes;
domain = "test.dyndns.org";
username = "test"; // in der neuesten Firmware verschlüsselt, kann so nicht angegeben werden!
passwd = "test"; // dito
ddnsprovider = "dyndns.org";
iface = 0;
}
}
Mit dieser Konfiguration startet der multid die dyndns.org-Registrierung, sobald das dsl-Interface hochkommt. Es wird nicht per DNS-Query(!) geprüft, ob die Zuordnung geklappt hat, weil DynDNS laut policy nicht mag.
Detailierte Informationen über den DYNDNS Service und HowTo's sind unter https://www.dyndns.org/developers/ zu finden.
Enrik 07:01, 4 Nov 2004 (CET)
letze Änderung Enrik 08:38, 24 Dec 2004 (CET)
[edit] Liste der Anrufe
Man erhält eine Liste über das Webinterface. Die URL lautet:
oder
fritz.box/cgi-bin/webcm?getpage=../html/de/menus/menu2.html&var:lang=de&var:pagename=foncalls&var:menu=fon (bei der Fritz Box Fon Wlan 7050)
Bei einer neuen Firmware gibt es auch noch einen benutzerfreundlicheren Weg: http://fritz.box/html/anrufliste.html
Unklar ist: Warum ist das Datum falsch? Eventuell wird es durch ISDN bzw. durch den ersten Anruf per ISDN automatisch richtig gesetzt. Über welchen Zeitraum erstreckt sich die Liste, wird sie irgendwann automatisch gelöscht? Das Datum wird nach dem ersten Aufbau einer Internetverbindung gesetzt.Die Box holt sich dann Datum und Uhrzeit von einen Zeitserver. Nach einem Reboot scheint die Liste wieder leer zu sein.
Stellen kann man Datum/Uhrzeit jedenfalls per Telnet:
z.B.
date 101921122004
für den 19.10.2004 21:12 Uhr
Diese Uhrzeit sollte dann bis zum nächsten Reset stimmen (?).
--Sbx 22:25, 19 Oct 2004 (CEST)
For direct access to the .csv of the calls, the url is (at least in the 5012 and 7170) http://fritz.box/cgi-bin/webcm?getpage=../html/de/FRITZ!Box_Anrufliste.csv
-- Koos 12:00, 9 April 2009 (CEST)
[edit] Mitschneiden der IP-Pakete
Die Fritzbox kann DUMP-Dateien der übertragenen Daten bereitstellen. Die URL dazu lautet:
fritz.box/cgi-bin/webcm?getpage=../html/capture.html
oder [1]
Start startet den Datei-Download, Stop ... beendet ihn. Es sind folgende Ebenen verfügbar:
- Paketmitschnitt auf DSL-Ebene (Standard), angeboten wird die Datei fritzbox-vcc0.eth, enthalten sind die Protokolle llc, eth, pppoes, ppp und lcp beziehungsweise ip sowie die in IP enthaltenen Nutzdaten. Als Source wird die WAN-IP-Nummer der Box dargestellt.
- Paketmitschnitt auf DSL-Ebene (nur 2. PVC)
- Paketmitschnitt ohne DSL-Rahmen, angeboten wird die Datei fritzbox-ip.eth, enthalten ist das IP-Protokoll und dessen Nutzdaten (TCP/UDP, HTTP usw.). Es werden die internen IP-Nummern dargestellt.
Bei der FRITZ!Box Fon WLAN 7050 ab Firmware-Version 14.03.86 wird der Mitschnitt direkt als "extended tcpdump capture file" (Ethereal) geschrieben.--Ido tiphares 14:00, 17 Oct 2005 (CEST) --Hb 13:41, 14 May 2006 (CEST)
Bei älteren Boxen enthält die angebotene Datei fritzbox.eth den Traffic, der mit diesem Windows-Programm von Spongebob in ein Ethereal-fähiges Format umgewandelt werden kann. --Udo SW 01:57, 17 Oct 2004 (CEST) --[User: Pfeffer 23:57 18.11.2004] --spongebob 08:20, 10 Jan 2005 (CEST) --Hb 13:41, 14 May 2006 (CEST)
Da ich nach einiger Offlinezeit jetzt wieder online bin, würde ich raten, die jeweils aktuelle Version des Konverters von http://people.freenet.de/spongebob/avm2er.zip herunterzuladen. Die dort liegende aktuellste Version zeigt jetzt auch die Timestamps... --Sbx 21:37, 19 Oct 2004 (CEST)
Ich habe einen Konverter ins libpcap-Format geschrieben. Source gibt es hier. Zum Übersetzten benötigt man neben einer Standard-Linux-Entwicklungsumgebung noch libpcap, die aber bei den allermeisten Distributionen auch dabei sein sollte (Entwicklerpaket installieren, nicht nur die dynamische Library"). -- Enrik 12:01, 8 Nov 2004 (CET)
Man kann sich den dump auch in Live anschauen. Dazu muss man nur die Daten direkt an Wireshark (ehemals Ethereal) pipen, z.B. für eth0:
wget -O - http://fritz.box/cgi-bin/capture_notimeout\?start=Start\&snaplen=1600\&iface=eth0 | wireshark -i - -S -l -k -N nmtC --Js 13:08, 7 Mar 2007 (CET) (Leider meldet in der OpenSuSE 10.3 Beta der Wireshark "Unrecognized libpcap format") --Lowfyr 18:19 18 Sep 2007 (CET) - Das passiert genau dann wenn du ein Passwort gesetzt hast und nicht eingeloggt bist. Log dich in deinem Browser ein und probier es dann nochmal, jetzt sollte es gehen. -- Nexno
Auch unter Windows kann man live mitschneiden. Siehe hierzu NAT32. Diese Fähigkeit ist auch in der kostenlose version von NAT32 drin. -- Nat32support 21:02, 1 January 2009 (CET)
[edit] Statistik
[edit] Statistik ohne gesetzte Uhrzeit
Folgende URL:
fritz.box/cgi-bin/../cgi-bin/webcm?getpage=..%2Fhtml%2Finetstat.html
liefert etwa folgende Ausgabe (nicht mehr ab Firmware 14.04.15):
time unknown Total Gesamt Verbindungen 24 Verbindungszeit 1461967 Empfangene Bytes (Low) 2740437299 Empfangene Bytes (High) 0 Gesendete Bytes (Low) 404656004 Gesendete Bytes (High) 0 VoIP-Anteil Gesamt Empfangene Bytes (Low) 16108942 Empfangene Bytes (High) 0 Gesendete Bytes (Low) 15611605 Gesendete Bytes (High) 0 Einstellungen box:settings/Statistic/StartOfMonth 1 connection0:settings/VolumeRoundUp/Enabled 0 connection0:settings/VolumeRoundUp/Bytes 0 connection0:settings/Budget/Enabled 0 connection0:settings/Budget/Period 2 connection0:settings/Budget/VolumeLow 0 connection0:settings/Budget/VolumeHigh 0 connection0:settings/Budget/ConnectionTime 0 connection0:settings/ProviderDisconnectPrevention/Enabled 1
--Sbx 21:20, 19 Oct 2004 (CEST)
[edit] Statistik mit gesetzter Uhrzeit
Wenn die Zeit der Box gestellt wurde (man kann auch einen Festnetzanruf über ISDN führen, dann holt sich die Box die Zeit über das ISDN-Protokoll selbst) dann sieht die Statistik aus wie folgt:
time known
Total
Heute Gestern DieseWoche LetzteWoche DieserMonat LetzterMonat Gesamt
Verbindungen 2 11 13 0 13 0 46
Verbindungszeit 62011 864928 926939 0 926939 0 2660236
Empfangene Bytes (Low) 24056202 523993833 548050035 0 548050035 0 2238461627
Empfangene Bytes (High) 0 0 0 0 0 0 0
Gesendete Bytes (Low) 12733525 428294765 441028290 0 441028290 0 1283237006
Gesendete Bytes (High) 0 0 0 0 0 0 0
VoIP-Anteil
Heute Gestern DieseWoche LetzteWoche DieserMonat LetzterMonat GesamtVoIP
Empfangene Bytes (Low) 12771740 183970227 196741967 0 196741967 0 287421747
Empfangene Bytes (High) 0 0 0 0 0 0 0
Gesendete Bytes (Low) 11628691 170776581 182405272 0 182405272 0 269358075
Gesendete Bytes (High) 0 0 0 0 0 0 0
Einstellungen
box:settings/Statistic/StartOfMonth 1
connection0:settings/VolumeRoundUp/Enabled 0
connection0:settings/VolumeRoundUp/Bytes 0
connection0:settings/Budget/Enabled 0
connection0:settings/Budget/Period 2
connection0:settings/Budget/VolumeLow 0
connection0:settings/Budget/VolumeHigh 0
connection0:settings/Budget/ConnectionTime 0
connection0:settings/ProviderDisconnectPrevention/Enabled 1
--novize 19:35, 22 Oct 2004 (CEST)
[edit] Statistik/Monitoring aus den HTML-Daten für UNIXe & Linux
/usr/local/bin/log_fritzbox
#!/bin/bash
# f. Fritz!Box Fon
unset http_proxy
FRITZPASS="secretPassword"
# ACHTUNG: Passwort wird über eine URL übergeben - Sonderzeichen sind entsprechend zu codieren!
# login
curl -d "login:command/password=$FRITZPASS" \
-d "getpage=../html/de/menus/menu2.html" \
-d "errorpage=../html/index.html" \
-d "var:lang=de" \
-d "var:pagename=home" \
-d "var:menu=home" \
-s http://192.168.178.1/cgi-bin/webcm > /dev/null
# get data
lynx -dump -force_html <(
curl -d "getpage=../html/de/menus/menu2.html" \
-d "errorpage=../html/de/menus/menu2.html" \
-d "var:lang=de" \
-d "var:pagename=adsl" \
-d "var:errorpagename=adsl" \
-d "var:menu=internet" \
-d "var:pagemaster=" \
-d "time:settings/time=1155197483,-120" \
-s http://192.168.178.1/cgi-bin/webcm
) | perl -ane '
# print join "-",@F,"\n";
$F[0] =~ /Leitungskapazität/ && do { $P{LKD}=$F[2]; $P{LKU}=$F[3] };
$F[0] =~ /ATM-Datenrate/ && do { $P{ADD}=$F[2]; $P{ADU}=$F[3] };
$F[0] =~ /Nutz-Datenrate/ && do { $P{NDD}=$F[2]; $P{NDU}=$F[3] };
# $F[0] =~ /Latenzpfad/
$F[0] =~ /Latenz/ && do { $P{LTD}=$F[2]; $P{LTU}=$F[3] };
$F[0] =~ /Signal\/Rauschtoleranz/ && do { $P{SND}=$F[2]; $P{SNU}=$F[3] };
$F[0] =~ /Leitungsdämpfung/ && do { $P{LDD}=$F[2]; $P{LDU}=$F[3] };
END {
print join ",",
time,
$P{LKD}, $P{LKU},
$P{ADD}, $P{ADU},
$P{NDD}, $P{NDU},
# /Latenzpfad/
$P{LTD}, $P{LTU},
$P{SND}, $P{SNU},
$P{LDD}, $P{LDU},
"\n";
}
' >> /var/log/fritzbox.log
exit
crontab
# query fritzbox * * * * * /usr/local/bin/log_fritzbox
Ausgabeformat
Kommagetrennte Spalten
| 1. | Unix-Timestamp (Sekunden seit 1.1.1970 GMT) |
| 2. | Leitungskapazitaet Down |
| 3. | Leitungskapazitaet Up |
| 4. | ATM-Datenrate Down |
| 5. | ATM-Datenrate Up |
| 6. | Nutz-Datenrate Down |
| 7. | Nutz-Datenrate Up |
| 8. | Latenz Down |
| 9. | Latenz Up |
| 10. | Signal/Rauschtoleranz Down |
| 11. | Signal/Rauschtoleranz Up |
| 12. | Leitungsdaempfung Down |
| 13. | Leitungsdaempfung Up |
Beispiel
1156193223,15748,1460,15673,1183,14195,1072,7,0,9,11,19,14, 1156193283,15748,1460,15673,1183,14195,1072,7,0,9,11,19,14, 1156193342,15748,1460,15673,1183,14195,1072,7,0,9,11,19,14,
Darstellung mit gnuplot als CGI im Web
#!/usr/bin/perl -T
use strict;
$ENV{PATH}="/bin:/usr/bin";
# grobe sommerzeit
my $t_offset = ( (localtime(time))[8] == 1 )?(3600):(7200);
my $t_end = time + $t_offset;
my $t_start = $t_end - 86400*2 + $t_offset; # zwei Tage zurueck
my $range = qq ( [$t_start:$t_end][0:40] );
my $datasrc = qq( "<cat /var/log/fritzbox.log ; zcat /var/log/fritzbox.log.[12].gz" );
my $plotparam = join ",",
qq( $datasrc using (\$1+$t_offset):10 title "SNR down [db]" ),
qq( $datasrc using (\$1+$t_offset):11 title "SNR up [db]" ),
qq( $datasrc using (\$1+$t_offset):(\$2/1000) title "down [Mbit/s]" ),
qq( $datasrc using (\$1+$t_offset):(\$3/100) title "up [100Kbit/s]" ),
;
# Output a HTML header for the PNG image to follow
print "Content-type: image/png\n\n";
open GP,"|-","gnuplot" or die "can't exec gnuplot: $!";
print GP << "EOF";
set xdata time
set timefmt "%s"
set datafile separator ","
set style data lines
set bmargin 3
set terminal png size 1024,480
plot $range $plotparam
EOF
Sonstiges
- gnuplot 4.x
- curl
- lynx
- perl 5.x
- bash 2.x
Einzurichten ist noch ein logrotate, dass taeglich das Logfile rotiert.
Gilrihin 23:41, 21 Aug 2006 (CEST)
[edit] DHCP-Client per Webfrontend aktivieren
Um die FritzBox hinter einem anderen Router zu verwenden (z.B. nur für VoIP oder nur als WLAN-AP) muss der FritzBox ein anderes Default Gateway als das eigene bekannt gegeben werden. Relativ einfach geht das indem man den DHCP-Client der Fritzbox aktiviert welcher von einem DHCP-Server auf einem anderen Rechner bedient wird und Nameserver und Default Gateway erhält.
Wer es scheut die ar7.cfg zu editieren kann dies auch per Webfrontend tun. Dazu muss man lediglich die CSS Verarbeitung des Browsers deaktivieren. Das geht z.B. mit Firefox/Mozilla (im Menü View -> Page Style -> No Style) oder mit Opera (im Menü Extras -> Einstellungen -> Erweitert -> Inhalt,Darstellungen -> Darstellungsoptionen -> Haken bei 'Stylesheets der Seite' entfernen)
Auf der Seite Einstellungen -> Erweitert wird so die Option DHCP-Client aktiv sichtbar.
Dort einen Haken setzen. Sinnvollerweise den Haken beim DHCP-Server entfernen.
- Diese unsichtbare Option gibt es in den Firmware-Versionen für die Fritzbox 7050 nicht mehr.
- Alternativ: http://fritz.box/cgi-bin/webcm?getpage=../html/interfaces.html ?
Um VoIP der FritzBox zu nutzen, müssen folgende UDP-Ports forwarded werden: 5060, 7078 bis 7081.
[edit] Direktaufruf der Seiten bzw. der versteckten Features
Wer direkt ohne lange Anmeldung Daten von der Box erhalten möchte, braucht sich nur eine kleine HTML-Datei auf den lokalen Rechner zu legen.
Anstelle von $SITEPASSWORD solltet ihr natürlich euer Passwort eintragen. Leider wird dadurch das Passwort im Klartext gespeichert, aber wenn diese Datei lokal auf dem Rechner liegt gibt es ja Möglichkeiten diese vor neugierigen Blicken zu schützen.
[edit] Wahl einer Telefonnummer und vermitteln an Nebenstelle
<form method="POST" action="http://fritz.box/cgi-bin/webcm" target="_self" id="uiPostForm" name="uiPostForm"> <input type="hidden" name="login:command/password" value="$SITEPASSWORD" id="uiPostPassword"> <input type="hidden" name="telcfg:settings/UseClickToDial" value="1" id="uiPostClickToDial"> <input type="hidden" name="telcfg:command/Dial" value="$NUMMER" id="uiPostDial"> <input type="hidden" name="telcfg:settings/DialPort" value="$NEBENSTELLE" id="uiPostDialPort"> <input type="hidden" name="getpage" value="../html/de/menus/menu2.html" id="uiPostGetPage"> <input type="submit"> </form>
Anmerkung: $NEBENSTELLE kann interne ISDN-Nummer (z.B. 51), alle ISDN-Geräte (50) oder die analogen Ports (z.B. FON 1) sein. $NUMMER ist die zu wählende Telefonnummer.
Nur auf neuester Firmware getestet (14.03.85 auf 7050, 08.03.90 auf FBFon WLAN) Wie man die ausgehende MSN manipuliert, habe ich noch nicht herausgefunden. Wählregeln werden nicht ausser Kraft gesetzt.
Wie bekomme ich das jetzt zusammen mit Outlook hin? Bei AVM [2] gibt es nun offiziell einen TAPI Treiber für die FritzBox. Während der Installation wird abgefragt, auf welches interne Telefon (egal ob intern ISDN oder Analog) der initierte Anruf weitergegeben werden soll. Funktioniert spitze!
[edit] Starten des Capture-Log-Downloads
<html>
<body onload="document.getElementById('uiPostForm').submit();">
<form method="POST" action="http://fritz.box/cgi-bin/capture_notimeout" target="_self" id="uiPostForm">
<input type="hidden" id="uiPostVarName" name="start">
<input type="hidden" name="login:command/password" value="$SITEPASSWORD" id="uiPostPassword">
</form>
</body>
</html>
[edit] Stoppen des Capture-Log-Downloads
<html>
<body onload="document.getElementById('uiPostForm').submit();">
<form method="POST" action="http://fritz.box/cgi-bin/webcm" target="_self" id="uiPostForm">
<input type="hidden" name="getpage" value="../html/menus/menu2.html" id="uiPostGetPage">
<input type="hidden" name="errorpage" value="../html/index.html" id="uiPostErrPage">
<input type="hidden" name="var:menu" value="home" id="uiPostMenu">
<input type="hidden" name="var:pagename" value="home" id="uiPostPageName">
<input type="hidden" name="var:pagetitle" value=" " id="uiPostPageTitle">
<input type="hidden" name="var:menutitle" value="Home" id="uiPostMenuTitle">
<input type="hidden" id="uiPostVarName" name="capture:settings/stop">
<input type="hidden" name="login:command/password" value="$SITEPASSWORD" id="uiPostPassword">
</form>
</body>
</html>
Edit: Nach stoppen des Capture-Logs wird nun direkt zu Fritz-Home weitergeleitet, vorher landete man beim Login-Screen obwohl man angemeldet war, was doch ziemlich verwirrte.
[edit] Online-Zähler (erst ab XX.03.22)
<html>
<body onload="document.getElementById('uiPostForm').submit();">
<form method="POST" action="http://fritz.box/cgi-bin/webcm" target="_self" id="uiPostForm">
<input type="hidden" name="getpage" value="../html/menus/menu2.html" id="uiPostGetPage">
<input type="hidden" name="errorpage" value="../html/index.html" id="uiPostErrPage">
<input type="hidden" name="var:menu" value="internet" id="uiPostMenu">
<input type="hidden" name="var:pagename" value="inetstat" id="uiPostPageName">
<input type="hidden" name="var:pagetitle" value="Online-Zähler" id="uiPostPageTitle">
<input type="hidden" name="var:menutitle" value="Home" id="uiPostMenuTitle">
<input type="hidden" id="uiPostVarName" name="">
<input type="hidden" name="login:command/password" value="$SITEPASSWORD" id="uiPostPassword">
</form>
</body>
</html>
Diese Liste könnte nun beliebig fortgesetzt werden aber ich hoffe das Prinzip ist klar.
letze Änderung Kala McAlane 11:24, 28 Dec 2004 (CET)
[edit] Ab FirmwareVersion 09.03.65
Nach dem Firmwareupdate erschien bei mir immer nur noch eine weisse Seite. So funktioniert es wieder:
<html>
<body onload="document.getElementById('uiPostForm').submit();">
<form method="POST" action="http://fritz.box/cgi-bin/webcm" target="_self" id="uiPostForm">
<input type="hidden" name="getpage" value="../html/de/menus/menu2.html" id="uiPostGetPage">
<input type="hidden" name="errorpage" value="../html/index.html" id="uiPostErrPage">
<input type="hidden" name="var:lang" value="de" id="uiPostLang">
<input type="hidden" name="var:lang" value="de" id="uiPostLang">
<input type="hidden" name="var:pagename" value="inetstat" id="uiPostPageName">
<input type="hidden" name="var:menu" value="internet" id="uiPostMenu">
<input type="hidden" id="uiPostVarName" name="">
<input type="hidden" name="login:command/password" value="$SITEPASSWORD" id="uiPostPassword">
</form>
</body>
</html>
letze Änderung Holger 11:53, 14 Aug 2005 (CET)
[edit] onclick Methode / Ein- und Ausschalten der SIP-Accounts
Für diese Lösung braucht man das Tool wget[3] (ein Tool zum Herunterladen von Dateien in der Kommandozeile).
Download bei Heiko Herold's windows wget spot. http://xoomer.alice.it/hherold/
Bei Linux schon dabei ;)
wget -O NUL --user-agent="Mozilla/5.0" --post-data="login:command/password=$SITEPASSWORD" "http://fbox/cgi-bin/webcm?getpage=../html/de/menus/menu2.html" wget -O NUL --post-data="sip:settings/sip0/activated=1&sip:settings/sip0/ID=0&sip:settings/sip1/activated=0&sip:settings/sip1/ID=1" http://fbox/cgi-bin/webcm?getpage=../html/de/menus/menu2.html
Anmerkung:
Anstelle von $SITEPASSWORD solltet ihr natürlich euer Passwort eintragen.
Zuerst der Login und dann die Übergabe der Parameter.
Es sind 2 SIP-Accounts Vorhanden. Durch sip:settings/sip0/activated=1 wird der 1.Account aktiviert und durch sip:settings/sip1/activated=0 der Zweite deaktiviert.
Wichtig: es müssen immer für alle Accounts die Aktivierungen angegeben werden. Also wenn man 5. Accounts definiert hat müssen für sip0 bis sip4 alle Parameter (activated, ID) gesetzt werden.
Möglich sollten alle Features der FRITZ!Box sein. Getestet habe ich z.B. "Wahl einer Telefonnummer und vermitteln an Nebenstelle". Das sieht dann so aus:
wget -O NUL --user-agent="Mozilla/5.0" --post-data="login:command/password=$SITEPASSWORD" "http://fbox/cgi-bin/webcm?getpage=../html/de/menus/menu2.html" wget -O NUL --post-data="telcfg:settings/UseClickToDial=1&telcfg:command/Dial=$NUMMER&telcfg:settings/DialPort=$NEBENSTELLE" http://fbox/cgi-bin/webcm?getpage=../html/de/menus/menu2.html
Nur auf neuer Firmware getestet (FRITZ!Box Fon WLAN 7050, Firmware-Version 14.04.01) mit WGET Version 1.10.2
Hier noch eine Möglichkeit die Funktionen der FB von z.B. der dBox aus zu steuern.
Dafür ist das Tool NetCat[4] notwendig. Bei den neueren LinuxImages schon dabei. Für Windows gibt es hier den download: http://www.vulnwatch.org/netcat/
DBox Shellscript:
#!/bin/sh #-------------------------------------------------------------------- # Set SIP, ON or OFF, on FBF #-------------------------------------------------------------------- echo "POST /cgi-bin/webcm HTTP/1.0 Content-Type: application/x-www-form-urlencoded User-Agent: dBox2-status Host: fbox Content-length: 78 getpage=..%2Fhtml%2Fde%2Fmenus%2Fmenu2.html&login%3Acommand%2Fpassword=$SITEPASSWORD " | nc -i 1 -w 1 fritz.box 80 > /dev/null echo "POST /cgi-bin/webcm HTTP/1.0 Content-Type: application/x-www-form-urlencoded User-Agent: dBox2-status Host: fbox Content-length: 174 getpage=..%2Fhtml%2Fde%2Fmenus%2Fmenu2.html&&sip%3Asettings%2Fsip0%2Factivated=0&sip%3Asettings%2Fsip0%2FID=0&sip%3Asettings%2Fsip1%2Factivated=0&sip%3Asettings%2Fsip1%2FID=1 " | nc -i 1 -w 1 fritz.box 80 > /dev/null # NetCat der Parameter und Ausgabe unterdrücken
Durch "activated=0" werden beide SIP-Accounts deaktiviert.
Wichtig: Der Parameter "Content-length" muss an die Stringlänge der folgenden Variablen angepasst werden. Es sollte immer erst ein Login und dann erst das setzen der Variablen erfolgen.
--Boxbuchse 11:06, 27 Jun 2006 (CEST)
[edit] Dauerhafte Rufnummernunterdrückung im Festnetz (CLIR)
Bietet der Festnetzanbieter das Merkmal "fallweise Rufnummernunterdrückung (CLIR2)" an, kann man diese Unterdrückung bei jedem abgehenden Anruf über das Festnetz von der Fritzbox automatisch durchführen lassen, wodurch man effektiv eine "dauerhafte Rufnummernunterdrückung (CLIR3)" erhält. Dies ist insbesondere bei Telefonanbietern interessant, die letzteres nicht anbieten (z.B. UnityMedia).
Dazu ist die CLIR2-Keypad-Sequenz als Globale Anbietervorwahl für alle Festnetzrufe einzutragen. Leider erlaubt die Fritzbox-Oberfläche keinen Stern und keine Raute in dieser Vorwahl, so dass man sich mit folgendem Direktaufruf behelfen muss:
<form method="POST" action="http://fritz.box/cgi-bin/webcm" target="_self" id="uiPostForm" name="uiPostForm"> <input type="hidden" name="login:command/password" value="$SITEPASSWORD" id="uiPostPassword"> <input type="hidden" name="telcfg:settings/Routing/Provider0" value="$CLIR2CODE" id="uiPostProvider0"> <input type="hidden" name="getpage" value="../html/de/menus/menu2.html" id="uiPostGetPage"> <input type="submit"> </form>
Anmerkung: $SITEPASSWORD durch das Passwort für die Administrationsoberfläche ersetzen $CLIRCODE ist die Ziffernfolge, die Rufnummernunterdrückung für den nächsten Anruf aktiviert (z.B. Telekom: *31# oder UnityMedia: *31).
[edit] Branding
In der AVM Firmware sind verschiedene Brandings enthalten. Im wesentlichen wirkt sich das auf die Web Seiten des Admin Interfaces für die DSL und SIP Zugangsdaten aus. Dabei enthält die AVM Firmware immer alle Brandings, diese werden über eine Environment Variable im Flash gesteuert. Ältere Modelle kennen das web.de Branding, neuere nur 1und1 und avm. Am einfachsten kann man sich die Unterschiede in den Verzeichnissen /usr/www/1und1 und /usr/www/avm ansehen.
# ls -l /usr/www/ drwxrwxrwx 1 root root 34 May 18 13:27 1und1 drwxrwxrwx 1 root root 24 May 18 13:27 all drwxrwxrwx 1 root root 34 May 18 13:27 avm drwxrwxrwx 1 root root 62 May 18 13:27 cgi-bin lrwxrwxrwx 1 root root 9 May 18 13:27 html -> /var/html # # cat /proc/avalanche/env | grep firmware firmware_version 1und1 firmware_info 14.03.62
Das Setzen des env Eintrags geht über ADAM2 FTP Interface, wie hier beschrieben:
In manchen (neueren/älteren?) Firmware-Versionen findet sich der Eintrag firmware_version in einem anderen Device, nämlich in /proc/sys/urlader/environment. Dann kann man mit Hilfe folgender Zeile das Branding entfernen:
echo "firmware_version avm" > /proc/sys/urlader/environment
[edit] Branding entfernen bei einer 7050 ohne Telnet
ACHTUNG: Es gibt Firmwaren, die enthalten gar kein avm-Branding! Bitte erst im nachlesen. Nacher ist es vielleicht zu spät!
1. Folgende Files laden und lokal am PC Speichern
fritz_as_avm_newer.tar Quelle: http://www.ip-phone-forum.de/showthread.php?t=203652&highlight=fritz_as_avm_newer.tar fritz.box_fon_wlan_7050.04.31.recover-image.exe Quelle: ftp://ftp.avm.de/fritz.box/fritzbox.fon_wlan_7050/x_misc/fritz.box_fon_wlan_7050.04.31.recover-image.exe fritz.box_fon_wlan_7050.14.04.33.image Quelle: ftp://ftp.avm.de/fritz.box/fritzbox.fon_wlan_7050/firmware/fritz.box_fon_wlan_7050.14.04.33.image
2. fritz_as_avm_newer.tar als Pseudo-Image in die FB laden (Anleitung: http://www.ip-phone-forum.de/showthread.php?t=203652)
Wenn das noch nicht reicht ... Firmware-Recovery durchführen mit:
3. fritz.box_fon_wlan_7050.04.31.recover-image.exe ausführen (Anleitung unter: http://www.telefonsparbuch.de/tmpl/calc/telephone/lcr/info/fritzbox_recover_howto.htm oder http://www.router-faq.de/index.php?id=fb&fb=recover)
4. fritz.box_fon_wlan_7050.14.04.33.image (letzte verfügbare Version) in die FB laden
[edit] Fritz.Box Fon 5050 hinter einem Router
Die Features der Fritz Box 5050 sind wirklich bestechend.
Mein einziges Problem: Ich habe keinen DSL Anschluss, sondern hänge hinter einem Router an einem Kabelmodem. Die ATA kann das reine Routing, hat jedoch sonst reduzierte Features.
Dennoch hat sich ein Blick auf die ATA Firmware gelohnt, findet man da doch unter ein features namens ' pppoeiface = "eth0"; '.
Mit der gepatchten telnet firmware also rein in die Box und im ar7.cfg unter /var/flash in der Rubrik 'dslglobalconfig' eingetragen und dann noch zu guter Letzt das interface 'eth0' und 'dsl' mit dhcpclient Fähigkeiten versehen.
Seither läuft die Box bei mir WAN-mässig über eth0 (so wie's scheint perfekt ohne timeout der voip leitungen und inkl. ntp zeit. Hier hatte ich nämlich vorher die ganze zeit probleme).
Ach ja: Die Box muss im dslmode_bridge laufen, sonst sucht sich dsl zu tode...
Viel Spass!
[edit] ENUM-Lookup
Die FBF 7050 kann ENUM-Lookups machen (mit gewisssen Einschränkungen), von Haus aus ist diese Funktion aber ausgeschaltet, weil sie wohl noch experimentell ist. Zum Aktivieren per telnet einloggen und
nvi /var/flash/voip.cfg
aufrufen, runterscrollen bis
enum_support_enabled = no; enumdomains = "e164.arpa", "e164.org";
und no in yes ändern. In der Variable enumdomain sind die Registrare in der Reihenfolge, wie sie abgefragt werden, eingetragen.
Das Feature wird mit FW 08.03.73 prinzipiell vom Webinterface aus einschaltbar, ist allerdings per IF-statement in /usr/www/all/html/de/fon/sipoptionen.* ausgeklammert (OEM == avme).
Bei mir musste erst das Folgende in die Datei /var/flash/debug.cfg eingetragen werden, damit der Knopf unter Telefonie -> Internettelefonie -> Erweiterte Einstellungen sichtbar wurde:
sed "s/avme/avm/g" /usr/www/all/html/de/fon/sipoptionen.html > /var/tmp/sipoptionen.html
sed "s/avme/avm/g" /usr/www/all/html/de/fon/sipoptionen.js > /var/tmp/sipoptionen.js
chmod 444 /var/tmp/sipoptionen.html
chmod 444 /var/tmp/sipoptionen.js
mount -o bind /var/tmp/sipoptionen.html /usr/www/all/html/de/fon/sipoptionen.html
mount -o bind /var/tmp/sipoptionen.js /usr/www/all/html/de/fon/sipoptionen.js
s. hierzu: http://www.ip-phone-forum.de/showthread.php?t=91983 ]
[edit] Registrierung an Asterisk beschleunigen
Wenn man von Hand in der /var/flash/ar7.cfg für alle VOIP-Accounts (bei neueren (?) Firmwaren steht die Konfiguration der SIP-Accounts in /var/flash/voipd.cfg), die direkt einen Asterisk-Server ansprechen (z.B. dus.net), folgendes schreibt ...
no_register_fetch = yes;
... geht die Registrierung auch dort ohne große Verzögerung vonstatten.
(Hintergrund: Asterisk, zumindest 1.0.x, 1.2.x noch nicht getestet, ignoriert REGISTERs ohne Contact:-Header (fetch). Die Fritz!Box kann das zwar ausgleichen, indem sie nach einem Timeout dann mal einen REGISTER ohne fetch probiert, aber das dauert eben etwas.)
[edit] 1und1 Login: versteckte ID
Im 1&1 Branding sendet die FBF neben dem normalen Login String "1und1/31x-xxxx@online.de" noch einen Hash über die User-ID: "1und1/(A079xxxxx)31x-xxxx@online.de".
Dieser Hash wird offenbar auch vom technischen Support von 1&1 ausgewertet, offensichtlich können die 1&1 Mitarbeiter dies in ihrem System sehen. Zitat aus einer Support-Mail: "In unserem System wurde diese, als die, an sie ausgelieferte Box angezeigt." (sic!)
Das Zitat belegt, daß die Seriennummer der Fritz!Box übertragen bzw. gespeichert wird, das Zitat hat aber mit einem Hash nichts zu tun. Bei einem Hash handelt es sich lediglich um eine Zusammenfassung von Daten um zu prüfen, ob die Daten korrekt übermittelt wurden. Im Rahmen eines Login einen Hash des Username zu übermitteln wäre allerdings von fragwürdiger Sinnhaftigkeit, da ein Übermittlungsfehler lediglich einen Anmeldefehler verursachen würde, die Anmeldung müsste dann wiederholt werden. Gleiches würde auch dann eintreten, wenn der Hash falsch wäre. Rein theoretisch und ohne die Daten gesehen zu haben könnte ich mir deshalb vorstellen, daß nicht ein Hash, sondern eine wie auch immer geartete Seriennummer übertragen wird.
Zusätzlich beachtet die FBF die Einstellung der Option username_prefix_after_auth_failure = "D"; diese bewirkt, dass bei einem abgelehnten Login der nächste Versuch mit einem Usernamen erfolgt mit vorangestelltem D. Das wird von der 1&1 benutzt wenn ein Kunde das Zwangsportal nicht wünscht. Details: http://eckes.org/article.php?sid=334
[edit] WDS für FB WLAN (WLAN Repeater aktivieren)
Wichtig: Bitte zuerst die neueste Firmware aufspielen. Damit wird diese Funktion meistens erst zugänglich.
Eine ausführliche Anleitung zur Konfiguration von WDS findet man im IP-Phone-Forum Wiki und - weil es kein verstecktes Feature mehr ist - auch bei AVM.
Der Link zur Konfigurationsseite
Bei der internationalen Version (Annex A, z.B. Österreich) gibts nur die englische Oberfläche, also:
Update 4.4.06: Ist seit der Beta version (FB 7050) 14.04.03-xxxx offiziell im WLAN Menü enthalten
[edit] "Bier holen" mit FRITZ!Box Fon WLAN
Weil AVM eine Menge neue Funktionen per Software Update nachlieferte, schrieb jemand in einem Forum aus Spaß, es wäre schön, wenn die Box jetzt auch noch Bier holen könnte. Nun kann man durch Eingabe von #96*6* an einem an die Box angeschlossenen ISDN-/modernen Analog-Telefon den Text "Bier holen" auf dem Display des Telefons abrufen (vorausgesetzt das Telefon unterstützt die Anzeige solcher Texte).
Noch ein kleiner Zusatzgag ... hab mich fast krankgelacht, nachdem ich das doch gleich mal ausprobieren mußte ... je nach Uhrzeit kommt auch schon mal die Antwort "Kein Bier vor 4" ...
[edit] LEDs ansteuern
Eine relevante Header-Dateien im Quelltext ist dazu u.a:
kernel_ohio-8mb_bild/kernel/linux-2.4.17_mvl21/include/asm-mips/avalanche/ledapp.h
aus diesem tar-Archiv: ftp://ftp.avm.de/develper/opensrc/fritzbox-source-files-current.tar.gz
weitere Informationen http://wiki.ip-phone-forum.de/gateways:avm:howtos:mods:leds
[edit] LED 1 - Power
echo 1,1 >/var/led LED ausschalten
echo 1,2 >/var/led langsames Blinken
echo 1,3 >/var/led 2 * langsam Blinken, dann kurze Pause
echo 1,4 >/var/led (und höhere Werte) durchgehend Leuchten
[edit] LED 2 - DSL
echo 2,1 >/var/led LED ausschalten
echo 2,2 >/var/led durchgehend Leuchten
echo 2,3 >/var/led (und höhere Werte) schnelles Blinken
[edit] LED 3 - LAN
echo 3,1 >/var/led LED ausschalten
echo 3,2 >/var/led (und höhere Werte) durchgehend Leuchten
[edit] LED 4 - WLAN
echo 4,1 >/var/led LED ausschalten
echo 4,2 >/var/led durchgehendes Leuchten
echo 4,3 >/var/led schnelles Blinken
echo 4,4 >/var/led (und höhere Werte) langsames Blinken
[edit] LED 7 - Info
echo 7,1 >/var/led LED ausschalten
echo 7,2 >/var/led durchgehend Leuchten
echo 7,3 >/var/led (und höhere Werte) lässt sie wie beim Firmware-Update blinken
[edit] LED 13 - Festnetz-Telefon
echo 13,1 >/var/led LED ausschalten
echo 13,2 >/var/led durchgehendes Leuchten
echo 13,3 >/var/led schnelles Blinken
echo 13,4 >/var/led langsames Blinken
[edit] LED 14 - Internet-Telefon
echo 14,1 >/var/led LED ausschalten
echo 14,2 >/var/led durchgehendes Leuchten
echo 14,3 >/var/led schnelles Blinken
echo 14,4 >/var/led langsames Blinken
[edit] TelnetD per Telefon steuern
In der aktuellen Firmware x.04.01 hat AVM den Boxen die Möglichkeit beschert, nach dem Bierholen gleich konzentriert im Kern zu arbeiten...
#96*7* Telnet aktivieren
#96*8* Telnet deaktivieren
vom Telefon aus.
Bisher wird in zahlreichen Foren nur auf die ISDN-Fähigen Boxen (5050, 7050, 7170) Bezug genommen, jedoch kann auch meine einfache FBF alle neuen Funktionen ausser "Bier holen" bzw. das Bier mit "Bier erst nach 4" verbieten...
Angezeigt werden funktionierende Funktionen mit einem langen Quittungston, nicht funktionierende - wie beispielsweise das Bier holen bei der einfachen FBF ohne ISDN - mit einem Quittungston mit kurzen Intervallen...
--malkov2 20:03, 02 Mar 2006 (CET)
Categories: Telnet | FRITZ!Box | TAPI

