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 :)!