Установка и настройка серверов Linux,создание сайтов, установка и настройка Asterisk PBX, Linux для начинающих и не только.
Получать статьи этого сайта на почту:

 

19
Oct 2012
sergldom
автор
4
комментариев
Рейтинг статьи:
5
Average: 4.5 (2 votes)

Собираем кодеки G729 и G723 для Asterisk

Кодек G729 для Asterisk, установка из исходных кодов      Выкладываю инструкцию по сборке и установке кодеков G729 и G723 для Asterisk из исходных кодов, тестовую сборку производил на тонком клиенте HP и на 64 битном сервере.

      Кодек G729 - один из лучших кодеков по соотношению качества к сжатию аудио потока. Применяется в большинстве случаев в том случае, если есть ограничения по полосе пропускания трафика. Для его использования в промышленном использовании требуется приобретать лицензию. Лицензионное соглашение можно почитать на <![CDATA[]]>странице лицензионного соглашения<![CDATA[]]>. Кодек G729 использует скорость сжатия 8 Кбит/с, что в 8 раз меньше чем стандартный кодек alaw G711.

Для расчета занимаемой полосы пропускания, можно воспользоватся <![CDATA[]]>калькулятором<![CDATA[]]>.

Дано:

Asterisk 1.8 установлен по инструкции: Установка Asterisk 1.8 в Debian Squeeze либо Ubuntu Linux, сборка из исходников VOIP Asterisk

либо:

Asterisk 1.8 установлен по инструкции: Установка Asterisk PBX 11 в Debian или Ubuntu Linux

Переходим в папку где у нас находятся исходные коды установленных Asterisk, dahdi, libpri, если папки нет, то создадим её віполнив команду:

mkdir -p /usr/src/asterisk-src/ && cd /usr/src/asterisk-src/

Скачиваем исходники кодеков на официальном сайте командой:

wget http://asterisk.hosting.lv/src/asterisk-g72x-1.1.tar.bz2

Если на официальном сайте нет данного архива, либо сайт не доступен, тода Вы можете скачать данный архив с моего сайта выполнив команду:

wget http://softnastroy.com/downloads/asterisk/asterisk-g72x-1.1.tar.bz2

Распаковываем скачанный архив, переходим в распакованную папку и запустим конфигурирование кодека выполнив команды:

tar xvf asterisk-g72x-1.1.tar.bz2
cd asterisk-g72x-1.1
./configure --with-ipp=ipp/

 

Вносим изминения в файл build-itu.sh

vi build-itu.sh

Для Asterisk 1.8:

было:

# Asterisk 1.8
inc=/home/arkadi/opt/asterisk-1.8.0/include
def=-DG72X_ASTERISK=18

стало:

inc=/usr/src/asterisk-src/asterisk-1.8.28.2/include
def=-DG72X_ASTERISK=18

 

Для Asterisk 11:

было:

# Asterisk 10.0
inc=/home/arkadi/opt/asterisk-10.0/include
def=-DG72X_ASTERISK=10

стало:

# Asterisk 11.0
inc=/usr/src/asterisk-src/asterisk-11.20.0/include/
def=-DG72X_ASTERISK=110

      Кстати для установки на Asterisk  версий не 1.8, а например Asterisk 1.4, Asterisk 1.6 или Asterisk 10  необходимо закоментировать ненужную и раскоментировать нужную версию Asterisk, а также подправить путь находжения исходников установленного Asterisk в файле build-itu.sh

Запускаем отредактированный файл командой:

sh build-itu.sh

После сборки кодеков, копируем кодеки G723 и G729 командой:

cp codec_g72*.so /usr/lib/asterisk/modules/

Перезагружаем Asterisk командой:

/etc/init.d/asterisk restart

      Проверяем подключены ли кодеки используя консоль asterisk запустив команду rasterisk либо asterisk -r и выполнив в консоли команду core show translation:

rasterisk
voip*CLI> core show translation
         Translation times between formats (in microseconds) for one second of data
          Source Format (Rows) Destination Format (Columns)

             g723   gsm  ulaw  alaw g726aal2 adpcm  slin lpc10   g729 speex  ilbc  g726  g722 siren7 siren14 slin16  g719 speex16 testlaw
     g723       - 84005 72005 72005    84005 72005 72004 92005 460028     -148009 84005 76004      -       -  88004     -       -   72005
      gsm 1196075     -  4002  4002    16002  4002  4001 24002 392025     - 80006 16002  8001      -       -  20001     -       -    4002
     ulaw 1192075 12002     -  4000    12002     2     1 20002 388025     - 76006 12002  4001      -       -  16001     -       -       2
     alaw 1192075 12002     1     -    12002     2     1 20002 388025     - 76006 12002  4001      -       -  16001     -       -       2
 g726aal2 1200075 20002  8002  8002        -  8002  8001 28002 396025     - 84006 20002 12001      -       -  24001     -       -    8002
    adpcm 1196074 16001  4001  4001    16001     -  4000 24001 392024     - 80005 16001  8000      -       -  20000     -       -    4001
     slin 1192074 12001     1     1    12001     1     - 20001 388024     - 76005 12001  4000      -       -  16000     -       -       1
    lpc10 1204075 24002 12002 12002    24002 12002 12001     - 400025     - 88006 24002 16001      -       -  28001     -       -   12002
     g729 1272079 92006 80006 80006    92006 80006 80005100006      -     -156010 92006 84005      -       -  96005     -       -   80006
    speex       -     -     -     -        -     -     -     -      -     -     -     -     -      -       -      -     -       -       -
     ilbc 1204075 24002 12002 12002    24002 12002 12001 32002 400025     -     - 24002 16001      -       -  28001     -       -   12002
     g726 1196074 16001  4001  4001    16001  4001  4000 24001 392024     - 80005     -  8000      -       -  20000     -       -    4001
     g722 1200074 20001  8001  8001    20001  8001  8000 28001 396024     - 84005 20001     -      -       -  12000     -       -    8001
   siren7       -     -     -     -        -     -     -     -      -     -     -     -     -      -       -      -     -       -       -
  siren14       -     -     -     -        -     -     -     -      -     -     -     -     -      -       -      -     -       -       -
   slin16 1208074 28001 16001 16001    28001 16001 16000 36001 404024     - 92005 28001  8000      -       -      -     -       -   16001
     g719       -     -     -     -        -     -     -     -      -     -     -     -     -      -       -      -     -       -       -
  speex16       -     -     -     -        -     -     -     -      -     -     -     -     -      -       -      -     -       -       -
  testlaw 1192075 12002     2     2    12002     2     1 20002 388025     - 76006 12002  4001      -       -  16001     -       -       -
voip*CLI>

Видим в списке наши подключенные кодеки G729 и G723.

Для подключения кодеков в Asterisk, необходимо внести данные в sip.conf

было:

disallow=all                   ; First disallow all codecs
allow=alaw                     ; Allow codecs in order of preference

стало:

disallow=all                   ; First disallow all codecs
allow=g729
allow=alaw                     ; Allow codecs in order of preference

Если у Вас каждому клиенту прописано насильно какой использовать кодек, тогда ему нужно прописать аналогично и кодек g729 на примере файла sip.conf

Для того, чтобы посмотреть какие кодеки используются в данный момент времени, необходимо выполнить в консоли Asterisk команду sip show channels и  смотрим колонку Format:

rasterisk
voip*CLI> sip show channels
Peer             User/ANR         Call ID          Format           Hold     Last Message    Expiry
192.168.XXX.XXX   XXXXXXXXXX       XXXXXXXXXXXXX  0x100 (g729)     No       Rx: ACK
192.168.XXX.XXX     XXXXXXXXXX       XXXXXXXXXXXXX  0x8 (alaw)       No       Rx: ACK
192.168.XXX.XXX   XXX              XXXXXXXXXXXXX  0x8 (alaw)       No       Init: INVITE
192.168.XXX.XXX   XXX              XXXXXXXXXXXXX  0x100 (g729)     No       Rx: ACK
192.168.XXX.XXX   XXX              XXXXXXXXXXXXX  0x8 (alaw)       No       Init: INVITE
192.168.XXX.XXX   XXX              XXXXXXXXXXXXX  0x100 (g729)     No       Tx: ACK
6 active SIP dialogs

 

Задача выполнена, кодеки G723 и G729 собраны и установлены, а кодек G729 подключен к Asterisk.

С Вами был Сергей Лазаренко.

 

Посмотрим красивое выступление 7-ми летнего мальчика на турнике:

 

Рейтинг статьи: 

5
Average: 4.5 (2 votes)

Вам понравилась статья? Хотите получать уведомления о выходе новых статей с этого сайта на свой почтовый адрес? Подписывайтесь пожалуйста. Введите свой почтовый адрес и нажмите кнопку Хочу получать статьи!

<![CDATA[]]><![CDATA[]]>

 

*Адреса электронной почты не разглашаются и не предоставляются третьим лицам для коммерческого или некоммерческого использования.

 

 
 

 

4 комментария:
N
21/02/2016 - 11:28
Такая ошибка* возникла при сборке. Что с ней можно сделать? *root@OrangePI:/usr/src/asterisk-src/asterisk-g72x-1.1# ./configure --with-ipp=ipp/ checking build system type... armv7l-unknown-linux-gnueabihf checking host system type... armv7l-unknown-linux-gnueabihf checking for a BSD-compatible install... /usr/bin/install -c checking whether build environment is sane... yes checking for a thread-safe mkdir -p... /bin/mkdir -p checking for gawk... no checking for mawk... mawk checking whether make sets $(MAKE)... no checking for gcc... no checking for cc... no checking for cl.exe... no configure: error: in `/usr/src/asterisk-src/asterisk-g72x-1.1': configure: error: no acceptable C compiler found in $PATH See `config.log' for more details
21/02/2016 - 21:00
Вот инструкция по установке Asterisk и модуля Dongle на OrangePi либо аналогичную плату, например RaspberryPi: Установка Asterisk на роутер Asus RT-N66U и 3G модем Huawei
N
22/02/2016 - 08:22
Так я по этой инструкции и ставил, но кодеков 72х там нет.
15/03/2016 - 10:53
Для мини плат с процессором на архитектуре ARM кодек G729 не собирается

Add new comment

Filtered HTML

  • Search Engines will index and follow ONLY links to allowed domains.

  • Web page addresses and e-mail addresses turn into links automatically.
  • Allowed HTML tags: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Lines and paragraphs break automatically.

Plain text

  • Allowed HTML tags: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Web page addresses and e-mail addresses turn into links automatically.
  • Lines and paragraphs break automatically.
  • Search Engines will index and follow ONLY links to allowed domains.

CAPTCHA
This question is for testing whether you are a human visitor and to prevent automated spam submissions.