function _err($msg = '')
{
    @ob_end_clean();
    @ob_start();
    echo '<!-- ', _grandstream_xml_esc(__('Fehler') . ': ' . $msg), ' -->', "\n";
    if (!headers_sent()) {
        header('Content-Type: text/plain; charset=utf-8');
        header('Content-Length: ' . (int) @ob_get_length());
    }
    @ob_end_flush();
    exit(1);
}
 function _specificXML()
 {
     $xml = '';
     $xml .= '<Screen>' . "\n";
     # Bitmaps ausgeben
     if ($this->_bitmaps) {
         kSort($this->_bitmaps);
         foreach ($this->_bitmaps as $pos => $bitmap) {
             $xml .= '<DisplayBitmap>' . "\n";
             $xml .= '<Bitmap>' . $bitmap['data'] . '</Bitmap>' . "\n";
             $xml .= '<X>' . $bitmap['x'] . '</X>' . "\n";
             $xml .= '<Y>' . $bitmap['y'] . '</Y>' . "\n";
             $xml .= '</DisplayBitmap>' . "\n";
         }
     }
     # Texte ausgeben
     if ($this->_strings) {
         kSort($this->_strings);
         foreach ($this->_strings as $pos => $string) {
             $xml .= '<DisplayString';
             if ($string['data']) {
                 $xml .= ' ' . $string['data'];
             }
             $xml .= '>' . "\n";
             $xml .= '<DisplayStr>' . _grandstream_xml_esc($string['text']) . '</DisplayStr>' . "\n";
             $xml .= '<X>' . $string['x'] . '</X>' . "\n";
             $xml .= '<Y>' . $string['y'] . '</Y>' . "\n";
             $xml .= '</DisplayString>' . "\n";
         }
     }
     $xml .= '</Screen>' . "\n";
     return $xml;
 }