FritzBox mit SOAP auslesen und steuern

Hallo,

ich wollte noch mal hören, ob es schon jemandem gelungen ist, via SOAP Rufumleitungen ein-/ auszuschalten?

Gruß
Slummi

Hiho,
ich hab den FRED nun 2 mal durchgeblättert, gibts ein Soap Script für die Weckzeit zu setzen, oder hab ich das übersehen?
Gruß
Kai

Ich habe noch nichts gefunden. Auch einige andere Komfort Funktionen scheint AVM nicht umgesetzt zu haben :frowning:
Michael

Ist es möglich Rufnummersperren per SOoap einzupflegen? Über Google hab ich nichts gefunden…

Ich rufe derzeit die Anrufe in Abwesenheit ab in IPS… In letzter Zeit häufen sich dabei Werbeanrufe.

Bisher sperre ich die Nummern händisch in der Fritzbox Rufnummersperre für ankommende Anrufe.
Cool wäre es wenn ich die Nummer aus der Anrufliste rauskopieren könnte in ein „Webformular“ und das löst den Eintrag in die RUfnummernsperre der FB ein…

Das wäre kultig.

Die Fon Unterstützung allgemein finde ich sehr mau. Ich glaube die Sperre und auch Rufumleitungen werden nicht unterstützt :frowning:
Da ich noch aber eh in nächster Zeit noch mal durch aller SOAP Abfragen wühle, kann ich ja noch mal nachsehen.
Michael

Versuch mal folgendes:

<?
$rufnummer = "0123456789";
$ch = curl_init("http://{$fritzbox_ip}/fon_num/rul_edit.lua?sid={$SID}");

   curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
   curl_exec($ch);
   curl_setopt($ch, CURLOPT_POSTFIELDS, ("mode_call=_out&rule_kind=rufnummer&rule_number=$rufnummer&current_mode=_new&backend_validation=false") . "apply=");
	curl_exec($ch);

   curl_close($ch);

?>

Hab das auf die schnelle mit Tamper gemacht. Sonst schau mal selbst mit Tamper, dann kriegst du’s hin.

Hi,

nachdem ich jetzt schon stundenlang versuche, die Anrufliste meiner FB 7390 (aktuelle Firmware) auszulesen, hab ich mich jetzt angemeldet, weil es einfach nicht funktioniert.
Hier mein Code, die ersten zwei Soap Abfragen sind nur drin, um zu sehen, überhaupt eine abfrage funktioniert:


    <?php

    $client = new SoapClient(

        null,

        array(

            'location'   => "http://192.168.1.1:49000/igdupnp/control/WANCommonIFC1",

            'uri'        => "urn:schemas-upnp-org:service:WANCommonInterfaceConfig:1",

            'soapaction' => "",

            'noroot'     => True

        )

    );

    $status = $client->GetCommonLinkProperties();

    $status2 = $client->GetAddonInfos();

    print_r($status);

    print_r($status2);


    $client = new SoapClient(

        null,

        array(

            'location'   => "http://192.168.1.1:49000/igdupnp/control/WANCommonIFC1",

            'uri'        => "urn:schemas-upnp-org:service:WANIPConnection:1",

            'soapaction' => "",

            'noroot'     => True

        )

    );

    $status = $client->GetExternalIPAddress();

    $status2 = $client->GetStatusInfo();

    print_r($status);

    print_r($status2);



    $client = new SoapClient(

        null,

        array(

            'location'   => "http://192.168.1.1:49000/igdupnp/control/x_contact",

            'uri'        => "urn:dslforum-org:service:X_AVM-DE_OnTel:1",

            'soapaction' => "",

            'noroot'     => True

        )

    );


$result = $client->GetCallList();
$xml = @simplexml_load_file($result);
var_dump($xml);
    ?>

Der Output sieht so aus:

Array ( [NewWANAccessType] => DSL [NewLayer1UpstreamMaxBitRate] => 10048000 [NewLayer1DownstreamMaxBitRate] => 43880000 [NewPhysicalLinkStatus] => Up ) Array ( [NewByteSendRate] => 3771 [NewByteReceiveRate] => 104775 [NewPacketSendRate] => 60 [NewPacketReceiveRate] => 389 [NewTotalBytesSent] => 168980231 [NewTotalBytesReceived] => 1945863683 [NewAutoDisconnectTime] => 0 [NewIdleDisconnectTime] => 0 [NewDNSServer1] => 217.0.43.81 [NewDNSServer2] => 217.0.43.81 [NewVoipDNSServer1] => 0.0.0.0 [NewVoipDNSServer2] => 0.0.0.0 [NewUpnpControlEnabled] => 0 [NewRoutedBridgedModeBoth] => 0 ) 

-> Keine Spur der Anrufliste. Hab das Passwort in der FB komplett deaktiviert, um Fehler bei der Authentifizierung auszuschließen. Hab es auch mit „49000/upnp/control/x_contact“ versucht.

Hat jemand noch einen Tipp, was ich versuchen kann. Im Netz hab ich nichts weiter gefunden und auch keine Idee mehr.

VG
F.

eventuell hilfe unter

Bei Anruf Mord (Anruferkennung mit der FRITZ!Box)

Danke, aber das hilft nicht weiter, ich will mit PHP und Soap die Liste der letzten x Anrufe anzeigen.

Schau doch einfach in das Wiki.
Anrufliste auslesen – IP-Symcon
Dort siehst du auch das du einen Benutzer (root =Webseite-User)
und sein Passwort angeben musst.
Michael

Das hab ich schon probiert:

FB auf Anmeldung mit Username eingestellt und User+Passwort im Script angegeben
FB auf Anmeldung nur mit Passwort eingestellt und nur Passwort im Script angegeben
FB auf ohne Anmeldung eingestellt, wie im hier angegebenen Script auch nichts mitgegeben

Alles mit dem selben Ergebnis. Ich weiß halt nicht, ob man das noch irgendwie debuggen kann?

Hab gerade den entscheidenden Durchbruch gehabt. Im zweiten Script war ein Fehler. Für die externe IP mus die URL folgende sein:

'location'   => "http://192.168.1.1:49000/igdupnp/control/WANIPConn1",

Ja. Wenn du die dazugehörigen Parameter in der SoapClient Klasse mit an gibst.
Exception und trace waren das glaube ich.
Die Anrufliste ist immer geschützt, ohne Passwort läuft das nicht.
Wenn du meinst ohne Username, also das Kennwort für das Webinterface ohne Benutzername, so ist als User im Script root einzutragen.
Edit:
Erster Post ist ein Testscript, da kannst du das Abgucken mit trace auf true setzen und dann u.U. mit is_soap_exception abfragen und ausgeben.
Michael

Edit: Hier stand Mist :wink:
Ja ist ja auch richtig…
Was hat das mit der Anrufliste zu tun ?
Michael

Ich hatte die anderen beiden Script zum testen drin, ob überhaupt der Aufruf funktioniert. Durch den Fehler im zweiten ist er gar nicht erst zur Anruferliste gekommen. Naja, jetzt ist alles sauber und die Liste lässt sich auch parsen. Bin eigentlich am Testen von fhem mit smartVISU als Frontend. Das Script zum Auslesen der FB funktioniert nicht, deshalb bin ich dabei, das umzustricken :smiley:

Hallo,

nachdem ich nun den ganzen Beitrag überflogen habe und nichts gefunden hab, frage ich hier mal ins blaue.

Ich möchte die Uptime der Fritzbox auslesen (nicht der DSL Verbindung) und in eine Variable packen.
Leider habe ich außer in Betrag #209 von Bayaro nichts gefunden und er schreibt auch nur dass es funktioniert.

Warum brauche ich das?
Da bekannter weise die Client-Sockets meist nicht mehr funktionieren,wenn das Gerät dahinter einen Neustart gemacht hat, obwohl diese im IPS nicht als fehlerhaft markiert sind.
Ich möchte deswegen die Uptime auslesen, mit dem Wert vorher vergleichen und falls der neue Wert kleiner ist, dann ein Script ausführen welches den Socket neustartet (per Hand geht das schon, mir fehlt nur die Uptime der Box)

Das große Script welches ca. 1min lang alle Daten der Fritzbox ausliest, lauft und funktioniert), leider bin ich absolut nicht in der Lage mir das passende dort rauszusuchen und ein Script draus zu machen…

Na dann schau doch mal auf Seite 1 unter der Überschrift „WAN-Verbindungsstatus“ :wink:

Grüße,
Chris

ja, ich möchte aber die Uptime der Fritzbox, nicht vom WAN. (hatte ich aber auch extra geschrieben)
Im Notfall muss ich mit der WAN-Uptime arbeiten…

Gruß

Weil ich mich verlesen habe, hier die Lösung:

define ('FB_USER', 'BENUTZERNAME');
define ('FB_PASS', 'KENNWORT');

$client = new SoapClient(
    null,
    array(
        'location'   => "http://fritz.box:49000/upnp/control/deviceinfo",
        'uri'        => "urn:dslforum-org:service:DeviceInfo:1",
        'noroot'     => True,
        'login'      => FB_USER,
        'password'   => FB_PASS
    )
);
$result = $client->GetInfo();
//print_r($result);

$FBuptime = $result['NewUpTime'];
echo $FBuptime;

Grüße,
Chris

wow super und vielen Dank (es funktioniert)

Da ich aber auch dazu lernen moechte, woher nimmst du den „Befehl“ NewUpTime?