Laden der Anrufliste aus der Fritzbox

Eigene oder Gemeinschaftsprojekte, Klassen, Module, Codeschnipsel, HowTos, ...
Crabman
Foriker
Beiträge: 21
Registriert: So 6. Jan 2019, 13:31
Kontaktdaten:

Laden der Anrufliste aus der Fritzbox

Beitrag von Crabman » Sa 6. Feb 2021, 08:49

Hier ein Mini-Projekt, mit dem man die Anrufliste einer Fritzbox laden und die letzten eingehenden Anrufe auflisten kann. Es werden Rufnummer, Name (sofern im Fritzbox-Telefonbuch hinterlegt) und der Zeitpunkt angezeigt.

Getestet wurde es mit einer Fritzbox 7390 mit Fritz-OS-V6.85, für die lediglich ein Passwort für das Login erforderlich ist (kein Username). Die Abwicklung des Log-ins über Challenge- und Session-IDs ist für den einen oder anderen vielleicht interessanter als der Zugriff auf die Anrufliste selbst.

Ich würde mich freuen, wenn sich jemand melden würde, der den Abruf der Fritzbox-Anrufliste per Gambas-SOAP-Request hinbekommen hat.

CM
Dateianhänge
Fritzbox_Call_List_0.0.2.tar.gz
Mini-Projekt zum Abruf der Anrufliste aus der Fritzbox
(20.8 KiB) 47-mal heruntergeladen

gambasso
Foriker
Beiträge: 1136
Registriert: Sa 17. Mär 2012, 09:55
Kontaktdaten:

Re: Laden der Anrufliste aus der Fritzbox

Beitrag von gambasso » Mi 17. Mär 2021, 19:08

moin,

bei meiner FB7590 geht es nicht, kommt nichts zurück.
Kennst Du dich dami auch aus?
Gruss

Crabman
Foriker
Beiträge: 21
Registriert: So 6. Jan 2019, 13:31
Kontaktdaten:

Re: Laden der Anrufliste aus der Fritzbox

Beitrag von Crabman » Do 18. Mär 2021, 16:28

Moin,
Ich kenne mich mit der 7590 leider nicht aus. Zeigt die App Fehlermeldungen?

Erhältst Du über folgendes Konsolenkommando eine Challenge-ID von der FB:
curl 'http://fritz.box/login_sid.lua?'
Die wird per XML-Datei zurück gemeldet und sieht beispielsweise so aus:
<?xml version="1.0" encoding="utf-8"?><SessionInfo><SID>0000000000000000</SID><Challenge>579965f6</Challenge><BlockTime>0</BlockTime><Rights></Rights></SessionInfo>

Ist die Anrufliste aktiviert? https://service.avm.de/help/de/FRITZ-Bo ... anrufliste

gambasso
Foriker
Beiträge: 1136
Registriert: Sa 17. Mär 2012, 09:55
Kontaktdaten:

Re: Laden der Anrufliste aus der Fritzbox

Beitrag von gambasso » Sa 20. Mär 2021, 18:54

moin,

bei curl 'http://fritz.box/login_sid.lua?' kommt der Text:

<?xml version="1.0" encoding="utf-8"?><SessionInfo><SID>0000000000000000</SID><Challenge>2a5071a5</Challenge><BlockTime>0</BlockTime><Rights></Rights><Users><User>fritz6311</User></Users></SessionInfo>

sadt Dir das was?
Gruss

Crabman
Foriker
Beiträge: 21
Registriert: So 6. Jan 2019, 13:31
Kontaktdaten:

Re: Laden der Anrufliste aus der Fritzbox

Beitrag von Crabman » Di 23. Mär 2021, 14:08

Deine FB hat Dir eine Challenge-ID zurück gegeben. Das funktioniert also schon mal.
Als nächsten Schritt würde ich prüfen, was von der Programmzeile

Shell "curl --data " & Chr$(34) & "response=" & sChallenge & "-" & MD5 & "&username=" & Chr$(34) & Chr$(32) & "http://fritz.box/login_sid.lua" To s

in der IDE-Konsole zurück gegeben wird, indem ich unter die Zeile ein

Print "Rückgabe:"; s

einfüge. Das müsste eine XML-Datei sein, in der sich eine SID befindet. Das sieht bei mir als Beispiel so aus:

log:<?xml version="1.0" encoding="utf-8"?>
<SessionInfo><SID>9112d7c6ca4c5339</SID><C
hallenge>465cbdfb</Challenge><BlockTime>0<
/BlockTime><Rights><Name>Dial</Name><Acces
s>2</Access><Name>App</Name><Access>2</Acc
ess><Name>HomeAuto</Name><Access>2</Access
><Name>BoxAdmin</Name><Access>2</Access><N
ame>Phone</Name><Access>2</Access><Name>NA
S</Name><Access>2</Access></Rights></Sessi
onInfo

Wenn die Rückgabe eine SID enthält, dann müsstest Du Dir von der FB die Anrufliste mit folgendem Kommando als Beispiel holen können:
curl http://fritz.box:49000/calllist.lua?sid ... c6ca4c5339

Wenn die Rückgabe etwas anderes als eine SID enthält, dann würde ich mal vermuten, dass Du ein aktuelleres Fritz-OS verwendest, wo das nicht mehr funktioniert. Da ich aber mittlerweile auch den SOAP-Request hinbekommen habe, versuche einfach mal folgendes umfangreiches Konsolen-Kommando, wobei <username> und <passwort> durch die login-Daten Deiner FB zu ersetzen sind.

curl -k -m 5 --anyauth -u <username>:<passwort> "http://fritz.box:49000/upnp/control/x_contact" -H "Content-Type: text/xml; charset="utf-8"" -H "SoapAction:urn:dslforum-org:service:X_AVM-DE_OnTel:1#GetCallList" -d '<?xml version="1.0" encoding="utf-8" ?><s:Envelope s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:s="http://schemas.xmlsoap.org/soap/envelop ... etCallList xmlns:u="urn:dslforum-org:service:X_AVM-DE_OnTel:1" /></s:Body></s:Envelope>'

Wenn Du darauf etwas zurück bekommst wie das Folgende, dann hast Du gewonnen:

<?xml version="1.0"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<s:Body>
<u:GetCallListResponse xmlns:u="urn:dslforum-org:service:X_AVM-DE_OnTel:1">
<NewCallListURL>http://192.168.1.1:49000/calllist.lua?s ... allListURL>
</u:GetCallListResponse>
</s:Body>

Diese XML-Datei enthält den Download-Pfad für die Anrufliste, inklusive einer SID, womit Du Dir die Anrufliste runter laden kannst:

curl http://192.168.1.1:49000/calllist.lua?s ... fe51425edc

Sollte das geklappt haben, dann informiere mich bitte. Ich würde dann eine neue entsprechende Gambas-Version mit TR-064 SOAP-Request in den Club hochladen. Bei mir funktioniert das bereits, aber ich nutze noch Shell-Kommandos. Mit reinen Gambas-Mitteln habe ich das noch nicht probiert.

besenmuckel
Foriker
Beiträge: 145
Registriert: Di 4. Nov 2014, 21:11
Kontaktdaten:

Re: Laden der Anrufliste aus der Fritzbox

Beitrag von besenmuckel » Di 23. Mär 2021, 22:59

Hallo Crabman,
habe dein Paket mal kurz getestet. Funktioniert bei mir mit der FritzBox 7412 und Fritz-OS-V6.86, in der GUI zeigt er aber nur die ausgehenden Anrufe an. Im Terminal mit Befehl curl fritz.box + SID kann ich aber die komplette Liste holen.

Crabman
Foriker
Beiträge: 21
Registriert: So 6. Jan 2019, 13:31
Kontaktdaten:

Re: Laden der Anrufliste aus der Fritzbox

Beitrag von Crabman » Do 25. Mär 2021, 14:01

Hi Besenmuckel

Die App holt sich ebenfalls die gesamte Liste, aber nur die letzten 10 (ist veränderbar) werden angezeigt.
In Deinem Home-Verzeichnis solltest Du eine fritzbox_Call_list.xml finden. Diese legt die App "zum nachblättern" an. Wenn Du sie mit dem Firefox öffnest, kannst Du Dir die Anrufe und ihre Kategorisierung wunderbar anschauen.

Bei mir finden sich u.a. in der Liste:
1 = eingehende Anrufe
3 = ausgehende Anrufe
10 = gesperrte Anrufe

Aus dem Grunde werden bei mir in der App alle Anrufe außer "3 = ausgehende Anrufe" gelistet.

Eine offizielle Doku zu den Anruf-Typen habe ich nicht gefunden. Diese Dokumentation von AVM passt jedenfalls gar nicht dazu: https://service.avm.de/help/de/FRITZ-Bo ... anrufliste

Die Ausfilterung der Anrufe passiert in dieser Routine und dort kannst Du bei Bedarf variieren:

MyCallList.Clear
Do
If TypeElements.TextContent <> "3" Then 'Add it to the list if it wasn't an an outgoing call.
MyCallList.add(CallerElements.TextContent & ", " & NameElements.TextContent & ", " & DateElements.TextContent)
End If
Inc i
Loop Until MyCallList.count >= NumberOfCalls

Falls die Anruf-Typen bei Dir anders sein sollten als bei mir, würde mich das interessieren.

besenmuckel
Foriker
Beiträge: 145
Registriert: Di 4. Nov 2014, 21:11
Kontaktdaten:

Re: Laden der Anrufliste aus der Fritzbox

Beitrag von besenmuckel » Di 6. Apr 2021, 22:17

Crabman hat geschrieben:
Do 25. Mär 2021, 14:01
Bei mir finden sich u.a. in der Liste:
1 = eingehende Anrufe
3 = ausgehende Anrufe
10 = gesperrte Anrufe
Ja ist bei mir auch so.
Habe dein Projekt nochmal getestet, jetzt geht es. Habe nichts geändert!
In der FritzBox kann man ja schön Anrufe mit unterdückter Rufnummer oder bestimmte Nummern sperren, so das es nicht mehr klingelt. Habe deshalb zusätzlich bei deiner Ausgabe noch die Type dazu gemacht, was funktioniert

Code: Alles auswählen

MyCallList.add(CallerElements[i].TextContent & ", " & TypeElements[i].TextContent & ", " & DateElements[i].TextContent & ", " & NameElements[i].TextContent)

Crabman
Foriker
Beiträge: 21
Registriert: So 6. Jan 2019, 13:31
Kontaktdaten:

Re: Laden der Anrufliste aus der Fritzbox

Beitrag von Crabman » Do 8. Apr 2021, 13:55

Danke für die Bestätigung.
Die Anzeige der Kategorie oder die Filterung nach Kategorien kann natürlich sehr hilfreich sein. Ich habe lediglich folgende Kategorien von Anrufen in meiner XML-Datei gefunden, wobei die Kategorie 2 auch noch von besonderem Interesse sein könnte:
1 = angenommene Anrufe
2 = verpasste Anrufe
3 = ausgehende Anrufe
10 = gesperrte Anrufe

gambasso
Foriker
Beiträge: 1136
Registriert: Sa 17. Mär 2012, 09:55
Kontaktdaten:

Re: Laden der Anrufliste aus der Fritzbox

Beitrag von gambasso » Fr 16. Apr 2021, 17:26

moin,

ich habe gerade erst gesehen, bei meiner Box kann man die Anrufliste speichern.
Habe ich gemacht. Jetzt kann ich aus dem File laden und ...

@ Crabman: mit Deinem Prg. bekomme ich nur die 1. Antwort ausgelesen. Danach ist nichts mehr. Die Arrays sind leider leer.
Gruss

Crabman
Foriker
Beiträge: 21
Registriert: So 6. Jan 2019, 13:31
Kontaktdaten:

Re: Laden der Anrufliste aus der Fritzbox

Beitrag von Crabman » Sa 17. Apr 2021, 22:48

Hi

Schade, bei mir funktioniert der Abruf auch wiederholt.

Vielleicht probierst Du mal die neue Programmvariante im Anhang aus. Anstatt mit dem betagten LUA-Request wird dort ein SOAP-Request durchgeführt. Ich gehe davon aus, dass diese Form des Abrufs von einem breiteren Spektrum von Fritzbox-Firmware-Varianten unterstützt wird und hoffentlich auch zukünftige Fritz-OS-Upgrades überlebt. Nicht ohne Grund hatte ich zum Beginn des Threads die Version meines Fritz-OS angegeben und einen Rundruf über eine SOAP-Request-Variante gestartet.

Im Übrigen laden beide Programme auch nur die Anrufliste als Datei herunter. Falls Du das auf einfachere Weise hinbekommen solltest, würde ich mich freuen von Dir zu hören.

Viele Grüße
Dateianhänge
FritzBox_SOAP_Calllist_0.0.6.tar.gz
(23.91 KiB) 6-mal heruntergeladen

gambasso
Foriker
Beiträge: 1136
Registriert: Sa 17. Mär 2012, 09:55
Kontaktdaten:

Re: Laden der Anrufliste aus der Fritzbox

Beitrag von gambasso » So 18. Apr 2021, 13:39

moin,

was meinst Du mit
Falls Du das auf einfachere Weise hinbekommen solltes
?

Ich habe die Anrufliste von der Box 7590, OS=7.25, auf meine HD gespeichert.
Dann mit Gambas ausgelesen und in eine Tabelle ausgegeben.

Hast Du Dir schon mal die die anderen erstellbaren Files aus der Box angesehen.
Diese habe ich dann auch mal mit Gambas dargestellt. Interessant, was da alles zu sehen ist.
Gruss

gambasso
Foriker
Beiträge: 1136
Registriert: Sa 17. Mär 2012, 09:55
Kontaktdaten:

Re: Laden der Anrufliste aus der Fritzbox

Beitrag von gambasso » So 18. Apr 2021, 13:48

habe Dein neueres Beispiel versucht. Es Kommt nur:

ncoming calls at 18.04.2021 14.44.12:
Error


Leider
Gruss

Crabman
Foriker
Beiträge: 21
Registriert: So 6. Jan 2019, 13:31
Kontaktdaten:

Re: Laden der Anrufliste aus der Fritzbox

Beitrag von Crabman » So 18. Apr 2021, 20:19

Hi
Ein Error tritt auch bei mir manchmal auf, wenn auch selten. Nach einer Wiederholung läuft es dann zuverlässig. Das liegt offensichtlich an der Fritzbox, die nach längeren SOAP-Request-Pausen keine Antwort gibt. Für den Einsatz des Verfahrens wäre also eine Wiederholung des Abrufs im Fehlerfall zu empfehlen.

Das Programm ist ein Snippet, das dafür gedacht ist, in einem Programm z.B. verpasste Anrufe ohne ein umständliches Login in die Fritzbox anzuzeigen und regelmäßig zu aktualisieren. Das Abspeichern der Liste über das Webinterface ist deshalb keine Alternative.

besenmuckel
Foriker
Beiträge: 145
Registriert: Di 4. Nov 2014, 21:11
Kontaktdaten:

Re: Laden der Anrufliste aus der Fritzbox

Beitrag von besenmuckel » Mo 19. Apr 2021, 12:32

Ich hatte mal vor etwa 10 Jahren kfritz benutzt. Hatte mir dann noch ein Script geschrieben, das mir per Sprachausgabe den Anrufer ansagt. Das Telefon hatte immer dann geklingelt wenn ich keine Hand frei hatte. Da damals mein Telefon kein Display hatte und Anrufbeantworter ich nicht mag, musste ich jedesmal in der FritzBox nach schauen wer angerufen hatte.
kfritz+Sprachausgabe
Ob das Programm kfritz noch aktuell ist oder ob es was anderes gibt weiss ich nicht.
Beschreibung kfritz
Entwickler kfritz
Vielleicht ist ja was für dein Projekt dabei.

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast