Initial working version master codeberg/master
authorChristian Weiske <cweiske@cweiske.de>
Wed, 26 Apr 2023 18:15:30 +0000 (20:15 +0200)
committerChristian Weiske <cweiske@cweiske.de>
Wed, 26 Apr 2023 18:15:30 +0000 (20:15 +0200)
.gitignore [new file with mode: 0644]
README.rst [new file with mode: 0644]
Start-PegaMedCti.bat [new file with mode: 0644]
fritzboxcallformat [new file with mode: 0644]
pegamed-cti.bat [new file with mode: 0755]

diff --git a/.gitignore b/.gitignore
new file mode 100644 (file)
index 0000000..8d54737
--- /dev/null
@@ -0,0 +1,2 @@
+/downloads/
+/README.html
diff --git a/README.rst b/README.rst
new file mode 100644 (file)
index 0000000..90dd3b7
--- /dev/null
@@ -0,0 +1,39 @@
+===================
+FritzBox-zu-PegaMed
+===================
+
+Meldet eingehende Anrufer einer Fritzbox an die PegaMed-Software.
+
+PegaMed zeigt bei Anrufen dann den Anrufernamen, und mit einem Klick ist
+dessen Akte geöffnet.
+
+
+Installation
+============
+
+1. FritzBoxCallMonitor__ runterladen und entpacken
+2. Callmonitor bei der Fritzbox aktivieren: ``#96*5*`` anrufen
+3. ``pegamed-cti.bat`` und ``Start-PegaMedCti.bat`` in den ``Examples``-Ordner
+   in FritzBoxCallMonitor kopieren
+4. Eine Verknüpfung zu ``pegamed-cti.bat`` erstellen und ``pegamed-cti`` nennen
+   (direkt im ``Examples``-Verzeichnis)
+5. Verknüpfung bearbeiten und "Shortcut > Run: Minimized" einstellen
+6. ``Start-PegaMedCti.bat`` ausführen
+
+__ https://github.com/berrnd/FritzBoxCallMonitor
+
+
+Konfiguration PegaMed
+---------------------
+1. Prüfen, ob Telefonie verfügbar ist: ``Hilfe`` > ``Über`` und ganz nach unten scrollen.
+   Dort muss "Telefonie" ein grünes Häkchen haben.
+2. ``Einstellungen`` > ``Programm`` > ``Telefon`` > ``CTI verwenden`` aktivieren.
+3. PegaMed neu starten
+4. Oben rechts in der Symbolleiste wird jetzt ein historisches Telefon angezeigt,
+   neben dem Teamviewer-Symbol.
+
+
+Links
+=====
+- FritzBoxCallMonitor: https://github.com/berrnd/FritzBoxCallMonitor
+- .bat-Befehle: https://ss64.com/nt/
diff --git a/Start-PegaMedCti.bat b/Start-PegaMedCti.bat
new file mode 100644 (file)
index 0000000..ce0659d
--- /dev/null
@@ -0,0 +1,12 @@
+@echo off\r
+pushd "%~dp0"\r
+\r
+set fritzBox=fritz.box\r
+set callMonitor=..\FritzBoxCallMonitor.exe\r
+\r
+set scriptOnIncomingCall=pegamed-cti.lnk\r
+set scriptOnOutgoingCall=pegamed-cti.lnk\r
+set scriptOnConnected=pegamed-cti.lnk\r
+set scriptOnConnectionEnd=pegamed-cti.lnk\r
+\r
+start "" /D "%cd%" "%callMonitor%" "FritzBox=%fritzBox%" "OnIncomingCall=%scriptOnIncomingCall%" "OnOutgoingCall=%scriptOnOutgoingCall%" "OnConnected=%scriptOnConnected%" "OnConnectionEnd=%scriptOnConnectionEnd%"\r
diff --git a/fritzboxcallformat b/fritzboxcallformat
new file mode 100644 (file)
index 0000000..75dda56
--- /dev/null
@@ -0,0 +1,6 @@
+Siehe https://github.com/berrnd/FritzBoxCallMonitor#parameters
+
+Timestamp | RING       | ConnectionId | RemoteNumber | LocalNumber
+Timestamp | CALL       | ConnectionId | LocalExtension | LocalNumber | RemoteNumber
+Timestamp | CONNECT    | ConnectionId | LocalExtension | RemoteNumber
+Timestamp | DISCONNECT | ConnectionId | DurationInSeconds
diff --git a/pegamed-cti.bat b/pegamed-cti.bat
new file mode 100755 (executable)
index 0000000..189054a
--- /dev/null
@@ -0,0 +1,59 @@
+@echo off\r
+REM PegaMed konfigurieren:\r
+REM  1. "Einstellungen|Programm: Telefon" öffnen\r
+REM  2. "CTI verwenden" aktivieren\r
+REM  3. Das Programm neu starten.\r
+REM\r
+REM Fritzbox konfigurieren: Anrufen bei ..\r
+REM  #96*5*  Callmonitor-Support aktivieren\r
+REM  #96*4*  Callmonitor-Support deaktivieren\r
+REM\r
+REM Dateiort: %temp%\PM_CTI.ini\r
+REM\r
+REM Dateiformat:\r
+REM  [CTI]\r
+REM  Nummer=…\r
+REM  Status=x\r
+REM\r
+REM Status:\r
+REM  0=klingelt\r
+REM  1=abgehoben (Gesprächsbeginn)\r
+REM  2=aufgelegt (Gesprächsende)\r
+REM  3=verpasst\r
+\r
+SET ctiFile=%temp%\PM_CTI.ini\r
+\r
+SET timestamp=%~1\r
+SET eventType=%~2\r
+\r
+SET pegaStatus=999\r
+IF "%eventType%"=="RING" (\r
+    SET connectionId=%~3\r
+    SET remoteNumber=%~4\r
+    SET localNumber=%~5\r
+    SET pegaStatus=0\r
+)\r
+IF "%eventType%"=="CALL" (\r
+    REM outgoing call\r
+    EXIT /B\r
+)\r
+IF "%eventType%"=="CONNECT" (\r
+    SET connectionId=%~3\r
+    SET localExtension=%~4\r
+    SET remoteNumber=%~5\r
+    SET pegaStatus=1\r
+)\r
+IF "%eventType%"=="DISCONNECT" (\r
+    SET connectionId=%~3\r
+    REM Wir haben keine Telefonnummer\r
+    SET remoteNumber=\r
+    SET pegaStatus=2\r
+)\r
+\r
+IF %pegaStatus%==999 EXIT /B\r
+\r
+(\r
+    echo [CTI]\r
+    echo Nummer=%remoteNumber%\r
+    echo Status=%pegaStatus%\r
+)>%ctiFile%\r