Newsgroup: it.comp.os.linux.sys
Titolo: simulare ricezione di fax

Pensavo che per simulare l'invio di fax sarebbe sufficiente un
convert file.tiff file.fax (con imagemagick) e un
cat file.fax > /dev/modem
Purtroppo non posso ancora provare ma mi sa che manca comunque qualche 
passaggio, tipo handshakes per dialogare con il modem.
Qualcuno ha mai provato?


Anche se dall'altra parte c'è un fax a ricevere non può funzionare. 
Mancano, come hai scritto, tutti i comandi per gestire il protocollo.
Ciao
Giovanni
-- 
   A computer is like an air conditioner,
   it stops working when you open Windows.
   Registered Linux user #337974  < 
http://giovanni.homelinux.net/
 >

 Giovanni
Beh scusa ma una volta trovati questi comandi (che non credo siano così 
astrusi), è fatta no?
tipo mando su /dev/ttyS0
ciao - file fax - addio
E in teoria sono a posto?
Se qualcuno ha idea di dove cercare mi fa un favorone..

 Se qualcuno ha idea di dove cercare mi fa un favorone..
Un attimo, ragioniamo.
Tu vorresti simulare l'arrivo di un fax a quale livello?
Se a livello di linea telefonica (ossia il modem che innesca il tutto),
o ti prendi un simulatore di linea telefonica (improponibile) o utilizzi
il fax di qualcuno (magari chiedi ad un amico di inviarti un fax).
A livello di programma, e allora mi dovresti dire cosa se ne fa il
modem/fax dell'immagine in formato tiff.
In quel caso potresti utilizzare un simulatore di modem su una porta
seriale, un cavo seriale incrociato e il programma normale in ascolto su
un'altra porta, e il simulatore del modem si deve comportare proprio
come si comporterebbe il modem in caso di ricezione di un fax.
A livello di instradamento del file tra caselle di posta, dipende come
funziona il programma dei fax che hai scelto tu (non dirmelo che tanto
io non li conosco). Alla fine fanno un bel sendmail (o equivalente)
verso gli indirizzi di posta predeterminati.
Ergo la domanda: tu cosa vorresti che il modem facesse alla ricezione
via seriale del file fax?
Il tipo di operazione che hai descritto tu (handshake, fondamentale, a
parte) è più simile alla trasmissione che alla ricezione, e neanche
tanto simulata, a meno che il tuo fax non abbia una opzione di "registra
il fax nella memoria interna e rigiralo facendo finta di averlo ricevuto
dalla linea telefonica", ma mi sembrerebbe molto strano.
Luca

Luca Pascali ha scritto:

Domande più che lecite, chiarisco subito.
In realtà mi basta molto meno, per essere sicuro che hylafax non perda 
dei fax per strada vorrei semplicemente simulare l'arrivo di un fax 
sulla /dev/ttyS0.
Ora non so cosa si aspetta di preciso hylafax, però leggendo in rete mi 
pare di aver capito che il formato "fax" è simile al tiff (e imagemagick 
converte da tiff a fax).
Mi manca però qualche altro passaggio, spero di esser stato più chiaro

 Se qualcuno ha idea di dove cercare mi fa un favorone..
Devi guardare fra i comandi AT del modem.  Ci sono comandi 
specializzati per settarlo come fax. Ma ripeto ho qualche dubbio che 
sia così semplice dato che per certi comandi devi attendere la 
risposta.  Forse con un programmma come 'chat' può funzionare (ma non 
ho mai provato con i fax).


 Giovanni
Ok grazie, ma scusate la domanda stupida, perché il modem/fax non manda 
solo sulla seriale i dati??
Il lavoro con i comandi AT serve solo a lui, che gliene frega al pc di 
quello che ha fatto per rìcevere il fax??
E poi non basterebbe prelevarsi un fax mentre arriva e poi usare sempre 
quello?
Tipo cat /dev/ttyS0 > faxfile
Ma come si fa a capire però quando inizia e quando finisce di arrivare?

 Ma come si fa a capire però quando inizia e quando finisce di arrivare?
Il protocollo prevede che chi invia un fax attenda l'arrivo di un 
segnale (è un fischio che viene convertito dal modem in una stringa ed 
il riconoscimento viene attivato da un comando AT) e che serve ad 
identificare il terminale remoto come fax disposto a ricevere.  Chi 
invia deve quindi rispondere con un altro segnale (sempre un 
fischietto che viene attivato da un comando AT) per indicare al remoto 
che sta per partire il fax.  Il remoto deve predisporsi per la 
ricezione e quando è pronto invia un ACK e chi invia può 
effettivamente partire ad inviare il file.  Tieni presente che deve 
inviare una pagina alla volta e che alla fine di ogni pagina c'è uno 
scambio di segnali (sempre mediante comandi AT) per fermare la 
trasmissione e verificare se tutto è OK. Certe macchine devono anche 
finire di stampare la pagina e caricare un nuovo foglio e bloccano la 
trasmissione per qualche tempo. Alla fine il modem deve ritornare allo 
stato normale e chiudere la linea.
È solo una descrizione a grandi linee ma dovrebbe essere abbastanza 
vicina alla realtà.  Credo che se vuoi realizzare il protocollo dovrai 
scendere nei dettagli, magari facendo una ricerca in rete o studiando 
un programma.
Se invece vuoi fare dei test ti servono due macchine (entrambe con il 
programma per spedire/ricevere fax) e con i modem connessi fra di 
loro.  Io ho fatto in questo modo, è un po' difficile simulare la 
chiamata (si aspetta la correntte di chiamata), ma in 'mgetty+sendfax' 
  (che io ho usato) c'è un'opzione per forzare una risposta ed avviare 
la sequenza di scambio fax.


 Mi manca però qualche altro passaggio, spero di esser stato più chiaro
Decisamente più chiaro.
Allora
1) non devi mandare dati al modem
2) devi fare in modo che "qualcosa" mandi i dati ad hylafax facendo
finta di essere il modem
3) questo qualcosa deve simulare in tutto e per tutto un modem che
riceve un fax (magari generandolo al volo) o essere il modem stesso che
riceve effettivamente un fax (magari concordato per verificare se la
ricezione è corretta).
Sul "qualcosa" che simula il modem, puoi procedere con un sw che
comunica sulla ttyS0, un cavo seriale null-modem (incrociato) tra la
ttyS0 e la ttyS1 e hylafax in ascolto sulla ttyS1, oppure uno scatolotto
da collegare al posto del modem, ma che simuli il modem (improponibile),
oppure chiedere a qualcuno di inviarti un fax (secondo me rimane la
soluzione più semplice e più significativa) o reinviartelo tu.
Infatti, provando con il modem a ricevere un fax (avendo anche una copia
dell'originale ricevuta per altri canali) hai il riscontro che tutto
funziona (compreso l'accoppiamento tra modem e programma, che non va
sottovalutato)
Le prove non sono comunque significative se vuoi sapere se hylafax non
perda *nessun* fax, puoi solo sapere se hylafax è in grado di ricevere
fax, o se qualche volta ne può perdere uno, ma l'assenza di errori nelle
prove non significa che non ce ne saranno mai.
Quindi secondo me, la prova più significativa è inviarti (o farti
inviare) un fax reale, eventualmente simulando problemi di linea o di
trasmissione (tasto cancel del fax, o staccare il cavo del telefono
durante la ricezione, terminare hylafax). Solo in caso di problemi
rilevati, allora, puoi procedre con prove più mirate (magari solo sul sw
o solo sul modem) per capire cosa non funziona. Durante queste prove,
guarda il log del programma per capire se questo ti dice tutto o ti
nasconde qualcosa. In questo modo potrai essere ragionevolmente sicuro
se il programma ha perso alcuni fax semplicemente guardando i file di log.
Luca

 soluzione più semplice e più significativa) o reinviartelo tu.
Non conosco come funziona hylafax ma dubito che sia possibile simulare 
la trasmissione/ricezione dei fax senza il modem reale.


 Giovanni
Luca


google -> t38modem + hylafax
HTH
ciao
Stefano