freeswitch安装

1、安装依赖

yum install gcc gcc-c++  
yum install -y wget zlib-devel libjpeg-devel freetype-devel

2、安装官方插件

yum install -y epel-release 
yum install -y git alsa-lib-devel autoconf automake bison broadvoice-devel bzip2 curl-devel libdb4-devel e2fsprogs-devel erlang 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 python-devel python-devel soundtouch-devel speex-devel sqlite-devel unbound-devel unixODBC-devel wget which yasm zlib-devel libshout-devel libmpg123-devel lame-devel rpm-build libX11-devel libyuv-devel

3、编译环境准备

 freeswitch要支持音视频,就要安装相关的依赖库,这些依赖库都可以在freeswitch官网这个地址

官方资源下载地址

3.1、安装cmake

tar -zvxf cmake-3.31.9.tar.gz
cd cmake-3.31.9
./bootstrap
make 
make install

sudo ln -sf /usr/local/bin/cmake /usr/bin/cmake
sudo ln -sf /usr/local/bin/cpack /usr/bin/cpack
sudo ln -sf /usr/local/bin/ctest /usr/bin/ctest

注意可能会报错,

       1)下载cmake失败,找不到安装包,可以手动去cmake官网下载,下载源码,上传到服务器上再执行以上安装步骤

        2)执行make命令失败,缺少openssl,此时需要先安装openssl,运行以下命令,完成后再执行make及make install

 yum install  -y openssl  openssl-devel

3.2、安装autoconf

autoconf-2.71及以上版本(http://mirrors.kernel.org/gnu/autoconf/),安装脚本如下:

tar xzvf autoconf-2.71.tar.gz
cd autoconf-2.71
./configure  
make
make install
#检查
autoconf --version

3.3、安装yasm

tar -xvf yasm-1.3.0.tar.gz
cd yasm-1.3.0
./configure
make && make install

安装完毕后检查如下:

#检查
yasm --version

3.4、安装nasm

tar -zxvf nasm-2.14.tar.gz
cd nasm-2.14
./configure
make && make install

 安装完毕后检查如下:

#检查
nasm -version

3.5、 安装opus

opus需要提前安装,否则可能报错。报错You must install libopus-dev to build mod_opus. Stop. 安装前需要先卸载自带的opus,执行如下脚本:

yum remove opus

安装指定版本的opus,安装脚本如下:

tar xvfz opus-1.3.1.tar.gz
cd opus-1.3.1
./configure
make
make install

安装完毕后,拷贝相关文件,脚本如下:

#cp opus.*(当前安装目录) /usr/lib64/pkgconfig/
cp /usr/local/lib/pkgconfig/opus.*   /usr/lib64/pkgconfig/

最后,重新安装libsndfile-devel

yum install libsndfile-devel

3.6 安装x264

unzip x264-master.zip
cd x264-master
./configure --prefix=/usr/local --enable-shared
make
make install
 
#查看是否安装成功
x264 --version

3.7 安装libks

先安装libatomic

yum -y install libatomic

再执行以下命令:

tar –zxvf libks-2.2.0.2.tar.gz
cd libks
cmake .
make
make install

3.8 安装libvpx

tar -zxvf libvpx2-2.0.0.tar.gz
cd libvpx2-2.0.0
./configure --prefix=/usr/local/libvpx --enable-pic --disable-examples --disable-unit-tests
make
make install

3.9 安装SDL2 

yum -y install libX11-devel libXext-devel libXv-devel

tar -zxvf SDL2-2.0.22.tar.gz
cd SDL2-2.0.22/
./configure 
make
make install
ldconfig
pkg-config --modversion sdl2

执行pkg-config --modversion sdl2失败,解决方案如下

vi ~/.bashrc

在最后一行增加以下内容:

export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:${PKG_CONFIG_PATH}

退出编辑并执行以下内容

source ~/.bashrc

3.10 安装libav

tar jxvf libav-12.tar.bz2
cd libav-12.3
./configure --enable-shared --enable-libx264 --enable-gpl
make
make install
cp /usr/local/lib/libavformat.* /lib64/

ln -s /lib64/libavformat.so.57.7.2 /lib64/libavformat.so.57
ln -s /lib64/libavformat.so.57.7.2 /lib64/libavformat.so

ls -l /usr/local/lib/libavcodec*

注意:执行make时可能会报错error: ‘x264_bit_depth’ undeclared,应该是x264某个版本之后哪位大神将原来的x264_bit_depth改成了大写的X264_BIT_DEPTH,所以进入libavcodec文件夹,找到libx264.c进行编辑,把里面的x264_bit_depth全部改成X264_BIT_DEPTH(应该一共有4处地方),保存之后重新make。

3.11 安装ffmpeg

tar xzvf ffmpeg-5.1.tar.gz
cd ffmpeg-5.1
./configure --enable-shared --enable-libx264 --enable-gpl --enable-sdl2 --enable-pic
make -j$(nproc) 
make install
#查看是否安装成功
ffmpeg -version

如果提示:

则执行以下操作(也可以手动修改/etc/ld.so.conf文件,增加一行:/usr/local/lib,保存后执行ldconfig)

echo '/usr/local/lib' | sudo tee /etc/ld.so.conf.d/x264.conf
sudo ldconfig

3.12 安装PortAudio

tar -zxvf pa_stable_v190700_20210406.tgz
cd portaudio
./configure
make
make install

4.下载Freeswitch 1.10.12+Spandsp+Sofia-sip

4.1 freeswitch 1.10.12下载

cd ~
git clone -b v1.10.12 https://github.com/signalwire/freeswitch
cd freeswitch

4.2 spandsp下载(下载后放入到freeswitch目录下)

注意:这里下载的是从0d2e6ac65e0e8f53d652665a743015a88bf048d4对应提交的版本。

cd ~/freeswitch
git clone https://github.com/freeswitch/spandsp.git
cd spandsp
git checkout -b specialcommit20250228 0d2e6ac65e0e8f53d652665a743015a88bf048d4

4.3 sofia-sip下载(下载后放入到freeswitch目录下)

cd ~/freeswitch
git clone https://github.com/freeswitch/sofia-sip.git

5.spandsp安装

cd ~/freeswitch/spandsp
./bootstrap.sh -j
./configure
make
make install

安装完之后执行以下命令:

export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:${PKG_CONFIG_PATH} 
sudo ldconfig

6.sofia-sip安装

cd ~/freeswitch/sofia-sip
./bootstrap.sh
./configure
make
make install

7.freeswitch 1.10.12安装

安装之前需要先修改freeswitch下的modules.conf

#注释以下内容
#applications/mod_signalwire

#打开以下内容
xml_int/mod_xml_curl

languages/mod_python

保存后执行以下内容:

cd ~/freeswitch/
./bootstrap.sh -j
./configure 
make
make -j install

上面./configure执行完毕后,会告知后续配置文件位置:

安装成功后提示:

----------------------------------------------------------------------
make[5]: Leaving directory `/root/freeswitch/src/mod/xml_int/mod_xml_rpc'
make[4]: Leaving directory `/root/freeswitch/src/mod/xml_int/mod_xml_rpc'
make[3]: Leaving directory `/root/freeswitch/src/mod'
make[3]: Entering directory `/root/freeswitch/src'
make[4]: Entering directory `/root/freeswitch/src'
make[4]: Nothing to be done for `install-exec-am'.
make[4]: Nothing to be done for `install-data-am'.
make[4]: Leaving directory `/root/freeswitch/src'
make[3]: Leaving directory `/root/freeswitch/src'
make[2]: Leaving directory `/root/freeswitch/src'
Making install in build
make[2]: Entering directory `/root/freeswitch/build'
 +---------- FreeSWITCH install Complete ----------+
 + FreeSWITCH has been successfully installed.     +
 +                                                 +
 +       Install sounds:                           +
 +       (uhd-sounds includes hd-sounds, sounds)   +
 +       (hd-sounds includes sounds)               +
 +       ------------------------------------      +
 +                make cd-sounds-install           +
 +                make cd-moh-install              +
 +                                                 +
 +                make uhd-sounds-install          +
 +                make uhd-moh-install             +
 +                                                 +
 +                make hd-sounds-install           +
 +                make hd-moh-install              +
 +                                                 +
 +                make sounds-install              +
 +                make 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                     +
 +                                                 +
 +                                                 +
 +       Additional resources:                     +
 +       ----------------------------------        +
 +       https://www.freeswitch.org                +
 +       https://freeswitch.org/confluence         +
 +       https://freeswitch.org/jira               +
 +       http://lists.freeswitch.org               +
 +                                                 +
 +       irc.freenode.net / #freeswitch            +
 +                                                 +
 +       Register For ClueCon:                     +
 +       ----------------------------------        +
 +       https://www.cluecon.com                   +
 +                                                 +
 +-------------------------------------------------+
.=======================================================================================================.
|       _                            _    ____ _             ____                                       |
|      / \   _ __  _ __  _   _  __ _| |  / ___| |_   _  ___ / ___|___  _ __                             |
|     / _ \ | '_ \| '_ \| | | |/ _` | | | |   | | | | |/ _ \ |   / _ \| '_ \                            |
|    / ___ \| | | | | | | |_| | (_| | | | |___| | |_| |  __/ |__| (_) | | | |                           |
|   /_/   \_\_| |_|_| |_|\__,_|\__,_|_|  \____|_|\__,_|\___|\____\___/|_| |_|                           |
|                                                                                                       |
|    ____ _____ ____    ____             __                                                             |
|   |  _ \_   _/ ___|  / ___|___  _ __  / _| ___ _ __ ___ _ __   ___ ___                                |
|   | |_) || || |     | |   / _ \| '_ \| |_ / _ \ '__/ _ \ '_ \ / __/ _ \                               |
|   |  _ < | || |___  | |__| (_) | | | |  _|  __/ | |  __/ | | | (_|  __/                               |
|   |_| \_\|_| \____|  \____\___/|_| |_|_|  \___|_|  \___|_| |_|\___\___|                               |
|                                                                                                       |
|     ____ _             ____                                                                           |
|    / ___| |_   _  ___ / ___|___  _ __         ___ ___  _ __ ___                                       |
|   | |   | | | | |/ _ \ |   / _ \| '_ \       / __/ _ \| '_ ` _ \                                      |
|   | |___| | |_| |  __/ |__| (_) | | | |  _  | (_| (_) | | | | | |                                     |
|    \____|_|\__,_|\___|\____\___/|_| |_| (_)  \___\___/|_| |_| |_|                                     |
|                                                                                                       |
.=======================================================================================================.
Checking module integrity in target [/usr/local/freeswitch/mod]
make[2]: Leaving directory `/root/freeswitch/build'
Making install in tests/unit
make[2]: Entering directory `/root/freeswitch/tests/unit'
make[3]: Entering directory `/root/freeswitch/tests/unit'
make[3]: Nothing to be done for `install-data-am'.
 /usr/bin/mkdir -p '/usr/local/freeswitch/bin'
  /bin/sh /root/freeswitch/libtool   --mode=install /usr/bin/install -c switch_eavesdrop '/usr/local/freeswitch/bin'
libtool: install: /usr/bin/install -c .libs/switch_eavesdrop /usr/local/freeswitch/bin/switch_eavesdrop
make[3]: Leaving directory `/root/freeswitch/tests/unit'
make[2]: Leaving directory `/root/freeswitch/tests/unit'
make[1]: Leaving directory `/root/freeswitch'

安装完毕后,添加如下软连接:

ln -sf /usr/local/freeswitch/bin/freeswitch /usr/bin/
ln -sf /usr/local/freeswitch/bin/fs_cli     /usr/bin/

相关声音文件,安装脚本如下:

cd ~/freeswitch/
make sounds-install
make moh-install 

至此,freeswtich安装完毕。

7.1运维

常用命令:

#查看freeswitch安装路径
whereis freeswitch

#查看进程号
ps -ef | grep freeswithch

#查看freeswitch端口是否被监听
netstat -anp | grep 5060

#查看freeswitch的运行状态
status(控制台模式执行)

#查看freewitch内置用户是否注册(控制台模式执行)
sofia status profile internal reg

8.补充

8.1设置fs_cli

安装好freeswitch后,修改freeswitch/conf/autoload_configs/event_socket.conf.xml,把

<param name="listen-ip" value="::"/>改为

<param name="listen-ip" value="0.0.0.0"/>

可以直接用fs_cli命令,不需要跟ip

8.2 公网通话设置

修改默认分机密码:

打开/conf/vars.xml,修改以下行的data内容

 <X-PRE-PROCESS cmd="set" data="default_password=5361893"/>

修改/conf/autoload_configs中的acl.conf.xml

<configuration name="acl.conf" description="Network Lists">
  <network-lists>
    <list name="lan" default="allow">
      <node type="deny" cidr="192.168.42.0/24"/>
      <node type="deny" cidr="35.185.177.49/32"/>
      <node type="allow" cidr="114.242.221.179/32"/>
      <node type="allow" cidr="223.104.40.163/32"/>
      <node type="allow" cidr="8.141.126.176/32"/>
    </list>

    <list name="domains" default="deny">
      <node type="allow" domain="$${domain}"/>
      <!-- <node type="allow" cidr="192.168.0.0/24"/> -->
    </list>

  </network-lists>
</configuration>

打开/conf下的vars.xml,找到以下行,并编辑:

  <X-PRE-PROCESS cmd="stun-set" data="external_rtp_ip=8.141.126.176"/>
  <X-PRE-PROCESS cmd="stun-set" data="external_sip_ip=8.141.126.176"/>

8.3 内网接不通或接通没声音

修改sip_profiles中的internal.xml,增加以下内容:

<param name="apply-nat-acl" value="rfc1918.auto"/>
<param name="apply-candidate-acl" value="rfc1918.auto"/>
<param name="apply-candidate-acl" value="wan.auto"/>
<param name="apply-candidate-acl" value="localnet.auto"/>
<param name="apply-candidate-acl" value="any_v4.auto"/>

8.4 呼叫延迟10秒问题解决

打开conf/dialplan/default.xml,将以下内容注释掉:

<condition field="${default_password}" expression="^1234$" break="never">
    <action application="log" data="CRIT WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING "/>
    <action application="log" data="CRIT Open $${conf_dir}/vars.xml and change the default_password."/>
    <action application="log" data="CRIT Once changed type 'reloadxml' at the console."/>
    <action application="log" data="CRIT WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING "/>
    如下sleep配置注释掉或将延时值改小,单位为ms
    <action application="sleep" data="10000"/>
    注释方法如下,注释内容用<!-- 和 -->包起来
    <!--<action application="sleep" data="10000"/>-->
  </condition>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值