voip的会议服务器Conference Servers

http://openmcu.ru/eng.htm

openmcu:   http://h323plus.cvs.sourceforge.net/viewvc/h323plus/applications/openmcu/

Debian官方提供了openmcu包,但是已经更新为2.1版本的,从版本2.0开始,据说不再支持视频传输,因此,如果我们想提供视频功能,就需要自己编译安装。

  1. http://prdownloads.sourceforge.net/openh323/ 下载最新的openmcu、pwlib、openh323包(其实也不能用最新的,openmcu要用1.x版本的,pwlib我用的是1.8.7 (Mimas patch 2)版本,openh323我用的是1.15.6 (Mimas patch 2)版本,我猜测1.x的openmcu是依赖于这两个有点老的包的)。
  2. 在Debian下准备编译所需的库文件,可以用apt-get build-dep openmcu指令,也可以先apt-get install openmcu然后再卸载openmcu包,都可以得到所需的库文件。
  3. 把三个包用tar zvxf解压,并且把pwlib解出来的目录改名为pwlib,openh323包解出来的目录命名为openh323,这样openmcu编译时可以找到这两个库。
  4. 分别在pwlib目录下和openh323目录下执行./configure
  5. 进入openmcu目录,执行make all

新生成目录中的obj_linux_x86_r目录下是可执行文件,另一个obj_linux_x86_d目录下是debug版本的文件。这样生成的是使用动态运行库的版本。如果要生成静态版本,那么需要使用make optnoshared指令来编译openmcu。

下面的任务是将openmcu设置为开机自动运行,注意必须给openmcu加--disable-menu来禁用交互模式,否则openmcu无法在后台运行。我下面的办法用的是cron来实现的,也可以用inetd等实现。

生成start脚本内容如下:

#!/bin/sh

PROCESS_NUM=`ps -ef | grep "openmcu" | grep -v "grep" | wc -l`
if [ $PROCESS_NUM -lt ];
then
exec nohup /opt/openmcu/openmcu -n -v --disable-menu > /opt/openmcu/mcu.log &
fi
  1. 用chmod +x给start脚本以可执行权限
  2. 用crontab -u 执行openmcu的用户名 -e进入cron任务编辑模式(是一个类似vi的编辑环境),输入:
*/ * * * * /opt/start

表示每一分钟运行一次start脚本。

这样实现的其实不仅仅是开机自动运行了,还保证了每1分钟检查一次是否openmcu在运行,如果没在运行,则启动之。

How to build openmcu-ru on ubuntu

1. install tools
sudo apt-get install libtool autoconf flex bison automake pkg-config

2.yasm-1.3.0
sed -i 's#) ytasm.*#)#' Makefile.in &&

./configure --prefix=/opt/openmcu &&
make
make instal

3.ffmpeg-2.8.3 
gedit ~/.basnrc
#add /opt/openmcu/bin to PATH env.
export PATH=$PATH:/opt/openmcu/bin

./configure --prefix=/opt/openmcu --enable-shared
make
make instal

4.x264-snapshot-20151204-2245
./configure --prefix=/opt/openmcu --enable-shared
make
make install

5.libvpx-1.5.0
./configure --prefix=/opt/openmcu
make
make install

6.openmcu-master ver4.01
./autogen.sh
./configure -prefix=/opt/openmcu --disable-openssl

configure: error: avcodec headers not found! Install FFmpeg or Libav.

Solultion: modify the configure file
PRODUCT=OpenMCU-ru  ==> PRODUCT=
PROG=openmcu-ru     ==> PROG=

make
/usr/bin/ld: cannot open output file ./obj/: Is a directory
collect2: error: ld returned 1 exit status
make[1]: *** [all] Error 1

Solution:
Modify the sub Makefile: openmcu-ru/Makefile
PROG=    ==> PROG=openmcu-ru

make install

7. test

sudo ./openmcu-ru/obj/openmcu-ru -d &

上一篇:mac配置appium进行自动化测试


下一篇:"类名.this"与"this"的区别