#! /bin/perl -w # # ctel.pl V 0.9 - a Web- Interface for the CapiTel OS/2 CAPI Answering Machine # (see http://www-users.informatik.rwth-aachen.de/~cawim/capitel.html) # # (c) Maximillian Dornseif # md@hudora.de # http://md.hudora.de/ # # Copyright under the GPL require "cgi-lib.pl"; # I use hmailer.exe, part of Inet.mail # (see www.hethmon.com) to send the mail. # Perhaps I will change it to Mailtools $hmailerPath = "e:\\net\\inetmail\\hmailer.exe"; # The Directory where CapiTel resists $ctel_dir='c:\\isdn\\ctel'; # E-Mail-Adr to send info to if Parameter 'checkandmail' # is used $infoADR='info@hudora.de'; $QUERY=$ENV{'QUERY_STRING'}; # multiline $/ = ""; $* = 1; # Check if called with Parameter 'checkandmail' if(@ARGV[0] eq 'checkandmail') { # OK, then send Info-Mail to $infoADR opendir(DIR, $ctel_dir) || die "can't opendir $ctel_dir: $!"; @dir = readdir(DIR); @files = grep(/.idx$/, @dir); closedir DIR; if(grep(/.idx$/, @dir)) { @text = "Folgende Anrufe befinden sich zur Zeit auf dem Server:\n\n"; @text = (@text, " Von Datum Gespr„chsdauer Anschluá\n"); foreach(@files) { open(FILE, $ctel_dir.'\\'.$_) || die "can't open $ctel_dir\\$_: $!"; $in = ; close FILE; ($from, $date, $time, $dura, $to, $file) = $in =~ /(.*)\n(.*)\n(.*)\n(.*)\n(.*)\n(.*)/; @text = (@text, sprintf("%12s %17s %3s %14s\n", ($from, $date.' '.$time, $dura, $to))); } @text = (@text, "\nBitte h”ren Sie die Nachrichten ab! Diese Meldung erscheint t„glich,\nbis die Anrufe gel”scht sind.\n\n\tIhr freundlicher Anrufbeantworter\n"); print @text; &sendMail('Anrufbeantworter', $infoADR, 'Anruf Da!', @text); } } # So no Parameters - assume we are called as CGI else { if($QUERY) { open(FILE, $ctel_dir.'\\'.$QUERY) || cgidie("can't open $ctel_dir\\$QUERY: $!"); binmode STDOUT; @f=; close FILE; print"Content-type: audio/x-wav\n\n"; print @f; exit; } print &PrintHeader; print &HtmlTop('ctel'); opendir(DIR, $ctel_dir) || die "can't opendir $ctel_dir: $!"; @dir = readdir(DIR); @files = grep (/.idx$/, @dir); closedir DIR; print "\n"; print" \n \n"; foreach(@files) { open(FILE, $ctel_dir.'\\'.$_) || die "can't open $ctel_dir\\$_: $!"; $in = ; close FILE; ($from, $date, $time, $dura, $to, $file) = $in =~ /(.*)\n(.*)\n(.*)\n(.*)\n(.*)\n(.*)/; print" \n"; #print" \n"; } print "
Von\n Datum\n Gesprächsdauer\n Anschluß\n
$from\n $date $time\n $dura\n $to\n Anhören\n
$from\n $date $time\n $dura\n $to\n Anhören\n
\n"; print '
generated by ctel.pl '; print '© 1997 Maximillian Dornseif, Last Modified
'; print &HtmlBot; } # # Procedure to Mail # sub sendMail { local ($from, $to, $subject, @msg); ($from, $to, $subject) = splice(@_, 0,3); @msg = @_; open(OUTFILE, ">ctel$$tmp.msg"); print OUTFILE "From: $from\n"; print OUTFILE "To: $to\n"; print OUTFILE "Subject: $subject\n"; print OUTFILE "Date: ".localtime(time)."\n\n"; print OUTFILE "@msg"; close OUTFILE; open(OUTFILE, ">ctel$$tmp.to"); print OUTFILE "$to\n"; close OUTFILE; print system("$hmailerPath $from ctel$$tmp.to ctel$$tmp.msg"); }