Устанавливал однажды китайскую плату TDM410P для подключения аналоговых телефонных линий и связку Asterisk + Dahdi.
Так как плата не имеет аппаратного шумоподавления, пришлось ставить Oslec.
При звонках, со стороны аналогового телефона эха не было, а вот кто говорил в IP телефон — слышал сам себя.
Настраивал на Ubuntu Server, по этому переключимся сразу на пользователя root:
sudo -i
Следующими командами посмотрим установлен ли oslec и прочую информацию о dahdi и плате:
lsmod |grep oslec
lsmod |grep dahdi
updatedb
locate oslec | more
dahdi_cfg -vvvv
В моём случае первая команда ничего не показала, а последняя выдала в конце ошибку.
Это значит что Oslec не установлен, по этому будем собирать Dahdi вместе с Oslec.
Скачаем архив с исходниками ядра и распакуем их (командой ls посмотрим имя архива linux-source-*, в моём случае был линк на архив linux-source-3.13.0.tar.bz2):
cd /usr/src
aptitude install linux-source
tar xjf linux-source-3.13.0.tar.bz2
Скачаем исходники Dahdi и распакуем их в директорию /usr/src/dahdi/ (командой ls посмотри имя директории с распакованными файлами и последней командой переименуем её):
wget http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/dahdi-linux-complete-current.tar.gz
tar xvfz dahdi-linux-complete-current.tar.gz
rm -f dahdi-linux-complete-current.tar.gz
mv dahdi-linux-complete-2.11.1+2.11.1 dahdi
Создадим директорию для Oslec и скопируем нужные файлы из архива с исходниками ядра в директорию с исходниками Dahdi:
mkdir /usr/src/dahdi/linux/drivers/staging
cp -fR /usr/src/linux-source-3.13.0/drivers/staging/echo /usr/src/dahdi/linux/drivers/staging
Укажем в Kbuild что нужно собирать Dahdi вместе с Oslec:
sed -i "s|#obj-m += dahdi_echocan_oslec.o|obj-m += dahdi_echocan_oslec.o|" /usr/src/dahdi/linux/drivers/dahdi/Kbuild
sed -i "s|#obj-m += ../staging/echo/|obj-m += ../staging/echo/|" /usr/src/dahdi/linux/drivers/dahdi/Kbuild
echo 'obj-m += echo.o' > /usr/src/dahdi/linux/drivers/staging/echo/Kbuild
Приступим к компиляции и установке:
cd /usr/src/dahdi/linux
make
make install
На этом Dahdi с эхоподавителем Oslec установлены и готовы к работе. Замечу что если обновить систему командами apt-get update/upgrade и обновится ядро, то нужно будет снова скомпилировать dahdi.
Чтобы задействовать Oslec укажем его в файле /etc/dahdi/system.conf:
fxsks=1
echocanceller=oslec,1
fxoks=2
echocanceller=oslec,2
fxoks=3
echocanceller=oslec,3
fxoks=4
echocanceller=oslec,4
А также активируем в /etc/asterisk/chan_dahdi.conf:
echocancel=yes
echocancelwhenbriged=no
echotraining=no
Перезапустим Dadhi и Asterisk чтобы применить изменения в файлах конфигурации:
service asterisk restart
asterisk -rvv
dahdi restart
quit
modprobe dahdi
modprobe dahdi_dummy
modprobe dahdi_transcode
modprobe wctdm24xxp
В случае ошибок запуска dahdi, можно перезагрузить сервер.
Все, на тесте при звонке через аналоговую линию иногда в первую секунду со стороны IP телефона можно услышать себя, но потом эхо отлично подавляется.