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

Hallo Frank,

Du hast gut erkannt, dass die Box all die gewünschten Aufgaben auch erledigt, ohne einen 24 /7 PC am Netz zu haben.

Dein Vorhaben ist problemlos zu realisieren, allerdings setzt es zumindest ein paar Linux - Grundkenntnisse vorraus.

Zunächstmal brauchst Du Zugang zu der Konsole deiner Box, via Telnet, SSH, etc. Telnet wird wohl am besten geeignet sein, da es in der AVM Firmware schon drinn ist. ( http://www.ip-phone-forum.de/showpost.php?p=508137&postcount=1 )

Nach dem Login muss eine Datei erstellt werden, welche das Script beinhaltet und diese Datei Namens "calllog" muss dann ins Verzeichnis /var/flash/ kopiert werden.

Ich würde als editor vi empfehlen, bin gerad nur nicht sicher ob der auch in der AVM FW schon mit dabei ist. Alternativ geht natürlich jeder andere Editor, der die Linux-Zeilenumbrüche & Zeichen entsprechend unterstütz.

Auf der Box läuft von Haus aus ein Prozess Namens "calllog", der bei einem eingehenden Anruf die Datei "/var/flash/calllog" abarbeitet und somit die Signalisierung per e-Mail gewährleistet.

Ich hoffe ich konnte Dir ein wenig weiterhelfen,

grüße Lemur
 
Hallo und danke für die schnelle Antwort. Ich habe es wirklich mal mit Linux versucht und bin überzeugt davon, dass es das bessere Betriebssystem ist, habe es aber aufgegeben, nachdem es hart (Totalallesimeimer) mit Ghost kollediert ist. Seitdem habe ich es aufgegeben. Von daher kann ich zwar mit ein paar DOS Kenntnissen dienen, aber alles andere...

Habe irgendwo noch ein Buch zu Linux rumliegen, in dem die grundliegenden Sachen erklärt sind, aber vielleicht wäre eine Step-by-Step Anleitung für mich sinnvoller, damit ich meine FBF nicht kaputtbastle.

Bin grad im Büro, aber hier haben wir ja auch ne 7170 :)
Also habe ich mal kurzerhand Telnet aktiviert und komme mit meinem Windoof-PC auch via Telnet und Eingabe von IP und Passwort drauf. Und nu?? (Muss ich Telnet eigentlich wieder abschalten, oder kann das einfach an bleiben?)

Nun brauche ich aber Deine Hilfe.

Wie und wo (auf PC oder Box) erstelle ich die Datei?
Was muss da drin stehen?
Kann ich einfach Eure Zeichenfolge kopieren, wenn ja welche? Oder muß ich noch was abändern - Accountinfos, etc?
Wie kann ich das Übermittelln der Emails eigentlich wieder abstellen?

OWL ist übrigens nicht weit weg von uns ;-)

Frank

Edit:
Ich brauche übrigens keine Filterung oder Verteilung auf verschiedene Email Adressen oder ähnlich kompliziertes. Lediglich eine Email an immer die selbe Adresse bei eingehendem Anruf.
 
Zuletzt bearbeitet:
Wie und wo (auf PC oder Box) erstelle ich die Datei?
Was muss da drin stehen?
Kann ich einfach Eure Zeichenfolge kopieren, wenn ja welche? Oder muß ich noch was abändern - Accountinfos, etc?
Wie kann ich das Übermittelln der Emails eigentlich wieder abstellen?
Frank

Hallo Frank,

Die Box hat teilweise ein read-only Filesystem. Wohl gerade damit man nicht soviel kaputt machen kann. Sicherheitshalber solltest Du es mit einer Box versuchen, dessen Ausfall und anschließende Neukonfiguration, nicht ganz so schlimm sein dürfte.

Daher wechselt man erstmal in ein schreib-fähiges Verzeichnis, z.b.:

cd /var/tmp/

Dann Datei erstellen

vi calllog

Dann das Script einfügen (Bitte vorab mit vi vertraut machen, google hilft da sicherleich weiter)

Abschließend ins flash kopieren

cat /var/tmp/calllog > /var/flash/calllog

Voilà, das sollte es gewesen sein.

Im Script muss natürlich noch angepasst werden, welche MSN an welche E-Mail benachrichtigt werden soll, wie die Zugangsdaten für einen smtp. - Mailserver sind, usw.

Ein schönes Beispielscript ist ein paar Threads höher.

Gruß Lemur

PS: NRW ist von OWL auch nicht weit weg :D

PPS: Zum deaktivieren:

Temporär: Eine Raute vor die Zeilen setzen, welche die Mail abarbeiten, dann kommt nix mehr.
Endgültig: Die Datei Calllog mit einer leeren Datei überschreiben, oder löschen.
 
Hallo,

also das schaffe ich nun nicht mehr unauffällig im Büro ;-) Werde mich daher heute Abend nochmal dran versuchen. Das Script hatte ich mir vorher übrigens schon angeschaut - das erste mal in diesem Leben, dass ich sowas lese... ...und verstehen soll.

Ich melde mich dann später nochmal.

Frank

P.S. Das ist aber auch nur noch so gerade eben NRW, oder? "Dreimal fallen" und Du bist in Niedersachsen.
 
Zuletzt bearbeitet:
Hallo,

um das Forum nicht mit meinem Unwissen zuzumüllen, habe ich Dir eine Email geschickt.

Frank
 
Aktueller Zwischenstand:

Ich habe das Script wie unten angehangen geändert. Nach vielen Versuchen und wenig Erfolg habe ich es erstmal aufgegeben. Dann stellte ich fest, dass ich rund 40 Minuten später doch eine Email erhalten habe. Auf Grund der Fehler in der Email stellte ich fest, dass durch mein copy/paste die "ü" nicht korrekt übernommen wurden. Die habe ich alle in "ue" umgewandelt.

Den Inhalt, Betreffzeile, etc. habe ich dann noch etwas modifieziert, aber im Prinzip funktionierte es. Nur sehr stark verzögert. Offensichtlich ist dies auf das Versenden von web.de an t-online.de zurück zu führen, denn nachdem ich das ganze über einen anderen Anbieter an t-online.de schicke, kommt die Email fast ohne Verzögerung an.

Soweit, so gut. Die ankommende und die angewählte MSN werden korrekt angezeigt. Sieht also erstmal gut aus.

Was allerdings nicht funktioniert ist die Inverssuche, für den Fall, dass die Telefonnummer nicht im FB internen Telefonbuch hinterlegt ist.

Kann einer von Euch Profis den Fehler erkennen und mir Vorschläge zum Ändern nennen?

Frank


HTML:
#!/bin/sh

callerid=$1
name=$5
if [ -z "$callerid" ]
  then
    callerid="Unbekannt";
    invisible="\r\n Die Rufnummer des Anrufers wurde unterdrueckt.\r\n\r\n Sofern der Anrufer eine Nachricht hinterlassen hat, erhalten Sie diese in einer separaten E-Mail.\r\n "
  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";
                sleep 5
                name=$(wget -q -O - "$url" | grep class=\"celname\" | sed -e 's/<[^<]*>/\ /g;s/^[a-zA-Z0-9]*//;s/ / /g');
                street=$(wget -q -O - "$url" | grep class=\"celstreet\" | sed -e 's/<[^<]*>/\ /g;s/^[a-zA-Z0-9]*//;s/ / /g' -e 's/&nbsp;/ /g');
                city=$(wget -q -O - "$url" | grep class=\"celcity\" | sed -e 's/<[^<]*>/\ /g;s/^[a-zA-Z0-9]*//;s/ / /g' -e 's/&nbsp;/ /g');

if [ -z "$name" ]
  then
        invisible="\r\nDer Anschlussinhaber konnte nicht ermittelt werden, oder hat einer Verzeichniseintragung widersprochen.\r\n "
        fi
  fi
fi

         output="Informationen ueber eingegangenen Anruf:\r\n $invisible \r\n Inhaber: $name \r\n Adresse: $street \r\n PLZ Ort: $city\r\n\r\n Anrufer MSN: $callerid \r\n Auf Leitung: 02***$2 ($3) $4 \r\n Anruf Zeit: `date +\"am %d.%m.%y, um %H:%M \"`"\


         echo -e $output >/var/tmp/calllog.txt



        case "$2" in
                                121221| 271212| 271213| 971212| 971213)
                                TOADDRESS=frank**@t-online.de
                                ;;
                                esac
if [ -z "$TOADDRESS" ]
then
echo "quit, no notification for this MSN"
        exit
fi

.
.
.
.

/sbin/mailer \
          -s "Von $callerid auf $2 ($3) $4 um `date +\"%H:%M am %d.%m.%y\"`"\
          -f 'FritzBox | Daheim <abc@***.de>' \
          -t "$TOADDRESS" \
          -m mail.***.de \
          -a abc@***.de \
          -w PW \
          -i '/var/tmp/calllog.txt'

        2> /dev/null
 
Da die Rückwärtssuche mit dem Örtlichen nicht funktioniert (haben die schon wieder was geändert?), würde ich es gerne mit Klicktel versuchen.

Könnte mir jemand die Zeilen für Klicktel verlinken oder hier einstellen? Ich habe es schon über die SuFu probiert, aber leider ohne Erfolg.

Frank
 
Kann man das script auch via Pseudo-Update von the-construct.com in die Box bekommen? Man kann dort ja am Anfang oder am Ende der debug.cfg einen eigenen Code einfügen. Ist das das, was hier weiter hilft oder bin ich auf nem ganz falschen Dampfer?
Sorry, dass ich als Linux-Unwissender hier evtl. mit meiner Frage nerve, es ist schade das AVM dieses Feature nicht selbst offiziell in die Firmware einbaut.
 
Update:

Nun funktioniert es, dank bodega!

Hier hat er die nötigen Änderungen gepostet.

Frank
 
Guten Morgen,
funzt das hier beschriebene auch mit einer FritzBox 7270???

Gruß
Stephan
 
würde ich es gerne mit Klicktel versuchen.

Könnte mir jemand die Zeilen für Klicktel verlinken oder hier einstellen? Ich habe es schon über die SuFu probiert, aber leider ohne Erfolg.

Frank

Beitrag 215 hilft Dir weiter ;)
http://www.ip-phone-forum.de/showpost.php?p=1093214&postcount=215

MaJu schrieb:
via Pseudo-Update von the-construct.com in die Box bekommen?

Theoretisch könnte man das auch ja.
Dazu müsste man allerdings das Script insofern verändern, dass die Scriptzeilen in eine neue Datei geschrieben werden und diese als calllog in /var/flash/ abgelegt wird.

Macht aber aus meiner Sicht keinen Sinn, weil die /var/flash/calllog auch nach einem Neustart der Box erhalten bleibt.

Mit anderen Worten, um sich den einmaligen Eingriff per Konsole zu ersparen, vermüllt man sich die debug.cfg und verzögert damit jeden Neustart der Box. ;)
 
Kann ich bestätigen, damit sollte dann auch geklärt sein, dass die Definition über -z $1 ausreicht um ein Telefonat ohne Rufnummernübermittlung zu übergeben.

Kann ich bestätigen, war wohl eine beta version, die hier $1 mit der MSN belegte, statt leer zu lassen. Auch in $5 steht der komplette Name des FBF-Telefonbuches, auch wenn dieser Leerzeichen enthält.
 
Zuletzt bearbeitet:
Hallo,
ich habe alles wie von Frank_online beschrieben gemacht und erhalte keine Mail nach einem Anruf. Wenn ich manuell einen Anruf "simuliere" (siehe Bild), funzt es!?
Ich habe einen analog Telekom Anschluß mit DSL von 1&1, eine 7270 und an Fon1 ein Siemens Gigaset angeschlossen. Aktuell habe ich nur eine Festnetz in der Box aktiv, die VOIP Nummer ist noch nicht aktiv.
Woran könnte es liegen???

Wenn ein Anruf eingeht erscheint in der DOS Box diese Zeile:
Jun 12 19:17:27 telefon(1459):SIGCHLD received!

Danach folgende Zeile:
quit, no notification for this MSN

Wenn ich folgendes eingebe, erhalte ich die gewünschte Mail.
# sh /var/flash/calllog "Nummer" "meine Nummer ohne Vorwahl"

Danke im voraus!

Stephan
 
Danach folgende Zeile:
quit, no notification for this MSN

*lächel*
Wie die echo - Meldung schon besagt, wird für diese Leitung, auf der dein Anruf eingeht, keine E-Mail versendet.

Dazu solltest Du die betreffenden Zeilen in dem Script auf deine Bedürfnisse anpassen:

Code:
        case "$2" in
                    MSN?)
                    TOADDRESS=deine.mail.de
                    ;;
                    MSN?| MSN?)
                    TOADDRESS=deine.mail.de
                    ;;
                    MSN? | MSN? | MSN?| MSN? | MSN?| MSN?)
                    TOADDRESS=deine.mail.de
                    ;;
                    esac
if [ -z "$TOADDRESS" ]
then
echo "quit, no notification for this MSN"
    exit
Wenn man nur eine MSN hat, weil man SIP nicht nutzen will, oder nur analog betreibt, dann schreibt man natürlich nur eine Zeile oder lässt diesen Part ganz weg und definiert den Empfänger im E-Mail Adress teil.

Grüße

PS Wenns immer noch nicht geht, poste mal das gesamte Script
 
Ich möchte mich nicht als Computer-Depp bezeichnen, tu mich aber schwer mit Telnet und dem was hier damit zusammen hängt.
Auch "vi" habe ich nicht "begriffen". Leider kann ich hier nicht nach "vi" suchen, da dies ein zu kurzer Suchbegriff ist. Kann bitte jemand einem, der sich mit dieser Materie nicht ins Detail auskennt, eine einfache Anleitung geben? Ich komme via Telnet auf die Box, aber was dann? Wie kommt vi ins Spiel? Ich würde mich freuen, demnächst auch (endlich) via Mail über neue Anrufversuche informiert zu werden.
 
Guten Abend,

heute habe ich zweimal eine Mail erhalten, incl. Rückwärtssuche. Aber danach nicht mehr. Habe zu Anfang die DECT Basis von Fon1 an der Rückseite an TAE Fon1 an der Seite umgesteckt. Zudem war an Fon1 Rückseite ein dreifach Verteiler und ein weiteres Telefon angeschlossen. Auch das ist jetzt ab. Das Script hänge ich an.
Fon1 ist in der FBF analog + Rufnummer ausgehend "Internet" eingestellt. Festnetz Fallback ist aktiviert.
In der Anrufliste werden ausgehende Gespräche mit "ISDN Gerät Internet" ausgewiesen, eingehende Gespräche mit "Festnetz".

Woran könnte es liegen, dass keine weiteren Mails ankommen???

Gruß
St.
 

Anhänge

  • stephan1_edit.txt
    2 KB · Aufrufe: 20
@ Ma-Ju
Thread 223 schon mal gelesen? :-Ö

@ msbergmann

Ob, bzw. welche Endgeräte, wie an der Box hängen, dürfte egal sein. Wichtig ist nur das ankommende Gespräche auch wirklich die Box erreichen. Das Script sollte dann automatisch ausgeführt werden.

Bei nur einer MSN, hier wohl die 893769 kannst Du die folgende Routine ganz rausnehmen:
Code:
        case "$2" in
                                893769)
                                [email protected]
                                ;;
                                esac
if [ -z "$TOADDRESS" ]
then
echo "quit, no notification for this MSN"
        exit
fi
dafür dann den Parameter -t vom mailer mit deiner Zieladresse abändern.

Welche Meldung bekommst Du denn auf der Konsole, wenn Du folgenden Befehl ausführst:
Code:
sh /var/flash/calllog "06926820" "893769"

und was steht in der Datei /var/tmp/calllog.txt, nach dem Aufruf?
 
Danke, Post 223 habe ich gelesen. Dennoch hängt es noch irgendwo :-(
Telnet öffnen und Zugriff auf die Box (mit Kennwort) läuft.
dann steht da zuletzt
ermittle die aktuelle TTY
tty is "/dev/pts/0"
Console Ausgaben auf dieses Terminal umgelenkt
#
Dann:
cd /var/tmp/ <Enter>
vi calllog <Enter>
und nun hängts! Wie kommt vi ins Spiel? Füge ich mir in vi den angepassten Script ein und kopiere ihn von vi wieder und füge ihn ins Telnet-Fenster ein? Wie beende ich die Texteingabe, damit ich die Datei dann kopieren kann?

Danke für die Hilfe :).
Achja: Betriebssystem aufm Rechner ist WinXP, aber das dürfte nicht viel ausmachen.
 
@ Ma-Ju

Schön dass wir jetzt ein Stück weiter sind.

Vi ist quasi der Texteditor, mit dem Du das Script "schreibst" (also dort einfügst" und dann abspeicherst. ;)

Onkel Google hat zu Vi übrigens das gefunden:
http://phyma.phyma.uni-konstanz.de/tutorials/vi.html
http://www.fehcom.de/pub/viref.pdf

Ein bischen einlesen und abschließendes learning-by-doing wird doch sicher machbar sein.

Wenn das Script an der richtigen Stelle liegt und immer noch nicht funktioniert, helf ich gerne wieder weiter.

PS:

Nach eingabe von
Code:
vi calllog
hast Du bereits eine neue Datei namens calllog erstellt und in vi geöffnet. D.h. jetzt nur noch das Script einfügen und abspeichern nicht vergessen.
 
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.