Voici quelques notes pour l’installation d’un serveur de fax

  • Contraite : Serveur, carte modem et ligne fax
  • Système d’exploitation : Ubuntu 14.04 LTS
  • Source : http://alternsofts.blogspot.fr/2014/09/tutoriel-hylafax.html
  • Etat : Terminé

Plan

Plan_FAX

Tutoriel HylaFAX et Avantfax

 Préambule

Avant toute installation, il faut vérifier si le modem série est bien reconnu par Debian. Voir dans les fichiers de log.

Installation des packages Debian

# apt-get install hylafax-server ntp

Paramétrage du modem
Il nous faut lancer :

#faxsetup


HylaFAX configuration parameters are:

Shell

Phone number of fax modem [+1.999.555.1212]?
Répondre 0241966873
Local identification string (for TSI/CIG) [« NothingSetup »]?
Répondre
Long distance dialing prefix [1]?
Répondre 00
International dialing prefix [011]?
Répondre 00

Débogage

Voici un utilitaire pour le débogage

Shell

Les commandes

Shell

 AvantFax

Avantfax est une interface de gestion de fax Web.

Installation

Shell

Paramétrage

Shell

Mail vers FAX

Serveur de messagerie

#apt-get install postfix

Le  fichier « /etc/postfix/main.cf »

Shell

Le fichier « /etc/postfix/master.cf »

Shell

En cas de problème avec le script, la ligne du dessus peut être réactivée.

Le programme « myattachement.pl »

Ce programme permet d’extraire la pièce jointe d’un message  et de l’envoyer au destinataire. Car les utilitaires fournis envoyaient le corps du message même si celui-ci était vide.En cas de problème, il faut activer le mode debug à 1 dans le fichier.

Plain Text

#Destinataire
chomp($to);
my @value = split(‘@’,$to);
$telephone=$value[0];
$path_temp = $parser->output_dir();

#Variable de test
$checkTypePj = 0;
$checkNbPj = 0;
my $bhpath = «  »;

#Le corps du Chri .. message
if ($entity->parts > 0){

if( $dbg eq « 1 »){
&logger(« Fonction parsing du message OK »);
}

for ($i=0; $i<$entity->parts; $i++){

$subentity = $entity->parts($i);

foreach $x (@attypes){
if ($subentity->mime_type =~ m/$x/i){
my $bh = $subentity->bodyhandle;
#Path de la PJ
$bhpath = $subentity->bodyhandle->path;
#print $bhpath. »\n »;
$checkTypePj = 1;
$checkNbPj = $checkNbPj + 1;
}
}
}
}

### CONTROLES
# Si Pas de PJ
if ( $checkTypePj !=1 )
{
#Message dans dbg
if( $dbg eq « 1 »){
&logger(« Pas de piece jointe pour $telephone »);
}
}

if ( $checkNbPj > 1 )
{
#Message dans dbg
if( $dbg eq « 1 »){
&logger(« Fonction nombre de piece jointe invalide pour $telephone »);
}
}

#C’est OK on converti et on envoie
# Le nombre piece et bon et le type est bon
if (( $checkNbPj == 1) && ( $checkTypePj == 1  ))
{
$path_pdf=$bhpath;
$path_ps=$path_temp. »/ ».$telephone. ».ps »;

#Message dans dbg
if( $dbg eq « 1 »){
&logger(« Conversion de la piece jointe pour $telephone »);
}

#Conversion
$conversion =  « /usr/bin/pdf2ps $path_pdf $path_ps »;
system $conversion;

#Envoie
$commandes =  « /usr/bin/sendfax -n -d $telephone $path_ps »;

#Message dans dbg
if( $dbg eq « 1 »){
&logger(« Envoi du Fax & $telephone »);
}

system $commandes;
}

#Debug
#$entity->dump_skeleton;
eval { $entity = $parser->parse(\*STDIN) };
$parser->filer->purge;

#Sortie standard
exit 0;