Modem-VBox

 view release on metacpan or  search on metacpan

vbox  view on Meta::CPAN

#!/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 )