TAPI Line Keeper
================

Zweck
-----
Hält eine TAPI-Leitung dauerhaft geöffnet, damit die ivoris-Praxissoftware
über den Linkus-TAPI-Treiber jederzeit sofort auf eine offene Leitung
zugreifen kann. Damit entfällt der bekannte Fehler beim ersten Anruf
("keine offene Leitung gefunden"), der bisher immer den ersten Ruf scheitern
ließ und erst beim zweiten Versuch funktionierte.


WICHTIGE VORAUSSETZUNG
----------------------
Der Yeastar-TSP holt sich die Leitung vom LINKUS DESKTOP CLIENT. Damit die
Leitung geöffnet werden kann, muss der Linkus Desktop Client laufen UND
angemeldet sein. Ist Linkus nicht angemeldet, meldet der Treiber
"RESOURCEUNAVAIL" und die Anzeige bleibt rot – das ist dann KEIN Fehler des
Tools, sondern der fehlende Linkus-Login.

Sinnvolle Reihenfolge beim Hochfahren:
  1. Linkus Desktop Client startet und meldet sich an
     (in Linkus: Einstellungen -> "Automatisch starten" ist aktiv).
  2. TAPI Line Keeper startet (Autostart) und hält die Leitung offen.
Startet das Tool vor dem Linkus-Login, bleibt es kurz rot und wird von
selbst grün, sobald Linkus verbunden ist (es versucht es alle 2,5 s erneut).


Bedienung
---------
1. TapiLineKeeper.exe starten (Doppelklick).
2. Oben im Auswahlfeld die gewünschte TAPI-Leitung wählen
   (z. B. den Linkus-/Yeastar-Eintrag). Die Leitung wird sofort geöffnet
   und dauerhaft offen gehalten.
3. Der Farbpunkt zeigt den Zustand:
      GRÜN  = Leitung ist geöffnet
      ROT   = Leitung ist geschlossen
4. Schaltfläche "Leitung neu starten": schließt die Leitung und öffnet
   sie sofort wieder (falls der Treiber sich mal verschluckt).
5. Häkchen "Automatisch mit Windows starten": legt das Programm in den
   Windows-Autostart. Beim nächsten Hochfahren startet es automatisch,
   direkt im Hintergrund (Taskleiste unten rechts), und öffnet die zuletzt
   gewählte Leitung von selbst.


Taskleiste / Hintergrundbetrieb
-------------------------------
- Das Programm läuft mit einem Symbol rechts unten im Infobereich der
  Taskleiste (ggf. auf den kleinen Pfeil "^" klicken, um es einzublenden;
  man kann das Symbol dort dauerhaft anheften).
      Grünes Symbol = Leitung offen
      Rotes Symbol  = Leitung geschlossen
- Fenster schließen (X)  -> Programm läuft im Hintergrund weiter.
- Doppelklick auf das Symbol -> Fenster wieder öffnen.
- Rechtsklick auf das Symbol -> "Beenden" beendet das Programm wirklich.

Ein Wächter prüft alle 10 Sekunden, ob die Leitung noch offen ist, und
öffnet sie bei Bedarf automatisch neu.


Autostart-Symbol dauerhaft sichtbar machen (empfohlen)
------------------------------------------------------
Windows-Einstellungen -> Personalisierung -> Taskleiste ->
"Weitere Symbole in der Taskleiste" -> "TAPI Line Keeper" auf EIN.


Dateien
-------
TapiLineKeeper.exe   Das fertige Programm (keine Installation nötig).
Program.cs           Der Quellcode.
build.bat            Baut die .exe neu (nur bei Änderungen am Quellcode).
LIESMICH.txt         Diese Datei.

Einstellungen werden gespeichert unter:
%AppData%\TapiLineKeeper\config.ini
Der Autostart-Eintrag liegt in der Registry unter:
HKCU\Software\Microsoft\Windows\CurrentVersion\Run  (Wert "TapiLineKeeper")


Bei Problemen (Anzeige bleibt rot)
----------------------------------
1. Läuft der Linkus Desktop Client und ist er ANGEMELDET? (Häufigste Ursache.)
2. Ist im Auswahlfeld die richtige Leitung gewählt (z. B. "15:SilasBoerm")?
3. "Leitung neu starten" drücken.
4. Treiber-Protokoll zur Diagnose ansehen:
   C:\ProgramData\Yeastar TAPI Services Provider\tapi.log
   - "websocket connection opened" + "start heartbeat"  = Verbindung OK
   - "no available line config" / "fetch linkus info failed"
                                                   = Linkus nicht angemeldet

Technische Hinweise
-------------------
- Läuft ohne Administratorrechte.
- Nutzt die Windows-TAPI-2.x-Schnittstelle (tapi32.dll).
- Öffnet die Leitung möglichst schonend: zuerst nur überwachend
  (MONITOR), damit ivoris weiterhin selbst Anrufe steuern kann; falls der
  Treiber das nicht unterstützt, wird als Rückfall ohne Privilegien geöffnet.
- Wird die Leitung von außen geschlossen, öffnet das Programm sie erneut.
