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

Moonbase

Mitglied
Mitglied seit
10 Mrz 2005
Beiträge
461
Punkte für Reaktionen
1
Punkte
0
Ein ganz schneller "Hack" - wer mag, darf ihn gerne ausarbeiten... :)

Anforderung:
Bei neuen Anrufen auf der Fritz!Box (egal, ob Analog, ISDN oder VoIP) soll auf dem Handy eine SMS-Benachrichtigung erfolgen, und zwar mit Datum und Uhrzeit des Anrufes, Nummer des Anrufenden (wg. Rückruf) und angerufener Nummer (bzw. SIP-Account).

Die Benachrichtigung soll aus der Ferne an- und abgeschaltet werden können.

Es sollen keine Firmware-Modifikationen an der FB vorgenommen werden, die Lösung muss Abstürze, Reboots und Stromausfälle überleben.

Überlegung:
Da das ein typisches "Mal-eben-schnell-Projekt" sein musste, habe ich mich für eine Email an ein SMS-Gateway entschieden. Eine Email-Adresse hat man (oder bekommt sie, notfalls umsonst), und Email-to-SMS-Gateways gibt es genug (auch halbwegs kostengünstig).

Vorteile:
  • Der Mailer ist bereits in der Box enthalten.
  • Durch den in der Box enthaltenen Callmonitor-Mechanismus ist eine solche Sache blitzschnell programmiert/geändert und überlebt jeden Reboot.
  • Die SMS-Benachrichtigung kostet den Empfänger Geld, er kann sie aber selbst jederzeit aktivieren oder deaktivieren, ohne in die FB eingreifen zu müssen.

Umsetzung (wie gesagt, quick and dirty...):

  1. Telnet an und auf die Box.
  2. cd /var
  3. 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/null
  4. cat calllog>/var/flash/calllog
  5. Fertig!

Natürlich müssen die entsprechenden Daten für Eure Email bzw. Euer Email-to-SMS-Gateway entsprechend ersetzt werden.

Wenn man keine Status- und Fehlermeldungen des Mailers auf der Konsole sehen möchte, entfernt man das '#' in dieser Codezeile:
Code:
#  2> /dev/null
Hier eine Aufstellung der gängigsten Gateways und ihrer Bedienung:
  • T-Mobile (D1)
    • Preis/SMS: ¤ 0,19
    • Empfang aktivieren: SMS mit Text 'OPEN' an '8000' senden.
    • Empfang sperren: SMS mit Text 'CLOSE' an '8000' senden.
    • Email-Adresse: [email protected]
  • Vodafone (D2)
    • Preis/SMS: ¤ 0,198
    • Empfang aktivieren: SMS mit Text 'OPEN' an '3400' senden.
    • Empfang sperren: SMS mit Text 'CLOSE' an '3400' senden.
    • Email-Adresse: [email protected]
  • E-Plus
    • Preis/SMS: ¤ 0,20
    • Empfang aktivieren: SMS mit Text 'START' an '7676245' senden.
    • Empfang sperren: SMS mit Text 'STOP' an '7676245' senden.
    • Email-Adresse: [email protected]
  • o2 Germany
    • Preis/SMS: ¤ 0,20
    • Empfang aktivieren: SMS mit Text '+OPEN' an '6245' senden.
    • Empfang sperren: SMS mit Text 'STOP' an '6245' senden.
    • Email-Adresse: [email protected]

Alle Angaben ohne Gewähr.

Umsetzung gelungen, Kunde glücklich! (In dem Falle ich selbst.)
Das Schreiben dieses Beitrags hat mich mehr Zeit gekostet als die eigentliche Umsetzung... ;-)

Bin ja mal gespannt, was sich jetzt daraus noch so entwickeln wird... Hoffe, Ihr könnt was damit anfangen.

[EDIT] 222. Beitrag - da musste ich ja einen ausgeben... :)
 
Zuletzt bearbeitet:

u.g

Aktives Mitglied
Mitglied seit
27 Mrz 2005
Beiträge
1,408
Punkte für Reaktionen
0
Punkte
36
SMS-Benachrichtigung bei vodafone.de

Wer eine Mailadresse (und Handy) bei vodafone hat, erhält für die erste zehn Mails
am Tag eine kostenlose SMS-Benachrichtigung. Daher nutze ich ähnliches,
schicke die Mail aber an meine vodafone-Adresse.
 

SeTTembrinY

Neuer User
Mitglied seit
26 Apr 2005
Beiträge
28
Punkte für Reaktionen
0
Punkte
0
Rückwärtsuche?

Meint Ihr es ist möglich auch noch ne Rückwärtssuche für die Telefonnummer einzubauen? Wäre Weltklasse!

Danke Euch!
 

waldwuffel

Mitglied
Mitglied seit
13 Jun 2005
Beiträge
570
Punkte für Reaktionen
0
Punkte
0
Wieso sollte das nicht gehen?

Mann müste nur wie im Callmessage Skript möglich nach nach Nummern über das örtliche suchen lassen. Nummern die dort nicht stehen könnte man entwerder nur mit der ausgabe der Nummer Versehen oder mit denm Namen wenn dieser in einer selbst angelegten Liste steht.
 

Moonbase

Mitglied
Mitglied seit
10 Mrz 2005
Beiträge
461
Punkte für Reaktionen
1
Punkte
0
Die Idee ist so "hauruck" entstanden, weil eben gerade der Bedarf da war.

So wie es ist, ist es eigentlich mehr ein "proof of concept" als eine "fertige" Lösung - aber es zeigt, was geht und es geht schnell (ohne viel "Drumrum").

Ich werde nicht die Zeit haben, mich weiter gross darum zu kümmern, wenn es "mehr" sein soll, sind dann die "Code-Gurus" hier gefragt...

Vielleicht wäre es eine nette Erweiterung für den buehmanns Callmonitor bzw. den danisahne-Mod?

(Hintergrund: Dort sind auch schon Dinge drin, die das Mail-Interface vereinfachen. so dass man keine Usernamen und Passwörter mehr im Klartext irgendwo reinschreiben muss. Zudem ist die ganze Rückwärtssuche dort - glaube ich - auch schon drin. Ich würde also nur das "Rad neu erfinden" müssen und mir unmässigen Support-Aufwand aufbürden, den ich für anderes brauche.).

Viel Spass beim Nutzen/Umbauen!
 

SeTTembrinY

Neuer User
Mitglied seit
26 Apr 2005
Beiträge
28
Punkte für Reaktionen
0
Punkte
0
@moonbase:
Hast ja Recht, man muss das Rad nicht neu erfinden... aber ich (für meinen Teil) wollte eben nicht den "Aufwand" mit dem ganzen dsmod machen nur um eine einzelne Funktion zu nutzen.

Aber ich hab die Forensuche noch intensiver bemüht, unter http://www.ip-phone-forum.de/showthread.php?t=88820 gibts die Rückwärtssuche als Code (ich hoffe der geht auch):

Code:
echo type in the number you want to find 
read caller 

dbox=127.0.0.1 

url="http://www.dasoertliche.de/DB4Web/es/oetb2suche/home.htm?kw_invers=$caller&main=Antwort&s=2" 

# Suchergebnis holen, Zeile mit Eintrag finden, HTML und führende Leerzeichen entfernen und alle Leerzeichen für die dbox-Ausgabe in %20 umwandeln 

output=$(wget -q -O - "$url" | grep class=\"blb\" | sed -e 's/<[^<]*>/\ /g;s/^[ \t]*//;s/\ /%20/g') 

# wenn kein Suchergebnis gefunden wurde die Nummer benutzen 
if [ -z "$output" ] 
then 
  output=$caller 
fi 
# Ausgabe auf dbox 
wget -q -O /dev/null "http://$dbox/control/message?popup=Anruf%20von%20$output"
Ist zwar für die dbox-Ausgabe, aber das Ergebnis könnte man ja auch bequem mit Moonbase'-Skript verschicken.
Denk ich zumindest...

Hat jemand Zeit das zu checken bzw. in ein Skript zu packen? Wenn nicht werd' ich mich heute Abend/Nacht mal dran probieren...
 
Zuletzt bearbeitet:

shadow000

Mitglied
Mitglied seit
25 Apr 2005
Beiträge
653
Punkte für Reaktionen
0
Punkte
0
Also bei den Kosten die so ein Anrufmonitor verursacht, lohnt sich ja schon fast ein Push-Email Vertrag...
 
E

Evil Dead

Guest
Hi,

ich kann das gerne mit auf meine TODO-Liste setzen.

Viele Grüße,
Andreas
 

Moonbase

Mitglied
Mitglied seit
10 Mrz 2005
Beiträge
461
Punkte für Reaktionen
1
Punkte
0
shadow000 schrieb:
Also bei den Kosten die so ein Anrufmonitor verursacht, lohnt sich ja schon fast ein Push-Email Vertrag...
Flat-Handy und Flat-SMS wär' prima, da geb' ich Dir Recht...
Aber wenn man's braucht, braucht man's wirklich... Und das Gute dabei ist, dass man (als Empfänger) jederzeit an- und abschalten kann, also nur dann bezahlen muss, wenn man es am Handy aktiviert hat.
 

cactus-online

Neuer User
Mitglied seit
6 Jan 2006
Beiträge
121
Punkte für Reaktionen
0
Punkte
16
SeTTembrinY schrieb:
@moonbase:
Hast ja Recht, man muss das Rad nicht neu erfinden... aber ich (für meinen Teil) wollte eben nicht den "Aufwand" mit dem ganzen dsmod machen nur um eine einzelne Funktion zu nutzen.

Aber ich hab die Forensuche noch intensiver bemüht, unter http://www.ip-phone-forum.de/showthread.php?t=88820 gibts die Rückwärtssuche als Code (ich hoffe der geht auch):

Code:
...
Ist zwar für die dbox-Ausgabe, aber das Ergebnis könnte man ja auch bequem mit Moonbase'-Skript verschicken.
Denk ich zumindest...

Hat jemand Zeit das zu checken bzw. in ein Skript zu packen? Wenn nicht werd' ich mich heute Abend/Nacht mal dran probieren...

Etwa so:

Code:
#! /bin/sh

url="http://www.dasoertliche.de/DB4Web/es/oetb2suche/home.htm?kw_invers=$caller&main=Antwort&s=2"
output=$(wget -q -O - "$url" | grep class=\"blb\" | sed -e 's/<[^<]*>/\ /g;s/^[ \t]*//;s/\ / /g')
echo $output >/var/tmp/calllog.txt

/sbin/mailer \
 -s "Anruf von $1 auf Leitung $2 ($3) $4 um `date +\"%d.%m.%y %H:%M\"`"\
 -f '"Fritz!Box" <[email protected]>' \
 -t '"Fritz!Box" <[email protected]>' \
 -m smtp.dein.de \
 -a <uid> \
 -w <pass> \
 -d /var/tmp/calllog.txt

rm /var/tmp/calllog.txt
Ciao

TF
 
Zuletzt bearbeitet:

Moonbase

Mitglied
Mitglied seit
10 Mrz 2005
Beiträge
461
Punkte für Reaktionen
1
Punkte
0
  • Die '-t'-Zeile wird so nicht gehen.
  • Nicht jeder Provider unterstützt 'body', die meisten werten nur 'subject' (Betreffzeile) aus. Und wie der Mailer die attachments konstruiert, habe ich nicht probiert. Vielleicht musst Du auch '-i' (statt '-d') verwenden.
  • Code: Musst Du mal schauen, ich bin grad im Stress... sorry.
 

cactus-online

Neuer User
Mitglied seit
6 Jan 2006
Beiträge
121
Punkte für Reaktionen
0
Punkte
16
Moonbase schrieb:
  • Die '-t'-Zeile wird so nicht gehen.
  • Nicht jeder Provider unterstützt 'body', die meisten werten nur 'subject' (Betreffzeile) aus. Und wie der Mailer die attachments konstruiert, habe ich nicht probiert. Vielleicht musst Du auch '-i' (statt '-d') verwenden.
  • Code: Musst Du mal schauen, ich bin grad im Stress... sorry.
-t ist natürlich entsprechend dem Provider zu ersetzten, klar. Wer aber nur eine Nachricht per eMail haben will, kann es auch genau so machen.
-i mag nicht, jedenfalls habe ich es nicht gebacken kommen, dass das File übertragen wird

Ansonsten ist das ja auch nur ein Beispiel. Der Code könnte ja auch so aussehen:

Code:
#! /bin/sh

url="http://www.dasoertliche.de/DB4Web/es/oetb2suche/home.htm?kw_invers=$caller&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 '"Fritz!Box" <[email protected]>' \
 -t '"Fritz!Box" <[email protected]>' \
 -m smtp.dein.de \
 -a <uid> \
 -w <pass>
(nicht getestet)

Generell ist zu beachten, dass bei zu langer Adresse (denn die würde ja nunmehr mit übertragen werden), die SMS zu lang und eventuell zu unübersichtlich werden könnte.
 

cactus-online

Neuer User
Mitglied seit
6 Jan 2006
Beiträge
121
Punkte für Reaktionen
0
Punkte
16

Moonbase

Mitglied
Mitglied seit
10 Mrz 2005
Beiträge
461
Punkte für Reaktionen
1
Punkte
0
Da hat sich jemand ja Mühe gemacht, kannte den Mailer-Link noch garnicht - wehavemorefun ist doch immer eine gute Quelle :)
 

wichard

IPPF-Promi
Mitglied seit
16 Jun 2005
Beiträge
6,954
Punkte für Reaktionen
0
Punkte
36
Moonbase schrieb:
E-Plus
Preis/SMS: ¤ 0,20
Für "Bestandskunden" (Vertrag, nicht Prepaid) gab (vielleicht gibt es das ja immer noch?) es die Möglichkeit, sich kostenlos eine Mailadresse "[email protected]" zu holen. Dort inklusive war die kostenlose(!) SMS-Benachrichtigung bei eingehenden Mails - unabhängig von deren Anzahl. Auf diesem Wege habe ich mir den kostenlosen SMS-Anrufbenachrichtigungs-Service verwirklicht (und einen Bundesliga-Ergebnis-Ticker etc.). Da kommen an einem Wochenende schon mal an die 100 SMS zustande - aber bisher wollten die definitiv kein Geld dafür von mir haben... :D


Gruß,
Wichard
 

Moonbase

Mitglied
Mitglied seit
10 Mrz 2005
Beiträge
461
Punkte für Reaktionen
1
Punkte
0
Danke für den Tipp!
 

SeTTembrinY

Neuer User
Mitglied seit
26 Apr 2005
Beiträge
28
Punkte für Reaktionen
0
Punkte
0
Klappt fast!

Moonbase schrieb:
Da hat sich jemand ja Mühe gemacht, kannte den Mailer-Link noch garnicht - wehavemorefun ist doch immer eine gute Quelle :)
Ich hab&acute;s bei mir gestern reingebastelt und auch schon die ersten Mails gekriegt... *froi*
Leider klappt aber die Rückwartssuche nicht. :-(
Ich glaube da hat sich URL bei dasoertliche.de geändert - kann ich das Script jetzt einfach ändern und dann nochmal mit cat calllog>/var/flash/calllog einbinden? Überschreibt er das dann?
 

cactus-online

Neuer User
Mitglied seit
6 Jan 2006
Beiträge
121
Punkte für Reaktionen
0
Punkte
16
SeTTembrinY schrieb:
Ich hab&acute;s bei mir gestern reingebastelt und auch schon die ersten Mails gekriegt... *froi*
Leider klappt aber die Rückwartssuche nicht. :-(
Ich glaube da hat sich URL bei dasoertliche.de geändert - kann ich das Script jetzt einfach ändern und dann nochmal mit cat calllog>/var/flash/calllog einbinden? Überschreibt er das dann?
Also, der URL stimmt definitiv, es sei den zwischen gestern und heute gab es eine Änderung. Du kannst das Script auch direkt mit nvi bearbeiten.

TF
 

SeTTembrinY

Neuer User
Mitglied seit
26 Apr 2005
Beiträge
28
Punkte für Reaktionen
0
Punkte
0
cactus-online schrieb:
Also, der URL stimmt definitiv, es sei den zwischen gestern und heute gab es eine Änderung. Du kannst das Script auch direkt mit nvi bearbeiten.

TF
Du hast Recht, ich hatte mich da wohl verkuckt... ich werd das heut Abend nochmal checken.
Bei Dir hatte es geklappt, oder?
 

Zurzeit aktive Besucher

3CX

Statistik des Forums

Themen
236,506
Beiträge
2,077,742
Mitglieder
357,983
Neuestes Mitglied
Hayn1986