TCP Port von AVM Fritzbox auslesen?

kami23

Neuer User
Mitglied seit
1 Jan 2007
Beiträge
148
Punkte für Reaktionen
1
Punkte
16
Hi,

ich habe eine Fritzbox 7170 und die hat um die Anrufliste auszugeben einen offenen TCP-Port: 1012. Immer wenn ein Anruf gemacht wird oder ein Anruf eingeht, wird ein String über diesen TCP-Port ausgegeben. Die Zeilen sehen dann so aus:

Ausgehend:

08.03.10 20:37:35;RING ;0;017100000;3100000;SIP0;
08.03.10 20:37:40;DISCONNECT ;0;0;

09.03.10 07:40:09;RING;0;017100000;3100000;SIP0;
09.03.10 07:40:14;CONNECT;0;0;017100000;
09.03.10 07:40:25;DISCONNECT;0;6;

Eingehend:

09.03.10 07:41:05;CALL;0;0;3100000;017100000;SIP0;
09.03.10 07:41:22;DISCONNECT;0;0;

09.03.10 07:41:37;CALL;0;0;3100000;017100000;SIP0;
09.03.10 07:41:46;CONNECT;0;0;017100000;
09.03.10 07:41:54;DISCONNECT;0;7;

Ich möchte nun gerne auf meinem Server ein Skript laufen lassen, um diese Strings auszuwerten und im Endeffekt in eine Mysql-Datenbank zu speichern.

Dafür habe ich wie folgt angefangen :

Code:
#!/usr/bin/perl -w

use IO::Socket;

my (@anruf, $line, $i);
$remote = IO::Socket::INET->new(
                        Proto    => "tcp",
                        PeerAddr => "192.168.2.1",
                        PeerPort => "1012",
                    )
                  or die "cannot connect to daytime port at localhost";
while ( <$remote> ) 
	{ $line = <$remote>; 
		@anruf = split(/;/, $line);
                        
	  if ($anruf[1] =~/RING/) {
            print "Ankommend";
        } else {
         print "no";
        }
};

close $remote;

Das Problem ist nun das er nichts entsprechend anzeigt und nichts ausgegeben wird, obwohl er ja entweder No oder Ankommend anzeigen müsste. Ich denke mal das Problem liegt irgendwo in der Schleife. Wie schreibe ich das richtig, das er die eingehende Zeile auswertet und if-Bedingungen ausführt.
Außerdem sollten folgende Strings nicht verloren gehen.

Gruß kami
 
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.