2016-05-30 195 views
0

按我的理解,從我剛纔的問題:Kurento: STUN/TURNKurento:客戶端TURN配置

webrtcendpoint.conf.ini配置的TURN服務器僅用於交換的冰候選人。我們還可以在webrtcendpoint.conf.ini中指定一個TURN服務器,因爲我觀察到的是如果我在webrtcendpoint.conf.ini中提供了2個或更多TRUN服務器,Kurento媒體服務器服務無法啓動,這是正確的嗎?

還有什麼方法可以驗證哪些STUN/TURN服務器在Kurento媒體服務器和兩個對等設備之間使用?

我們在conferenceroom.js中提供的STUN/TURN將用於同級之間的實際媒體流/媒體管道。它是否正確 ?

如果我們在conferenceroom.js中提供了多個TURN服務器,那麼TURN服務器最快/最快的響應時間將被選擇用於兩個對等設備之間的媒體流?與我們從Link獲得響應時間相同。

也是我所觀察到的是,如果在webrtcendpoint.conf.iniconferenceroom.js提供的TURN服務器不同,那麼我們是不是能夠看到遠程參與者的視頻,但如果兩個TURN服務器是一樣的話,我能看到遠程參與者的視頻。它是否正確 ?

編輯1:

在groupcall樣本示例中,我們onExistingParticipants()onNewParticipants(),我們可以在receiveVideo()onExistingParticipants()定義iceServers如果我們kurentoUtils.WebRtcPeer.WebRtcPeerSendOnly()指定TURN服務器T1和TURN服務器T2所以會發生什麼 in kurentoUtils.WebRtcPeer.WebRtcPeerRecvOnly()那麼這兩個TURN服務器之間會如何互相通信作爲中繼鏈?

回答

2

從webrtcendpoint.conf.ini配置的TURN服務器僅用於 用於交換候選冰。另外我們可以在webrtcendpoint.conf.ini中只指定一個TURN 服務器,因爲我觀察到的是如果我在webrtcendpoint.conf.ini中提供2個或更多TRUN服務器,則爲 Kurento 媒體服務器服務無法啓動,請問這是正確的嗎?

它用於收集候選人,如果需要作爲視頻中繼。您的KMS不會需要它,因爲它的部署位置由您管理。如果你只能用STUN來完成,那麼中繼服務器將不會被使用。

只有一個服務器可以被配置,

另外是否有任何方式來驗證這STUN/TURN服務器正在使用 在Kurento媒體服務器和兩個對等體之間?

是的,WebRtcEndpoint有此

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

的STUN/TURN方法,這是我們在conferenceroom.js提供將用於 同級之間的實際媒體流量/ mediapipeline。它是否正確 ?

它將用於收集您的客戶的候選人。此外,如果您的客戶端位於需要使用中繼服務器的NAT後面,它將使用conferenceroom.js中配置的那個。請記住,媒體路徑可能不是對稱的:從客戶端 - >公司傳輸的媒體可能沒有使用中繼服務器,從KMS->客戶端發送的媒體可能是由於客戶位置的網絡條件造成的。

如果我們提供conferenceroom.js多TURN服務器將開啓 服務器最整潔的/最快的響應時間將在兩個節點之間的媒體流 選擇?同我們從這個鏈接獲得響應時間一樣。

是的,候選人被探測,最好的選擇。

而且我所觀察到的是,如果在 webrtcendpoint.conf.ini和conferenceroom.js提供的TURN服務器不同,那麼我們 無法看到遠程參與者的視頻,但如果兩個TURN 服務器是同樣的,我可以看到遠程參與者的視頻。 這是正確的嗎?

這不應該是這樣,除非一個TURN工作,另一個不工作。


編輯

TURN服務器將不會在它們之間交換媒體。如果需要,它們將被用作與另一個同伴的中繼。進程是

  • 每個對等端收集候選:主機,srflx(STUN)和中繼(TURN)。不,如果TURN服務器不同,繼電器候選人也將不同。
  • 候選人被送到另一個同伴。
  • 每個候選人被單獨探測,並選擇最好的一個。

由於所有媒體都通過KMS,因此它將是向中繼服務器發送媒體的媒體。請記住,KMS始終處於同行之間。這將是

kms-> T2->客戶端 客戶端 - > T1->公里

即使連接爲瀏覽器到瀏覽器中,TURN服務器將不能直接通信,因爲它們將作爲繼電器動作媒體從一個同伴發送到另一個。這將是

client1-> T2->客戶端2 client2-> T1->客戶端1

+0

感謝您的回覆,我想實現是強制的媒體兩個方向上使用TURN服務器流。此外,如果我從世界的多個位置提供TURN服務器,並且有人試圖加入此組呼,則由ICE候選人使用/分配的TURN服務器將是距離用戶最近的一個。這可以通過在'conferenceroom,js'中提供TURN服務器列表來實現嗎? –

+0

「TURN服務器不會直接通信,因爲它們將作爲從一臺服務器發送到另一臺服務器的媒體的中繼」,這是否意味着兩臺TURN服務器可以相互之間進行中繼? 你也可以告訴我們在'conferenceroom.js'中指定TURN服務器時使用的'webrtcendpoint.conf.ini'中的TURN服務器在哪裏。 –

+1

這是一個錯字。轉向服務器不交換媒體,它們充當從同伴發送的媒體的中繼。由於[您的其他問題](https://stackoverflow.com/questions/37162476/kurento-stun-turn)中明確指出,除非您這麼做,否則不會共享STUN/TURN配置。同行(和KMS只是另一個同伴)可以有不同的STUN/TURN配置。 – igracia