我将实现Java VoiP服务器以与WebRtc配合使用。浏览器点对点连接的实现非常简单。服务器到客户端的连接稍微有些棘手。
在快速查看RFC后,我写下了应该完成的任务,使Java服务器成为浏览器。请帮助我完成以下列表。
- 实现STUN服务器。服务器应该能够响应绑定请求和保持活动状态的ping。
- 实现DTLS协议以及DTLS握手。在DTLS握手之后,共享秘密将作为SRTP和SRTCP中的键材料。
- 支持SRTP和SRTCP流的多路复用。SRTP和SRTCP使用同一端口来解决NAT问题。
- 不确定是否应该实现SRTCP。如果服务器不向客户端发送SRTCP报告,我相信连接不会断开。
- 解码SRTP流到RTP。
问题:
- 服务器端是否还需要做其他事情?
- WebRtc如何处理SRTCP报告?它是否根据SRTCP报告调整采样率/比特率?
WebRtc声称将解决以下问题:
- 数据包丢失掩盖
- 回声消除
- 带宽自适应
- 动态抖动缓冲
- 自动增益控制
- 降噪和抑制
这是WebRtc内部还是编解码器(Opus)内部?我是否需要在服务器端处理这些问题,例如可变比特率等?