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

SiemensFan

Neuer User
Mitglied seit
3 Nov 2005
Beiträge
181
Punkte für Reaktionen
0
Punkte
0
Hallo,
ich habe hier eine Auerswald VoIP 5020, an der auch diverse Fritz!Boxen (7170/7270) gekoppelt sind. Meine Anrufe werden automatisch über Parallelruf auch am Handy signalisiert. Das dauert ein paar mal Klingeln, bis das Handy überhaupt mitklingelt. Leider wird dann immer nur meine Rufnummer angezeigt. Kann ich in einer Fritz!Box einrichten, dass sie bei einem eingehenden Ruf auf einer bestimmten MSN sofort eine SMS an mein Handy verschickt, mit Absender des Anrufers. Diese sollte dann vor dem Anruf ankommen und ich weiß, wer gleich anruft. Leider habe ich keinerlei Erfahrungen mit Telnet etc.
Ich habe mir schon mal ein Account bei FullSMS angelegt - warte aber noch auf die manuelle Freischaltung. Desweiteren habe ich schon #113 soweit bei mir in der Fritz!Box eingespielt.

Vielen Dank
SiemensFan
 

Webhamster

Neuer User
Mitglied seit
6 Feb 2008
Beiträge
147
Punkte für Reaktionen
0
Punkte
0
Die Benachrichtigung für eine bestimmt MSN kannst du so einrichten:

Code:
if [ "123456789" = "$2" ]
  then

#Hier dein Calllogscript rein

  fi
123456789 durch die gewünschte MSN ersetzen.
Ich bezweifle aber, dass die SMS vor dem Anruf ankommt. Ich habe auch eine Parallelschaltung auf's Handy und die Zeit ist einfach zu kurz.

P.S. Dauer für SMS Versand bei fullsms.de und Standard-Tarif = 60 Sekunden...
 
Zuletzt bearbeitet:

SiemensFan

Neuer User
Mitglied seit
3 Nov 2005
Beiträge
181
Punkte für Reaktionen
0
Punkte
0
Dank dir, 60 Sekunden ist natürlich zu lang. Aber die Lösung per Mail an O² und dann über die kostenfreie Benachrichtigung (Internet Pack-Kunde) wird acuh nicht schnell genug sein :(
 

Ma-Ju

Neuer User
Mitglied seit
19 Mrz 2008
Beiträge
149
Punkte für Reaktionen
0
Punkte
0
Eine SMS wird quasi immer länger brauchen und damit NIE vor dem Klingeln da sein! Auch eine Mail an einen o2-Account braucht teilweise mehrere Minuten bis sie als SMS signalisiert wird. Manchmal sinds "nur 30 Sekunden", manchmal auch 5 Minuten ...
 

noreux

Neuer User
Mitglied seit
8 Jun 2008
Beiträge
8
Punkte für Reaktionen
0
Punkte
0
Hi, wollte mir durch die Idee von #281, die gesamte Anrufliste per Mail zuschicken. Momentan schickt er aber nicht den Inhalt der CSV, sondern den quelltext der Loginseite zur Fritzbox, da die neuen Firmwares wohl noch eine SID fürs Login brauchen.
Hat das Script schon jemand mit den neuen Firmwares zum Laufen gebracht?

mfg
Nor
 

Heimatkanal

Mitglied
Mitglied seit
13 Jun 2006
Beiträge
307
Punkte für Reaktionen
0
Punkte
16
Hallo Webhamster,

Ich habe dein Script benutzt aber als Name bekomme ich nur VORNAME geschickt:

Im Telefonbuch.de als Rückwärtssuche gefunden: Name: Blabla Adelheid.
Als Email bekomme ich: Anrufer: Adelheid

MfG

Heimatkanal
 

Lemur

Mitglied
Mitglied seit
17 Mai 2007
Beiträge
281
Punkte für Reaktionen
0
Punkte
0
Das wird an der parsing - Zeile liegen, ohne das Script gesehen zu haben, wahrscheinlich das "sed" Anhängsel... ;)

Es wäre für manche vielleicht ganz sinnvoll, nicht einfach irgendwas zu kopieren und sich dann darüber zu freuen das es läuft, sondern sich mal anzugucken welche Befehle da nacheinander abgearbeitet werden, diese nachzuvollziehen und ggf. den eigenen Wünschen anzupassen.

Es gibt keinen einzigen Befehl, den man nicht in ein paar Minuten, auch als blutiger Anfänger, mit Hilfe von diesem Forum und google verstehen und anpassen könnte...
 

Heimatkanal

Mitglied
Mitglied seit
13 Jun 2006
Beiträge
307
Punkte für Reaktionen
0
Punkte
16
Es gibt keinen einzigen Befehl, den man nicht in ein paar Minuten, auch als blutiger Anfänger, mit Hilfe von diesem Forum und google verstehen und anpassen könnte...
Sorry aber ich bin anderer Meinung. Vielleicht bin ich zu blöd dafür aber ist sowas für mich "schwarze Magie":

name=$(wget -q -O - "$url" | grep -A 1 class=\"short\" | sed -e 's/<[^<]*>/\ /g;s/^[a-zA-Z0-9]*//;s/ / /g;s/[^ -~]//g');
street=$(wget -q -O - "$url" | grep -A 1 class=\"col2\" | sed -e 's/<[^<]*>/\ /g;s/^[a-zA-Z0-9]*//;s/ / /g;s/&nbsp;/ /g;s/[^ -~]//g;s/--//g');
city=$(wget -q -O - "$url" | grep -A 1 class=\"col3\" | sed -e 's/<[^<]*>/\ /g;s/^[a-zA-Z0-9]*//;s/ / /g;s/&nbsp;/ /g;s/[^ -~]//g;s/--//g')


und Webhamster war so nett den "Nicht Linuxer" die Sache leichter zu machen.


http://www.ip-phone-forum.de/showpost.php?p=1517886&postcount=353
 

Lemur

Mitglied
Mitglied seit
17 Mai 2007
Beiträge
281
Punkte für Reaktionen
0
Punkte
0
Ist halt immer die Frage ob man bereit ist, sich damit zu beschäftigen, oder sagt "das versteh ich sowieso nicht..." ;)

Dein Schnipsel macht folgendes:

name=$(...) - dass, zwischen den Klammern sondiert das, was hinterher als Name angezeigt werden soll. straße= Die Straße und city= die Stadt.

Im Detail:
wget ... $url - ruft die definierte url ab und speichert die gesamte Seite quasie zwischen.

grep -A 1 class=\"short\" - Sucht im Gespeicherten, den Begriff "class=short"
und das sed ... entfernt hier die HTML-Tags und formatiert den Text, aus dem was grep zuvor extrahiert hat.

Das passiert so ebenfalls mit street und city.

Also entweder steht in der "class="short"" nicht der volle Name, sondern eben nur der Vorname, oder das sed schnipselt Dir da zuviel weg. Die Lösung findest Du, wenn Du dir die Seite, welche in "url=" definiert ist, mal genauer anguckst (Quelltext).

und Webhamster war so nett den "Nicht Linuxer" die Sache leichter zu machen.
Das stimmt so auch nicht ganz - das Ursprungsscript kommt von Moonbase (http://www.ip-phone-forum.de/showpost.php?p=550842&postcount=1)
Und einige User die sich da mal reingekniet haben, incl. mir, haben dieses erweitert und immer wieder publiziert.
 
Zuletzt bearbeitet:

Webhamster

Neuer User
Mitglied seit
6 Feb 2008
Beiträge
147
Punkte für Reaktionen
0
Punkte
0
Hallo Webhamster,

Ich habe dein Script benutzt aber als Name bekomme ich nur VORNAME geschickt:
Jo - habe ich jetzt auch festgestellt.
Seit dem 19. abends kommt auch nur noch der letzte Eintrag im Namen.
Am Script habe ich nichts geändert, deshalb wird wohl dastelefonbuch.de was an der Seite geändert haben. Muss mir mal bei Gelegenheit den Quelltext anschauen...
 

kay1971

Neuer User
Mitglied seit
20 Nov 2006
Beiträge
149
Punkte für Reaktionen
0
Punkte
16
Ich habe gerade bei mir nachgeschaut, ich bekomme den kompletten "Short" Inhalt.

Code:
url="http://dastelefonbuch.de/?sp=55&aktion=23&ort=&cifav=0&s=a10000&stype=S&la=de&cmd=search&ort_ok=0&vert_ok=0&x=31&y=9&kw=$1";
...
name=$(wget -q -O - "$url" | grep -A 1 class=\"short\" | sed -e 's/<[^<]*>/\ /g;s/^[a-zA-Z0-9]*//;s/ / /g;s/[^ -~]//g');
Versucht's mal damit...

(Wobei ich gerade sehe, das der SED Teil identisch ist)

Kann es sein, das du in der Verwendung der Variable $Name die Leerzeichen nicht berücksichtigst?

Über dasselbe Problem bin ich auch gestolpert, das Linux auf der Box interpreitert Leerzeichen als trenner und bewerter die Teile nach einer Leerstelle als neuen Befehl.

Ich habe mir damit beholfen, die Leerzeichen in Name durch Unterstriche zu ersetzen.

was passiert denn wenn du das Script direkt aufrufst mit:
Code:
/var/calllog "die anrufende Nummer" "deine MSN"
Gibt es eine Fehlermeldung in der Art "Nachname" Befehl nicht gefunden?
 
Zuletzt bearbeitet:

Webhamster

Neuer User
Mitglied seit
6 Feb 2008
Beiträge
147
Punkte für Reaktionen
0
Punkte
0
Über dasselbe Problem bin ich auch gestolpert, das Linux auf der Box interpreitert Leerzeichen als trenner und bewerter die Teile nach einer Leerstelle als neuen Befehl.
Wäre eine Möglichkeit...
Werkwürdigerweise funktioniert es jetzt wieder. Habe am Calllog-Script nichts geändert bzw. nach paar Tests den Ursprungszustand wieder hergestellt.
 

orthopaedeflex

Neuer User
Mitglied seit
16 Mrz 2009
Beiträge
36
Punkte für Reaktionen
0
Punkte
0
Guten Abend

Kann mir bitte jemand in einfachen Schritten erklären wie ich diese Benachrichtigung einstelle. Ich komme leider nicht ganz mit. Ich möchte, dass ich per Email benachrichtigt werde, wenn bei mir zu Hause ein Anruf eingeht bzw. ich einen Anruf verpasst habe. Was ist der Unterschied zu Callmonitor. Außer dass das wohl noch komplizierter ist.
 

Ma-Ju

Neuer User
Mitglied seit
19 Mrz 2008
Beiträge
149
Punkte für Reaktionen
0
Punkte
0
Gehe via Telnet auf deine FritzBox (Wenn du WinVista/Win7 nutzt: ins Suchfeld von "Start" nur "Telnet fritz.box" eingeben. Geht das nicht, dann musst du über die Systemsteuerung (-> Programme -> links Windows-Funktionen aktivieren) den Telnet-Client auf deinem PC installieren. Ist der Telnet-Zugang auf deiner FritzBox nicht aktiviert, dann mit einem an der Box angeschlossenen (DECT-)Telefon #96*7* wählen).

Im Telnet-Fenster sollte dann dastehen:
Code:
ermittle die aktuelle TTY
tty is "/dev/pts/0"
Console Ausgaben auf dieses Terminal umgelenkt
#
Dort gibst du dann ein:
Code:
cd /var/tmp/ <Enter>
vi calllog <Enter>
"i"-Taste drücken, auch wenn du darauf kein Feedback bekommst
Danach kopierst du dein im Texteditor angepasstes Script rein (über rechte Maustaste). Ich bekomme nahezu ausschließlich Anrufe von Personen, die im FritzBox-Telefonbuch stehen und arbeite deshalb mit dem unter Post 339 genannten Script.
Danach:
Code:
"ESC" drücken und (egal wo der Cursor grad ist)
:wq <Enter>
cat calllog>/var/flash/calllog <Enter>
Du erhälst darauf keine Bestätigung.

Fertig.
 

orthopaedeflex

Neuer User
Mitglied seit
16 Mrz 2009
Beiträge
36
Punkte für Reaktionen
0
Punkte
0
Vielen Dank. Ich werde mich einmal versuchen. Kannst Du mir vielleicht das Script noch näher erklären? Was muss darin geändert werden?

Tausend Dank
 

Ma-Ju

Neuer User
Mitglied seit
19 Mrz 2008
Beiträge
149
Punkte für Reaktionen
0
Punkte
0
Bei dem Script von Post 339 müssen folgende Variablen geändert bzw. ersetzt werden:

In der 4. Zeile: FRITZBOXKENNWORT

Und ganz unten jeweils das mit Großbuchstaben geschriebene, wobei unten die Zugangsdaten vom Versende-Mailprovider gebraucht werden. Den Namen, der in der Mail als Absender stehen soll, kannst du dir in der ersten Zeile selbst raussuchen:
-f 'Fritz!Box Anrufliste <[email protected]>' \
-t EMPFÄ[email protected] \
-m smtp.MAIL.de \
-a NUTZERNAME \
-w KENNWORT \

Ergebnis ist dann eine Mail mit dem Betreff: "Anruf: Max Mustermann" (Absichtlich so kurz gewählt, damit ich es beim Android-GMail gleich vollständig im Betreff lesen kann).
Inhalt der Mail ist: "Neuer Anruf von Max Mustermann am 25.04.10 um 18:39 Uhr (0123456789)."
Wenn du einen anderen Inhalt möchtest, dann kannst du das im Script ändern. Wo, das sollte aufgrund des eben genannten Inhalts selbsterklärend sein.
 

orthopaedeflex

Neuer User
Mitglied seit
16 Mrz 2009
Beiträge
36
Punkte für Reaktionen
0
Punkte
0
[Edit frank_m24: Mehrere Beiträge zusammengefasst. Man kann seine Beiträge auch editieren.]
Es wird ein "Fritz!Box web password:" verlangt.
Wo bekomme ich es her. Ich kann auch nichts eingeben.

[Beitrag 2:]
Es hat geklappt. Ich bin drinn.
 

orthopaedeflex

Neuer User
Mitglied seit
16 Mrz 2009
Beiträge
36
Punkte für Reaktionen
0
Punkte
0
Was ist am Script verkehrt? Folgende Fehlermeldung bei unterdrückter Rufnummer. Oder ist das normal?

# Apr 26 00:22:52 telefon[1117]: '/var/calllog' script not found!
/var/flash/calllog: line 6: cannot create /dev/null#!/bin/sh: nonexistent directory
Apr 26 00:22:54 telefon[1117]: SIGCHLD received!
# cd /var/tmp/var/flash/calllog: line 6: cannot create /dev/null#!/bin/sh: nonexistent directory
Apr 26 00:23:36 telefon[1117]: SIGCHLD received!


Script:

export REQUEST_METHOD="POST"
export REMOTE_ADDR="192.168.178.1"
export CONTENT_TYPE="application/x-www-form-urlencoded"
POST_DATA="login:command/password=DWud7Glz4ddWua5DDkdWua35"
export CONTENT_LENGTH=${#POST_DATA}
echo -n "$POST_DATA" | /usr/www/html/cgi-bin/webcm > /dev/null#!/bin/sh

#!/bin/sh

callerid=$1
name=$5
if [ -z "$callerid" ]
then
callerid="Unbekannt";
else
if [ -z "$5" ]
then
url="http://dastelefonbuch.de/?sp=55&aktion=23&ort=&cifav=0&s=a10000&stype=S&la=de&cmd=search&ort_ok=0&vert_ok=0&x=31&y=9&kw=$1";
name=$(wget -q -O - "$url" | grep -A 1 class=\"short\" | sed -e 's/<[^<]*>/\ /g;s/^[a-zA-Z0-9]*//;s/ / /g;s/[^ -~]//g');
fi
fi

/sbin/mailer \
-s "$name $callerid um `date +\"%H:%M am %d.%m.%y\"`"\
-f 'Fritz!Box <[email protected]>' \
-t "[email protected]" \
-m 'smtp.hwiehansch.de' \
-a 'm0140197' \
-w 'Passwort' \

2> /dev/null
 

orthopaedeflex

Neuer User
Mitglied seit
16 Mrz 2009
Beiträge
36
Punkte für Reaktionen
0
Punkte
0
Hallo


Ich habe nun"#!/bin/sh" enfernt und nun kommt folgende Meldung:

# Apr 26 22:05:42 telefon[1116]: '/var/calllog' script not found!
Apr 26 22:05:44 telefon[1116]: SIGCHLD received!