Ехопридушення Asterisk - VoIP лабораторія - Каталог статей - Все для Asterisk

Для вирішення цієї проблеми луна, треба чітко розуміти саму природу проблеми.

  • Чому виникає луна
  • Як можна боротися з луною
  • Що таке "довжина луна-тракту"
  • Як це завдання вирішується в Asterisk
  • Включення програмного еходавця в Asterisk

Чому виникає луна

Як можна боротися з луною

Рішенням стало використання бруківки, в результаті якої луна була сильно ослаблена, і стало можливим вести розмову з співрозмовником.

asterisk

Що таке "довжина луна-тракту"

Між передачею сигналу в лінію tx і прийомом його відгуку (луна) в лінію пройде певний час, цей час і називають довжиною відлуння або затримкою відлуння. Чим менший цей час - тим менше ресурсів потрібно для придушення відлуння. З цього випливають висновки:

  1. Ехоподавець (echo canceller) повинен розташуватися якомога ближче до джерела луна
  2. Ехоподавець має бути налаштований на відповідну (або велику) довжину ехотракту

Як це завдання вирішується в Asterisk?

Застосовно Asterisk, ехоподавець може бути реалізований в платі вводу/виводу (у DSP процесорі, встановленому на платі) або в драйвері DAHDI. Історично, в Asterisk не було жодної відкритої програмної реалізації в DAHDI, стабільно працювала на різних лініях, що породило міф про неможливість реалізувати ехоподавець у драйвері.

Включення програмного еходавця в Asterisk

Для включення програмного ехоподавця в asterіsk необхідно:

  1. Вказати драйверу DAHDI у файлі system.conf, який еходавець використовувати echocanceller=oslec,1-30
  2. Включити еходавець в Asterisk у файлі chan_dahdi.conf echocancel=yes echotraining=no echocancelwhenbr >
  3. Під час розмови перевірити, що ехоподавець увімкнено dahdi show channel N

Величину луна-тракту можна задати явно в параметрі echocancel. echocancel=128 вказує на луна-тракт, рівний 128/8 = 16 мілісекунд