Instalando Oslec para DAHDI e Zaptel – Cancelamento de ECO via Software

Oslec no dahdi

asterisk 1.8.7.0
dahdi-linux-complete-2.5.0.1+2.5.0.1

ATENÇAO, Antes de tudo, para o asterisk e o dahdi.
na cli do asterisk >> core stop now
/etc/init.d/dahdi stopsta

Baixe os fontes do seu kernel. Crie de acordo com seu kernel.
Procurar em http://www.kernel.org/pub/linux/kernel/v2.6/
Com o comando uname -a sabe-se seu kernel
cd /usr/src
wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.xx.tar.bz2

Nota: O OSLEC foi inlcuido a partir do kernel 2.6.28. Portanto você terá que baixar uma versão igual ou superior a esta caso seu kernel seja inferior a este.

PRIMEIRA COISA A SER FEITA É IR NO DAHDI INSTALADO E DAR MAKE UNINSTALL E MAKE CLEAN NA RAIZ E NAS PASTAS TOOLS E LINUX (caso ele esteja já instalado).
APOS REMOVER A PASTA. DESCOMPACTAR E REALIZAR OS PROCEDIMENTOS DE COPIA DOS ARQUIVOS DO OSLEC PARA O MESMO E DEPOIS NA RAIZ COMPILAR COM MAKE E MAKE INSTALL.
Vamos aos passos:
descompactar o arquivo baixado
root@src#tar -xjvf linux-2.6.xx.tar.bz2

entrar no diretorio que descompactou o dahdi
root@src# cd /usr/src/dahdi-linux-2.3.0.1/linux/drivers

criar um diretorio com nome staging
root@drivers# mkdir staging

copiar do kernel para o novo diretorio criado
root@drivers# cp -fR /usr/src/linux-linux-2.6.xx/linux/drivers/staging/echo staging/echo

Saída do diretório com o conteúdo antes da recompilação do dahdi:
ls /usr/src/dahdi-linux-complete-2.5.0.2+2.5.0.2/linux/drivers/staging/echo/
echo.c echo.h fir.h Kconfig Makefile oslec.h TODO

Voltando ao diretório do dahdi encontramos em:
/usr/src/dahdi-linux-complete-2.6.0+2.6.0/linux/drivers/dahdi/Kbuild

Obs::q! K é maiúsculo.

incluir no arquivo kbuild

sed -i “s|#obj-m += dahdi_echocan_oslec.o|obj-m += dahdi_echocan_oslec.o|” /usr/src/dahdi-linux-complete-2.5.0.2+2.5.0.2/linux/drivers/dahdi/Kbuild

sed -i “s|#obj-m += ../staging/echo/|obj-m += ../staging/echo/|” /usr/src/dahdi-linux-complete-2.5.0.2+2.5.0.2/linux/drivers/dahdi/Kbuild

O arquivo Kbuild dentro do echo em staging criará e ficará somente com o conteuda abaixo:
echo ‘obj-m += echo.o’ > /usr/src/dahdi-linux-complete-2.6.0+2.6.0/linux/drivers/staging/echo/Kbuild
vi k

OBS: CUIDADO POIS AS VEZES AO COPIAR E COLOCAR A ASPAS é substituida pelo ponto, entao corrija se necessário

root@drivers# vi dahdi/Kbuild

Procure pelo seguinte trecho:

# Only enable this if you think you know what you’re doing. This is not
# supported yet:
#obj-m += dahdi_echocan_oslec.o
#
# A quick and dirty way to build OSLEC, if you happened to place it
# yourself in the dahdi source tree. This is experimental. See README
# regarding OSLEC.
#obj-m += ../staging/echo/

Deverá ficar desta forma:

# Only enable this if you think you know what you’re doing. This is not
# supported yet:
/
#
# A quick and dirty way to build OSLEC, if you happened to place it
# yourself in the dahdi source tree. This is experimental. See README
# regarding OSLEC.
obj-m += ../staging/echo/

Salve o arquivo.
Volte para o diretorio de fontes do dahdi.

root@drivers# cd /usr/src/dahdi-linux-2.3.0.1

make uninstall
make clean

root@dahdi-linux-2.3.0.1# make

CC [M] /usr/src/dahdi-linux-2.3.0.1/drivers/dahdi/dahdi_echocan_oslec.o
CC [M] /usr/src/dahdi-linux-2.3.0.1/drivers/dahdi/../staging/echo/echo.o
Building modules, stage 2.
MODPOST 32 modules
CC /usr/src/dahdi-linux-2.3.0.1/drivers/dahdi/../staging/echo/echo.mod.o
LD [M] /usr/src/dahdi-linux-2.3.0.1/drivers/dahdi/../staging/echo/echo.ko
CC /usr/src/dahdi-linux-2.3.0.1/drivers/dahdi/dahdi_echocan_oslec.mod.o
LD [M] /usr/src/dahdi-linux-2.3.0.1/drivers/dahdi/dahdi_echocan_oslec.ko

root@dahdi-linux-2.3.0.1# make install

Agora só precisamos configurar o dahdi.

#vi /etc/dahdi/system.conf

loadzone = br
defaultzone = br
fxsks = 1
channels = 1
echocanceller = oslec,1-4

vi /etc/asterisk/chan_dahdi.conf
Se ainda não tiver, adicione as linhas abaixo:

[channels]
;…
echocancel=yes
;echotraining=yes; COMENTAR ESSE. O OSLEC NAO EH COMPATIVEL COM O MESMO
;echocancelwhenbridge ; COMENTAR ESSE. O OSLEC NAO EH COMPATIVEL COM O MESMO

;…

#dahdi_cfg -vvv
se tudo correu bem, você verá algo como abaixo:

DAHDI Tools Version – 2.2.1.1
DAHDI Version: 2.3.0.1
Echo Canceller(s):
Configuration
======================
Channel map:
Channel 01: FXS Kewlstart (Default) (Echo Canceler: oslec) (Slaves: 01)
1 channels to configure.
Changing signalling on channel 1 from Unused to FXS Kewlstart
Setting echocan for channel 1 to oslec

Inicie o asterisk, e desfrute o OSLEC.

Fonte:
http://www.rowetel.com/ucasterisk/oslec.html

———————-
Para instalar o OSLEC no Asterisk e zaptel versão 1.4.x:

1) Obtendo o OSLEC.
$ cd /usr/src
$ svn co http://svn.astfin.org/software/oslec/trunk/oslec$ cd oslec$ make
$ insmod kernel/oslec.ko

2) Obtendo o ZAPTEL
$ cd /usr/src
$ wget http://downloads.digium.com/pub/zaptel/releases/zaptel-1.4.1.tar.gz
$ tar -xvzf zaptel-1.4.1.tar.gz
$ cd zaptel-1.4.1
$ ./configure$ make && make install && make config

3) aplicando o patch e recompilando$ cd /usr/src/oslec$ cd kernel$ ./install-1.4.sho script

install-1.4 aplica os patchs e recompila automaticamente, ele por default
procura a versão 1.4.1 do pocate zaptel, vc pode alterar o script para outras versões.

4) Alterando o zapata.conf/etc/asterisk/zapata.conf

———————–
echocancel=yes
echocancelwhenbridged=no ;desabilitado para suportar sinal de fax;
echotraining=400 ; nunca habilite, o oslec não é compativel com este parametro
———————–

5) carregando os modulos
$ /etc/init.d/zaptel start

6) checando o modulo oslec
$ cat /proc/oslec/info

Obs, O modulo oslec deve ser carregado antes do modulo zaptel senão irá ocorrer um erro.

7) usando a interface grafica do oslecO modulo oslec possui uma interface em modo de menu para controle para isso é necessario
instalar o pacote dialog
$ apt-get install dialog$ cd /usr/src/oslec/kernel

$ ./oslec-ctrl-panel.sh

Feito isto a sua placa analógica já esta pronta e usando o melhor cancelamento de eco :)!

Deixe um comentário