Da ich das für mich sehr nützlich code-schnipsel von JNK (callmonitor.pl und calllist.php) schon einige Zeit nutze wollte ich evtl. mal versuchen das "Problem" mit der Nutzung des Telefonbuches der FB anzugehen:
Also habe ich ein kleines php-script, welches unter /var/www liegt und mir per cron regelmäßig das Telefonbuch der FB herunterlädt (als fb_telefonbuch.xml)
Dann habe ich im callmonitor.pl den hash %remotenumbers mit den Daten dieses Telefonbuches gefüttert:
Damit bekomme ich Namen und Typ des Anrufers / des Angerufenen (falls zu einer Person mehrere Telfonnummern bestehen wie privat, mobil, Arbeit ...)
Ergebnis sieht so aus:
snapshot.jpg
Vielleicht kann es ja jemand gebrauchen.
Zitat von mfd
Beitrag anzeigen
PHP-Code:
<?php
// Fritzbox Telefonbuch auslesen und abspeichern
// -----------------------------------------------------------------------------
// Fritzbox User und Password
$user = "HIER_BITTE_ERSETZEN";
$pass = "HIER_BITTE_ERSETZEN";
// Telefonbuch in Datei speichern
$save = true;
// ID des Telefonbuches
$id = 0;
//Pfad zur Datei
$filepath = "fb_telefonbuch.xml";
// -----------------------------------------------------------------------------
$client = new SoapClient(
null,
array(
'location' => "http://fritz.box:49000/upnp/control/x_contact",
'uri' => "urn:dslforum-org:service:X_AVM-DE_OnTel:1",
'login' => $user,
'password' => $pass
)
);
$result = $client->GetPhonebook(new SoapParam($id, 'NewPhonebookID'));
$phonebook = @file_get_contents($result['NewPhonebookURL']);
// Datei schreiben
if($save == true){
// Datei öffnen, wenn nicht vorhanden dann wird die Datei erstellt.
$handler = fopen($filepath, "wb+");
// Dateiinhalt in die Datei schreiben
fwrite($handler , $phonebook);
// Datei schließen
fclose($handler);
}
else{
print_r($phonebook);
}
?>
Code:
use XML::Simple; my $xml = new XML::Simple ; my $data = $xml->XMLin("/var/www/fb_telefonbuch.xml" , ForceArray => ['number']); my %remotenumbers; for my $e ( @{$data->{phonebook}->{contact}} ) { my $name= $e->{person}->{realName}; for my $f ( @{$e->{telephony}->{number}} ) { my $number= $f->{content}; my $type= $f->{type}; $remotenumbers{$number}={ name => $name."(".$type.")"}; } }
Ergebnis sieht so aus:
snapshot.jpg
Vielleicht kann es ja jemand gebrauchen.
Kommentar