Newsgroup: it.comp.os.linux.sys
Titolo: Asterisk e fax

Ciao a tutti,
 
 
a poche ore dalla partenza per le ferie, ho deciso di provare a giocare un 
po' con i fax in Asterisk.
 
Ho aggiunto questa macro nel dialplan:
 
[macro-fax]
exten=> s,1,NoOp(Incoming fax)
same=> n,Set(FAXDEST=/tmp)
same=> n,Set(tempfax=${STRFTIME(,,%C%y%m%d%H%M)})
same=> n,StopPlaytones
same=> n,ReceiveFax(${FAXDEST}/${tempfax}.tif)
same=> n,Verbose(Fax receipt completed with status: ${FAXSTATUS})
same=> n,System(echo | /usr/local/bin/convertTif2Pdf.sh 
${FAXDEST}/${tempfax}.tif ${FAXDEST}/${tempfax}.pdf)
same=> n,System(echo | /usr/local/bin/sendFax2Mail.php 
in...@ors.it
 
${CALLERID(num)} ${FAXDEST}/${tempfax}.pdf)
same=> n,Hangup()
 
Ma ottengo sempre uno "status: FAILED" dopo ad un "Dropping incompatible 
voice frame...":
 
Executing [s@macro-fax:1] NoOp("SIP/7", "Incoming fax ") in new stack
Executing [s@macro-fax:2] Set("SIP/7", "FAXDEST=/tmp") in new stack
Executing [s@macro-fax:3] Set("SIP/7", "tempfax=201608191055") in new stack
Executing [s@macro-fax:4] StopPlayTones("SIP/7", "") in new stack
Executing [s@macro-fax:5] ReceiveFAX("SIP/7", "/tmp/201608191055.tif") in 
new stack
Channel 'SIP/7' receiving FAX '/tmp/201608191055.tif'
NOTICE[26729]: channel.c:4170 __ast_read: Dropping incompatible voice frame 
on SIP/7.Netvalue-0173620211-00000039 of format ulaw since our native format 
has changed to 0x2 (gsm)
Executing [s@macro-fax:6] Verbose("SIP/7", "Fax receipt completed with 
status: FAILED") in new stack
Fax receipt completed with status: FAILED
Executing [s@macro-fax:7] System("SIP/7", "echo | 
/usr/local/bin/convertTif2Pdf.sh /tmp/201608191055.tif 
/tmp/201608191055.pdf") in new stack
Executing [s@macro-fax:8] System("SIP/7", "echo | 
/usr/local/bin/sendFax2Mail.php 
in...@ors.it
  /tmp/201608191055.pdf") in new 
stack
Executing [s@macro-fax:9] Hangup("SIP/7", "") in new stack
 
Qualche idea?
 
 
Ciao, 
  Void

... tra l'altro la cosa strana è che a volte, nonostante il FAIL ricevo 
comunque il file TIFF, ma questi non vengono convertiti e spediti.
 
Infine ho provato anche ad utilizzare il riconoscimento automatico dei fax 
con l'opzione "faxdetect=yes" nel sip.conf e ad aggiungere queste righe 
all'extensions.conf nella sezione [Default], ma ho l'impressione che vengano 
bellamente ignorate:
 
exten => fax,1,NoOp(Incoming fax)
exten => fax,n,Set(FAXDEST=/tmp)
exten => fax,n,Set(tempfax=${STRFTIME(,,%C%y%m%d%H%M%S)})
exten => fax,n,ReceiveFax(${FAXDEST}/${tempfax}.tif)
exten => fax,n,Verbose(Fax receipt completed with status: ${FAXSTATUS})
exten => fax,n,System(echo | /usr/local/bin/convertTif2Pdf.sh 
${FAXDEST}/${tempfax}.tif ${FAXDEST}/${tempfax}.pdf)
exten => fax,n,System(echo | /usr/local/bin/sendFax2Mail.php 
in...@ors.it
 
${CALLERID(num)} ${FAXDEST}/${tempfax}.pdf)
exten => fax,n,Busy
 
...
 
 
Ciao,
  Void

 same=> n,Verbose(3,Fax receipt completed with status: ${FAXSTATUS})
 
Quello che trovo strano è che la ReceiveFax si pianti:
 
Spawn extension (macro-fax, s, 5) exited non-zero on 'SIP/7' in macro 'fax'
 
... anche se il fax è stato salvato correttamente in un file TIFF. 
Piantandosi però non vengono eseguite le righe successive che convertono in 
PDF e spediscono via mail... :-/
 
 
Ciao,
  Void

> > same=> n,Verbose(3,Fax receipt completed with status: ${FAXSTATUS})
 
Che valore ha FAXSTATUS?
 
Le mie reminscenze di fax+Asterisk sono piuttosto remote, ma mi ricordo che se non usavi il modulo closed source Digium per il T.38, c'era da bestemmiare parecchio.

 Che valore ha FAXSTATUS?
 
Sembra che non arrivi neanche lì, ma che vada in errore alla riga precedente 
(ReceiveFax): "exited non-zero".
 
Oggi non sono poi riuscito ad approfondire più di tanto e mi sa che a questo 
punto rimanderò al ritorno dalle ferie.
 
 
Ciao e grazie,
  Void

 po' con i fax in Asterisk.
 
Mai fatto, ma sono curioso. Asterisk 11+, immagino, vero?
 
Leggendo:
 
https://wiki.asterisk.org/wiki/display/AST/Asterisk+11+Application_ReceiveFAX_res_fax
 
 
io farei:
 
	same=> n,ReceiveFax(${FAXDEST}/${tempfax}.tif, d)
 
tanto per cominciare... ;-)))
 
-- 
  Le persone ti pesano? Non metterle sulle tue spalle.
  Portale nel cuore.				(Don Helder Camara)

 same=> n,ReceiveFax(${FAXDEST}/${tempfax}.tif, d)
 
Executing [s@macro-fax:5] ReceiveFAX("SIP", "/tmp/20160907125550.tif, d") in new stack
Channel 'SIP' receiving FAX '/tmp/20160907125550.tif'
NOTICE[14228]: channel.c:4170 __ast_read: Dropping incompatible voice frame on SIP of format ulaw since our native format has changed to 0x2 (gsm)
Using UDPTL CoS mark 5
 
Il file TIFF ricevuto mi sembra perfetto, ma la macro non procede con le operazioni successive, né la ReceiveFAX restituisce un errore o altre informazioni:
 
same=> n,Verbose(3,Fax receipt completed with status: ${FAXSTATUS})
same=> n,System(/usr/local/bin/convertTif2Pdf.sh ${FAXDEST}/${tempfax}.tif ${FAXDEST}/${tempfax}.pdf)
same=> n,System(/usr/local/bin/sendFax2Mail.php 
in...@ors.it
 ${CALLERID(num)} ${FAXDEST}/${tempfax}.pdf)
same=> n,Hangup()
 
 
Ciao e grazie,
  Void

 (gsm) Using UDPTL CoS mark 5
 
... dimenticato un pezzetto... :-/
 
== Spawn extension (macro-fax, s, 5) exited non-zero on 'SIP' in macro 'fax'
== Spawn extension (default, *****, 7) exited non-zero on 'SIP'
 
 
Void

 Using UDPTL CoS mark 5
 
ma a debug e verbose 99?
 
-- 
  Raramente chi spara cazzate finisce subito le munizioni.
							(Anonimo)