Установка эхоподавителя Oslec и DAHDI

Устанавливал однажды китайскую плату 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 телефона можно услышать себя, но потом эхо отлично подавляется.

Оставьте комментарий

Добавить комментарий