Welcome To Our Shell

Mister Spy & Souheyl Bypass Shell

Current Path : /var/www/web-klick.de/dsh/50_dev2017/1300__perllib/Utility/

Linux ift1.ift-informatik.de 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64
Upload File :
Current File : /var/www/web-klick.de/dsh/50_dev2017/1300__perllib/Utility/vbox.pm

package Utility::vbox;

#   Vbox-Perl-Funktionen

use strict;
use Date::Format;

sub new {

   my $class = shift;
   my $self  = {};
   $self->{'COMHANDLE'} = shift;
   $self->{'CALLER'}    = shift;
   my $o                = shift;
   $self->{'DIR'}       = shift;
   bless($self,$class);
   $self->{'DIR'}       = "";
   $self->{'FILENAME'}  = $o;
   if ($o =~ /^(.*)\/(.*)\.msg$/) {
      $self->{'DIR'}      = $1;
      $o                  = $2;
      $self->{'FILENAME'} = $o . ".msg";
   }
   elsif ($o =~ /^(.*)\.msg$/) {
      $o = $1;
   }
   $o = [split(/-/,$o)];
   $self->{'ID'}      = shift(@$o);
   $self->{'SECTION'} = shift(@$o);
   $self->{'MARK'}    = [@$o];
   $self->{'MAILTO'}  = {};
   return($self);

}

#*********************************************************************

#  Die Regeln werden in zwei verschiedenen Weisen ausgewertet:
#
#  1. Wenn das aufrufende Skript ausserhalb des standard.tcl-Aufrufes
#     aufgeruen wird. Dann werden die  rules  komplett durchlaufen
#     und die einzelnen  vboxgetty<nr>-Files geschrieben.
#
#  2. Wenn das aufrufende Skript von standard.tcl aufgerufen wird
#     und  $self->{'COMHANDLE'}  damit einen Wert hat, dann
#     werden nur die  $self->{'MAILTO'} -  Werte belegt.


sub rules {

   my $self = shift;
   my $text = shift;
   my $dir  = `pwd`;
   $dir =~ s/\n//g;

   my $number; my $caller; my $time; my $day; my $ring; my $mark; my $zeile;
   my $section; my $o; my $id;

   my $numbers = {};
   my $rule1   = [];
   my $rule2   = [];
   foreach $zeile (split(/\n/,$text)) {
      $o = "";   
      if ($zeile =~ /^(.*?)\#/) {
         $zeile = $1;
      }
      if ($zeile =~ /^(.*?)--\> *(.*?) *$/) {
         $zeile  = $1;
         $o      = $2;
         $o =~ s/ //g;
         if ($zeile =~ /^ *(\d+)/) {
            $self->{'MAILTO'}->{$1} = $o;
         }
      }
      next if ($self->{'COMHANDLE'});
      next if ($zeile !~ /^ *(\S+) +(\S+) +(\S+) +(\S+) +(\S+) *(.*?) *$/);
      $number = $1;
      $caller = $2;
      $time   = $3;
      $day    = $4;
      $ring   = $5;
      $mark   = $6;
      while ($mark =~ s/  / /g) { 1; }
      $mark = [split(/ /,$mark)];
      if ($number ne "*") {
         $numbers->{$number} = 1;
         push(@$rule1,[$number,$caller,$time,$day,$ring,$mark]);
      } else {
         push(@$rule1,[$caller,$time,$day,$ring,$mark]);
      }
   }
   return(0) if ($self->{'COMHANDLE'});

   foreach $zeile (@$rule2) {
      foreach $number (keys %$numbers) {
         push(@$rule1,$number,@$zeile);
      }
   }

   foreach $number (keys %$numbers) {
      $section = {};
      $text    = "[CALLERIDS]\n";
      foreach $zeile (@$rule1) {
         ($o,$caller,$time,$day,$ring,$mark) = @$zeile;
         next if ($o ne $number);
         $id = $caller;
         $o  = $caller;
         if ($caller eq "*") { $id = "STANDARD"; $o = "-" }
         if (!($section->{$caller})) {
            $section->{$caller} = "[".$id."]\n";
            $text = $text . $caller . "   " . $o . "   " .
                      $number . "-" . $id . "\n";
         }
         $section->{$caller} = $section->{$caller} . 
            $time . "  " . $day . "  " . $dir . "/" .
            join("-",$number,$id,$ring,@$mark) .
            ".msg  90  RINGS=" . $ring . "\n";
      }
      foreach $caller (keys %$section) {
         $text = $text . "\n[RINGS]\n*    *    3\n\n" . $section->{$caller};
      }
      open(FFILE,">_vbox".$number.".conf");
      print FFILE $text;
      close(FFILE);
      system("chmod a+rwx _vbox".$number.".conf");
   }
   return(1);

}

#*********************************************************************

sub caller   { my $self = shift; return($self->{'CALLER'});   }
sub id       { my $self = shift; return($self->{'ID'});       }
sub section  { my $self = shift; return($self->{'SECTION'});  }
sub filename { my $self = shift; return($self->{'FILENAME'}); }
sub mark     { my $self = shift; my $par = shift;
                     return($self->{'MARK'}->[$par-1]); }

#*********************************************************************

sub routine {

   my $self = shift;
   my $par  = shift;
   my $comhandle = $self->{'COMHANDLE'};
   system("xcv1 send1_comhandle $comhandle $par");
   my $erg = `xcv1 receive0_comhandle $comhandle`;
   return($erg);

}

#*********************************************************************

sub stop {

   my $self = shift;
   my $comhandle = $self->{'COMHANDLE'};
#print STDERR $self->{'HANGUP'} . "---\n";
   if ($self->{'ABBRUCH'}) {
#print "hier\n";
      open(FFILE,">/tmp/vboxrestart");
      print FFILE "CLEAR\n";
      close(FFILE);
      system("chmod a+rw /tmp/vboxrestart");
   }
   system("xcv1 send1_comhandle $comhandle ___STOP___");

}

#*********************************************************************

sub wait {

   my $self = shift;
   my $pars = join(" ",@_);
   if ($self->{"HANGUP"}) { return("HANGUP"); }
   $self->routine("wait");
   my $erg = $self->routine($pars);
   if ($erg eq "HANGUP") { $self->{'HANGUP'} = 1; return("HANGUP"); }
   return($erg);

}

#*********************************************************************

sub message {

   my $self  = shift;
   my $pars  = shift;
   $pars     = join(" ",$self->{'DIR'}."/".$pars,@_);
   if ($self->{"HANGUP"}) { return("HANGUP"); }
   delete ($self->{'ABBRUCH'});
   $self->routine("message");
   my $erg = $self->routine($pars);
   if (1 or $erg ne "OK") { $self->{'ABBRUCH'} = 1; }
   if ($erg eq "HANGUP") { $self->{'HANGUP'} = 1; return("HANGUP"); }
   $erg =~ s/[\*\# ]//g;
   return($erg);

}

#*********************************************************************

sub record {

   my $self = shift;
   my $pars = join(" ",@_);
   if ($self->{"HANGUP"}) { return("HANGUP"); }
   my $dir  = $self->{'DIR'};
   $self->routine("record");
   my $erg  = $self->routine($pars);
   print "RECORD: $erg\n";
   my $erg2 = $self->{'CALLER'};
   if ($erg2 == 0) { $erg2 = "unbekannt"; } else { $erg2 = "0" . $erg2; }

   my $erg1 = $dir . "/" . $self->{'FILENAME'};

   my $u_fax = "";
   if (!($self->{'ZIEL'})) {
      $self->{'ZIEL'} = `/etc/syspar UFAX`;
      if ($self->{'ZIEL'}) {
         $u_fax = $self->{'ZIEL'} . "/";
      }
   }
   my $o;
   my $o1 = [stat($erg1)];
   $o1 = $o1->[9];
   my $o2;
   while (0 == 0) {
      print "TIME: $o1\n";
      $o2 = sprintf("%04u",(localtime($o1))[5]+1900) .
            sprintf("%02u",(localtime($o1))[4]+1) .
            sprintf("%02u",(localtime($o1))[3]) . "_" . 
            sprintf("%02u",(localtime($o1))[2]) .
            sprintf("%02u",(localtime($o1))[1]) .
            sprintf("%02u",(localtime($o1))[0]);
            $erg2 = $o2 . ".TEL." . $self->{'ID'} . "." . $erg2;
            last if (!(-f $u_fax . $erg2 . ".mp3"));
      $o1 = $o1 + 1;
   }

   my $erg3 = $erg2;
   $erg2 = $dir . "/" . $erg2;
   
   if (-f $erg1) {
   
      system("mv $erg1 $erg2.msg");
      system("vboxtoau < $erg2.msg > $erg2.au; rm $erg2.msg");
      system("sox $erg2.au -r 44100 $erg2.wav; rm $erg2.au");
      if ($u_fax) {
         $u_fax = "-outdir=" . $self->{'ZIEL'};
      }
      print("bladeenc -quit -delete $u_fax $erg2.wav > /dev/null\n");
      system("bladeenc -quit -delete $u_fax $erg2.wav > /dev/null");

#   Verteilung der Aufnahme

      $o1 = [];
      if ($u_fax) {
         $u_fax = $self->{'ZIEL'} . "/";
      }
      system("chmod 777 " . $u_fax . $erg3 . ".mp3"); 
      foreach $o (split(/,/,$self->{'MAILTO'}->{$self->{'ID'}})) {
         print "$o\n";
         if ($o =~ /\@/) {
            push(@$o1,$o);
         }
         elsif ($o ne "DEL") {
            print("cp " . $u_fax . $erg3 . ".mp3 " . $o . "\n");
            system("cp " . $u_fax . $erg3 . ".mp3 " . $o);
         }
      }
      $o = "," . $self->{'MAILTO'}->{$self->{'ID'}} . ",";
      if (@$o1) {
         $o1 = join(",",@$o1);
         system("xcv1 fetchmail -l 1");
         $erg1 = "_txt_".$$.".txt";
         open(FFILE,">".$u_fax.$erg1);
         print FFILE "\n\nReceived from vbox: $erg3.mp3\n\n\n";
         close(FFILE);
         sleep 1;
         print("metasend -o " . $u_fax . "mm" . $erg1 . 
                  " -b -S 40000000 -F info\@ift-informatik.de " .
                  "-m \"text/plain\" -e quoted-printable " .
                  "t $o1 -f " . $u_fax.$erg1 . " -s \"$erg3.mp3\" -n " .
                  "-m \"application/mp3\; name=$erg3.mp3\" -e base64 -f " . 
                  $u_fax . $erg3 . ".mp3\n");
         system("metasend -o " . $u_fax . "mm" . $erg1 . 
                  " -b -S 40000000 -F info\@ift-informatik.de " .
                  "-m \"text/plain\" -e quoted-printable " .
                  "-t $o1 -f " . $u_fax.$erg1 . " -s \"$erg3.mp3\" -n " .
                  "-m \"application/mp3\; name=$erg3.mp3\" -e base64 -f " . 
                  $u_fax . $erg3 . ".mp3");
         sleep 1;
         print("sendmail -finfo\@ift-informatik.de -t < " . $u_fax . "mm" . $erg1 . "\n");
         system("sendmail -finfo\@ift-informatik.de -t < " . $u_fax . "mm" . $erg1);
         $self->{'ABBRUCH'} = 1;
         system("rm " . $u_fax . $erg1);
         system("rm " . $u_fax . "mm" . $erg1);
      }
      if ($o =~ /,DEL,/) {
         system("rm " . $u_fax . $erg3 . ".mp3");
      }
      
   }


   if ($erg eq "HANGUP") { $self->{'HANGUP'} = 1; return("HANGUP"); }

   return($erg);

}

#*********************************************************************

sub record1 {

   my $self  = shift;
   my $datnr = shift;
   my $pars  = join(" ",@_);

   if ($self->{"HANGUP"}) { return("HANGUP"); }
   my $dir  = $self->{'DIR'};
   $self->routine("record");
   my $erg  = $self->routine($pars);

   my $erg1 = $dir . "/" . $self->{'ID'} . ".msg";
   opendir("DDIR",$dir);
   my $entry; my $o = "";
   while ($entry = readdir(DDIR)) {
      if ($entry =~ /^($datnr)\-(.*)\.msg$/) {
         $o = $entry;
      }
      elsif ($entry =~ /\-($datnr)\.msg$/) {
         $o = $entry;
      }
      last if ($o);
   }
   if (!$o) {
      $o = $datnr . ".msg";
   }
   $o = $dir . "/" . $o;
   system("mv $erg1 $o");
   system("chmod a+r $o");
   if ($erg eq "HANGUP") { $self->{'HANGUP'} = 1; return("HANGUP"); }

   return($erg);

}

#*********************************************************************

sub waitn {

   my $self = shift;
   my $pars = join(" ",@_);
   if ($self->{"HANGUP"}) { return("HANGUP"); }
   $self->routine("waitn");
   my $erg = $self->routine($pars);
   if ($erg =~ /HANGUP/) { $self->{'HANGUP'} = 1; return("HANGUP"); }
   $erg =~ s/[\*\# ]//g;
   $erg =~ s/TIMEOUT//g;
# print STDERR "$erg\n";
   return($erg);

}

#*********************************************************************

sub touchtones {

   my $self = shift;
   my @pars = @_;
   if ($self->{"HANGUP"}) { return("HANGUP"); }

   my $text = "";
   my $zaehler = 0;
   my $o;

   while (@pars) {
      $zaehler = $zaehler + 1;
      $o = shift(@pars);
      $text = $text . " *" . $o . "#";
      if ($zaehler == 7 or !(@pars)) {
         $self->routine("touchtones");
         $self->routine($text);
         $text = "";
         $zaehler = 0;
      }
   }

}

#*********************************************************************

sub cleartones {

   my $self = shift;
   $self->routine("cleartones");

}

1;

bypass 1.0, Devloped By El Moujahidin (the source has been moved and devloped)
Email: contact@elmoujehidin.net bypass 1.0, Devloped By El Moujahidin (the source has been moved and devloped) Email: contact@elmoujehidin.net