Instalando o IAXmodem :: Admirável Mundo Novo




Muito Bem Vindo

Prezado Leitor, a proposta desse Blog é compartilhar conhecimento com as pessoas que trabalham com Linux, Asterisk, OpenSER, e com tecnologia de voz sobre a rede IP em geral, através de tutoriais, dicas, howto, notícias entre outros assuntos.

Atente para termo de uso do conteúdo do blog no rodapé da página.

sábado, 26 de julho de 2008

Instalando o IAXmodem


Instalando o IAXmodem


O IAXmodem simula um aparelho de faxmodem e faz ele disponível para o Asterisk via IAX2. Todos os passos nesse capitulo precisam ser executados como usuário root.


Para instalar o IAXmodem, precisamos de alguns pacotes adicionais do Debian, que podem ser instalados com o comando apt-get -y install g++ libtiff-tools libtiff4 libtiff4-dev.

debian:~# apt-get -y install g++ libtiff-tools libtiff4 libtiff4-dev
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut... Fertig
Die folgenden zusätzlichen Pakete werden installiert:
  g++ libjpeg62 libjpeg62-dev libtiffxx0 zlib1g-dev
 
[...]
 
Richte zlib1g-dev ein (1.2.2-4.sarge.2) ...
Richte libtiff4-dev ein (3.7.2-7) ...
 
debian:~# 



Nós entramos no diretório apropriado com o comando cd /usr/src para instalar código fonte do IAXmodem:

debian:~# cd /usr/src
debian:/usr/src# 



Os fontes do IAXmodem podem ser baixados com qualquer browser web típico a partir de http://iaxmodem.sourceforge.net (a versão usada neste exemplo é a 0.3.0). Depois de baixar o arquivo compactado, copie-o para /usr/src e descompacte-o com o comando tar -xvzf iaxmodem-0.3.0.tar.gz.

debian:/usr/src# tar -xvzf iaxmodem-0.3.0.tar.gz 
iaxmodem-0.3.0/
iaxmodem-0.3.0/iaxmodem.c
iaxmodem-0.3.0/iaxmodem.init.debian
iaxmodem-0.3.0/Makefile.in
iaxmodem-0.3.0/CHANGES
iaxmodem-0.3.0/lib/
iaxmodem-0.3.0/lib/spandsp/
iaxmodem-0.3.0/lib/spandsp/Makefile.am
 
[...]
 
iaxmodem-0.3.0/TODO
iaxmodem-0.3.0/FAQ
iaxmodem-0.3.0/build
iaxmodem-0.3.0/iaxmodem.init.fedora
debian:/usr/src#



Entre no diretório dos fontes descompactados com o comando cd iaxmodem-0.3.0:

debian:/usr/src# cd iaxmodem-0.3.0
debian:/usr/src/iaxmodem-0.3.0#


Agora compile os fontes com o comando ./configure && make:

debian:/usr/src/iaxmodem-0.3.0# ./configure && make
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for gawk... no
checking for mawk... mawk
checking whether make sets $(MAKE)... yes
checking for gcc... gcc
 
[...]
 
cc -DMODEMVER=\"0.3.0\" -DDSPVER=\"spandsp-0.0.3-snapshot-20070223+\" -D
IAXVER=\"libiax2-0.2.3-CVS-20060222+\" -Wall -g -DSTATICLIBS -DUSE_UNIX9
8_PTY -std=c99 -Ilib/libiax2/src -Ilib/spandsp/src  -c iaxmodem.c
cc -DMODEMVER=\"0.3.0\" -DDSPVER=\"spandsp-0.0.3-snapshot-20070223+\" -D
IAXVER=\"libiax2-0.2.3-CVS-20060222+\" -Wall -g -DSTATICLIBS -DUSE_UNIX9
8_PTY -std=c99 -Ilib/libiax2/src -Ilib/spandsp/src  iaxmodem.o lib/spand
sp/src/.libs/libspandsp.a lib/libiax2/src/.libs/libiax.a -o iaxmodem -lm
 -lutil -ltiff
 
[...]
 
debian:/usr/src/iaxmodem-0.3.0# 



Copie o binário resultante para o diretório /usr/bin com o comando cp iaxmodem /usr/bin/:

debian:/usr/src/iaxmodem-0.3.0# cp iaxmodem /usr/bin/
debian:/usr/src/iaxmodem-0.3.0# 



Agora podemos configurar o modem. O IAXmodem espera encontrar os arquivos de configuração em /etc/iaxmodem. Crie-o com o comando mkdir /etc/iaxmodem:

debian:/usr/src/iaxmodem-0.3.0# mkdir /etc/iaxmodem
debian:/usr/src/iaxmodem-0.3.0# 



Crie o arquivo de configuração com o comando touch /etc/iaxmodem/ttyIAX0:

debian:/usr/src/iaxmodem-0.3.0# touch /etc/iaxmodem/ttyIAX0
debian:/usr/src/iaxmodem-0.3.0# 




Esse arquivo precisa conter os seguintes parâmetros:

device

O nó do dispositivo a ser criado em /dev. Esse é o dispositivo que o Hylafax usa para se conectar ao IAXmodem. Você pode escolher qualquer nome que você desejar, mas nós preferimos aderir à convenção e assim escolher um nome de dispositivo apropriado para uma interface serial, ttyIAX0.

owner

Esse é o dono do dispositivo (na forma user:group). É melhor usar o mesmo user e group sob o qual o Hylafax roda.

port

A porta sobre a qual o IAXmodem escuta. O Asterisk usa a 4569 para escutar por conexões do IAX2, assim você precisa escolher algo diferente, por exemplo 4570.

refresh

Esse define quanto tempo o IAXmodem vai esperar entre as requisições de registros com o Asterisk. Se esse número é 0, o modem não se registra de forma alguma.

server

O endereço IP do servidor executando o Asterisk. Se esse está na mesma máquina que o IAXmodem, use o endereço do localhost 127.0.0.1.

peername

O nome sob o qual o IAXmodem se registra com o Asterisk.

secret

A senha usada para requisição de registro ao Asterisk.

codec

Oe codec usado pelo IAXmodem. Os Codec´s permitidos são alaw, ulaw e slinear. Codec´s comprimidos não são adequados para faxing; transmissões de fax são por si só comprimidas e não toleram mais compressão; e mais ainda, muitos codecs comprimidos são lossy e uma transmissão de fax não vai tolerar perdas. Isso é uma das maiores razões porque faxing sobre VoIP ainda é problemático.


Usando um editor apropriado (por. ex. vi), escrevemos a seguinte configuração no arquivo /etc/iaxmodem/ttyIAX0:

device          /dev/ttyIAX0
owner           uucp:uucp
mode            660
port            4570
refresh         50
server          127.0.0.1
peername        iaxmodem
secret          password
codec           alaw



O IAXmodem está agora configurado e pode ser iniciado. A melhor forma de fazer isso é com init. Adicione uma linha para iniciar o IAXmodem em /etc/inittab com o comando echo "IA00:23:respawn:/usr/bin/iaxmodem ttyIAX0" >> /etc/inittab:

debian:/usr/src/iaxmodem-0.3.0# echo "IA00:23:respawn:/usr/bin/iaxmodem ttyIAX0" >> /etc/inittab 
debian:/usr/src/iaxmodem-0.3.0#



O nome do dispositivo ttyIAX0 é o mesmo nome de dispositivo que foi especificado no arquivo /etc/iaxmodem.

Para receber fax, nós precisamos de um getty que escute por conexões no IAXmodem. Isso é conseguido através de uma entrada adicional no arquivo /etc/inittab. Adicione-a com o comando echo "mo00:23:respawn:/usr/sbin/faxgetty ttyIAX0" >> /etc/inittab.

mo00:23:respawn:/usr/local/sbin/faxgetty ttyIAX0



Crie um diretório de log para o IAXmodem com o comando mkdir /var/log/iaxmodem/ e os arquivos de log com o comando touch /var/log/iaxmodem/ttyIAX0 e touch /var/log/iaxmodem/iaxmodem.

debian:/usr/src/iaxmodem-0.3.0# mkdir /var/log/iaxmodem/
debian:/usr/src/iaxmodem-0.3.0# touch /var/log/iaxmodem/ttyIAX0
debian:/usr/src/iaxmodem-0.3.0# touch /var/log/iaxmodem/iaxmodem 
debian:/usr/src/iaxmodem-0.3.0#



Para fazer-se seguro de que tudo vai iniciar como esperado no momento de boot, faça um reboot do sistema com o comando shutdown -r now.

debian:/usr/src/iaxmodem-0.3.0# shutdown -r now
 
Broadcast message from root@debian (pts/1) (Sat May  5 00:15:49 2007):
 
The system is going down for reboot NOW!
debian:/usr/src/iaxmodem-0.3.0# 




> Instalando o HylaFax ...


Nenhum comentário:




Creative Commons License
Admirável Mundo Novo: Tudo Sobre Asterisk, OpenSER, Linux e Tecnologias de Voz sobre IP
by Cléviton Mendes de Araújo is licensed under a Creative Commons Atribuição 2.5 Brasil License.