呼叫中心源代码开源社区专栏第一篇
一次性或一篇文章就能全部写完的,在此分为多个篇章来逐步介绍。就是关于呼叫中心源代码开源社区专栏,我一直想要写这一专栏,最近终于有了时间,静下心来把呼叫中心开源贡献给大家,鉴于呼叫中心本身的特殊性,也不
呼叫中心源代码开源社区如下:
全球github呼叫中心开源社区
文章目录
- 呼叫中心源代码开源社区专栏第一篇
- 前言
- 一、freeswitch是什么?
- 二、编译的系统环境
- 三、freeswtich安装包
- 四、freeswitch下载
- 五、安装依赖环境
- 六、安装freeswitch
- 1.解压下载的freeswitch
- 2、配置
- 3、编译Make
- 4、安装 make install
- 七、运行freeswitch
- 总结
前言
呼叫中心源码开源第一篇从freeswitch开始着手,freeswtich作为目前开源的软交换系统,代替了以前的AVAYA\ALCATEL 等系统的硬件设备,已经成为目前主流的软交换系统。本篇主要介绍如何编译freeswtich和运行freeswtich,目的是首先把freeswtich给跑起来。只有先把freeswitch跑起来后,后面的章节中再介绍如何控制freeswitch,从而实现我们的呼叫中心功能。
什么?就是一、freeswitch
在这里简单介绍一下freeswitch,freeswtich就是基于IP的一套软交换框架,负责信令的接入与交换,简单点说就是电话的接入与电话的转接等操作,关于freeswitch的文章介绍非常多,读者行自行先去搜索,这里就不细讲了,我们就直接转入到以下正题。
二、编译的系统环境
本篇主要介绍在以下操作系统中编译,
1、阿里的Anolis OS 8(龙蜥操作系统,国内开源免费系统兼容centos)
2、centos 7(此体系目前已停止维护,可选择阿里的Anolis OS系统,好处是阿里的此系统无缝对接centos)
三、freeswtich安装包
若对freeswitch源码编译感觉比较费时的读者,可直接应用已经编译好的freeswitch安装包,点击以下网址有详细说明介绍:
国内开源社区gitcode获取freeswitch安装包
全球开源社区github获取freeswitch安装包
四、freeswitch下载
网址:http://files.freeswitch.org/freeswitch-releases/
本篇下载的版本为:freeswitch-1.10.5.-release.tar.gz
下载fs的指定版本至 /usr/local/src/目录下
五、安装依赖环境
在命令行中依次执行以下安装命令:
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
yum install autoconf automake postgresql-devel libtool gcc gcc-c++ libtiff libtiff-devel libjpeg-devel openssl-devel
yum install libuuid-devel yasm nasm sqlite-devel libcurl-devel speex-devel ldns-devel libedit-devel lua-devel libsndfile-devel
sudo yum install speexdsp-devel
六、安装freeswitch
1.解压下载的freeswitch
在下载的freeswitch处(/usr/local/src/目录下),解压freeswitch,执行以下命令:
tar zxvf freeswitch-1.10.5.-release.tar.gz
2、配置
进入freeswtich的解压目录,分别执行以下操作:
./rebootstrap.sh
./configure
因为操作系统有很多依赖文件不存在,要求自行下载安装。就是在执行以上命令时,可能会报很多错,那
我在这里把我在配置过程中出现的错误(每个人出现的错误,可能不一定一样),罗列如下,以供参考:
执行./configure遇到的挑战
(1)、缺少C++编译器
在执行./configure中,有可能会提示缺少c++的编译器。这时候需要先安装c++编译器,这里选择gcc
yum -y install gcc
yum -y install gcc-c++
(2)、
得安装spandsp3和sofia-sip
在执行./configure中,遇到类似下图的错误
安装spandsp,第一从git上下载https://github.com/freeswitch/spandsp.git。然后执行
进入 /usr/local/src/目录下
命令:git clone https://github.com/freeswitch/spandsp.git
Git命令未知如下图,需要安装git
yum install -y git
Git安装好之后,再次git clone https://github.com/freeswitch/spandsp.git
进入刚下载的spandasp目录
依次执行以下命令:
./bootstrap.sh -j
./configure
make
make install
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:${PKG_CONFIG_PATH}
ldconfig
继续安装freeswitch
我在执行./bootstrap.sh -j还是报错,意思是缺少libtoolize,这个我们还需安装libtool
yum install libtool
接着执行./configure时分别报缺少libtiff-devel和libjpeg-devel,因此大家又需要安装
yum install libtiff-devel
yum install libjpeg-devel
出现需要安装sofia-sip错误时
接着安装sofia-sip,首先下载源码https://github.com/freeswitch/sofia-sip.git,之后执行:
命令:git clone https://github.com/freeswitch/sofia-sip.git
进入刚下载的sofia-sip目录
cd /usr/local/src
git clone https://github.com/freeswitch/sofia-sip.git
cd /usr/local/src/sofia-sip
./bootstrap.sh -j
./configure
make
make install
ldconfig
问题:
Cmake 未安装
下载cmake并进行编译安装,在/usr/local/src目录下执行
wget https://cmake.org/files/v3.14/cmake-3.14.0.tar.gz
tar vzxf cmake-3.14.0.tar.gz
cd cmake-3.14.0
./configure
make -dj
make install
(3)、配备成功:
如下图所示,表示freeswitch就配置成功了。
3、编译Make
我出现的错误,我把这些错误整理出来,以供大家参考:就是在命令行中执行make 命令,可能会出现以下的错误,以下
(1)、问题1:Neither yasm nor nasm have been found.
第一步:yasm --version(先检查版本)
根据提示安装yasm,
第二步:安装 nasm
sudo yum install nasm
(2)、问题2:
Make过程中,报错:
libtool: Version mismatch error. This is libtool 2.4.6 Debian-2.4.6-2, but the
libtool: definition of this LT_INIT comes from libtool 2.4.2.
libtool: You should recreate aclocal.m4 with macros from libtool 2.4.6 Debian-2.4.6-2
libtool: and run autoconf again.
CC src/libfreeswitch_la-switch_core_cert.lo
make[1]: *** [src/libfreeswitch_la-switch_apr.lo] 错误 63
make[1]: *** 正在等待未搞定的任务…
解决办法:
Freeswitch源码目录下执行命令:autoreconf –fiv
若仍然报错:autoreconf: ‘configure.ac’ or ‘configure.in’ is required
Freeswitch源码目录下执行命令:autoreconf –fiv -i
即可
或再执行:autoreconf -fiv
(3)、问题3:
You must install libavformat-dev to build mod_av. Stop.
解决办法:
通过备注:能够不应该mod_av了,此模块已经被最新版本freeswitch删除,因为已经被webRTC代替了。
解决办法:在modules.conf中注释掉mod_av,fs再重新开始编译。(modules.conf位于源代码目录下,见后面mod_opus问题处)
(4)、问题4:
You must install libopus-dev to build mod_opus. Stop
解决办法:
注释掉opus,fs重新开始编译
(5)、问题5:
You must install libks to build mod_signalwire. Stop.
解决办法:
1)安装 libks(signalwire的依赖项)
yum install libuuid-devel libatomic
wget https://github.com/signalwire/libks/archive/refs/tags/v1.8.2.tar.gz
(上述解压出来的文件夹为libks1.8.2)
cd libks
cmake . (备注:cmake后面有一个. 若提示cmake command not find,说明cmake未安装,按照后面步骤安装cmake .)
make
make install
安装完毕后,freeswitch源码再从 reboot, configure, make再执行一次。
(6)、问题6:
Cmake 未安装
下载cmake并进行编译安装,在/usr/local/src目录下执行
wget https://cmake.org/files/v3.14/cmake-3.14.0.tar.gz
tar vzxf cmake-3.14.0.tar.gz
cd cmake-3.14.0
./configure
make
make install
(7)、难题7:
You must install signalwire-client-c to build mod_signalwire.
解决办法:
wget https://github.com/signalwire/signalwire-c/archive/refs/tags/1.3.0.tar.gz
tar zxvf signalwire-c-1.3.0.tar.gz
cd signalwire-c-1.3.0
cmake .
make
sudo make install
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/local/lib64/pkgconfig:${PKG_CONFIG_PATH}
sudo ldconfig
freeswitch再次重新编译:./rebootstrap.sh && ./configure && make
(8)、问题8:
编译mod_spandsp报错
查看编译的日志,如下:
解决办法:
原因:
由于FreeSwitch依赖spandsp,而spandsp库在不断更新和提交,于是出现版本不兼容的挑战。
解决方式:
回退到匹配版本。
git clone https://github.com/freeswitch/spandsp.git
cd spandsp
#切换到2023年07月05的分支版本,如下:
git checkout -b finecode20230705 0d2e6ac65e0e8f53d652665a743015a88bf048d4
./bootstrap.sh -j
./configure
make
make install
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:${PKG_CONFIG_PATH}
ldconfig
freeswitch再次重新编译:./rebootstrap.sh && ./configure && make
编译成功:(如下图所示)
编译成功:freeswitch has been successfully built
4、安装 make install
在命令行中执行命令:make install
安装成功,如下图所示:
七、运行freeswitch
在 /usr/local/freeswitch/bin目录下,
运行 ./freeswitch -nonat
freeswitch运行成功,如下图所示:
总结
通过以上选择直接利用freeswtich安装包或freeswitch源码编译两种方式,读者按照我们第一篇的讲解和操作,经过自己的努力,应该就把freeswtich软交换系统搭建起来了。
若还有任何问题、疑问可进入以下开源社区找到您的答案
全球github呼叫中心开源社区