Kurento:客户端 TURN 配置

Kurento : Client side TURN configuration

根据我对上一个问题的理解:

webrtcendpoint.conf.ini配置的TURN服务器仅用于交换ice candidates。我们也可以在 webrtcendpoint.conf.ini 中只指定一个 TURN 服务器,因为我观察到如果我在 webrtcendpoint.conf.ini 中提供 2 个或更多 TRUN 服务器,Kurento 媒体服务器服务无法启动,这是正确的吗?

还有什么方法可以验证 Kurento 媒体服务器和两个对等点之间正在使用哪个 STUN/TURN 服务器?

我们在 conferenceroom.js 中提供的 STUN/TURN 将用于点之间的实际媒体 flow/mediapipeline。这是正确的吗?

如果我们在 conferenceroom.js 中提供多个 TURN 服务器,那么将为两个对等点之间的媒体流选择 TURN 服务器 neatest/fastest 响应时间?与我们从 Link.

获得响应时间相同

我还观察到,如果 webrtcendpoint.conf.iniconferenceroom.js 中提供的 TURN 服务器不同,那么我们将无法看到远程参与者的视频,但如果两个 TURN 服务器相同然后我就可以看到远程参与者的视频。这个对吗 ?

编辑 1:

在 groupcall 示例中我们有 onExistingParticipants()onNewParticipants() 我们可以在 receiveVideo()onExistingParticipants() 中定义 iceServers 所以如果我们指定 TURN 服务器会发生什么 [= kurentoUtils.WebRtcPeer.WebRtcPeerSendOnly() 中的 41=]t1 和 kurentoUtils.WebRtcPeer.WebRtcPeerRecvOnly() 中的 TURN 服务器 t2 那么这两个 TURN 服务器将作为中继链相互通信吗?

The TURN server configured from webrtcendpoint.conf.ini is used only for exchanging ice candidates. Also we can specify only one TURN server in webrtcendpoint.conf.ini because What I have observed is that if i provide 2 or more TRUN server in webrtcendpoint.conf.ini Kurento media server service fails to start, is this correct ?

它用于收集候选人,如果需要作为视频中继。您的 KMS 可能不需要它,因为它的部署位置由您管理。如果您只能使用所需的 STUN 方式,则不会使用中继服务器。

只能配置一台服务器,

Also is there any way to verify which STUN/TURN server is being used at Kurento media server and between two peers?

是的,WebRtcEndpoint 有这样的方法

  • getStunServerPort()
  • getStunServerAddress()
  • getTurnUrl()

The STUN/TURN which we provide in conferenceroom.js will be used for the actual media flow/mediapipeline between peers. Is this correct ?

它将用于在您的客户端中收集候选人。此外,如果您的客户端位于需要使用中继服务器的 NAT 后面,它将使用 conferenceroom.js 中配置的服务器。请记住,媒体路径可能不是对称的:虽然来自客户端->kms 的媒体可能未使用中继服务器,但来自 KMS-> 客户端的媒体可能是由于客户端所在位置的网络条件所致。

If we provide multiple TURN servers in conferenceroom.js then the TURN server neatest/fastest response time will be selected for media flow between the two peers? Same as we get response time form this Link.

是的,对候选人进行了调查,并选择了最佳人选。

Also what I have observed is that if the TURN server provided in webrtcendpoint.conf.ini and conferenceroom.js are different then we are not able to see remote participants video but if both the TURN server are the same then I am able to see remote participants video. Is this correct ?

这不应该是这种情况,除非一个 TURN 有效而另一个无效。


编辑

TURN 服务器之间不会交换媒体。如果需要,它们将被用作与其他对等点的中继。过程是

  • 每个对等点收集候选者:主机、srflx (STUN) 和中继 (TURN)。不过,如果TURN服务器不同,中继候选人也会不同。
  • 候选人被发送到另一个同行。
  • 每个候选人都会被单独调查,然后选出最好的一个。

由于所有媒体都通过 KMS,因此将由 KMS 将媒体发送到中继服务器。请记住,KMS 始终处于对等点之间。会是

kms->t2->客户端 客户端->t1->kms

即使连接是浏览器到浏览器,TURN 服务器也不会直接通信,因为它们将充当媒体从一个点发送到另一个点的中继。应该是

客户端1->t2->客户端2 client2->t1->client1