Listing 3. CGI Script #!/usr/bin/perl use DBI; $dbh = DBI->connect("dbi:Pg:dbname=database", "postgres", "password") || die "Can't connect to database.\n"; print "Content-type: text/xml\n\n\n"; print "\n"; check_cid("/tmp/panels/cid"); print "\n"; exit; sub check_cid { my($dir) = @_; my(@a, $a, $file, $count, $top); local(*FILE, *DIR); opendir DIR, "/tmp/panels/cid"; while ($file = readdir(DIR)) { if ($file eq ".") { next; } if ($file eq "..") { next; } open FILE, "/tmp/panels/cid/$file"; chomp($line = ); close FILE; ($dir, $name, $number, $uid) = split("#", $line); $count++; if ($dir eq "IN") { $html = "Incoming call from $name ($number)"; } else { $html = "Outgoing call from $name ($number)"; } expire_call($uid); print < phone$count $html EOF ; } } sub expire_call { my($id) = @_; my($sth, $count); $sth = $dbh->prepare("select count(*) from cdr where uniqueid=\'$id\'"); $sth->execute(); ($count) = $sth->fetchrow_array(); if ($count) { unlink("/tmp/panels/cid/$id"); } }