Fritz!Box foncallsdaten.csv in MySQL importieren (XAMPP)

fipshomematic

Neuer User
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)
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:
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.