Страница 1 из 2

G.729 для Freeswitch

Добавлено: 05 июн 2013, 18:45
Raice
Поискал в интернетах - не нашел. Пришлось собрать самому. Может кому пригодится данная информация.

CentOS 6.4, x64, FS 1.2.9
FS у нас из пакетов, поэтому пришлось скачать исходники

Код: Выделить всё

wget http://files.freeswitch.org/freeswitch-1.2.9.tar.bz2
Распаковываем куда удобно, я распаковал в /usr/src/freeswitch-1.2.9

Ставим все необходимые инструменты

Код: Выделить всё

yum groupinstall "Development Tools"
yum install libuuid-devel
Это нам потребуется чтобы сработало ./configure для исходников freeswitch

Код: Выделить всё

yum install zlib-devel
yum install libjpeg-devel
Качаем и ставим Intel IPP. Ссылка наверное будет бесполезна, т.к. все равно надо регистрироваться и получать лицензию, которую придется активировать.
http://registrationcenter-download.inte ... ntel64.tgz

Качаем исходники fsg729

Код: Выделить всё

svn checkout http://fsg729.googlecode.com/svn/trunk/ fsg729-read-only
Основная проблема - модуль делали под IPP6. Поэтому если скомпилировать без правок - то он не запустится. Поэтому нам нужно заменить функцию ippsSynthesisFilter_G729_16s на
ippsSynthesisFilter_NR_16s_Sfs в файле decg729.c
Так же в правках нуждается Makefile.
Для удобства приложил оба два

Основные моменты в Makefile:
FSBASE - папка, куда распаковали исходники FS
/usr/lib64/libfreeswitch.so - я думаю понятно

Так же перед компиляцией нужно проделать в папке с исходниками FS следующее:
1. Запустить ./configure
2. Скопировать libs/stfu/stfu.h в src/include

Теперь можно и make запустить

После этого копируем модуль в /usr/lib64/freeswitch/mod заменяя старый (его можно забэкапить в потайное место) и перезагружаем модуль.
Если кто потестирует на нормальной нагрузке будет здорово

Очень сильно помогла информация отсюда - http://abhisheksingh.info/g-729-codec-freeswitch/

Re: G.729 для Freeswitch

Добавлено: 06 июн 2013, 09:59
jugatsu

Re: G.729 для Freeswitch

Добавлено: 06 июн 2013, 13:31
Vlad1983
Raice писал(а):2. Скопировать libs/stfu/stfu.h в src/include
в место этого в строку INCLUDE= в Makefile добавить в конце -I$(FSBASE)/libs/stfu

Re: G.729 для Freeswitch

Добавлено: 06 июн 2013, 14:07
Raice
Это собственно его исходники и есть. Но просто так они под 1.2.9 не соберутся

Re: G.729 для Freeswitch

Добавлено: 06 июн 2013, 14:08
Raice
Vlad1983 писал(а):
Raice писал(а):2. Скопировать libs/stfu/stfu.h в src/include
в место этого в строку INCLUDE= в Makefile добавить в конце -I$(FSBASE)/libs/stfu
А ничего, что включение stfu.h происходит в другом *.h из исходников FS? Я просто в этих делах индеец тот еще.

Re: G.729 для Freeswitch

Добавлено: 06 июн 2013, 14:09
jugatsu
Нет это не те исходники. Под 1.2.5.3 собираются только влёт, поправил Makefile, make. Сегодня проверял.

Re: G.729 для Freeswitch

Добавлено: 06 июн 2013, 14:09
jugatsu
Raice писал(а):
Vlad1983 писал(а):
Raice писал(а):2. Скопировать libs/stfu/stfu.h в src/include
в место этого в строку INCLUDE= в Makefile добавить в конце -I$(FSBASE)/libs/stfu
А ничего, что включение stfu.h происходит в другом *.h из исходников FS? Я просто в этих делах индеец тот еще.
Надо лишь Makefile поправить.

Re: G.729 для Freeswitch

Добавлено: 06 июн 2013, 14:26
Vlad1983
тоже собралось
FreeSWITCH Version 1.5.1b+git~20130415T194750Z~be248879ae

правда это сделал
Raice писал(а):Основная проблема - модуль делали под IPP6. Поэтому если скомпилировать без правок - то он не запустится. Поэтому нам нужно заменить функцию ippsSynthesisFilter_G729_16s на
ippsSynthesisFilter_NR_16s_Sfs в файле decg729.c

Re: G.729 для Freeswitch

Добавлено: 06 июн 2013, 14:29
Raice
Я немного не правильно сказал. Собраться соберется, но по 1.2.9 он не запустился у меня. Пришлось полезть в исходники и изменить одну функцию, после этого все взлетело.
Но то что ты дал ссылку - оно без IPP собирается, значит другое действительно. Прошу прощения.

Если в Make заглянуть, то будет
FSBASE=/home/krivushinme/soft/freeswitch/fssvn
:) автор один и тот же

Re: G.729 для Freeswitch

Добавлено: 06 июн 2013, 14:31
Vlad1983
ITU-шный скорей всего больше грузить CPU при той же нагрузке