Go to file
duffyduck 1be0a94b51 Fetch full contact details from Starface instead of summary
The contacts list endpoint only returns summaryValues/phoneNumbers.
Now fetch each contact individually via GET /contacts/{id} to get
all fields (blocks/attributes). Also log the detail JSON structure
so we can verify the field mapping is correct.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-03 12:50:16 +02:00
installer Release v0.0.0.10 2026-04-03 12:17:30 +02:00
src/StarfaceOutlookSync Fetch full contact details from Starface instead of summary 2026-04-03 12:50:16 +02:00
.gitignore Update .gitignore for C# standalone app 2026-04-03 10:26:39 +02:00
README.md Add release script documentation to README 2026-04-03 10:45:15 +02:00
StarfaceOutlookSync.sln Rewrite as standalone C# WinForms app 2026-04-03 10:26:58 +02:00
release.sh Fix Inno Setup compile error and release script sed pattern 2026-04-03 10:52:21 +02:00

README.md

Starface Kontakt-Sync

Windows-Anwendung zur bidirektionalen Synchronisation von Kontakten zwischen Microsoft Outlook und einer Starface Telefonanlage.

Funktionen

  • Bidirektionale Synchronisation von Kontakten zwischen Outlook und Starface
  • Profil-System zum Verwalten mehrerer Sync-Konfigurationen (verschiedene Adressbuecher oder Anlagen)
  • Starface-Adressbuecher: Zentrales Adressbuch, persoenliches Adressbuch und Tag-basierte Adressbuecher
  • Outlook-Kontaktordner: Frei waehlbarer Kontaktordner als Sync-Ziel
  • Sync-Richtung konfigurierbar: Outlook -> Starface, Starface -> Outlook oder bidirektional
  • Intelligentes Matching: Kontakte werden anhand von E-Mail-Adresse oder Name abgeglichen
  • Aenderungserkennung: Nur geaenderte Kontakte werden uebertragen (Hash-basiert)
  • Auto-Sync: Optionaler automatischer Sync in konfigurierbarem Intervall
  • System Tray: Laeuft im Hintergrund, Schnell-Sync per Rechtsklick
  • Kompatibel mit Outlook Classic und dem neuen Outlook
  • Komplett lokal: Kein Exchange, kein Microsoft 365, kein Cloud-Konto erforderlich

Voraussetzungen

  • Windows 10/11
  • .NET 8 Desktop Runtime (Setup prueft und verlinkt die Download-Seite falls noetig)
  • Microsoft Outlook (Classic oder Neu, beliebige Version)
  • Starface Telefonanlage ab Version 6.7 (REST-API)

Installation beim Kunden

Setup ausfuehren

  1. StarfaceOutlookSync_Setup_0.0.0.1.exe ausfuehren
  2. Installationsoptionen waehlen:
    • Desktop-Verknuepfung erstellen (optional)
    • Bei Windows-Anmeldung automatisch starten (empfohlen)
  3. Fertig - die App startet automatisch

Nach der Installation

  1. App starten (Tray-Icon oder Desktop-Verknuepfung)
  2. "Neues Profil" klicken
  3. Starface-Verbindungsdaten eingeben (Host, Login-ID, Kennwort)
  4. "Verbindung testen" und "Adressbuecher laden"
  5. Starface-Adressbuch und Outlook-Kontaktordner waehlen
  6. Speichern und "Jetzt synchronisieren"

Deinstallation

Ueber Windows Einstellungen -> Apps oder die Systemsteuerung. Benutzerdaten (Profile, Mappings) werden mit entfernt.

Entwicklung

Voraussetzungen (Build)

  • .NET 8 SDK (laeuft auf Windows, Linux und macOS)
  • Fuer den Installer: Inno Setup 6 (Windows) oder Docker (Linux)

.NET SDK installieren

Windows:

winget install Microsoft.DotNet.SDK.8

Debian/Ubuntu:

# Ueber das offizielle Install-Script:
wget https://dot.net/v1/dotnet-install.sh -O dotnet-install.sh
chmod +x dotnet-install.sh
./dotnet-install.sh --channel 8.0
export PATH="$HOME/.dotnet:$PATH"

Bauen

Das Projekt kann sowohl unter Windows als auch unter Linux gebaut werden. Die fertige EXE laeuft nur auf Windows (WinForms + COM Interop).

# Release-Build
dotnet build src/StarfaceOutlookSync/StarfaceOutlookSync.csproj -c Release

# Oder publish (mit allen Abhaengigkeiten):
dotnet publish src/StarfaceOutlookSync/StarfaceOutlookSync.csproj -c Release

Build-Ausgabe: src/StarfaceOutlookSync/bin/Release/net8.0-windows/win-x64/

Installer erstellen

Die Setup-EXE wird mit Inno Setup 6 erstellt.

Linux (Docker - empfohlen):

Einfachster Weg unter Linux. Baut und packt alles in einem Schritt:

# 1. Release bauen
dotnet build src/StarfaceOutlookSync/StarfaceOutlookSync.csproj -c Release

# 2. Installer erstellen
docker run --rm -v "$PWD:/work" amake/innosetup installer/setup.iss

Die fertige Setup-EXE liegt danach in dist/.

Komplett als Einzeiler (Build + Installer):

dotnet build src/StarfaceOutlookSync/StarfaceOutlookSync.csproj -c Release && docker run --rm -v "$PWD:/work" amake/innosetup installer/setup.iss

Windows:

  1. Inno Setup 6 installieren
  2. installer/setup.iss oeffnen und kompilieren
  3. Setup-EXE wird in dist/ erstellt

Oder per Kommandozeile:

"C:\Program Files (x86)\Inno Setup 6\ISCC.exe" installer\setup.iss

Linux (Wine - Alternative falls kein Docker vorhanden):

# Einmalig: Inno Setup in Wine installieren
sudo apt install wine
wine ~/Downloads/innosetup-6.x.exe

# Kompilieren
wine "$HOME/.wine/drive_c/Program Files (x86)/Inno Setup 6/ISCC.exe" installer/setup.iss

Release erstellen

Das Release-Script automatisiert den kompletten Release-Prozess: Versionsnummer aktualisieren, bauen, Installer erstellen, Git Tag + Push und Gitea Release mit Setup-EXE als Download hochladen.

./release.sh <version> ["beschreibung"]

Beispiele:

# Release mit Standard-Beschreibung
./release.sh 0.1.0.0

# Release mit eigener Beschreibung
./release.sh 0.2.0.0 "Neues Feature: Auto-Sync"

Das Script fragt beim Start nach Gitea-Benutzername und Kennwort und fuehrt dann folgende Schritte automatisch aus:

  1. Prueft Voraussetzungen (dotnet, docker, curl, sauberes git)
  2. Aktualisiert Versionsnummer in .csproj, AboutForm.cs und setup.iss
  3. Baut das Projekt (dotnet build -c Release)
  4. Erstellt den Installer via Docker (amake/innosetup)
  5. Git Commit + Tag (vX.X.X.X)
  6. Push zu Gitea (main + tag)
  7. Erstellt Gitea Release mit Setup-EXE als Download-Anhang

Voraussetzungen:

  • .NET 8 SDK
  • Docker
  • curl
  • Gitea-Account mit Push-Rechten auf das Repository

Projektstruktur

outlook-sync/
├<><E2949C>─ StarfaceOutlookSync.sln          # Visual Studio Solution
├── installer/
│   └── setup.iss                     # Inno Setup Script
└── src/StarfaceOutlookSync/
    ├── StarfaceOutlookSync.csproj    # Projektdatei
    ├── Program.cs                    # Entry Point (Single Instance)
    ├── Models/
    │   ├── UnifiedContact.cs         # Kontakt-Datenmodell
    │   └── SyncProfile.cs           # Profile, Mappings, Ergebnisse
    ├── Services/
    │   ├── StarfaceApiClient.cs      # Starface REST-API Client
    │   ├── OutlookContactsService.cs # Outlook COM Interop
    │   ├── ProfileManager.cs         # Profilverwaltung (AppData)
    │   └── SyncEngine.cs            # Bidirektionale Sync-Logik
    └── UI/
        ├── MainForm.cs              # Hauptfenster + System Tray
        ├── ProfileEditorForm.cs     # Profil anlegen/bearbeiten
        ├── SyncProgressForm.cs      # Sync-Fortschritt mit Log
        └── AboutForm.cs             # Info-Dialog

Synchronisierte Kontaktfelder

Feld Outlook (COM) Starface (REST)
Vorname FirstName NAME
Nachname LastName SURNAME
Firma CompanyName COMPANY
Position JobTitle JOB_TITLE
E-Mail Email1Address EMAIL
Telefon (Buero) BusinessTelephoneNumber OFFICE_PHONE_NUMBER
Mobiltelefon MobileTelephoneNumber MOBILE_PHONE_NUMBER
Telefon (Privat) HomeTelephoneNumber PRIVATE_PHONE_NUMBER
Fax BusinessFaxNumber FAX_NUMBER
Strasse BusinessAddressStreet STREET
Stadt BusinessAddressCity CITY
PLZ BusinessAddressPostalCode POSTAL_CODE
Bundesland BusinessAddressState STATE
Land BusinessAddressCountry COUNTRY
Webseite WebPage URL
Notizen Body NOTE
Anrede Title SALUTATION
Geburtstag Birthday BIRTHDAY

Technische Details

Architektur

Die Anwendung ist eine native Windows-App (WinForms, .NET Framework 4.8). Sie greift direkt per COM Interop auf Outlook-Kontakte zu und kommuniziert per REST-API mit der Starface. Kein Webserver, kein Browser, kein Exchange erforderlich.

StarfaceOutlookSync.exe
  ├── COM Interop -> Outlook Kontakte (lokal)
  ├── REST-API    -> Starface Telefonanlage (HTTPS)
  └── Dateisystem -> Profile & Mappings (%AppData%)

Datenspeicherung

Alle Daten werden lokal pro Benutzer gespeichert:

  • %AppData%\StarfaceOutlookSync\profiles.json - Sync-Profile mit Zugangsdaten
  • %AppData%\StarfaceOutlookSync\mappings\ - Kontakt-Zuordnungen pro Profil

SSL-Zertifikate

Self-signed Zertifikate der Starface werden automatisch akzeptiert. Es ist kein manueller Zertifikat-Import erforderlich.

Lizenz

Proprietaer - Alle Rechte vorbehalten.

HackerSoft - Hacker-Net Telekommunikation Stefan Hacker Am Wunderburgpark 5b 26135 Oldenburg