- Mitglied seit
- 3 Mrz 2012
- Beiträge
- 3
- Punkte für Reaktionen
- 0
- Punkte
- 0
Ich habe lange nach der Möglichkeit gesucht die Anrufdaten in meinem Haus-Automation UI anzuzeigen,
gleichzeitig aber nicht immer in der Fritz!Box einloggen zu müssen, um die Daten abzuholen.
Vorteile:
- Das verringert die Laufzeiten der Site
- Man kann die Daten weiter verarbeiten
Meine Lösung:
foncall.bat
Wird alle 10 Minuten über geplante Tasks auf einem Win7 24/7 PC aufgerufen. (XAMPP)
fritzbox_get_foncallslist.php
Holt die Telefondaten von der Fritz!Box und speichert sie ab.
Wurde in einem anderen Tread beschrieben:
Fritz!Box API für PHP (inkl. Login-Sessions)
insertfonlist.php
Jetzt kann man über eine Datenbankabfrage alle gewollten Datensätze auslesen.
ToDo
Anrufbeantworter Daten in die Datenbank importieren
gleichzeitig aber nicht immer in der Fritz!Box einloggen zu müssen, um die Daten abzuholen.
Vorteile:
- Das verringert die Laufzeiten der Site
- Man kann die Daten weiter verarbeiten
Meine Lösung:
foncall.bat
Wird alle 10 Minuten über geplante Tasks auf einem Win7 24/7 PC aufgerufen. (XAMPP)
Code:
@Echo off
echo --------------------------------------
@C:\xampp\php\php.exe -f C:\....\fritzbox_get_foncallslist.php
echo.
echo --------------------------------------
@C:\xampp\php\php.exe -f C:\.....\insertfonlist.php
echo.
echo --------------------------------------
@PAUSE
fritzbox_get_foncallslist.php
Holt die Telefondaten von der Fritz!Box und speichert sie ab.
Wurde in einem anderen Tread beschrieben:
Fritz!Box API für PHP (inkl. Login-Sessions)
insertfonlist.php
PHP:
<?php
// Schaltet Error und Notice Meldungen aus
error_reporting(E_ALL);
ini_set("display_errors", "off");
ini_set("display_startip_errors", "off");
// Stellt die Verbindung zur Datenbank her
include("mysql.php");
//Liest CSV Telefondaten ein
$fp = fopen ("http://.../foncallsdaten.csv","r");
// Zaehl Var
$i = 0;
$areacode = "030";
$maxrecord = "24";
$result = "";
//Holt das Datum von dem letzen Anruf
$querydate = mysql_query("SELECT MAX(DATE) AS 'DATE' from fonlist");
$quantity = mysql_fetch_array($querydate);
$lastdate = $quantity['DATE'];
echo "Letzer Eintrag: ".$lastdate." ";
while ($data = fgetcsv ($fp, 1000, ";")) {
if ($data[5]){
$data[5] = str_replace("Internet:", $areacode, $data[5]);
}
$num = count ($data);
if($i != 0 && $i != 1){
if($lastdate < $data[1]){
$entry = "INSERT INTO fonlist (TYP, DATE, NAME, TELENUMBER, EXTENSION, OWNNUMBER, DURATION)
VALUES ('$data[0]', '$data[1]', '$data[2]', '$data[3]', '$data[4]', '$data[5]', '$data[6]')" ;
$result = mysql_query($entry);
}
}
// Bricht nach der oben definierten Zeile ab
if($i >= $maxrecord){
break;
}else{
$i++;
}
}
fclose ($fp);
if($result == ""){
echo "Es wurden keine neuen Daten gefunden.";
}else{
if ($result == true){
echo "Die Daten wurden gespeichert.";
}else{
echo "Die Daten konnten nicht gespeichert werden.";
}
}
?>
Jetzt kann man über eine Datenbankabfrage alle gewollten Datensätze auslesen.
ToDo
Anrufbeantworter Daten in die Datenbank importieren
Zuletzt bearbeitet: