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 :
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
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