Ехопридушення Asterisk - VoIP лабораторія - Каталог статей - Все для Asterisk
Для вирішення цієї проблеми луна, треба чітко розуміти саму природу проблеми.
- Чому виникає луна
- Як можна боротися з луною
- Що таке "довжина луна-тракту"
- Як це завдання вирішується в Asterisk
- Включення програмного еходавця в Asterisk
Чому виникає луна
Як можна боротися з луною
Рішенням стало використання бруківки, в результаті якої луна була сильно ослаблена, і стало можливим вести розмову з співрозмовником.

Що таке "довжина луна-тракту"
Між передачею сигналу в лінію tx і прийомом його відгуку (луна) в лінію пройде певний час, цей час і називають довжиною відлуння або затримкою відлуння. Чим менший цей час - тим менше ресурсів потрібно для придушення відлуння. З цього випливають висновки:
- Ехоподавець (echo canceller) повинен розташуватися якомога ближче до джерела луна
- Ехоподавець має бути налаштований на відповідну (або велику) довжину ехотракту
Як це завдання вирішується в Asterisk?
Застосовно Asterisk, ехоподавець може бути реалізований в платі вводу/виводу (у DSP процесорі, встановленому на платі) або в драйвері DAHDI. Історично, в Asterisk не було жодної відкритої програмної реалізації в DAHDI, стабільно працювала на різних лініях, що породило міф про неможливість реалізувати ехоподавець у драйвері.
Включення програмного еходавця в Asterisk
Для включення програмного ехоподавця в asterіsk необхідно:
- Вказати драйверу DAHDI у файлі system.conf, який еходавець використовувати echocanceller=oslec,1-30
- Включити еходавець в Asterisk у файлі chan_dahdi.conf echocancel=yes echotraining=no echocancelwhenbr >
- Під час розмови перевірити, що ехоподавець увімкнено dahdi show channel N
Величину луна-тракту можна задати явно в параметрі echocancel. echocancel=128 вказує на луна-тракт, рівний 128/8 = 16 мілісекунд