Einzelnen Beitrag anzeigen
Alt 09.09.2006, 01:01   #2
udosw
Moderator
 
Benutzerbild von udosw
 
Registriert seit: 20.03.2004
Ort: Hannover
Beiträge: 1.034
Gelöst!

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;
   
$resultmysql_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."&amp;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
__________________
Produktion: FBF 7270 (KD/16MB) 54.04.85-17891 mit Freetz-devel 5284
Experimental: FBF 7270 (1&1/16MB) zum Testen
WLAN: Fritz!WLAN Repeater N/G
IP-Phones:
Fritz MT-F, MT-D | Fritz!Mini | Grandstream BT110 | Thomson ST2030 | Nokia E71 (als SIP-Phone) | Snom 300 | VP6500
VSP: Sipgate, Betamaxe, Kabelphone u.a. - ISP: Kabeldeutschland 32000 / 2000 Fon/Fax: Sipgate (portiert von QSC IP-Phonie privat free)
Beruflich: diverse Asteriske 1.2.xx / 1.4.xx / 1.6.xx (Classic / Bristuff / Xorcom)
udosw ist offline   Mit Zitat antworten