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

rtpengine的docker化

概述

原本希望使用kamailio+rtpproxy来转发媒体,但是rtpproxy对于多网卡服务器的支持不好,无法正常转发多网卡之间的媒体流。

rtpengine没有官方的docker镜像可以直接使用,只能使用源码自己编一个。

环境

CentOS 7.9

rtpengine 13.1.1.6

下载

目录结构如下。

├── docker-compose.yml

├── Dockerfile

├── rtpengine.mr13.1.1.6

├── sources.list.bookworm

└── sources.list.bullseye

下载源代码,指定版本为13.1.1.6。

git clone https://github.com/sipwise/rtpengine.git rtpengine.mr13.1.1.6 -b mr13.1.1.6

sources.list.bookworm文件内容如下。

deb http://mirrors.aliyun.com/debian/ bookworm main contrib non-free

deb http://mirrors.aliyun.com/debian/ bookworm-updates main contrib non-free

deb http://mirrors.aliyun.com/debian-security bookworm-security main contrib non-free

dockerfile

dockerfile文件内容如下。

FROM debian:bookwormCOPY ./sources.list.bookworm /etc/apt/sources.list
COPY ./rtpengine.mr13.1.1.6 /usr/local/src/rtpengineRUN apt-get update \&& apt-get -y --quiet upgrade curl iproute2 \&& apt-get install -y --no-install-recommends ca-certificates gcc g++ make \build-essential git  libopus-dev libiptc-dev libavfilter-dev \libevent-dev libpcap-dev libxmlrpc-core-c3-dev markdown libmnl-dev libnftnl-dev \libjson-glib-dev default-libmysqlclient-dev libhiredis-dev libssl-dev pandoc \libcurl4-openssl-dev libavcodec-extra gperf libspandsp-dev libwebsockets-dev \&& cd /usr/local/src \&& chmod -R 777 /usr/local/src/rtpengine \&& cd rtpengine/daemon \&& make && make install \&& cp /usr/local/src/rtpengine/daemon/rtpengine /usr/local/bin/rtpengine \&& rm -Rf /usr/local/src/rtpengine \&& apt-get purge -y --quiet --force-yes --auto-remove ca-certificates gcc g++ make build-essential git markdown \&& rm -rf /var/lib/apt/* \&& rm -rf /var/lib/dpkg/* \&& rm -rf /var/lib/cache/* \&& rm -Rf /var/log/* \&& rm -Rf /usr/local/src/* \&& rm -Rf /var/lib/apt/lists/* CMD ["rtpengine"]

运行命令,创建docker镜像。

sudo docker build --no-cache -t 10.55.55.136:5000/zr/rtpengine:mr13.1.1.6-4 .

配置

kamailio和rtpengine的配置文件都映射到宿主机的/usr/local/kamailio/etc目录。

目录下的配置文件包括dispatcher.list kamailio.cfg rtpengine.conf。

配置内容略过。

启动

编写docker-compose.yml,启动docker容器。

docker-compose.yml内容如下。注意rtpengine启动的时候需要加-f参数,前台运行,否则docker容器会一直重启。

services:rtpengine:image: 10.55.55.136:5000/zr/rtpengine:mr13.1.1.6-4container_name: rtpenginevolumes:- /usr/local/kamailio/etc:/etc/rtpenginecommand: >/usr/local/bin/rtpengine -f restart: unless-stoppedenvironment: - TZ=Asia/Shanghainetwork_mode: "host"privileged: truelogging:driver: json-fileoptions:max-size: "100m"max-file: "10"ulimits:nproc: 65535nofile:soft: 40000hard: 40000# Kamailio Servicekamailio:image: 10.55.55.136:5000/zr/kamailio:5.8.3-bullseyecontainer_name: kamailiovolumes:- /usr/local/kamailio/etc:/etc/kamailioenvironment:- TZ=Asia/Shanghaicommand: >-m64 -M8restart: unless-stoppednetwork_mode: "host"logging:driver: json-fileoptions:max-size: "100m"max-file: "10"ulimits:nproc: 65535nofile:soft: 40000hard: 40000depends_on:- rtpengine

启动命令。

sudo docker-compose up -d

查看进程和端口,运行正常。

总结

rtpproxy相对rtpengine更容易上手,但是功能也更简单。

kamailio+rtpengine的组合还有很多配置方案,需要慢慢熟悉。

空空如常

求真得真

http://www.lryc.cn/news/599982.html

相关文章:

  • 【C语言进阶】一篇文章教会你文件的读写
  • 微服务架构中的资源调度与负载均衡实践
  • CSS3新特性深度解析:Position Sticky粘性定位完整指南
  • Android 15中的16KB大页有何优势?
  • 深度学习篇---预训练模型
  • 升级目标API级别到35,以Android15为目标平台(三 View绑定篇)
  • 【应急响应】进程隐藏技术与检测方式(二)
  • 三坐标和激光跟踪仪的区别
  • 重庆市傲雄司法鉴定所获准新增四项司法鉴定资质
  • 认识编程(3)-语法背后的认知战争:类型声明的前世今生
  • 利用Trae将原型图转换为可执行的html文件,感受AI编程的魅力
  • 使用python的头文件Matplotlib时plt.show()【标题字体过小】问题根源与解决方案
  • java每日精进 7.25【流程设计3.0(网关+边界事件)】
  • 【Linux系统】基础IO(下)
  • 解决笔记本合盖开盖DPI缩放大小变 (异于网传方法,Win11 24H2)
  • STM32的WI-FI通讯(HAL库)
  • 【电赛学习笔记】MaxiCAM 项目实践——二维云台追踪指定目标
  • 嵌入式Linux裸机开发笔记8(IMX6ULL)主频和时钟配置实验(3)
  • vue 渲染 | 不同类型的元素渲染的方式(vue组件/htmlelement/纯 html)
  • linux配置ntp时间同步
  • 前端核心进阶:从原理到手写Promise、防抖节流与深拷贝
  • ERNIE-4.5-0.3B 实战指南:文心一言 4.5 开源模型的轻量化部署与效能跃升
  • Agentic RAG理解和简易实现
  • 计算机体系结构中的中断服务程序ISR是什么?
  • haproxy集群
  • Java测试题(上)
  • Spring之【Bean后置处理器】
  • sam2环境安装
  • JAVA语法糖
  • JAVA同城服务家政服务家政派单系统源码微信小程序+微信公众号+APP+H5