ubuntu 18.04 server源码编译安装freeswitch 1.10.11——筑梦之路

前言

这里主要编译支持语音通话、视频通话、短信、webrtc功能的PBX。

安装编译工具包和依赖包

sudo apt-get update
 
sudo apt-get install -y autoconf git libtool g++ zlib1g-dev libjpeg-dev libcurl4-openssl-dev libspeex-dev libldns-dev libedit-dev libssl-dev pkg-config yasm liblua50-dev libopus-dev libsndfile1-dev libpq-dev libreadline-dev lua5.2 lua5.2-doc liblua5.2-dev libtiff5 libtiff5-dev
 
sudo apt-get install -y vim
 
sudo apt-get install -y g++
 
sudo apt-get install -y zlib1g-dev
 
sudo apt-get install -y libjpeg-dev
 
sudo apt-get install -y libsqlite3-dev
 
sudo apt-get install -y libcurl4-gnutls-dev
 
sudo apt-get install -y libpcre3-dev
 
sudo apt-get install -y libspeexdsp-dev
 
sudo apt-get install -y libedit-dev
 
sudo apt-get install -y libssl-dev
 
sudo apt-get install -y libopus-dev
 
sudo apt-get install -y liblua5.2-dev
 
sudo apt-get install -y libldns-dev
 
sudo apt-get install -y libsndfile1-dev
 
sudo apt-get install python3-pip -y
 
sudo apt-get install unixodbc unixodbc-dev
 
sudo apt install libavformat-dev -y
 
sudo apt install libswscale-dev -y
 
sudo apt install doxygen cmake uuid-dev -y

编译安装sofia-sip

git clone https://github.com/freeswitch/sofia-sip.git
 
./bootstrap.sh -j
 
./configure
 
make
 
make install

编译安装spandsp

git clone https://github.com/freeswitch/spandsp.git
 
cd spandsp
 
git checkout -b finecode20230705 0d2e6ac65e0e8f53d652665a743015a88bf048d4
 
./bootstrap.sh -j
 
./configure
 
make
 
make install

编译安装libks

git clone https://github.com/signalwire/libks.git
cd libks
sudo cmake .
sudo make
sudo make install
 
cat /etc/profile
 
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/lib/pkgconfig:${PKG_CONFIG_PATH}

source /etc/profile

 编译安装freeswitch

git clone --branch v1.10.11 https://github.com/signalwire/freeswitch.git
 
# 编辑配置,去掉模块mod_signalwire,启用模块mod_callcenter

sed -i 's/applications\/mod_signalwire/#applications\/mod_signalwire/g' freeswitch/modules.conf
 
sed -i 's/#applications\/mod_callcenter/applications\/mod_callcenter/g' freeswitch/modules.conf

cd freeswitch 
 
./configure --enable-portable-binary --with-gnu-ld --with-python3 --with-openssl --enable-core-odbc-support --enable-zrtp  --enable-core-pgsql-support
 
make -j2
 
make install
 
make -j cd-sounds-install
make -j cd-moh-install

 

 

配置软连接和后台启动

#freeswitch启动:
/usr/local/freeswitch/bin/freeswitch -nonat -nc
 
#做软链,方便启动:
ln -s /usr/local/freeswitch/bin/fs_cli /usr/local/bin/
ln -s /usr/local/freeswitch/bin/freeswitch /usr/local/bin/

使用systemctl管理服务(可选)

cat /etc/systemd/system/freeswitch.service
[Unit]
Description=FreeSWITCH Soft-Switched Voice over IP Telephony
After=network.target
 
[Service]
Type=forking
ExecStart=/usr/local/freeswitch/bin/freeswitch -nc
ExecStop=/usr/local/freeswitch/bin/freeswitch -stop
 
[Install]
WantedBy=multi-user.target

# ##################
systemctl daemon-reload

systemctl enable freeswitch --now

systemctl status freeswitch

测试验证

思路:使用软电话注册互拨测试就行,包括语音通话测试、视频通话测试、短信发送等。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/735708.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

pywebview打包本地的html

51.安装 pip install pywebview 2.新建start.py import webview import timeclass API:def say_hello(self, name):time.sleep(2) # 模拟一个耗时操作return fHello, {name}!def main():api API()webview.create_window(pywebview Example, index.html, js_apiapi)webview.…

Java 集合框架详谈及代码分析(Iterable->Collection->List、Set->各接口实现类、Map->各接口实现类)

目录 Java 集合框架详谈及代码分析(Iterable->Collection->List、Set->各接口实现类、Map->各接口实现类)1、集合概述1-1:Java 集合概述1-2:List、Set、Map 三者的区别?1-3:集合框架底层数据结…

卡尔曼滤波-剔除异常值的影响

二郎在看论文的时候,发现了一个针对卡尔曼滤波过程中,测量向量出现误差导致滤波发散的处理方法。 该方法也可以扩展到其他问题中使用,所以二郎在这里写一下。 论文原文:https://www.mdpi.com/1424-8220/20/17/4710 论文翻译对应…

linux使用docker部署kafka集群

1、拉取kafka docker pull wurstmeister/kafka docker pull wurstmeister/zookeeper 2、创建网络 docker network create app-kafka 3、启动zookeeper docker run -d \--name zookeeper \-p 2181:2181 \--network app-kafka \--restart always \wurstmeister/zookeeper …

电磁兼容试验数据的单位转换 笔记

1. 单位dB 的介绍 分贝(decibel,/dɛsɪ.bɛl/)是量度两个相同单位之数量比例的计量单位,主要用于度量声音强度,常用dB表示。 分贝是较常用的计量单位。可表示为: 1. 表示功率量之比的一种单位&#xff0c…

新手教学系列——“笑看”单元测试(pytest)

探索单元测试的必要性 你是否曾经思考过,当前的业务场景是否真的需要单元测试?我们每个人负责的模块是否也需要单元测试?什么阻碍了我们进行单元测试呢?时间紧,任务重,还要写测试?这些都是我们在开发过程中常见的问题。假设我们有一个计划开发一周的项目,让我们看看有…

Jenkins nginx自动化构建前端vue项目

在现代的Web开发中,Vue.js已经成为一种非常流行的JavaScript框架。为了更高效地管理和部署Vue.js项目,使用自动化构建工具是至关重要的。Jenkins作为一款强大的持续集成和持续部署(CI/CD)工具,为我们提供了一种便捷的方…

控制下属很简单,用好这3大管人绝招,再跳的刺头也不敢造次

控制下属很简单,用好这3大管人绝招,再跳的刺头也不敢造次 第一招:给压力 很多团队中的员工都是自己不带脑子工作,遇事就喜欢请示领导,让领导拿方案、拿决策。 还有一些人,推一下,他才动一下&a…

【数据库】七、数据库安全与保护

七、数据库安全与保护 文章目录 七、数据库安全与保护安全性访问控制数据库安全性控制用户标识和鉴别存取控制自主存取控制(DAC)存取控制方法:授权与回收GRANT授权REVOKE回收 强制存取控制(MAC) MySQL的安全设置用户管理1.创建登录用户2.修改用户密码3.修改用户名4.…

L02_并发编程知识图谱

这些知识点你都掌握了吗?大家可以对着问题看下自己掌握程度如何?对于没掌握的知识点,大家自行网上搜索,都会有对应答案,本文不做知识点详细说明,只做简要文字或图示引导。 并发理论 并发编程Bug源头 为了…

Ant Design Vue中的Table和Tag的基础应用

目录 一、Table表格 1.1、显示表格 1.2、列内容过长省略展示 1.3、完整分页 1.4、表头列颜色设置 二、Tag标签 2.1、根据条件显示不同颜色 2.2、控制关闭事件 一、Table表格 效果展示&#xff1a; 官网&#xff1a;Ant Design Vue 1.1、显示表格 <a-tableref&quo…

hdfs高可用文件系统架构

1、整体架构 2、角色简介 2.1、namenode NameNode 是 HDFS 集群中的核心组件&#xff0c;负责管理文件系统的元数据、处理客户端请求、管理数据块、确保数据完整性和高可用性。由于其重要性&#xff0c;NameNode 的性能和可靠性直接影响整个 HDFS 集群的性能和可靠性。在生产…

Linux 五种IO模型

注&#xff1a;还有一种信号驱动IO&#xff0c;使用较少暂不讨论&#xff1b; 一&#xff0c;区分阻塞、非阻塞和同步、异步 看了很多文章对这两组概念解释和对比&#xff0c;说的太复杂了&#xff0c;其实没必要&#xff0c;两句话就能说清楚。 首先&#xff0c;对于读数据rec…

Day6 —— 电商日志数据分析项目部署流程

项目二 _____&#xff08;电商日志数据分析项目&#xff09; 项目部署过程相关依赖运行结果截图统计页面浏览量日志的ETL操作统计各个省份的浏览量 项目部署过程 以IDEA 2023版本为例 步骤一&#xff1a;创建一个空项目&#xff0c;命名为demo_2&#xff0c;并指定语言类型和构…

【2024德国留学】签证被拒的十种原因.....

目录 2024德国留学签证被拒的常见原因 一、德语水平不足 二、录取考试未通过 三、签证申请中的其他问题 一、选择适合自己的签证类型 二、准备面签材料 1. 确认预约邮件 2. 签证申请表 3. 自备3张证件照 4. 护照原件和复印件 5. 动机信 6. 个人简历 7. 学历证及其…

15天搭建ETF量化交易系统Day9—玩大A必学网格策略

搭建过程 每个交易者都应该形成一套自己的交易系统。 很多交易者也清楚知道&#xff0c;搭建自己交易系统的重要性。现实中&#xff0c;从&#xff10;到&#xff11;往往是最难跨越的一步。 授人鱼不如授人以渔&#xff0c;为了帮助大家跨出搭建量化系统的第一步&#xff0c;我…

Python+Pytest+Yaml+Request+Allure接口自动化测试框架详解

PythonPytestYamlAllure整体框架目录&#xff08;源代码请等下篇&#xff09; 框架详解 common:公共方法包 –get_path.py:获取文件路径方法 –logger_util.py:输出日志方法 –parameters_until.py&#xff1a;传参方式方法封装 –requests_util.py&#xff1a;请求方式方法封…

基于matlab的不同边缘检测算子的边缘检测

1 原理 1.1 边缘检测概述 边缘检测是图像处理和计算机视觉中的基本问题&#xff0c;其目的在于标识数字图像中亮度变化明显的点。这些变化通常反映了图像属性的重要事件和变化&#xff0c;如深度不连续、表面方向不连续、物质属性变化和场景照明变化等。边缘检测在特征提取中…

Dockerfile实战

Dockerfile是用来快速创建自定义镜像的一种文本格式的配置文件&#xff0c;在持续集成和持续部署时&#xff0c;需要使用Dockerfile生成相关应用程序的镜像。 Dockerfile常用命令 FROM&#xff1a;继承基础镜像MAINTAINER&#xff1a;镜像制作作者的信息&#xff0c;已弃用&a…

经典面试题【作用域、闭包、变量提升】,带你深入理解掌握!

前言&#xff1a;哈喽&#xff0c;大家好&#xff0c;我是前端菜鸟的自我修养&#xff01;今天给大家分享经典面试题【作用域、闭包、变量提升】&#xff0c;并提供具体代码帮助大家深入理解&#xff0c;彻底掌握&#xff01;原创不易&#xff0c;如果能帮助到带大家&#xff0…