Tutti i file che riguardano la configurazione di Hylafax stanno nella cartella :file:/var/spool/hylafax`
Alla fine di ogni ricezione viene eseguito direttamente da hylafax il comando bin/faxrcvd che ha il seguente usage:
Usage: $0 file devID commID error-msg [ callID-1 [ callID-2 [ ... [ callID-n ] ] ] ]
e che definisce le variabili FILE, DEVICE, COMMID, MSG ed ad esempio si traduce in:
bin/faxrcvd "recvq/fax000000235.tif" "ttyS1" "000000509" "" "" ""
Per una scelta passata che non comprendo di usa solo $COMMID e si recupareno le atre informazioni dai file di log:
sudo bin/django hyla_notify --in $COMMID
che per esempio potrebbe essere:
sudo bin/django hyla_notify --in C000001745
Analogamente per fax inviati aggiungeremo la riga in bin/notify che ha uno usage:
Usage: $0 qfile why jobtime [nextTry]
e definisce rispettivamente le variabili QFILE, WHY, JTIME, aggiungeremo quindi:
QUEUE_FILE=$1
EXIT_CODE=$2
sudo bin/django hyla_notify --out $QUEUE_FILE -x $EXIT_CODE
che per esempio potrebbe essere:
sudo bin/django hyla_notify --out doneq/q11 -x done
Passato da bin/notify (solo fax inviati) può essere:
django deve leggere file di log di hylafax (user uucp) e scrivere sui file di log di django (user www-data). La cosa più semplice è di usare sudo come root:
grep django /etc/sudoers
uucp ALL= (root) NOPASSWD: /home/www/office.cogema.it/bin/django
Installazione server su macchina debian
apt-get install hylafax-server hylafax-client
nelle ultime versioni hylafax deve essere configurato nella directory /etc/hylafax e quando viene poi attivato o riavviato il servizio uno script sincronizza la configurazione nella dir /var/spool/hylafax/etc dove poi effettivamente lavorera’ il processo
Definizione del modem IAX in /etc/hylafax/config.ttyIAX1:
CountryCode: 39
AreaCode: 02
FAXNumber: NUMERO_TEL
LongDistancePrefix: 0
InternationalPrefix: 0
DialStringRules: dialrules.europe
ServerTracing: 1
SessionTracing: 0xFFF
RecvFileMode: 0600
LogFileMode: 0600
DeviceMode: 0600
RingsBeforeAnswer: 1
SpeakerVolume: off
GettyArgs: "-h %l dx_%s"
LocalIdentifier: NOME_AZIENDA
TagLineFont: lutRS18.pcf
TagLineFormat: "From %%l|%c|Page %%P of %%T"
MaxRecvPages: 25
PagerTTYParity: none
Class1AdaptRecvCmd: AT+FAR=1
CallIDPattern: "NMBR="
CallIDPattern: "NAME="
CallIDPattern: "ANID="
CallIDPattern: "NDID="
per poter tenere sempre attivo il servizio controllo fax sul device iax conviene aggiungere in inttab il seguente comando
m1:2345:respawn:/usr/sbin/faxgetty ttyIAX1
per poi farlo caricare runtime
init q
quindi riavviare il servizio
/etc/init.d/hylafax
Installazione del modem iax
apt-get install iaxmodem
configurazione del device in /etc/iaxmodem/iaxmodem-cfg.ttyIAX1
device /dev/ttyIAX1
owner uucp:uucp
mode 666
port 4569
;refresh 50
server IP_SERVER_ASTERISK
peername modem1
secret mod890
codec slinear
per poter tenere sempre attivo il servizio del device conviene aggiungere in inttab il seguente comando
IAX1:2345:respawn:/usr/bin/iaxmodem iaxmodem-cfg.ttyIAX1
per poi farlo caricare runtime
init q
Nel server asterisk si dovra’ poi configurare l accesso del server fax attraverso IAX
in /etc/asterisk/dialplan/iax_modem.conf
[modem](!)
requirecalltoken=no
type=friend
disallow=all
allow=slin
allow=alaw
host=dynamic
port=4569
context=fax-out
[modem1](modem)
username=modem1
secret=mod890
in /etc/asterisk/dialplan/extension_in.conf
[from-pstn-]
exten => NUMERO_FAX,1,Goto(from-fax,fax1,1)
[from-fax]
exten => fax1,1,NoOp(FAX in - fax1)
exten => fax1,n,Answer
exten => fax1,n,Dial(IAX2/modem1)
[fax-out]
exten => _X.,1,Set(CALLERID(num)=NUMER_FAX)
exten => _X.,n,Dial(SIP/patton-bri1/${EXTEN})
Controllo stato fax
faxstat
Invio fax di prova:
sendfax -n -d NUMERO_DI_TEL /etc/issue.net
Verifica dei fax inviati dal log di hylafax
tail -f /var/spool/hylafax/log/xferfaxlog