FritzBox Telefonbuch Service für Cisco Telefone

Ich hab es mit PHP 7.4.1 unter Windows im IIS versucht.
Es heißt immer wieder die FritzBox hat kein Telefonbuch.
Ist eine 7580 und fordert somit User + Passwort, daher hatte ich schon die von dir genannte Anpassung der directory.php und directory.config.inc.php vorgenommen.
 
Nun... Ich habe Apache 2 PHP 5 libcurl3/4 und alle Abhängigkeiten nochmals deinstalliert und alle Konfigurationsdateien gelöscht... Nochmals Apache 2, PHP 7 und libcurl4 mit allen erforderlichen Zusatzpaketen/Abhängigkeiten neu installiert. Und nun bin ich mal ganz klein mit Hut, ziehe das im vorigen Post geschriebene zurück und behaupte das Gegenteil. ;-) Es funktioniert jetzt! :)

Danke an alle!
 
Wenn es jetzt bei dir mit einer 7590 geht, sollte es ja bei mir mit einer 7580 ebenfalls funktionieren.
Eigentlich sollte ich auch eine weitere VM verzichten... Mal sehen was der HP MicroServer noch an Ressourcen hat...
 
[...]
Ist eine 7580 und fordert somit User + Passwort, [...]

Mhh… Die Benutzeranmeldung (Benutzer + Passwort) ist doch nur optional. Ich zumindest habe dies nicht aktiviert.
"System" > "FRITZ!Box-Benutzer" > "Anmeldung im Heimnetz" > "Anmeldung mit FRITZ!Box-Benutzernamen und Kennwort"

Quelle: https://avm.de/service/fritzbox/fri...-uber-Benutzerkonten-auf-FRITZ-Box-zugreifen/
 
Wenn man die FritzBox per MeinFritz erreichen möchte muss man Benutzer/Passwort verwenden.
Zudem möchte ich ungerne das eine Passwort in irgendeine Datei reinschreiben, egal ob nur in meinem Netzwerk oder nicht.
Außerdem kann ich so den einzelnen Benutzern verschiedene Rechte geben, ein Serviceuser für das Telefonbuch braucht keinen Zugriff auf die Smart Home Steuerung oder das VPN.
 
Wenn man die FritzBox per MeinFritz erreichen möchte muss man Benutzer/Passwort verwenden.
Jain: Einen Benutzer mit Passwort anlegen, ja; interne Anmeldung aus dem Intranet weiter nur mit Passwort möglich.
Wenn man den Fernzugriff aktiviert (z. B. über MyFritz.net) muss zwar ein entsprechender Benutzer angelegt werden, jedoch muss nicht generell die Anmeldung mit Benutzername und Passwort aktiviert werden. Das ist nämlich genau mein Konfigurationsszenario. Rufe ich über MyFritz.net meine Fritz!Box aus dem Internet auf, melde ich mich mit einem Benutzernamen und einem Passwort an. Intern/aus dem Intranet nur mit einem Passwort.

Zudem möchte ich ungerne das eine Passwort in irgendeine Datei reinschreiben, egal ob nur in meinem Netzwerk oder nicht.
Außerdem kann ich so den einzelnen Benutzern verschiedene Rechte geben, ein Serviceuser für das Telefonbuch braucht keinen Zugriff auf die Smart Home Steuerung oder das VPN.
Das ist nachvollziehbar. Wobei sich hier auch gleich die Frage aufdrängt, ob der Benutzer, den Du in die Datei "directory.php" eingetragen hast, auch über die erforderlichen Rechte für den Zugriff auf die Telefonbücher verfügt. Hat dieser Benutzer denn ansonsten Zugriff auf die Telefonbücher (z. B. über die Fritz!Fon-App)?
 
Hat dieser Benutzer denn ansonsten Zugriff auf die Telefonbücher (z. B. über die Fritz!Fon-App)?

Ich habe bereits einen anderen User für mein SmartHome über openHAB angelegt und diesem die Rechte "FRITZ!Box Einstellungen" und "Sprachnachrichten, Faxnachrichten, FRITZ!App Fon und Anrufliste" erteilt.
Damit hat dieser User Zugriff auf das Telefonbuch und auch die Anrufliste. Eigentlich sollte der Zugriff auf die Einstellungen nichtmal nötig sein.
In openHAB lasse ich die Nummer des letzten Anrufers im Telefonbuch der FritzBox prüfen und trage dann entweder Unbekannt oder den Namen in eine Telegram Nachricht ein.
Also ja, der Benutzer hat genügend Rechte für den Zugriff auf das Telefonbuch.

Im IIS habe ich testweise den Schreibzugriff auf den "books" Ordner für Jeder erlaubt.
Ich muss noch schauen welchen User der IIS während der Laufzeit für Aufrufe aus Webseiten verwendet, dann könnte man auch hier den Zugriff auf einen User statt Jeder reduzieren.
 
Zuletzt bearbeitet:
[...]
Im IIS habe ich testweise den Schreibzugriff auf den "books" Ordner für Jeder erlaubt.
[...]
Und, wurde damit ein Telefonbuch (bzw. ein oder mehrere "[0-9].XML"-Dateien) erstellt?

Ich gehe mal davon aus, dass Deine "openhab"-Installation nicht auf einem "Windows"-PC/-Server läuft, sondern auf einem "Linux"/"FreeBSD"/ö. ä. Warum lässt Du dort nicht einfach einen "Apache 2"-Webserver mit laufen und installierst dort "fritzco"? Das würde ja nun nicht die großen Ressourcen fressen.
 
Leider wird keine *.XML Datei erstellt und es heißt die FritzBox hat keine Telefonbücher.
Ist auch egal welche ID ich in der Config angebe.

Die openHAB Umgebung läuft auf einem Raspberry Pi4.
Ich weiß halt nicht welchen Webserver openHAB dort benutzt und ob sich das in die Quere kommt.
Dann lieber eine weitere VM mit wenig Ressourcen auf dem HP MicroServer.

103681
 
Zuletzt bearbeitet:
Leider wird keine *.XML Datei erstellt und es heißt die FritzBox hat keine Telefonbücher.
Ist auch egal welche ID ich in der Config angebe.
Hast Du auch in Zeile 42 in der Datei "directory.php" den Code wie folgt geändert, wie es @seelenreiter in Post #137 erklärt hat?
Statt
PHP:
curl_setopt($ch, CURLOPT_POSTFIELDS, "response={$response}&page=/login_sid.lua");
in
PHP:
curl_setopt($ch, CURLOPT_POSTFIELDS, "&username={$fritzbox_username}&response={$response}&page=/login_sid.lua");
ändern.
 
Zuletzt bearbeitet:
[…]
curl_setopt($ch, CURLOPT_POSTFIELDS, "&username=$fritzbox_username&response={$response}&page=/login_sid.lua");
[...]
Hier hat sich übrigens ein kleiner Fehler eingeschlichen: Die Variable "$fritzbox_username" oben im String wird so vom PHP-Interpreter nicht als Variable erkannt. Wenn sie direkt im String -- also innerhalb der Anführungszeichen -- enthalten ist, muss sie mit geschweiften Klammern kenntlich gemacht werden oder sie muss außerhalb des Strings -- also außerhalb der Anführungszeichen -- mit den anderen String-Teilen verketten werden.
 
Ich hatte es erst die Anpassung aus Post #137 vorgenommen und jetzt die korrigierte mit {$fritzbox_username}.
Ändert leider nichts.

directory.php - Zeile 42
curl_setopt($ch, CURLOPT_POSTFIELDS, "&username={$fritzbox_username}&response={$response}&page=/login_sid.lua");

directory.config.inc.php - Zeilen 9 bis 11
Code:
    $fritzbox_ip = 'fritz.box'; //Hier die IP oder den Hostname der FritzBox eintragen (meist fritz.box)
    $fritzbox_username = 'USER'; //Hier den Usernamen eintragen
    $fritzbox_password    = 'PASSWORD'; //Hier das Passwort eintragen

Ich habe es jeweils mit FritzBox Hostnamen und IP-Adresse probiert.

Und auch wenn ich die FritzBox auf Passwort only konfiguriere und die Änderungen rauslasse geht es nicht.
Das Telefon sagt es gibt keine Telefonbücher und Aktualisieren gibt nur einen XML [4] Analysefehler
103683
 
Ok. Dann scheint zumindest der Login -- egal, ob die Variante mit oder ohne Benutzernamen -- zu funktionieren.
Die Meldung "Keine Telefonbücher vorhanden" wird vom PHP-Skript erzeugt, wenn am Ende des versuchten Einlesens der Telefonbücher ("Refresh") das PHP-Skript keine XML-Dateien im Ordner "./books" findet.

Vielmehr scheint es hier ein Problem beim parsen der Daten, die von der Fritz!Box kommen, zu geben. Leider sieht das PHP-Skript hier offenbar keine Debug-Informationen bzw. detaillierte Fehlermeldung vor.

Du könntest natürlich versuchen, Deine auf der Fritz!Box lokal gespeicherten Telefonbücher zu sichern und anschließend zu löschen und etwaige Online-/Cloud-Telefonbücher auszubinden. Dann einen Test mit einem neuen und einfachen (wenige Einträge) Telefonbuch. Wenn das klappt, nach und nach die Telefonbücher wieder hinzufügen und zwischendurch testen, damit das betroffene Telefonbuch gefunden werden kann...
 
Ich habe in der FritzBox nur zwei lokale Adressbücher, ein privates und ein berufliches.
Also keine Adressbücher von externen Anbietern.
 
Ich habe in der FritzBox nur zwei lokale Adressbücher, ein privates und ein berufliches.
Also keine Adressbücher von externen Anbietern.
Ich würde diese dann mal sichern und dann löschen. Anschließend ein neues kleines Adressbuch anlegen mit einem oder wenigen Einträgen und dann mal testen.
 
Zuletzt bearbeitet:
Das berufliche Telefonbuch konnte ich einfach löschen.
Das Private ist das Standard Telefonbuch und hat keine Option zum löschen...

Ich hab jetzt ein leeres Telefonhuch erstellt, gesichert und im Standard Telefonbuch wiederhergestellt, dann ist es leer.
Einen neuen Eintrag erstellt und erneut versucht: Kein Erfolg
 
Hast Du nun mit nur dem Standardtelefonbuch einen Test durchgeführt?

Wenn der Fehler immer noch auftritt, kann das Standardtelefonbuch mit folgendem Workaround gelöscht werden:
  1. Ein neues, leeres Telefonbuch erstellen.
  2. Nun das neu erstellte leere Telefonbuch sichern.
  3. Das leere Telefonbuch wieder löschen.
  4. Das gesicherte Telefonbuch als Standardtelefonbuch wiederherstellen.
 
Genau den Workaround habe ich dann auch gefunden und ausprobiert.
Bleibt dabei, es wird nichts vom Skript importiert.
Bildschirmfoto 2020-01-08 um 11.00.44.png

In der directory.config.inc.php wird weiterhin Telefonbuch 0 abgefragt
$telefonbuch = 0;
 
Das ist merkwürdig.

Damit Du dem Fehler besser auf den Grund gehen kannst, habe ich mal ein debug-logging eingebaut. Dies dürfte für andere neue Anwender von "fritzco" ebenfalls hilfreich sein. Zudem habe ich eine Prüfung integriert, die prüft, ob überhaupt ein Schreibzugriff auf "./books/" besteht. Dabei habe ich noch weitere Änderungen an der Ordnerstruktur vorgenommen (siehe die changelogs).
Das debug-logging wird in der Datei "config/general.config.inc.php" mit der Eintstellung "$logging_activated = true;" aktiviert.
Dabei ist zu beachten, dass der Benutzer des Webservers Schreibrechte für den Ordner "./log" benötigt.

Zu finden ist die Version unter:
Nutzung geschieht auf eigene Gefahr!

Aktuell scheint das ursprüngliche Repository verwaist zu sein. Wie ich von dem ursprünglichen Autor/Entwickler Till Steinbach (@steinb_i) erfahren habe, hat er die Entwicklung eingestellt. Ob der damalige Co-Autor/Mitentwickler Christian Bartsch (=@mr.vince?) noch aktiv ist bzw. noch Interesse an einer Weiterentwicklung hat, entzieht sich meiner Kenntnis. Somit habe ich mal für meine Änderungen einen neuen Branch erstellt.
 
Zuletzt bearbeitet:
Vielen Dank!
Werde ich morgen in Ruhe testen :)
 
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.