Skip to content

Latest commit

 

History

7 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

os4k-wabe2excel

Freie und belegte Rufnummern einer OpenScape 4000 / HiPath 4000 als Excel-Liste.

Export the dial plan / numbering plan of a Unify OpenScape 4000 or HiPath 4000 PBX to Excel — one row per extension, marked free, assigned or undefined. Reads the terminal output of AMO WABE (ABFRAGEN-WABE / DISPLAY-WABE). Windows PowerShell 5.1 and PowerShell 7.x, no Microsoft Excel required.

PowerShell-Skript, das die Textmitschrift des AMO WABE (Wahlbewertung) einliest und daraus eine Rufnummernbelegungsliste erzeugt — eine Zeile je Rufnummer, mit dem Status belegt, frei oder undefiniert.

Läuft unter Windows PowerShell 5.1 und PowerShell 7.x, mit oder ohne installiertes Microsoft Excel.


Installation

irm https://raw.githubusercontent.com/bhuertgen/os4k-wabe2excel/main/install.ps1 | iex

Der Installer legt das Skript unter %LOCALAPPDATA%\Programs\os4k-wabe2excel ab, nimmt den Ordner in den PATH auf und installiert bei Bedarf das Modul ImportExcel.

Mit eigenen Optionen:

$u = 'https://raw.githubusercontent.com/bhuertgen/os4k-wabe2excel/main/install.ps1'
& ([scriptblock]::Create((irm $u))) -InstallDir 'C:\Tools' -NoPath
Installer-Option Bedeutung
-InstallDir <Pfad> anderes Zielverzeichnis
-Ref <Branch|Tag> bestimmte Version laden (Standard main)
-NoPath PATH nicht ändern
-NoModule ImportExcel nicht installieren
-Uninstall Skript, Verzeichnis und PATH-Eintrag entfernen

Installation per Download (ohne irm | iex)

Auf vielen Firmenrechnern ist das Ausführen heruntergeladener Skripte eingeschränkt. Das Skript funktioniert auch völlig ohne Installer — es hat keine Abhängigkeiten außer optional ImportExcel.

Variante 1 — nur die eine Datei

  1. Convert-WabeToExcel.ps1 öffnen, auf Raw klicken und mit Speichern unter ablegen — oder direkt:

    $url = 'https://raw.githubusercontent.com/bhuertgen/os4k-wabe2excel/main/Convert-WabeToExcel.ps1'
    Invoke-WebRequest -Uri $url -OutFile .\Convert-WabeToExcel.ps1 -UseBasicParsing
  2. Datei entsperren — Windows markiert Downloads als „aus dem Internet":

    Unblock-File .\Convert-WabeToExcel.ps1
  3. Aufrufen:

    .\Convert-WabeToExcel.ps1 -Help

Variante 2 — komplettes Repo als ZIP

  1. Auf der Repo-Seite auf Code → Download ZIP, oder:

    $zip = 'https://github.com/bhuertgen/os4k-wabe2excel/archive/refs/heads/main.zip'
    Invoke-WebRequest -Uri $zip -OutFile "$env:TEMP\os4k-wabe2excel.zip" -UseBasicParsing
    Expand-Archive "$env:TEMP\os4k-wabe2excel.zip" -DestinationPath "$env:LOCALAPPDATA\Programs" -Force
  2. Entpackten Ordner (os4k-wabe2excel-main) nach Belieben umbenennen und die Skripte entsperren:

    Get-ChildItem "$env:LOCALAPPDATA\Programs\os4k-wabe2excel-main" -Recurse -Filter *.ps1 | Unblock-File

Variante 3 — per Git

git clone https://github.com/bhuertgen/os4k-wabe2excel.git

Falls die Ausführung abgelehnt wird

# einmalig für den eigenen Benutzer, keine Administratorrechte nötig
Set-ExecutionPolicy -Scope CurrentUser RemoteSigned

# oder ohne dauerhafte Änderung, nur für diesen Aufruf
powershell -ExecutionPolicy Bypass -File .\Convert-WabeToExcel.ps1 -Path .\zentrale-wabe.txt

ImportExcel nachrüsten

# mit Internetzugang
Install-Module ImportExcel -Scope CurrentUser

# für einen Rechner ohne Internet: auf einem anderen PC herunterladen ...
Save-Module ImportExcel -Path C:\Transfer
# ... den Ordner ImportExcel übertragen und ablegen unter
#     %USERPROFILE%\Documents\WindowsPowerShell\Modules   (PowerShell 5.1)
#     %USERPROFILE%\Documents\PowerShell\Modules          (PowerShell 7.x)

Ohne ImportExcel greift das Skript automatisch auf ein installiertes Excel (COM) zurück und schreibt notfalls CSV — prüfen mit Convert-WabeToExcel.ps1 -CheckOnly.


Daten aus der Anlage holen

Am AMO-Terminal (oder per Terminalprogramm mit Mitschnitt in eine Datei):

ABFRAGEN-WABE:TYP=ALLG,WABE=0&&15;      (deutschsprachige Anlage)
DISPLAY-WABE:TYPE=ALLG,WABE=0&&15;      (englischsprachige Anlage)

Der Parameter WABE=0&&15 ist wichtig — ohne ihn liefert die Anlage nur die WABE-gruppenunabhängigen Einträge. Die Mitschrift als Textdatei speichern, Kodierung ist beliebig (ANSI/Latin-1 und UTF-8 werden erkannt).


Verwendung

# eine Anlage — Ausgabedatei und Blattname werden abgeleitet
Convert-WabeToExcel.ps1 -Path .\zentrale-wabe.txt

# zwei Anlagen als zwei Arbeitsblätter in einer Mappe
Convert-WabeToExcel.ps1 -Path .\zentrale-wabe.txt,.\aussenstelle-wabe.txt `
    -WorksheetName Zentrale,Aussenstelle -OutFile .\Rufnummern.xlsx -Force

# alle Mitschriften eines Ordners
Get-ChildItem *-wabe.txt | Convert-WabeToExcel.ps1

# Parameterübersicht und Umgebungsprüfung
Convert-WabeToExcel.ps1 -Help
Convert-WabeToExcel.ps1 -CheckOnly

Zum Ausprobieren liegt eine fiktive Mitschrift im Repo:

Convert-WabeToExcel.ps1 -Path .\examples\beispiel-wabe.txt

Der Status

Status Bedeutung
belegt Rufnummer ist im System verwendet — Teilnehmer, Sammelanschluss, Kennzahl usw.
frei Kennzeichen V in der Spalte VORLEIST/RUFUM/DNI/ZUSATZINF/UFIP — die Rufnummer ist nur in der Wahlbewertung vorgeleistet und wird im System nicht weiter verwendet. Also frei vergebbar.
undefiniert Rufnummer ist in der Wahlbewertung gar nicht eingerichtet — weder belegt noch vorgeleistet.

Zur Bedeutung des V sagt die AMO-Beschreibung ABFRAGEN-WABE (OpenScape 4000 V11R1):

Der Spalte für Zusatzinformationen (VORLEIST etc.) kann man entnehmen, welche Richtungs-KZP nur in der Wahlbewertung vorgeleistet sind, ohne im System weiter verwendet zu werden. Dies wird durch den Wert „V" gekennzeichnet.

Wie „undefiniert" ermittelt wird

Die Anlage listet nicht eingerichtete Rufnummern nicht auf — sie fehlen einfach. Das Skript berechnet sie: Es betrachtet 100er-Blöcke (Rufnummer ohne die letzten zwei Stellen) ab drei Stellen Länge und füllt einen Block nur dann auf, wenn darin mindestens -MinBelegt Rufnummern mit Kennzahlpunkt TLN oder SAMMEL liegen.

Diese Schwelle verhindert, dass einzelne Netz- oder Fremdknoteneinträge einen ganzen Block erzeugen, dessen Nummernumfeld die abgefragte Anlage überhaupt nicht verwaltet. Die tatsächlich ausgewerteten Blöcke stehen als Legendenzeile im Kopf jedes Arbeitsblattes — die Zahl bleibt damit nachvollziehbar.

Mit -NoGaps entfällt die Berechnung, dann erscheinen nur die echten WABE-Einträge.


Ausgabespalten

Spalte Inhalt
Rufnummer Einzelrufnummer, immer als Text — führende Nullen bleiben erhalten
Stellen Stellenzahl, als Zahl (zum Filtern der Nummernkreise)
Status belegt / frei / undefiniert, farblich hervorgehoben
Kennzahlpunkt KZP aus der WABE (TLN, SAMMEL, QUER, ABF, …)
Bedeutung Klartext zum Kennzahlpunkt
Ziel „eigener Knoten" bzw. „Knoten n", abgeleitet aus ZLNR
Hinweis Kennzeichen R (Rufnummernumwertung, AMO RUFUM) bzw. D (DNI-Ziel für ACD, AMO DNIT)
WABE-Bereich ursprünglicher Bereichseintrag, aus dem die Zeile stammt
Gültigkeit alle WABE-Gruppen bzw. WABE 0..15
Verkehrssituation VKS-Bitmuster im Original

Rufnummernbereiche der Form 128 - 130 werden zu Einzelzeilen aufgelöst. Jedes Arbeitsblatt hat Autofilter, eingefrorene Kopfzeile und eine Summenzeile, die per SUBTOTAL mit dem gesetzten Filter mitrechnet.

Praktischer Einstieg in eine fertige Liste: auf Status = frei und Kennzahlpunkt = TLN filtern — das sind die sofort vergebbaren Nebenstellen.


Parameter

Parameter Standard Bedeutung
-Path <String[]> Pflicht Eine oder mehrere WABE-Textdateien. Wildcards und Pipeline-Eingabe zulässig.
-OutFile <String> abgeleitet Ziel-Arbeitsmappe. Ohne Angabe Rufnummernbelegung_<Datum>.xlsx neben der ersten Eingabedatei.
-WorksheetName <String[]> abgeleitet Blattnamen in Reihenfolge der Eingabedateien; sonst aus Anlagenname (AMO FBTID) bzw. Dateiname.
-MinBelegt <Int> 3 Mindestzahl belegter TLN-/SAMMEL-Nummern je Block (siehe oben).
-BlockSize <Int> 100 Größe der geprüften Nummernblöcke: 100 oder 1000.
-NoGaps aus Keine undefinierten Nummern ergänzen.
-Engine <String> Auto Auto | ImportExcel | COM | Csv.
-PassThru aus Gibt die Rufnummernobjekte zusätzlich in der Pipeline aus.
-Force aus Überschreibt eine vorhandene Ausgabedatei.
-CheckOnly Prüft nur die Umgebung und beendet sich.
-Help Parameterübersicht im Terminal.

Ausführliche Hilfe: Get-Help Convert-WabeToExcel.ps1 -Full

Weiterverarbeitung statt Excel

# freie Nebenstellen im dreistelligen Bereich
Convert-WabeToExcel.ps1 -Path .\zentrale-wabe.txt -PassThru |
    Where-Object { $_.Status -eq 'frei' -and $_.Kennzahlpunkt -eq 'TLN' -and $_.Stellen -eq 3 } |
    Select-Object -ExpandProperty Rufnummer

Ausgabe-Engines

Das Skript wählt automatisch, was verfügbar ist:

Engine Voraussetzung Anmerkung
ImportExcel Modul ImportExcel bevorzugt, kein Excel nötig (EPPlus)
COM installiertes Excel Rückfall ohne Modul
Csv letzter Rückfall, Semikolon, UTF-8 mit BOM

Beide Excel-Engines liefern zellengleiche Ergebnisse.

Hinweis zum CSV-Rückfall: Die Rufnummern stehen korrekt in Anführungszeichen, aber Excel entfernt beim Doppelklick auf eine CSV die führenden Nullen. Die Datei stattdessen über Daten → Aus Text/CSV importieren und die Spalte Rufnummer auf Datentyp Text stellen — oder ImportExcel installieren.


Voraussetzungen

Komponente Version
Windows PowerShell 5.1
oder PowerShell 7.x
ImportExcel (optional) 7.x — Install-Module ImportExcel -Scope CurrentUser
Microsoft Excel (optional) nur für -Engine COM

Test in der Windows Sandbox

Unter tests/ liegt ein Testaufbau, der die Installation in einer vollständig unberührten Windows-Umgebung prüft. Das ist aussagekräftiger als ein Test auf einem eingerichteten Arbeitsplatz, denn in der Sandbox fehlen gleich drei Dinge:

  • das Modul ImportExcel
  • der NuGet-Paketanbieter — ohne ihn stellt Install-Module eine Rückfrage, die in einer nicht interaktiven Sitzung scheitert
  • Microsoft Excel — der COM-Rückfallweg steht also nicht zur Verfügung
cd tests
.\Start-SandboxTest.ps1

Das Skript erzeugt eine .wsb-Konfiguration mit den Pfaden des eigenen Rechners, startet die Sandbox und wartet auf das Ergebnis. Geprüft werden Ausgangszustand, Einzeiler-Installation, Nachinstallation der Voraussetzungen, Kodierung des geladenen Skripts, PATH-Eintrag, Konvertierung der Beispielmitschrift inklusive Textformat und führender Nullen sowie die Deinstallation. Protokoll und erzeugte Dateien landen in tests/ergebnisse/ auf dem Host.

Voraussetzung ist das Windows-Feature Windows-Sandbox (Windows 10/11 Pro, Enterprise oder Education). Aktivieren als Administrator, danach Neustart:

Enable-WindowsOptionalFeature -Online -FeatureName Containers-DisposableClientVM

Alternative: VMware Workstation

Die Windows Sandbox setzt den Hyper-V-Hypervisor voraus, der die Leistung von VMware Workstation beeinträchtigt. Wer VMware nutzt, testet daher besser in einer VM:

cd tests
.\Start-VmwareTest.ps1                                   # listet die registrierten VMs
.\Start-VmwareTest.ps1 -Vmx 'D:\VM\Test\Test.vmx' -GastBenutzer 'Admin'

Das Skript legt einen Sicherungspunkt an, startet die VM, führt Test-Installation.ps1 über vmrun im Gast aus, holt Protokoll und Ergebnis zurück und setzt die VM anschließend auf den Sicherungspunkt zurück — der Test bleibt also rückstandsfrei. Mit -KeinRuecksetzen bleibt der Zustand nach dem Test erhalten, um einem Fehlschlag in der VM nachzugehen.

In der VM werden VMware Tools benötigt (sonst kann vmrun dort nichts ausführen) sowie ein Internetzugang; NAT genügt. Am aussagekräftigsten ist eine VM, in der weder ImportExcel noch Microsoft Excel installiert ist.


Hinweis zu Anlagendaten

AMO-Mitschriften enthalten Rufnummern, Teilnehmernamen, IP-Adressen sowie Anlagen- und Systemnummern. Die .gitignore dieses Repos blockiert *wabe*.txt, *regen*.txt, *.xlsx, *.csv und Ähnliches, damit solche Dateien nicht versehentlich in ein Repository geraten. Die Datei unter examples/ ist vollständig fiktiv.


Suchbegriffe / Search terms

Wahlbewertung, Rufnummernplan, Rufnummernbelegung, freie Rufnummern, belegte Rufnummern, vorgeleistete Rufnummer, Durchwahl, Nebenstelle, Rufnummernvorrat, Nummernkreis, Kennzahlpunkt, ABFRAGEN-WABE:TYP=ALLG, DISPLAY-WABE, AMO, ComWin, Regenerierung, OpenScape 4000, HiPath 4000, Hicom 300, Unify, Atos, Mitel, TK-Anlage, Telefonanlage — dial plan, numbering plan, extension list, DID range, direct inward dialling, PBX audit, free extension numbers report.


Weitere OpenScape-4000-Werkzeuge


Lizenz

MIT — siehe LICENSE.

Nicht mit Unify, Mitel oder Atos verbunden. OpenScape und HiPath sind Marken der jeweiligen Rechteinhaber.

About

OpenScape 4000 / HiPath 4000: AMO WABE dial plan to Excel - free, assigned and undefined extension numbers. Rufnummernplan-Auswertung der Wahlbewertung als Excel-Liste: freie, belegte und undefinierte Rufnummern. PowerShell 5.1 / 7.x, Unify / Atos / Mitel.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages