无法将WebRTC与其他ISP提供一起使用

时间:2018-10-17 11:09:50

标签: android webrtc

我使用了以下链接。我只能使用相同的网络WiFi或相同的网络运营商进行视频通话。能否请您提出一些用于通过不同网络进行视频通话的解决方案。

  1. WebRTC Smple
  2. WebRTC Demo

这是我的设置。连接配置:

PeerConnection.RTCConfiguration rtcConfig = new PeerConnection.RTCConfiguration(signalingParameters.iceServers);
rtcConfig.iceTransportsType = PeerConnection.IceTransportsType.ALL;
rtcConfig.tcpCandidatePolicy = PeerConnection.TcpCandidatePolicy.DISABLED;
rtcConfig.bundlePolicy = PeerConnection.BundlePolicy.MAXBUNDLE;
rtcConfig.rtcpMuxPolicy = PeerConnection.RtcpMuxPolicy.REQUIRE;.
rtcConfig.keyType = PeerConnection.KeyType.ECDSA;
peerConnection = factory.createPeerConnection(signalingParameters.iceServers, pcConstraints, pcObserver);

打开服务器,

iceServers.add(new PeerConnection.IceServer("turn:54.215.239.112:3478?transport=tcp", "******", "*******"));

2 个答案:

答案 0 :(得分:1)

这可能是因为您需要在285行之后的以下文件中将TURN服务器添加到iceServers数组中。

iceServers.add(new PeerConnection.IceServer("stun:23.21.150.121"));
iceServers.add(new PeerConnection.IceServer("stun:stun.l.google.com:19302"));

See WebRtcClient.java

该演示仅使用STUN服务器,但是通过STUN连接失败时将使用TURN服务器,并且可以涵盖遍历对称NAT之类的情况。

在某些情况下,您的应用程序无法找到使用STUN连接到远程对等方的方法,因此需要回退到TURN。因为尚未指定TURN服务器,所以连接失败。

有关如何设置自己的TURN服务器的详细信息: See coturn

答案 1 :(得分:0)

尝试添加Turn服务器,以使其能够在不同的网络上运行

iceServers.add(new org.webrtc.PeerConnection.IceServer("turn:xxx.xxx.xxx.xxx:3478", "username", "credential"));

您可以使用this服务来获取Turn Server