1

我正在研究 WebRTC 框架,在两个 Android 移动设备之间建立对等连接以进行语音和视频通话。现在我想将我的解决方案转移到 NAT 起主要作用的公共网络。

我的解决方案也必须在对称 NAT 中工作,但是当设备在对称 NAT 中连接时,我的 STUN 服务器无法建立语音/视频呼叫。所以我去了 TURN 服务器设置,并在以下教程的帮助下成功完成了设置。

TURN 和 STUN Server 的免费开源实现

设置 TURN 服务器以供 WebRTC 使用

我已成功将此服务器添加到我的 Android 应用程序的 ICEServers 中,并开始获取relayICE 候选者。

我得到的候选人看起来像这样

a=candidate:2312680776 1 udp 33562367 115.113.119.170 52972 typ relay raddr 223.227.91.151 rport 25323 generation 0

a=candidate:2312680776 2 udp 33562366 115.113.119.170 64698 typ relay raddr 223.227.91.151 rport 25324 generation 0

现在我的问题开始了:

我应该如何假设这些候选人?(因为我想手动处理这些候选人,而不是仅仅将这些候选人传递到另一端)

我知道怎么理解srflx但不知道relay

中继后面是我的全球 IP 地址和端口。那么这是否意味着我必须收听raddrrport捕捉音频/视频数据?

我应该如何解析这些候选人并获取音频/视频数据?

注意:在wireshark中,我可以看到来自我的TURN服务器的数据包,该端口不等于rport上述候选人中提到的两个字段。

我在某处读到我必须从 TURN 服务器收听一些分配响应。

我真的需要知道我该怎么做。任何有关此主题的帮助将不胜感激。:(

4

0 回答 0