Quick'n'Dirty: SMS-Benachrichtigung bei eingehenden Anrufen

wichard schrieb:
... Darf ich bei der Gelegenheit daran erinnern, daß ich Dir den entscheidenden Link rausgesucht habe? ;)

In dem Sinne: :keks: und auf weitere gute Zusammenarbeit!


Gruß,
Wichard

Ups. Welchen Tip meinst Du jetzt ? Aufbauend auf Moonbase's Idee habe ich den Hinweis von SeTTembrinY aufgegriffen und den ersten Versuch gemacht. Erstmalig erscheint ein wichard hier.

Hinter welcher Identität verbirgst Du Dich also noch ?

Für eine gute und gewinnbringende Zusammenarbeit bin ich immer offen.

Beste Grüße.

TF
 
Unterminated quoted string?

Hui, hier ist auf einmal so ein eisiger Wind im Forum... was ist denn da los?

Vielleicht könntet Ihr Euch nochmal kurz um's Thema kümmern(nur kurz), es klappt ja schon fast...
Hier mein "Running Code":

Code:
NUMMER=$1
sleep 60

/usr/bin/wget http://192.168.178.1/cgi-bin/webcm?getpage=../html/de/menus/menu2.html\&var:lang=de\&var:menu=fon\&var:pagename
=foncalls -O /dev/null


echo "nun 5 warten"
sleep 5


#anrufliste auslesen
/usr/bin/wget http://127.0.0.1/cgi-bin/webcm?getpage=../html/de/FRITZ!Box_Anrufliste.csv -O /var/tmp/anrufliste.csv

echo "anrufliste wurde ausgelesen"

echo $NUMMER

grep $NUMMER /var/tmp/anrufliste.csv > /var/tmp/erg.txt


LISTE=$(cat "/var/tmp/erg.txt")

echo "Liste ist "

echo $LISTE

# hier sind die neusten zuerst
# und wenn die erste Ziffer eine 3 ist, dann hat das Geslprõch keiner entgegen g
ERG=$(/var/tmp/expr substr "$LISTE" 1 1)
echo "Ergebnis ist:"

echo $ERG

if [ "$ERG" -eq 2 ] ; then

#! /bin/sh
# und hier kommt der mailer hin - fertig
echo "Mailer"
url="http://www.dasoertliche.de/DB4Web/es/oetb2suche/home.htm?kw_invers=$1&main=Antwort&s=2"
output=$(wget -q -O - "$url"|grep class=\"blb\"|sed -e 's/<[^<]*>/\ /g;s/^[ \t]*//;s/\ / /g'

/sbin/mailer \
 -s "Anruf von $1 ($output) auf Leitung $2 ($3) $4 um `date +\"%d.%m.%y %H:%M\"`
 -f'Fritzbox@Home <[email protected]>' \
 -t'xxxx <[email protected]>' \
 -m 'smtp.domain.com' \
 -a 'xxxxxx' \
 -w 'xxxxxx
else
#nix
fi

rm /var/tmp/anrufliste.csv
rm /var/tmp/erg.txt#

Ich hab da die Hilfsechos drin um zu sehen wie weiter er kommt. Das $ERG gibt er noch aus und dann steigt er mit einem "/var/flash/calllog: 1: Syntax error: Unterminated quoted string" aus. Ich hab doch aber alle Anführungszeichen drin, oder?
 
SeTTembrinY schrieb:
Code:
 -s "Anruf von $1 ($output) auf Leitung $2 ($3) $4 um `date +\"%d.%m.%y %H:%M\"`
[...]
-w 'xxxxxx
Könnte es sein, daß bei der ersten zitierten Zeile noch ein "\ am Ende sowie in der zweiten Zeile ein ' Edit: ein ' \ am Ende fehlen?


Gruß,
Wichard
 
wichard schrieb:
Könnte es sein, daß bei der ersten zitierten Zeile noch ein "\ am Ende sowie in der zweiten Zeile ein ' Edit: ein ' \ am Ende fehlen?
Also so???
Code:
NUMMER=$1 \
sleep 60'\

Jetzt läuft er gar nicht durch, kommt gleich ein
/var/flash/calllog: 45: Syntax error: Unterminated quoted string
 
SeTTembrinY schrieb:
Nein, am Ende der von mir oben zitierten Zeilen.

Also statt
Code:
 -s "Anruf von $1 ($output) auf Leitung $2 ($3) $4 um `date +\"%d.%m.%y %H:%M\"`
[...]
-w 'xxxxxx
folgendes:
Code:
 -s "Anruf von $1 ($output) auf Leitung $2 ($3) $4 um `date +\"%d.%m.%y %H:%M\"`"\
[...]
-w 'xxxxxx' \


HTH,
Wichard
 
Es geht!

*slap* Ich war selber schuld - Danke für die Hilfe. Ich hatten einen blöden (bzw. zwei) Copy/Paste-Fehler drin. Mir hatte es die rechte Seite abgeschnitten... *grr* (bei dem output/wget hat rechts auch noch die ) gefehlt).

Danke Wichard für die guten Augen... *g*!

So isses richtig und klappt endlich auch! *froi*.

Nun kann ich beruhigt ins Bett gehen..
Code:
....
output=$(wget -q -O - "$url"|grep class=\"blb\"|sed -e 's/<[^<]*>/\ /g;s/^[ \t]*//;s/\ / /g')

/sbin/mailer \
 -s"Anruf von $1 ($output) auf Leitung $2 ($3) $4 um `date +\"%d.%m.%y %H:%M\"`"\
 -f'Fritzbox@Home <[email protected]>' \
 -t'Sven <[email protected]>' \
 -m 'smtp.xxxx.com' \
 -a 'xxxx' \
 -w 'xxxx'
else
 
Wer's braucht (wie ich z.B.): ;)

  1. Es wird zuerst der Anrufer-Name im FBF-Telefonbuch gesucht und mitgesendet.
  2. Ist der Name nicht im Telefonbuch, wird die Inverssuche benutzt!

Code:
#! /bin/sh
CID=$1
name=""
ParseTelefonbuch() {
  export REQUEST_METHOD="GET"
  export REMOTE_ADDR="127.0.0.1"
  export QUERY_STRING="getpage=../html/de/menus/menu2.html&var:lang=de&var:menu=fon&var:pagename=fonbuch"
  cd /usr/www/html/cgi-bin
  ./webcm |
  sed -n 's/^.*document.write(TrFon(.*", "\(.*\)", ".*'$*'.*/\1/p'
}

if [ -z "$CID" ]
  then
    CID="unbekannt";
    name="-"
  else
    name=`ParseTelefonbuch $CID`
    if [ -z "$name" ]
      then
        url="http://www.dasoertliche.de/DB4Web/es/oetb2suche/home.htm?kw_invers=$CID&main=Antwort&s=2";
        name=$(wget -q -O - "$url" | grep class=\"blb\" | sed -e 's/<[^<]*>/\ /g;s/^[ \t]*//;s/\ / /g');
        if [ -z "$name" ]
          then
            name="kein Eintrag"
        fi
    fi
fi

echo $name >/var/tmp/calllog.txt

echo "#########################"
echo "`date +\"%d.%m.%y %H:%M\"` - Anruf von $CID ($name) an $2 ($3) $4"
echo

/sbin/mailer \
  -s "`date +\"%d.%m.%y %H:%M\"` - Anruf von $CID ($name) an $2 ($3) $4" \
  -f '"Fritz!Box" <[email protected]>' \
  -t "[email protected]" \
  -m smtp.mail.de \
  -a Benutzer \
  -w "Passwort" \
  -i '/var/tmp/calllog.txt'
#  2> /dev/null
Viel Spass!
 
Coole Sache das Script, dazu hätte ich noch 2 Anfängerfragen:

1. wenn ich den mailer bzw sh wieder stoppen/deaktivieren will, wie mach ich das dann?

2. Könnte man an der Stelle
RudatNet schrieb:
echo $name >/var/tmp/calllog.txt
das File nicht auch auf einen angeschlossenen und im Internet freigegebenen USB-Stick schieben? Falls, ja wie würde das lauten?

danke
tobby
 
Hallo,

bei mir klappt es nicht:( irgenwas übersehe ich, soll die Benachrichtigung sofort nach dem verpassten Anruf folgen?

Danke
Grüße
Andreas
 
@tobby,

1. Keine Ahnung. Evtl. einfach die Datei calllog löschen oder umbenennen
2. Keine Ahnung.


@pupkin,

die "Mail" wird sofort beim Anruf gesendet.
Evtl. Probleme siehst du, wenn du das Telnet-Fenster beobachtest.
 
RudatNet schrieb:
@tobby,

@pupkin,

die "Mail" wird sofort beim Anruf gesendet.
Evtl. Probleme siehst du, wenn du das Telnet-Fenster beobachtest.

vielleicht mache ich Fehler bei Telnet? gibt es eine gute Anleitung wie man Telnet richtig bedient?
Ich mache folgendes:
Start-Ausführen-Telnet
dann
o fritz.box
und dann meinen script

cd /var
vi calllog:
#! /bin/sh
echo "`date +\"%d.%m.%y %H:%M\"` - Anruf von $1 auf Leitung $2 ($3) $4"
/sbin/mailer \
-s "`date +\"%d.%m.%y %H:%M\"` - Anruf von $1 auf Leitung $2 ($3) $4" \
-f '"Fritz!Box" <[email protected]>' \
-t "[email protected]" \
-m smtp.web.de \
-a xxx \
-w "xxx" \
# 2> /dev/null
cat calllog>/var/flash/calllog

ich habe das Gefüll, dass das nicht richtig gespeichert wird.
so sieht es dann das Telnet-Fenster aus wenn ich alles eingegeben habe...
 

Anhänge

  • sms.PNG
    sms.PNG
    12 KB · Aufrufe: 112
Zuletzt bearbeitet:
Ja, besser wäre es, wenn du dich mal etwas über vi bzw. nvi schlau machen würdest. Da gibt es jede Menge über Google zu finden!

Deine letzte Zeile gehört nicht mehr in die calllog!
Das ist eine Shell-Eingabe!
 
RudatNet schrieb:
Ja, besser wäre es, wenn du dich mal etwas über vi bzw. nvi schlau machen würdest. Da gibt es jede Menge über Google zu finden!

Deine letzte Zeile gehört nicht mehr in die calllog!
Das ist eine Shell-Eingabe!

na gut das Ganze habe ich von der ersten Seite genommen und nur meine Adressen eingegeben (wo auch steht, dass das Kinderleicht sei):).
Ist nur die lezte Zeile falsch und deswegen wird es nicht gespeichert?
 
Ja, die letzte Zeile gehört da nicht rein!

Du mußt den vi beenden und die letzte Zeile einfach in der Shell eingeben.
 
cd /var
vi calllog:
#! /bin/sh
echo "`date +\"%d.%m.%y %H:%M\"` - Anruf von $1 auf Leitung $2 ($3) $4"
/sbin/mailer \
-s "`date +\"%d.%m.%y %H:%M\"` - Anruf von $1 auf Leitung $2 ($3) $4" \
-f '"Fritz!Box" <[email protected]>' \
-t "[email protected]" \
-m smtp.web.de \
-a xxx \
-w "xxx" \
# 2> /dev/null
vi /var/flash/calllog
cat calllog>/var/flash/calllog

wäre das richtig? ich mich einbißchen schlau gemacht, das kann mit vi Befelen in die Hose gehen. Möchte meine Box nicht zerstören.
 
Nein, das funktioniert so auch nicht!

Ich habe doch geschrieben, dass du den vi beenden mußt!
Dabei speicherst du gleichzeitig die erstellte calllog.

Entweder du benutzt jetzt mal die Suche bzw. google,
oder du lässt es lieber bleiben mit dem Script.

Ich bin da selber nicht so fit drin, als dass ich es dir mal eben erklären könnte.
 
ok. dann ist doch nicht so einfach :( dann lasse ich das lieber. Vielleicht kann mir jemand mein Script korrigieren.
ich danke Dir für deine Mühe. Gute Nacht.
 
Zuletzt bearbeitet:
Hallo zusammen,

ich habe wohl eher ein grundsätzliches Anfängerproblem, denn ich habe nun die calllog aus Beitrag 49 mit vi in /var erstellt

-rw-r--r-- 1 root root 3639 Aug 13 17:31 calllog

Beim Aufruf von calllog erhalte ich aber folgende Fehlermeldung:
# calllog
-sh: calllog: not found

Was mache ich falsch? Wie lasse ich das Script laufen?

danke
tobby
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.