Forum: PC-Programmierung Fritzbox - Soap-Abfrage des Telefonbuches nach Update Fehler


von Frank E. (Firma: Q3) (qualidat)


Angehängte Dateien:

Lesenswert?

Bis vor ein paar Tagen funktionierte der XML-Download des 
Fritzbox-internen Telfonbuches durch meine Grandstream-Telefone im Büro 
einwandfrei. Die Sache ist etwas "tricky" realisiert:

Weil die Telefone eine XML-Datei per HTTP downloaden wollen, habe ich 
per htaccess ein PHP-Script auf die Endung ".xml" re-writed ... d.h. das 
Telefon ruft ein XML ab, in Wirklichkeit wird der enthaltene PHP-Code 
ausgeführt und erzeugt on-the-fly den erwarteten Datenstrom ... wie 
gesagt, lief seit Monaten problemlos.

Vor ein paar Tagen gabs dann das automatische Update auf FrizOS 6.8x und 
nun geht nix mehr. Leider bin ich in "SOAP" nicht ganz so firm, hatte 
den Kern das Scrips damals nur reinkopiert und mit dem nötigen 
PHP-Umfeld zur Formatierung der Daten versehen. Gibts hier einen 
Kundigen, der mal einen Blick reinwirft und mutmaßen könnte, woran es 
liegt?

Die Fehlermeldung:
1
<br />
2
<b>Fatal error</b>:  Uncaught SoapFault exception: [HTTP] Unauthorized in /share/MD0_DATA/Web/gxp/gs_phonebook.xml:97
3
Stack trace:
4
#0 [internal function]: SoapClient-&gt;__doRequest('&lt;?xml version=&quot;...', 'http://192.168....', 'urn:dslforum-or...', 1, 0)
5
#1 /share/MD0_DATA/Web/gxp/gs_phonebook.xml(97): SoapClient-&gt;__call('GetPhonebook', Array)
6
#2 /share/MD0_DATA/Web/gxp/gs_phonebook.xml(97): SoapClient-&gt;GetPhonebook(Object(SoapParam))
7
#3 {main}
8
  thrown in <b>/share/MD0_DATA/Web/gxp/gs_phonebook.xml</b> on line <b>97</b><br />

Das Script hänge ich mal an, ist vlt. auch fü andere interessant (wenn 
es denn wieder läuft). Um Irritationen beim Öffnen zu vermeiden, habe 
ich die Datei wieder auf .php umbenannt.

von SR (Gast)


Lesenswert?

Da scheinen Nutzername / Passwort nicht zu stimmen.

von Frank E. (Firma: Q3) (qualidat)


Lesenswert?

SR schrieb:
> Da scheinen Nutzername / Passwort nicht zu stimmen.

Ok, ich werde das nochmal checken, aber wieso sollte sich das durch ein 
Systemupdate ändern?

Ist nat. eine Hoffnung, aber nicht sehr wahrscheinlich ... niemand 
ausser mir fasst das System an und so senil bin ich wirklich noch nicht.

: Bearbeitet durch User
von SR (Gast)


Lesenswert?

Ich weiß nicht mehr wann das war, ist auch schon länger zurück. Aber 
irgendwann  wurden ja auch Benutzer bei der Fritz!Box eingeführt - evtl. 
war das bei dir vorher nicht der Fall, oder aber du hast einen Benutzer 
ohne hinreichende Rechte verwendet?

Habe hier leider keine Fritz!Box zur Hand - sonst würde ich mal 
probieren...

von T.roll (Gast)


Lesenswert?

Frank E. schrieb:
> Ok, ich werde das nochmal checken, aber wieso sollte sich das durch ein
> Systemupdate ändern?

Weil die an den Sicherheitseinstellungen gebastelt haben.

"Zahlreiche weitere Aktualisierungen bringen die FRITZ!Box mit FRITZ!OS 
6.80 auf den aktuellen Stand der Sicherheitstechnik."
Einige Passwörter müssen nun mind. 8 Zeichen lang sein, sonst werden die 
Kennungen deaktiviert.

PS: Schau in die Ereignisse, da müsste der fehlgeschlagene Login 
erscheinen.


ftp://ftp.avm.de/fritz.box/fritzbox.7490/firmware/deutsch/info.txt

von Tim S. (Firma: tsx89) (freak_ts) Benutzerseite


Lesenswert?

Im Fritz OS 6.60 funktioniert es. Habe jetzt das 6.80 installiert und es 
funktioniert immer noch ohne Änderungen am Script oder der Box.
Ich verwende allerdings schon etwas länger die eingeführten "Benutzer".
/Edit: FritzBox7490.

> gs_phonebook.php
Ist ein sehr nettes Script.
> Notice: Undefined variable: id in gs_phonebook.php on line 96
Irgend eine ID fehlt mir, macht aber nichts... ^^

Gibt´s von dieser Art Script´s noch mehr??

: Bearbeitet durch User
von Frank E. (Firma: Q3) (qualidat)


Lesenswert?

Ich liebe diese Schwarm-Intelligenz!

Danke.

Die 1. Ursache war tatsächlich ein zu kurzes Passwort. Als weiteres 
Problem zeigte sich, dass die nicht ininitalisierte Variable $id nun 
doch "ernst" genommen wird - im Gegensatz zur vorigen FritzOS-Version. 
Ich habe in Zeile 96 einfach hingeschrieben $id=0;

Und nun läufts wieder :-)

Danke!

Weitere solcher Scripte findet man z.B. hier:

https://www.symcon.de/forum/threads/25745-FritzBox-mit-SOAP-auslesen-und-steuern

: Bearbeitet durch User
von Neuer-Hobby-Elektroniker (Gast)


Lesenswert?

Scheint so, als hättest du Glück, weil die ID zuvor intern in der API 
auf int 0 gecastet wurde. Denn diese war zuvor "null". Wenn ich die Api 
richtig verstanden habe, kann man hier verschiedene "Bücher" abfragen, 
die sich an der ID festlegen lassen.

https://avm.de/fileadmin/user_upload/Global/Service/Schnittstellen/X_contactSCPD.pdf

Vermutlich wäre der Response durch den Request mit ID 1 oder 2 nicht 
das, was man erwartet hätte. :-)

von Neuer-Hobby-Elektroniker (Gast)


Lesenswert?

PS: Benutzt du noch mehrere API-Calls? Ggf. müsstest dort auch jeweils 
eine ID verankern.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.