Es klappt jetzt wunderbar. Danke für Deine Hilfe. Jetzt noch eine Einbindung im Designer, das wärs.
cu uwe
Es klappt jetzt wunderbar. Danke für Deine Hilfe. Jetzt noch eine Einbindung im Designer, das wärs.
cu uwe
Hallo Uwe,
woran lag es denn? Gib den anderen dein Wissen doch bitte auch weiter.
An das Memo Feld mach ich mich die Tage mal ran und poste dann hier den Code…
Hallo Uwe,
bevor ich in die falsche Richtung code … wie stellst du dir denn das im Designer theoretisch vor? Würde es dir reichen wenn die Liste, statt als HTML Datei, als String in einer Varieabelen landen würde?
Ich wollte mich auch noch bei allen bedanken,die mich bei dem Script auf den richten Weg begracht haben …
Danke @zapp … für das „Mutterscript“ AnswerMachine …
Danke @Tonic1024 für den Tipp mit „simplexml()“ …
Danke @pharsy für den Tipp wie man die Fritzbox anbinden kann !
Ich habe nur das neue Script von Dir mit der einen Klammer mehr verwendet und schon ging es.
als String in einer Varieabelen würde mir genügen, wer super wenn Du es machen würdest.
Nochmal vielen Dank
cu uwe
Hallo Uwe,
da das mit dem String recht einfach ist, hab ich das „mal schnell“ umgesetzt.
Anbei mein Scriptentwurf. Wenn du es startest (Execute) siehst du im Fenster darunter die Ausgabe. Ich habe die Felder mit TABs getrennt. Kannst du löschen oder hinzufügen von " " die Tabs verändern. Wenn die Ausgabe für dich ok ist, dann lege im ip-symcon die String-Variabele „Fritzlog“ an und entferne die beiden „//“ vor „SetValueString()“. Gib mal Feedback ob es so ok ist.
<?
/*
*******************************
IP-SYMCON Event Scripting
*******************************
File : Anrufliste.ips.php
Trigger : FB_Init Script -> bei Änderungen von -> (string)Var=Fritzbox
Interval : Einmalige Ausführung nach 30 Sekunden verzögerung.
*/
// Jetzt gehts los ....
IPS_SetScriptTimer('Anrufliste_FB',0) ;
if (file_exists('C:\Programme\JFritz\jfritz.calls.xml'))
{
// Ggfs. Pfad anpassen !!!
$xml = simplexml_load_file('C:\Programme\JFritz\jfritz.calls.xml');
}
else {
exit("Konnte Datei nicht laden. ");}
$count=1;
setlocale (LC_ALL, 'German_Germany.1252');
$Fritzlog = strftime('Aktualisiert am %A, den %d.%m.%Y, um %H:%M Uhr');
$Fritzcache = "Zeitpunkt Rufnummer Name auf MSN Calltype
\r" ;
$Fritzlog = $Fritzlog."
\r".$Fritzcache."
" ;
// Ab hier wird die XML Datei (jfritz.calls.xml) zerlegt.
foreach ($xml->entry as $entry) {
// Hier wird die Zeilenanzahl festgelegt.
if ($count == 30)
{
// SetValueString("Fritzlog",$Fritzlog);
echo $Fritzlog ;
return ;
}
$calltype = $entry->attributes() ;
$date = $entry->date ;
$caller = $entry->caller ;
if ($caller == "") {$caller = "Keine Nummer" ;}
$name = findNumberJF($caller) ;
$caller = str_replace ( '+49', '0', $caller) ;
if (($name == "Unbekannt") && ($caller != "Keine Nummer")) {
$name = findNumberDE($caller) ; }
$port = $entry->port ;
$route = $entry->route ;
$duration = $entry->duration ;
// die $route Abfrage filtert z.B. (bei mir) eine Faxnumer aus.
if ((($calltype == "call_in") OR ($calltype == "call_in_failed")) && $route != "24") {
$count = $count+1 ;
// Übersetzung von deutschen Umlauten
$name = str_replace("Ä","Ä",$name) ;
$name = str_replace("ä","ä",$name) ;
$name = str_replace("Ö","Ö",$name) ;
$name = str_replace("ö","ö",$name) ;
$name = str_replace("%F6","ö",$name) ;
$name = str_replace("%FC","ü",$name) ; //neu
$name = str_replace("Ü","Ü",$name) ;
$name = str_replace("ü","ü",$name) ;
$name = str_replace("ß","ß",$name) ;
$Fritzlog = $Fritzlog.$date." ".$caller." ".$name." ".$route." ".$calltype."
";
}
}
// wenn dir die Ausgabe gefällt, einfach die beiden Striche vor GetValue.... entfernen. Vorher die Stringvariablele im ip-symcon anlegen !!
SetValueString("Fritzlog",$Fritzlog);
echo $Fritzlog ;
function findNumberJF($caller)
{
// Ggfs. Pfad anpassen !!!
if (file_exists('C:\Programme\JFritz\jfritz.phonebook.xml'))
{
// Ggfs. Pfad anpassen !!!
$xml = simplexml_load_file('C:\Programme\JFritz\jfritz.phonebook.xml');
}
else {
exit("Konnte Datei nicht laden. ");}
$count=0;
foreach ($xml->entry as $entry) {
$nummer = $entry->phonenumbers->number ;
$name = $entry->name->firstname." ".$entry->name->lastname ;
if ($nummer == $caller) {
$count=$count+1 ;
$treffer=$name ;
}
}
if ($count == 1)
{
if ($treffer == "") {$treffer = "Falscher Eintrag im PB" ;}
return $treffer;
}
elseif ($count > 1) {
// Prüft auf -> "Mehr als einmal im Phonebook?".
return "Various Names";
}
else {
// Keinen Eintrag gefunden.
return "Unbekannt" ;
}
}
function findNumberDE($caller)
{
$url_orig="http://www.telefonauskunft.de/inverseSearch.php?strasse=&newSearch=1&sid=lm996s9alvjlo7f5t7b1g1ngs2&vollstaendig=#TEL#";
$url=str_replace("#TEL#","$caller",$url_orig);
$handle=fopen("$url", "r");
if (!$handle){
// Kann URL nicht öffnen
echo("ERROR : Kann URL nicht öffnen : '$url'
");
}
$lineNb = 0;
$searchTag0 = '&Name=';
$searchTag1 = '&Vorname=';
$searchTag2 = '&Strasse';
$found = 0 ;
while(!$found && !feof($handle)) {
$lineNb++;
$buffer = fgets($handle);
if (strpos($buffer, $searchTag0) !== false) {
$found = 1 ;
$startLN= (strpos($buffer, $searchTag0)+6) ;
$endeLN = strpos($buffer, $searchTag1) ;
$Lastname = substr($buffer, $startLN, ($endeLN-$startLN)) ;
$startFN= (strpos($buffer, $searchTag1)+9) ;
$endeFN = strpos($buffer, $searchTag2) ;
$Firstname = substr($buffer, $startFN, ($endeFN-$startFN)) ;
$foundName1 = $Firstname." ".$Lastname."
\r" ;
$foundName1 = str_replace('+', ' ', $foundName1);
}
else {$foundName1 = "Unbekannt";}
}
fclose($handle);
return $foundName1;
}
?>
Ich Danke Dir. Klappt und es ist so richtig. Habe daraus auch gleich gelernd.
Nochmals vielen Dank für die schnelle Hilfe.
cu uwe
Hi Uwe,
lass doch bitte mal einen Screenshot sehen, wenn du das im Designer umgesetzt hast. Würde mich mal interessieren wie das jetzt bei dir ausieht …
So, hier nun der letzte Stand … mit Wahlhilfe beim anklicken eines Eintrags … reverser Nummern zu Name Suche und Konfigurationsseite …
so, wie anfänglich versprochen …
Mein Fritzbox Plugin ist nun komplett in das ipshomecontrol von pleibling integriert worden. Hier zum aktuellen Infos ->
http://www.mce-community.de/forum/index.php?showtopic=14492&st=225#
und hier sind nochmal meine Scripte zusammengefasst … ->
http://www.mce-community.de/forum/index.php?showtopic=19806&st=0&#
Screenshots gibt es dort auch …
Hallo Obicom,
und wo ist das Modul fuer WIIPS ? Leider sind die Scripte nicht verwendbar, da sie nicht unter der GPL laufen
Gruss Torro
hi Torro … was muss ich machen damit sie „verwendbar“ sind?
Du darfst sie gerne verwenden …
Hallo obicom,
da muessten wir vielleicht mal telefonieren. Kannst Du mir per PM Deine Nummer mailen?, dann rufe ich Dich gern an…ist vielleicht am einfachsten.
Gruss Torro
na, da besteht ja reges interesse. ich denke die wählfunktion war auch eine klasse idee :).
endlicht hat man die box zur kleinen telefonanlage umgebaut die man auch in der hausautomation verwenden kann.
da hat obicom sich viel mühe gegeben und ein schickes plugin gezaubert :).
der download ist übrigens hier zu finden: http://www.ipshomecontrol.de/www/docs/download.php
Auch auf die Gefahr, dass ich gescholten werde.
Ich versuche dIe Fritzbox 7170 ohne mce in IPS einzubinden und bekomme beim Starten der …
<b>Warning</b>: fopen(C:\Programme\IP-SYMCON\web\fritzbox\fb_calls.php) [<a href=‚function.fopen‘>function.fopen</a>]: failed to open stream: No such file or directory in <b>C:\Programme\IP-Symcon\scripts.currentscript</b> on line <b>20</b><br />
und danach eine ganze Reihe weiterer Fehlermeldungen.
Jetzt such ich das Script „fb_calls.php“, hab alle Beiträge durchsucht und finde es nicht, obwohl ich meine, das Scipt irgendwo gesehen zu haben.
Was mich auch wundert, im Ordner …\web\fritzbox soll es sein. Habe ich da was überlesen zu diesem Ordner ?
Die Anzeigen des Status aus der Variablen fritzbox sehe ich im Designer.
Hallo Obi
besteht die Möglichkeit die benötigten Scripte auch hier bereit zu stellen oder ist es zwingend notwendig sich in der MCE Comm zu registrieren??
Gruß
Jens
Ok, wer lesen kann ist klar im Vorteil … steht ja schon alles hier im Thread.:rolleyes:
Allerdings habe ich jetzt das Problem, das die Rückwärtssuche scheinbar nicht funktioniert. Ich kann das Script ausführen und es werden auch alle Anrufe dargestellt, nur leider ohne Namen … (in der Fritzbox selber sind noch keine abgespeichert und bei Rückwärtssuche mit JFritz wird leider auch nur der Ort gefunden … kein Name) beim Namen steht derzeit nix … nicht mal unbekannt.
Funktioniert die URL einfach nicht oder ist da noch ein Fehler im Script selbst?? Ich sehe auch keine Verzögerung, die sich evtl. durch das Abgleichen der Namen ergeben könnte.
Weiß jemand Rat?
Gruß
Jens
Hi!
Ich suche über klicktel- dasoertliche hat seinen Seitenaufbau geändert so dass die url tatsächlich nicht mehr stimmt. Such doch mal nach meinem Beitrag- da ist eine Anleitung dafür! (ich hoffe, das ist, was du suchst…)
LG; Marcus