|
G A C E T A D E L I N U X
...haciendo a Linux un poco más divertido! |
|
Visualizando Faxes en la Web
Por Mark Nielsen Traducción al español por Juan Carlos Orrego Diaz
|
Para mi configuración, yo use efax, que no es muy fácil de conseguir. Para cualquier persona, yo recomiendo HylaFax o alguna otra alternativa (mgetty tiene alguna esperanza).
Por favor lean mi otro artículo de faxes en Linux Focus.
Tengo un directorio, /usr/local/apache2/htdocs/fax, donde coloqué mi script de Perl y los archivos .htaccess.
Bajo este directorio, tengo otros subdirectorios:
AuthName Test AuthType Basic AuthUserFile /usr/local/apache2/passwords/Passwords order deny,allow require user mark ted
Puede cambiar/agregar passwords con htpasswd.
Luego, lo siguiente a hacer es crear el script de Perl. Aqui está mi script de Perl básico. Si en algú momento hago algo más con él, lo convertiré en un script de Python, dado que Python es la nueva ola para la programación (eso espero). Python, Zope, Apache, Linux, y PostgreSQL son las elecciones principales para mi ambiente de programación. Guardelo como "fax.pl" y ejecute un "chmod 755 fax.pl" despues de guardarlo.
Usted puede descargarlo o simplemente verlo a continuación.
#!/usr/bin/perl
use CGI;
print "Content-type: text/html\n\n\n";
my $Home = "/usr/local/apache2/htdocs/fax";
my $Source = "$Home/source";
my $Archives = "$Home/archives";
my $AB_Archives = "$Home/ab";
my $Display = "$Home/display";
my $Home_Archives = "$Home/home";
`mkdir -p $Source`;
`mkdir -p $Archives`;
`mkdir -p $Display`;
`rsync -av /var/spool/fax/incoming/fax* $Source`;
`mkdir -p $AB_Archives`;
#------------------------------------
my @Files = <$Source/fax*>;
foreach my $File (@Files)
{
# imprimir "$File\n";
my (@Temp) = split(/\//, $File);
my $File_Name = pop @Temp;
if (!(-e "$Archives/$File_Name\.pdf"))
{
print "<br>Procesando nuevo fax: $File\n";
my $Command = "tiff2ps $File > $Archives/$File_Name\.ps";
# imprimir "$Command\n";
`$Command`;
my $Command = "/usr/bin/ps2pdf $Archives/$File_Name\.ps $Archives/$File_Name\.pdf";
# imprimir "$Command\n";
`$Command`;
`cp $Archives/$File_Name\.pdf $Display/$File_Name\.pdf`;
}
}
#---------------------------------------
my $query = new CGI;
my $Action = $query->param('action');
my $File = $query->param('file');
$File =~ s/[^a-zA-Z0-9\_\.]//g;
if (!(-e "$Display/$File")) {}
elsif ($Action eq "archive")
{
print "<br>Archivando $File\n";
`rm -f $Display/$File`;
}
elsif ($Action eq "archive2")
{
print "<br>Archivando $File\n";
`cp $Display/$File $AB_Archives/`;
`rm -f $Display/$File`;
}
elsif ($Action eq "archive_home")
{
print "<br>Archivando $File\n";
`cp $Display/$File $Home_Archives/`;
`rm -f $Display/$File`;
}
print qq(<hr><a href="archives/">Archivos</a> -- puede estar protegido por contraseña.
<br><a href="home/">Archivos de Home</a> -- puede estar protegido por contraseña.
<br><a href="ab/">Archivos de Audioboomerang</a>\n);
my $Table_Entries = "";
my @Files = <$Display/fax*>;
foreach my $File (sort @Files)
{
my (@Temp) = split(/\//, $File);
my $File_Name = pop @Temp;
my $Link = "<a href='display/$File_Name'>$File_Name</a>";
my $Delete = "<a href='fax.pl?action=archive&file=$File_Name'>archivar</a>";
my $AB ="<a href='fax.pl?action=archive2&file=$File_Name'>archivar a AB</a>";
my $Home ="<a href='fax.pl?action=archive_home&file=$File_Name'>archivar para Home</a>";
$Table_Entries .= qq(<tr><td>$Link</td><td>$Delete</td><td>$Home</td><td>$AB</td></tr>\n);
}
print "<table border=1><tr><th>Ver Fax</th><th>Archivar Fax</th>
<th>Archivo a AudioBoomerang</th></tr>\n";
print $Table_Entries;
print "</table>\n";
if (@Files < 1) {print "<h1> No hay faxes o todos están archivados.</h1>\n";}
No estoy seguro que otras configuraciones de fax utilizan la web, pero desde mi punto de vista, siempre desearé poder tener acceso a mis faxes y enviar un fax a traves de la web.