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

Подписаться на IT Blog (RU) по Email
Subscribe to IT Blog (EN) by Email

Did my article help you? How about buying me a cup of coffee as an encouragement? Buy me a coffe.

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