web-dev-qa-db-ja.com

Coturnスタンサーバーがcode = 701のエラーを返しました

私はubuntu 19を備えた自分のサーバーを持っています。

注:ビデオチャットWebアプリケーション用のスタン/ターンサーバーが必要です。両方のデバイスが同じネットワークにある場合は、すでに機能しています。

Coturnを正常にインストールして構成しました。ターミナルでturnserverまたはNohup turnserver &を実行して、ターンサーバーを正常に起動できます。

注:サーバーへのSSH接続があります。

また、必要なポートが開いていることを確認し、netstat -tulpnでチェックしました。

また、Sudo service coturn restartのテスト中にcoturnを数回再起動しています。

これらの構成はturnserver.confで使用します。

# Also tried 80
listening-port=3478
# Also tried 443
tls-listening-port=5349
listening-ip=<MY-IP4>
listening-ip=<MY-IP6>
relay-ip=<MY-IP4>
external-ip=<MY-IP4>
oauth
user=root:<password>
userdb=/var/lib/turn/turndb
no-stdout-log

これは、js内の私のiceServers構成です。これは動作するはずです(他の組み合わせで大量に実行しました)。

var pcConfig = {
  'iceServers': [
    {
      'urls': 'stun:<MY-IP4>:80'
    },
    {
      'urls': 'turn:<MY-IP4>:80',
      'credential': '<PASSWORD>',
      'username': 'root'
    }
  ]
};

私はさまざまなスタン/ターンサーバーの組み合わせのトンを行いました、例えば:

  • 私はグーグルのスタンサーバーを使用しました:stun.l.google.com:19302、stun2.l.google.com:19302など。

  • 私はポート3478と5349を試しました(もちろん、coturnを再起動した後)

  • スタンサーバーの資格情報を使用しようとしましたが、資格情報は必要ありません。

  • IP6アドレスを使ってみた

私はまた、私のwebprojectとここでテストをライブで行っています: https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/

基本的に上記のテストURLは常に私に与えます:

Note: errors from onicecandidateerror above are not neccessarily fatal. For example an IPv6 DNS lookup may fail but relay candidates can still be gathered via IPv4.
The server stun:<MY-IP4>:80 returned an error with code=701:
STUN server address is incompatible.
The server stun:<MY-IP4>:80 returned an error with code=701:
STUN server address is incompatible.

私がグーグルのスタンサーバーを使用するか、自分のスタンサーバーを使用するかは関係ありません、エラーは同じです。

私のWebプロジェクトとビデオチャットは同じネットワークを使用するとうまく機能しますが、スタンアンドターンサーバーが同じネットワークで使用されていないと思います。

また、JSファイルを更新している間は常にキャッシュを削除したため、新しいJSファイルが使用されました。したがって、それも問題ではありませんでした。

[〜#〜]編集[〜#〜]

この組み合わせでエラーが発生することはありません。

Note: errors from onicecandidateerror above are not 
neccessarily fatal. For example an IPv6 DNS 
lookup may fail but relay candidates can still be gathered via IPv4.

テスト済み https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/

{
  'urls': 'stun:<MY-IP6>:80'
},
{
  'urls': 'turn:<MY-IP4>:80',
  'credential': '<PASSWORD>',
  'username': 'root'
}

スタンにはIP6、ターンにはIP4を使用しました。別のネットワークでのビデオチャットはまだ機能せず、他にエラーを見つけることはできません。

編集:

https://webrtc.github.io/samples/src/content/peerconnection/trickle-ice/ が機能しないことに今日気づきました。 Firefoxでエラーは発生しませんでした。しかし、あなたはそこにいくつかのナンセンスを入力することができ、それはエラーも表示しません...

編集:

有効な証明書も追加しました:

cert=/usr/local/etc/turn.pem                                                                                    
pkey=/usr/local/etc/turn.key.pem

動作するようです。コターンを再起動すると、ステータスから問題なく実行されていることがわかります。

ビデオチャットはまだ別のネットワークでは機能しません。

1
Roman

はい。全体を間違った角度から見ていました。 TURN/STUNサーバーの設定は正しいです。

問題は、クライアント/サーバーコードにあります。シグナリングは機能しません。

私は this の記事に従いましたが、シグナリングサービスのセットアップに問題があります。これは新しい質問で問われるべきだと思います。

1
Roman