Fragen zu: Scripts für Fritzbox/Repeater/Fritzfon ab V2.5 und PHP 5.4.x

Vielen Dank Rainer:)

Ausgabe von $data:

Array
(
[0] => FRITZ!Box Fon WLAN 7390 Firmware: FRITZ!OS 05.22 Aktueller Energieverbrauch: 49% Verbindungen Internetverbunden seit 15.09.2012
[1] => 07:37 Uhr
[2] => T-Online
[3] => IP-Adresse: xxxxxxxTelefonieKeine Rufnummern aktiv Anschlüsse Komfortfunktionen DSLbereit
[4] => 12
[5] => 2 Mbit/s 1
[6] => 2 Mbit/sLANverbunden (LAN 1
[7] => LAN 3
[8] => LAN 4)WLANan
[9] => gesichertDECTausUSB die USB-Speicher bitte abziehen und neu verbinden.">1 Speicher (entfernt) Netzwerk mehr… Anrufe (heute 0) mehr (399)… Netzwerk mehr… Telefonbuch (zuletzt bearbeitet) mehr…

)

Mit „$ip = substr($data[3], 0, 26);“ bekomme ich:
Verbunden seit 15.09.2012 07:37 Uhr mit IP-Adresse: xxxxxxx

Ich hoffe es funktioniert auch noch wenn sich die IP ändert:rolleyes:

Solange sie nicht um eine Stelle länger wird, passt das schon. Ansonsten, schneidet er die letzte Stelle ab.

PS. Ich hab dir mal die IP ausge xxxxx t.

Hatte mich schon neu verbunden:D

Kann ich dich noch mit meinen letzten Anliegen belästigen?

Das Skript „Reconect“ könnte mann doch umbauen für „USB trennen“. Hast Du lust mir dabei zu Helfen?:o

Ob das so einfach geht, weis ich nicht. Da muss man mal in den PDFs nachsehen. Ich kram mal ob ich was finde.

Ich finde jetzt darin keinen direkten Hinweis auf USB. Ich werd mir jetzt auch keine Gedanken drüber machen.

Ich hab was gefunden. Kannst ja in deiner Sammlung aufnehmen:D

USB sicher trennen

<?

    $fritzbox_ip = 'fritz.box';
    $password    = '******';

    $ch = curl_init('http://' . $fritzbox_ip . '/cgi-bin/webcm?getpage=../html/login_sid.xml');
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    $login = curl_exec($ch);
    $session_status_simplexml = simplexml_load_string($login);

    if ($session_status_simplexml->iswriteaccess == 1)
    {
       $SID = $session_status_simplexml->SID;
    }
    else
    {
       $challenge = $session_status_simplexml->Challenge;
       $response = $challenge . '-' . md5(mb_convert_encoding($challenge . '-' . $password, "UCS-2LE", "UTF-8"));
        curl_setopt($ch, CURLOPT_POSTFIELDS, "login:command/response={$response}&getpage=../html/de/menus/menu2.html");
        preg_match('/name="sid" value="([0-9a-f]*)"/', curl_exec($ch), $matches);
       // print_r($matches);
       if(isset($matches[1]) && $matches[1] != '0000000000000000')
       {
          $SID = $matches[1];
       }
       else
       {
          echo "Fehler: Login fehlgeschlagen";
          return;
        }
    }


        curl_setopt($ch, CURLOPT_POSTFIELDS, "sid={$SID}&ctlusb:settings/unplug=1");
        curl_exec($ch);


    curl_close($ch);
   

?>

Wo hier ja gerade wieder die FB Scripte in der Bearbeitung sind :D, hat eigentlich jemand eine Auswertung der eingehenden Anrufe inkl. Darstellung am Besten mit Abspielmöglichkeit der Anrufbeantworter-Nachrichten für das Webfront?

Da gibt es bei AVM was Neues. Im aktuellen Beta (05.27-23403) kann man die Anrufbeantworternachrichten jetzt auch auf der Fritzbox Web-Seite löschen.

ja, da entwickeln sich ein paar nette Dinge.

ABER leider wurden auch URLs auf die lua’s verändert und einige Abfragescripte funktionieren nicht mehr, z.B. die Anrufliste.

Könnte auch ein Entwicklungsfehler sein, aktuell hat die 7390 Frames in Frames oder ist das Absicht?

Keine Ahnung. Habe wegen der Anrufliste bei AVM schon „gemeckert“ und dachte, dass dies im Beta vom 18.09. sich geändert hat - aber Pustekuchen. Auch solche Tools wie JFritz sollen nicht mehr funktionieren.

Gruß Frank

Hallo Rainer,

du als alter Fritzboxspezi kannst mir hoffentlich die Frage beantworten, ob man eine aktive Telefonverbindung auslesen kann? Das am besten als Skript um sofort eine Boolsche Variable zu schalten.

Folgende Funktion möchte ich unbedingt abbilden, da meine Frau mich ständig nach dieser Möglichkeit fragt.
Wir hören im gesamten Haus Musik über den IPS Server. Wenn nun ein eingehender Anruf kommt, sollte die Musik leiser werden. Genauso wenn eine Telefonverbindung von uns aus erstellt wurde. Ich habe aktuell einen Trigger bei der String Variable der Anrufliste, wobei ich das äußerst unelegant finde.

Vielleicht hast du ja einen besseren Vorschlag?

Vielen Dank!

Gruß

Felix

Das gibt es doch schon lange. Das kannst Du über „RING“ , „CALL“ und „DISCONNECT“ auswerten.

Im Forum gibt es dazu Scripts.

Hallo Ralf,
ich hab mir mit Codeschnipseln und Hilfe aus dem Forum eine Konstellation zusammengeschustert. AB kann das nicht, da das bei uns das Gigaset S685IP übernimmt und ich dazu bisher nix gefunden hab.
Hintergrund war die mangelde Performance vorhandener Scripts (zumindest so weit ich sie gefunden habe) beim ermitteln der Anrufer via externer Telefonbücher.
Kurz:
Der Anrufmonitor stösst bei eingehnden anrufen ein WFC_SendNotification an das WF, das wenn in einem Telefonbuch (FB(per Script manuellangestossen in eine csv kopiert), dasÖrtliche oder klicktel) eine Nr gefunden wird auch gleich den Anrufer zeigt.
Bei eingehenden Anrufen, die nicht angenommen werden, wird versucht den Anrufer zu ermitteln und ein Datensatz in eine MySQL DB geschrieben. Bei unbekannt eben unbekannt mit oder ohne Nr wenn unterdrückt.
Bei eingehenden Anrufen, die angenommen werden, wird nach dem auflegen versucht den Anrufer zu ermitteln und ein Datensatz in eine MySQL DB geschrieben. Bei unbekannt eben unbekannt mit oder ohne Nr wenn unterdrückt.
Bei ausgehenden Anrufen, die angenommen werden, wird nach dem auflegen versucht den Anrufer zu ermitteln und ein Datensatz in eine MySQL DB geschrieben. Bei unbekannt eben unbekannt.
Bei ausgenden Anrufen, die erfolglos waren wird nix geloggt.
Bei eingehenden nicht angenommenen Anrufen von der selben Nummer innerhalb einer Minute wird nur die erste geloggt.

Damit kann man dann im WF verschiedene Auswertungen aus der MySQL fahren. Nach TelNr, Zeitraum, Gesprächsdauer … anzeigen.
Performance: Eine Anzeige mit den letzten 100 Anrufen die alle in den 3 o.g. Telefonbüchern gefundenen Namen anzeigt dauert gerade mal 34 ms.
Da ich das eigentlich nur zu Lern- und Übungszwecken gemacht hab, hab ich das dann nicht weiter verfolgt. z.b. variable Auswertungen auf Knopfdruck.
Die Scripts sind aus Profisicht sicher dirty und optimierungsbedürftig. Aber bei mir laufen die seit einem 1/2 Jahr zuverlässig. Proofed.

Anbei noch ein screenshot vom Ergebnis. Wenn Interesse besteht kann ich die Scripts und eine Kurzdoku posten. Kann aber ein wenig dauern.

Hallo zusammen

Ich bin jetzt umgestiegen von der Fritzbox 7270 auf die 7390.
Seit dem klappt mein Script nicht mehr das meine Telefone klingeln lassen soll.
Vieleicht hat ja Jemand eine Idee woran das liegen kann.
Mfg Stefan

    $fritzbox_ip = '192.168.178.1';    $fritzgui    = 'http://192.168.178.1/cgi-bin/webcm';
    $fritzseite  = '../html/de/menus/menu2.html';
    $password    = 'xxxxxx';


    $ch = curl_init('http://' . $fritzbox_ip . '/cgi-bin/webcm?getpage=../html/login_sid.xml');
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    $login = curl_exec($ch);
    $session_status_simplexml = simplexml_load_string($login);


    if ($session_status_simplexml->iswriteaccess == 1)
    {
       $SID = $session_status_simplexml->SID;
    }
    else
    {
       $challenge = $session_status_simplexml->Challenge;
       $response = $challenge . '-' . md5(mb_convert_encoding($challenge . '-' . $password, "UCS-2LE", "UTF-8"));
        curl_setopt($ch, CURLOPT_POSTFIELDS, "login:command/response={$response}&getpage=../html/de/menus/menu2.html");
        preg_match('/name="sid" value="([0-9a-f]*)"/', curl_exec($ch), $matches);
       if(isset($matches[1]) && $matches[1] != '0000000000000000')
       {
          $SID = $matches[1];
       }
       else
       {
          echo "Fehler: Login fehlgeschlagen";
          return;
        }


        curl_setopt($ch, CURLOPT_POSTFIELDS, "sid={$SID}&telcfg:command/Dial=**9"); // interne Nummer eintragen!
        curl_exec($ch);
        curl_close($ch);
    }

Hallo zusammen

Ich wollte nochmal nachfragen ob vieleicht jemand ein Idee hat warum mein Script nicht funktioniert.
Es wäre echt toll weil der WAF leidet doch ein wenig darunter.

Mfg Stefan

Sieh dir die Kommandos der Box an ob sie die gleichen sind. Ansonsten musst Du warten bis jemand antwortet der eine 7390 so in Verwendung hat.

Hallo Rainer

Ich werde mal im Netz schauen ob ich was finde.
Und hoffen das es Jemand löst falls ich es nicht schaffen sollte.

Mfg Stefan

Hi,
habe Dein Script mal getestet.
Wenn ich eine entsprechende Kurzwahl eintrage, klingelt das zugeordnete Telefon.

Hallo Neon

Hast Du auch eine 7390?
Bei der 7270 die ich vorher hatte klappte es einwandfrei.
Ich hatte jetzt auch mal Probiert die Labor Version für die 7390 aufzuspielen.
Da kommen aber dann nur Fehlermeldungen wenn ich das Script durchlaufen lasse.

Mfg Stefan

Hi Masterflash,
jepp, hab’ ne 7390.

Allerdings habe ich eine Nummer aus dem Telefonbuch testweise angerufen, nicht den Rundruf, da die Fritzbox (noch) hinter einer Telefonanlage hängt.