手动处理WebRTC ICE候选(来自TURN服务器)

时间:2014-04-18 10:39:54

标签: webrtc stun turn

我正在研究WebRTC框架,在两个Android移动设备之间建立对等连接以进行语音和视频呼叫。现在我想将我的解决方案转移到NAT扮演重要角色的公共网络。

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

Free open source implementation of TURN and STUN Server

Setting up a TURN Server for WebRTC Use

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

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

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服务器收听一些Allocate Response。

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

0 个答案:

没有答案