FreeSWITCH
верноAMR
иAMR-WB
Два видакодирование По умолчанию используется форматpassthough
состояние,Если ты хочешь быть правымAMR
иAMR-WB
Кодируйте и декодируйте,需верноmod_amr
иmod_amrwb
Два модуля были переработаны.компилировать。
Эта статья представлена Исходным кодкомпилироватьнеобходимыйopencore-amr
иov-amrwbenc
Две зависимые библиотеки。Конечно, его также можно использоватьyum
Установка напрямую с помощью других инструментовlibopencore-amrnb.so
、libopencore-armwb.so
、libvo-amrwbenc.so
。
* Все пути, описанные в этой статье, могут быть изменены в соответствии с реальными условиями и не ограничиваются пользователями root.
- Компиляция AMR -
скачатьOpenCore AMR
Исходный код,URL: https://sourceforge.net/projects/opencore-amr/files/opencore-amr,Рекомендуемая версия — 0.1.3. Как показано ниже:
Разархивируйте сжатый пакет и войдите в корневой каталог исходного кода для установки:
tar xzf opencore-amr-0.1.3.tar.gz
cd opencore-amr-0.1.3/
./configure --prefix=/root/libs
make && make install
Если бы толькоAMR
кодирование Формат,Вы можете пропустить этот шаг напрямую.
OpenCore AMR
Исходный код Сжатый пакет содержитAMR-NB
кодированиеи解码,ноAMR-WB
Поддерживает толькокодирование,Поэтому нам нужно добавитьAMR-WB
способность декодирования。
скачатьvo-amrwbenc
Сжатый пакет,URL: https://sourceforge.net/projects/opencore-amr/files/vo-amrwbenc,Рекомендуемая версия — 0.1.3.,Как показано ниже:
Разархивируйте сжатый пакет и войдите в корневой каталог исходного кода для установки:
tar xzf vo-amrwbenc-0.1.3.tar.gz
cd vo-amrwbenc-0.1.3/
./configure --prefix=/root/libs
make && make install
До сих пор,Компиляция библиотеки зависимостей завершена,opencore-amr
иov-amrwbenc
установлены в/root/libs
в папке,Дерево каталогов выглядит следующим образом:
.
├── include
│ ├── opencore-amrnb
│ │ ├── interf_dec.h
│ │ └── interf_enc.h
│ ├── opencore-amrwb
│ │ ├── dec_if.h
│ │ └── if_rom.h
│ └── vo-amrwbenc
│ └── enc_if.h
└── lib
├── libopencore-amrnb.a
├── libopencore-amrnb.la
├── libopencore-amrnb.so -> libopencore-amrnb.so.0.0.3
├── libopencore-amrnb.so.0 -> libopencore-amrnb.so.0.0.3
├── libopencore-amrnb.so.0.0.3
├── libopencore-amrwb.a
├── libopencore-amrwb.la
├── libopencore-amrwb.so -> libopencore-amrwb.so.0.0.3
├── libopencore-amrwb.so.0 -> libopencore-amrwb.so.0.0.3
├── libopencore-amrwb.so.0.0.3
├── libvo-amrwbenc.a
├── libvo-amrwbenc.la
├── libvo-amrwbenc.so -> libvo-amrwbenc.so.0.0.4
├── libvo-amrwbenc.so.0 -> libvo-amrwbenc.so.0.0.4
├── libvo-amrwbenc.so.0.0.4
└── pkgconfig
├── opencore-amrnb.pc
├── opencore-amrwb.pc
└── vo-amrwbenc.pc
потому чтоopencore-amr
иvo-amrwbenc
Путь установки – это наш индивидуальный путь.(Рекомендуется устанавливать обе библиотеки по одному и тому же пути.,Путь Конфигурация указывается через --prefix при настройке.,Эта установка/root/libs
),Переменная среды Конфигурация необходима, чтобы сообщить FreeSWITCH расположение зависимой библиотеки.
vim ~/.bash_profile
Добавьте следующую строку:
export PKG_CONFIG_PATH=/root/libs/lib/pkgconfig:$PKG_CONFIG_PATH
Сохранить и выйти
source ~/.bash_profile
На этом этапе зависимые библиотеки установлены и можно приступить к компиляции модуля mod_amr.
Войти FreeSWITCHИсходный каталог кода, которым является /root/freeswitch-1.8.5 во время процесса установки.
cd /root/freeswitch-1.8.5
Восстановите Makefile модуля mod_amr.
./bootstrap.sh -j
./configure --prefix=/root/freeswitch-bin
cd src/mod/codecs/mod_amr
make
make install
На этом этапе компиляция mod_amr завершена, fs_cli попадает в консоль FreeSWITCH и загружает модуль mod_amr.
Войти FreeSWITCHИсходный каталог кода, которым является /root/freeswitch-1.8.5 во время процесса установки.
cd /root/freeswitch-1.8.5
Восстановите Makefile модуля mod_amrwb.
./bootstrap.sh -j
./configure --prefix=/root/freeswitch-bin
cd src/mod/codecs/mod_amrwb
make
make install
На этом этапе компиляция mod_amrwb завершена, fs_cli попадает в консоль FreeSWITCH и загружает модуль mod_amrwb.
потому чтоFreeSWITCHпо умолчаниюкодирование Формат Внутри没有AMR
иAMR-WB
,Необходимо изменитьvars.xml
Внутриglobal_codec_prefs
иoutbound_codec_prefs
два Конфигурацияэлемент,используется для Новый формат кодирование. Как показано ниже:
<X-PRE-PROCESS cmd="set" data="global_codec_prefs=OPUS,PCMU,PCMA,H264,AMR,AMR-WB"/>
<X-PRE-PROCESS cmd="set" data="outbound_codec_prefs=OPUS,PCMU,PCMA,H264,AMR,AMR-WB"/>
Требуется после завершения модификацииreloadxml
Вступить в силу。
<extension name="Local_Extension">
<condition field="destination_number" expression="^(10[01][0-9])$">
<action application="bridge" data="{absolute_codec_string='PCMA\,PCMU'}user/$1"/>
</condition>
</extension>
<extension name="Local_Extension">
<condition field="destination_number" expression="^(10[01][0-9])$">
<action application="bridge" data="{absolute_codec_string='AMR\,AMR-WB'}user/$1"/>
</condition>
</extension>
До сих пор,Вы можете использовать его с удовольствиемFreeSWITCH
верноAMR/AMR-WB
Кодируйте и декодируйте了。