SIP | freeswitch编译安装部署(linux/centos/ubuntu)
freeswitch 安装部署、sip电话
文章目录
背景:
**1、**Sofia sip和SpanDSP依赖项已从FreeSWITCH中删除™ 自v1.10.4发布(2020年8月5日)以来
**2、**由于freeswitch支持动态编译和动态加载,一些不需要的模块可以不编译,如:mod_signalwire、mod_av,修改方法:
在编译安装 freeswitch 时, 找到 modules.conf 文件,找到 mod_signalwire 和mod_av 注释掉,修改如下(注意:有的版本需执行完./bootstrap.sh 或者 rebootstrap.sh 后才会出来):
#applications/mod_signalwire
#applications/mod_av
#applications/mod_verto
本文的安装后续会涉及安装 mod_av 模块(详见文后)。
一、安装操作系统依赖组件
centos(配置yum repo源,然后安装,提示no package的组件暂且不管):
yum install -y subversion autoconf automake libtool gcc-c++ ncurses-devel make libatomic git alsa-lib-devel bison broadvoice-devel bzip2 curl-devel libdb4-devel e2fsprogs-devel erlang flite-devel g722_1-devel 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 libuuid-devel libvorbis-devel libxml2-devel lua-devel lzo-devel mongo-c-driver-devel net-snmp-devel openssl-devel opus-devel pcre-devel perl perl-ExtUtils-Embed pkgconfig portaudio-devel postgresql-devel python-devel soundtouch-devel speex-devel sqlite-devel unbound-devel unixODBC-devel wget which yasm zlib-devel libshout-devel libmpg123-devel lame-devel wgetalsa-lib-devel curl-develdb-devel gnutls-develilbc-devel libcurl libedit-devellibidn-devel libssl-devellibsilk-devel libvorbis-devellibxml2-devel lua lua-devel ncurses-develnet-snmp-devel opus-develpcre perl-libs libzrtpcpp-devellibtiff-devel libX11-devel expat-devel python26-devel speex speex-develsqlite-devel libdb-develuuid-devel @development-tools libjpeg-turbo-devel libcurl-devel peexdsp-devel portaudio19-devel libldns-devel
ubuntu:
apt-get -y install build-essential subversion automake autoconf wget libtool libncurses5-dev
二、编译安装依赖组件
先 cd /usr/local/src ,所有安装都在这个目录操作吧
若无外网,提供相关组件离线安装包,可到 百度网盘链接: https://pan.baidu.com/s/1O4zicFgotkJVXNrUQHklLw?pwd=8f5q 提取码: 8f5q 下载。 或阿里云盘无限速下载。
2.1 安装 cmake
yum remove cmake
cd /usr/local/src
wget https://cmake.org/files/v3.14/cmake-3.14.0.tar.gz
tar -zxvf cmake-3.14.0.tar.gz
cd cmake-3.14.0
./configure
make && make install
2.2 安装 libks
cd /usr/local/src/
git clone https://github.com/signalwire/libks.git
cd libks
cmake .
make && make install
如果无法 git clone,下载链接: https://pan.baidu.com/s/1imZjIR9cI96Lqw0VvqZJeQ?pwd=3ann 提取码: 3ann
2.3 安装 signalwire-c
cd /usr/local/src/
git clone https://github.com/signalwire/signalwire-c.git
cd signalwire-c/
cmake .
make && make install
ln -sf /usr/local/lib64/pkgconfig/signalwire_client.pc /usr/lib64/pkgconfig/signalwire_client.pc
2.4 安装 x264
包含 mod_av 子模块(文头已描述,freeswitch对于这个模块可选择安装),建议安装此模块。
cd /usr/local/src/
git clone http://git.videolan.org/git/x264.git
cd x264
## 若不安装 mod_av 采用此命令: ./configure --prefix=/usr/x264/ --includedir=/usr/local/include --libdir=/usr/local/lib --enable-shared --disable-asm
./configure --disable-asm
make && make install
2.4.1 安装 mod_av 子模块:
安装:x264-libs-0.148-24.20170521gitaaa9aa8.el7.x86_64.rpm、x264-devel-0.148-24.20170521gitaaa9aa8.el7.x86_64.rpm
下载链接: https://pan.baidu.com/s/1ixWtEygZLTNdartGIeezBg?pwd=b5ir 提取码: b5ir
rpm -hiv x264-libs-0.148-24.20170521gitaaa9aa8.el7.x86_64.rpm
rpm -hiv x264-devel-0.148-24.20170521gitaaa9aa8.el7.x86_64.rpm
2.5 安装 libav (含yasm)
cd /usr/local/src/
git clone https://gitee.com/nwaycn/libav.git
cd libavyasm
./configure --enable-pic --enable-shared --enable-libx264 --enable-gpl --extra-libs="-ldl"
make && make install
cp /usr/local/lib/pkgconfig/libavcodec.pc /usr/lib64/pkgconfig/
cp /usr/local/lib/pkgconfig/libavdevice.pc /usr/lib64/pkgconfig/
cp /usr/local/lib/pkgconfig/libavfilter.pc /usr/lib64/pkgconfig/
cp /usr/local/lib/pkgconfig/libavformat.pc /usr/lib64/pkgconfig/
cp /usr/local/lib/pkgconfig/libavresample.pc /usr/lib64/pkgconfig/
cp /usr/local/lib/pkgconfig/libavutil.pc /usr/lib64/pkgconfig/
cp /usr/local/lib/pkgconfig/libswscale.pc /usr/lib64/pkgconfig/
如果configure时提示 “yasm/nasm not found or too old.”,则安装yasm, 下载:http://www.tortall.net/projects/yasm/releases/ 或者 链接: https://pan.baidu.com/s/1eoxAzQY2xJubgGbDQgJbUg?pwd=utxq 提取码: utxq
tar zxvf yasm-1.3.0.tar.gz
cd yasm-1.3.0
./configure
make && make install
2.6 安装 libpng
cd /usr/local/src/
git clone https://freeswitch.org/stash/scm/sd/libpng.git
cd libpng
./configure
make && make install
cp /usr/local/lib/pkgconfig/libpng* /usr/lib64/pkgconfig/
2.7 安装opus
cd /usr/local/src/
git clone https://freeswitch.org/stash/scm/sd/opus.git
cd opus
./autogen.sh
./configure --libdir=/home/opp/pjsiprel/lib/
make && make install
2.8 安装 sofia-sip
cd /usr/local/src/
git clone https://github.com/freeswitch/sofia-sip.git
cd sofia-sip
./bootstrap.sh
./configure
make && make install
如果无法 git clone,下载链接: https://pan.baidu.com/s/1gQGkJA_aOHR7ZhRr7mFcaw?pwd=i1v2 提取码: i1v2
2.9 安装 spandsp
cd /usr/local/src/
git clone https://github.com/freeswitch/spandsp.git
cd spandsp
./bootstrap.sh
./configure
make && make install
vi /etc/profile
文末添加一下子内容:
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH
source /etc/profile
2.10 安装 libopus-devel rpm包
vi /etc/yum.repos.d/linuxtech.repo
添加以下内容:
[linuxtech]
name=LinuxTECH
baseurl=http://pkgrepo.linuxtech.net/el6/release/
enabled=1
gpgcheck=1
gpgkey=http://pkgrepo.linuxtech.net/el6/release/RPM-GPG-KEY-LinuxTECH.NET
yum install libopus-devel
三、编译安装 Freeswitch
找到 module.conf 文件,找到 mod_signalwire 注释掉,修改如下(注意:有的版本需执行完./bootstrap.sh后才会出来):
#applications/mod_signalwire
3.1
cd /usr/local/src/
wget http://files.freeswitch.org/freeswitch-1.10.2.-release.tar.gz #获下载其他版本,见文下描述
tar vzxf freeswitch-1.10.2.-release.tar.gz
cd freeswitch-1.10.2.-release
./rebootstrap.sh #或者 bootstrap.sh,哪个文件存在就哪个
#(如本文背景章节介绍)找到 mod_signalwire 注释掉。
#此处可以先看“3.2章节”,是否启动ESL
vi modules.conf
./configure
make && make install #如有依赖报错,缺什么安装什么
所有版本离线下载地址: https://files.freeswitch.org/ 的 freeswitch-releases/ 目录,或百度网盘下载freeswitch-1.10.2.-release.tar.gz包:https://pan.baidu.com/s/1iLQOXvQlSHtWAp0BmEfeJQ?pwd=jh47 提取码: jh47
3.2 安装ESL(可选)
建议可安装,第三方程序可用ESL(Event Socket Library)进行远程控制
对应的modules.conf的applications/mod_esl
cd /usr/local/src/freeswitch-???/libs/esl/
make && make install
3.3 创建软连接
ln -sf /usr/local/freeswitch/bin/freeswitch /usr/bin/
ln -sf /usr/local/freeswitch/bin/fs_cli /usr/bin/
3.4 启动
freeswitch -nc #具体命令可参考“四”
四、常用命令
### 后台启动freeswitch服务
freeswitch -nc
freeswitch -nonat -nc #不检查路由穿透行,加上此参数后会启动很快
### 停止
freeswitch -stop
### 进入控制台
fs_cli
### 帮助
freeswitch -help
运行日志文件在 log 目录
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)