главная

 статьи

 новости

 что такое SIP-телефония ?

 статьи об Asterisk

 путеводитель Digium

 помощник Digium

 о нас

 партнеры

SIPER.RU доступная междугородняя связь
на главнуюпоиск отправить сообщение

корзинадоставкаконтакт
                 
КАТАЛОГ VoIP ОБОРУДОВАНИЯ
VoIP-шлюзы
SIP-телефоны
USB-телефоны
Оборудование для Asterisk
 
ВХОД
 
Логин или e-mail:
Пароль:
 
Путеводитель по продукции Digium
VoIP шлюзы высокой плотности
 
 

 

Новости VoIP

Эхо на аналоговых линиях в Asterisk

6 августа 2008

Основным источником эха является трансформатор (hybrid), объединяющий в стандартную двухжильную линию два изначально независимых канала - аудиовход и адуиовыход. Из-за возможных рассогласований в этом месте исходящий сигнал подмешивается ко входящему. Так на обычном аналоговом телефоне, несмотря на то что собственный голос в трубке слышится вполне отчетливо, эффект эха отсутствует, поскольку задержка составляет не больше миллисекунды. В случае же использования аналоговых плат, преобразование аналогового сигнала в IP-пакеты и передача их по сети занимает некоторый промежуток времени, а значит, собственный голос будет возвращаться уже с задержкой, превращаясь в эхо.  

 

Для эффективной борьбы с эхом используется следующий набор методик:  

1. Борются с причинами появления эха, для чего подбирают параметры линии и цепей. На этом шаге нельзя победить эхо полностью, но можно его значительно снизить.  

2. Используется аппаратные или программные эхокомпенсаторы, которые обнаруживают в сигнале составляющую эха и удаляют ее. В состав Asterisk входит несколько алгоритмов эхокомпенсации, однако они не блещут особой эффективностью.  

 

FXOTUNE  

В состав Zaptel входит утилита fxotune, которая предназначена для настройки параметров hybrid на платах Digium и их клонах, с целью достичь минимального эха. Утилита работает на всех платах, кроме X100P (видимо, по причине отсутствия возможности управлять параметрами hybrid).  

Чтобы освободить каналы Zap, остановите Asterisk, если он запущен. Естественно, модули вашей платы и zaptel должны быть подгружены.  

Линии должны быть подключены к портам платы в той конфигурации и в том порядке, в котором вы будете ее использовать.  

Запустите команду замера эха.  

fxotune -vvv -d -b 1 -n 3 -l 2
 

В данном случае –b 1 означает 1й канал, набрать цифру 3, чтобы исчез диалтон (как известно, после снятия трубки и нажатия какой-нибудь цифровой клавиши на телефоне наступает тишина), и подождать 2 секунды перед замером эха. Если у вас импульсный набор, используйте, например, –n p3.  

Собственно, сама процедура замера это посылка специального звукового сигнала длительностью в полсекунды. Результатом работы fxotune будет цифра, характеризующая эхо на вашей линии при текущих настройках платы, чем она меньше, тем лучше. Допустим, у вас получилось 0.4490, что довольно много (почти 45%). На хорошо согласованной линии этот показатель должен быть на порядок меньше (3-5%).  

Для калибровки запустите команду  

fxotune -vvv -i 2
 

Утилита начнет калибровать все доступные FXO-каналы. На один канал может потребоваться до 1 минуты, так что запаситесь терпением. Суть калибровки сводится к перебору различных параметров hybrid с целью достичь наименьшего эха. Наилучшие параметры записываются в /etc/fxotune.conf.  

После калибровки, для того чтобы параметры из fxotune.conf вступили в силу, запустите команду.  

fxotune -s
 

Многие забывают об этом шаге, и в результате ошибочно полагают, что применение fxotune ничего не дает. Добавьте эту команду в ваш rc.local или куда сами сочтете нужным, чтобы она исполнялась перед запуском Asterisk, но после ztconfig.  

Повторно проведите процедуру замера, результат должен стать лучше, чем было до калибровки.  

 

Помимо самого трансформатора (hybrid), дополнительными источниками эха могут быть:  

1. DSL-сплиттер;  

2. параллельно подключенный телефон, факс, модем и даже ничем не оканчивающееся длинное ответвление от основной линии;  

3. устройство уплотнения телефонных линий;  

4. затяжной участок телефонной “лапши” вместо витой пары;  

5. устаревшее оборудование на телефонной станции.  

Такие источники эха fxotune не сможет победить полностью, но немного уменьшить уровень эха вполне возможно. Поэтому, по возможности, избегайте использования дополнительных устройств на линиях, подключенных к аналоговым платам.  

 

rxgain и txgain  

Процедура настройки уровней осуществляется с помощью утилиты ztmonitor:  

ztmonior 1 –vv
 

Эта команда позволяет увидеть уровень сигнала на линии. Регулируя в файле zapata.conf значения rxgain и txgain (обычно искомые значения находятся от -10.0 до 10.0) и перезапуская Asterisk нужно добиться, чтобы во время разговора в полный голос указатели уровня находились где-то между первой четвертью и серединой.  

Цель такой настройки состоит не только в достижении комфортных уровней громкости. Правильная настройка гарантирует наименьший уровень нелинейных искажений, мешающих нормально работать алгоритму эхокомпенсации.  

 

OSLEC  

Используемый по умолчанию алгоритм MG2 (автор Michael Gernoth) - наиболее продвинутый из эхокомпенсаторов, по-умолчанию встроенных в Zaptel. Однако даже он не всегда способен эффективно бороться с эхо, и использование Asterisk может быть омрачено периодическим присутствием эхо, особенно заметным в начале разговора.  

Для особо ответственных задач Digium предлагает алгоритм собственной разработки HPEC (High Performance Echo Canceller), который является платным и закрытым. Впрочем, для покупателей своих плат Digium предоставляет лицензии в подарок. Кроме того, любая плата Digium (кроме снятых с производства TDM400P и X100P) в любой момент может быть оснащена недорогим аппаратным модулем эхокомпенсации Octatic, в которых тот же самый алгоритм реализован аппаратно.  

OSLEC (Open Source Line Echo Canceller) – эхокомпенсатор открытый и бесплатный, созданный в 2007 году австралийцем Дэвидом Ровом (David Rowe). Дэвид взял за основу алгоритм эхокомпенсации, автором которого является Стив Андервуд (Steve Underwood) из библиотеки SpanDSP и доработал его до соответствия стандарту G.168 (компенсация эхо на аналоговых телефонных линиях), а также создал интерфейс (wrapper) для взаимодействия с Zaptel.  

Считается, что по эффективности подавления эха OSLEC лишь немного не дотягивает до HPEC, оставляя далеко позади стандартные алгоритмы.  

Возможно, в будущем поддержка OSLEC будет встроена в Zaplel, однако в настоящий момент OSLEC распространяется в виде исходных текстов модуля oslec.ko, модифицированной библиотеки SpanDSP и набора патчей для различных версий Zaptel. Установить его не всегда просто, поэтому если вы приобрели платы Digium, то разумнее потребовать HPEC у Digium.  

Если же вы используете платы производства не Digium, либо если у вас срочный проект и нет времени ждать оформления лицензий, то приводим краткое руководство и рекомендации по установке OSELC.  

Скачиваете архив http://download.siper.ru/patches/oslec-for-zaptel-1.4.9.2.tar.bz2  

Скопируйте патч zaptel-1.4.9.2.patch рядом с папкой с исподниками Zaptel, запускаете команду:  

patch –p1 <zaptel-1.4.9.2.patch
 

Zaptel пропатчится, о чем будет свидетельствовать появление в kernel файла oslec.h, упоминание слов oslec в zaptel-base.c и zconfig.h - патч меняет только эти файлы.  

Необходимо собрать модуль oslec.ko – для этого в каталоге с исходниками oslec нужно выполнить стандартные команды:  

make
make
make install
 

Файл oslec.ko должен появится в папаке с модулями ядра, его можно подгрузить  

insmod oslec.ko
 

Выполните команду lsmod и посмотрите – oslec должен быть загружен.  

Соберите zaptel и установите, который вы пропатчили. Как это делается мы уже писали.  

Теперь модуль zaptel.ko будет иметь зависимость от oslec.ko, поэтому запуск модулей должен происходить в следующем порядке: oselc, zaptel, wctdm (или модуль вашей платы).


новости VoIP



siper.ru - первый во Владивостоке специализированный интернет-магазин по продаже оборудования для SIP телефонии и VoIP. Мы предлагаем SIP-телефоны, SIP-шлюзы, USB-телефоны, USB-трубки, оборудование для Skype, оборудование для Asterisk, Wi-Fi и Dect-телефоны. Оказываем квалифицированные услуги по проектированию, настройке и поддержке Call-центров и CRM-решений, сетей SIP-телефонии, подключению к сети SIP-телефонии. Являемся официальным дилером продукции Digium во Владивостоке и Приморском Крае.