rtpengine faq

2023-12-13 18:28
文章标签 faq rtpengine

本文主要是介绍rtpengine faq,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

  • 安装

我目前用的是debian11

cat /etc/debian_version,结果是11.8

我试过这样安装:

echo 'deb https://deb.sipwise.com/spce/mr11.1.1/ bullseye main' > /etc/apt/sources.list.d/sipwise.list
echo 'deb-src https://deb.sipwise.com/spce/mr11.1.1/ bullseye main' >> /etc/apt/sources.list.d/sipwise.list
wget -q -O - https://deb.sipwise.com/spce/keyring/sipwise-keyring-bootstrap.gpg | apt-key add -
apt-get update && apt-get install -y ngcp-rtpengine

改成11.2.1也可以,但是11.3.1则失败

至于debian12我还没来得及做测试

不改任何配置的情况下服务是可以启动的

systemctl status rtpengine

systemctl status rtpengine-recording

# 为了节省篇幅就不贴日志了

用下面的命令可以检查到是否启动了内核转发模块:

# lsmod | grep -i rtp
xt_RTPENGINE           61440  4
x_tables               53248  3 nft_compat,xt_RTPENGINE,ip_tables

  • rtpengine的配置

配置项目比较多,但可能比较难配置的可能是interface,下面是我的配置:

interface=priv/172.16.228.202;pub/172.16.228.202!113.113.113  # 1:1 nat

interface=priv/172.16.228.202;pub/172.16.228.202!113.113.113.113;inner/172.16.228.203 # double nic

interface=eth0

  • rtpengine-ctl常用命令(类似FreeSWITCH的fs_cli)

rtpengine-ctl list numsessions
rtpengine-ctl list sessions all
rtpengine-ctl terminate all

rtpengine-ctl是用perl写的,如果不想用perl,可以考虑用curl,使能rtpengine的http配置即可

  • 关于录音

先看这个配置:

recording-dir = /var/spool/rtpengine
recording-method = pcap

这个够简单,rtpengine一个进程就搞定,但是需要后期处理pcap文件

再看这个配置:

table = 0 #必须大于等于0
recording-method = proc

并且录音(rtpengine-recording)要这样配置:

# rtpengine-recording.conf

table = 0 #必须大于等于0
output-dir = /var/lib/rtpengine-recording
output-format = wav
mp3-bitrate = 48000
output-mixed = true
output-single = true
output-chmod = 0660
output-chown = root
output-chgrp = root
mysql-host = localhost
mysql-port = 3306
mysql-user = root
mysql-pass = root
mysql-db = rtpengine
log-mark-prefix = «
log-mark-suffix = »
log-facility = local2

同时,需要创建mysql数据库rtpengine,并创建下面的三张表:
 

CREATE TABLE `recording_calls` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `call_id` varchar(250) NOT NULL,
  `start_timestamp` decimal(13,3) DEFAULT NULL,
  `end_timestamp` decimal(13,3) DEFAULT NULL,
  `status` enum('recording','completed','confirmed') DEFAULT 'recording',
  PRIMARY KEY (`id`),
  KEY `call_id` (`call_id`)
);
CREATE TABLE `recording_streams` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `call` int(10) unsigned NOT NULL,
  `local_filename` varchar(250) NOT NULL,
  `full_filename` varchar(250) NOT NULL,
  `file_format` varchar(10) NOT NULL,
  `stream` mediumblob,
  `output_type` enum('mixed','single') NOT NULL,
  `stream_id` int(10) unsigned NOT NULL,
  `sample_rate` int(10) unsigned NOT NULL DEFAULT '0',
  `channels` int(10) unsigned NOT NULL DEFAULT '0',
  `ssrc` int(10) unsigned NOT NULL,
  `start_timestamp` decimal(13,3) DEFAULT NULL,
  `end_timestamp` decimal(13,3) DEFAULT NULL,
  `tag_label` varchar(255) NOT NULL DEFAULT '',
  PRIMARY KEY (`id`),
  KEY `call` (`call`),
  CONSTRAINT `fk_call_id` FOREIGN KEY (`call`) REFERENCES `recording_calls` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
);
CREATE TABLE `recording_metakeys` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `call` int(10) unsigned NOT NULL,
  `key` char(255) NOT NULL,
  `value` char(255) NOT NULL,
  PRIMARY KEY (`id`),
  KEY `prim_lookup` (`value`,`key`),
  KEY `fk_call_idx` (`call`),
  CONSTRAINT `fk_call_idx` FOREIGN KEY (`call`) REFERENCES `recording_calls` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
);

可参考这里:

https://blog.opensips.org/2018/02/16/audio-recording-and-speech-detection-experiments-with-opensips/

还有一种模式叫forwarding,可能用的人比较少,就不介绍了

  •  讨论组在哪里:

https://groups.google.com/g/rtpengine/

ng控制协议是怎样的:

https://github.com/sipwise/rtpengine/blob/master/docs/ng_control_protocol.md

  • 常用的flag

replace-session-connection # 更换c地址(连接地址)

original-sendrecv # 保持原始的sendrecv,默认情况下rtpengine自动给每个media添加a=sendrecv属性

未完待续

这篇关于rtpengine faq的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/489480

相关文章

利用raspberry pi搭建typecho笔记(三) typecho nginx sqlite FAQ

前言 这是一个汇总文,用来总结我在整个配置过程中遇到的各种问题.因为我在解决这些问题的过程中发现,typecho被部署在这种需要完全自己配置的平台上的情况是比较少的,相关的资料也比较少,所以我的解决过程比较困难,因此在此之后,想把这些问题和解决方案都整理出来,如果有同样需要的人,可以直接参考,少走弯路.   1.typecho安装过程中提示"对不起,无法连接数据库,请先检查数据库配置再继续进行安

虹科干货|以太网系列FAQ(二):如何用EES记录和识别多个ECU流量?

面对包含众多设备的复杂网络,我们该如何有效地记录流量信息?在捕获到大量数据后,又如何确保每个数据包都能准确地与其生成设备相关联?更关键的是,如何在不改变原有网络路由的前提下实现这些目标?那么,如何利用虹科EES(增强型以太网交换机)来完成这些任务呢?本文将为您详细解答。 虹科EES如何实现流量记录与识别? 请想象有4个ECU在网络中,通讯方式如图1所示,在不改变网络拓扑的前提下记录这些ECU产

自然语言处理-应用场景-聊天机器人(三):MaLSTM【基于FAQ 的问答系统】【文本向量化-->问题召回(利用PySparNN句子相似度计算海选相似问题)-->问题排序(深度学习:句子相似度计算)】

一、问答机器人介绍 1. 问答机器人 在前面的课程中,我们已经对问答机器人介绍过,这里的问答机器人是我们在分类之后,对特定问题进行回答的一种机器人。至于回答的问题的类型,取决于我们的语料。 当前我们需要实现的问答机器人是一个回答编程语言(比如python是什么,python难么等)相关问题的机器人 2. 问答机器人的实现逻辑 主要实现逻辑:从现有的问答对中,选择出和问题最相似的问题,

Instant App 常见问题官方指南 | Android 开发者 FAQ Vol.6

我们被大家的热情惊到了 —— 事实上我们发出上一篇 Instant App 的文章没几天就收到了一大堆问题。由于涉及到的类目太多,我们这里简单归纳了一下,方便大家查看。如果还有更多问题也请随时通过留言的方式与我们取得联系。 1. 基础类问题 Q: 哪些设备兼容 Android Instant App? A: Android Instant App 在运行

Android-Android Studio-FAQ

1 需求 2 接口 3 Android Studio xml布局代码补全功能失效问题 最终解决方案就是尝试修改compileSdk 为不同SDK版本来解决问题,将原本34修改为32测试会发现xml代码补全功能有效了! 参考资料 Android Studio xml布局代码补全功能失效问题_android studio开发布局xml时属性没有自动补齐提示-C

Spark之FAQ

1.Spark与Hadoop是什么关系? 答: Spark是一个兼容Hadoop数据的快速的一般处理引擎。它可以通过Yarn框架或者Spark的独立模式运行于Hadoop集群上。同时,它也可以处理HDFS、Hbase、Cassandra、Hive以及其它任何Hadoop输入格式的数据。为了解决复杂的批数据处理(batch data processing),基于历史的交互式查询(interacti

Unity3d用户手册Blackberry 10 开发入门Blackberry10 FAQ

Blackberry10 FAQ Z10 有哪几种 GPU? Z10 一共有四种模型,其中一种为 PowerVR GPU,其他三种为 Adreno GPU。注意,这些模型拥有不同的专用纹理格式。(如下所示)。下表展示了四种模型: 模型 CPU GPU STL100-1 TI OMAP 4470 PowerVR SGX 544 STL100-2 Qu

纷享销客常见问题FAQ

运维和安全职责边界 应用专属是部署在客户私有云或者客户公有云租户的IT环境中的,由纷享销客与客户共同维护系统的稳定性。一般来说客户主要负责维护IT基础环境和账号权限的管理而纷享销客则负责在客户环境中进行应用系统的部署、优化和日常运维工作。在安全方面,双方需密切合作,共同确保应用系统和IT环境的安全性。通过明确的职责划分和有效的协作配合,可以确保应用系统的稳定运行和安全性得到保障。

SuperMap GIS基础产品FAQ集锦(20240611)

一、SuperMap iDesktopX 问题1:请问一下 iDesktopX 可以添加 SQL lite 数据库格式的数据文件吗 11.1.1 【解决办法】https://help.supermap.com/iDesktopX/zh/tutorial/DataProcessing/DataConversion/ImportData.html您可以查看帮助文档这里有所有支持的导入的数据格式文件

【Apache Doris】周FAQ集锦:第 5 期

【Apache Doris】周FAQ集锦:第 5 期 SQL问题数据操作问题运维常见问题其它问题关于社区 欢迎查阅本周的 Apache Doris 社区 FAQ 栏目! 在这个栏目中,每周将筛选社区反馈的热门问题和话题,重点回答并进行深入探讨。旨在为广大用户和开发者分享有关 Apache Doris 的常见问题。 通过这个每周 FAQ 栏目,希望帮助社区小伙伴更好地了解和应用