Asterisk сборка chan_h323

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

 # yum install make gcc-c++ kernel-devel openssl-devel expat-devel gnutls-devel flex -y

Скачать 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

Изменить

    # 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

Далее - из инструкции README канала chan_h323:

    # cd /root/pwlib
    # ./configure
    # make clean opt
    # cd /root/openh323
    # ./configure
    # make clean opt

В некоторых версиях Linux отсутствуют необходимые заголовки компилятора, сборка 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 снова.

Результат этих компиляций - динамические библиотеки /root/pwlib/lib/libpt_linux_x86_r.so.1.10.0 и /root/openh323/lib/libh323_linux_x86_r.so.1.18.0, которые лучше скопировать вместе с линками в директорию /lib

Скачать в директорию /usr/src соответствующие вашей текущей версии Asterisk источники, например -

      wget http://downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk-1.4.22.2.tar.gz и распаковать там же
      # 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 и убрать все остальные. То же проделать и в остальных секциях, так как нам не нужны для этой цели все остальные модули. Ну и

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

How To

  • artikle/chan_h323.txt
  • Последние изменения: 2018/03/12