Zitat:
|
Zitat von PomTom
XML dynamisch generiert bringt "Service unavailable", statisch funktionierts.
|
Seit heute (gestern ... Guten Morgen) habe ich mein ST2030 und bin gleich auf dasselbe Problem gestoßen.
Also versucht, es statisch zu machen: Dasselbe Problem

. Hmmm ... dann hab' ich mir gedacht, ob Du evtl. .xml als Dateiendung verwendet hast: Und siehe da: Es klappt!
Der Quelltext sieht jedoch absolut gleich aus ...

und dann fiel mir der Header ein, den der Webserver schickt!
Also den analysiert und probiert: Das Telefon will den
Content-Length: header haben. Naja,
Content-Type: application/xml kann auch nicht schaden.
Da man die Länge des Ergebnisses erst kennt, wenn alle Daten beisammen sind, musste ich das Script ein bischen umbauen, hier ist es:
PHP-Code:
<?
$URL = 'http://deine.IP.adresse/deinpfad/';
$per_page = '10';
$mysql_conn = mysql_connect('dein.server', 'asterisk', '*****');
mysql_select_db('asterisk', $mysql_conn );
$output = "";
if ( ($FROM=='') and ($TO=='') )
{
//check to see how many
$sql = "SELECT count(phones.fname) as total
FROM phones
WHERE phones.fname LIKE '$NAME%'";
//echo $sql;
$result= mysql_query($sql,$mysql_conn);
$howmany = mysql_fetch_row($result);
if ($howmany[0] > $per_page)
{
$start = 0;
$total = $howmany[0];
$remain = $per_page;
$output .= ("\n");
$output .= ("<ThomsonPhoneMenu>\n");
while ($start < ($total + 1))
{
$limitstart = 'LIMIT '.$start.','.$per_page;
$result = mysql_query("SELECT fname,phone
FROM phones
WHERE fname LIKE '$NAME%' ORDER BY fname $limitstart", $mysql_conn);
$row = mysql_fetch_row($result);
$from = $row[0];
if (($total - $start) < $per_page) { $remain = $total - $start; }
for ($i = 1; $i < $remain; ++$i) { $row = mysql_fetch_row($result); }
$to = $row[0];
$output .= ("<MenuItem>\n");
$output .= ("\t<Name>");
$output .= ($from."->".$to);
$output .= ("</Name>\n");
$output .= ("\t<URL>");
$output .= ($URL."search.php?FROM=".$from."&TO=".$to);
$output .= ("</URL>\n");
$output .= ("</MenuItem>\n");
$start = $start + $per_page;
}
$output .= ("</ThomsonPhoneMenu>\n");
} else {
$result = mysql_query("SELECT fname,lname,phone
FROM phones
WHERE phones.fname LIKE '$NAME%'
ORDER BY fname ", $mysql_conn);
$output .= ("\n");
$output .= ("<ThomsonPhoneBook>\n");
while($row = mysql_fetch_row($result))
{
$output .= ("<DirectoryEntry>\n");
$output .= ("\t<Name>");
$output .= ($row[0].", ".$row[1] );
$output .= ("</Name>\n");
$output .= ("\t<Telephone>");
$output .= ($row[2]);
$output .= ("</Telephone>\n");
$output .= ("</DirectoryEntry>\n");
}
$output .= ("</ThomsonPhoneBook>\n");
}
} else {
$result = mysql_query("SELECT fname,lname,phone
FROM phones
WHERE fname>='$FROM' AND fname<='$TO'
ORDER BY fname", $mysql_conn);
$output .= ("\n");
$output .= ("<ThomsonPhoneBook>\n");
while($row = mysql_fetch_row($result))
{
$output .= ("<DirectoryEntry>\n");
$output .= ("\t<Name>");
$output .= ($row[0].", ".$row[1] );
$output .= ("</Name>\n");
$output .= ("\t<Telephone>");
$output .= ($row[2]);
$output .= ("</Telephone>\n");
$output .= ("</DirectoryEntry>\n");
}
$output .= ("</ThomsonPhoneBook>\n");
}
$len = strlen($output);
header("Content-Type: application/xml");
header("Content-Length: " . $len);
print $output;
?>
Viel Erfolg damit!
Udo