Jump to content

FritzBox-Anruferliste 1.81


SnowHead

Empfohlene Beiträge

Ich habe eine Fritzbox Cable 6340 mit FritzOS 06.00 von KabelBW.

 

Hier schlägt die Erkennung von FritzOS 06.00 fehl, es wird als OS-Version .06.00 erkannt (entscheidend ist der Punkt vor 06.00), und infolgedessen der Code von Version <"05.50" ausgeführt. Deshalb funktioniert das Skript nicht ohne Änderung.

 

Die Eingabe von

http://fritz.box/jason_boxinfo.xml

im Webbrowser bringt folgende Ausgabe:

<j:BoxInfo>
    <j:Name>FRITZ!Box 6340 Cable (kbw)</j:Name>
    <j:HW>187</j:HW>
    <j:Version>115.06.00</j:Version>
    <j:Revision>27126</j:Revision>
    <j:Serial>246511219474</j:Serial>
    <j:OEM>kabelbw</j:OEM>
    <j:Lang>de</j:Lang>
    <j:Annex>Kabel</j:Annex>
    <j:Lab/>
    <j:Country>049</j:Country>
    <j:Flag>crashreport</j:Flag>
</j:BoxInfo>

 Wie kann man die Zeile

# OS-Version ermitteln
Version=`wget -O- http://fritz.box/jason_boxinfo.xml | grep Version | awk '{match($0,/>[^<>]+</); print substr($0,RSTART+4,5)}'`

abändern, dass Version 0.060 ausgeführt wird und es bei anderen Fritzboxen auch noch funktioniert?

 

Wenn ich nämlich den Code für die Version <"05.50" auskommentiere (obererer Codeteil), funktioniert das Skript.

#if [ "$Version" \< "05.50" ]
#then
#	# Challenge abholen
#	ChallengeXML=`wget -O - "http://fritz.box/cgi-bin/webcm?getpage=../html/login_sid.xml" 2>/dev/null| grep Challenge`
#	Challenge=`echo $ChallengeXML | awk '{match($0,/>[^<>]+</); print substr($0,RSTART+1,RLENGTH-2)}'`
#
#	# login aufbauen und hashen
#	CPSTR="$Challenge-$Passwd"
#	if [ "$BOXTYPE" = "dbox2" ]; then
#		asc2uni $CPSTR  > /tmp/anrufer.md5
#	else
#		echo -n $CPSTR | iconv -f ISO8859-1 -t UTF-16LE > /tmp/anrufer.md5
#	fi
#	MD5=`md5sum /tmp/anrufer.md5 | sed -e s/' '.*$//`
#	RESPONSE="$Challenge-$MD5"
#	POSTDATA="login:command/response=$RESPONSE&getpage=../html/de/menus/menu2.html"
#
#	# login senden und SID herausfischen
#	SID=`wget -O - --post-data="$POSTDATA" "http://fritz.box/cgi-bin/webcm" 2>/dev/null| grep "name=\"sid\"" | head -1 | awk '{match($0,/value="[^"]+"/); print substr($0,RSTART+7,RLENGTH-8)}'`
#
#	# refresh der daten auslösen
#	wget -O /dev/null "http://fritz.box//cgi-bin/webcm?sid=$SID&getpage=..%2Fhtml%2Fde%2Fmenus%2Fmenu2.html&errorpage=..%2Fhtml%2Fde%2Fmenus%2Fmenu2.html&var%3Apagename=foncalls&var%3Aerrorpagename=foncalls&var%3Amenu=home&var%3Apagemaster=&var%3Aactivtype=pppoe&var%3AtabInetstat=0&var%3Aweckernr=&logger%3Asettings%2Ffilter=2"
#
#	# CSV runterladen
#	wget -O /tmp/fb_anrufliste.csv "http://fritz.box/cgi-bin/webcm?sid=$SID&getpage=..%2Fhtml%2Fde%2FFRITZ%21Box_Anrufliste.csv" 2>/dev/null
#else
	wget -O /tmp/anrufer.tmp http://fritz.box/login_sid.lua
	# SID testen
	SID=`cat /tmp/anrufer.tmp | awk '{match($0,/SID>[^<>]+</); print substr($0,RSTART+4,RLENGTH-5)}'`
	if [ "$SID" = "0000000000000000" ]
	then
		# Challenge abholen
		Challenge=`cat /tmp/anrufer.tmp | awk '{match($0,/Challenge>[^<>]+</); print substr($0,RSTART+10,RLENGTH-11)}'`
		# login aufbauen und hashen
		CPSTR="$Challenge-$Passwd"
		if [ "$BOXTYPE" = "dbox2" ]; then
			asc2uni $CPSTR  > /tmp/anrufer.md5
		else
			echo -n $CPSTR | iconv -f ISO8859-1 -t UTF-16LE > /tmp/anrufer.md5
		fi
		MD5=`md5sum /tmp/anrufer.md5 | sed -e s/' '.*$//`
		RESPONSE="$Challenge-$MD5"
		GETDATA="?response=$RESPONSE"
		wget -O /tmp/anrufer.sid http://fritz.box/login_sid.lua$GETDATA 
		SID=$(sed -n '/.*<SID>\([^<]*\)<.*/s//\1/p' /tmp/anrufer.sid)
#	fi

bearbeitet von DrStoned
Link zu diesem Kommentar
Auf anderen Seiten teilen

@SnowHead,

 

Ich habe mich gewundert, dass bei meiner Fritzbox Cable ausgehende Anrufe nicht angezeigt wurden. Nach Analyse der Datei /tmp/fb_anrufliste.csv habe ich festgestellt, dass bei meiner Fritzbox ausgehende Anrufe mit Typ 4 angezeigt werden. Das liegt wahrscheinlich daran, dass alle Anrufe über Internet rausgehen. Deshalb habe ich die Zeile 78 von

sed -n '/^[123];/p' /tmp/fb_anrufliste.csv | head -n 16 | sed -e s/'^1;'/'~S'/ -e s/'^2;'/'~R'/ -e s/'^3;'/'~G'/ | while read line; do

auf

sed -n '/^[1234];/p' /tmp/fb_anrufliste.csv | head -n 16 | sed -e s/'^1;'/'~S'/ -e s/'^2;'/'~R'/ -e s/'^3;'/'~G'/ -e s/'^4;'/'~G'/ | while read line; do

geändert.

 

Probiert die Änderung bei Euren Fritzboxen aus. Bei meiner Box habe ich keinen Typ 3 gefunden.

bearbeitet von DrStoned
Link zu diesem Kommentar
Auf anderen Seiten teilen

  • Admin

@DrStoned

 

In unserer Datei dagegen gibt es keinen Typ 4. Deine Änderung hat also keine negativen

Auswirkungen auf die anderen Boxen. Ich habe das Script im ersten Post angepaßt. Danke

für die Ergänzung. Vermutlich haben dann auch über Internet kommende Anrufe eine andere

Kennung. Mal schauen, ob man irgendwo eine Beschreibung der einzelnen Typen findet.

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • Admin

@Markham

 

Ja, Danke und Sorry. Das kommt davon, wenn man zig verschiedene Versionen auf

PC und Box rumgeistern hat. Ich habe die aktuelle Version jetzt vorn angehängt und

gleichzeitig eine Versionierung eingeführt, damit das nicht wieder vorkommt.

Link zu diesem Kommentar
Auf anderen Seiten teilen

@SnowHead

 

Hallöchen ich möchte auch wieder mal mit meinem Senf zu etwas beitragen, ich hab hier eine Fritte 7390 mit Firmware 6.01.

Das Plugin funktioniert auf meiner Neo wie es soll.


 Vermutlich haben dann auch über Internet kommende Anrufe eine andere

Kennung. Mal schauen, ob man irgendwo eine Beschreibung der einzelnen Typen findet.

 

Dazu konnte ich in der Fritzbox-Hilfe folgendes finden:

FRITZ!Box 7390-Hilfe - Anrufliste.pdf

 

Allerdings ist es mir nicht gelungen die Typen 3,5 und 6 zu provozieren, so das sie in der Anrufliste erscheinen.

Vermutlich gibt es auch keine Unterschiede für Inet, ISDN oder Analog Anrufe.

Eventuell kannst du ja damit etwas anfangen.

 

Ich hätte da noch eine Idee/Wunsch wäre es möglich das Plugin so zu erweitern das einem nur

die Anrufe für eine bestimmte MSN angezeigt werden? Ich habe einen ISDN Anschluss und möchte

nicht das mir die Anrufe die für meinen Bruder bzw. meine Mutter sind angezeigt werden.

 

Gruß urkrossi

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • Admin

@urkrossi

 

Danke für die Info. Ich habe die Bedeutung von Typ 3 in der neueren Firmware berücksichtigt.

Vorn hängt eine Version an, in welcher Du eine auszufilternde MSN für die Liste eintragen

kannst. Das jetzt schon menügesteuert zu machen war ich für diesen einen Parameter aber

zu faul.

Link zu diesem Kommentar
Auf anderen Seiten teilen

@SnowHead,
nach einer etwas längeren Auszeit bin ich auch zum testen gekommen.
Einsatz mit einer FRITZ!Box Fon WLAN 7390 auf einer NEO mit einen erweiterten CST Image 2.12, nach ergänzung des Image mit der fehlenden iconv sowie anlegen der Verknüpfungen kann ich auch Erfolg vermelden :D
Jedoch nicht mit den Aufruf via Flex-Menü sondern nur via eines extra angelegten Shellstarters

 

Anruferliste.so

#!/bin/sh
#########################
# Anruferliste abfragen #
#########################
#
#
/var/plugins/anrufer
exit 0

Anruferliste.cfg

type=2
name=Anruferliste
desc=Fritzbox Anruferliste abfragen
needfb=1
needrc=1
needvtxtpid=0
needoffsets=0

via Flex mit den Startbefehl "ACTIONFritzBox-Anruferliste,anrufer" klappte es nicht so wie gewünscht, ich hatte nach den Aufrufen des Skriptes und anschliesendn Beenden mit O.K. ein wiederholtes aufpoppen des Anzeigefensters, ca. 5-10x. Mit den Minishellstarter klappt es wie es soll :wub:

 

Einen Erweiterungsvorschlag hätte ich zum Skript habe ich auch noch :D

Bitte prüfe ob es möglich ist im Anzeigefenster auf Wunsch nach weiteren Anrufen zurück zugehen, den aktuell werden, bei mir zumindest , nur die letzten 16 Anrufe angezeigt.

Also an Stelle von O.K. für das beenden noch einen Schalter für weiter Anrufe und ggfl. O.K. anders benennen z:b. Exit oder so was in der Form.

 

Gruss

bazi

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • Admin

@Bazi98

 

Probier mal, die Liste mit Exit statt OK zu verlassen. Die Standardimages gehen leider

etwas schlampig mit den noch anstehenden Fernbedienungsbefehlen nach Beenden

eines Plugins um und interpretieren die gern noch ein zweites Mal.

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 2 weeks later...
  • 2 months later...

Das Plugin ist nun für beide Boxen auch online installierbar.

 

Für die Dbox sollte vorher auf "Input V1.39" aktualisiert werden, da das benötigte Passwort schon während der Installation

eingegeben werden kann und die Eingabe mit der alten Version fehlschlägt.

  • Like 1
Link zu diesem Kommentar
Auf anderen Seiten teilen

  • Admin

Bazi98 hatte weiter oben um eine Blättermöglichkeit gebeten. Das hatte ich überlesen. Sorry!

In der vorn angehängten Version 1.2 kann jetzt auch geblättert werden.

 

 

@Markham

 

Danke für die Installationsroutine und das Hochstellen der 1.1. Leider ist meine Linux-Distri momentan

nicht zu benutzen (hat mir den Austausch der Windows-Platte gegen eine SSD übelgenommen).

Wärst Du bitte so nett und packst auch die 1.2 ein? Danke!

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 4 months later...

Fritzbox-Anruferliste 1.3

 

steht online und offline zur Verfügung (offline im 1. Beitrag)

 

  • Anpassung für erweiterte Versionsausgaben der Fritzboxen

 

Bitte auch Messagebox updaten, da diese jetzt auch Umlaute im Utf8-Format darstellen kann.

 

Viel Spaß :D

  • Like 1
Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 4 weeks later...
  • 3 weeks later...
  • 1 month later...

Klasse Arbeit, dass Plugin funktioniert super auf meiner Cooli mit einer 7170.

Hatte allerdings erst ein kleines Problem mit der Anzeige, die war bei jedem Aufruf leer. Ich hatte bei der Installation die Nr. der T-Net-Box gelöscht, also leer gelassen. Kaum hatte ich die Nummer von Hand wieder in das Konfigfile eingetragen war auch die Liste wieder gefüllt.

In /tmp/anrufer.csv steht bei fehlender T-Net-Box auch nichts drin.

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • Wer ist Online   0 Benutzer

    • Keine registrierten Benutzer online.
×
×
  • Neu erstellen...