==== 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.