]> git.ipfire.org Git - people/pmueller/ipfire-2.x.git/blob - html/cgi-bin/asterisk/calls.cgi
Allow also ip/netmask for blue access.
[people/pmueller/ipfire-2.x.git] / html / cgi-bin / asterisk / calls.cgi
1 #!/usr/bin/perl
2
3 require '/var/ipfire/general-functions.pl';
4 require "${General::swroot}/lang.pl";
5 require "${General::swroot}/header.pl";
6
7 &Header::showhttpheaders();
8
9 my (%asterisksettings, %checked);
10
11 my %cgiparams;
12
13 &Header::getcgihash(\%cgiparams);
14
15 $asterisksettings{'ACTION'} = '';
16
17 $file = "/var/log/asterisk/cdr-csv/Master.csv";
18
19 open(DATEN, "$file") or die "Can't open file: $file: $!\n";
20 @datafile = <DATEN>;
21 close(DATEN);
22
23 $file = "./conf/telbook.conf";
24 open(DATEN, "$file") or die "Can't open file: $file: $!\n";
25 @telbook = <DATEN>;
26 close(DATEN);
27
28 &Header::openpage('asterisk', 1, '');
29
30 &Header::openbigbox('100%', 'LEFT');
31
32 if ($cgiparams{'ACTION'} eq $Lang::tr{'update'})
33 {
34 $mday3 = $cgiparams{'day3'};
35 $mon3 = $cgiparams{'month3'};
36 $jahr3 = $cgiparams{'year3'};
37 $mday4 = $cgiparams{'day4'};
38 $mon4 = $cgiparams{'month4'};
39 $jahr4 = $cgiparams{'year4'};
40 }
41 else
42 {
43 @datum3 = localtime(time());
44 ($sec3,$min3,$stunde3,$mday3,$mon3,$jahr3,$wday3,$yday3,$isdst3)=@datum3;
45 $jahr3 = $jahr3 + 1900;
46 $mon3 = $mon3+1;
47 if ($mon3 < 10) { $mon3 = "0$mon3"; }
48 if ($mday3 <10) { $mday3= "0$mday3";}
49 $sec4 = $sec3;
50 $min4 = $min3;
51 $stunde4 = $stunde3;
52 $mday4 = $mday3;
53 $mon4 = $mon3;
54 $jahr4 = $jahr3;
55 $wday4 = $wday3;
56 $isdst4 = $isdst3;
57 }
58
59 if ($errormessage) {
60 &openbox('100%', 'LEFT', $tr{'error messages'});
61 print "<FONT CLASS='base'>$errormessage&nbsp;</FONT>\n";
62 &closebox();
63 }
64
65 print "<FORM METHOD='POST'>\n";
66
67 &Header::openbox('100%', 'LEFT', 'Filter');
68
69 print <<END
70 <center><table border=0><tr><td>&nbsp;</td><td width=50px>Tag:</td><td width=50px>Monat:</td><td width=50px>Jahr:</td></tr>
71 <tr><td>Von: <td><input type=text name=day3 maxlength=2 size=2 value="$mday3"><td><input type=text name=month3 maxlength=2 size=2 value="$mon3"><td><input type=text name=year3 maxlength=4 size=4 value="$jahr3">
72 <tr><td>Bis: <td><input type=text name=day4 maxlength=2 size=2 value="$mday4"><td><input type=text name=month4 maxlength=2 size=2 value="$mon4"><td><input type=text name=year4 maxlength=4 size=4 value="$jahr4">
73
74 <tr><td colspan=2>Von oder zum Anrufer mit der ID/Nummer:<td colspan=2><input type=text name=number size=20 maxlength=100 value="$cgiparams{'number'}">
75
76 <tr><td align=center colspan=4><input type=submit name='ACTION' value=$Lang::tr{'update'}>
77 </table>
78 END
79 ;
80
81 &Header::closebox();
82
83 &Header::openbox('100%', 'LEFT', 'Anrufe');
84 print "<table border=0 width=100%> <tr> <td align=center><b>Anfrufer <td align=center><b>Angerufene <td align=center><b>CallerID <td align=center><b>Start des Anrufs <td align=center><b>Ende des Anrufs <td align=center><b>Dauer (in Sek.) <td align=center><b>Status";
85 print "<tr><td colspan=6>&nbsp;<!-- Platzhalter -->";
86 foreach $line (reverse @datafile) {
87 chomp $line;
88 (@spalten) = split (/,/, $line);
89 $spalten[1] =~ s/"//g;
90 $spalten[2] =~ s/"//g;
91 $spalten[4] =~ s/"//g;
92 $spalten[10]=~ s/"//g;
93 $spalten[11]=~ s/"//g;
94 $spalten[13]=~ s/"//g;
95 $spalten[14]=~ s/"//g;
96 (@zdatum) = split (/ /, $spalten[11]);
97 (@datu) = split (/-/, $zdatum[0]);
98 (@dzeit) = split (/:/, $zdatum[1]);
99 $datum1 = $datu[0].$datu[1].$datu[2];
100 @datum2_1 = localtime(time());
101 ($sec,$min,$stunde,$mday,$mon,$jahr,$wday,$yday,$isdst)=@datum2_1;
102 $jahr = $jahr + 1900;
103 $mon = $mon+1;
104 if ($mon < 10) { $mon = "0$mon"; }
105 if ($mday <10) { $mday= "0$mday";}
106 $datum2 = $jahr.$mon.$mday;
107 $datum3_1 = $jahr3.$mon3.$mday3;
108 $datum4_1 = $jahr4.$mon4.$mday4;
109 $datum2 = $datum2-100;
110 if ($datum1 ge $datum3_1 && $datum1 le $datum4_1 && ($cgiparams{'number'} eq '' || $cgiparams{'number'} eq $spalten[1] || $cgiparams{'number'} eq $spalten[2])) {
111 $telline = @telbook[0];
112 $telline =~ s/\[telnr\]/$spalten[1]/g;
113 $dauer_m = int($spalten[13]/60);
114 $dauer_s = $spalten[13]%60;
115 $dauer_h = int($spalten[13]/3600);
116 $dauer_m2= $dauer_m-($dauer_h*60);
117 $dauer_t = $dauer_h.":";
118 if ($dauer_m2 < 10) { $dauer_t .= "0".$dauer_m2."."; }
119 else { $dauer_t .= $dauer_m2."."; }
120 if ($dauer_s < 10) { $dauer_t .= "0".$dauer_s; }
121 else { $dauer_t .= $dauer_s; }
122 print "<tr bgcolor=#C0C0C0> <td align=center><a target='_blank' href=$telline> $spalten[1]</a> <td align=center>$spalten[2] <td align=center>$spalten[4] <td align=center bgcolor=#339933>$spalten[10] <td align=center bgcolor=#339933>$spalten[11] <td align=center>$dauer_t <td align=center bgcolor='#993333'><font color=white>$spalten[14]\n";}
123 }
124 print "</table>";
125
126 &Header::closebox();
127
128 print "</FORM>\n";
129
130 &Header::closebigbox();
131
132 &Header::closepage();