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

Setze bitte deine beiden Listen in [ code ] ... [ /code ] Tags,
damit dein Beitrag nicht zu unübersichtlich wird.

Bitte informiere dich über "vi" oder "nvi"!
Wenn man damit nicht umgehen kann, könnte man seine Box schneller zerschiessen als man denkt!

Wir wollen diesen Thread hier nicht zur Nachhilfe in Programmieren missbrauchen, oder. ;)

Es gibt einige Threads hier, die den Umgang mit vi und nvi erklären!
 
ok wird gemacht sieht ja auch schon besser aus;)


aber ein bischen helfen könnste mir noch:rosen: :phone: :huhu: :klowaert:
 
SMS nur von bestimmten Nummern und nur auf bestimmte MSN's...

Rückwärtssuche und fetz is mir alles egal ;-)

Mir gehts nur darum, dass ich benachrichtigt werde, wenn meine "VIP's" angerufen haben.... und das habe ich so gelöst:

Code:
ABSName=ich
[email protected]
[email protected]
smtp=smtp.provider.de
user=Benutzer
pwd=Passwort

if [ $2 = "`fgrep $2 /var/tmp/MsnSmsMsg`" ]
then
	if [ $1 = "`fgrep $1 /var/tmp/CallSmsMsg`" ]
	then
		mailer \
			-s "`date +\"%d.%m.%y %H:%M\"` - $1 Hat angerufen" \
			-f "$ABSName <$ABSAdr>" \
			-t "$Adr" \
			-m $smtp \
			-a $user \
			-w "$pwd" \
			2> /dev/null
	fi
fi

Die Dateien MsnSmsMsg und CallSmsMsg erstelle ich in der debug.cfg. Die MsnSmsMsg enthällt die überwachten MSN's und die CallSmsMsg enthält die Nummern meiner "Vip's"

Als SMS-Gateway benutze ich GMX. Dort habe ich 10 SMS im Monat frei und danach je SMS 9 Ct. Zum Glück rufen mich meine vips nicht so oft an ;-)

Grüße aus Worms

Maddin
 
Hallo zusammen,

wie bekomme ich das senden der Mails denn wieder wech?
Wir sind eine WG und mit der Zeit sind das viele mails!

Gruß
MFCCAR
 
Indem Du die entsprechenden Zeilen in der debug.cfg im calllog wieder löschst? ;)


Gruß,
Wichard

Edit: Sorry, falsche Datei angegeben...
 
Hallo,

nimm es mir nicht so übel, aber was die Box angeht bin ich jetzt auf neuland.
Was linus angeht kenn ich mich aus, aber wenn ich mir die Datei /var/flash/debug.cfg ansehe steht da nix drin. Oder ist das eine andere?

Im Vorraus Danke.
 
Dann musst Du uns mal etwas mehr darüber erzählen, wie Du die Mail-Benachrichtigung "früher" eingestellt bzw. eingerichtet hast. Wenn sie über das hier vorgestellte Script läuft, dann sollte der Aufruf in der Datei /var/flash/debug.cfg calllog erfolgen. Wenn Du aber über z.B. den ds-mod gehst, dann erfolgt die Konfiguration der Benachrichtigung in der Web-Oberfläche des Mods über die "Listeners".


Gruß,
Wichard

Edit: Es ist noch zu früh am Morgen... ;)
 
[edit wichard: Fullquote entfernt.]

Ich habe es wie ganz am Anfang beschrieben gemacht..

Telnet an und auf die Box.
cd /var
vi calllog:

Code:
#! /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 mail.provider.de \
-a username \
-w "password" \
# 2> /dev/nullcat calllog>/var/flash/calllog
Cat calllog>/var/flash/calllog
Fertig!

Gruß
Michael
 
OK, dann gehst Du nun wieder in das Calllog und löschst diese Zeilen wieder.


Gruß,
Wichard
 
Am besten du gehst mit
"vi /var/calllog"
in die Datei calllog und bearbeitest diese entsprechend und danach schreibst du die änderungen mit
"cat /var/calllog > /var/flash/calllog"
in den flash der Box.

Du kannst auch direkt die Datei "/var/flash/calllog" mit nvi bearbeiten....

Gruß Martin
 
oder gib ein:
echo > /var/flash/calllog
Damit ist die komplette Datei auch geleert.
 
Hallo,

kann man in den Mailer auch 2 Mailadressen eintragen?

wenn ja wie:noidea:

-t 'Fritz!Box <name|telnummer@maildomain|sms-provider>' \


Gruß Tobi
 
Hallo,

ich hab das Skript über den Versand bei fullsms.de angepasst, da kostet die SMS mit Absenderkennung nur 5ct.
Allerdings muss man vorher den Text "urlencoden". Ich mach das mit sed und einer vorher in der debug.cfg erstellten urlencode.sed. Vielleicht hat einer einen besseren Weg :)
Code:
# debug.cfg

# create urlencode.sed
cat > /var/tmp/urlencode.sed << 'ENDURLENCODE'
s/%/%25/g
s/ /%20/g
s/ /%09/g
s/!/%21/g
s/"/%22/g
s/#/%23/g
s/\$/%24/g
s/\&/%26/g
s/'\''/%27/g
s/(/%28/g
s/)/%29/g
s/\*/%2a/g
s/+/%2b/g
s/,/%2c/g
s/-/%2d/g
s/\./%2e/g
s/\//%2f/g
s/:/%3a/g
s/;/%3b/g
s//%3e/g
s/?/%3f/g
s/@/%40/g
s/\[/%5b/g
s/\\/%5c/g
s/\]/%5d/g
s/\^/%5e/g
s/_/%5f/g
s/`/%60/g
s/{/%7b/g
s/|/%7c/g
s/}/%7d/g
s/~/%7e/g
ENDURLENCODE

Code:
# cat /var/flash/calllog
#! /bin/sh
################################################################
# Fritz!Box - Calllog
# Benachrichtigung über neue Anrufe per SMS fullsms.de
# Autor: Fabian Fischer - [email protected]
# Quelle: http://www.ip-phone-forum.de/showthread.php?t=98161
# Danke an die vorigen Autoren!
################################################################
# Konfiguration
user=USER
pass=PASS
from=Fritz!Box
to=HANDYNR
################################################################

CID=$1
name=""
ParseTelefonbuch() {
  export REQUEST_METHOD="GET"
  export REMOTE_ADDR="192.168.178.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/?form_name=search_inv&page=RUECKSUCHE&context=RUECKSUCHE&action=STANDARDSUCHE&la=de&rci=no&ph=${CID}";
        name=$(wget -q -O - "$url" | grep class=\"entry\" | sed -e 's/<[^<]*>/\ /g;s/^[^a-zA-Z0-9]*//;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

# Text erzeugen
echo "`date +\"%d.%m.%y %H:%M\"` - Anruf von $CID ($name) an $2 ($3) $4"| sed -f /var/tmp/urlencode.sed > /var/tmp/calllog.txt

text=`cat /var/tmp/calllog.txt`

# Text an Handy senden (fullsms.de)
# echo $text
wget -O - "http://www.fullsms.de/gw/?user=$user&passwort=$pass&typ=3&handynr=$to&absender=$from&text=$text"
In diesem Fall werde ich über jeden Anrufer informiert. Evtl. passe ich mir das noch an wie in diesem Thread irgendwo beschrieben.

Ich warte auf euer Feedback :)

edit:// sorry, da hatte sich beim Kopieren eine [eingeschlichen
 
Zuletzt bearbeitet:
Bei mir kommt immer

10.11.06 17:31 - Anruf von unbekannt (-) an ()

(Also wenn ich das Script manuell aufrufe und nicht über die calllog)

Obwohl keiner angerufen hat. Ruft jemand an kommen immer 2 mail. 1x die o.g. und die mit dem Anrufer.

An was liegt das ?
 
Zuletzt bearbeitet:
Das können wir nicht wissen, wenn du deinen Code nicht postest! ;)
... oder den Link zu dem Beitrag, in dem dein übernommener Code steht.

Es stehen hier mittlerweile so viele verschiedenen Versionen, dass ich auch keinen Überblich mehr habe, welcher funktioniert, und welcher nicht.

Der Code von FFL (#113) dürfte nicht funktionieren!?
Da ist auf den ersten Blick mindestens eine "[" zu viel. ;)
 
Sorry...stimmt :)

PHP:
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'.*/\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 mail.xxxxx.com \
  -a mail+xxxxx.com \
  -w "xxxxx" \
  -i '/var/tmp/calllog.txt'
#  2> /dev/null

und davor steht noch folgendes, weiss gar nimmer von was das ist :)
PHP:
#!/bin/sh

CALLER=${1}
LINE=${3}
if [ -z "${LINE}" ]
then
  LINE=${2}
fi
if [ "${LINE}" = "ISDN" ]
then
  LINE=${2}
fi
if [ -z "${LINE}" ]
then
  LINE=${1}
  CALLER=""
fi

sh /var/tmp/parse_telefon.sh "${LINE}" "${CALLER}" &
 
Kann es sein, dass Du die Firmware-Version xx.04.15 auf der Box hast?


Gruß,
Wichard
 
Dann könnte das damit zusammenhängen.


Gruß,
Wichard
 
Bei mir sind aber dann keine 2 Einträge in der Liste, sondern entweder gar keiner oder eben 1 "richtiger". Ich habe übrigends eine 5012.
 
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.