Veröffentlicht:

Telefonbuch Migration von Ascotel zu Avaya Telefonanlage: Praktische Tipps und Schritte

.

Telefonbuch Migration von Ascotel zu Avaya Telefonanlage: Praktische Tipps und Schritte Photo by Brittany Colette / Unsplash

Geschrieben von



Die Migration von einer Ascotel Telefonanlage zu einer Avaya Telefonanlage kann eine Herausforderung darstellen, insbesondere wenn es um die Übertragung wichtiger Kontaktdaten geht. Das Telefonbuch ist ein unverzichtbarer Bestandteil jeder Telefonanlage und die Übertragung der Kontakte in ein neues System kann viel manuelle Arbeit erfordern. Wenn Sie mehrere hundert Kontakte in Ihrer Ascotel Telefonanlage gespeichert haben und diese nicht manuell in Avaya übertragen möchten, kann PowerShell eine Lösung sein. In diesem Blogartikel zeige ich Ihnen, wie Sie PowerShell verwenden können, um die Kontakte in ein CSV-Format für Avaya zu konvertieren und sie dann einfach mit nur wenigen Mausklicks zu importieren.

Ascotel Export

Im ersten Schritt müsst Ihr die Kontaktdaten von der Ascotel Telefonanlage exportieren. Leider kann ich Euch diesen ersten Schritt nicht zeigen, da ich einen fertigen CSV Export von meinem Klienten bekommen habe und selbst keinen Zugriff auf die alte Telefonanlage habe. Lediglich den Avaya Part kann ich Euch mit Screenshots erläutern. Schauen Sie also bitte im Ascotel Telefonbuch nach, ob Sie die Kontakte als CSV exportieren können. Ein fertiger Export sieht ungefähr wie folgt aus.

Ascotel Kontakt Export als CSV Datei

Die Informationen vom Klienten habe ich selbstverständlich verpixelt. Im verpixelten Bereich stehen Telefonnummer und Name der Person.

PowerShell Konverter von Ascotel zu Avaya CSV Format

Da wir nun die exportierte Kontaktliste von Ascotel haben, müssen wir diese in das CSV Format von Avaya packen.

Kontakte exportieren um eine CSV Vorlage zu haben

Damit wir wissen, wie das CSV Format von Avaya aussieht, erstellen wir einfach einen Export von unseren Kontakten in Avaya selbst. Sollten Sie noch keine Kontakte haben, erstellen Sie einfach einen Beispielkontakt. Diesen Kontakt exportieren wir dann. Dies können wir ganz einfach tun unter dem Menü:

System Settings -> System Directory
Avaya Kontakte exportieren

Damit erhalten wir eine CSV, die wie folgt aufgebaut ist:

Name,Number,SpeedDialCode
Max Mustermann,006341 123456,510
Maxime Musterfrau,001590 123456,None

Genau dieses Format müssen wir 1:1 nachbilden. Dies tun wir am besten mit einem Script, das die alte CSV Datei einliest, die Daten ermittelt und in das neue Format bringt.

Das PowerShell Skript

Wir legen also ein PowerShell Skript in unserem Dateisystem an und beginnen erstmal zwei Variablen zu definieren:

$InputFile = "Input.csv"
$OutputFile = "Export.csv"

InputFile ist die Eingabe-Datei (Ascotel Export), OutputFile ist die neue Datei, die wir für Avaya erzeugen.

Danach erstellen wir am besten eine Klasse, welche als Eigenschaften die benötigen Spalten für die CSV Datei beinhaltet. Im Skript werden wir dann ein Array erstellen, welche mehrere dieser Klassenobjekte beinhaltet und befüllen diese Eigenschaften. Klingt kompliziert, ist aber eigentlich ganz einfach:

class Entry {
    [string]$Name
    [string]$Number
    [string]$SpeedDialCode
}

Ebenso erstellen wir ein Array, welches dann alle Einträge beinhalten soll.

$entries = @()

Im nächsten Schritt müssen wir nur die Input-Datei Zeile für Zeile auslesen und interpretieren, ob es sich um gültige Kontaktdaten handelt. Die ersten 10 Zeilen können wir überspringen, weil es sich hierbei um irgendwelche Artefakte von Ascotel handelt und nicht um Kontaktdaten. Auch alle Zeilen, die mit // beginnen, können wir einfach ignorieren.

$reader = [System.IO.StreamReader]::new($InputFile, [System.Text.Encoding]::UTF8)

$lineCount = 0; while($reader.Peek() -ge 0) { $ln = $reader.ReadLine();

$lineCount += 1;

if ($lineCount -lt 10) {
    continue;
}

if ($ln.StartsWith('//')) {
    continue;
}

} # END

Alle anderen Einträge, die ein Semikolon beinhalten, sind interessant für uns. Wir splitten die Zeile anhand vom Semikolon und erhalten dadurch ein String Array. Das erste Element (Index 0) ist der SpeedDialCode, das zweite Element (Index 1) ist die Telefonnummer und das letzte Element (Index 2) stellt der Name dar.

Da wir immer eine 0 vorwählen müssen bei uns, prüfen wir, ob wir die Telefonnummer dahingehend korrigieren müssen. Den SpeedDialCode lassen wir außen vor und setzen diesen hardcoded auf „None“, weil wir bereits Kontakte in der Avaya Telefonanlage haben und der SpeedDialCode eventuell bereits verwendet wird. Solltet Ihr noch keine Kontakte bei Euch in der Telefonanlage haben, könnt Ihr diesen natürlich auf die gleiche Nummer wie bei Ascotel setzen. Ersetzt einfach die Zeile:

$obj.SpeedDialCode = “None” # Überschreiben

mit

$obj.SpeedDialCode = $splitted[0].Trim()

Im Namen ersetzen wir noch alle Kommas, weil das Avaya CSV Format ein Komma anstatt ein Semikolon erwartet und dies zu Fehlern beim Import führen würde.

$name = $splitted[2];

$sanitizedName = $name.Replace(’,’, ‘’)

if ([String]::IsNullOrEmpty($sanitizedName)) { continue; } $obj.Name = $sanitizedName.Trim()

Anschließend exportieren wir die CSV Datei einfach über die Pipeline an das Cmdlet Export-CSV.

Das komplette Script sieht wie folgt aus:

Telefonbuch Import in Avaya

Nach dem Ausführen vom PowerShell Script erhalten wir die Export.csv Datei. Diese Datei können wir nun im Avaya WebManager hochladen. Dies geschieht wieder an der gleichen Stelle wie zuvor, nur dass wir diesmal Import wählen und die soeben erzeugte Datei hochladen.

System Settings -> System Directory

Nun werden Ihre Telefonbuch Einträge für Sie von Avaya importiert und sollten dann auch auf den Telefonen automatisch verfügbar sein.

Kommentare