главная

 статьи

 новости

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

 статьи об Asterisk

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

 помощник Digium

 о нас

 партнеры

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

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

 

Статьи

Добавление поддержки кодеков G.729, G.723.1 и Speex в Asterisk

6 августа 2008

Наберите в консоли CLI команду “core show translation”. Вы увидите таблицу конвертации кодеков. Цифры означают процессорную сложность преобразования (цифры означают десятые доли процента загрузки), как видно, эта сложность не всегда симметрична. Из таблицы видно, что есть достаточно сложные кодеки (iLBC, lpc10), а есть достаточно простые: G.711 (alaw, ulaw), G.726 и др. Вы также заметите, что напротив кодеков g723, g729 и speex стоят минусы. Это значит, что преобразовать (сжать или распаковать) звук, закодированный с помощью этих кодеков Asterisk не сможет, но пропустить без изменений сможет. По-умолчанию поддержки этих кодеков в Asterisk нет. Их коммерческое использование требует покупки лицензии, стоимость которой зависит от максимального количества каналов, которое вы собираетесь задействовать и составляет порядка 5-10 USD за каждый канал.  

Если вы используете Asterisk для внутриофисной телефонии, то стандартных кодеков G.711 (64kbps) вам вполне хватит, к тому же нагрузка на сервер будет минимальной и качество звука будет хорошим. Однако для соединений по Интернет каналам (объединить удаленные филиалы) или для использования услуг VoIP-операторов, поддержка кодеков G.729 и G.723.1 просто необходима.  

 

В Asterisk поддержка кодеков реализована в виде библиотек, и их можно взять на сайте http://asterisk.hosting.lv/. На сайте много различных компиляций по различные платформы. Скорее всего, без проблем будут работать самые простые версии:  

codec_g723-ast14-gcc4-glibc-pentium2.so  

codec_g729-ast14-gcc4-glibc-pentium2.so  

Вы можете поэкспериментировать с различными компиляциями.  

Учтите, что использование кодеков подразумевает лицензионные отчисления, и является бесплатным только в образовательных целях. Действие патентов на эти кодеки истекает только в 2014 году.  

Копируем эти 2 файла в каталог /usr/lib/asterisk/modules и перезапускаем asterisk (полностью!).  

Команда core show translation позволит вам увидеть, появилась ли поддержка кодеков или нет.  

 

Заставить Asterisk использовать нужные кодеки в нужном порядке весьма сложно. Но вполне реально. Для этого необходимо в файле sip.conf разрешить нужные кодеки в секции [general]:  

disallow=all
allow=g729
allow=g723.1
allow=ulaw
allow=alaw
 

(проследите, чтобы в секции [general] больше не было команд allow и disallow)  

 

Кодеки будут использоваться в указанном порядке. Проверим это. Звоним 600 (если у вас подключен диалплан [demo]), а в консоли набираем sip show channels - вы увидите какой именно кодек используется.  

Порядок предпочтения кодеков в настройках Asterisk не является сугубо строгим. Ведь всегда с другого конца SIP-соединения находится устройство, у которого кодеки могут иметь уже другой приоритет. Поэтому, если выбранный вами порядок приоритета кодеков в Asterisk не работает, обратите внимание на настройки самого устройства.  

 

Задача выбора кодеков не такая простая, как может показаться. Например, если один телефон находится в офисе (в локальной сети), а другой подключен к серверу удаленно через Интернет, то перед Asterisk стоит проблема выбора. С одной стороны Asterisk должен минимизировать нагрузку на процессор, а для этого нужно выбрать кодек, поддерживаемый обеими сторонами, и может оказаться, что это только G.711. С другой стороны, затраты на трафик тоже могут быть немаловажным фактором, а это значит перекодировку все-таки делать желательно. Но при этом запретить удаленному абоненту использовать G.711 мы также не всегда можем, хотя бы в силу того, что он может внезапно поменять оборудование или захотеть передать факс (передать факс через аудиоканал реально только с использованием G.711 или G.726) и данный кодек окажется единственным из взаимно доступных.  

 

Speex  

Speex - свободный VBR-кодек, поддержка которого есть во многих софтфонах. По умолчанию, в Asterisk нет поддержки Speex, однако ее можно добавить. Скачайте с speex.org исходные коды версии 1.2 и распакуйте их, например, в /src/speex-1.2  

./configure
make
make install
 

Теперь, можно пересобрать Asterisk  

./configure --with-zaptel --with-speex=/src/speex-1.2 
make clean
make
make install
 

Запустите Asterisk, и в CLI наберите core show translation - поддержка Speex должна появиться. Если нет, запускайте Asterisk в отладочном режиме и изучайте сообщения об ошибках. Возможно, библиотеки Speex инсталлировались немного не туда, либо вы ошиблись где-то в самом начале - при конфигурировании.  



© 2006-2008, siper.ru. При использованиии материалов с сайта siper.ru ссылка на источник обязательна.



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