私は WebRTC フレームワークに取り組んでおり、音声通話とビデオ通話のために 2 つの Android モバイル デバイス間のピア接続を確立しています。そして今、ソリューションを、NAT が主要な役割を果たすパブリック ネットワークに移行したいと考えています。
私のソリューションは対称 NAT でも機能する必要がありますが、デバイスが対称 NAT で接続されている場合、STUN サーバーは音声/ビデオ通話を確立できません。そこで、TURNサーバーのセットアップに行き、次のチュートリアルの助けを借りてセットアップを成功させました.
TURN および STUN サーバーの無料のオープン ソース実装
WebRTC を使用するための TURN サーバーのセットアップ
そして、このサーバーを Android アプリケーションの ICEServers に正常に追加し、relay
ICE 候補の取得を開始しました。
私が取得している候補は次のようになります
a=candidate:2312680776 1 udp 33562367 115.113.119.170 52972 typ relay raddr 223.227.91.151 rport 25323 generation 0
a=candidate:2312680776 2 udp 33562366 115.113.119.170 64698 typ relay raddr 223.227.91.151 rport 25324 generation 0
今私の質問が始まります:
これらの候補をどのように想定すればよいですか?? (これらの候補を相手側に渡すだけでなく、これらの候補を手動で処理したいため)
私は理解する方法を知っていますsrflx
が、そうではありませんrelay
。
リレーの後には、グローバル IP アドレスとポートが続きます。つまり、オーディオ/ビデオデータを聞いてキャッチする必要があるということですraddr
か??rport
これらの候補を解析し、オーディオ/ビデオ データを取得するにはどうすればよいですか??
注: Wireshark では、TURN サーバーからのデータ パケットが、rport
上記の候補の両方のフィールドと等しくないポートにあることを確認できます。
そして、TURNサーバーからの割り当て応答をリッスンする必要があることをどこかで読みました。
私は本当にそれを行う方法を知る必要があります. このトピックに関するヘルプは大歓迎です。:(