当前位置: 首页 > news >正文

呼叫中心开源社区专栏第一篇 - 详解

呼叫中心源代码开源社区专栏第一篇

一次性或一篇文章就能全部写完的,在此分为多个篇章来逐步介绍。就是关于呼叫中心源代码开源社区专栏,我一直想要写这一专栏,最近终于有了时间,静下心来把呼叫中心开源贡献给大家,鉴于呼叫中心本身的特殊性,也不

呼叫中心源代码开源社区如下:

国内gitcode呼叫中心开源社区

全球github呼叫中心开源社区


前言

呼叫中心源码开源第一篇从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软交换系统搭建起来了。

若还有任何问题、疑问可进入以下开源社区找到您的答案

国内gitcode呼叫中心开源社区

全球github呼叫中心开源社区

http://www.hskmm.com/?act=detail&tid=16829

相关文章:

  • 原核表达可溶性蛋白难题破解
  • 深入解析:Adobe Fresco下载教程Adobe Fresco 2025保姆级安装步骤(附安装包)
  • Torch中的tensor size
  • Codeforces 1053 (Div.2)
  • 抗体药物偶联物(ADCs)生物分析:拆解 “靶向导弹” 体内轨迹的核心技术
  • 详细介绍:微服务的适用边界:从金融科技到量子计算的架构哲学
  • 使用IOT-Tree整合复杂计算模型(含AI模型),并对接现场设备优化控制(节能提效)技能方案
  • 为什么应该测试无JavaScript的页面体验
  • 前台部分数据不显示
  • 指针定义以及二维数组内存地址(java/c++/python)
  • 解码数据结构线性表之顺序表
  • 中电金信:源启数据集成平台全新升级,实现便捷与性能双飞跃
  • Jupyter NoteBook / Jupyter Lab的安装与使用
  • 完整教程:科技的温情——挽救鼠鼠/兔兔的生命
  • 易基因:Nat Rev Drug Discov/IF101.8:何川团队顶刊综述RNA修饰系统作为疾病治疗靶点的研究进展
  • 国产适配 + AI 一键生成!亿图图示 14.5 全平台绘图指南:260 种图表 + Visio 兼容,开发者 / 办公党速藏
  • 关闭Cadence Allegro Design Entry CIS(OrCAD Capture)的Start Page
  • Mini L-CTF 2025 WP
  • K8S APIServer压力高,导致控制器Leader续约失败而重启问题
  • 【2025-09-24】连岳摘抄
  • 8K 视频修复提速 50%!Topaz Video AI 7.0.0 实战指南:AI 增强 + 本地化模型 + GPU 加速全解析
  • Qwen 发布高精度实时音视频同传模型;AirPods 实时翻译功能新增中文丨日报
  • vivo 浏览器福利体系架构演进之路
  • 2024JCR最新完整版期刊名单!【附带21-23年完整版表格】
  • ESP8266+CH340+SG90舵机远程控制开关
  • 【ACM出版、连续三届EI检索】第四届人工智能与智能信息处理国际学术会议(AIIIP 2025)
  • 08_多线程编程
  • VisionPro学习笔记- PMAlignTOOL
  • FeignClient提示No subject alternative DNS name matching配置SSL
  • 【组合数学基础9】Catalan数(卡特兰数)笔记