如何在Ubuntu 20.04|18.04上安装 FreeSwitch

PBX 是 Private Branch Exchange 的缩写。它是在组织内部使用的专用电话系统,并根据特定组织的需求进行定制。组织中的 PBX 用户可以在内部进行内部通信,也可以与外界进行外部通信。VoIP(IP 语音)、ISDN(综合业务数字网络)或模拟等渠道促进了外部通信。

使用 PBX 电话系统的优点是,您可以获得比物理线路更多的电话、用户之间的免费通话以及呼叫队列、数字接线员、呼叫转移、语音邮件和呼叫录音等大量功能。PBX 电话系统的一些示例包括 FreeSwitch、3cx、Elastix、FreePBX 和 Asterisk。

在本指南中,我们将了解如何在 Ubuntu 20.04/18.04 上安装 FreeSwitch PBX

什么是 FreeSwitch PBX?

FreeSwitch 是一个免费的开源通信平台。它支持实时通信、视频以及 IP 语音和WebRTC。它可以在 Windows、MacOS、Linux 和 FreeBSD 上运行。它用于构建具有聊天和屏幕共享的网络会议、IVR、会话边界控制器、批发最低成本路由等功能的 PBX 系统。

FreeSwitch PBX 系统有哪些功能?

  • 可在 Windows、Linux 和 FreeBSD 上运行
  • 语音应答接口
  • WebRTC 支持
  • 通话录音(立体声呼叫者/被呼叫者左/右)
  • 高性能多线程核心引擎
  • 平行狩猎
  • 连环狩猎
  • 自动服务员
  • 基本 IP/PBX 功能
  • 自定义回铃音(早期媒体)

开始部署

freeswitch1.10.7/freeswitch1.10.8安装情况应该与freeswitch1.10.9相同

部署前准备

$ sudo apt-get install libavformat-dev
$ sudo apt-get install libswscale-dev
$ sudo apt-get install libpq-dev

在 Ubuntu 20.04/18.04 上安装 FreeSwitch PBX
首先更新你的系统包

$ sudo apt -y update
$ sudo apt -y upgrade

接下来,安装在 Ubuntu 20.04/18.04 上运行 FreeSwitch PBX 所需的依赖项

$ sudo apt install -y git subversion build-essential autoconf automake libtool g++ pkg-config
	libtiff-dev libncurses5 libncurses5-dev make libjpeg-dev libtool libtool-bin
	libsqlite3-dev libpcre3-dev libspeexdsp-dev libldns-dev libedit-dev
	yasm uuid uuid-dev liblua5.2-dev libopus-dev cmake

以下软件包是可选的,但我们可以安装它们。

$ sudo apt install -y libcurl4-nss-dev libcurl4-openssl-dev libexpat1-dev
	libgnutls28-dev libtiff5-dev libx11-dev unixodbc-dev libssl-dev python-dev
	zlib1g-dev libasound2-dev libogg-dev libvorbis-dev libperl-dev libgdbm-dev libdb-dev uuid-dev libsndfile1-dev

下载源代码
freeswitch1.10.4及之后的版本freeswitch官方将spandsp 和 sofia-sip单拎出来了,需要单独拉代码编译,如果是编译1.10.4之前的freeswitch(如freeswitch1.10.2版本)不必单独拉spandsp和sofia-sip的代码,直接编译freeswitch即可

重大改动历史:
`https://developer.signalwire.com/freeswitch/FreeSWITCH-Explained/Release-Notes/FreeSWITCH
	-1.10.x-Release-notes_25460878/`

//可直接在上述链接中下载freeswitch的tar包
1.8 -> 1.10.0: pgqsql moved out from FreeSWITCH core to its own module, mod_pgsql .
See 1.10.0 (Release date: 05 August 2019) at the bottom.
1.10.3 -> 1.10.4: SpanDSP and sofia-sip have been removed.
See 1.10.4 (Release date: 05 Aug 2020)​ below.
1.10.6 -> 1.10.7: Default behaviour change: to not skip announcement type apps on recovery, 
not hangup call on SRTP errors, 1000 maximum receiving requests per second, auth-messages
 and auth-subscriptions are enabled by default now, freeswitch.log log line prefix modified: 
 will affect fail2ban log line matching until similarly modified in fail2ban 
 (https://github.com/fail2ban/fail2ban/issues/3143).
See 1.10.7 (Release date: 24 Oct 2021)​ below.

安装spandsp、sofia-sip、libks和signalwire

// 安装spandsp
$ git clone https://github.com/freeswitch/spandsp.git
$ cd spandsp
$ ./bootstrap.sh -j
$ ./configure
$ make
$ sudo make install
$ ldconfig

// 安装sofia-sip
no usable sofia-sip; please install sofia-sip-ua devel package or equivalent
$ git clone https://github.com/freeswitch/sofia-sip.git
$ cd sofia-sip
$ ./bootstrap.sh -j
$ ./configure
$ make
$ make install0
$ ldconfig

$ sudo apt install -y cmake
$ cd /usr/src
$ sudo git clone https://github.com/signalwire/libks.git
$ cd libks
$ sudo cmake .
$ sudo make
$ sudo make install

$ cd /usr/src
$ git clone https://github.com/signalwire/signalwire-c.git
$ cd signalwire-c
$ sudo cmake .
$ sudo make
$ sudo make install

编译freeswitch前将不必要的模块编译禁用掉,如果不禁用则需要安装对应的依赖,否则会报错

$ cd /usr/local/src/freeswitch
$ vim module.conf

//将mod_signalwire和mod_av内容注释掉

$ applications/mod_signalwire
$ applications/mod_av

//mod_verto不禁用可能会编译报错You need to either install libks or disable mod_verto in modules.conf
$ endpoints/mod_verto  

开始安装freeswitch

接下来,使用 wget从 freeswitch发布页面 获取最新的 FreeSwitch 版本:

$ cd /usr/src
$ sudo wget https://files.freeswitch.org/freeswitch-releases/freeswitch-1.10.3.-release.zip
$ sudo apt -y install unzip
$ sudo unzip freeswitch-1.10.3.-release.zip
cd freeswitch-1.10.3.-release/

请注意 ,如果您尚未安装 unzip,请通过运行 apt -y install unzip安装它

$ sudo apt -y install unzip

现在运行标准安装过程

//编译freeswitch
$ cd /usr/local/src/freeswitch
$ ./bootstrap.sh  //如果是GitHub拉的代码有这一步,如果是下载tar包解压的没有这一步
$ ./configure --enable-portable-binary --prefix=/usr/local/freeswitch
	--with-gnu-ld --with-python --with-openssl
	--enable-core-odbc-support --enable-zrtp
$ make

如果在编译过程中遇到错误,您可以注释掉任何引发错误的模块或安装缺少的依赖项。就我而言,我最初注释掉了 languages/mod_lua 和 applications/mod_signalwire ,但您可以根据收到的错误注释更多内容。之后重新启动编译,如下所示:

$ sudo ./configure && sudo make clean && sudo make

如果编译成功, 接下来,安装 freeswitch:

$ sudo make install

现在编译声音

$ sudo make all cd-sounds-install cd-moh-install

安装完成

创建 simlink 以轻松使用服务。

$ sudo ln -s /usr/local/freeswitch/bin/freeswitch /usr/bin/
$ sudo ln -s /usr/local/freeswitch/bin/fs_cli /usr/bin

添加具有较低权限的新组和用户来运行 FreeSWITCH 服务。

$ cd /usr/local
$ sudo groupadd freeswitch
$ sudo adduser --disabled-password  --quiet --system
	--home /usr/local/freeswitch --gecos "FreeSWITCH Voice Platform" --ingroup freeswitch freeswitch
$ sudo chown -R freeswitch:freeswitch /usr/local/freeswitch/
$ sudo chmod -R ug
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: Ubuntu 20.0418.04是两个不同版本的Ubuntu操作系统。它们之间的主要区别包括以下几点: 1. 内核版本:Ubuntu 20.04默认使用的是Linux内核5.4,而Ubuntu 18.04默认使用的是Linux内核4.15。新的内核版本通常会提供更好的性能和更好的硬件支持。 2. 桌面环境:Ubuntu 20.04默认使用的是GNOME 3.36桌面环境,而Ubuntu 18.04默认使用的是GNOME 3.28桌面环境。GNOME 3.36提供了一些新的功能和改进,例如更好的应用程序启动器和更好的触摸支持。 3. 应用程序版本:Ubuntu 20.04默认提供了一些新的应用程序版本,例如Firefox 75,LibreOffice 6.4和GIMP 2.10。这些版本通常提供了更好的性能和更多的功能。 4. 支持周期:Ubuntu 20.04是LTS(长期支持)版本,支持期限为10年,而Ubuntu 18.04是LTS版本,支持期限为5年。这意味着,如果您需要更长时间的支持和更新,那么选择Ubuntu 20.04可能更合适。 总之,Ubuntu 20.0418.04都是稳定可靠的操作系统,您可以根据自己的需求选择其中之一。如果您需要更好的性能和更多的新功能,则可能更喜欢Ubuntu 20.04。如果您需要更长时间的支持和更新,则可能更喜欢Ubuntu 18.04。 ### 回答2: Ubuntu是一款广受欢迎的开源操作系统。Ubuntu 20.0418.04分别是Ubuntu的两个版本,它们之间有许多区别。 首先,Ubuntu 20.0418.04安装程序不同。Ubuntu 20.04拥有新的安装程序,界面更加简洁直观,安装流程也更加快速。而18.04安装程序则较为传统,较多用户会选择使用命令行进行安装。 其次,Ubuntu 20.04相比18.04提供了更多的新功能。其中包括改进的GNOME 3.36桌面环境、新版Linux内核(5.4)、许多新软件包和更新软件版本等等,这些因素可以为用户带来更好的体验和更高的性能。 另外,20.0418.04考虑到软件和硬件的兼容性也有不同之处。Ubuntu 20.04支持更多的硬件设备和软件包比18.04,特别是对于最新的硬件,如英特尔第十代处理器,其兼容性更好。同时,20.04对容器化等技术提供了更好的支持。 最后,Ubuntu 20.04相比18.04在安全性和稳定性上有更强的保障。Ubuntu 20.04已经引入许多特性,如应用程序沙盒、FIPS-140认证等,为用户提供更加安全可靠的操作环境。在软件更新方面,ubuntu 20.04也更加注重稳定性,并且提供了长期支持(LTS)版本。 综上所述,Ubuntu 20.0418.04在界面、安装和功能等方面存在差异。Ubuntu 20.04提供更多的新功能,硬件和软件兼容性更好,安全性和稳定性更强。因此,用户可根据自身需求和硬件配置选择适合自己的版本。 ### 回答3: Ubuntu 20.04Ubuntu 18.04一样,都是发行版的版本号,是基于Debian Linux的操作系统,他们的主要区别在于以下几个方面: 首先,Ubuntu 20.04的最大的区别是内核的更新,从Ubuntu 18.04的4.15升级到Ubuntu 20.04的5.4,这意味着它带来了更高的性能和更好的硬件支持。此外,Ubuntu 20.04采用了更先进的硬件栈,可以更好地支持最新的硬件设备。 其次,在外观方面,Ubuntu 20.04使用了全新的Yaru主题,为用户提供了更加美观的桌面体验。 再次,在软件更新方面,Ubuntu 20.04通过引入Snap软件包格式来进一步规范和简化了软件安装过程,同时也提供了更好的安全性和隔离性。 最后,在桌面功能方面,Ubuntu 20.04增加了一些新功能,例如添加了Livepatch自动更新功能,令用户不再需要手动更新 kernel 补丁;并且增强了集成式搜索的能力。 总的来说,Ubuntu 20.04展现了更先进的技术和更优化的用户体验,而Ubuntu 18.04则在稳定性和当前流行软件的广泛支持方面仍然是一个出色的选择。当然,具体使用哪个版本,还要看用户的需求和偏好,因为不同版本都有特殊的优势和劣势。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

烈火蜓蜻

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值