Hi,
Komisch - manche tar's scheinen das nicht zu moegen.
Ich hab das Paket im ersten Beitrag erneuert.
[Announce]FritzBox Anrufmonitor
- helau
- Geschlossen
-
-
Hi.
gelöscht weil Quatsch -
Hat jemand eventuell ein start script für den anrufmonitor unter ctvdr ?
Hier mal das was ich nach der Vorlage versucht habe, allerdings ist das Problem, das er damit nicht richtig startet und wirklich Ahnung habe ich davon auch nicht:
Bash
Alles anzeigen#!/bin/sh -e # # Startup script for Fritzwatch # DESC="FritzWatch Anrufmonitor" case "$1" in start) printf "Starting $DESC:" nohup nc6 fritz.box 1012 | /usr/bin/fritzwatch.sh 2>&1 & eend $? printf "\n" ;; stop) printf "Stopping $DESC:" killall -q fritzwatch.sh nc6 eend 0 printf "\n" ;; *) printf "Usage: $0 {start|stop}\n" >&2 exit 1 ;; esac exit 0
-
Keiner eine Ahnung?
-
Hallo Aeroschmelz,
ist "eend" sh-Syntax? Meiner kennt's jedenfalls nicht...
Dein Script läuft bei mir, wenn ich es statt mit eend an den betreffenden Stellen mit exit aussteigen lasse.Bash
Alles anzeigen#!/bin/sh -e # # Startup script for Fritzwatch # DESC="FritzWatch Anrufmonitor" case "$1" in start) printf "Starting $DESC:" nohup nc6 192.168.1.98 1012 | /usr/sbin/fritzwatch1.sh 2>&1 & printf "\n" exit $? ;; stop) printf "Stopping $DESC:" killall -q fritzwatch1.sh nc6 printf "\n" exit 0 ;; *) printf "Usage: $0 {start|stop}\n" >&2 exit 1 ;; esac exit 0
Gruß, Bernd -
funktioniert das ganze auch mit der fritzbox 7170?
mfg mentox
-
Zitat
Original von mentox
funktioniert das ganze auch mit der fritzbox 7170?Ja, ohne Probleme.
ZitatOriginal von helau
Hier mal ein UpdateVielen Dank für das Skript. Das Pearl Skript hinterlässt bei meinem ctvdr5 lauter Speicherleichen. Dagegen funktioniert Dein Skript ausgezeichnet.
Das Update der URL vom Örtlichen war wieder in das Skript mit der temporären Datei eingebaut., welche ständig überprüft wird. Auch der Eintrag in die CALL_DB hat glaub gefehlt. Ich habe die URL in das 2. Skript übernommen.
Hier die gemixte fritzwatch.sh
Bash
Alles anzeigen#!/bin/sh echo $0 LASTCALL="" MSN=";" #Nummern bitte anpassen CALL_DB="/tmp/caller.db" #Pfad bitte anpassen CALL_LOG="/tmp/fritz.log" #Pfad bitte anpassen while [ "$(pidof nc)" != "" ] ; do read LINE INCOMING=$(echo "$LINE" | grep "RING" | grep $MSN) CALLER="" if [ "$INCOMING" != "" ] && [ "$INCOMING" != "$LASTCALL" ] ; then LASTCALL=$INCOMING NUMBER=$(echo "$INCOMING" | cut -f 4 -d ";") CALLER=$(grep "^$NUMBER " $CALL_DB ) if [ "$CALLER" = "" ] ; then # svdrpsend.pl "MESG $NUMBER" wget -O - "http://www2.dasoertliche.de/?id=3339GS10886550222242399&la=de&form_name=detail&lastFormName=search_inv&ph=$NUMBER&recFrom=1&hitno=99&kgs=11000000&zvo_ok=1&page=TREFFERLISTE&context=TREFFERLISTE&action=TEILNEHMER&orderby=name&ttforderby=rel&la=de&detvert_ok=1" >/tmp/tst.out CALLNAME=$(grep "detail_top" /tmp/tst.out | cut -f 2 -d ">" | sed -e "s/<\/a>/, /" -e "s/<.*//" -e "s/[ ]*$//g") ADDRESS=$(grep -A 10 "adresse start" /tmp/tst.out |grep "<div>"| cut -f 2,3 -d ">"| sed -e "s/<.*>/, /" |sed -e "s/<.*//") CALLER="$CALLNAME, $ADDRESS" echo "$NUMBER $CALLER" >> $CALL_DB else CALLER=$(echo "$CALLER" | cut -f 2- -d " ") fi logger -s "Caller: $NUMBER $CALLER" svdrpsend.pl "MESG $NUMBER $CALLER" fi if [ "$CALL_LOG" != "" ] ; then echo "$LINE; $CALLER" >> $CALL_LOG fi sleep 1 done # Restart me nohup nc fritz.box 1012 | $0 2>&1 &
Ich werde heute abend mal noch versuchen, dass Ding auf die Fritzbox selbst zu bringen. Die Busybox der aktuellen original Firmware müsste alle Befehle parat haben. Vorteil: Man kann auch noch einen Mailer anwerfen, der über eingehende Anrufe informiert - auch während der VDR aus ist.
-
Das Skript habe ich jetzt auf die Box selbst verschoben. Damit bekomme ich eine Mail mit Namen des Anrufers vom Örtlichen, auch wenn der vdr gerade aus ist.
Einfach das Skript wie es ist in die debug.cfg aufnehmen und es tut. Man sollte aber in der debug.cfg auch "killall telefon; sleep 3; telefon a127.0.0.1 | fritzwatchf.sh start &" verwenden können um etwas Hauptspeicher zu sparen. Dann muss aber das Auswerten der eingelesenen Zeile noch angepasst werden.
Bis auf "cut" waren alle benötigten Befehle in der busybox von original Firmware 29.04.29 enthalten. Für mein fritzwatchf.sh verwende ich noch die busybox, die zB bei der ssh Erweiterung verwendet wird.
Und hier die fritzwatchf.sh:
Bash
Alles anzeigen#!/bin/sh # Restart me to listen to the callmonitor if necessary if [ "$1" != "start" ] ; then echo "friwtzwatch restart - listening to the callmonitor" busybox tail -f < /dev/null | busybox nc localhost 1012 | $0 start > /dev/null & else LASTCALL="" MSN=";" CALL_DB="caller.db" # textfile for cache of caller lookup CALL_LOG="fritzwatch.log" # logfile VDRIP="192.168.x.x" # ip of vdr VDRP="2001" # port to svdrp e.g. 2001 BBPATH="/var/tmp" # path to busybox with "cut" e.g. /var/tmp mailer_to="user@server.net" # Eure Ziel E-Mail Addi mailer_from="user@server.net" # Eure Quell E-Mail Addi mailer_server="smtp.server.net" # Euer E-Mail Server mailer_username="smtp_user" # Euer E-Mail Anmeldename mailer_password="smtp_pwd" # Euer E-Mail Passwort while [ "$1" = "start" ] ; do read LINE INCOMING=$(echo "$LINE" | grep "RING" | grep $MSN) CALLER="" if [ "$INCOMING" != "" ] && [ "$INCOMING" != "$LASTCALL" ] ; then LASTCALL=$INCOMING NUMBER=$(echo "$INCOMING" | $BBPATH/busybox cut -f 4 -d ";") CALLER=$(grep "^$NUMBER " $CALL_DB ) if [ "$CALLER" = "" ] ; then # svdrpsend.pl "MESG $NUMBER" wget -O - "http://www2.dasoertliche.de/?id=3339GS10886550222242399&la=de&form_name=detail&lastFormName=search_inv&ph=$NUMBER&recFrom=1&hitno=99&kgs=11000000&zvo_ok=1&page=TREFFERLISTE&context=TREFFERLISTE&action=TEILNEHMER&orderby=name&ttforderby=rel&la=de&detvert_ok=1" >/tmp/tst.out CALLNAME=$(grep "detail_top" /tmp/tst.out | $BBPATH/busybox cut -f 2 -d ">" | sed -e "s/<\/a>/, /" -e "s/<.*//" -e "s/[ ]*$//g") ADDRESS=$(grep -A 10 "adresse start" /tmp/tst.out |grep "<div>"| $BBPATH/busybox cut -f 2,3 -d ">"| sed -e "s/<.*>/, /" |sed -e "s/<.*//") CALLER="$CALLNAME, $ADDRESS" echo "$NUMBER $CALLER" >> $CALL_DB else CALLER=$(echo "$CALLER" | $BBPATH/busybox cut -f 2- -d " ") fi # logger -s "Caller: $NUMBER $CALLER" # svdrpsend.pl "MESG $NUMBER $CALLER" echo -en "MESG $NUMBER $CALLER\nquit\n" | busybox nc $VDRIP $VDRP timestamp=`date +%y%m%d_%H%M%S` mailer -s "ANRUF - $timestamp $NUMBER $CALLER" -f "$mailer_from" -t "$mailer_to" -m "$mailer_server" -a "$mailer_username" -w "$mailer_password" # mailer fi if [ "$CALL_LOG" != "" ] ; then echo "$LINE; $CALLER" >> $CALL_LOG fi sleep 1 done fi # if "$1" = "start" else
-
Hallo zusammen,
ich habe eine Fritzkarte hier liegen und möchte diese als Anrufmonitor nutzen.
MIK, wie hast du das mit dem Script bei deinem VDR intregriert?
Muss ich davor noch etwas anderes installieren?Ich glaube das noch einige eine Fritzkarte rumliegen haben und die das wahrsch. auch stark interessieren würde.
MfG
Satmen -
So, habe mir jetzt aufgrund dieses Scriptes eine Fritzbox Fon zugelegt.
Diese funzt auch perfekt mit Windoof zusammen.
Auf einem VDR mit Easyvdr Installiert funzt das Script auch sehr gut.
Nun habe ich im Wohnzimmer bei meinem so-zu. Hauptvdr Minivdr Installiert und habe das Problem mit nc6.
Hat jemad ein fertig kompiliertes nc6 für Minivdr 1.3 oder kann mir jemand anderweitig helfen.MfG
Satmen -
Zitat
Original von the_raven
Hier die gemixte fritzwatch.shBash
Alles anzeigen#!/bin/sh echo $0 LASTCALL="" MSN=";" #Nummern bitte anpassen CALL_DB="/tmp/caller.db" #Pfad bitte anpassen CALL_LOG="/tmp/fritz.log" #Pfad bitte anpassen while [ "$(pidof nc)" != "" ] ; do read LINE INCOMING=$(echo "$LINE" | grep "RING" | grep $MSN) CALLER="" if [ "$INCOMING" != "" ] && [ "$INCOMING" != "$LASTCALL" ] ; then LASTCALL=$INCOMING NUMBER=$(echo "$INCOMING" | cut -f 4 -d ";") CALLER=$(grep "^$NUMBER " $CALL_DB ) if [ "$CALLER" = "" ] ; then # svdrpsend.pl "MESG $NUMBER" wget -O - "http://www2.dasoertliche.de/?id=3339GS10886550222242399&la=de&form_name=detail&lastFormName=search_inv&ph=$NUMBER&recFrom=1&hitno=99&kgs=11000000&zvo_ok=1&page=TREFFERLISTE&context=TREFFERLISTE&action=TEILNEHMER&orderby=name&ttforderby=rel&la=de&detvert_ok=1" >/tmp/tst.out CALLNAME=$(grep "detail_top" /tmp/tst.out | cut -f 2 -d ">" | sed -e "s/<\/a>/, /" -e "s/<.*//" -e "s/[ ]*$//g") ADDRESS=$(grep -A 10 "adresse start" /tmp/tst.out |grep "<div>"| cut -f 2,3 -d ">"| sed -e "s/<.*>/, /" |sed -e "s/<.*//") CALLER="$CALLNAME, $ADDRESS" echo "$NUMBER $CALLER" >> $CALL_DB else CALLER=$(echo "$CALLER" | cut -f 2- -d " ") fi logger -s "Caller: $NUMBER $CALLER" svdrpsend.pl "MESG $NUMBER $CALLER" fi if [ "$CALL_LOG" != "" ] ; then echo "$LINE; $CALLER" >> $CALL_LOG fi sleep 1 done # Restart me nohup nc fritz.box 1012 | $0 2>&1 &
danke, ist das skript noch aktuell ?
immer wenn ich angerufen werde bekomme ich auf dem vdr nur einen grünen info balken, aber ohne nummer info..
musste auch in zeile 21 den pfad zu svdrpsend.pl spezifizieren..kann mir wer helfen ?
infinite
-
Hier ist das aktuelle.
-
vielen dank für das script, aber gibt bei mir nur das:
Zitat
++ pidof nc6
+ '[' '' = '' -a '' '!=' -restart ']'
++ which nc6
+ '[' '' = '' ']'
+ logger -s 'nc6 nicht vorhanden'
root: nc6 nicht vorhanden
+ exitbei debian gibts kein nc6, zumindestens findet apt-get da nichts.
wenn ich nc6 durch nc ersetze bekomme ich das:
Zitat
++ pidof nc
+ '[' '' = '' -a '' '!=' -restart ']'
++ which nc
+ '[' /bin/nc = '' ']'
+ ping -b -c1 fritz.box
+ '[' 0 '!=' 0 ']'
+ '[' -f /_config/status/~fritzwatch ']'was mache ich falsch ?
-
Habe selbiges Problem mit NC. Da ich gerade mit Linvdr Mahlzeit ISO3.2 am testen bin, wollte ich mir auch wieder fritzwatch mit draufpacken. Linvdr ist für mich Neuland. NC ist installiert. Wenn ich im Skript aus NC6 -> NC mache, dann bekomme ich in etwa die gleiche Meldung wie oben.
Welche Lösungen gibt es?
Grüße
Oliver -
soo, fehler lag bei mir, nun hab ich auch netcat6.
fehler bleibt aber auch mit nc6 in etwa derselbe:
Zitat
haddock:/usr/local/bin# ./fritzwatch.sh
++ pidof nc6
+ '[' '' = '' -a '' '!=' -restart ']'
++ which nc6
+ '[' /usr/bin/nc6 = '' ']'
+ ping -b -c1 fritz.box
+ '[' 0 '!=' 0 ']'
+ '[' -f /_config/status/~fritzwatch ']'infinite
-
-
hallo helau,
dann krieg ich
Zitat
++ pidof nc6
+ '[' '' = '' -a '' '!=' -restart ']'
++ which nc6
+ '[' /usr/bin/nc6 = '' ']'
+ ping -b -c1 fritz.box
+ '[' 0 '!=' 0 ']'
+ nohup nc fritz.box 1012
+ ./fritzwatch.sh -restart
++ pidof nc6
+ i
+ '[' '' = '' -a -restart '!=' -restart ']'
++ pidof nc6
+ '[' '' '!=' '' ']'
+ nohup nc fritz.box 1012
+ ./fritzwatch.sh -restart
+ i
./fritzwatch.sh: line 62: i: command not found -
Hi,
Sorry, das letzte i gehoert natuerlich weg, das hat sich irgendwie reingeschummelt
Zudem musst du alle "nc6" durch "nc" ersetzen. -
soo, jetz scheint das ganze auch zu klappen, im log steht auch dass wer angerufen hat, jedoch krieg ich keine meldung aufm tv.. muss ich vlt im script zum svdrpsend.pl den kompletten pfad angeben ?
infinite
-
Bei ctvdr auf alle Fälle.
Da ist svdrpsend.pl nicht in nem Standardsuchpfad.
Jetzt mitmachen!
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!