Mi Mai 10 17:10:40 CEST 2006

Speedport w501v notification :)

Nachdem ich letztens meinen Speedport W500V in einen W501V tauschen lies (einfach 0800 - 3300200 anrufen und von Problemen bei VOIP und Wlan berichten) habe ich mich mal ein bischen näher mit der FritzBox beschäftigt und herausgefunden wie ich mich benarichtigen lassen kann wenn ein Anruf eingeht :)
Es ist für den faulen Informatiker halt schon praktisch zu wissen wer anruft, ohne extra an s Telefon zu springen, deswegen hier mal kurz eine Anleitung.
Was braucht man?
  • Eine Fritzbox/Speedport W501V
  • Ein Adressbuch
Gehen wir das ganze mal durch.
Das Adressbuch erzeuge ich indem ich das Adressbuch meines Nokia Handys per Bluetooth übertrage und abspeicher. Dies erledige ich mit folgendem kleinen Script:
#/bin/sh
ADDRESSBOOK=~/doc/addressbook
gnokii --getphonebook ME 1 end -r | sed -e "s/\+49/0/" | awk -F";" '{print $2":"$1}' >
$ADDRESSBOOK
Falls man das ganze per Hand machen will, das Format ist einfach Telefon Nr:Name
Das gnokii weiss woher es das Adressbuch holen soll, braucht man noch eine Konfigurationsdatei für sein Handy. Bei mir sieht ~/.gnokiirc wie folgt für ein Nokia 6230i über Bluetooth aus:
[global]
port = 00:13:FD:99:C1:0b
model = 6230
connection = bluetooth
rfcomm_channel = 1
Jetzt muss man noch den Anrufmonitor der Fritzbox aktivieren, dazu genügt es #96*5* zu wählen.
Jetzt noch einfach folgendes Script starten und sich über Meldungen freuen :)
#!/usr/bin/perl -w
#
# read_calls.pl
# 
# Synopsis:
# Script is run as a service daemon. It connects to the Fritz!Box Fon Ata
# (port 1012) and receives the calling string (number of the party calling 
# in). This number is passed on to another program. I.e. this could be an 
# Jabber client or a "look who called list".
# 
# Requirements:
# - must be able to reach tcp port 1012 on your FB
# - activate call monitor on FB by dialing #96*5*
# - required perl package
#
# Licence: GPL2
#
# History:
# ver. 0.1 - 20060401 - Lars G. Sander, Zuerich
# First public release.
# ver. 0.2 - 20060510 - Ulrich Dangel <fritzbox@spamt.net>
# Added telefon book support
# To Do:
# - beefed up security?
# - proxy functionality
# - additionally monitor calls OUT
use IO::Socket;
use strict;

# your fritz box (ip or hostname)
my $FRITZBOX="fritz.box";
my $TELEFONBUCH="$ENV{HOME}/doc/addressbook";
my $EXTPRO="/usr/bin/X11/xmessage";
#-------- NO USER SERVICABLE PARTS BELOW -------#


sub read_book {
    my %book = ();
    open(IN, "<", $TELEFONBUCH) || return ();
    while(<IN>){
        chomp;
        my @elements = split(":",$_);
        $book{$elements[0]}=$elements[1];
    }
    close(IN);
    return %book;
}


my %book = &read_book;

my $sock = new IO::Socket::INET (
        PeerAddr => $FRITZBOX,
        PeerPort => '1012',
        Proto => 'tcp'
        );
        die "Could not create socket: $!\n" unless $sock;
    
while(<$sock>) {
        if ($_ =~ /RING/){
                my @C = split(/;/);
                my $nr="";
                if (exists($book{$C[3]})) {
                    $nr=$book{$C[3]};
                } else {
                    $nr=$C[3];
                }
                my @args = ($EXTPRO, "Anruf: ", $nr);
                system(@args); 
        }
}
Ich hoffe das hilft irgendjemanden :) Uli

Posted by Ulrich Dangel | Permanent Link | Categories: Stuff