Asterisk кодеки (codecs)

Asterisk IP-PBX (IP-АТС) — свободное решение компьютерной телефонии IP PBX - это ПО, распространяемое по открытой лицензии, что делает невозможным включение в состав дистрибутива некоторых коммерческих технологий, таких как патентованные алгоритмы эхо-компенсации и преобразования кодеков G.729 и G.723.1. Однако, компания Digium предоставляет возможность всем желающим приобрести лицензию на использование кодека G729, которая позволяет использовать этот кодек для преобразования голосовых каналов (транскодирования).

Сервер Asterisk поддерживает работу с кодеками:

G.711 ulaw = ulaw
G.711 alaw = alaw
G.723.1 = g723.1
G.726 = g726
G.729 = g729
GSM = gsm
iLBC = ilbc
LPC10 = lpc10
Speex = speex
ADPCM = adpcm

Типичный пример использования ограничения на кодеки:

disallow=all
allow=alaw
allow=ulaw

Разные клиенты поддерживают различные интервалы разбивки аудиоданных на порции цифровых данных, передаваемых в дальнейшем по сети. Сервер Asterisk поддерживает только разбивку через каждые 20ms в протоколах, использующих RTP для передачи аудиоданных, типа SIP или MGCP, из этого следует, что Вам необходимо настроить Ваше клиентское оборудование в соответствии с этим требованием.

Установка кодеков

Бинарные файлы кодеков можно скачать отсюда asterisk.hosting.lv или G.729 и G.723.1 кодеки.

Скачиваем кодеки под нужную ОС (Ubuntu 9.10 Server 64-bit) и версию Asterisk IP-PBX (IP-АТС) — свободное решение компьютерной телефонии (1.6.2).

# uname -a
Linux keep 2.6.31-16-server #53-Ubuntu SMP Tue Dec 8 05:08:02 UTC 2009 x86_64 GNU/Linux
# asterisk -v
Asterisk 1.6.2.0~rc2-0ubuntu1.1, Copyright (C) 1999 - 2009 Digium, Inc. and others.
# wget http://asterisk.hosting.lv/bin162/codec_g723-ast16-icc-glibc-x86_64-core2-sse4.so
# wget http://asterisk.hosting.lv/bin162/codec_g729-ast16-gcc4-glibc-x86_64-core2-sse4.so

Удаляем старые кодеки codec_g729/723*.so в директории /usr/lib/asterisk/modules . Копируем в туже директорию новые кодеки.

cp codec_g729-ast16-gcc4-glibc-x86_64-core2-sse4.so /usr/lib64/asterisk/modules
cp codec_g723-ast16-gcc4-glibc-x86_64-core2-sse4.so /usr/lib64/asterisk/modules

Перезапускаем Asterisk или подгружаем кодек вручную

localhost*CLI> module load codec_g729-ast110-gcc4-glibc-x86_64-core2.so
Loaded codec_g729-ast110-gcc4-glibc-x86_64-core2.so
  == Registered translator 'g729tolin' from format g729 to slin, table cost, 900000, computational cost 1000
  == Registered translator 'lintog729' from format slin to g729, table cost, 600000, computational cost 4000
 Loaded codec_g729-ast110-gcc4-glibc-x86_64-core2.so => (g729 Coder/Decoder, based on Intel IPP)