r11 - 15 Jan 2007 - 15:31:16 - JoaoDavidPrevedelloYou are here: TWiki >  Asterisk Web  >  AsteriskPBXSoftware > AsteriskUnicall > TutorialAsteriskUnicallFax

Asterisk + FAX + Unicall

Este tutorial destina-se a pessoas que já tenham um certo domínio em Debian GNU/Linux. Não vou entrar em detalhes deste sistema. Neste ponto suponho que seu sistema esta corretamente instalado e com acesso necessário a internet.

Depois de instalar S.O. Debian GNU/Linux, configure o arquivo /etc/apt/sources.list para baixar os pacotes da internet. Desenvolvemos este tutorial para ajudar a comunidade. Quaisquer alterações/modificações por favor reportem para revisão.

Desenvolvido por:

  • Rodrigo Sertori - rsertori (at) gmail.com

Preparação

/etc/apt/sources.list

sugestao de /etc/apt/sources.list
### INICIO ARQUIVO
#Debian GNU/Linux Official - Stable release
deb http://ftp.br.debian.org/debian/ stable main non-free contrib

#Debian GNU/Linux Official - Stable release for Security
deb http://security.debian.org/ stable/updates main contrib non-free

#Debian GNU/Linux DOTDEB for vpopmail, mysql-server-5.0, php5 and others
deb http://packages.dotdeb.org stable all

#Debian DNU/Linux - Linex (Other packages)
deb http://www.linex.org/sources/linex/debian sarge linex
### FIM 

depois de modificar seu sources, nao se esquece de executar um apt-get update para atualizar a lista de pacotes disponíveis ;P

Pacotes necessários

Instalar os seguintes pacotes para efetuar a compilação do asterisk.
#!/bin/sh
apt-get install libnewt-dev libssl0.9.7 libssl-dev zlib1g-dev libncurses5-dev libeditline0 \
libeditline-dev libedit2 libedit-dev libreadline4-dev libreadline4 kernel-headers-`uname -r` \
mpg123 libmysqlclient15-dev libtiff4 libtiff4-dev libxml2 libxml2-dev 
Criar um link simbolico "linux" em /usr/src apontando para o kernel headers.
#!/bin/sh
ln -s /usr/src/kernel-headers-`uname -r` /usr/src/linux

Download das fontes

Baixar os seguintes pacotes direto do ftp.digium.com em /usr/src
#!/bin/sh
cd /usr/src 
wget -c ftp://ftp.digium.com/pub/libpri/releases/libpri-1.2.3.tar.gz
wget -c ftp://ftp.digium.com/pub/zaptel/releases/zaptel-1.2.8.tar.gz
wget -c ftp://ftp.digium.com/pub/asterisk/releases/asterisk-1.2.11.tar.gz
wget -c ftp://ftp.digium.com/pub/asterisk/releases/asterisk-addons-1.2.4.tar.gz
wget -c ftp://ftp.digium.com/pub/asterisk/old-releases/asterisk-sounds-1.2.1.tar.gz

Descompacte os arquivos com o comando tar zxvf nome_do_arquivo.tar.gz, como por exemplo:

#!/bin/sh
tar zxvf asterisk-sounds-1.2.1.tar.gz

Um por um do sources... ou algo mais agressivo:

#!/bin/sh
for i in *.gz ; tar zxvf $i

Compilando e instalando libpri e zaptel

libpri

Comece compilando o libpri

Entre no diretorio que foi descompactado o libpri-1.2.3 e execute

#!/bin/sh
make clean
make install

zaptel

Depois compile o zaptel

Entre no diretorio que foi descompactado o zaptel-1.2.8 e execute

#!/bin/sh
make clean
make linux26      ##### SOMENTE SE ESTIVER USANDO UMA KERNEL 2.6.XX
make install

Uma palavrinha sobre o mysql

Antes de compilar o asterisk e addons se vc for usar Mysql, instale o pacote mysql-server do seu gosto. Eu particularmente uso o 5.0.

Para instalar ?

Procura o pacote

#!/bin/sh
apt-cache search mysql | grep mysql

Depois de encontra-lo. instale

#!/bin/sh
apt-get install mysql-server-X.X

Sugestão de pacotes uteis:

#!/bin/sh
apt-get install apache2 libapache2-mod-php5 php5 php5-mysql php5-cgi php5-cli php5-gd mysql-server-5.0 libcompress-zlib-perl php5-pear bzip2

Instalando o suporte a Unicall

Neste ponto antes de compilar o asterisk podemos adicionar o suporte para MFCR2 (Placas Digium) e o suporte para FAX

Se vc não deseja fazer estas alterações pule para a compilação do asterisk direto.

Este parte deste tutorial foi retirada de AsteriskUnicall e fiz algumas modificações.

Baixando as fontes

Estou usando a versão pre21d do spanDSP para aproveitar no FAX dpois... Não sei por qual motivo bizarro não consegui com outra versao.

#!/bin/sh
#Spandsp
wget -c http://www.soft-switch.org/downloads/spandsp/spandsp-0.0.2pre21d/spandsp-0.0.2pre21.tar.gz

#libmfcr2, supertone e unicall estou usando a pre9
#
wget -c http://www.soft-switch.org/downloads/unicall/unicall-0.0.3pre9/libmfcr2-0.0.3.tar.gz
wget -c http://www.soft-switch.org/downloads/unicall/unicall-0.0.3pre9/libsupertone-0.0.2.tar.gz
wget -c http://www.soft-switch.org/downloads/unicall/unicall-0.0.3pre9/libunicall-0.0.3.tar.gz

Compilando

Agora vamos compilar nesta ordem, primeiro descompactar todos os pacotes com tar vide exemplo anterior:
#!/bin/sh
#Spandsp
./configure
make
make install

#libsupertone
./configure 
make 
make install

#libunicall
./configure
make 
make install

#libmfcr2

É interessante para quem for utilizar o R2 alterar um arquivo.
Entre no source do libmfcr2 e edite o arquivo mfcr2.c . Dentro dele tem uma linha que é "Timer T1" que está com valor 5000. Altere para 20000.
Isso é o tempo que em que o asterisk vai esperar o retorno da central da operadora, e muitos numeros apresentam problemas se estiver com tempo inferior a 7 seg.

Após isso compile normalmente.

./configure --prefix=/usr/local 
make
make install

Modificando os fontes o asterisk

Modificar o asterisk para compilar o canal unicall, vá para o diretorio do asterisk/channels (fontes do asterisk)

Para o asteirskasterisk 1.2.11

#!/bin/sh
cd asterisk-1.2.11/channels

wget -c http://www.soft-switch.org/downloads/unicall/unicall-0.0.3pre9/asterisk-1.2.x/chan_unicall.c

# é uma boa ideia fazer um backup antes
cp Makefile Makefile.bkp

Abra o arquivo Makefile e adicione as linhas no final dele

chan_unicall.o: chan_unicall.c
   $(CC) -c $(CFLAGS) -o chan_unicall.o chan_unicall.c

chan_unicall.so: chan_unicall.o
   $(CC) $(SOLINK) -o $@ $< -lunicall -lxml2 -lsupertone -lspandsp -ltiff $(ZAPLIB)
procure pela linha:
CHANNEL_LIBS=chan_sip.so chan_agent.so chan_mgcp.so chan_iax2.so chan_local.so chan_skinny.so chan_features.so
altere para:
CHANNEL_LIBS=chan_sip.so chan_agent.so chan_mgcp.so chan_iax2.so chan_local.so chan_skinny.so chan_features.so chan_unicall.so

Adicionando Suporte para FAX

Vá para o source do asterisk/apps baixe os seguinte arquivos

# para asterisk 1.2.11
cd asterisk-1.2.11/apps
wget -c http://www.soft-switch.org/downloads/spandsp/spandsp-0.0.2pre21d/asterisk-1.2.x/app_rxfax.c
wget -c http://www.soft-switch.org/downloads/spandsp/spandsp-0.0.2pre21d/asterisk-1.2.x/app_txfax.c

# é uma boa ideia fazer um backup antes
cp Makefile Makefile.bkp
abra o arquivo Makefile e procure por:
   ifneq ($(wildcard $(CROSS_COMPILE_TARGET)/usr/local/include/osp/osp.h $(CROSS_COMPILE_TARGET)/usr/include/osp/osp.h),)
   APPS+=app_osplookup.so
   endif
adicione estas linhas logo abaixo:
   ifneq ($(wildcard $(CROSS_COMPILE_TARGET)/usr/local/include/spandsp.h $(CROSS_COMPILE_TARGET)/usr/include/spandsp.h),)
   APPS+=app_rxfax.so app_txfax.so
   endif

de novo no Makefile, procure por:

   app_curl.so: app_curl.o
           $(CC) $(SOLINK) -o $@ ${CYGSOLINK} $< ${CYGSOLIB} $(CURLLIBS)

adicione estas linhas logo abaixo:

   app_rxfax.so : app_rxfax.o 
           $(CC) $(SOLINK) -o $@ $< -lspandsp -ltiff
   app_txfax.so : app_txfax.o 
           $(CC) $(SOLINK) -o $@ $< -lspandsp -ltiff

Compilando e instalando o asterisk, asterisk-addons e asterisk-sounds

Começando pelo asterisk-1.2.11

cd /usr/src/asterisk-1.2.11
make clean
make mpg123
make install
make samples

asterisk-addons

cd /usr/src/asterisk-addons-1.2.4
make clean
make install

asterisk-sounds

cd /usr/src/asterisk-sounds-1.2.1
make clean
make install

Suporte a incialização no debian

Copie o arquivo de inicialização para dentro de /etc/init.d
cp /usr/src/asterisk-1.2.11/contrib/init.d/rc.debian.asterisk /etc/init.d/asterisk

Execute um update-rc para que seu asterisk inicialize durante o Boot

#!/bin/sh
update-rc.d -f asterisk defaults 98

Rodando o asterisk sem placas Digium

Caso vc não for trabalhar com algum Hardware (Placa E1) vc deve usar este modulo ZTDUMMY para simular o clock da placa.

Edite o arquivo /etc/modules e adicione no final da linha o modulo ztdummy para ser carregado automaticamente na inicialização

Após adicionar o modulo suba ele com o comando modprobe

modprobe ztdummy

Considerações sobre Unicall e FAX

Se vc compilou o unicall va para /etc/asterisk e baixe um unicall.conf de exemplo em:
#!/bin/sh
cd /etc/asterisk
wget -c http://www.soft-switch.org/downloads/unicall/unicall-0.0.3pre9/asterisk-1.2.x/unicall.conf.sample
mv unicall.conf.sample unicall.conf

E não se esqueça de copiar o chan_unicall.so para o asterisk

#!/bin/sh
cd /usr/src/asterisk-1.2.11
cp channels/chan_unicall.so /usr/lib/asterisk/modules/

Por algum outro motivo bizarro, se vc estiver usando o Unicall o script de inicialização não vai funcionar.
Descobri durante o runlevel padrão do Debian ele não olha para /usr/local/lib e sim para /usr/lib, o que faz com que o asterisk não encontre as libs (unicall, supertone e spandsp).
Então para resolver esse problema, criei 3 links simbólicos em /usr/lib, apontando para as libs que compilamos.
Se alguem souber outra formar mais limpa fico agradecido...

#!/bin/sh
ln -s /usr/local/lib/libunicall.so.0 /usr/lib
ln -s /usr/local/lib/libsupertone.so.0 /usr/lib
ln -s /usr/local/lib/libspandsp.so.0 /usr/lib

MFC/R2 e PAP2 Linksys.

Bom... a maioria do pessoal que seguiu este tutorial (ou outros) reclamou da voz metalizada quando utilizando esta sinalização.
Depois de mta luta nossa equipe descobriu que o lance do R2 esta com o PAP :/
Entao vamos la.. acessem o PAP e mudem para (SWITCH TO ADVANCED VIEW)
Procurem por :
RTP Packet Size: que fica no menu SIP e mudem para 0.020

Isso vai fazer que o PAP mude o tamanho do RTP packet, corrigindo assim o lance da voz metalizada! sucks né....

Considerações sobre segurança.

Normalmente o asterisk utiliza o tty9 e fica rodando diretamente neste console. Eu considero uma falha, pois qualquer pessoa mal intencionada dentro da empresa, e com um pouco de conhecimento em GNU/Linux consegue ter acesso a este console, e pode executar comandos como por exemplo: stop now. Se alguem se interessar em bloquear o asterisk para ele não abrir o console no tty9 basta editar o /usr/sbin/safe_asterisk e deixar a variavél TTY=9 apenas TTY=

Testando tudo

Bom se tudo correu bem e vc seguiu corretamente o este tutorial, basta digitar agora:
# Para iniciar seu asterisk, execute:
/etc/init.d/asterisk start
# e para parah o servico:
/etc/init.d/asterisk stop

Revisões

-- RodrigoSertori -16 Aug 2006 - Versão inicial
-- IuriDiniz - 22 Aug 2006 - Formatação para wiki
-- RodrigoSertori -26 Aug 2006 - Revisão 0.01
-- RodrigoSertori -16 Out 2006 - RTP packet (Voz metalizada com MFC/R2) -- Main.JoãoDavidPrevedello - 15 Jan 2007 - Alguns numeros não completão - TIMER T1
AsteriskForm
Classificacao Documentacao
Resumo Tutorial de asterisk + unicall (MFC R2) + FAX
Versao Asterisk 1.2.X
Edit | WYSIWYG | Attach | Printable | Raw View | Backlinks: Web, All Webs | History: r11 < r10 < r9 < r8 < r7 | More topic actions
Asterisk.TutorialAsteriskUnicallFax moved from Asterisk.AsteriskUnicallSertori on 22 Aug 2006 - 18:28 by IuriDiniz - put it back
 
Powered by TWiki
This site is powered by the TWiki collaboration platformCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback