Zweck der Kopfdatei beim Provisioning


#1

Hallo!

Ich richte gerade das erste Mal eine Anlage mit nur Systemtelefonen unter Verwendung des Provisionings ein. (Praktischerweise unsere eigene!)

Ich hatte das so verstanden, dass ich pro Telefon eine Kopfdatei und eine normale Settingsdatei vorhalten kann, so dass ich in der Kopfdatei die Einstellungen setzen kann, die viele (oder alle) User betreffen, und in der zweiten Datei dann Settings vorhalte, die einzelen User oder kleinere Usergruppen betreffen.

So hatte ich mir vorgestellt, in einer Kopfdatei Global alle möglichen Settings vorzuhalten (Wallpaper, MenĂŒsprache
) und in den einzelnen Dateien dann nur noch die Funktionstastenbelegung.

Aber irgendwie werden, seit ich das so aufgeteilt habe (hatte am Anfang alles in einer Datei, wurde dann aber wahnsinnig, als ich fĂŒr 12 Usergruppen das wallpaper Ă€ndern musste
) die Funktionstasten nicht mehr belegt.

Habe ich da etwas zum Zweck oder zur Funktion der Kopfdatei nicht verstanden?


#2

OK, im Moment, als ich mein Posting abgeschickt hatte, habe ich die eigentliche Dokumentation zum Provisioning gefunden, und denke, ich bin jetzt einen Schritt weiter.

Die Kopfdatei enthÀlt selbst gar keine Settings, sondern nur den Verweis auf eine (oder mehrere) andere Dateien.
Wenn wir also von drei Teams mit unterschiedlichen Funktionstasten ausgehen, brauche ich:

globale_konfiguraton.xml
kopf_team1.xml
kopf_team2.xml
kopf_team3.xml
fkeys_team1.xml
fkeys_team2.xml
fkeys_team3.xml

Und jede der drei Kopfdateien referenziert dann nacheinander globale_konfiguration.xml und settings_teamX.xml.

Korrekt?

Was ich nur immer noch nicht finde: Wie sieht denn die Syntax der Kopfdatei aus? Stehen da wirklich einfach nur 2 URLs untereinander?
Ausserdem: Wenn ich einem User die Berechtigung fĂŒr 2 xml-Dateien gebe, kriege ich in der Anlagenkonfiguration eine Fehlermeldung. Ich mĂŒsste aber dem User doch die Rechte an globale_konfiguration.xml und an fkeys_teamX.xml geben!?


#3

Hallo Zimbosurf.

Die Kopfdatei enthĂ€lt einfach die Dateinamen der zu ladenden Dateien, jeweils in einer Zeile. Die Reihenfolge sollte dann ggfs. der einer kompletten Konfiguration entsprechen (also einfach mal eine Konfig aus dem Telefon exportieren und die Reihenfolge der ‚Abschniite‘ ansehen).


#4

Hallo Herrybert,

Danke fĂŒr die Antwort! Leider ist dieses geniale Feature so miserabel dokumentiert, dass ich heute einen ganzen Tag nur damit zugebracht habe, die genaue Funktion herauszufinden.

Ich werde mir morgen mal die Zeit nehmen und meine Erkenntnisse hier in einem Konfigurationsbeispiel zusammenfassen, damit der nÀchste, der sucht, wenigstens mal ein brauchbares Beispiel findet. Ein bisschen mehr als eine Liste von Dateinamen steht in der Kopfdatei nÀmlich doch drin



#5

Hallo!

Wie angedeutet wollte ich hier mal ein paar Dinge zu den Provisionungsdateien erklĂ€ren, damit der nĂ€chste nicht so lange sucht und 'rummacht wie ich. Meiner Meinung nach ist die Dokumentation zu diesem Thema bei Auerswald ziemlich dĂŒnn, deswegen halte ich diese ErlĂ€uterung fĂŒr recht sinnvoll.

Provisionierungsdatei - Template - Kopfdatei

  • Die Provisionierungsdatei ist einfach nur die Konfigurationsdatei, die an das Telefon geschickt wird, wenn es sich meldet und anhand der MAC-Adresse erkannt wird. Der einfachste Weg, die Konfigurationsdatei zu erstellen ist, sie aus einem konfigurierten Telefon auszulesen.
    Auerswald-Provisionierungsdateien sind xml-Dateien, die die Konfiguration im Klartext enthalten. Man kann sie also mit jedem beliebigen Texteditor bearbeiten. Um bestimmte Einstellungen in der xml-Datei leichter zu finden bietet es sich an, die Konfigurationsdatei aus dem Telefon auszulesen, die Einstellung im Telefon zu Àndern, eine neue Konfigurationsdatei auszulesen und die beiden Dateien zu vergleichen.
    Jedem Telefon kann unter Teilnehmer > IP-Provisioning > Dateiverwaltung im Normalfall nur die Berechtigung an einer Provisionierungsdatei gegeben werden.
  • Wird eine Auerswald-Provisionierungsdatei als Template markiert, so ersetzt die Anlage beim Senden der Datei den Abschnitt <providersAndAccounts> mit den tatsĂ€chlichen Zugangsdaten des zugewiesenen Users.
  • Eine Kopfdatei ist lediglich eine Auflistung von einzelnen Provisionierungsdateien, die in der Reihenfolge der Auflistung nacheinander ans Telefon gesendet werden. Jeder gesendete Datei ĂŒberschreibt die Werte der vorhergehenden. Man kann so eine mehrstufige Konfiguration realisieren. Dazu spĂ€ter mehr. Die Kopfdatei selbst ist auch eine xml-Datei. Wenn einem Teilnehmer eine Kopfdatei zugewiesen ist, so kann (muss!) diesem Teilnehmer auch die Berechtigung an mehreren Provisionierungsdateien gegeben werden, ohne dass die Anlage deswegen eine Fehlermeldung bringt.

Syntax einer Kopfdatei

<referencedSettings xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="provisioning_references.xsd">
    <URL>Datei1.xml</URL>
    <URL>Datei2.xml</URL>
    ...
    ...
    ...
    <URL>DateiX.xml</URL>
</referencedSettings>

Die Liste der URLs kann beliebig lang sein, es können auf Verweise auf Dateien auf anderen Servern enthalten sein. Dem zugeordneten Telefon wird zuerst die Datei Datei1.xml ĂŒbergeben, danach die Datei Datei2.xml.
Einstellungen in Datei2.xml ĂŒberschreiben ggfs. vorher in Datei1.xml gemachte Einstellungen. Wenn zum Beispiel in Datei1.xml Taste 14, Ebene 0 mit einer Zielwahl belegt wird, in DateiX.xml die gleiche Taste aber mit einer Konfigurationsumschaltung, so ist sie am Ende mit der Konfigurationsumschaltung und nicht mit der Zielwahl belegt.

Einstufige Provisionierung
Dies ist die einfachste Form der Provisionierung. Alle Konfigurationen sind in einer einzigen Datei, die an die Telefone ausgeliefert wird. Dies kann eine Datei fĂŒr alle Nutzer sein, oder fĂŒr jeden Nutzer eine eigene Datei.

Mehrstufige Provisionierung
Dadurch, dass bei Verwendung einer Kopfdatei jede spĂ€ter geladene Provisionierungsdatei immer die Settings der vorher geladenen Datei ĂŒberschreibt (wenn denn die gleichen Settings vorkommen), kann man wunderbar mehrstufig oder Hierarchisch arbeiten. Was das bedeutet möchte ich hier an einem kleinen Beispiel zeigen.

In einer Firma sollen bestimmte Einstellungen (z.B. das Hintergrundlogo, bestimmte Funktionstasten, Sprache des Telefons) global eingestellt werden.
Dann soll es Einstellungen geben, die bei allen Mitgliedern eines Teams identisch sind (z.B. weitere Funktionstasten).
Letztenendes will man aber vielleicht auch einzelne Dinge fĂŒr jeden User einzeln konfigurieren.

Jetzt könnte man natĂŒrlich fĂŒr jeden User eine komplette Provisionierungsdatei anlegen, mit allen globalen Settings, allen Teamsettings und allen Settings fĂŒr den konkreten User.
Wenn einem dann aber nach zwei Tagen auffĂ€llt, dass man ein globales Setting doch lieber anders setzen wĂŒrde, bleibt einem nichts anderes ĂŒbrig als alle Provisionierungsdateien noch einmal zu öffnen, dieses Settingzu finden und zu Ă€ndern.

Ich habe das anders gelöst:

Kopf_User1.xml

<referencedSettings xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="provisioning_references.xsd">
    <URL>global_config.xml</URL>
    <URL>TeamSettings_Team1.xml</URL>
    <URL>settings_User1.xml</URL>
</referencedSettings>

Zuerst wird die global_config.xml ĂŒbergeben, die grundlegende Konfiguration fĂŒr alle in der Firma enthĂ€lt, zB. Displaysprache, Hintergrundbild, Zielwahlen zu den SekretĂ€rinnen und einen Toggle-Button fĂŒr eine Gruppe, die durch die TĂŒrsprechstelle angewĂ€hlt wird:

global_config.xml

<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<auerSettings xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="auer_settings.xsd">
    <providersAndAccounts>
    </providersAndAccounts>
    <configurationManager>
		<language>de</language>
		<enable>on</enable>
		<autoSave>off</autoSave>
		<httpPort>80</httpPort>
		<httpsPort>443</httpsPort>
	</configurationManager>
  	<display>
		<brightnessAutomatic>off</brightnessAutomatic>
		<brightness>79%</brightness>
		<screenOffTimeout>no_timeout</screenOffTimeout>
		<messageLed>blink_and_on</messageLed>
		<displayLed>show_active_calls</displayLed>
		<showUnregisteredVoipSubscribers>off</showUnregisteredVoipSubscribers>
		<displayOff>off</displayOff>
		<ledPowersave>off</ledPowersave>
		<messageFax>on</messageFax>
	</display>
	<wallpaper>
		<url>http://www.firmendomain.de/background.png</url>
	</wallpaper>
   	<keys>
		<key number="12" level="0">
			<function xsi:type="group">
				<operation>toggle</operation>
				<loginMode>incoming</loginMode>
				<group>700</group>
				<account>33794</account>
			</function>
			<permission>user</permission>
			<description>Klingelgruppe</description>
		</key>
		<key number="12" level="1" />
		<key number="13" level="0">
			<function xsi:type="speedDialing">
				<sipSubscription>sip_subscription_on</sipSubscription>
				<number>140</number>
				<account>33794</account>
			</function>
			<permission>user</permission>
			<description>Sekretariat 1</description>
		</key>
		<key number="13" level="1" />
		<key number="14" level="0">
			<function xsi:type="speedDialing">
				<sipSubscription>sip_subscription_on</sipSubscription>
				<number>141</number>
				<account>33794</account>
			</function>
			<permission>user</permission>
			<description>Sekretariat 1</description>
		</key>
	</keys>
</auerSettings>

Anschliessend wird die TeamSettings_Team1.xml ĂŒbergeben, die in diesem Fall Zielwahltasten fĂŒr alle Mitglieder des Teams einrichtet:
TeamSettings_Team1.xml

<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<auerSettings xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="auer_settings.xsd">
       <configurationManager>
    </configurationManager>
      <display>
    </display>
    <wallpaper>
    </wallpaper>
    <keys>
        <key number="7" level="0">
          <function xsi:type="speedDialing">
                <sipSubscription>sip_subscription_on</sipSubscription>
                <number>23</number>
                <account>33794</account>
            </function>
            <permission>user</permission>
            <description>User1</description>
        </key>
        <key number="7" level="1" />
        <key number="8" level="0">
          <function xsi:type="speedDialing">
                <sipSubscription>sip_subscription_on</sipSubscription>
                <number>24</number>
                <account>33794</account>
            </function>
            <permission>user</permission>
            <description>User2</description>
        </key>
        <key number="8" level="1" />
        <key number="9" level="0">
          <function xsi:type="speedDialing">
                <sipSubscription>sip_subscription_on</sipSubscription>
                <number>25</number>
                <account>33794</account>
            </function>
            <permission>user</permission>
            <description>User3</description>
        </key>
        <key number="9" level="1" />
        <key number="10" level="0">
            <function xsi:type="speedDialing">
                <sipSubscription>sip_subscription_on</sipSubscription>
                <number>26</number>
                <account>33794</account>
            </function>
            <permission>user</permission>
            <description>User4</description>
        </key>
        <key number="10" level="1" />
        <key number="11" level="0">
          <function xsi:type="speedDialing">
                <sipSubscription>sip_subscription_on</sipSubscription>
                <number>27</number>
                <account>33794</account>
            </function>
            <permission>user</permission>
            <description>User5</description>
        </key>
        <key number="11" level="1">
          <function xsi:type="speedDialing">
                <sipSubscription>sip_subscription_on</sipSubscription>
                <number>008154711</number>
                <account>33794</account>
            </function>
            <permission>user</permission>
            <description>Buddhistisches Standesamt</description>
        </key>
    </keys>
</auerSettings>

Als letzte Datei wird die settings_User1.xml ĂŒbergeben. Diese richtet eine extrem wichtige zusĂ€tzliche Zielwahl ein: Den Pizzaservice! Ausserdem ist User1 der Chef und möchte auf gar keinen Fall, auch nicht versehentlich, von der TĂŒrklingel belĂ€stigt werden. Deswegen wird der Togglebutton fĂŒr das Ein- und Ausloggen in die Klingelgruppe mit dieser Datei wieder gelöscht:

Settings_User1.xml

<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<auerSettings xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="auer_settings.xsd">
    <configurationManager>
    </configurationManager>
    <display>
    </display>
    <wallpaper>
    </wallpaper>
    <keys>
      <key number="0" level="0">
          <function xsi:type="speedDialing">
                <sipSubscription>sip_subscription_on</sipSubscription>
                <number>004711815</number>
                <account>33794</account>
            </function>
            <permission>user</permission>
            <description>Pizzaservice</description>
        </key>
        <key number="12" level="0" />
    </keys>
</auerSettings>

Will ich jetzt zum Beispiel fĂŒr alle User das Hintergrundbild Ă€ndern, dann muss ich das nur 1x in der global_config.xml tun.
KĂŒndigt eine SekretĂ€rin, muss ich die Zielwahltaste auch nur in der global_config.xml löschen.
Wird ein Teammitglied ersetzt, muss ich die Zielwahlen auch nur ein mal in der TeamSettings_Team1.xml korrigieren.
Und in der Settings_UserX.xml kann ich jedem User beliebige persönliche Konfigurationen einrichten.


#6

Nachtrag:

Man kann die xml-Dateien mit

\<!--- Kommentartext -->

auch kommentieren.


#7

Noch ein Nachtrag:

Nach einer Woche Erfahrung sammeln haben wir mittlerweile entdeckt, dass das Provisioning nicht nur persönliche Einstellungen der Nutzer gnadenlos ĂŒberbĂŒgelt (das hatte ich erwartet) wann immer ein neuer Provisioningvorgang durchgefĂŒhrt wird (immer, wenn ein Provisioningfile geĂ€ndert wird), sondern auch jedesmal die Anrufliste und der Verlauf im Instant Messenger gelöscht wird.

Ein dauerhaft aktiviertes Provisioning ist meiner Meinung nach also nicht wirklich sinnvoll.


#8

Hallo Thomas.

Was meinst Du mit Instant Messenger, ist dies eine externe, zusÀtzlich installierte Anwendung?


#9

Nein. Ich war auch etwas erstaunt und weiss nicht, seit wann es das gibt, aber auf den 2600IP war in der aktuellsten Firmware eine App “Instant Messenger” vorinstalliert, mit der man Nachrichten innerhalb der Telefonanlage versenden kann.

Diese Nachrichten findet man tatsaechlich in der xml-Datei des Konfigurationsexports wieder.