問題タブ [turn]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
921 参照

p2p - TURN サーバーが必要な NAT の組み合わせはどれですか?

によると:

https://en.wikipedia.org/wiki/Network_address_translation

4 種類の NAT 構成があります。

フルコーン、アドレス制限、ポート制限、対称。

ここで、クライアント A とクライアント B が別々のネットワーク上にあり、それぞれ別の NAT の背後に隠されているとします。

p2p通信したい場合、「クライアントAのNATタイプ」+「クライアントBのNATタイプ」のどの組み合わせにTURNサーバーが関与する必要がありますか(つまり、STUNプロトコルでは解決できません)?

たとえば、次のように推測します。

" client A NAT = Symmetric + client B NAT = Symmetric " には TURN サーバーが必要です。

残りの組み合わせは?

0 投票する
1 に答える
324 参照

webrtc - Interactive Connectivity Establishment (ICE) プロトコルの候補の Computing Foundations

RFC 5254セクション 4.1.1.3から参照しています。RFC 5254
を確認しまし たが、候補の基礎を計算する方法を理解できません。ICE プロトコルの候補の基礎を計算するためのアルゴリズムはありますか?

0 投票する
1 に答える
3341 参照

oauth - Coturn と oAuth で WebRTC を構成する方法

oAuth で coturnを使いたい。私がそれを正しく理解していれば、次の 2 つのことを行う必要があります。

  • coturn が使用しているデータベースに oAuth トークンを保存する
  • ACCESS-TOKENおよびUSERNAMESTUN 属性の送信

最初のポイントは明確ですが、2 番目のポイントを達成するには WebRTC クライアントをどのように変更する必要がありますか?

oAuth がなければ、次のRTCPeerConnectionように初期化します。

WebRTC 1.0 ドラフトでは列挙型が定義されているため、次のRTCIceCredentialTypeように構成を変更する必要があると思います。

Wireshark を使用すると、ACESS-TOKEN属性が表示されません。アイデアはありますか、または実際の例を知っている人はいますか?

0 投票する
1 に答える
344 参照

webrtc - TURN リレーを使用した webrtc でのメディア転送

A が B と通信したいとします。

Allocate リクエストをサーバー T1 に送信することで、A はリレー アドレスとポートを R1:r1 として取得します。

同様に、B は Allocate リクエストを送信してサーバー T2 をオンにし、B はリレー アドレスとポートを R2:r2 として取得します。

ここで、A が B にメディアを送信したい場合、A はメディアを R1:r1 に送信します。宛先アドレスとして R2:r2 を指定します。サーバーが R2:r2 でメディアを受信すると、B に転送されます。このように転送されますか?

A が B の中継されたトランスポート アドレスを知らない場合、A はどのようにして B に到達できますか?

0 投票する
1 に答える
1256 参照

webrtc - WebRTC でのスタン/ターンの使用

Cで小さなwebrtcアプリケーションを開発しています.sipシグナリングを使用してwebrtc呼び出しを行っています。スタン/ターン/アイスの使用に関して以下の質問があります。

通話を開始するときに、オファー (SDP) を含む INVITE を送信します。SDP では、ICE 候補を配置する必要があります。

考えられるケースは 2 つあります。それを説明するために、例を挙げます。2 つのエンドポイントがABであるとします。Pと言う一口プロキシサーバーがあります。また、私はターンサーバー(スタンとターンの両方をサポートしています)を持っています。それはTです。

ケース 1
すべてのエンティティABP、およびTが同じプライベート ネットワーク内にあります。ここで STUN 解決が必要ですか? はいの場合、対処する必要があるすべてのスタン要求/応答は何ですか?

ケース 2
ここで、 Aはプライベート ネットワーク内にあります。他のエンティティBP、およびTはパブリック ネットワークにあります。この場合、STUN/TURN 解決を行う必要があることを願っています。STUN から始めて、ホストと再帰候補を得たとしましょう。いくつかの例では、PermissionChannel Bindリクエストも使用されています。STUN のみ (TURN なし) を使用している場合、ホストとリフレクティブ候補を取得した後、何か特別なことをする必要がありますか?

これ以外に、gnutls (openssl なし) を使用する C のスタン/ターン クライアントに利用できる優れたオープン ソースはありますか?

0 投票する
1 に答える
545 参照

webrtc - ICE プロトコルでペアを検証する方法は?

関連する WebRTC、ICE プロトコルは、どのペアのアドレスがペア間の直接メディア転送で機能するかを示します。

A と B を 2 つの端点とする

  1. A と B 間の直接通信に使用するアドレスを選択するために、人物 A はまず候補を収集し、候補属性をエンコードし、SDP オファー メッセージをエンコードして、それを別のエンドポイントに送信します。

  2. B が A からオファー メッセージを受け取ると、B は候補を収集し、SDP 応答メッセージを独自の候補リストでエンコードして、A に送信します。

  3. このプロセスの最後に、各エージェントはローカル候補とリモート候補の完全なリストを取得します。それらをペアにして、CANDIDATE PAIRS を生成します。どのペアが機能するかを確認するために、各エージェントは STUN req/resp を使用して接続チェックを実行します。

有効な候補ペアを指名するために、何回の接続性チェックが実行されますか?

webRTC 呼び出しに関して実行される残りの ICE 接続チェックは何ですか?

webRTC 呼び出し用の ICE モジュールを開発するには、RFC5245 の各ステップに従う必要がありますか?

0 投票する
1 に答える
2983 参照

webrtc - PC からの WebRTC リクエストが TURN サーバーを使用するか、直接接続するかを簡単にテストするにはどうすればよいですか?

WebRTC がどのように機能するかについての私の理解は少し不安定ですが、デバイスが別のピアとの直接接続を作成できない場合 (NAT、ファイアウォールなどにより)、TURN サーバーがリレーとして使用されることは理解しています。

デバイスが TURN サーバーを使用しているか、別のピアに直接接続されているかを確認するために使用できる公共サービスはありますか?

0 投票する
2 に答える
756 参照

amazon-web-services - AWS で実行されているターンサーバーが応答しない

この問題に 1 か月近く悩まされていますが、EC2 インスタンスで問題なく rfc5766-turn-server (v3.2.3.1) をセットアップできます。

TURN が 3478 でリッスンしている場合、すべて正常に動作しますが、ポート 80 ではほとんどの場合動作しますが、特定の間隔で (不規則に発生) 応答しなくなり、そのプロセスを再起動しても何も変わりません。ポート 3478 で並行して実行しているプロセスでは、この問題は発生しません。

ポート 80 で実行するためのコマンド:

ポート 3478 で実行するためのコマンド:

問題はAWSネットワーク関連であり、ターンサーバーではないと思いますが、AWSまたはTURNサーバーについてはほとんど知りません。ポート 80 でこの問題に直面した人はいますか。ポート 80 で実行することは、特にピアがほとんどのポートをブロックする企業ファイアウォールの背後にある場合に重要だと思います。

正常に割り当てることができたときのログ (INTERNAL_IP によって EC2 の内部 IP を変更しました):

応答しない場合のログ (接続試行がまだ表示されていることに気付きました。1 つの違いは、成功シナリオの INTERNAL_IP ではなく、ピア接続の IP を示していることです):