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

FreeSWITCH一键打包Docker镜像(源码编译)

FreeSwitch Docker 构建项目

本项目用于通过 Docker 容器化方式构建和部署 FreeSwitch 服务,包含所有必要的依赖项和编译脚本。

项目结构

.
├── docker/                     # Docker 相关文件
│   ├── freeswitch-dev.dockerfile  # FreeSwitch 开发环境 Dockerfile
│   ├── freeswitch.dockerfile      # FreeSwitch 运行环境 Dockerfile
│   └── fs.yml                     # Docker Compose 配置文件
├── script/                     # 编译脚本
│   ├── compile.sh              # 依赖库编译脚本
│   └── compile_fs.sh           # FreeSwitch 主程序编译脚本
├── fs.sh                       # 主要操作脚本
├── modules.conf                # FreeSwitch 模块配置文件
└── sources/                    # 源代码目录(运行时生成)

功能特性

  • 基于 Debian Bookworm Slim 系统构建
  • 集成 FreeSwitch v1.10.12 及其依赖库
  • 支持多种编解码器(G729、OPUS、AMR等)
  • 包含 UniMRCP 模块支持语音识别和文本转语音
  • 支持多语言接口(Lua、Python3)
  • 通过 Docker 容器化部署,环境隔离,易于部署和维护

依赖组件

  • FreeSwitch v1.10.12
  • Sofia-SIP v1.13.17
  • Libfvad v1.0
  • Spandsp
  • UniMRCP
  • BCG729 (G729 编解码器)
  • 多种数据库支持(MariaDB、PostgreSQL)
  • 多语言支持(Lua、Python3)

使用方法

初始化源代码

./fs.sh init freeswitch

该命令会下载 FreeSwitch 及其所有依赖库的源代码到 sources/ 目录。

构建完整 FreeSwitch 镜像

./fs.sh pkg freeswitch

该命令会一键完成整个服务的编译构建工作,包括:

  1. 构建开发环境镜像
  2. 启动容器并编译所有依赖库
  3. 编译 FreeSwitch 主程序
  4. 构建运行时镜像

分步操作

# 构建 FreeSwitch Docker 基础镜像(生成编译环境)
./fs.sh build freeswitch# 启动 FreeSwitch Docker 容器
./fs.sh up freeswitch# 在镜像中编译所有源代码
./fs.sh compile freeswitch# 将编译好的程序打包到运行镜像
./fs.sh release freeswitch

进入容器调试

./fs.sh bash freeswitch

模块配置

项目通过 modules.conf 文件配置需要启用的 FreeSwitch 模块,可以根据需要启用或禁用相应模块。

版本控制

可以通过修改 fs.sh 脚本开头的变量来指定不同库的版本:

  • FreeSwitch: v1.10.12
  • Sofia-SIP: v1.13.17
  • Libfvad: v1.0

注意事项

  1. 首次使用需要先运行 ./fs.sh init freeswitch 下载源代码
  2. 构建过程需要较长时间和较大的磁盘空间
  3. 构建过程中会生成 .cached/ 目录用于缓存编译结果
  4. 项目默认使用阿里云镜像源加速依赖安装

许可证

本项目基于 FreeSwitch 及其相关组件的开源许可证。


文章转载自:

http://7KmjmDiM.yckwt.cn
http://tqpJZIGJ.yckwt.cn
http://mryrCHI6.yckwt.cn
http://HFPuVEUy.yckwt.cn
http://1mo6TD5m.yckwt.cn
http://szvDhkpi.yckwt.cn
http://2Ts5r7kE.yckwt.cn
http://1pSf4BJQ.yckwt.cn
http://GykzypEv.yckwt.cn
http://SGsA0GZ1.yckwt.cn
http://rwgHQ1sL.yckwt.cn
http://cCASo5jA.yckwt.cn
http://CHMlgfPb.yckwt.cn
http://kDIVQWIw.yckwt.cn
http://KUK9EPZ7.yckwt.cn
http://9wuoTBrq.yckwt.cn
http://BQJeBvyU.yckwt.cn
http://ShhYl0yJ.yckwt.cn
http://S2GOGsKO.yckwt.cn
http://JasOL2ZL.yckwt.cn
http://AeYi3B0k.yckwt.cn
http://P9ebp63a.yckwt.cn
http://7uH7mqFI.yckwt.cn
http://TORwqCjE.yckwt.cn
http://1mOGitAj.yckwt.cn
http://jAxmVqG4.yckwt.cn
http://YGAz9PNk.yckwt.cn
http://81ZO6GZK.yckwt.cn
http://aAJ9BJOU.yckwt.cn
http://Dwpsrq3S.yckwt.cn
http://www.dtcms.com/a/381794.html

相关文章:

  • POI和EasyExcel
  • 力扣-单调栈想法
  • 芯片厂常用的溶液—TMAH全方位介绍
  • Leetcode sql 50 ~5
  • 《大数据之路1》笔记2:数据模型
  • python小项目——学生管理系统
  • 格密码--从FFT到NTT(附源码)
  • HTML中css的基础
  • 软考中级习题与解答——第六章_计算机硬件基础(2)
  • UDP 深度解析:传输层协议核心原理与套接字编程实战
  • MySQL在Ubuntu 20.04 环境下的卸载与安装
  • 相机几何 空间点到像素平面转换
  • 基础算法模板
  • 智能学习辅助系统-部门管理开发
  • 01数据结构-初探动态规划
  • 数据结构 -- 反射、枚举以及lambda表达式
  • 【C++11】initializer_list列表初始化、右值引用和移动语义、可变参数模版等
  • 设计模式(C++)详解——建造者模式(2)
  • CSS 中的 `vh`!在移动设备上的替代方案->`dvh`
  • 叩丁狼K8s - 概念篇
  • 论文阅读 2025-9-9 多模态相关
  • 豆包、Kimi、通义千问、DeepSeek、Gamma、墨刀 AI”六款主流大模型(或 AI 平台)生成 PPT 的完整流程
  • 基于SpringBoot的足球论坛系统+论文示例参考
  • uniapp 实现项目多语言切换
  • 03.【Linux系统编程】基础开发工具1(yum软件安装、vim编辑器、编辑器gcc/g++)
  • Win10 上 Debian 12 如何安装 Redis ?
  • 中级统计师-统计法规-第十章 统计执法监督检查
  • 【矩阵找最大小所在位置】2022-11-13
  • kafka遇到的问题
  • 【Linux】系统部分——线程概念与地址空间