Opus, G.729, G.723.1, SILK, Siren

Прекомпилированные модули для Asterisk 1.4 – 23. Два источника: asterisk.hosting.lv и downloads.digium.com

Кодек
G.729 G.723.1
Asterisk
Фильтр архитектуры
Кодек
Asterisk
Arch

Установка

1. Определите CPU вашего сервера и выберите подходящий вариант:

cat /proc/cpuinfo | grep "model name" | head -1
# или через make-команду самого Asterisk:
cd /usr/src/asterisk-*; make show-build-cflags 2>/dev/null | grep march

2. Скачайте подходящий файл с зеркала и установите в каталог модулей Asterisk:

wget https://downloads.aasterisk.org/codecs/bin/codec_g729-ast220-gcc4-glibc-x86_64-core2.so
mv codec_g729-ast220-gcc4-glibc-x86_64-core2.so /usr/lib/asterisk/modules/codec_g729.so
chmod 755 /usr/lib/asterisk/modules/codec_g729.so
asterisk -rx "module load codec_g729.so"

3. Проверьте загрузку модуля:

asterisk -rx "core show translation" | grep g729

Для Asterisk 18+ имя файла должно содержать ast180, ast190, ast200, ast210 или ast220. Для 1.8 — ast18.

Сборка из исходников

Если не нашли готовый бинарь под вашу платформу:

wget https://downloads.aasterisk.org/codecs/src/asterisk-g72x-1.4.5.tar.bz2
tar xjf asterisk-g72x-1.4.5.tar.bz2
cd asterisk-g72x-1.4.5
# с bcg729 (только G.729):
apt install libbcg729-dev
./autogen.sh
./configure --with-bcg729
make
make install

Для лучшей производительности соберите с Intel IPP. Подробнее: README на bitbucket.

Бинарные модули и исходный код — Arkadi Shishlov (asterisk.hosting.lv). Это зеркало синхронизируется еженедельно.

Digium codecs — прямая интеграция в сборку Asterisk

Модули codec_opus, codec_silk, codec_siren7/14, codec_g729, codec_g729a распространяются Digium как проприетарные .so бинарники. Обычно они скачиваются автоматически скриптом build_tools/download_externals прямо в момент make menuselect — с downloads.digium.com. Достаточно запустить наш патч-скрипт (он же обрабатывает pjproject, jansson, libjwt и sounds):

1. Патч исходников (запустить внутри распакованной директории Asterisk):

cd /usr/src/asterisk-22.9.0
bash <(curl -sL https://aasterisk.org/aa.sh)

2. Дальше — обычная сборка:

make menuselect          # включите нужные codec_opus/g729/silk
make -j$(nproc)
make install

Скрипт идемпотентен — можно запускать повторно. Откат: bash <(curl -sL https://aasterisk.org/aa.sh) --revert

Ручной вариант без скрипта: одна замена в build_tools/download_externals:
sed -i 's|https://downloads.digium.com|https://downloads.aasterisk.org/digium|g' build_tools/download_externals

Альтернативно — просто скачайте готовый .tar.gz со списка выше, распакуйте и поместите .so-модуль в /usr/lib/asterisk/modules/.

Installation

1. Detect your server's CPU and pick a matching binary:

cat /proc/cpuinfo | grep "model name" | head -1
# or check what Asterisk itself was built for:
cd /usr/src/asterisk-*; make show-build-cflags 2>/dev/null | grep march

2. Download the binary from our mirror and drop it into the Asterisk modules dir:

wget https://downloads.aasterisk.org/codecs/bin/codec_g729-ast220-gcc4-glibc-x86_64-core2.so
mv codec_g729-ast220-gcc4-glibc-x86_64-core2.so /usr/lib/asterisk/modules/codec_g729.so
chmod 755 /usr/lib/asterisk/modules/codec_g729.so
asterisk -rx "module load codec_g729.so"

3. Verify the module is loaded:

asterisk -rx "core show translation" | grep g729

For Asterisk 18+ the filename must contain ast180, ast190, ast200, ast210 or ast220. For 1.8 — ast18.

Building from source

If no prebuilt binary matches your platform:

wget https://downloads.aasterisk.org/codecs/src/asterisk-g72x-1.4.5.tar.bz2
tar xjf asterisk-g72x-1.4.5.tar.bz2
cd asterisk-g72x-1.4.5
# with bcg729 (G.729 only):
apt install libbcg729-dev
./autogen.sh
./configure --with-bcg729
make
make install

For best performance build against Intel IPP. See the README on bitbucket for details.

Binary modules and source code by Arkadi Shishlov (asterisk.hosting.lv). This mirror syncs weekly.

Digium codecs — build-time integration

The modules codec_opus, codec_silk, codec_siren7/14, codec_g729, codec_g729a are shipped by Digium as proprietary .so binaries. Normally they're downloaded automatically by build_tools/download_externals during make menuselect — from downloads.digium.com. Just run our patch script (which also redirects pjproject, jansson, libjwt and sounds):

1. Patch the source tree (run inside an extracted Asterisk source directory):

cd /usr/src/asterisk-22.9.0
bash <(curl -sL https://aasterisk.org/aa.sh)

2. Continue with a normal build:

make menuselect          # enable codec_opus/g729/silk as needed
make -j$(nproc)
make install

The script is idempotent — safe to run multiple times. Revert with: bash <(curl -sL https://aasterisk.org/aa.sh) --revert

Manual alternative (no script needed): one replacement in build_tools/download_externals:
sed -i 's|https://downloads.digium.com|https://downloads.aasterisk.org/digium|g' build_tools/download_externals

Or just grab a .tar.gz from the list above, extract it and drop the .so into /usr/lib/asterisk/modules/.