Idle Screen XML Download - Der Versuch einer Anleitung

hotroot

Neuer User
Mitglied seit
4 Okt 2005
Beiträge
149
Punkte für Reaktionen
0
Punkte
16
Hallo @all,

Ich habe mich die letzten paar Stunden mit dem neuen Feature "Idle Screen XML Download" beschäftigt und ein bischen herumgebastelt und herumprobiert. Fazit: Trotz der extrem knappen Dokumentation im Handbuch vom GXP ist es mir gelungen meinen Idle-Screen mit einem schönen (?) Sipgate-Logo zu versehen.

Zunächst einiges Grundsäzliches:
  • Damit das GXP überhaupt einen eigenen Idle-Screen empfangen kann, muss der Abschnitt "Idle Screen XML Download" in der Web-Konfiguration korrekt ausgefüllt sein (nicht NO und gültiger Server-Pfad; Ich habe nur TFTP getestet; siehe auch Dokumentation Seite 39).
  • Wie der Titel schon sagt, handelt es sich bei der Datei um eine XML-Datei, welche den Namen "gs_screen.xml" tragen muss.
  • Ein Bild muss ein 1-bit-Bitmap sein, welches base64-encoded ist, damit es vom GXP akzeptiert wird.

Der Grundaufbau einer "gs_screen.xml"
Code:
<?xml version="1.0"?>
<Screen>
	<IdleScreen>
		<ShowStatusLine>{true|false}</ShowStatusLine>
		<DisplayBitmap>
			<Bitmap>{Base64-encoded Bitmap}</Bitmap>
			<X>{X-Position}</X>
			<Y>{Y-Position}</Y>
		</DisplayBitmap>
		<DisplayString font="{f8|f10 (andere Angaben nicht getestet)}" halign="{Left|Center|Right}" valign={Top|Middle|Bottom (ungetestet)}>
			<DisplayStr>{Zu schreibender Text}</DisplayStr>
			<X>{X-Position}</X>
			<Y>{Y-Position}</Y>
		</DisplayString>
	</IdleScreen>
</Screen>

Das Bild:
Das Bild welches man einbinden möchte, muss eine 1-Bit-Farbpalette haben, d.h. ein Schwarz-Weiß-Bild sein. Dieses Bild darf nicht größer als 130x64 Pixel sein, wenn die Status-Leiste am oberen Rand nicht angezeigt werden soll, bzw 130x54 Pixel, wenn die Status-Leiste angezeigt werden soll. Dieses Bild speichern wir unter einem beliebigen Namen als 1-Bit-Bitmap.
Als nächstes müssen wir das Bild in base64 umwandeln. Unter Linux erledigen wir das mit folgendem Befehl:
Code:
$> base64 -e bild.bmp > bild.base64
Nach der Ausführung des Befehl befindet sich eine neue Datei "bild.base64", in welcher sich das encodete Bild befindet.

Die eigene "gs_screen.xml":
Wir nehmen einen beliebigen Text-Editor und kopieren obiges Grundgerüst in eine neue Datei oder tippen das Grundgerüst aus dem Handbuch ab. Diese Datei speichern wir unter dem Namen "gs_screen.xml", am einfachsten in dem Ordner, den wir in der Web-Konfiguration als Pfad angegeben haben. Falls wir ein Bild auf dem Display haben möchten, öffnen wir jetzt ebenfalls mit einem Text-Editor die Datei "bild.base64" und kopieren den gesamten Inhalt in unsere "gs_screen.xml" zwischen <Bitmap> und </Bitmap>. Danach entfernen wir zwischen <Bitmap> und </Bitmap> alle Zeilenumbrüche, sodass <Bitmap> und </BItmap> in einer Zeile stehen. Zwischen diesen beiden Tags steht nun ebenfalls in der gleichen Zeile unser Base64-Bild. Möchten wir kein Bild auf dem Display anzeigen, löschen wir alles von <DisplayBitmap> bis </DisplayBitmap>.
Als nächstes widmen wir uns der Anzeige von Texten. Texte die angeziegt werden, müssen zwischen <DisplayStr> und </DisplayStr> stehen. Diese Tags wiederum zwischen <DisplayString> und </DisplayString>. Der Text kann auch Variablen enthalten. Folgende Variablen habe ich bereits aufgespürt:

$D - Tag
$H - Stunde
$I - IP-Adresse
$M - Monat (ausgeschrieben)
$m - Minute
$N - Account Name (1. Account)
$W - Wochentag (lang)
$V - SIP Server (1. Account)
$X - SIP User ID (1. Account)
$Y - Jahreszahl (vierstellig)

Mittels X- und Y-Tag können wir den Text auf dem Display positionieren.
über das font-Attribut legen wir eine Schrift fest und über die Attribute "halign" und "valign" die Ausrichtung.

"Installtion" des Idle-Screens
Haben wir die "gs_screen.xml" nach unseren Wünschen ausgestaltet und am entsprechenden Ort gespeichert, so können wir am GXP im Menü Preferences den Punkt "Download SCR XML" auswählen. Hat alles geklappt, entspricht das Display nun unseren Wünschen. Stimmt etwas mit der XML-Datei nicht, dann bekommen wir entweder weiterhin das Standard-Display zu Gesicht, oder das GXP Stürzt ab (eher selten). Im Falle eines Absturzes einfach kurz die Stromversorgung kappen und neustarten. mein GXP hat das ganze jetzt schon mehrfach überstanden, ohne Schaden zu nehmen.

wichtiger Hinweis:
Ich übernehme keine Verantwortung, falls irgend ein GXP aufgrund meiner Anleitung den Dienst quittieren sollte. Für Hinweise auf Fehler in meiner "Dokumentation" bin ich trotzdem dankbar und werde sie schnellstmöglich korrigieren.

meine "gs_screen.xml":
Hier hänge ich noch meine "gs_screen.xml" an, wie sie zur Zeit auf meinem GXP ihren Dienst tut. Die Statusleiste ist eingeblendet. Darunter befindet sich ein Sipgate-Logo. Unter dem Logo steht der Name und darunter die SIP-Adresse.

Code:
<?xml version="1.0"?>
<Screen>
	<IdleScreen>
		<ShowStatusLine>true</ShowStatusLine>
		<DisplayBitmap>
			<Bitmap>Qk2+AgAAAAAAAD4AAAAoAAAAggAAACAAAAABAAEAAAAAAIACAAARCwAAEQsAAAIAAAACAAAAAAAAAP///wD/////////////////////wAAAAP/////////////////////AAAAA///+ED///////////////8AAAAD//CAIH////4//g///////wAAAAP/gQAgf////j/4A///////AAAAA/4B/+A////+P/gD//////8AAAAD/h8APz////4/+eP//////wAAAAP+cQAR/////j//8f//////AAAAA/+CABA/+D+eAf/x4Y+Hwf8AAAAD/gYAED/gDx4AfAHADwOAfwAAAAP+BAAQP+EPHgB4AYAeAwB/AAAAA/4EAAgf548eHDgBhx4fH/8AAAAD/gQACB//jx48MOGHHh4f/wAAAAP+BAf///4PHj4x8YcePh//AAAAA/4ED///+A8ePjHxwB4+AD8AAAAD/wQIAB/wPx4+MfHgHj4APwAAAAP/BAgAH/H/Hj4x8f8ePhw/AAAAA/8ED4Af8/8ePjDx/x4/HH8AAAAD/wQPwB/xzx4YMOHOHj8cfwAAAAP/BAngH/AMHAB4AMAYA4B/AAAAA/8ECfAf+BwcYPwY4DgDgP8AAAAD/wYJ8B///////////j///wAAAAP/AgnwH//////////+P///AAAAA//CCfAf//////////4///8AAAAD/z4J8B///x///////j///wAAAAP/A/nwH///H///////////AAAAA/+BCfAf//8f//////////8AAAAD/4CI8B///////////////wAAAAP/gIj4H///////////////AAAAA//AT/////////////////8AAAAD/////////////////////wAAAAP/////////////////////AAAAA</Bitmap>
			<X>0</X>
			<Y>10</Y>
		</DisplayBitmap>
		<DisplayString font="f10" halign="Center">
			<DisplayStr>$N</DisplayStr>
			<X>64</X>
			<Y>26</Y>
		</DisplayString>
		<DisplayString font="f10" halign="Center">
			<DisplayStr>$X@$V</DisplayStr>
			<X>64</X>
			<Y>38</Y>
		</DisplayString>
	</IdleScreen>
</Screen>

Ich Hoffe mit dieser Anleitung die doch etwas mageren Anweisungen von Grandstream etwas ergänz zu haben und wünsche allen viel Spaß beim "Display-Skinning".

Gute Nacht

hotroot
 
Super!!! Danke für diese ausführliche Anleitung. Dein Beispiel sieht auch endlich mal schön abwechslungsreich aus! :)

ach ja, ich habs mit HTTP versucht, funktioniert auch einwandfrei!
 
Ist eigentlich damit zu rechnen, dass Grandstream auch mal einen Editor bereitstellen wird der aus einer frei wählbaren Bildvorlage mit entsprechenden Einstellungen eine fertige "gs_screen.xml" zaubert?

Ist ja noch längst nicht jeder so versiert.
 
Ich versuche im Moment eine HTML-/PHP-Lösung zu bauen, die eine fertige XML-Datei ausspuckt. Allerdings fahre ich morgen erstmal für eine Woche in Urlaub... Kann also noch ein weilchen dauern, bis ich da was brauchbares fertiges präsentieren kann.
 
Hallo,

ich scheitere an der Ertsellung dieses Bildes ....
Gibz da n'Tool oder was ähnliches ?

update: hat sich erledigt ....
 
Zuletzt bearbeitet:
Freeze nach Bilderupload

Hallo,
ich hab folgendes Problem:
Der Bilderdownload per http hat mit einem Bild in der Größe 130*64pixel wunderbar geklappt.
Selbe Methode mit einem 30*20 Pixelbildchen lief schief.
Das Bild wurde sehr verzerrt dargestellt.

Nach einem Neustart des Telefons leuchten unmittelbar nach dem anschalten alle LEDs des Telefons grün auf und bleiben so.

Weder die Menueführung, noch ein Zugriff per http ist möglich.
Kein Freizeichen, kein Ping.

Hat jemand einen Tip, wie ich mein Telefon wiederbeleben kann?

Viele Grüße
mateng
 
Versuche mal das Telefon bei abgezogenem Netzwerkkabel zu starten. Ich meine mich dunkel daran zu erinnern, dass ich das Problem auch mal hatte und ich bei abgezogenem Kabel den Idle-Screen via Menü löschen konnte.

Zur Bildgrösse. Ich hab festgestellt, dass die Bilder immer Displaybreite haben müssen. Alles was kleiner ist erscheint verzerrt.

Gruss hotroot
 
Hallo hotroot,
vielen Dank für Deinen Tip.
Leider hab ich auch dieses schon probiert.
Selbst tcpdump zeigt kein Zucken des Telefons.

Das GXP2000 hängt sich direkt nach dem einschalten auf.
Manchmal leuchten alle LEDs, manchmal ist nur das LED von Line4 aus.

Ich befürchte, es hilft nur ein Hardwareeingriff.
Bei einem W-Lanrouter (WRT45g) konnte man bestimmte Pins des Flash-Chips überbrücken um das Gerät in einen Zustand zu versetzen in dem ein tftp-server gestartet wurde.

Sind zum GXP-2000 ähnliche Hardware-Hacks bekannt?

Gruß
mateng
 
Hallo,
für alle, die Probleme haben, ein beliebiges Bild in das benötigte Base64-kodierte 1bit-BMP zu konvertieren, habe ich auf meiner Homepage ein keines Skript gebastelt, das genau diese Aufgabe übernimmt. Hier der Link:
http://computer.david-froehlich.de/grandstream/
Keine Ahnung, ob das Teil zuverlässig funktioniert, es sieht jedenfalls schonmal anz brauchbar aus, was da ausgespuckt wird. Zu genaueren Tests werde ich irgendwann in den nächsten Tagen übergehen.

Gruß
David
 
Idle Screen Rufumleitung GXP

Danke, das hat super geklappt. :)

Wenn ich beim GXP 2010 alle Anrufe umleite, sieht man das oben links mit einem Preil angezeigt. Das ist sehr schwer zu sehen.

Gibt es einen Befehl im Idle Screen, mit welchem ich das in Text-Form anzeigen kann? :confused: Nutze die Grandstreams in Verbindung mit Sipgate Team (nicht Asterisk).

Viele Grüße
Uwe
 
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.