rtpengine build mr12.5.1 镜像

news/2025/2/25 9:56:15

debian 版本

cat Dockerfile:

FROM debian:bookworm-20230725 

RUN apt-get update && \
	apt-get dist-upgrade gnupg2 apt-utils lsb-release cmake curl iproute2 ca-certificates gcc g++ make build-essential libavfilter-dev \
    libevent-dev libpcap-dev libxmlrpc-core-c3-dev \
    libjson-glib-dev default-libmysqlclient-dev libhiredis-dev libssl-dev libopus-dev libmnl-dev libip6tc-dev libip4tc-dev libxtables-dev libiptc-dev libnftnl-dev\
    libcurl4-openssl-dev libavcodec-extra gperf libspandsp-dev libwebsockets-dev \
	git markdown pandoc \
	libbencode-perl libconfig-tiny-perl libcrypt-rijndael-perl libdigest-hmac-perl libio-socket-inet6-perl -yq

RUN cd /usr/src && git clone https://github.com/BelledonneCommunications/bcg729.git && cd /usr/src/bcg729 && cmake . &&  make && make install
RUN cd /usr/src && git clone https://github.com/sipwise/rtpengine.git -b mr12.5.1 && cd /usr/src/rtpengine/daemon && make && make install && cp /usr/src/rtpengine/utils/rtpengine-ctl /usr/bin

RUN cd / && rm -rf /usr/src/rtpengine /usr/src/bcg729

现在 rtpengine-ctl 可以用了

不过, build 出来有点大

回头研究下 alpine 


顺便分享下 rtpengine.conf 样本:

[rtpengine]

table = 0
# no-fallback = false
### for userspace forwarding only:
# table = -1

### a single interface:
interface = lo
### separate multiple interfaces with semicolons:
# interface = internal/12.23.34.45;external/23.34.45.54
### for different advertised address:
# interface = 12.23.34.45!23.34.45.56

interface = any

listen-ng = localhost:2223
# listen-tcp = 25060
# listen-udp = 12222

### interface for HTTP, WS and Prometheus
# listen-http = 9101
listen-http = localhost:2225

# listen-https = localhost:2226
# https-cert =
# https-key =

listen-cli = localhost:2224

timeout = 60
silent-timeout = 3600
tos = 184
# control-tos = 184
# control-pmtu = dont
# delete-delay = 30
# final-timeout = 10800
# endpoint-learning = heuristic
# reject-invalid-sdp = false

# foreground = false
# pidfile = /run/ngcp-rtpengine-daemon.pid
# num-threads = 16
# media-num-threads = 8
# http-threads = 4

port-min = 30000
port-max = 40000
# max-sessions = 5000

# software-id = rtpengine
# max-load = 5
# max-cpu = 90
# max-bandwidth = 10000000
# scheduling = default
# priority = -3
# idle-scheduling = idle
# idle-priority = 10

recording-dir = /var/spool/rtpengine
recording-method = proc
# recording-format = raw

# redis = 127.0.0.1:6379/5
# redis-write = password@12.23.34.45:6379/42
# redis-num-threads = 8
# no-redis-required = false
# redis-expires = 86400
# redis-allowed-errors = -1
# redis-disable-time = 10
# redis-cmd-timeout = 0
# redis-connect-timeout = 1000

# b2b-url = http://127.0.0.1:8090/
# xmlrpc-format = 0
# janus-secret = ABC123

# log-level = 6
# log-stderr = false
# log-facility = daemon
# log-facility-cdr = local0
# log-facility-rtcp = local1
# debug-srtp = false
# log-srtp-keys = false
# dtls-cert-cipher = prime256v1
# dtls-rsa-key-size = 2048
# dtls-mtu = 1200
# dtls-signature = sha-256
# dtls-ciphers = DEFAULT:!NULL:!aNULL:!SHA256:!SHA384:!aECDH:!AESGCM+AES256:!aPSK

# dtmf-no-log-injects = 0

# graphite = 127.0.0.1:9006
# graphite-interval = 60
# graphite-prefix = foobar.

# homer = 123.234.345.456:65432
# homer-protocol = udp
# homer-id = 2001

# mysql-host = localhost
# mysql-port = 3306
# mysql-user = mysql
# myser-pass = mysql
# mysql-query = select data from voip.files where id = %llu

# dtx-delay = 50
# max-dtx = 600
# dtx-buffer = 5
# dtx-lag = 100
# dtx-shift = 0
# amr-dtx = native
# dtx-cn-params = 60
# silence-detect = 0.05
# cn-payload = 60

# sip-source = false
# dtls-passive = false

# mqtt-host = localhost
# mqtt-port = 1883
# mqtt-tls-alpn = mqtt
# mqtt-id =
# mqtt-user = foo
# mqtt-pass = bar
# mqtt-capath =
# mqtt-cafile =
# mqtt-certfile =
# mqtt-keyfile =
# mqtt-publish-qos = 0
# mqtt-publish-topic = rtpengine
# mqtt-publish-interval = 5000
# mqtt-publish-scope = media

# mos = CQ
# poller-per-thread = false
# socket-cpu-affinity = -1
# rtcp-interval = 5000

[rtpengine-testing]
table = -1
interface = 10.15.20.121
listen-ng = 2223
foreground = true
log-stderr = true
log-level = 7


试试 alpine

cat Dockerfile:

FROM alpine:3.21 AS builder
RUN apk --update add build-base git pkgconf perl gperf glib-dev ffmpeg-dev openssl-dev \
    libevent-dev libpcap-dev spandsp-dev json-glib-dev hiredis-dev xmlrpc-c-dev opus-dev libwebsockets-dev\
    mariadb-connector-c-dev cmake libmnl-dev libnftnl-dev pandoc markdown
RUN git clone https://github.com/sipwise/rtpengine -b mr12.5.1 && \
	git clone https://github.com/BelledonneCommunications/bcg729 && \
	cd bcg729 && cmake . && make && make install && cd .. && \
	cd rtpengine/daemon && with_iptables_option=no make

FROM alpine:3.21
RUN apk --update add build-base glib-dev ffmpeg-dev openssl-dev \
    libevent-dev libpcap-dev spandsp-dev json-glib-dev hiredis-dev xmlrpc-c-dev opus-dev libwebsockets-dev\
    mariadb-connector-c-dev libmnl-dev libnftnl-dev 
COPY --from=builder /rtpengine/daemon/rtpengine /usr/bin
# COPY --from=builder /usr/local/lib64/libbcg729.so.0 /usr/lib/


http://www.niftyadmin.cn/n/5865351.html

相关文章

华山论剑之JAVA中的“方法论”

这里是:钮钴禄.爱因斯晨~ 更多精彩:个人主页 JAVA专栏:Java 热门文章1:赛博算命之梅花易数 热门文章2:赛博算命之周易六十四卦 大佬们互三哦~~互三必回,后台踢踢哦~ 前言 在 Java 编程的广袤世界里&#xf…

前端面试真题 2025最新版

文章目录 写在前文CSS怪异盒模型JS闭包闭包的形成闭包注意点 CSS选择器及优先级优先级 说说flex布局及相关属性Flex 容器相关属性:Flex 项目相关属性 响应式布局如何实现是否用过tailwindcss,有哪些好处好处缺点 说说对象的 prototype属性及原型说说 pro…

LD_PRELOAD 绕过 disable_function 学习

借助这位师傅的文章来学习通过LD_PRELOAD来绕过disable_function的原理 【PHP绕过】LD_PRELOAD bypass disable_functions_phpid绕过-CSDN博客 感谢这位师傅的贡献 介绍 静态链接: (1)举个情景来帮助理解: 假设你要搬家&#x…

python中的JSON数据格式

文章目录 什么是json主要功能Python数据和Json数据的相互转化 什么是json JSON是一种轻量级的数据交互格式。可以按照JSON指定的格式去组织和封装数据。JSON本质上是一个带有特定格式的字符串。 主要功能 json就是一种在各个编程语言中流通的数据格式,负责不同编…

MySQL数据库——多版本并发控制MVCC

大家好,这里是编程Cookbook。本文详细介绍MySQL的并发控制:多版本并发控制MVCC。 文章目录 背景介绍数据库并发控制——锁机制悲观锁和乐观锁悲观锁乐观锁 数据库并发控制——MVCC 的引入MVCC 和锁机制的对比 MySQL 的多版本并发控制 (MVCC)快照读和当前…

VMware15许可证

VMware15许可证 ZY7EU-2JG01-H8EDZ-9NYNX-ZVHW0博客推荐: https://blog.csdn.net/m0_48170265/article/details/133625401?utm_mediumdistribute.pc_relevant.none-task-blog-2defaultbaidujs_baidulandingword~default-0-133625401-blog-138377401.235v43pc_blog_…

浏览器JS打不上断点,一点就跳到其他文件里。浏览器控制台 js打断点,指定的位置打不上断点,一打就跳到其他地方了。

关闭JavaScript 源代码映射,F12开发者模式 设置->偏好设置->源代码/来源->JavaScript 源代码映射。 肯定不是这个原因导致的,但这个办法可以暂时解决问题,点完这个东西就隐藏了webpack,有懂的来讲讲。 又浪费一个小时…

1_安装JDK和Hadoop

一、解压jdk和hadoop安装包 下载 通过百度网盘分享的文件:jdk-8u172-linux-x64.tar.gz 链接:https://pan.baidu.com/s/1VjhdpfyqdC7ivEBIjTn8tA 提取码:iz25 二、配置环境变量 vi /root/.bashrc添加 #set java environment export JAVA_H…