Hallo,
hier ein kleines Skript zum Hochladen des Telefonbuchs auf die Mobilteile. Es funktioniert bei mir mit dem S685 IP, müsste aber theoretisch auch mit den anderen funktionieren.
Bei großen Telefonbüchern sollte man noch z.B.
benutzen und bei
einen größeren wert für 20 einsetzen.
hier ein kleines Skript zum Hochladen des Telefonbuchs auf die Mobilteile. Es funktioniert bei mir mit dem S685 IP, müsste aber theoretisch auch mit den anderen funktionieren.
PHP:
<?php
function PostToHost($host, $path, $referer, $data_to_send, $headers = array(), $boundary = "") {
$fp = fsockopen($host, 80);
fputs($fp, "POST $path HTTP/1.1\r\n");
fputs($fp, "Host: $host\r\n");
fputs($fp, "Referer: $referer\r\n");
if ($boundary != "")
fputs($fp, "Content-type: multipart/form-data; boundary=$boundary\r\n");
else
fputs($fp, "Content-type: application/x-www-form-urlencoded\r\n");
fputs($fp, "Content-length: ". strlen($data_to_send) ."\r\n");
fputs($fp, "Connection: close\r\n");
foreach($headers as $item) {
fputs($fp, $item."\r\n");
}
fputs($fp, "\r\n");
fputs($fp, $data_to_send);
while(!feof($fp)) {
$res .= fgets($fp, 128);
}
fclose($fp);
return $res;
}
function GetFromHost($host, $path, $referer, $headers) {
$fp = fsockopen($host, 80);
fputs($fp, "GET $path HTTP/1.1\r\n");
fputs($fp, "Host: $host\r\n");
fputs($fp, "Referer: $referer\r\n");
fputs($fp, "Connection: close\r\n");
foreach($headers as $item) {
fputs($fp, $item."\r\n");
}
fputs($fp, "\r\n");
while(!feof($fp)) {
$res .= fgets($fp, 128);
}
fclose($fp);
return $res;
}
function uploadPhonebook($vcfText, $ip, $pass, $ports = array(0), $debug = false) {
$res = PostToHost($ip, "/login.html", "http://$ip/", "language=2&password=$pass");
if ($debug) echo "<h2>Login</h2>".nl2br($res);
if (eregi("Set-Cookie: *key=([^;]+);", $res, $regs)) {
$cookie = $regs[1];
}
if ($cookie) {
$res = GetFromHost($ip, "/home.html", "http://$ip/login.html", array("Cookie: key=$cookie"));
if ($debug) echo "<h2>Home</h2>".nl2br($res);
foreach($ports as $port) {
$boundary = "----------------------234724823483";
$data = "--".$boundary."\r\n";
$data .= "Content-Disposition: form-data; name=\"tdt_function\"\r\n\r\n2\r\n";
$data .= "--".$boundary."\r\n";
$data .= "Content-Disposition: form-data; name=\"tdt_handset_port\"\r\n\r\n$port\r\n";
$data .= "--".$boundary."\r\n";
$data .= "Content-Disposition: form-data; name=\"tdt_file\"; filename=\"upload.vcf\"\r\n";
$data .= "Content-Type: text/vcard\r\n\r\n";
$data .= $vcfText."\r\n";
$data .= "--".$boundary."--";
if ($debug) echo nl2br($data);
$res = PostToHost($ip, "/settings_telephony_tdt.html", "http://$ip/settings_telephony_tdt.html", $data, array("Cookie: key=$cookie"), $boundary);
if ($debug) echo "<h2>Upload</h2>".nl2br($res);
$i=0;
do {
sleep(1);
$res = GetFromHost($ip, "/status.html", "http://$ip/settings_telephony_tdt.html", array("Cookie: key=$cookie"));
if ($debug) echo "<h2>Status</h2>".nl2br($res);
if (eregi("var *status *= *([0-9]+);", $res, $regs)) {
$status = $regs[1];
}
} while ($status < 16 && $i++<20);
$res = GetFromHost($ip, "/stoptdt.html", "http://$ip/status.html", array("Cookie: key=$cookie"));
if ($debug) echo "<h2>Stop</h2>".nl2br($res);
}
$res = GetFromHost($ip, "/logout.html", "http://$ip/home.html", array("Cookie: key=$cookie"));
if ($debug) echo "<h2>Logout</h2>".nl2br($res);
}
}
?>
Bei großen Telefonbüchern sollte man noch z.B.
PHP:
set_time_limit(600);
PHP:
while ($status < 16 && $i++<20);