HylaFAX The world's
most advanced open source fax server
|
|
[
Date Prev][
Date Next][
Thread Prev][
Thread Next]
[
Date Index]
[
Thread Index]
Re: Perl script to resend failed fax. Anybody have it?
You probably want Phil Abercrombie's resendfax perl script
On 3 Aug 1999, kyle.silfer wrote:
> >From searching the mail archives, it appears the a guy named Paul
> Abercrombie wrote a handy Perl script to resend faxes from the doneq
> directory. He posted it to this list (although it does not appear in
> the archives!!!) and some people have used it. Paul himself no longer
> has the script. Does anybody? It sounds extremely useful and thus far
> the only pragmatic solution to reusing failed faxes without starting
> over from scratch.
>
> If anybody has a copy, I would be eternally grateful if he/she could
> email a copy to me (and to the list!). Thanks.
>
>
>
--
Tim Rice Multitalents (707) 887-1469 (voice)
tim@trr.metro.net
#!/usr/local/bin/perl
# (c) Copyright Phil Abercrombie April 1997
# phil@mcs.vuw.ac.nz
use Net::FTP;
use Getopt::Std;
getopts("A:au:h:p:v") || die <<DEATH;
usage: $0 [-u user[:passwd]] [-a] [-A admin-passwd] [-h host] [-p port] [-v] job...
options:
-h host fax server (default $FAXSERVER or localhost)
-p port port on fax server (default 4559)
-u user[:passwd] user to log on to fax server (default current user)
-a try to get admin privileges
-A passwd use this passwd to get admin privileges
-v enable debugging
DEATH
;
my $USERNAME = $opt_u || (getlogin);
my $PASSWD = $1 if $USERNAME =~ s/:(.*)//;
my $ADMIN = $opt_A;
my $FAXSERVER = $opt_h || $ENV{FAXSERVER} || "localhost";
my $HYLAFAX = $opt_p || 4559;
my $hfax = new Net::FTP $FAXSERVER, Port=>$HYLAFAX or die "Can't connect to fax server $FAXSERVER:$HYLAFAX\n";
$hfax->debug($opt_v);
sub check(@)
{
my $code = $hfax->code;
return $code if grep($_==$code,@_);
return if $hfax->ok;
die sprintf "%3d %s", $code, $hfax->message;
}
sub noecho($ )
{
my $prompt = shift;
system('stty -echo');
print STDERR "$prompt: ";
chomp(my $input = <STDIN>);
system('stty echo');
print STDERR "\n";
$input;
}
END { system('stty sane') }
$hfax->quot("USER", $USERNAME);
if (check(331))
{
$PASSWD ||= noecho "Password";
$hfax->quot("PASS", $PASSWD);
check;
}
$ADMIN ||= noecho "Admin Password" if $opt_a;
$hfax->quot("ADMIN",$ADMIN) if $ADMIN; check;
$hfax->binary; check;
my $job;
for $job (@ARGV) # each job
{
my @docs;
my $cx = $hfax->retr("doneq/q$job"); check;
while(<$cx>)
{
push(@docs,$2) if (/^!?(postscript|tiff):.*(docq.*)$/);
}
$cx->close; check;
$hfax->quot("JOB",$job); check;
$hfax->quot("JNEW"); check;
for(@docs)
{
$hfax->quot("JPARM","DOCUMENT","$_"); check;
}
# poke job's sendtime and killtime
$hfax->quot("JPARM", "SENDTIME", "NOW"); check;
$hfax->quot("JPARM", "LASTTIME", "000259"); check;
$hfax->quot("JSUBM"); check;
my ($jobno)= $hfax->message =~ /Job (\d+)/;
print STDERR "Job $jobno submitted as clone of job $job\n";
}