Realizzazione di un faxserver web-based

Introduzione
Vediamo come realizzare un faxserver con interfaccia web basato su Hylafax e Avantfax. Come hardware non serve nulla di eccezionalmente potente, anche un vecchio Pentium III 600 va benissimo per compiere questo tipo di lavoro. Per quanto riguarda il modem, conviene utilizzare uno di quei vecchi modem esterni seriali, visti i problemi di configurazione di quelli PCI. Come sistema operativo, ovviamente, useremo Debian, nello specifico la versione 5.

Preconfigurazione del sistema
Impostiamo alcuni parametri base per il nostro sistema. Cominciamo col settare correttamente il nome del nostro host.

nano /etc/hostname
    fax.ced.local 
nano /etc/hosts
    127.0.0.1       localhost.localdomain   localhost
    192.168.0.16  fax.ced.local              fax

Ora passiamo con il setup dei repository per il download dei pacchetti software che andremo ad installare sul nostro sistema.

nano /etc/apt/sources.list
    deb http://mi.mirror.garr.it/mirrors/debian/ lenny main contrib non-free
    deb-src http://mi.mirror.garr.it/mirrors/debian/ lenny main contrib non-free
    deb http://security.debian.org/ lenny/updates main contrib non-free
    deb-src http://security.debian.org/ lenny/updates main contrib non-free
    deb http://volatile.debian.org/debian-volatile lenny/volatile main contrib non-free
    deb-src http://volatile.debian.org/debian-volatile lenny/volatile main contrib non-free
apt-get update
apt-get upgrade

Installiamo il pacchetto ntpdate per tenere sincronizzato l’orologio di sistema.

apt-get install ntpdate
ntpdate server it.pool.ntp.org

Installazione di Hylafax
Ora possiamo passare all’installazione vera e propria del nostro faxserver. Installiamo Hylafax ed alcuni pacchetti di corredo, necessari per il corretto funzionamento di tutto il sistema.

apt-get install hylafax-server xfig libfreetype6-dev gv gsfonts-x11

Configurazione dei parametri fax
Ora possiamo configurare le impostazioni fax. Durante questa fase verrà rilevato il modem. Può capitare che esso supporti la tipologia Class 2, in ogni caso conviene utilizzare la tipologia Class 1.

faxsetup
    Country code [1]? 39
    Area code [415]? 091
    Phone number of fax modem [+1.999.555.1212]? +39.091.12345678
    Local identification string (for TSI/CIG) ["NothingSetup"]? FaxServer
    Long distance dialing prefix [1]? 0
    International dialing prefix [011]? 00
    Protection mode for received facsimile [0600]? 0644
    Protection mode for session logs [0600]? 0644
    Protection mode for ttyS0 [0600]? 0666
    Rings to wait before answering [1]? 1
    Modem speaker volume [off]? quiet
    This modem looks to have support for Class 1 and 2.
    How should it be configured [1]? 1
    Do you want to run faxaddmodem to configure another modem [yes]? no

Consentiamo l’accesso al servizio fax alla nostra LAN e creiamo due utenti, uno standard ed uno con privilegi di amministratore, quindi riavviamo il sistema.

nano /etc/hylafax/hosts.hfaxd
    192\.168\.0\.:::
faxadduser -u 100 user
faxadduser -a password -p password -u 100 admin

Installazione di MySQL, Apache e PHP5
Dato che stiamo creando un sistema con la possibilità di utilizzarlo tramite interfaccia web, ovviamente necessitiamo di un server web con supporto php. Occorre avere anche a disposizione anche un database mysql sul quale verranno memorizzati gli utenti e i dati dei fax.

apt-get install apache2-mpm-prefork apache2-utils apache2.2-common \
libapache2-mod-php5 libapr1 libaprutil1 libsqlite3-0 php5-cli php5-common \
mysql-server imagemagick libtiff4-dev netpbm libnetpbm10-dev libungif-bin \
libungif4-dev sudo postfix php-mail php-mail-mime php-file php-db php5-mysql \
psutils wdiff

Quando richiesto dal gestore pacchetti, inseriamo un password di rotto per MySQL e configuriamo Postfix come Internet site con smarthost.

Installazione di AvantFAX
La nostra interfaccia web sarà fornita da AvantFAX, uno delle tante interfaccie web per Hylafax.
Effettuiamo il download dei sorgenti e rendiamo accessibili le pagine di visualizzazione/gestione tramite il nostro webserver.

cd /usr/src
wget http://easynews.dl.sourceforge.net/sourceforge/avantfax/avantfax-2.3.0.tgz
tar zvxf avantfax-2.3.0.tgz
cd avantfax-2.3.0
mv /usr/src/avantfax-2.3.0/avantfax /var/www/
chmod -R 777 /var/www/avantfax/tmp /var/www/avantfax/faxes

Configurazione di AvantFAX
Per poter usare AvantFAX, occorre apportare delle modifiche a dei binari forniti con Hylafax

cd /var/spool/hylafax/bin
mv faxrcvd faxrcvd.old
mv notify notify.old
ln -s /var/www/avantfax/includes/faxrcvd.php /var/spool/hylafax/bin/faxrcvd
ln -s /var/www/avantfax/includes/notify.php /var/spool/hylafax/bin/notify
mv /usr/bin/faxcover /usr/bin/faxcover.old
ln -s /var/www/avantfax/includes/faxcover.php /usr/bin/faxcover

Passiamo alla popolazione del database MySQL che useremo per memorizzare le informazioni degli utenti e dei fax ricevuti. Usiamo lo script fornito con i sorgenti.

cd /usr/src/avantfax-2.3.0/
nano create_tables.sql
USE avantfax;

Correggiamo nello script per il setup, l’utente legato ai processi di Apache, quindi lanciamo lo script appena modificato

nano setup.sh
chown -R www-data.www-data $INSTDIR
./setup.sh
crontab -e
    # runs once an hour to update the phone book
    0 * * * * /var/www/avantfax/includes/phb.php
    # runs once a day to remove old files
    0 0 * * * /var/www/avantfax/includes/remold.php

Configurazione di Apache
Per rendere possibile l’accesso all’interfaccia di AvantFAX occorre modificare il seguente file di Apache così come riportato di seguito.

nano /etc/apache2/sites-enabled/000-default
    NameVirtualHost *:80
    <VirtualHost *:80>
    ServerAdmin porkyhttp@ced.local

    DocumentRoot /var/www/avantfax
    <Directory />
    Options FollowSymLinks
    AllowOverride None
    </Directory>
    <Directory /var/www/avantfax>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride None
    Order allow,deny
    allow from 192.168.0.0/255.255.255.0
    </Directory>

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
    AllowOverride None
    Options ExecCGI -MultiViews +SymLinksIfOwnerMatch
    Order allow,deny
    allow from 192.168.0.0/255.255.255.0
    </Directory>

   # Possible values include: debug, info, notice, warn, error, crit,
   # alert, emerg.
   LogLevel warn

   CustomLog /var/log/apache2/access.log combined
   ServerSignature On
   Alias /phpmyadmin "/usr/share/phpmyadmin/"
   <Directory "/usr/share/phpmyadmin/">
   Options Indexes MultiViews FollowSymLinks
   Order allow,deny
   allow from 192.168.0.0/255.255.255.0
   </Directory>
   </VirtualHost>

Riavviamo Apache per rendere effettive le modifiche appena apportarte.

/etc/init.d/apache2 restart

Creazione degli utenti su AvantFAX
Ora possiamo loggarci su AvantFAX con admin ed aggiungere il modem che abbiamo configurato precedentemente su Hylafax, aggiungere un utente ed assegnargli il modem appena inserito, quindi riavviare il sistema.

Go to http://<yourIP>/admin.
Log in using:  afadmin / password.

Configure your modems. For /dev/ttyS2, use ttyS2.

Ultimi ritocchi
Prima di poter utilizzare il sistema, occorre sistemare alcuni files che non vengono automaticamente copiati dove dovrebbero, avviare il demone hylafax per verificare che tutti i file si trovino nelle directory corrette. Se è tutto ok e non riceviamo messaggi di errore, procediamo al riavvio del sistema e procediamo al login mediante l’utente creato in precedenza. Da questo punto siamo pronti per la ricezione dei fax sul nostro sistema.

cp -r /var/spool/hylafax/etc/config /etc/hylafax/config
cp /var/spool/hylafax/etc/config.ttyS0 /etc/hylafax/config.ttyS0
/etc/init.d/hylafax start
reboot
  • Facebook
  • Google Bookmarks
  • Windows Live Favorites
  • LinkedIn
  • Delicious
  • Hotmail
  • Twitter
  • Windows Live Spaces
  • Yahoo Bookmarks
  • Yahoo Messenger
  • Share/Bookmark
  1. 8 febbraio 2010 a 9:13 | #1

    salve,
    attualmente utilizzo nel mio ufficio hylafa+avantfax su piattaforma Centos. Avantfax funaizona correttamente ma non riesco a notificare i fax via email. Ho letto la sua guida e vorrei passare nuovamente a Debian (prima utilizzavo tale piattaforma) e vorrei sapere se è possibile avere qualche indicazione in più in merito alla notifica via mail dei fax ricevuti.
    In attesa di un Suo cortese riscontro, porgo cordiali saluti.
    Avv. Andrea Meraldi

  2. Marco
    16 febbraio 2010 a 15:58 | #2

    x Andrea,
    Salve io ho un faxserver installato su centos che funziona benissimo, notifica compresa.
    Dall’interfaccia di amministrazione di avantfax deve configurare la mail di destinazione nella configurazione del modem.
    Verifichi selinux se attivo.

    Saluti.

  3. Andrea
    25 febbraio 2010 a 11:38 | #3

    Salve , dato che sto uscendo pazzo chiedo se qualcuno ha una dritta.
    Centos + hylafax + avantfax 3.1.6 perfettamente funzionante..
    ho creato una cover personalizzata con tgif e make_faxcover
    NON RIESCO a cambiare il formato data nella cover, per intenderci, non
    quella in alto sopra a tutta la cover (che non mi interessa) , ma quella all’ interno della cover stessa quella sulla variabile todays-date…
    ho provato a decommentare la riga relativa in hyla.conf ma nulla da fare….
    c’e’ qualche altro file di conf per settare il formato della data nella cover..
    vi ringrazio in anticipo..

  4. Andrea
    26 marzo 2010 a 7:25 | #4

    @Marco
    ciao, grazie per la risposta. Il fatto è che quella configurazione l’ho già fatta ma non mi viene notificato nulla.Selinux è disattivato.
    Hai qualche altra idea? grazie
    andrea

  5. Andrea
    26 marzo 2010 a 9:18 | #5

    ciao, ho seguito la tua quida ed ho installato hylafax e avantfax su debian Lenny ma ho il seguente problema. Quando, dal borwser, digito l’IP della macchina )ossia del server fax) mi ritorna il seguente messaggio:
    You don’t have permission to access /admin on this server.
    Apache/2.2.9 (Debian) PHP/5.2.6-1+lenny8 with Suhosin-Patch mod_python/3.3.1 Python/2.5.2 mod_perl/2.0.4 Perl/v5.10.0 Server at 192.168.2.101 Port 80

    puoi aiutarmi?
    ciao
    andrea

  1. 11 agosto 2009 a 18:53 | #1

Spam Protection by WP-SpamFree