Autor Beitrag
Stefan-W
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 475

Win 7 SP1
D2005 PE
BeitragVerfasst: So 28.05.06 17:30 
Hi,

ich will ein Anrufmonitor für unsere Fritzbox programmieren, da ich mit den meisten die es so gibt nicht ganz so zufrieden bin.
Allerdings hab ich keine Idee wie ich die Daten von einem bestimmten Port (1012) empfangen kann und dann weiterverarbeiten kann.

Die FritzBox liefert die Daten in der Form:

Ausgehende Anrufe: datum;CALL;ConnectionID;Nebenstelle;GenutzteNummer;AngerufeneNummer;
Eingehende Anrufe: datum;RING;ConnectionID;Anrufer-Nr;Angerufene-Nummer;
Zustandegekommene Verbindung: datum;CONNECT;ConnectionID;Nebenstelle;Nummer;
Ende der Verbindung: datum;DISCONNECT;ConnectionID;dauerInSekunden;

hat vielleicht einer von euch eine Idee nach was ich suchen kann bzw in welche richtung ich arbeiten muss?

Danke schon mal im Vorraus

Tschau Stefan
mkinzler
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 4106
Erhaltene Danke: 13


Delphi 2010 Pro; Delphi.Prism 2011 pro
BeitragVerfasst: So 28.05.06 17:33 
Meinst du einen Socket?

_________________
Markus Kinzler.
Stefan-W Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 475

Win 7 SP1
D2005 PE
BeitragVerfasst: So 28.05.06 17:39 
hmm... kann ich nicht sagen ich weis nur das auf dem Port die Daten irgendwie auf meinen Rechner gelangen und ein Programm das ganze dann anzeigt.

ich hab da n Java Code allerdings ist das für mich nicht verständlich. Aber ich seh mal nach ob ich mit Socket vllt weng näher komme
Stefan-W Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 475

Win 7 SP1
D2005 PE
BeitragVerfasst: So 28.05.06 20:41 
Also die Socket sind auf jedenfall die richtige Richtung! Allerdings fehlt mir die ServerSocket-Komponente die wohl standart mäßig bei Delphi bei ist...

kann mir da jemand helfen oder andere empfehlen... ich hab auch Indy allerdings weis ich da nicht was ich nehmen soll bzw wie ich das dann verwende
mkinzler
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 4106
Erhaltene Danke: 13


Delphi 2010 Pro; Delphi.Prism 2011 pro
BeitragVerfasst: So 28.05.06 20:45 
TidTCPClient bzw. TidUDPClient.

Alternativ zu INDY gibt es auch noch ICS und Synapse

_________________
Markus Kinzler.
Stefan-W Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 475

Win 7 SP1
D2005 PE
BeitragVerfasst: So 28.05.06 20:48 
war ein Client nicht zum senden? ich wollt doch empfangen :?:
mkinzler
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 4106
Erhaltene Danke: 13


Delphi 2010 Pro; Delphi.Prism 2011 pro
BeitragVerfasst: So 28.05.06 21:15 
Stimmt :oops;

_________________
Markus Kinzler.
Fighter#1
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 787

Win XP, Ubuntu 8.04
Turbo Delphi 2006, Delphi 2005 Pe, Delphi 5 Pe, Netbeans 6.1, Eclipse, Microsoft VisualC#, Dev C++, PHP, HTML, CSS
BeitragVerfasst: So 28.05.06 21:20 
Wer, oder was sendet denn die Daten, was ist das für ein Programm, oder sendet ein Server oder ein Client?
Gib ein bisschen mehr info und wir können besser helfen
:-)
MfG Fighter#1
Ach ja: Client kann genauso empfangen ...

_________________
Wer andere beherrscht ist stark,
wer sich selbst beherrscht ist mächtig. Lao Tse
Stefan-W Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 475

Win 7 SP1
D2005 PE
BeitragVerfasst: Mo 29.05.06 07:21 
Also: Wenn ein Anruf Rausgeht, oder Reinkommt bzw die verbindung wieder getrennt wird sendet unser Router (Fritz.box) auf dem Port 1012 die Daten, die wollte ich abfangen und verarbeiten
frank-wob
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mo 29.05.06 07:45 
Der Port allein wird dir nicht weterhelfen! Du mußt auch wissen was für ein Protokoll verwendet wird. Das sollte aber aus deinem Java-Code in irgendeiner Weise ersichtlich sein. Es werden sich doch wohl ein paar Kommentare darin finden lassen.

Gruß Frank
Stefan-W Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 475

Win 7 SP1
D2005 PE
BeitragVerfasst: Di 30.05.06 09:39 
so wiet ich das ersehen kann wir da mit TCP gearbeitet

ausblenden volle Höhe Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
#!/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); 
        }
}


Das hier ist der Code der wohl auf der Fritzbox läuft, so richtig geht das nicht hervor. das könnte natürlich auch zum empfangen sein. KA
Stefan-W Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 475

Win 7 SP1
D2005 PE
BeitragVerfasst: Mi 31.05.06 09:08 
Hi, ich hab nun die Lösung für mein Problem gefunden. 8)

ich hab gestern abend noch ca 3 Stunden versucht das mit Indy & Co auf die Reihe zu bringen (leider ohne Erfolg)
danach hab ich bei Google nach den StandartKomponenten gesucht (TClientSocket und TServerSocket)
und den Beitrag in der DP gefunden, wo gesagt wurde, dass die dabei sind (wusst ich schon, hatte sie aber trotzdem nicht) weiter unten stand dann, dass die nur nicht Installiert sind (standartmässig) aber wirklich mitgeliefer sind
nun hab ich sie installiert und jetzt klapts auf Anhieb.

Also nochmal danke für eure Mühe (haben ja doch einige hier gepostet)

Tschau Stefan :D
xSTrEaMi
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Mi 20.06.07 17:38 
Hi,

könntest du evtl. die Lösung posten wie du die Anrufe über TClientSocket und TServerSocket abrufst.
Hab momentan das gleiche Problem.

Danke
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Mi 20.06.07 17:57 
Moin!

user profile iconxSTrEaMi hat folgendes geschrieben:
könntest du evtl. die Lösung posten wie du die Anrufe über TClientSocket und TServerSocket abrufst.
Hab momentan das gleiche Problem.

Also wenn ich mir das Perl-Script so ansehe, dann würde ich sagen, probier das mal so: ;)
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
uses
  ..., ScktComp;

type
  TForm1 = class(TForm)
    Memo1: TMemo;
    ClientSocket1: TClientSocket;
    procedure FormCreate(Sender: TObject);
    procedure ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket);
//...

procedure TForm1.FormCreate(Sender: TObject);
begin
  ClientSocket1.Host := '192.168.0.100'// IP-Adresse oder Hostname der FB
  ClientSocket1.Port := 1012// Port
  ClientSocket1.Open;
end;

procedure TForm1.ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket);
begin
  Memo1.Lines.Add(Socket.ReceiveText);
end;

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
xSTrEaMi
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Mi 20.06.07 18:20 
Danke.

Was sich jetzt als Problem darstellt ist der Call-Monitor. Weil wie aktiviere ich ihn ohne
das ein Telefon an der FritzBox hängt. Bei uns läuft das noch über eine 2te Funktelefonanlage
und ich kann hier auch nicht einfach ein Telefon drannhängen... :(

Kennt jemand von euch den FBEditor? Darüber müsste man ja eigentlich die Config-Files direkt
ändern können. Leider bekommt man des Teil nur ausm ip-phone-forum und die haben irgenwelche Probleme
beim anmelden....
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10183
Erhaltene Danke: 1256

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Mi 20.06.07 18:24 
Moin!

user profile iconxSTrEaMi hat folgendes geschrieben:
Danke.

Bitte. ;)

user profile iconxSTrEaMi hat folgendes geschrieben:
Was sich jetzt als Problem darstellt ist der Call-Monitor.
...

Wenn ich das richtig sehe, dann ist damit deine Frage bzgl. dieses Threads geklärt. Bitte erstelle ein neues Topic (dürfte in die Sparte "Off Topic" fallen) für das Problem mit der FritzBox-Software (Forumsregel: nur eine Frage pro Topic, sonst gibt das Chaos!). Danke. ;)

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.


Zuletzt bearbeitet von Narses am Di 02.09.08 20:08, insgesamt 1-mal bearbeitet
Stefan-W Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 475

Win 7 SP1
D2005 PE
BeitragVerfasst: Mi 27.06.07 18:26 
Sorry bin erst aus dem Urlab zurück gekommen... aber hat sich ja geklärt :-)