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:
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.
 
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!
 
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.
 
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!
 
@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:
Also bei den Kosten die so ein Anrufmonitor verursacht, lohnt sich ja schon fast ein Push-Email Vertrag...
 
Hi,

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

Viele Grüße,
Andreas
 
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.
 
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:
  • 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.
 
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.
 
Da hat sich jemand ja Mühe gemacht, kannte den Mailer-Link noch garnicht - wehavemorefun ist doch immer eine gute Quelle :)
 
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
 
Danke für den Tipp!
 
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?
 
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
 
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?
 
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.