5.1 服务端实现
应用Linux系统(ubuntu18.04) 构建分离模块化系统服务,各个服务之间相互独立,功能单一,便于维护。
主要应用于SIP协议转发服务,当然自带的一些额外的功能也可作为整体系统功能升级的潜在功能;应用freeswitch-1.10版本,进行编译安装于Ubuntu18.04中。编译安装过程如下:
(1) 系统安装准备的组件
# apt-get update
# apt-get upgrade
(2) 系统依赖库安装
# apt-get install -y git build-essential automake libtool autoconf g++ zlib1g-dev libjpeg-dev libncurses5-dev libcurl4-openssl-dev libpcre3-dev libsqlite3-dev libspeex-dev libspeexdsp-dev libspeex-dev libldns-dev libedit-dev libssl-dev yasm liblua5.2-dev liblua5.2 libopus-dev libsndfile-dev pkg-config libtool libpq-dev pkg-config libtiff5-dev libtiff5 libvpx-dev libvpx3 libopus-dev uuid-dev libsndfile-dev libvpx3
(3) 安装freeswitch
可以采用git库安装方式(系统编译源码目录下执行# git clone -b v1.10 https://freeswitch.org/stash/scm/fs/freeswitch.git) ,从git仓库获取源码。
也可以采用直接在****下下载源码的方式(链接https://files.freeswitch.org/releases/freeswitch/ 下载V1.10版本freeswitch-1.10.5.-release.tar.bz2) ,本设计采用此方法下载源码的方式进行编译安装。
# tar -xvf freeswitch-1.10.5.-release.tar.bz2 (解压包至当前目录) 。
# cd freeswitch-1.10.5.-release/(打开编译freeswitch主目录下) 。
# ./configure (此步骤为加载初始参数配置,会重复执行) 。
# cd src/ (以下在freeswitch-1.10.5.-release/src/ 目录下操作) 。
# wget https://cmake.org/files/v3.13/cmake-3.13.3.tar.gz (下载cmake至少3.5以上版本) 。
# tar zxvf cmake-3.13.3.tar.gz (解压至当前freeswtich主目录下) 。
# cd cmake-3.13.3/ (进入cmake源码主目录下) 。
# ./bootstrap (执行初始化系统配置) 。
# make (编译make执行cmake主目录下的Makefile文件) 。
# make install (安装cmake工具, cmake 将会被安装在/usr/local/bin系统目录下,使用之前先要执行下source /etc/profile 以系统默认命令加载的方式,之后就可以在命令teminal中执行# cmake 命令来编译其他的源码了) 。
# cd .. (退回至freeswitch主目录下) 。
# git clone https://github.com/signalwire/libks.git (下载libks编译库) 。
# cd libks/ (进入libks源码主目录) 。
# cmake . (直接用cmake编译源码配置,特别注意此处的“.”表示当前目录) 。
# make (编译源码执行make) 。
# make install (安装至系统目录中,主要为库文件,以及测试可执行的文件) 。
# cd .. (退回至freeswitch主目录下) 。
# git clone https://github.com/signalwire/signalwire-c.git(下载signalwire-c编译库) 。
# cd signalwire-c/ (进入signalwire-c主目录下) 。
# cmake . (直接用cmake编译源码配置) 。
# make (编译源码执行make) 。
# make install (安装至系统目录中,主要为库文件,以及测试可执行的文件) 。
# cp /usr/local/lib/pkgconfig/.pc /usr/lib/pkgconfig/ (加载静态的系统库调用路径) 。
# cp -f /usr/local/lib/ /lib64/ (将库文件在系统中共享,根据自身系统可选) 。
# cd .. (退回至freeswitch主目录下) 。
# make (make前可能需要再次./configure 重新确立各个依赖关系) 。
# make install (默认安装目录 /usr/local/freeswitch) 。
# ln -s /usr/local/freeswitch/bin/* /usr/bin/(便于调用freeswitch 命令,也可以加入PATH环境变量) 。
(4) 启动freeswitch进行测试
# freeswitch (执行启动操作,或者可以在/usr/local/freeswitch/bin 目录下执行 “# ./freeswitch”,如下图4 freeswitch启动成功日志) 。
图4 freeswitch启动成功日志