WebRTC在Android网络上的Android Chrome测试版中

时间:2014-09-12 07:38:13

标签: android webrtc

最近,我们正在尝试设置一个webRTC应用程序,该应用程序将在IMS网络中注册的Android设备上运行。我们在Android设备中使用Chrome测试版,因为我们需要支持IPv6寻址方案。我有以下问题:

  1. 设备具有IMS APN和Internet APN,因此它为这两个APN提供了两个不同的IP地址。

  2. 我们使用以下代码段创建了禁用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);
    
  3. 即使我们禁用了STUN,我们也会看到STUN绑定请求来自浏览器,根据标准,它是浏览器对同意新鲜度的预期行为。

  4. 但是根据webRTC APIs,如果我们使用RTCIceTransports Enum(我们通过添加“iceTransports”:“none”),ICE引擎将不会发送任何数据包,但在Chrome beta(Android)中我们看到这个枚举没有效果。

    我们遇到的主要问题是,STUN绑定请求是从Internet APN地址到IMS APN地址,反之亦然,因此IMS网络节点将此视为网络威胁并导致网络断开设备端。

    所以我们的问题是(在Chrome Beta Android中):

    • 是否可以完全禁用STUN绑定请求?
    • 如果没有,我们是否可以配置Web RTC API来仅获取Internet APN IP地址的ICE候选者,并确保STUN绑定请求仅从Internet APN到对等体的Internet APN的IP地址?

    我们尝试了第二种方法,通过在发送SDP提议和应答之前过滤具有因特网APN地址的ICE候选者,因此两个对等体仅接收具有因特网APN IP地址的对等体的ICE候选者。但是来自浏览器的STUN绑定请求是从IMS APN IP地址到ICE候选者中收到的对等体的Internet APN IP地址。

    任何解决此问题的建议都将对我们有很大帮助。

    谢谢和问候

1 个答案:

答案 0 :(得分:0)

这会完全禁用STUN绑定请求:

var pc_config =  {'iceServers': []};