FreeSwitch1.8及1.6安装小记

【备注:因新浪博客莫名其妙的自动加密博文,导致前面发布在新浪博客的博文无法浏览,故而我在CSDN重发,以便需要的人参考】


更新说明:freeswitch已经切换到新的版本周期(1.10.X),下面文字的说明都是针对1.8及1.6的版本,请务必注意!
对1.10版本的安装测试,见本人的博文记录 FS1.10安装小记

基本来说,1.10.X版本已经可以yum安装,但yum安装会把各个模块都打成独立的包,而且默认安装的基本包里面会把一般不用的都默认安装了,如mod_signalwire 等


安装环境准备:

FS 用yum在centos7.3无法安装,在centos7.1安装OK
(centos7.1可以yum安装,但安装后还是发现有缺失文件现象,折腾好多次了,其实还是编译安装靠谱些)

#这是centos7下面对 delta的补充安装,centos7需加上这个
yum provides ‘*/applydeltarpm’
yum install deltarpm

#需要erlang,对centos6和7都一样的,FS官方没有提这个,但如果没装就有部分模块会无法工作:(主要是ERlang和lua的模块,不要忘记erlang和lua也是FS的开发语言哦~)
wget http://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm
rpm -Uvh erlang-solutions-1.0-1.noarch.rpm
rpm --import http://packages.erlang-solutions.com/rpm/erlang_solutions.asc
yum install -y erlang lua*

#如果是yum安装,需要freeswitch的rpm支持,否则不需要
yum install -y http://files.freeswitch.org/freeswitch-release-1-6.noarch.rpm epel-release

#需要更多的支持环境,centos6和centos7是不同的,这下面的包在centos7下有些会找不到
yum install -y alsa-lib-devel autoconf automake bison broadvoice-devel bzip2 curl-devel db-devel e2fsprogs-devel flite-devel g722_1-devel gcc-c++ gdbm-devel gnutls-devel ilbc2-devel ldns-devel libcodec2-devel libcurl-devel libedit-devel libidn-devel libjpeg-devel libmemcached-devel libogg-devel libsilk-devel libsndfile-devel libtheora-devel libtiff-devel libtool libuuid-devel libvorbis-devel libxml2-devel lua-devel lzo-devel mongo-c-driver-devel ncurses-devel net-snmp-devel openssl-devel opus-devel pcre-devel perl perl-ExtUtils-Embed pkgconfig portaudio-devel postgresql-devel python26-devel python-devel soundtouch-devel speex-devel sqlite-devel unbound-devel unixODBC-devel wget which yasm zlib-devel
yum install perl cpio curl curl-devel zlib-devel openssl-devel expat-devel gettex-devel perl-devel build-essential tcl8.4 tk8.4 gettext -y

yum安装时可能会提示freeswitch的404错,是因为freeswitch已经停止了centos6的支持,不提供相关rpm文件了!---- 如果这样,只能在 /etc/yum.repos.d 删除相关文件源定义,而后老老实实用源码编译安装 或 换centos7 了…

#centos7下支持环境安装,补充上面的(因为有些库在centos6和7的命名不同):
yum install -y python-devel gettext-devel tcl db4-devel tk epel-release

#centos6的git版本过老,需要进行git升级,以拉取FS的源代码,不装yum的版本,因为那个版本也好老了:(这是为源码编译而进行的准备工作,yum安装不需要这个)
yum remove git
wget https://github.com/git/git/archive/master.tar.gz
tar -zxvf master.tar.gz
cd master
make configure
./configure --prefix=/usr/local/git
make && make install
ln -f /usr/local/git/bin/git /usr/bin/

git时提示ssl连接错误,则更新nss和curl:
yum update nss curl libcurl

补充说明,装上面的那么多东东,是因为直接装下面的会有若干个库加载不了,如果上面都装了下面就OK了(但已经装了好多好多东西是吧… )

正式安装:

下面是是yum方式,在centos7.1下成功,如果deltarpm没有安装,会导致有部分依赖库被跳过,fs程序运行异常,所以前面的安装要到位,否则下面安装是不会报错,系统跑起来就会经常莫名其妙出问题了)

yum install -y http://files.freeswitch.org/freeswitch-release-1-8.noarch.rpm epel-release
yum install -y freeswitch-config-vanilla freeswitch-lang-* freeswitch-sounds-*
systemctl enable freeswitch

下面是编译方式(最好是用编译模式)

cd /usr/local/src

#这个是1.6生产环境版本,1.6已经过期,FS官方建议使用1.8
git clone -b v1.6 https://freeswitch.org/stash/scm/fs/freeswitch.git freeswitch
#这个是1.8生产环境版本
git clone -b v1.8 https://freeswitch.org/stash/scm/fs/freeswitch.git freeswitch
#这个是最新开发版:
git clone https://freeswitch.org/stash/scm/fs/freeswitch.git freeswitch

cd /usr/local/src/freeswitch
./bootstrap.sh -j
./configure -C --enable-portable-binary --enable-sctp
–prefix=/usr --localstatedir=/var --sysconfdir=/etc
–with-gnu-ld --with-python --with-erlang --with-openssl
–enable-core-odbc-support --enable-zrtp
–enable-core-pgsql-support
–enable-static-v8 --disable-parallel-build-v8
make -j (注:出现等待未结束的进程而死锁时,不用j参数重新编译)

报错 cJSON.c #pragma GCC diag… 注释掉这几行 或 更新GCC
======centos6.8为GCC4.4.7,下面是更新gcc
wget http://people.centos.org/tru/devtools-2/devtools-2.repo
mv devtools-2.repo /etc/yum.repos.d
yum install devtoolset-2-gcc devtoolset-2-binutils devtoolset-2-gcc-c++
mv /usr/bin/gcc /usr/bin/gcc-4.4.7
mv /usr/bin/g++ /usr/bin/g+±4.4.7
mv /usr/bin/c++ /usr/bin/c+±4.4.7
ln -s /opt/rh/devtoolset-2/root/usr/bin/gcc /usr/bin/gcc
ln -s /opt/rh/devtoolset-2/root/usr/bin/c++ /usr/bin/c++
ln -s /opt/rh/devtoolset-2/root/usr/bin/g++ /usr/bin/g++
gcc --version

报错/usr/local/src/freeswitch/libs/sofia-sip/libsofia-sip-ua/tport
tport_type_sctp.c:206:10: error: variable ‘initmsg’ has initializer but incomplete type

=======修改代码struct sctp_initmsg initmsg = { 0 };为
typedef struct {
uint16_t sinit_num_ostreams;
uint16_t sinit_max_instreams;
uint16_t sinit_max_attempts;
uint16_t sinit_max_init_timeo;
} sctp_initmsg;
#define SCTP_INITMSG 2
sctp_initmsg initmsg = { 0 };
(注,这是我的原创修改,centos6下编译都会报这个错误的,我是化了很多时间才从linuxcore源代码的头文件定义中找到了相关的内容而后修改了这里的代码,错误的根本原因其实还就是因为centos6实在太老了…)

报错You must install libopus-dev to build mod_opus. Stop. 但确实已经 yum 安装 libopus-dev 或 opus-devel 后依然报错:
========删除opus,编译安装新版
yum remove opus
wget https://archive.mozilla.org/pub/opus/opus-1.3.1.tar.gz
tar xvfz opus-1.3.1.tar.gz
cd opus-1.3.1
./configure
make
make install
cp /usr/lib/pkgconfig/opus.* /usr/lib64/pkgconfig/
cd /usr/local/src/freeswitch
make clean
./configure … 重新配置以重新生成make文件
make

报错You must install libks to build mod_signalwire. 或 You must install signalwire-client-c:
最简单处理就是在modules.conf.xml里面取消mod_signalwire,因为我们一般都不会用这模块

make -j install
make -j cd-sounds-install
make -j cd-moh-install

  •  Install non english sounds:  replace XX with language                +
    
  •  (ru : Russian)    (fr : French)                         +
    
  • ------------------------------------     +
    
  •          make cd-sounds-XX-install       +
    
  •          make uhd-sounds-XX-install      +
    
  •          make hd-sounds-XX-install       +
    
  •          make sounds-XX-install         +
    
  •                                     +
    
  •  Upgrade to latest:                     +
    
  • ----------------------------------       +
    
  •          make current                  +
    
  •                                     +
    
  •  Rebuild all:                         +
    
  • ----------------------------------       +
    
  •          make sure                     +
    
  •                                     +
    
  •  Install/Re-install default config:       +
    
  • ----------------------------------       +
    
  •          make samples                  +
    

OK,安装完毕!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值