Da ich komplett auf Internet umgestellt habe gibt es auch eine neue Liste. Hier werden jetzt auch alle Nummern angezeigt welche nicht übertragen werden.
Es sind einige Anpassungen zumachen.
Das ganze sieht dann so aus wie im Bild unten.
<?
$fritzbox_ip = 'fritz.box';
$fritzgui = 'http://fritz.box/cgi-bin/webcm';
$fritzseite = '../html/de/menus/menu2.html';
$filename = IPS_GetKernelDir()."webfront\\user\\Fritzbox\\Voip.txt";
$voipCsvR = IPS_GetKernelDir()."webfront\\user\\Fritzbox\\VoipRainer.csv";
$voipCsvG = IPS_GetKernelDir()."webfront\\user\\Fritzbox\\VoipGabi.csv";
$voipCsvF = IPS_GetKernelDir()."webfront\\user\\Fritzbox\\VoipFax.csv";
$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);
curl_close($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"));
$login = array('getpage' => $fritzseite, 'login:command/response' => $response);
$sendlogin = http_post_fields($fritzgui, $login);
preg_match('@<input type="hidden" name="sid" value="([A-Fa-f0-9]{16})" id="uiPostSid">@i', $sendlogin, $matches);
if (isset($matches[1]) && $matches[1] != '0000000000000000')
{
$SID = $matches[1];
}
else
{
echo "Fehler: Login fehlgeschlagen";
return;
}
}
$voip = array('getpage' => $fritzseite, 'sid' => $SID, 'var:menu' => 'fon', 'var:pagename' => 'quality');
$getVoip = http_post_fields($fritzgui, $voip);
$fileHandle = @fopen($filename, 'wb+');
fwrite($fileHandle, $getVoip);
fclose($fileHandle);
$voipList = file_get_contents("../webfront/user/Fritzbox/Voip.txt");
$filevoipR = @fopen($voipCsvR, 'wb+');
fwrite($filevoipR, "Typ;Datum;Rufnummer;Eigene Rufnummer;IP-Adresse;Dauer
");
$filevoipG = @fopen($voipCsvG, 'wb+');
fwrite($filevoipG, "Typ;Datum;Rufnummer;Eigene Rufnummer;IP-Adresse;Dauer
");
$filevoipF = @fopen($voipCsvF, 'wb+');
fwrite($filevoipF, "Typ;Datum;Rufnummer;Eigene Rufnummer;IP-Adresse;Dauer
");
$list = explode('document.write(', $voipList);
for ($i = 2; $i < count($list); $i++)
{
$ausgabe = $list[$i];
$nr = explode('TrQoS("', $ausgabe);
if(isset($nr[1]))
{
if(substr($nr[1], 0, 6) == "xxxxxx") // Nummmer 1 anpassen 6 stellig
{
$aktiv = explode('"', $nr[1]);
$ip = $aktiv[8];
$aktiv = str_replace("_", ";", $aktiv[0]);
$oldString = explode(";", $aktiv);
$newString = $oldString[1].";".$oldString[2].";"."Internet: ".$oldString[0].";".$ip.";".$oldString[3];
$zeit = substr($newString, 11, 5)."
";
if(strpos($zeit, ";") !== false)
{
$newString = substr_replace($newString, "0", 11, 0);
}
if(substr($newString, -7) == "0:00:00")
{
$typ = "2";
}
if(substr($newString, 17, 1) == "+")
{
$newString = substr_replace($newString, "0", 17, 3);
$typ = "1";
}
else
{
$newString = substr_replace($newString, "0", 17, 2);
$typ = "3";
}
$newString = $typ.";".$newString;
if(substr($newString, 19, 5) == "xxxxx") // Ortskennnummer anpassen 5 stellig
{
$newString = substr_replace($newString, "", 19, 5);
}
fwrite($filevoipR, $newString."
");
}
elseif(substr($nr[1], 0, 7) == "xxxxxxx") // Nummer 2 anpassen 7 stellig!
{
$aktiv = explode('"', $nr[1]);
$ip = $aktiv[8];
$aktiv = str_replace("_", ";", $aktiv[0]);
$oldString = explode(";", $aktiv);
$newString = $oldString[1].";".$oldString[2].";"."Internet: ".$oldString[0].";".$ip.";".$oldString[3];
$zeit = substr($newString, 11, 5)."
";
if(strpos($zeit, ";") !== false)
{
$newString = substr_replace($newString, "0", 11, 0);
}
if(substr($newString, -7) == "0:00:00")
{
$typ = "2";
}
if(substr($newString, 17, 1) == "+")
{
$newString = substr_replace($newString, "0", 17, 3);
$typ = "1";
}
else
{
$newString = substr_replace($newString, "0", 17, 2);
$typ = "3";
}
$newString = $typ.";".$newString;
if(substr($newString, 19, 5) == "xxxxx") // Ortskennnummer anpassen
{
$newString = substr_replace($newString, "", 19, 5);
}
fwrite($filevoipG, $newString."
");
}
elseif(substr($nr[1], 0, 6) == "xxxxxx") // Nummer 3 anpassen 6 stellig
{
$aktiv = explode('"', $nr[1]);
$ip = $aktiv[8];
$aktiv = str_replace("_", ";", $aktiv[0]);
$oldString = explode(";", $aktiv);
$newString = $oldString[1].";".$oldString[2].";"."Internet: ".$oldString[0].";".$ip.";".$oldString[3];
$zeit = substr($newString, 11, 5)."
";
if(strpos($zeit, ";") !== false)
{
$newString = substr_replace($newString, "0", 11, 0);
}
if(substr($newString, -7) == "0:00:00")
{
$typ = "2";
}
if(substr($newString, 17, 1) == "+")
{
$newString = substr_replace($newString, "0", 17, 3);
$typ = "1";
}
else
{
$newString = substr_replace($newString, "0", 17, 2);
$typ = "3";
}
$newString = $typ.";".$newString;
if(substr($newString, 19, 5) == "xxxxx") // Ortskennnummer anpassen
{
$newString = substr_replace($newString, "", 19, 5);
}
fwrite($filevoipF, $newString."
");
}
}
}
fclose($filevoipR);
fclose($filevoipG);
fclose($filevoipF);
$filename = "../webfront/user/Fritzbox/VoipRainer.csv";
$id = fopen($filename, "r");
$i = 0;
while(($data = fgetcsv($id, filesize($filename), ";")) && $i < 10)
{
$i++;
if ($data[0] == 1) $data[0] = "<img src=\"../user/icons/fixed/Callin.png\" title=\"eingehender Anruf\">";
if ($data[0] == 2) $data[0] = "<img src=\"../user/icons/fixed/Callinfailed.png\" title=\"Anruf in Abwesenheit\">";
if ($data[0] == 3) $data[0] = "<img src=\"../user/icons/fixed/Callout.png\" title=\"ausgehender Anruf\">";
$table[] = $data;
}
fclose($id);
$str = "<table width='100%'align='center'>";
foreach($table as $row)
{
$str.= "<tr>";
foreach($row as $data)
$str.= '<td>'.$data.'</td>';
$str.= "</tr>";
}
$str .= "</table>";
SetValue(29663 /*[Fritzbox\Anrufliste Rainer]*/, $str);
$file = "../webfront/user/Fritzbox/VoipGabi.csv";
$id1 = fopen($file, "r");
$i = 0;
while(($data1 = fgetcsv($id1, filesize($file), ";")) && $i < 10)
{
$i++;
if ($data1[0] == 1) $data1[0] = "<img src=\"../user/icons/fixed/Callin.png\" title=\"eingehender Anruf\">";
if ($data1[0] == 2) $data1[0] = "<img src=\"../user/icons/fixed/Callinfailed.png\" title=\"Anruf in Abwesenheit\">";
if ($data1[0] == 3) $data1[0] = "<img src=\"../user/icons/fixed/Callout.png\" title=\"ausgehender Anruf\">";
$table1[] = $data1;
}
fclose($id1);
$str = "<table width='100%'align='center'>";
foreach($table1 as $value)
{
$str.= "<tr>";
foreach($value as $data1)
$str.= '<td>'.$data1.'</td>';
$str.= "</tr>";
}
$str .= "</table>";
SetValue(53297 /*[Fritzbox\Anrufliste Gabi]*/, $str);
$file = "../webfront/user/Fritzbox/VoipFax.csv";
$id2 = fopen($file, "r");
$i = 0;
while(($data2 = fgetcsv($id2, filesize($file), ";")) && $i < 10)
{
$i++;
if ($data2[0] == 1) $data2[0] = "<img src=\"../user/icons/fixed/Callin.png\" title=\"eingehender Anruf\">";
if ($data2[0] == 2) $data2[0] = "<img src=\"../user/icons/fixed/Callinfailed.png\" title=\"Anruf in Abwesenheit\">";
if ($data2[0] == 3) $data2[0] = "<img src=\"../user/icons/fixed/Callout.png\" title=\"ausgehender Anruf\">";
$table2[] = $data2;
}
fclose($id2);
$str = "<table width='100%'align='center'>";
foreach($table2 as $value)
{
$str.= "<tr>";
foreach($value as $data2)
$str.= '<td>'.$data2.'</td>';
$str.= "</tr>";
}
$str .= "</table>";
SetValue(47120 /*[Fritzbox\Fax]*/, $str);
?>