Provisioning

Der Provisioning-Dienst der D-Serie

  • reagiert auf verschiedene Auslöseaktionen
  • nutzt diverse Quellen
  • lädt eine oder mehrere Dateien herunter
  • spielt diese als Konfiguration ein

Um ein erfolgreiches Provisioning durchführen zu können, benötigt das Telefon

  • Netzwerkzugang
  • Eine gültige Uhrzeit - Diese wird per NTP angefragt.

Nach der Aktivierung prüft der Dienst zentrale Voraussetzungen. Dann prüft er die folgende feste Reihenfolge von Quellen:

  1. Gleichzeitig:
  2. In der Konfiguration eingestellte URL

Der Service nutzt die erste gefundene URL zur Anfrage. Nach erfolgreichem Download prüft er, ob es sich um eine Referenz-Datei handelt. Dies führt unter Umständen zum Download weiterer Konfigurationen. Jede URL kann spezielle Marker enthalten, die mit Geräteinformationen ersetzt werden.

Der Dienst spielt die Dateien in der spezifizierten Reihenfolge ein. Der Restore-Mechanismus ist für das Einspielen verantwortlich. Dieser Prozess setzt keinen Neustart vorraus.

Ein Provisioning kann durch verschiedene Ereignisse ausgelöst werden.

  • Systemstart. Sofern konfiguriert reagiert der Provisioning-Dienst auf jeden Systemstart.
  • Zeitplan. Ein in der Konfiguration eingestellter Zeitplan aktiviert das Provisioning.
  • check sync. Ein SIP Notify kann das Provisioning auslösen.

Ein Gerät der D-Serie wertet die DHCP Optionen 66, 67 und 43 aus, um eine URL zu ermitteln. In diesem Zuge kombiniert es die Optionen 66 und 67 zu einer URL. Beispiel aus einer isc-dhcp-server Konfiguration:

host d200 {
 hardware ethernet 00:09:52:00:00:0E;
 filename "prov.py?mac=<MACADR>";
 option tftp-server-name "http://prov.server.com";
}

Das Gerät kombiniert die Daten zur URL http://prov.server.com/prov.py?mac=<MACADR>. Dabei ergänzt es fehlende / zwischen den Optionen.

Option 	Länge 	Text 	 
66 	11 	http://foo 	zu setzender Block
67 	12 	<HWTYP>.bak 	zu setzender Block

Die DHCP-Option 43 kann die Informationen aus Option 66 und 67 kodieren. Der verwendete Text ist Hexadezimal kodiert und dabei mit : getrennt.

Option 	Länge 	Text 	 
42: 	0b: 	68:74:74:70:3a:2f:2f:66:6f:6f:00 	codiert
43: 	0c: 	3c:48:57:54:59:50:3e:2e:62:61:6b:00 	codiert

Der vollständige Inhalt der Option 43 lautet in diesem Beispiel:

42:0b:68:74:74:70:3a:2f:2f:66:6f:6f:00:43:0c:3c:48:57:54:59:50:3e:2e:62:61:6b:00

Der Redirect Service ist ein Auerswald Dienst, welcher einem Gerät eine URL zuordnet. Er liefert die zugewiesenen URLs aus, wenn das entsprechende Gerät eine Anfrage sendet.

Die Anmeldung eines Gerätes kann von angemeldeten Händlern unter https://provisioning.auerswald.de/ vorgenommen werden.

Der Multicast-Subscribe Mechanismus versendet eine SIP Multicast Subscribe Nachricht und lauscht auf daraufhin versendete SIP Notify Nachrichten. Enthält eine dieser Nachrichten eine URL, wird diese für das Provisioning verwendet.

Dieser Mechanismus sollte nur in vertrauenswürdigen Netzen verwendet werden, da hier keine Sicherheitsprüfungen stattfinden können. Das Telefon ist nicht in der Lage, die Authentizität und die Validität des Absenders der Notify-Nachricht zu prüfen.

Eine Referenz-Datei ist eine Möglichkeit, mehrere Dateien als Provisioning im Telefon einzuspielen.

Die Referenz-Datei ist ein XML Dokument, welches dem hier spezifizierten Format entsprechen muss.

<?xml version="1.0" encoding="UTF-8" ?>
<referencedSettings xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:noNamespaceSchemaLocation="provisioning_references.xsd">
    <URL>first_file.xml</URL>
    <URL>/second_file.xml</URL>
    <URL>http://another.server.com/third_file.xml</URL>
    <URL>prov.py?mac=&lt;MACADR&gt;</URL>
</referencedSettings>

Das Telefon interpretiert die im oben gezeigten Beispiel genannten URL Elemente. Dabei berücksichtigt es, von welchem Server die Referenz-Datei heruntergeladen wurde. Wenn diese von http://prov.server.com/prov/references.xml stammt, setzt es die Element aus dem Beispiel wie folgt um:

  1. http://prov.server.com/prov/first_file.xml Ist das erste Zeichen kein '/', wird die Zieldatei aus dem gleichen Verzeichnis geladen.
  2. http://prov.server.com/second_file.xml Ist das erste Zeichen ein '/', dann wird nur der Host des Ursprungsrequests übernommen.
  3. http://another.server.com/third_file.xml Ist das angegebene URL-Element eine vollständige URL, so wird diese angefragt.
  4. http://prov.server.com/prov.py?mac=00095200000E Auch in den hier angegebenen URLs werden Ersetzungen durchgeführt.

Der Provisioning-Dienst ersetzt die folgenden Marker:

  • <SERIAL> oder {serial} zur Geräte Seriennummer
  • <HWTYP> oder {type} zu D100, D200
  • <MACADR> oder {mac} zur Geräte Mac-Adresse ( Großbuchstaben, ohne Doppelpunkte)

Das Telefon fragt die URL

http://prov.server.com/prov.py?mac=<MACADR>&sn=<SERIAL>&hw=<HWTYP>

oder

http://prov.server.com/prov.py?mac={mac}&sn={serial}&hw={type}

als mit folgendem Http Request am Server prov.server.com an:

http://prov.server.com/prov.py?mac=00095200000E&sn=123412341234&hw=D100