Laden der Anrufliste aus der Fritzbox

Eigene oder Gemeinschaftsprojekte, Klassen, Module, Codeschnipsel, HowTos, ...
Antworten
Crabman
Foriker
Beiträge: 13
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) 39-mal heruntergeladen

gambasso
Foriker
Beiträge: 1118
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: 13
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: 1118
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: 13
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: 139
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: 13
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: 139
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: 13
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

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast