Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра. + 7 499 704 2566 Skype Me™!

Сборка модуля chan_h323

Оцените материал
(6 голосов)

Хорошая статья как собрать модуль Н323, все работает. Первоисточник http://asterisk.ru/knowledgebase/asterisk-h323

Чтобы собрать chan_h323 (на примере redhat систем - CentOS, Fedora, дистрибутивы TrixBox, PBX-ini-a-Flash, etc) необходимо:

    1. # yum install make gcc-c++ kernel-devel openssl-devel expat-devel gnutls-devel flex -y
    2. Скачать Open H.323 v1.18.0, PWLib v1.10.0 в директорию /root
      # wget http://www.voxgratia.org/releases/openh323-v1_18_0-src-tar.gz
      # wget http://www.voxgratia.org/releases/pwlib-v1_10_0-src-tar.gz
    3. Изменить
      # mv openh323-v1_18_0-src-tar.gz openh323-v1_18_0-src.tar.gz
      # mv pwlib-v1_10_0-src-tar.gz pwlib-v1_10_0-src.tar.gz
      и распаковать там же -
      # tar vfxz openh323-v1_18_0-src.tar.gz в директории /root/pwlib
      # tar vfxz pwlib-v1_10_0-src.tar.gz в директории /root/openh323

    4. Далее - из инструкции README канала chan_h323:
      # cd /root/pwlib
      # ./configure
      # make clean opt
      # cd /root/openh323
      # ./configure
      # make clean opt
      В некоторых версиях Линукс отсутствуют необходимые заголовки компиллятора, сборка openh323 останавливается с ошибкой
      error: linux/compiler.h: No such file or directory
      Копируем /usr/src/kernel/2.6.18-128.1.10.el5-i686/includes/linux/compiler.h в /usr/include/linux и запускаем make clean opt снова.
  1. Результат этих компиляций - динамические библиотеки /root/pwlib/lib/libpt_linux_x86_r.so.1.10.0 и /root/openh323/lib/libh323_linux_x86_r.so.1.18.0, которые лучше скопировать вместе с линками в директорию /lib

  2. Скачать в директорию /usr/src соответствующие вашей текущей версии Астериск источники, например -
    wget http://downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk-1.4.22.2.tar.gz и распаковать там же
  3. # cd /usr/src/asterisk-1.4.22.2/
    # export OPENH323DIR=/root/openh323/
    # export PWLIBDIR=/root/pwlib/
    # export OPENH323_LIBDIR=/lib
    # export PWLIB_LIBDIR=/lib
    # ./configure обратим внимание на строки -
    checking /root/openh323//../pwlib/version.h usability... yes
    checking /root/openh323//../pwlib/version.h presence... yes
    checking for /root/openh323//../pwlib/version.h... yes
    checking if PWLib version 1.10.0 is compatible with chan_h323... yes
    checking PWLib installation validity... yes
    checking /root/openh323//version.h usability... yes
    checking /root/openh323//version.h presence... yes
    checking for /root/openh323//version.h... yes
    checking if OpenH323 version 1.18.0 is compatible with chan_h323... yes
    checking OpenH323 build option... opt
    checking OpenH323 installation validity... yes

    # make menuselect

    тут может выпрыгнуть уведомление, что у вас отсутствует пакет ncurses, поэтому menuselect не запускается. Нужно скачать
    wget ftp://ftp.pbone.net/mirror/yum.trixbox.org/centos/5/RPMS-2.6.0.7/ncurses-devel-5.6-7.20070612.i386.rpm и установить
    rpm -ivh ncurses-devel-5.6-7.20070612.i386.rpm
    затем указать на библиотеку явным образом:
    nano menuselect/makeopts :
    NCURSES_LIB=/lib/libncurses.so.5.6


    В меню можно не полениться, и выбрать в секции channels только нужный нам канал chan_h323 и убрать все остальные. То же проделать и в остальных секциях, так как нам не нужны для этой цели все остальные модули. Ну и
  4. make
    Не пугайтесь, если увидите в процессе компилляции
    make[2]: Leaving directory `/usr/src/asterisk-1.4.22.2/channels/h323'
    ***************************************************************

    ********** Re-run 'make' to pick up H.323 parameters **********

    ***************************************************************
    make[1]: *** [h323/libchanh323.a] Error 1
    make[1]: Leaving directory `/usr/src/asterisk-1.4.22.2/channels'
    make: *** [channels] Error 2
    Всё идёт как надо, просто делаем make ещё раз.

В текущей директории /usr/src/asterisk-1.4.22.2 таким образом будет собран весь Астериск, из которого нам нужно скопировать
# cp /usr/src/asterisk-1.4.22.2/channels/chan_h323.so /usr/lib/asterisk/modules/ и установить права на него
# chown asterisk:asterisk /usr/lib/asterisk/modules/chan_h323.so
# chmod 640 /usr/lib/asterisk/modules/chan_h323.so
и
# cp /usr/src/asterisk-1.4.22.2/main/asterisk /usr/sbin
Overwrite (y/n)? yes

теперь можно подправить конфигурацию, не забыть указать права
# chown asterisk:asterisk /etc/asterisk/h323.conf
и запустить модуль
CLI>module load chan_h323.so
Увидим -
== Creating H.323 Endpoint
== H.323 listener started
Проверяем
*CLI> show channeltypes
Type Description Devicestate Indications Transfer
---------- ----------- ----------- ----------- --------
H323 The NuFone Network's Open H.323 Channel no yes no
Zap Zapata Telephony Driver w/PRI no yes no
Agent Call Agent Proxy Channel yes yes no
Phone Standard Linux Telephony API Driver no yes no
MGCP Media Gateway Control Protocol (MGCP) yes yes no
Gtalk Gtalk Channel Driver no yes no
Local Local Proxy Channel Driver yes yes no
IAX2 Inter Asterisk eXchange Driver (Ver 2) yes yes yes
SIP Session Initiation Protocol (SIP) yes yes yes