Telephone Answer Machine for Linux
Alan Jackson
ajackson
Mon May 17 11:33:43 PDT 2004
On Sun, 23 Jun 2002 02:16:03 +0200
Oliver Ob <ob_ok at gmx.net> wrote:
> Well why not exchange some scripts?
> I am new to that, too (got Zyxel 1496e+)
>
#!/bin/perl -w
# Monitor callerid
use Carp;
use strict;
use Device::SerialPort 0.06;
my $port = "/dev/modem";
my $PortObj;
$PortObj = Device::SerialPort->new ($port) or die "Can't start $port\n";
$PortObj->baudrate(9600);
$PortObj->parity("odd");
$PortObj->databits(8);
$PortObj->stopbits(1);
$PortObj->parity_enable(0);
$PortObj->handshake("dtr");
my $print = 0;
if (defined @ARGV && $ARGV[0] eq '-p') {$print = 1;}
my $gotit = "";
my @gotit;
my $count_in;
my $sleep = 1;
my $logfile = '/home2/archive/callerid/log';
my $archive = '/home2/archive/callerid/archive';
$SIG{'USR1'} = sub {$PortObj->write("ATZ\r"); sleep 3; die "usr1 kill signal recieved\n";};
# Initialize modem
print "------- Starting Callerid ---------\n";
sleep 1;
$PortObj->write("ATZ\r");
sleep 1;
$PortObj->write("ATE1 S0=0 V1Q0#CID=1\r");
#---------------- main read loop ------------------
while (1) {
($count_in, $gotit) = $PortObj->read(500);
sleep $sleep;
next if $count_in == 0;
&process;
($count_in, $gotit) = $PortObj->read(500);
sleep 1;
&process;
}
#---------------- end main read loop --------------
sub process {
my @t = localtime(time);
my $datetime = ($t[5]+1900) . "-" . ($t[4]+1) . "-" . $t[3] . " " . $t[2] . ":" . $t[1] . ":" . $t[0];
$gotit =~ s/\r//g;
open (ARCHIVE,">>$archive") || die "Can't open $archive, $!\n";
print ARCHIVE "$gotit";
close ARCHIVE;
}
=head1
kill -SIGUSR1 pid : this will flush the buffer and exit the program
Set the sticky bit so this will run as other than root....
chown root callerid.pl
chmod u+s callerid.pl
Alan Jackson, Copyright 2000, released under the same conditions as perl.
callerid at ajackson.org
=cut
-----------------------------------------------------------------------
| Alan K. Jackson | To see a World in a Grain of Sand |
| alan at ajackson.org | And a Heaven in a Wild Flower, |
| www.ajackson.org | Hold Infinity in the palm of your hand |
| Houston, Texas | And Eternity in an hour. - Blake |
-----------------------------------------------------------------------
More information about the Linux-users
mailing list