Iaxmodem
Iaxmodem e` un soft modem che parla IAX da un lato ed espone una seriale virtuale dall'altro. Permette ad esempio (ma non solo) di usare Hylafax abbinato ad Asterisk senza alcun modem fisico. Iaxmodem funziona al meglio se Asterisk e` connesso a una linea ISDN esterna (non voip) e se iaxmodem e` installato sullo stesso host di Asterisk. Questo perche` iaxmodem soffre moltissimo il jitter, e quindi meno segmenti di rete ci sono in mezzo meglio e`.
Installazione
Basta installare il pacchetto con apt-get install iaxmodem
Configurazione
Se si vuole avere piu` di una istanza di iaxmodem (per avere piu` di una linea modem attiva contemporaneamente) occorre creare divesi files di configurazione dentro a /etc/iaxmodem/. Questo esempio e` per una sola linea.
* creare il file /etc/iaxmodem/iaxmodem-cfg.ttyIAX e metterci dentro la configurazione come segue:
device /dev/ttyIAX owner uucp:uucp mode 660 port 4570 refresh 60 server 127.0.0.1 peername iaxmodem secret iaxmodem cidname Fax cidnumber 051123456 codec alaw
* creare una configurazione adeguata dentro a /etc/asterisk/iax.conf, come segue:
; IAXMODEM su localhost [iaxmodem] type=friend ;host=127.0.0.1 host=dynamic port=4570 context=interni secret=iaxmodem requirecalltoken=no disallow=all allow=alaw
* creare in asterisk le opportune regole di chiamata in extensions.conf, in modo da poter ricevere e fare chiamate da iaxmodem. Per esempio, si puo` configurare l'ingresso delle chiamate con un exten => 324,1,Dial(iax2/iaxmodem/${EXTEN}) e l'uscita funziona da sola, se, come nel mio esempio, iaxmodem e` stato configurato nel context interni (il quale contiene i telefoni interni che possono ovviamente chiamare fuori).
* ricaricare la config di asterisk con iax2 reload e riavviare iaxmodem con /etc/init.d/iaxmodem restart
* A questo punto avete una seriale virtuale /dev/ttyIAX che potete accedere con qualsiasi terminale (minicom per esempio) sulla quale vi risponde iaxmodem, che si comporta come un classico modem con comandi AT.
Configurazione di Hylafax
La config di esempio e` presente nella documentazione di iaxmodem. Io l'ho presa e leggermente adattata, ma solo per quanto riguarda la parte di regole di dial, numeri di telefono, eccetera. Non ho toccato la parte del modem vero e proprio. Questa e` la configurazione che ho usato, chiamate ovviamente config.ttyIAX, copiata dentro a /etc/hyalafax. Di fatto e` come una qualsiasi configurazione di un modem per hylafax.
# configurazione per iaxmodem CountryCode: 39 AreaCode: 051 FAXNumber: +39.051.123456 LongDistancePrefix: 0 InternationalPrefix: 00 DialStringRules: etc/dialrules.europe ServerTracing: 0xFFF SessionTracing: 0xFFF RecvFileMode: 0660 LogFileMode: 0640 DeviceMode: 0600 RingsBeforeAnswer: 1 SpeakerVolume: off GettyArgs: "-h %l dx_%s" LocalIdentifier: "Nome azienda" TagLineFont: etc/lutRS18.pcf TagLineFormat: "From %%l|%c|Page %%P of %%T" MaxRecvPages: 200 ModemType: Class1 # use this to supply a hint Class1AdaptRecvCmd: AT+FAR=1 Class1TMConnectDelay: 400 # counteract quick CONNECT response ModemResetCmds: AT+VCID=1 # enables CallID display PagerTTYParity: none
Nota importante per Hylafax
Per evitare che hylafax parta prima che iaxmodem abbia creato la sua com virtuale, e` meglio modificare il file /etc/init.d/hylafax aggiungendo la voce "iaxmodem" alla riga "Required-Start", e poi dare il comando insserv hylafax. Questo fara` si` che la sequenza di init lanci iaxmodem prima di hylafax. Se ancora non bastasse, si puo` mettere un breve sleep nel file di init di hylafax che lo ritardi di qualche secondo.