Saturday, December 16, 2017 Register  Login
Visualizzazione per categorie
Categories
CreatedTitleAuthors

  
 Print   
Articolo

Fax con Asterisk: AsterFax

L'integrazione di un sistema fax (o anche la coabitazione con uno esistente) è spesso uno degli spauracchi più temuti dal system integrator che proponga soluzioni basate su Asterisk.

In questo articolo viene trattata l'installazione (per l'utilizzo è in previsione un articolo specifico) di quella che sembra essere al momento la soluzione integrata più avanzata per la gestione dei fax attraverso Asterisk: AsterFax


Caratteristiche

AsterFax è principalmente un email_to_fax gateway per la trasmissione di fax utilizzando Asterisk.
AsterFax risiede sull'Asterisk server ed opera come un traduttore in grado di convertire messaggi email in fax e viceversa.
Il fax transita sulla rete IP come messaggio email, la qual cosa elimina tutti i problemi relativi al Fax-over-IP.
L'utente può inviare fax a partire dal proprio client email preferito e viveversa riceverne nella propria mailbox.

AsterFax può tradurre un normale messaggio email in un fax. Basta semplicemente introdurre il numero di destinazione nel campo 'To', e cliccare Invia.

E' anche possibile inviare un file in allegato al messaggio email, oppure, con MS-Word o OpenOffice, si può inviare un fax direttamente dalla applicazione utilizzando la opzione 'Invia Email'. La email risultante viene inviata, dopo essere stata convertita, come fax, ed in maniera totalmente trasparente all'utente.

E' possibile avere un preview di come il fax apparirà, inviando la email allo speciale indirizzo 'preview', che semplicemente formatta il messaggio pronto per la trasmissione e poi lo ritorna indietro via email per fornirne una anteprima,

AsterFax supporta un cospicuo numero di tipi di file come Tiff, PDF, postscript, MS-Word, MS-Excel ed OpenOffice Writer.


Architettura

AsterFax poggia sui servizi offerti da Asterisk per realizzare tale Fax Gateway, e a tale scopo, richiede che Asterisk sia stato esteso integrando le applicazioni TxFax ed RxFax, e che sia stata installata la libreria spandsp.

AsterFax è scritto in puro Java ed utilizza le API dell'Asterisk Manager per sottomettere i propri jobs.

AsterFax utilizza applicazioni esterne per attuare la conversione degli attachments al formato tiff richiesto per la trasmissione.

AsterFax include un semplice SMTP gateway standalone che gestisce la ricezione di emails. AsterFax non è un complete SMTP gateway dal momento che accetta solamente messaggi che debbano essere inviati via fax.

Alternativamente AsterFax può venire integrato con un esistente SMTP server (Sendmail. Postfix, Exchange Server) tramite tools come Procmail.


Installazione

E' stata utilizzata per questa installazione una distribuzione Fedora Core 5.

Poichè notoriamente la compilazione di zaptel non è possibile coi sorgenti del kernel forniti dalla distro, tali sorgenti sono stati aggiornati preventivamente installando il pacchetto

kernel-devel-2.6.16-1.2111_FC5.

Sebbene disponibili degli RPM per Asterisk e Zaptel, entrambi sono stati installati da tarball (Asterisk 1.2.4 e Zaptel 1.2.5).
La scelta di utilizzare tale versione di Asterisk dipende dal fatto che al momento era la più recente tra quelle cui risulta possibile applicare la patch per le applicazioni RxFax e TxFax senza interventi manuali.

In pratica è stato seguito questo ordine:

  • installazione spandsp
  • scompattamento del tarball asterisk e applicazione della patch per le applicazioni RxFax e TxFax
  • applicazione della seconda seconda patch (dall' installazione di AsterFax)
  • compilazione Asterisk e suo avvio
  • impostazione ed avvio di AsterFax


Installazione di spandsp

Utilizzando un sistema RPM based come Fedora, vi è preventivamente bisogno che siano installati gli RPM libtiff, libtiff-devel, libxml2 e libxml2-devel.

Si può ottenere spandsp scaricandola con:

# wget http://www.soft-switch.org/downloads/spandsp/spandsp-0.0.2pre25/spandsp-0.0.2pre25.tar.gz

insieme ai sorgenti dei due moduli applicativi per Asterisk ed alla patch:

# wget http://www.soft-switch.org/downloads/spandsp/spandsp-0.0.2pre25/asterisk-1.2.x/apps_Makefile.patch
# wget http://www.soft-switch.org/downloads/spandsp/spandsp-0.0.2pre25/asterisk-1.2.x/app_txfax.c
# wget http://www.soft-switch.org/downloads/spandsp/spandsp-0.0.2pre25/asterisk-1.2.x/app_rxfax.c

e dopo averla scompattata da qualche parte:

# tar xvzf spandsp-0.0.2pre25.tar.gz

utilizzare l'abituale sequenza:

# ./configure
# make
# make install

per costruire la libreria.

Nota: utilizzando configure in questo modo, il software sarà installato in /usr/local.
In tal caso occorre assicurarsi che in /etc/ld.so.conf file sia presente una entry relativa a /usr/local/lib.

Ipotizzando di volere che il software sia installato, ad esempio, in /usr, occorrerebbe invece usare:

# ./configure --prefix=/usr
# make
# make install

Poi, dopo aver spostato app_rxfax.c, app_txfax.c e Makefile.patch nella directory asterisk/apps, occorre usare il comando:

# patch < apps_Makefile.patch

nella directory apps, per applicare la patch al makefile allo scopo di generare le nuove applicazioni.

Se il processo di patching va a buon fine, occorre ricompilare Asterisk (o meglio aspettare di aver applicato ancora una patch da AsterFax).


Installazione di AsterFax

Dipendenze
Prima di installare AsterFax è necessario installare e configurare un certo numero di sottosistemi dai quali AsterFax risulta dipendente:

  1. Installare Java 5
    Lo si può ottenere da http://java.sun.com/j2se/1.5.0/download.jsp in forma di RPM autoestraente (jdk-1_5_0_06-linux-i586-rpm.bin)
    # chmod a+x jdk-1_5_0_06-linux-i586-rpm.bin
    # ./jdk-1_5_0_06-linux-i586-rpm.bin
  2. Installare Ghostscript
    Nota: ghostscript può essere sostituito da qualsiasi altro tool che sia in grado di convertire un file PDF in un file Tiff. Occorre comunque modificare il PDF Converter per utilizzare tale tool alternativo.
    Il modo più semplice per ottenere Ghostscript consiste nell'usare apt-get oppure yum (o qualsiasi appropriato installer sia disponibile per la specifica distribuzione di Linux) per automatizzare l'installazione.
    # apt-get update && apt-get install ghostscript
    oppure, nel caso specifico
    # yum -y install ghostscript
  3. Installare X11, per es:
    # yum -y install  Xvfb)
  4. Installare OpenOffice 2.0, per es:
    # yum -y install openoffice.org
    AsterFax dipende da OpenOffice per convertire un esteso numero di formati (ad es. MSWord) in un file PDF. Il PDF viene poi tradotto utilizzando Ghostscript in un file Tiff pronto per la transmissione.

    AsterFax richiede la presenza di OpenOffice (versione >= 1.1, raccommendata la 2.0).

  5. Installare AsterFax - Version 1 RC 1

    E' disponibile sia come package rpm, e lo si scarica da:

    http://prdownloads.sourceforge.net/asterfax/asterfax-1.0-rc1.i386.rpm?download

    e va poi installato con:

    # rpm -i asterfax-1.0-rc1.i386.rpm)
    o come archivio di sorgenti zippato, e lo si scarica da:

    http://prdownloads.sourceforge.net/asterfax/AsterFax-1.0-rc1.zip?download

    E allora, in tal caso:

    # mkdir /usr/lib/asterfax
    # mv AsterFax-1.0-rc1.zip /usr/lib/asterfax
    # cd /usr/lib/asterfax
    # unzip AsterFax-1.0-rc1.zip
    AsterFax contiene un singolo core jar file oltre ad un set di jars di supporto.


    L' RPM installa il software in /usr/lib/asterfax per default,
    Qui vengono generate le seguenti directories:

    • config - files di configurazione
    • bin - scripts eseguibili
    • logs - i log files vengono scritti qui
    • modules - scripts per il patching di txfax.
    • test - test files
    • doc - documentazione
    • lib - jar files usati da AsterFax
    • spool - l'incoming mail viene posta in questa directory
    • tmp - tutti i files temporanei vengono creati qui

     

  6. Patchare txfax mandando in esecuzione:
    # /usr/lib/asterfax/modules/install.sh
    Lo script install.sh avvia la compilazione di asterisk dopo aver nuovamente applicato una nuova applicazione txFax e avere salvato la vecchia (il modulo) in una directory di backup.

     

  7. Riavviare Asterisk

     

  8. Copiare AsterFax.xba nella dir di OpenOffice /usr/lib/ooo-1.1/share/basic/Tools (o equivalente di OOo 2.0)

     

  9. Editare il file scripts.xlb (presente nella stessa directory) come di seguito documentato:

    Occorre configurare AsterFax per adoperare OpenOffice. AsterFax usa una Basic macro per effettuare la conversione.
    La macro richiesta risiede nel percorso bin/AsterFax.xba dell' AsterFax tree ma deve essere posta in OpenOffice per operare correttamente. Osservando all'interno della directory 'bin' sotto la quale è stato installato AsterFax (di solito /usr/lib/asterfax) si troveranno due files: ooconvert.sh ed AsterFax.xba.

    Se necessario, occorre cambiare il set dei permessi di ooconvert.sh in modo da renderlo eseguibile tramite il comando

    # chmod a+x ooconvert.sh
    Poi occorre determinare la locazione della directory lib di OpenOffice. Questa è di solito /usr/lib/ooo-1.1

    Trovata la directory /usr/lib/ooo-1.1/share/basic/Tools (o equivalente), vi si copia il file AsterFax.xba

    Poi occorre editare il file scripts.xlb presente nella stessa directory (si dovrebbe avere un contenuto simile al seguente):


    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE library:library PUBLIC "-//OpenOffice.org//DTD OfficeDocument 1.0//EN" "library.dtd">
    &ltlibrary:library xmlns:library="http://openoffice.org/2000/library" library:name="Tools"
    library:readonly="false" library:passwordprotected="false">
    &ltlibrary:element library:name="ModuleControls"/>
    &ltlibrary:element library:name="Strings"/>
    &ltlibrary:element library:name="Misc"/>
    &ltlibrary:element library:name="UCB"/>
    &ltlibrary:element library:name="Listbox"/>
    &ltlibrary:element library:name="Debug"/>
    </library:library>
    e aggiungere la linea seguente proprio prima del tag di chiusura .

    <library:element library:name="AsterFax"/>
    Se OpenOffice fosse attualmente in esecuzione si renderebbe necessario riavviarlo perchè le modifiche divengano operative.

    Nota: OpenOffice spesso è in esecuzione come background process (Quick Starter) che tuttavia deve essere riavviato.

    Se si dovessero verificare problemi con i converters di OpenOffice è possibile abilitare il debugging impostando i seguenti due valori portandoli da False a True:

    &ltAsterFax><Settings><Debug><Enabled>False</Enabled>
    &ltAsterFax><Settings><Debug><Converter>False</Converter>

    Quando abilitato, OpenOffice registrerà informazioni di debug in /usr/lib/asterfax/logs/ooconvert.log

     

  10. Eseguire ./asterfax.sh da /usr/lib/asterfax (cosa che riuscirà comunque possibile solamente dopo una configurazione iniziale)

    AsterFax usa directories del file system per accodare ed archiviare i fax.

    Sebbene il software venga rilasciato con una ragionevole configurazione di default non è possibile presumere che tale impostazione si adatti bene ad ogni ambiente.
    Per tale motivo, la procedura di installazione evita di creare le working directories necessarie.

    Le default directories che dovrebbero venire create manualmente, a meno che la configurazione non sia stata cambiata per utilizzarne altre, sono: /var/log/asterfax e /var/spool/asterfax.

    # mkdir /var/log/asterfax
    # mkdir /var/spool/asterfax
    Occorre assicurarsi che AsterFax possieda pieni privilegi su tali directories a runtime.

    Nota: Pena una esecuzione abortita, si è anche reso necessario creare manualmente due files vuoti:

    # touch /var/log/asterfax/fax
    # touch /var/spool/asterfax/fax

Author: Anonymous Anonymous
 


 

 Print   
Terms Of Use | Privacy Statement | Si Parla Di
Copyright 2007-2009 by SiParlaDi