Сборка кодека g729 под Аsterisk 21


Опубликовано 21.11.2023 17:55 | Автор: Admin

В данной статье рассматривается:
Как собрать кодек g729 из исходников под Аsterisk версии 21.

Исходная ОС: Ubuntu 22

АТС: Аsterisk версии 21

На момент написания этой заметки кодек g729 в бинарниках существует только для версий Аsterisk менее 18 версии. И как я понял поддержка этого кодека на версиях выше не планируется. По этому мы будем собирать сами под нашу версию.

Сам Аsterisk так же был собран из исходников и для сборки нам понадобятся эти исходники.

Первым делом обновляем ОС. Качаем исходники Аsterisk в /usr/src/asterisk-21.0.0

Собираем библиотеку для кодека bcg729
cd /usr/src/
git clone https://gitlab.linphone.org/BC/public/bcg729
cd bcg729

cmake .

make
make install


Собираем g729 для Аsterisk
cd /usr/src/
git clone https://github.com/arkadijs/asterisk-g72x
cd asterisk-g72x

./autogen.sh

./configure -enable-core2 --with-asterisk-includes=/usr/src/asterisk-21.0.0/include  --with-bcg729

make
make install

Кодек собран и автоматически помещен по пути /usr/lib/asterisk/modules/

Проверяем что кодек не кладет наш Аsterisk

sudo asterisk -rvvvvv
module load codec_g729.so

Подключаем кодек к Аsterisk на постоянку

Открываем на редактирование

/etc/asterisk/modules.conf

Вносим в разделы

; Codecs
load = codec_g729.so
; Formats
load = format_g729.so

sudo systemctl restart asterisk

Проверяем что кодек подгрузился и работает

sudo asterisk -rvvvvv
core show translation

Возможные ошибки:

codec_g72x.c:323:9: error: too many arguments to function ‘bcg729Decoder’
  323 |         bcg729Decoder(state->coder, (unsigned char *)lost_frame, 0, 1, 0, 0, dst + pvt->samples);

bcg729 - установлен старой версии, взять актуальную

codec_g72x.c:24:18: fatal error: asterisk.h: No such file or directory
   24 |         #include

--with-asterisk-includes=/usr/src/asterisk-21.0.0/include - подключить опцию


Метки
Asterisk g729 Linux

Комментариев: 2

 157 |

 Сергей
 04.01.2024 06:00

У меня на Raspbian результат ./autogen.sh вот такой вышел:

configure.ac:10: error: possibly undefined macro: AC_DISABLE_STATIC
If this token and others are legitimate, please use m4_pattern_allow.
See the Autoconf documentation.
configure.ac:11: error: possibly undefined macro: AM_PROG_LIBTOOL
autoreconf: error: /usr/bin/autoconf failed with exit status: 1

 Admin
 13.02.2024 09:25

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


Добавить комментарий:
Google
Yandex
Отправить