• 如何在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
    
    • 1
    • 2
    • 3

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

    $ sudo apt -y update
    $ sudo apt -y upgrade
    
    • 1
    • 2

    接下来,安装在 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
    
    • 1
    • 2
    • 3
    • 4

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

    $ 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
    
    • 1
    • 2
    • 3

    下载源代码
    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.
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    安装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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33

    编译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  
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    开始安装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/
    
    • 1
    • 2
    • 3
    • 4
    • 5

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

    $ sudo apt -y install unzip
    
    • 1

    现在运行标准安装过程

    //编译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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

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

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

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

    $ sudo make install
    
    • 1

    现在编译声音

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

    安装完成

    创建 simlink 以轻松使用服务。

    $ sudo ln -s /usr/local/freeswitch/bin/freeswitch /usr/bin/
    $ sudo ln
    • 1
  • 相关阅读:
    git使用经验
    欧拉角(Euler Angle)
    NumPy 数组索引 切片
    RNA 20. SCI 文章中单样本免疫浸润分析 (ssGSEA)
    【校招VIP】数据库之优化相关
    Linux 6.0 正式发布,新特征一览!
    Jedis操作Redis
    java多线程-线程间通信
    【01】LVGL-CodeBlock模拟器安装 | LVGL工程下载 | PC端模拟LVGL步骤
    二叉树前, 中,后序查找算法(思路分析)
  • 原文地址:https://blog.csdn.net/Linux7985/article/details/132702201