XML "Sammlung"

HobbyStern

Aktives Mitglied
Mitglied seit
5 Dez 2005
Beiträge
1,844
Punkte für Reaktionen
0
Punkte
36
Hallo Gemeinde,

nach langer Zeit ohne Snoms XML Erweiterung mal eine ganz dämliche Frage ... :

--> Gibt es bei Snom keine "XML Sammlung" ? Ich habe mich gerade durch Google und dann die SNOM Pages gewühlt, ausser einigen bescheidenen Anwendungen (Wetter, Calc, TBook) habe ich aber recht wenig gefunden, klar - die Anleitungen.

Ich dachte eigentlich das man nach 2 Contesten und viel Rufen das alle mitmachen sollen ;) auch mal ein paar Anwendungen groß publiziert, sozusagen "serienreif" herausreicht, damit man dann auch das XML weiter fördern kann, mir klingelt es noch in den Ohren, vor drei Jahren hatte foschi hier ein interessantes Gespräch mit ... mhmmm...suchen...ah!Sticky!....NeoMagic!

NeoMagic schrieb damals ... :

Wir sind natürlich gespannt, was sich für kreative Ideen entwickeln.

Das war ich auch und habe damals meine Ideen für XML erstmal weggepackt - in der Hoffnung von den kreativen Ideen auch etwas abzubekommen, nun - nach 3 Jahren findet man auf der HP von Snom dieses hier ... :

404 Not found.

[BREAK!]

Ich bin gerade über diesen Herren hier gestolpert.

Mhmm...ich denke ich warte einfach bis jemand aus dem Judging Panel mir vielleicht zu helfen vermag und ggf. die Ehre hat mir Dorfdepp mal zu sagen ob es soetwas wie ein AppDirectory gibt, denn schliesslich war dies das versprechen von SNOM in 2007, wie auch in 2010.

Code:
Each contestant may submit up to three  entries for each category. The  application source code must be made  available to the community under  the [URL="http://www.gnu.org/licenses/gpl.html"]GPL GNU license[/URL] (over our plattform as a download).

Wäre nett wenn man sich darin mal umsehen könnte, bis heute können meine Browser nur Uhrzeit, ein bisschen Telefonbuch und das Wetter auf Wunsch anzeigen, das ist süß - das ist nett - da geht doch sicher mehr, denn ..:

NeoMagic schrieb:
Es ist soooo viel möglich und die meisten nutzen die Funktionen gar nicht.

:-Ö
 
Finde es auch merkwürdig, dass die schon wieder einen XML-Wettbewerb machen, ohne dass die Schnittstelle mittlerweile besser wurde.

Ich hatte 2007 mit einem recht einfachen Spiel (SnomSnake) gewonnen, habe aber seitdem nichts mehr ernsthaft für Snom entwickelt.

Es gibt so viele Unzulänglichkeiten die Snom nicht in den Griff bekommt. Von einer Firmware zur anderen geht was kaputt, die Schnittstellen sind nicht durchdacht, bei manchen Bugs frage ich mich ob es bei Snom eine Qualitätskontrolle gibt, etc.
Irgendwas ist mir jedes Mal aufgefallen, wenn ich was probiert habe. (ja, ich habe Bugreports geschrieben)

Macht einfach keinen Spaß.

Schönes Beispiel:
Man kann seit einiger Zeit per XML LEDs an den Funktionstasten anmachen. Problem dabei: Ich kann nur einen XML Aufruf gleichzeitig nutzen. Wenn ich jetzt mehrere Anwendungen einsetze (z.B. Telefonbuch und irgendeine Statusanzeige, die mir eine LED anmacht) führt das zwangsläufig zu Kollisionen wenn mir durch eine Push-Nachricht der LED Status geändert wird während ich im Telefonbuch bin.

Irgendwann wurde die X-Taste geändert, dass sie eine XML Seite zurück geht statt den Browser beendet. Das hat bei mir eine Anwendung zerschossen. Leider hat man keine Möglichkeit das zu beeinflussen.

Wenn man sich dann mal im Vergleich die Dokumentation von Aastra oder Cisco anschaut, dann merkt man das Snom einfach nur eine gute Schnittstelle überaus schlecht kopiert hat. (Aastra hat mit ziemlicher Sicherheit auch kopiert, aber wenigstens gut)

Die Aastra Schnittstelle hat zwar einige Defizite beim Darstellen von Bildern und beim Umdefinieren von Tasten, ist aber insgesamt deutlich besser in jeder Hinsicht (Funktionsumfang, Dokumentation, Struktur).

Was bei mir gerade so an Software läuft (bzw. lief, ich bin immer noch so halb im Umzug):

Bei mir ist ein Python-Programm im Einsatz um USB-schaltbare Steckdosenleisten und DMX-LED-Scheinwerfer per Telefon zu steuern (DMX ist ein Lichtsteuerprotokoll aus dem Bereich der Veranstaltungstechnik). Das Programm unterstützt Aastra, Snom und iPhone.

Für Snom hatte ich noch versucht ein Frontend für XBMC zu schreiben, das war aber eines der Versuche wo mir ein Bug relativ früh einen Strich durch die Rechnung gemacht hat.

EDIT: Beim aktuellen Wettbewerb wurde die Abgabefrist um einen Monat nach hinten verschoben. Vermute mal sie haben zu wenig Teilnehmer (War tendenziell 2007 auch so). Falls also bis 4.10. noch jemand Lust hat was zu basteln...
 
hm... versuche auch gerade, die Beiträge zu dem vergangenen XML Contests/World Cups/Championships zu finden... nada. Irgendwie seltsam, da snom da jeweils so wert auf OpenSource-Code gelegt hat...

Edit/Update:
Stand heute sind zumidnest die Seiten mit den Gewinnern / Apps hier:
The XML-Application Championship / World Cup (2010)
XML Contest 2007
...den Code bzw. nähere Informationen finde ich aber immer noch nicht...
 
Kannst Dich beruhigen - ich habe und finde auch nichts :noidea:

Es wäre doch eine große Sache wenn man ein "AddOn" Verzeichnis hätte - meinetwegen auch ganz rudimentär und gaanz einfach zu listen - Hauptsache man könnte einen "Mehrwert" für die Snoms generieren ohne selber in die Konstruktion zu gehen..

Gute Beispiele finde ich hier die Mozilla Gruppe, TB oder FF.

LG Stefan
 
Hm, aus meinen Kontakten zu snom folgere ich, dass die Marketing-Abteilung dazu anscheinend keine Zeit hat, bzw. keinen Mehrwert sieht. Auch bei snom wird es wohl so sein dass sich niemand findet der das einrichtet/pflegt.

Habt ihr schonmal bei Aastra nachgeschaut ob es dort genauso ist?
 
[btw - komme gerade aus dem urlaub, ippf ist wieder online und alles ist so....mhm....blau-neu...]

Code:
bzw. keinen Mehrwert sieht.

Dann kann ich Snom aber echt nicht mehr helfen - sollte man Apple niemanden gefunden haben der die dummen und nervigen "Apps" sortiert und aktualisiert wäre die ganze appel branche wohl auch wo anders..

nun gut, so isses halt..

LG Stefan
 
Moin

...nach langer Zeit ohne...

...auch nur einer einzigen XML hier, fang ich mal an.

Lauffähig auf snom 320, einen Webserver der XML ausliefert vorausgesetzt.
Actionscriptaufruf auf irgendeine Taste legen, zum Beispiel: http://deepbase:4200/snom320/server.xml

Rufnummerntelefonbuchkarussel

server.xml
Code:
<?xml version="1.0" encoding="utf-8"?>
<SnomIPPhoneText speedselect="select" clearlight="true" state="relevant">
<Title></Title>
<Prompt></Prompt>
<Text>Nummernkarussel</Text>
<Led number="1">On</Led>
<Led number="2">On</Led>
<Led number="3">On</Led>
<Led number="4">On</Led>
<Led number="5">On</Led>
<Led number="6">On</Led>
<Led number="7">On</Led>
<Led number="8">On</Led>
<Led number="9">On</Led>
<Led number="10">On</Led>
<Led number="11">On</Led>
<Led number="12">On</Led>
<Fetch mil="2000">http://fritz.box:4200/snom320/menu.xml</Fetch>
</SnomIPPhoneText>

menu.xml
Code:
<?xml version="1.0" encoding="UTF-8"?>
<SnomIPPhoneDirectory speedselect="select" clearlight="true" state="relevant">
<Fetch mil="2000">http://fritz.box:4200/snom320/menu1.xml</Fetch>
<Title></Title>
<Prompt></Prompt>
<DirectoryEntry>
<Name>Rundruf</Name>
<Telephone>**9</Telephone>
</DirectoryEntry>
</SnomIPPhoneDirectory>

menu1.xml
Code:
<?xml version="1.0" encoding="UTF-8"?>
<SnomIPPhoneDirectory speedselect="select" clearlight="true" state="relevant">
<Fetch mil="2000">http://fritz.box:4200/snom320/menu2.xml</Fetch>
<Title></Title>
<Prompt></Prompt>
<DirectoryEntry>
<Name>AB 600</Name>
<Telephone>**600</Telephone>
</DirectoryEntry>
<DirectoryEntry>
<Name>AB 601</Name>
<Telephone>**601</Telephone>
</DirectoryEntry>
<DirectoryEntry>
<Name>AB 602</Name>
<Telephone>**602</Telephone>
</DirectoryEntry>
<DirectoryEntry>
<Name>AB 603</Name>
<Telephone>**603</Telephone>
</DirectoryEntry>
<DirectoryEntry>
<Name>AB 604</Name>
<Telephone>**604</Telephone>
</DirectoryEntry>
</SnomIPPhoneDirectory>

menu2.xml
Code:
<?xml version="1.0" encoding="UTF-8"?>
<SnomIPPhoneDirectory speedselect="select" clearlight="true" state="relevant">
<Fetch mil="2000">http://fritz.box:4200/snom320/fonbook_snom1.xml</Fetch>
<Title></Title>
<Prompt></Prompt>
<DirectoryEntry>
<Name>VR 605</Name>
<Telephone>**605</Telephone>
</DirectoryEntry>
<DirectoryEntry>
<Name>VR 606</Name>
<Telephone>**606</Telephone>
</DirectoryEntry>
<DirectoryEntry>
<Name>VR 607</Name>
<Telephone>**607</Telephone>
</DirectoryEntry>
<DirectoryEntry>
<Name>VR 608</Name>
<Telephone>**608</Telephone>
</DirectoryEntry>
<DirectoryEntry>
<Name>VR 609</Name>
<Telephone>**609</Telephone>
</DirectoryEntry>
</SnomIPPhoneDirectory>

fonbook_snom1.xml
Code:
<?xml version="1.0" encoding="UTF-8"?>
<SnomIPPhoneDirectory speedselect="select" clearlight="true" state="relevant">
<Fetch mil="2000">http://fritz.box:4200/snom320/fonbook_snom2.xml</Fetch>
<Title></Title>
<Prompt></Prompt>
<DirectoryEntry>
<Name>snom intern</Name>
<Telephone>**621#622</Telephone>
</DirectoryEntry>
<DirectoryEntry>
<Name>snom extern</Name>
<Telephone>***121#*#**621#622</Telephone>
</DirectoryEntry>
</SnomIPPhoneDirectory>
fonbook_snom2.xml
Code:
<?xml version="1.0" encoding="UTF-8"?>
<SnomIPPhoneDirectory speedselect="select" clearlight="true" state="relevant">
<Fetch mil="2000">http://fritz.box:4200/snom320/ledsoff.xml</Fetch>
<Title></Title>
<Prompt></Prompt>
<DirectoryEntry>
<Name>Fon1</Name>
<Telephone>**1</Telephone>
</DirectoryEntry>
<DirectoryEntry>
<Name>Fon2</Name>
<Telephone>**2</Telephone>
</DirectoryEntry>
</SnomIPPhoneDirectory>

ledsoff.xml
Code:
<?xml version="1.0" encoding="UTF-8"?>
<SnomIPPhoneText speedselect="select" clearlight="true" state="relevant">
<Fetch mil="2000">snom://mb_exit</Fetch>
<Led number="1">Off</Led>
<Led number="2">Off</Led>
<Led number="3">Off</Led>
<Led number="4">Off</Led>
<Led number="5">Off</Led>
<Led number="6">Off</Led>
<Led number="7">Off</Led>
<Led number="8">Off</Led>
<Led number="9">Off</Led>
<Led number="10">Off</Led>
<Led number="11">Off</Led>
<Led number="12">Off</Led>
<Title></Title>
<Prompt></Prompt>
<text>Have a nice day</text>
</SnomIPPhoneText>
...wenn Jemand das Anschalten der LEDs doof findet, kann direkt mit menu.xml anfangen, der Einsprungspunkt ist egal.
 
Hi koyaanisqatsi,

ich dachte ich gucke nicht richtig, als ich gelesen habe, dass der Eintrag von gestern ist :p

Danke für diesen schönen Anstoß! Ich sehe echtes Potenzial im XML-Browser. Leider findet man nur sehr schlecht brauchbare Informationen dazu, ganz zu schweigen von fertigen Applikationen.
Es wäre echt schön wenn wir dieses Thema wiederbeleben könnten, da 90% der Links zu Applikationen die man über die Suche findet nicht mehr gültig sind.
 
Ja, gerne, dankeschön.

Die Dokumentation ist echt spärlich, das Fetch Element sah ich zufällig im snom Forum.
Und was noch mit der URL snom:// geht? Keine Ahnung, nur mb_exit ist (mir) bekannt.
Apropos: snom://mb_exit wer anstatt dieser URL die server.xml (oder menu.xml) fetcht, hat ein "echtes" endlos laufendes Rufnummernkarussel.
Dies kann aber durch simples drücken der Cancel Taste (die mit dem X) beendet werden.

Es gibt noch eine schöne Variante für XML Auslieferung wenn ein Webserver mit PHP erreichbar ist...
PHP:
<?php
parse_str($_SERVER['QUERY_STRING'],$vars);
/**/

if ($vars['number'] == 3141) {
$pass = "Ok";
} else {
$pass = "Negativ";
}

echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>";
echo "<SnomIPPhoneText>";
echo "<Text>";
if ($vars['message']) {
echo "<br/>" . $vars['message'] . "<br/>";
}
if ($vars['number']) {
echo $pass . "!";
}
if ($vars['phone']) {
echo "<br/>IP des Telefons:<br/>" . $vars['phone'];
}
if ($vars['mac']) {
echo "<br/>MAC:<br/>" . $vars['mac'];
}
if ($vars['user']) {
echo "<br/>Benutzer:<br/>" . $vars['user'];
}
if ($vars['host']) {
echo "<br/>Registrar:<br/>" . $vars['host'];
}
echo "</Text>
</SnomIPPhoneText>";
?>
...damit, weil ziemlich universell einsetzbar, können Meldungen und Infos ausgegeben werden.

Beispielaufruf auf irgendeine Taste gelegt als ActionURL:
Code:
http://erreichbarer_webserver/server.php?number=3141&mac=$mac&phone=$phone_ip&user=$active_user&host=$active_host
...liefert MAC-Adresse, Telefon IP, aktuelle Identität u.s.w. zurück, welche Parameter übergeben werden ist egal, da nur übergebene verarbeitet werden.
So lässt sich hiermit auch nur eine Nachricht mittels message ausgeben, ohne weitere Parameter.
Code:
http://erreichbarer_webserver/server.php?message=Hallo%20Welt
...recht simpel das Ganze.
 
Zuletzt bearbeitet:
Wenn es komplexer wird kommt man an PHP nicht mehr vorbei, allein schon wegen den Variablen. Ich habe die ganze Nacht noch mit PHP gearbeitet und lasse mir die XML Dateien dynamisch zusammenbauen. Ich habe ein Programm gebaut, in dem man Server-IP-Adressen angeben kann. Wenn der Server erreichbar ist, leuchtet die entsprechende LED und wenn der Server offline ist blinkt sie. Ein Schnelltest ist auch eingebaut ^^ Ist doch recht komplex geworden :p Ich werde das ganze mal aufarbeiten, und als freie Software zur Verfügung stellen.
 
Auf meiner gefreezten FBF 7360SL mit Asterisk braucht man allerdings kein PHP, eigentlich nur die entsprechenden extensions und die System() Applikation.
Da ich aber Asterisk Newbie bin, werde ich noch Jahre brauchen um flüssig skripten zu können, damits auch rund läuft.
Trotzdem würd ich mich freuen wenn du dein Vorhaben hier reinstellen würdest. PHP ist immer nachgefragt.
 
So..die zweite Applikation ist auch schon fertig. Anzeigen von Besucherzahlen einer Homepage aus Piwik. Ich muss jetzt nur noch die Pfadangaben variabel bekommen. Sind sonst viele Einträge die man ändern muss. Ich denke ich werde es gegen Sonntag fertig haben. Schade das von anderen Usern kein Interesse besteht
 
XML transformieren

Moin

Ich hätte da noch eine Anregung, und was zum anschubsen...
XML kennen ja schon eine Menge Leute, aber wer weiss schon wie mans richtig anwendet?
Deswegen verkümmert XML meistens als so eine Art Datenbankformat oder Konfigurationsdatei.
Aber in Wirklichkeit ist XML eine frei transformierbare Auszeichnungssprache.
Wohlgeformt besteht eine transformierbare XML aus drei Dateien: XML DTD und XSL

Bestimmt ist dem eifrigen Leser aufgefallen,
wenn er sich eine XML im Webbrowser lädt,
das nur eine baumartige Struktur angezeigt wird.

Das liegt am Fehlen der Transformationsdatei, auch Stylesheet genannt.
....gleich mehr dazu, bin auf Arbeit, jetzt geh ich eine rauchen. ;)

So, weiter gehts...
Lange rede, kurzer Sinn, um XSL als Stylesheet in XML einzubinden reicht eine Zeile...
server.xml
Code:
<?xml version="1.0" encoding="utf-8"?>
[B][COLOR="#B22222"]<?xml-stylesheet version="1.0" href="SnomIPPhoneText.xsl" type="text/xsl" ?>[/COLOR][/B]
<SnomIPPhoneText dtmf="yes" speedselect="select" clearlight="true" state="relevant">
<Led number="1">On</Led>
<Led number="2">On</Led>
<Led number="3">On</Led>
<Led number="4">On</Led>
<Led number="5">On</Led>
<Led number="6">On</Led>
<Led number="7">On</Led>
<Led number="8">On</Led>
<Led number="9">On</Led>
<Led number="10">On</Led>
<Led number="11">On</Led>
<Led number="12">On</Led>
<Fetch mil="2000">http://fritz.box:4200/snom320/menu.xml</Fetch>
<Title></Title>
<Prompt></Prompt>
<Text>Nummernkarussel</Text>
</SnomIPPhoneText>
...und wer noch nie XSL gesehn hat, wird sich jetzt wundern...
SnomIPPhoneText.xsl
Code:
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/">
<xsl:element name="html">
<xsl:element name="head">
  <xsl:element name="title"><xsl:value-of select="/SnomIPPhoneText/Title" /></xsl:element>
  <xsl:element name="meta">
  <xsl:attribute name="http-equiv"><xsl:text>content-type</xsl:text></xsl:attribute>
  <xsl:attribute name="content"><xsl:text>application/xhtml+xml; charset=UTF-8</xsl:text></xsl:attribute>
  </xsl:element>
  <xsl:element name="link">
  <xsl:attribute name="rel"><xsl:text>stylesheet</xsl:text></xsl:attribute>
  <xsl:attribute name="media"><xsl:text>screen</xsl:text></xsl:attribute>
  <xsl:attribute name="type"><xsl:text>text/css</xsl:text></xsl:attribute>
  <xsl:attribute name="href"><xsl:text>/css/xml.css</xsl:text></xsl:attribute>
  </xsl:element>
  <xsl:element name="link">
  <xsl:attribute name="rel"><xsl:text>shortcut icon</xsl:text></xsl:attribute>
  <xsl:attribute name="type"><xsl:text>image/x-ico</xsl:text></xsl:attribute>
  <xsl:attribute name="href"><xsl:text>/img/favicon.ico</xsl:text></xsl:attribute>
  </xsl:element>
  <xsl:element name="style">
  <xsl:attribute name="type"><xsl:text>text/css</xsl:text></xsl:attribute>
  *{margin:0px 0px 0px 0px;
  padding:0px 0px 0px 0px;
  text-align:center;}
  table,th,td{margin:1px 1px 1px 1px;
  padding:1px 1px 1px 1px;
  border-collapse:collapse;}
  th,td{white-space:nowrap;}
  table{width:99.80%;}</xsl:element>
  </xsl:element>
<!--SnomIPPhoneText-->
<xsl:element name="body">
<table>
	<xsl:element name="caption">SnomIPPhoneText</xsl:element>
	<thead>
		<tr>
			<th>Title</th>
			<th>Prompt</th>
			<th>Text</th>
			<th>Fetch</th>
		</tr>
	</thead>
	<tfoot>
		<tr>
			<td><xsl:value-of select="normalize-space(/SnomIPPhoneText/Title)" /></td>
			<td><xsl:value-of select="normalize-space(/SnomIPPhoneText/Prompt)" /></td>
			<td><xsl:value-of select="normalize-space(/SnomIPPhoneText/Text)" /></td>
			<td><xsl:value-of select="normalize-space(/SnomIPPhoneText/Fetch)" /></td>
		</tr>
	</tfoot>
</table>
<table>
	<xsl:element name="caption">Led</xsl:element>
	<thead>
    <tr>
		<th>Nr</th>
		<th>Status</th>
	</tr>
	</thead>
	<tbody>
	<xsl:for-each select="/SnomIPPhoneText/Led">
		<tr>
			<td><xsl:value-of select="@number"/></td>
			<td><xsl:value-of select="."/></td>
		</tr>
	</xsl:for-each>
	</tbody>
</table>
</xsl:element>
</xsl:element>
</xsl:template>

</xsl:stylesheet>
...das Ganze ezeugt im Webbrowser folgende XHTML Ausgabe: snom_xml_xsl_ausgabe.jpg
Das ist eine Transformation in XHTML für SnomIPPhoneText, jetzt noch eine für SnomIPPhoneDirectory...
menu.xml
Code:
<?xml version="1.0" encoding="UTF-8"?>
[B][COLOR="#B22222"]<?xml-stylesheet version="1.0" href="SnomIPPhoneDirectory.xsl" type="text/xsl" ?>[/COLOR][/B]
<SnomIPPhoneDirectory dtmf="yes" speedselect="select" clearlight="true" state="relevant">
<Led number="1">Off</Led>
<Led number="2">On</Led>
<Led number="3">Off</Led>
<Led number="4">On</Led>
<Led number="5">Off</Led>
<Led number="6">On</Led>
<Led number="7">Off</Led>
<Led number="8">On</Led>
<Led number="9">Off</Led>
<Led number="10">On</Led>
<Led number="11">Off</Led>
<Led number="12">On</Led>
<Fetch mil="2000">http://fritz.box:4200/snom320/menu1.xml</Fetch>
<Title></Title>
<Prompt></Prompt>
<DirectoryEntry>
<Name>Status EMail</Name>
<Telephone>mail</Telephone>
</DirectoryEntry>
<DirectoryEntry>
<Name>Anrufbeantworter 1</Name>
<Telephone>**600</Telephone>
</DirectoryEntry>
<DirectoryEntry>
<Name>Anrufbeantworter 2</Name>
<Telephone>**601</Telephone>
</DirectoryEntry>
<DirectoryEntry>
<Name>Anrufbeantworter 3</Name>
<Telephone>**602</Telephone>
</DirectoryEntry>
<DirectoryEntry>
<Name>Anrufbeantworter 4</Name>
<Telephone>**603</Telephone>
</DirectoryEntry>
<DirectoryEntry>
<Name>Anrufbeantworter 5</Name>
<Telephone>**604</Telephone>
</DirectoryEntry>
</SnomIPPhoneDirectory>
SnomIPPhoneDirectory.xsl
Code:
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/">
<xsl:element name="html">
<xsl:element name="head">
  <xsl:element name="title"><xsl:value-of select="/SnomIPPhoneDirectory/Title" /></xsl:element>
  <xsl:element name="meta">
  <xsl:attribute name="http-equiv"><xsl:text>content-type</xsl:text></xsl:attribute>
  <xsl:attribute name="content"><xsl:text>application/xhtml+xml; charset=UTF-8</xsl:text></xsl:attribute>
  </xsl:element>
  <xsl:element name="link">
  <xsl:attribute name="rel"><xsl:text>stylesheet</xsl:text></xsl:attribute>
  <xsl:attribute name="media"><xsl:text>screen</xsl:text></xsl:attribute>
  <xsl:attribute name="type"><xsl:text>text/css</xsl:text></xsl:attribute>
  <xsl:attribute name="href"><xsl:text>/css/xml.css</xsl:text></xsl:attribute>
  </xsl:element>
  <xsl:element name="link">
  <xsl:attribute name="rel"><xsl:text>shortcut icon</xsl:text></xsl:attribute>
  <xsl:attribute name="type"><xsl:text>image/x-ico</xsl:text></xsl:attribute>
  <xsl:attribute name="href"><xsl:text>/img/favicon.ico</xsl:text></xsl:attribute>
  </xsl:element>
  <xsl:element name="style">
  <xsl:attribute name="type"><xsl:text>text/css</xsl:text></xsl:attribute>
  *{margin:0px 0px 0px 0px;
  padding:0px 0px 0px 0px;
  text-align:center;}
  table,th,td{margin:1px 1px 1px 1px;
  padding:1px 1px 1px 1px;
  border-collapse:collapse;}
  th,td{white-space:nowrap;}
  table{width:99.80%;}</xsl:element>
  </xsl:element>
<!--SnomIPPhoneDirectory-->
<xsl:element name="body">
<table>
	<xsl:element name="caption">SnomIPPhoneDirectory</xsl:element>
	<thead>
		<tr>
			<th>Title</th>
			<th>Prompt</th>
			<th>Fetch</th>
		</tr>
	</thead>
	<tfoot>
		<tr>
			<td><xsl:value-of select="normalize-space(/SnomIPPhoneDirectory/Title)" /></td>
			<td><xsl:value-of select="normalize-space(/SnomIPPhoneDirectory/Prompt)" /></td>
			<td><xsl:value-of select="normalize-space(/SnomIPPhoneDirectory/Fetch)" /></td>
		</tr>
	</tfoot>
</table>
<table>
	<xsl:element name="caption">Led</xsl:element>
	<thead>
    <tr>
		<th>Nr</th>
		<th>Status</th>
	</tr>
	</thead>
	<tbody>
	<xsl:for-each select="/SnomIPPhoneDirectory/Led">
		<tr>
			<td><xsl:value-of select="@number"/></td>
			<td><xsl:value-of select="."/></td>
		</tr>
	</xsl:for-each>
	</tbody>
</table>
<table>
	<xsl:element name="caption">DirectoryEntry</xsl:element>
	<thead>
    <tr>
		<th>Name</th>
		<th>Nummer</th>
	</tr>
	</thead>
	<tbody>
	<xsl:for-each select="/SnomIPPhoneDirectory/DirectoryEntry">
		<tr>
			<td><xsl:value-of select="Name"/></td>
			<td><xsl:value-of select="Telephone"/></td>
		</tr>
	</xsl:for-each>
	</tbody>
</table>
</xsl:element>
</xsl:element>
</xsl:template>

</xsl:stylesheet>
...erzeugt diese Ausgabe: snom_xml_xsl_ausgabe2.jpg

Dokumentiert ist die ganze Geschichte auch sehr gut auf: de.selfhtml.org

PS: Bitte nicht übers Design meckern, mir gehts um die Technik, nicht ums Aussehen.
:rolleyes:
 
Zuletzt bearbeitet:
Serh schönes Beispiel. Nur fällt mir momentan kein Anwendungsfeld ein. Ich könnte mir vorstelle damit das User Interface für die "grafischen" Snom's zu verändern, aber ob das geht !?
 
Nö, so würd ich das nicht einsetzen (wollen).
Theoretisch/technisch würde mir da sowas vorschweben wie ein eigenes Webinterface,
mit dem über XML/XSL gebastelte Fernsteuerung mit den Telefonbüchern,
die auch via ActionURL und Minibrowser, dem Interfaces also,
welche uns snom freundlicherweise zu Verfügung stellt, zu nutzen.

Das snom 320 hat ja nur eine zweizeilige LCD Anzeige. Meistens unbeleuchtet.
Da ist es doch wesentlich komfortabler über den Webbrowser einen Eintrag im Telefonuch anzuklicken.
Und hat Alles auf einen Blick, so Gross oder Kontrastreich wie mans braucht.
Wenn der Rechner/Maus/Tastatur/Monitor sowieso in der Nähe des Telefons sich befinden.
 
Zuletzt bearbeitet:
Moin

Wenn ich Zeit hab feil ich immer mal wieder dran, und hab obiges Gedankenspiel mal realisiert...

Eine XSL Transformation für einen snom Fernsteuerungsaufruf je Eintrag
Code:
<table>
	<xsl:element name="caption">DirectoryEntry</xsl:element>
	<thead>
    <tr>
		<th>Name</th>
		<th>Telephone</th>
	</tr>
	</thead>
	<tbody>
	<xsl:for-each select="/SnomIPPhoneDirectory/DirectoryEntry">
		<tr>
			<td><xsl:value-of select="Name"/></td>
			<td><xsl:element name="a"><xsl:attribute name="href">http://snom1.fritz.box/command.htm?number=<xsl:value-of select="./Telephone" />&amp;[email protected]:5061</xsl:attribute><xsl:value-of select="./Telephone" /></xsl:element></td>
			<!--td><xsl:value-of select="Telephone"/></td-->
		</tr>
	</xsl:for-each>
	</tbody>
</table>
...erzeugt anklickbare Links in der Transformation, die das snom bei klick ferngesteuert wählen lassen.
xml_xsl_snom_remote.jpg
...so siehts aus!
Natürlich brauchen die Informationen nicht angezeigt werden, die nicht benötigt werden.
Die Informationen bleiben dabei auch in der XML, nur werden sie für eine grafische Ausgabe nicht benötigt.
Also braucht das Telefonbuch am Ende nur diese Informationen ausgeben: xml_xsl_phonebook.jpg
 
Zuletzt bearbeitet:
Sehr schön, klasse Präsentation, einfach zu installieren, funktioniert sofort.
 
Das freut mich sehr das es dir gefällt :D
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.