Modem-VBox
view release on metacpan or search on metacpan
#!/opt/bin/perl
use Modem::VBox;
use Sys::Syslog;
require POSIX;
require MIME::Entity;
$SIG{HUP} = 'IGNORE';
$Modem::VBox::debug = 7;
$MAILTO = "vbox\@plan9.de";
$FROM = "vbox\@plan9.de";
$SENDMAIL = "/usr/sbin/exim -oi -oem -f \Q$FROM\E \Q$MAILTO\E";
use POSIX ();
do "/root/s/popup.pl";
sub send_file {
my ($subject, $filename) = @_;
#if (fork == 0) {
$top = MIME::Entity->build(Type =>"multipart/mixed",
From => $FROM,
Subject => $subject);
$top->attach(
Path => $filename,
Type => "application/vbox",
Encoding => "base64",
);
open MAIL, "| $SENDMAIL" or die "open: $!";
$top->print(\*MAIL);
close MAIL;
#POSIX::_exit(0);
#}
}
#{
# require NetServer::ProcessTop;
# NetServer::ProcessTop->new(7000);
#};
Sys::Syslog::setlogsock "unix";
openlog "vbox", "cons,ndelay", "user";
$|=1;
$vaheader_p = "A4 N N a33 a33 a33 a65 a33 a33 a65 a65 a33 a33 a65 a65";
$BASE="/var/spool/vbox";
$MSG="$BASE/messages";
$INC="$BASE/incoming";
$SIG{CHLD} = 'IGNORE';
sub num { sprintf "$MSG/_%d", shift }
sub msg { "$MSG/$_[0]" }
$v = new Modem::VBox
line => $ARGV[0] || "/dev/ttyI1",
modeminit => 'ATZ&D2&B512&E9377358S13.4=0S13.2=1S13.6=0+FCLASS=8',
rings => 5, # connect after 5 rings
connect_cb => \&main_menu,
ring_cb => sub {
my ($count, $cid) = @_;
my ($name, $avon);
if ($count == 1) {
fork or do { exec "/etc/rc.spinup"; exit };
open PHONE, "</var/spool/vbox/phone" and do {
my $pm = qr/^$cid\s+(.*)/;
while(<PHONE>) {
if (/$pm/) {
$name = $1;
last;
}
}
( run in 0.909 second using v1.01-cache-2.11-cpan-364913b4093 )