docker安装Debian:11 freeswitch1.10.5

news2024/11/19 16:35:08

文章目录

  • 一、生成一个镜像
  • 二、切换一个镜像源为阿里源
  • 三、安装一些相关依赖和freeswitch
    • 3.1第一步:安装freeswitch-mod和下载所需的依赖项
    • 3.2 设置密钥
    • 3.3 安装freeswitch所需的依赖项
    • 3.4 报错
      • 3.4.1 报错1
      • 3.4.2 报错2
      • 3.4.3 报错3
  • 四、运行
    • 4.1 通话三十秒自动挂断

一、生成一个镜像

docker run  -dit  --name fs_v2 debian:11 /bin/sh

二、切换一个镜像源为阿里源

sed -i 's/http:\/\/deb.debian.org/http:\/\/mirrors.aliyun.com/g' /etc/apt/sources.list

三、安装一些相关依赖和freeswitch

3.1第一步:安装freeswitch-mod和下载所需的依赖项

apt update
apt-get update
apt install vim
apt-get install -yq gnupg2 wget lsb-release
apt install git
apt-get -yq install \
# build
    build-essential cmake automake autoconf 'libtool-bin|libtool' pkg-config \
# general
    libssl-dev zlib1g-dev libdb-dev unixodbc-dev libncurses5-dev libexpat1-dev libgdbm-dev bison erlang-dev libtpl-dev libtiff5-dev uuid-dev \
# core
    libpcre3-dev libedit-dev libsqlite3-dev libcurl4-openssl-dev nasm \
# core codecs
    libogg-dev libspeex-dev libspeexdsp-dev \
# mod_enum
    libldns-dev \
# mod_python3
    python3-dev \
# mod_av
    libavformat-dev libswscale-dev libavresample-dev \
# mod_lua
    liblua5.2-dev lua-cjson \
# mod_opus
    libopus-dev \
# mod_mariadb
    libmariadb3 \
# mod_pgsql
    libpq-dev \
# mod_sndfile
    libsndfile1-dev libflac-dev libogg-dev libvorbis-dev \
# mod_shout
    libshout3-dev libmpg123-dev libmp3lame-dev

3.2 设置密钥

获取key,获取地址:https://developer.signalwire.com/freeswitch/FreeSWITCH-Explained/Installation/HOWTO-Create-a-SignalWire-Personal-Access-Token_67240087

大家要是懒得申请,就用我的吧。

wget --http-user=signalwire --http-password=pat_KJym6TEtUK6PmADrgBV9A1zp -O /usr/share/keyrings/signalwire-freeswitch-repo.gpg https://freeswitch.signalwire.com/repo/deb/debian-release/signalwire-freeswitch-repo.gpg
echo "machine freeswitch.signalwire.com login signalwire password pat_KJym6TEtUK6PmADrgBV9A1zp" > /etc/apt/auth.conf
chmod 600 /etc/apt/auth.conf
echo "deb [signed-by=/usr/share/keyrings/signalwire-freeswitch-repo.gpg] https://freeswitch.signalwire.com/repo/deb/debian-release/ `lsb_release -sc` main" > /etc/apt/sources.list.d/freeswitch.list
echo "deb-src [signed-by=/usr/share/keyrings/signalwire-freeswitch-repo.gpg] https://freeswitch.signalwire.com/repo/deb/debian-release/ `lsb_release -sc` main" >> /etc/apt/sources.list.d/freeswitch.list


3.3 安装freeswitch所需的依赖项

apt-get update
apt-get build-dep freeswitch
cd /usr/local/src
git clone https://github.com/signalwire/freeswitch.git -b  v1.10.5 freeswitch
cd freeswitch
./bootstrap.sh -j 
./configure 

因为我们所在的分支机构将经历许多重组,一定要在Freeswitch文件夹里面执行一下的代码
最好设置这个,否则拉(更新)时会出现冲突。

git config pull.rebase true

为有些大帅哥大漂亮git访问困难户提供

链接:https://pan.baidu.com/s/1OlLdBdjZ3kSqUMEIIblDig?pwd=mt2z 
提取码:mt2z

3.4 报错

3.4.1 报错1

checking for libmariadb >= 3.0.9... checking for mariadb >= 3.0.9... no checking for spandsp >= 3.0... configure: error: no usable spandsp; please install spandsp3 devel package or equivalent

cd /usr/local/src
git clone https://github.com/freeswitch/spandsp.git 
cd spandsp 
./bootstrap.sh -j 
./configure 
make 
make install 

这里有可能编译失败,原因是spandsp 版本和freeswitch版本不匹配
错误

V18_MODE_5BIT_4545错误

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

更新环境

vi ~/.bashrc

vi ~/.bash_profile

在文件末尾添加以下内容:

export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:${PKG_CONFIG_PATH}

在这里插入图片描述
然后控制台执行

ldconfig

这样,当用户登录时,这些命令就会自动执行,从而使设置永久生效。

cd /usr/local/src/freeswitch
./bootstrap.sh -j 
./configure 

3.4.2 报错2

checking for sofia-sip-ua >= 1.12.12... configure: error: no usable sofia-sip; please install sofia-sip-ua devel package or equivalent

cd /usr/local/src/
git clone https://github.com/freeswitch/sofia-sip.git
cd sofia-sip
./bootstrap.sh
./configure
 
make
make install
 
ldconfig
cd /usr/local/src/freeswitch
./bootstrap.sh -j 
./configure 
make

3.4.3 报错3

make[4]: Entering directory '/usr/local/src/freeswitch/src/mod/applications/mod_signalwire' Makefile:967: *** You must install libks to build mod_signalwire. Stop. make[4]: Leaving directory '/usr/local/src/freeswitch/src/mod/applications/mod_signalwire' make[3]: *** [Makefile:712: mod_signalwire-all] Error 1

cd /usr/local/src
wget https://cmake.org/files/v3.13/cmake-3.13.3.tar.gz
tar -zxvf cmake-3.13.3.tar.gz
cd cmake-3.13.3 
 ./bootstrap
 make
 make install
cd /usr/local/src
git clone https://github.com/signalwire/libks.git
cd libks
cmake .
make
make install
mkdir -p /usr/lib64/pkgconfig/
cp -r /usr/lib/pkgconfig/libks.pc /usr/lib64/pkgconfig/
cd /usr/local/src
git clone https://github.com/signalwire/signalwire-c.git
cd signalwire-c
cmake .
make
make install
cp -r /usr/local/lib/pkgconfig/*.pc /usr/lib64/pkgconfig/
cp -r /usr/local/lib/* /usr/lib64/
cd /usr/local/src/freeswitch
./bootstrap.sh -j 
./configure 
make && make install  #编译时间很长
ln -sf /usr/local/freeswitch/bin/freeswitch /usr/bin/
ln -sf /usr/local/freeswitch/bin/fs_cli /usr/bin/
# 如有依赖报错,缺什么安装什么

四、运行

我做了一个视频,大家可以参考一下。

https://blog.csdn.net/huiguo_/article/details/134409180

# 后台启动freeswitch服务
freeswitch -nc -rp
freeswitch -nonat -nc -rp  //不检查路由穿透行,加上此参数后会启动很快
freeswitch -stop
fs_cli
# freeswitch -help
	-help                  -- 显示本帮助信息
	-version               -- 显示版本信息
	-rp                    -- 开启高优先级(实时)设置
	-nosql                 -- 不使用SQL,show channels 类的命令将不能显示结果
	-nonat                 -- 如果路由器支持uPnP或NAT-PMP,则FreeSWITCH可以自动解决NAT穿越问题。如果路由器不支持,则该选项可以使启动更快
	-stop                  -- 关闭 FreeSWITCH,它会在run目录中查找 PID文件
	-nc                    -- 启动到后台模式,没有控制台


在这里插入图片描述

4.1 通话三十秒自动挂断

解决:打开/etc/freeswitch/sip_profiles下的配置文件internal.xml,将外网配置注释掉,重启FS;

在这里插入图片描述

bug解释参考
https://blog.csdn.net/FlyLikeButterfly/article/details/100581609

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Hotcoin Research | 模块化将是大势所趋:拆解模块化区块链的现状和未来

关于模块化区块链叙事的讨论源于Celestia和其代币TIA的亮眼表现。实际上,模块化是未来区块链设计的主要发展方向和大势所趋。模块化区块链就像乐高积木一样,将区块链系统拆分为可重用的模块,通过定制组合可实现不同功能的区块链网络。这种灵活…

【半个月我拿下了软考证】软件设计师高频考点--系统化教学-网络安全

👨‍💻 收录于专栏:软件设计师考点暴击 ⭐🅰️进入狂砍分⭐ ⭐软件设计师高频考点文档, ⭐软件设计师高频考点专栏 ⭐软件设计师高频考点⭐ 🎶(A) 考点1,网络攻击 理解记忆 &#…

融知财经:期货在哪里可以交易?期货交易有哪些交易规则?

作为当前金融市场的一种投资方式,期货只适合一些投资者,比如想获得高收益的投资者,因为期货的风险系数很高。但是很多投资者还不知道期货的意思,在一个固定的交易场所,期货是买卖标准化商品或金融资产的远期合约的交易…

软件1班20240509

文章目录 1.JDBC本质2.增3.改4.删5.查6.JDBC标准写法 1.JDBC本质 重写 接口的 方法 idea 报错 – 不动脑 alt enter 知道没有重写方法 CTRL o 重写 方法 快捷键 package com.yanyu;/*** Author yanyu666_508200729qq.com* Date 2024/5/9 14:42* description:*/ public interf…

使用QLoRA在自定义数据集上finetuning 大模型 LLAMA3 的数据比对分析

概述: 大型语言模型(LLM)展示了先进的功能和复杂的解决方案,使自然语言处理领域发生了革命性的变化。这些模型经过广泛的文本数据集训练,在文本生成、翻译、摘要和问答等任务中表现出色。尽管LLM具有强大的功能,但它可能并不总是与特定的任务或领域保持一致。 什么是LL…

oracle 数据库找到UDUMP的文件名称

oracle 数据库找到UDUMP的文件名称 select p.value||\||i.instance_name||_ora_||spid||.trc as "trace_file_name" from v$parameter p ,v$process pro, v$session s, (select sid from v$mystat where rownum1) m, v$instance i where lower(p.name)user_dump_…

红米Turbo3小米平板6SPro澎湃OS系统强解BL锁-跳小米社区绑定-刷ROOT权限

红米Turbo3小米平板6SPro这2款设备都出厂为澎湃OS系统,官方提供都是小米社区申请解锁权限,然后自己答题解锁,门槛非常高,想要玩机root的用户,都在堵在门外。还在这目前这两款机型官方并没有加入强制验证,在…

Python turtle绘制图形详解

Python 的 Turtle 模块是一个简单而直观的绘图工具,可以帮助初学者理解基本的图形绘制概念。 1.导入 Turtle 模块: import turtle 2.创建 Turtle 对象: t turtle.Turtle() 3.绘制图形: 4.移动Turtle对象:t.forward(di…

基于Spring Boot的酒店管理系统设计与实现

基于Spring Boot的酒店管理系统设计与实现 开发语言:Java 框架:springboot JDK版本:JDK1.8 数据库工具:Navicat11 开发软件:eclipse/myeclipse/idea 系统部分展示 系统首页界面图,在系统首页可以查看首页…

pgsql查看指定模式的存储过程

pgsql查看指定模式的存储过程 在 PostgreSQL 中,如果你想要查看指定模式的存储过程(也称为函数),你可以使用 \df 或 \df 命令在 psql 命令行工具中,或者使用 SQL 查询来从 pg_catalog 系统模式中查询。 \df命令行查询…

容器集群管理系统Kubernetes(K8S)

目录 一、前言 1.1什么是云原生? 1.2云要素的四要素? 1.2.1微服务 1.2.2容器化 1.2.3DevOps 1.2.4持续交付 1.3云平台有哪些? 1.4SRE 二、Kubernetes 概述 2.1K8S 是什么 2.2K8S作用 2.3K8S版本 2.4为什么要用 K8S 2.5K8S 的特…

从零开始打造个性化生鲜微信商城小程序

随着移动互联网的普及,小程序商城已经成为越来越多商家的选择。本文将通过实战案例分享,教您如何在五分钟内快速搭建个性化生鲜小程序商城。 步骤一:登录乔拓云网后台,进入商城管理页面 打开乔拓云官网,点击右上角的“…

unaipp推荐算法的汽车租赁系统zaxzu 微信小程序hbuiderx

随着现代汽车租赁管理的快速发展,可以说汽车租赁管理已经逐渐成为现代汽车租赁管理过程中最为重要的部分之一。但是一直以来我国传统的汽车租赁管理并没有建立一套完善的行之有效的汽车租赁管理系统,传统的汽车租赁管理已经无法适应高速发展,…

自动驾驶中常见坐标系极其转换

各个传感器坐标系 相机坐标系统 摄像头的作用是把三维世界中的形状、颜色信息,压缩到一张二维图像上。基于摄像头的感知算法则是从二维图像中提取并还原三维世界中的元素和信息,如车道线,车辆、行人等,并计算他们与自己的相对位置。 感知算法和相机相关的坐标系有图像坐…

GaussianBody:基于3D高斯散射的服装人体重建

GaussianBody: Clothed Human Reconstruction via 3d Gaussian Splatting GaussianBody:基于3D高斯散射的服装人体重建 Mengtian Li1,2,3, Shengxiang Yao1, Zhifeng Xie1,3,2, Keyu Chen4,2, Yu-Gang Jiang2 李梦田 1,2,3 、姚胜祥 1 、谢志峰 1,3, 2 、陈科宇 4, …

一文了解CloudXR优势及应用原理

CloudXR是一种新颖而先进的技术,旨在将虚拟现实和增强现实体验从本地设备转移到云端,主要功能也包括了远程渲染、流媒体传输、低延迟、高带宽和高质量的音视频传输。CloudXR(云化XR)可以将高保真度的虚拟现实或增强现实场景实时传…

2024年软件测试最全jmeter做接口压力测试_jmeter接口性能测试_jmeter压测接口(3),【大牛疯狂教学

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化! 由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、…

2024年大学生三下乡社会实践活动投稿注意事项

随着2024年夏季的热浪一同涌来的,是我校一年一度的“大学生三下乡”社会实践活动。作为一名积极参与其中的大学生,我满怀激情地投身于这项旨在促进农村发展的公益行动中。然而,当活动圆满落幕,轮到我承担起向各大媒体投稿、传播实践成果的重任时,却遭遇了一系列意想不到的挑战,…

今天又发现一个有意思的问题:SQL Server安装过程中下载报错,证明GPT是可以解决问题的

我们在安装数据库的时候,都会有报错问题,无论是Oracle、SQL Server、还是MySQL,都会遇到各种各样的报错,这归根到底还是因为电脑环境的不同,和用户安装的时候,操作习惯的不一样导致的问题。今天的问题是&am…

Python_AI库 Pandas DataFrame的索引方式

Pandas DataFrame的索引方式主要有以下几种: 位置索引(Position-based indexing) 使用行和列的整数位置进行索引。例如,df.iloc[0, 1] 会选择第一行第二列的值(注意Python是0索引的)。 标签索引&#xff…