Page Index Toggle Pages: 1 [2]  Send TopicPrint
Hot Topic (More than 10 Replies) WORKSHOP: Externe Applikationen (Read 33355 times)
TheGenesis
YaBB Newbies
*
Offline


Phoner is great!

Posts: 16
Joined: 13. Jul 2005
Gender: Male
Anrufer am TV anzeigen
Reply #15 - 13. Dec 2007 at 02:02
Print Post  
Hi leuz,

dann tu ich auch ma was dabei ...

Also ... in meiner Freizeit hock ich meist vorm Fernseher und da hab ich keinen Bock immer aufzustehen und zu gucken, wer gerade anruft.

Beim glotzen vom TTS belästigt zu werden is auch nich so dolle ... da hab ich mir gedacht, baust mal ein kleines Plugin, was mir am TV anzeigt, wer gerade stört.

Das ganze läuft über meinen 2003-Server (wo u.a. Phoner installiert ist) und sendet über eine Batchdatei (externe Applikation) einen entsprechenden HTTP Aufruf an den YHHTPD auf meiner dBox im Wohnzimmer (das ist ein HTTP-Server unter Linux-Neutrino).

Es gibt 2 Batch-Scripts dazu ... das eine wandelt alle Einträge des Telefonbuches in TELEFONNUMER;UTF8Name um und speichert diese in die Datei BUCH.FLAT ...

Buch2Flat.bat:
Code
Select All
@echo off
rem Init
if "%~$PATH:0" == "" (set DUMMY=%0.bat) else (set DUMMY=%0)
for %%i in (%DUMMY%) do set ME_PATH=%%~dpi
for %%i in (%DUMMY%) do set ME_FILE=%%~nxi

rem Insure "DelayedExpansion"
set TEST_DELAY=X
if not "!TEST_DELAY!" == "X" (
    start /MIN /LOW "Sycronizing Buch.flat ..." CMD /V:ON /C%ME_PATH%%ME_FILE% %1 %2 %3 %4 %5 %6 %7 %8 %9
    goto EXIT_BATCH
)

if not exist buch.adr goto END

rem Main
if exist buch.flat del buch.flat>nul
for /f "delims=';' tokens=3,4" %%g in (buch.adr) do (
	set NUMBER=%%h
	set NUMBER_NEW=0

	for /l %%i in (0,1,30) do (
	    set CURR_CHAR=!NUMBER:~%%i,1!
	    for %%j in ("(",")","-"," ") do (
		    if "!CURR_CHAR!" == %%j set CURR_CHAR=
	    )

		set NUMBER_NEW=!NUMBER_NEW!!CURR_CHAR!
	)

	set NAME=%%g
	set NAME_NEW=

	for /l %%i in (0,1,50) do (
	    set CURR_CHAR=!NAME:~%%i,1!

	    if "!CURR_CHAR!" == " " (set CURR_CHAR=%%20) else (
	    if "!CURR_CHAR!" == ":" (set CURR_CHAR=%%3A) else (
	    if "!CURR_CHAR!" == "&" (set CURR_CHAR=%%26) else (
	    if "!CURR_CHAR!" == "ä" (set CURR_CHAR=%%A4) else (
	    if "!CURR_CHAR!" == "Ä" (set CURR_CHAR=%%84) else (
	    if "!CURR_CHAR!" == "ö" (set CURR_CHAR=%%B6) else (
	    if "!CURR_CHAR!" == "Ö" (set CURR_CHAR=%%96) else (
	    if "!CURR_CHAR!" == "ü" (set CURR_CHAR=%%BC) else (
	    if "!CURR_CHAR!" == "Ü" (set CURR_CHAR=%%9C) else (
	    if "!CURR_CHAR!" == "ß" (set CURR_CHAR=%%9F) else (
	    if "!CURR_CHAR!" == ";" (set CURR_CHAR=%%3B) else (
	    if "!CURR_CHAR!" == "(" (set CURR_CHAR=%%28) else (
	    if "!CURR_CHAR!" == ")" (set CURR_CHAR=%%29) else (
	    if "!CURR_CHAR!" == "<" (set CURR_CHAR=%%3C) else (
	    if "!CURR_CHAR!" == ">" (set CURR_CHAR=%%3E) else (
	    if "!CURR_CHAR!" == "[" (set CURR_CHAR=%%5B) else (

	    if "!CURR_CHAR!" == "]" (set CURR_CHAR=%%5D)
	    ))))))))))))))))

		set NAME_NEW=!NAME_NEW!!CURR_CHAR!
	)

	echo !NUMBER_NEW!;!NAME_NEW!>>buch.flat
)

:END
:EXIT_BATCH 


... bei mir wird es über HostMonitor automatisch gestartet, wenn die BUCH.ADR neuer ist.

Das 2te Script sorgt für die eigentliche Anzeige in der Form "NAME (MSN)":

Incoming.bat:
Code
Select All
@echo off
if "%1" == "" goto END
if "%1" == "0" (
	set OUTPUT=OHNE%%20RUFNUMMER
) else (
	set OUTPUT=%1
	for /f "delims=';' tokens=2" %%n in ('findstr /C:"%1" buch.flat') do (
		set OUTPUT=%%n
	)
)
echo %OUTPUT%>>N:\MACHINES\Server\Phoner\Incoming.log
start /B /MIN /ABOVENORMAL iexplore http://username:password@192.168.0.10:80/control/message?popup=Anruf%%3A%%20%OUTPUT%%%20%%28%2%%29
sleep 10
TASKKILL /F /FI "WINDOWTITLE eq http://192.168.0.10:80/control/message*" /IM iexplore.exe
:END 


... und wird unter externe Appliaktion in Phoner eingetragen.

die Zeile ...
Code
Select All
echo %OUTPUT%>>N:\MACHINES\Server\Phoner\Incoming.log 

... könnt ihr rausnehmen, wenn ihr nicht loggen wollt, wer alles angerufen hat ... ich hab die für Debuggingzwecke drin, wenn irgendein unerwartetes Sonderzeichen ins Telefonbuch eingetragen wurde.

die beiden HTTP-Einträge müsst ihr an die Zugangsdaten+Adresse+Port eurer eigenen dBox anpassen.

Hoffe jemand kann das gebrauchen ... bei mir unterstützt es meine eigene Faulheit Smiley

Gruß
Thom
  
Back to top
 
IP Logged
 
Thomas Brotzler
YaBB Newbies
*
Offline


Phoner is great!

Posts: 33
Location: Mühlacker
Joined: 14. Apr 2005
Gender: Male
Re: WORKSHOP: Externe Applikationen
Reply #16 - 16. Dec 2007 at 16:15
Print Post  
Lieber Suppenkasper,

meine Fragen beziehen sich auf Deine Beiträge vom Juli 2005 und die darin beschriebene Möglichkeit, Notepad für die Anrufprotokollierung zu nutzen ...

1. Wie kann das Notizverzeichnis geändert bzw. auf Netzwerkfreigaben gelegt werden? Per UNC (\\Rechner\Freigabe\Pfad)?

2. Wie könnte man Anrufe mit unterdrückter Rufnummer, die man entsprechend ja gar nicht eindeutig zuordnen kann, aus der Protokollierung herausnehmen bzw. den Aufruf von Notepad dafür unterbinden?

Vielen Dank für Antworten ... und "koin Streß med dena Woihnachtsgschenkle" Smiley ...
Thomas
  

"Del Computel ist del letzte und fulchtbalste Feind des Menschen" (altchinesische Weisheit)
Back to top
WWW  
IP Logged
 
Bole :D
YaBB Newbies
*
Offline


Phoner is great!

Posts: 1
Joined: 18. May 2016
Re: WORKSHOP: Komfortable Notizfunktion
Reply #17 - 18. May 2016 at 15:03
Print Post  
Suppenkasper wrote on 03. Jul 2005 at 13:04:
Den Workshop führe ich heute erst einmal weiter, und zwar mit einer etwas verbesserten Version der vorstehenden Anrufer-Notizen:




Komfortablere Notizfunktion per Batch-Datei

Bei der Lösung, notepad.exe zu starten, um eine Notiz-Funktion für Anrufer zu bekommen, stören eigentlich drei Dinge:

a) Ruft ein Anrufer zum ersten Mal an, stört der Windows-Dialog, der nachfragt, ob notepad.exe geöffnet werden soll,

b) Das Phoner-Verzeichnis verkommt zum Notiz-Müll-Platz,

c) Dem Eintrag fehlen zuerst einmal Datum und Uhrzeit - wofür gibt es Computer, wenn man dass auch noch per Hand eintragen muss?

Abhilfe schafft eine Batch-Datei, die bei einem hereinkommenden Anruf gestartet wird. Aber jetzt erst einmal von Anfang an:

1. Schritt: 

In das Verzeichnis, in dem Phoner installiert wurde, muss ein neues Verzeichnis mit dem Namen Notizen angelegt werden, damit das folgende Script funktioniert.

2. Schritt

Mit dem Notepad wird eine Textdatei geöffnet, in die folgendes eingetragen wird:

Code
Select All
@ECHO OFF
SET DIR=Notizen
SET NOTIZ=%DIR%\%1 %2.txt
SET ANRUFER=%1
ECHO Neuer Anruf von %ANRUFER% >>"%NOTIZ%"
ECHO am %date:~0%, %time:~0,8% Uhr >>"%NOTIZ%"
ECHO.>>"%NOTIZ%"
ECHO.>>"%NOTIZ%"
START C:\WINDOWS\notepad.exe %NOTIZ%
SET NOTIZ=
SET ANRUFER=
SET DIR=
 



Achtung: Wenn das Verzeichnis Notizen, das vorher angelegt worden ist, anders heissen soll, dann ist der Verzeichnisname entprechend in der zweiten Code-Zeile anzupassen (hinter dem "="-Zeichen).

Diese TExt-Datei wird als ASCII-Text unter dem Namen phonerstart.bat (oder beliebig) in das Verzeichnis gespeichert, in dem auch die phoner.exe steht.

Schritt 3:

In Phoner, unter dem Menü Optionen|externe Applikation, wird die Datei phonerstart.bat und der Pfad zu ihr eingetragen.

Von jetzt an fragt Windows bei einem Anrufer, für den es noch keine Notiz gibt, nicht mehr nach, ob die Datei geöffnet werden soll,

Es öffnet sich ein notepad-fenster, welches Datum und Uhrzeit des Anrufes so wie die CallerID des Anrufers enthält,

und alle Notizen werden im Programm-Verzeichnis von Phoner im Ordner "Notizen" gespeichert.

Ein weiterer Vorteil - meiner Meinung nach - ist, dass man, ist man mal nicht am Platz, anhand der geöffneten Notepad-Fenster direkt sehen kann, welche Anrufe man verpasst hat. Will man nicht zurückrufen, so schliesst man diese Fenster einfach (und wird, wenn man nichts weiteres einträgt, nicht zum Speichern aufgefordert).




Dieses Script wurde unter Windows XP Pro, Windows XP Home und Windows Server 2003 getestet, und bringt dort die richtigen Resultate. Aufgrund der verwendeten %date- und %time-Variablen kann es u. U. sein, dass es unter anderen Versionen des Windows-OS nicht richtig funktioniert.

Viele Grüße vom Kai



Ich habe das Problem, dass die Notepad-Datei nur geöffnet wird, wenn ich von Phoner aus einen Anruf tätige. Kommt einer rein, so gibt es bei mir nur eine Fehlermeldung :
Code
Select All
Die Syntax für den Dateinamen, Verzeichnisnamen oder die Datenträgerbezeichnung ist falsch. 


Komisch ist, dass es einwandfrei funktioniert, wenn ich rausrufe.
Ich hoffe jemand kann helfen
  
Back to top
 
IP Logged
 
Page Index Toggle Pages: 1 [2] 
Send TopicPrint