原文链接为: https://groups.google.com/g/rtpengine/c/pbg0JfwoB8E
1. 用户 Georgii 首次提问
请问 rtpengine 可以收发哪些类型的 RTCP 报文?我目前只抓到过 RR 接收报告。
2. 维护者 rfuchs 答复
rtpengine 自身会生成携带内嵌 RR 报告块的 SR 发送报告 ;
同时对终端发来的任意类型 RTCP 报文全部原样透传转发。
3. 用户追问
非常感谢,我还有个疑问:做日志存储时是否需要保存所有种类 RTCP?还是只保留带有 report_block(统计块)的 SR、RR 就足够?
4. rfuchs 反问
存储到哪里?用途是什么?你说的"有价值"是针对哪类分析场景?需要你补充更多业务背景。
5. 用户补充场景
我正在搭建一套 SIP、RTCP 报文持久化存储系统,想确认存储范围。
6. rfuchs 最终解答
完全取决于你想要采集分析的数据维度:
如果是常规 VoIP 通话质量指标统计,最核心、有用的只有 RR 和 XR(扩展RTCP报告)。
二、关键知识点拆解
1. rtpengine 对 RTCP 的两类行为
1)主动生成
SR(Sender Report,发送方报告),报文内部自带内嵌 RR 统计块,用于上报本端发包、时延、丢包基础指标;
2)被动透传
终端产生的所有 RTCP 类型(XR、SDES、BYE、APP 私有扩展等)rtpengine 不拦截、不解构,直接原样转发对端。
2. 各类RTCP存储价值区分
必存(通话质量分析刚需)
- SR / RR:基础指标(发包量、接收丢包、抖动、往返时延、序列号),常规CDR质量统计必备;
- XR Extended Reports:扩展报告,提供精细化MOS、设备缓冲、时延分段、丢包分布,是深度音质排查核心。
按需选择性存储(业务视需求取舍)
- SDES:携带终端CNAME、用户名、IP标识,用于多SSRC溯源;
- BYE:通话正常结束标记,区分异常断流;
- APP 私有RTCP:厂商自定义扩展(如X-NSE配套RTCP),仅特定设备场景需要;
无长期存储价值(可直接丢弃)
- RTCP 空保活、冗余同步报文,无有效统计字段,只会占用存储。
3. 存储方案建议
- 仅做基础通话质量报表:只持久化 SR + RR + XR,其余RTCP直接丢弃;
- 全量溯源、故障深度排查场景:保留 SDES、BYE,过滤无用空报文;
- 对接私有终端/特殊编解码(如X-NSE):额外保留 APP 自定义RTCP类型。