最近,我们正在尝试设置一个webRTC应用程序,该应用程序将在IMS网络中注册的Android设备上运行。我们在Android设备中使用Chrome测试版,因为我们需要支持IPv6寻址方案。我有以下问题:
设备具有IMS APN和Internet APN,因此它为这两个APN提供了两个不同的IP地址。
我们使用以下代码段创建了禁用STUN的RTCPeerConnection:
var pc_config =
{
"iceServers" : [ {
"url" : "stun:0.0.0.0"
} ],
"iceTransports": "none"
};
var pc_constraints = {'optional': [{'googIPv6': true}]};
var pc = new RTCPeerConnection(pc_config, pc_constraints);
即使我们禁用了STUN,我们也会看到STUN绑定请求来自浏览器,根据标准,它是浏览器对同意新鲜度的预期行为。
但是根据webRTC APIs,如果我们使用RTCIceTransports Enum(我们通过添加“iceTransports”:“none”),ICE引擎将不会发送任何数据包,但在Chrome beta(Android)中我们看到这个枚举没有效果。
我们遇到的主要问题是,STUN绑定请求是从Internet APN地址到IMS APN地址,反之亦然,因此IMS网络节点将此视为网络威胁并导致网络断开设备端。
所以我们的问题是(在Chrome Beta Android中):
我们尝试了第二种方法,通过在发送SDP提议和应答之前过滤具有因特网APN地址的ICE候选者,因此两个对等体仅接收具有因特网APN IP地址的对等体的ICE候选者。但是来自浏览器的STUN绑定请求是从IMS APN IP地址到ICE候选者中收到的对等体的Internet APN IP地址。
任何解决此问题的建议都将对我们有很大帮助。
谢谢和问候
答案 0 :(得分:0)
这会完全禁用STUN绑定请求:
var pc_config = {'iceServers': []};