BigBlueButton Webcamが読み込まれない問題を解決する:ICEソケット接続失敗

BigBlueButtonウェブカメラが真っ暗なままで、ブラウザや会議で「ICEソケット接続失敗」と表示される場合、このメッセージはメディア接続の失敗を示していますが、原因は特定できません。カメラのアクセス許可、ユーザーのネットワーク、サーバーのファイアウォール、NATアドレス、TURNリレー設定など、様々な要因が関係している可能性があります。サーバー設定を変更する前に、まずは問題の原因を特定するためのチェックから始めてください。

BigBlueButton の最新のトラブルシューティング ガイドでは、関連するエラー1007: ICE ネゴシエーション失敗について、ブラウザとメディア サーバー間のパスのネゴシエーションに失敗したことを説明しています。NAT、ブロックされた UDP ポート、制限のあるネットワークでの TURN の必要性などが挙げられています。ブラウザに表示される正確な表現は、BigBlueButton のバージョン、ホスティング プラットフォーム、またはクライアントによって異なる場合があります。これは診断ではなく、手がかりとして扱ってください。BigBlueButton 4.0 のトラブルシューティング ガイドを参照してください。

まず、カメラまたは接続のどちらに問題があるかを特定してください。

ブラウザがウェブカメラにアクセスするにはカメラのアクセス許可が必要であり、会議ページはHTTPSなどのセキュアなコンテキストを使用する必要があります。これらのチェックによって、ブラウザがローカルビデオをキャプチャできるかどうかが判断されます。ICEは、ブラウザとBigBlueButton間でメディアを送信するためのネットワーク経路を見つけるWebRTCプロセスです。カメラのアクセス許可の拒否とICE経路の失敗は異なる問題ですが、どちらもウェブカメラが使用できなくなる可能性があります。MDNには、ブラウザのアクセス許可とセキュアなコンテキストの要件に関するドキュメントがあります。

カメラの切り替えボタンが有効になっており、その下にマイクの操作ボタンがある、一般的なブラウザの権限パネル。
カメラがオンになっているブラウザの権限パネルの概念図。シンボルは説明のためのものであり、特定のブラウザやBigBlueButtonの画面を再現するものではありません。

アドレスバーの横にあるカメラアイコンとブラウザのサイト設定を確認してください。BigBlueButtonサイトでカメラへのアクセスを許可し、目的のカメラが選択されていることを確認し、カメラを使用している可能性のある他のアプリを閉じてください。ブラウザにローカルプレビューが表示されるにもかかわらず、会議でビデオを公開できない場合は、ローカルデバイスへのアクセスは正常に機能している可能性が高いので、ネットワークの確認を続けてください。プレビューが表示されない場合は、まずデバイスの選択、オペレーティングシステムのプライバシー設定、またはブラウザの権限の問題を解決してください。

参加者チェックを以下の順番で試してください

  1. 一度ページを再読み込みして、再度参加してください。ミーティングから退出してページを再読み込みし、再度参加してウェブカメラを再試行してください。これにより、一時的なブラウザまたはメディアセッションの問題が解消される場合がありますが、ICEの障害が繰り返し発生する場合は、通常、ネットワークまたはサーバー側の修正が必要です。
  2. サポートされているブラウザに更新または切り替えてください。サポートされている別のデスクトップブラウザの最新バージョンをお試しください。Webカメラがそこで動作する場合は、会議の主催者向けに元のブラウザとそのバージョンを記録してください。ブラウザ固有の動作が発生する可能性があるため、1つのブラウザで正常に動作したからといって、すべてのユーザーに対してサーバーが正しく設定されているとは限りません。
  3. 別のネットワークと比較してみてください。許可されている場合は、スマートフォンのホットスポットまたは別の信頼できるネットワークから接続してみてください。2回目の接続でウェブカメラが正常に動作すれば、元のWi-Fi、VPN、プロキシ、または社内ファイアウォールがメディアトラフィックを制限している可能性が非常に高いです。ただし、どの特定のルールが原因かは特定できません。
  4. 別の参加者とも同じ会議室でテストしてください。複数の参加者がネットワークに関わらずウェブカメラを公開できない場合は、サーバーまたはホスティングの問題の可能性が高いので、会議管理者に報告してください。1人だけが失敗する場合は、まずその参加者のデバイス、ブラウザ、ネットワークに着目してください。
  5. 別のBigBlueButtonルームまたはデモをテストしてください。組織が許可している場合は、別のルームまたは公式のBigBlueButtonテストサービスを使用してください。カメラがそちらでは動作するのに、組織のサーバーでは動作しない場合は、その比較結果を管理者に共有してください。
ノートパソコンの隣に置かれたスマートフォンのホットスポットで、選択されたWi-Fiネットワークが表示されており、別の接続での比較テストを表している。
スマートフォンのホットスポット機能とノートパソコンのWi-Fiリストは、制限付きネットワークと独立した接続を簡単に比較できる例です。

管理者が確認すべき事項

複数のユーザーが影響を受ける場合は、ホストファイアウォール、クラウドセキュリティグループ、ルーターまたはNATデバイス、および上流のネットワークファイアウォールなど、各ネットワーク境界でメディアパスを確認してください。BigBlueButtonのファイアウォールドキュメントでは、Webトラフィック用にTCP 80と443、ドキュメントに記載されているデフォルト構成ではメディア用にUDP 16384~32768がリストされています。インストールではカスタマイズされた範囲またはバージョン固有のメディアスタックを使用している場合があるため、ルールを変更する前に実際の構成を確認してください。インストールに必要な範囲よりも広い範囲を開放しないでください。最新のBigBlueButtonファイアウォール構成ガイドを確認してください。

ファイアウォールを通過するクライアントからサーバーへの概念的なネットワークパスを示し、メディアUDPルールがサーバー構成と一致しなければならない理由を説明します。
概念的なネットワーク経路は、会議用メディアがファイアウォールを通過してサーバーに到達する様子を示しています。ご使用の環境で実際に使用されているルールとポート範囲を確認してください。

NAT の背後にあるサーバーの場合、メディア サービスが到達可能な外部 IP アドレスを通知していることを確認してください。BigBlueButton 2.5 以降では、HTML5 WebRTC メディアに mediasoup を使用します。公式ファイアウォール ガイドでは、通知された外部アドレスの設定方法について説明しています/etc/bigbluebutton/bbb-webrtc-sfu/production.yml。プライベート アドレス、古いパブリック アドレス、誤ったポート フォワーディング、または IPv6 設定の欠落により、クライアントがメディア サービスに到達できない場合があります。ご使用の BigBlueButton リリースとネットワーク構成に合った手順のみを適用し、ガイドの指示に従ってのみサービスを再起動してください。

また、影響を受けるユーザーが送信UDPをブロックするネットワークを使用しているかどうかも確認してください。TURNサーバーは、直接ルートが利用できない場合にWebRTCトラフィックを中継できますが、該当するBigBlueButtonバージョン用にインストールされ、アクセス可能で、構成されている必要があります。TURNのドキュメントとパッケージのデフォルト設定はリリースごとに異なります。使用している正確なバージョンのガイドに従ってください。別のリリースから認証情報やポート設定をコピーしないでください。BigBlueButton 4.0 TURNサーバーのガイダンスを確認してください。

直接経路が利用できない場合に、2つの会議エンドポイントがリレーサーバーを介してメディアを交換する様子を示すWebRTCの概念図。
WebRTCの概念的なパス図は、直接接続が確立できない場合に、エンドポイントがリレーサーバーを使用することを示しています。

避けるべき一般的な思い込み

「ウェブカメラのエラーは、カメラが故障していることを意味します。」

必ずしもそうとは限りません。ローカルプレビューが表示され、ブラウザに権限があれば、メディア経路に障害が発生していてもデバイスは正常に動作している可能性があります。対処法:カメラを交換する前に、別のネットワークを試して、他の参加者に影響が出ていないか確認してください。

「カメラを有効にすれば、ウェブカメラの不具合はすべて解決する。」

この権限は、ブラウザがビデオをキャプチャすることのみを許可します。ブロックされたUDPトラフィックを開いたり、サーバーのNATアドレスを修正したりするものではありません。対処方法:権限を確認後、別のネットワークから接続をテストしてください。

「会議が正常に読み込まれるということは、そのメディアネットワークがオープンであることの証拠だ。」

ページと会議のコントロールはHTTPS経由で読み込めますが、リアルタイムの音声やビデオは個別のメディアパスを確立できません。BigBlueButtonは、ICEの失敗とUDPおよびNATのブロックが原因として考えられることを文書化しています。対処法: Webカメラテストを実行し、ネットワーク間で結果を比較してください。

「すべてのサーバーは同じポートとTURN設定を使用すべきです。」

ドキュメントに記載されているデフォルト設定は、あくまでも出発点として役立つものであり、実際の構成を保証するものではありません。ポートはカスタマイズ可能であり、TURNの設定はリリースによって異なります。ファイアウォールやリレールールを変更する前に、デプロイ済みのバージョンと構成を必ず確認してください。

修正を確認する方法

変更後、新しいミーティングに参加し、ウェブカメラを少なくとも1分間公開してください。ローカルプレビューが表示され、他の参加者がストリームを見ることができ、再接続してもICEエラーが再現しないことを確認してください。以前に影響を受けたネットワークのユーザーに同じテストを繰り返してもらいます。ホットスポットテストのみが成功した場合は、その結果をネットワーク管理者に伝え、送信WebRTCトラフィックのレビューを依頼してください。複数のユーザーで全てのネットワークが失敗した場合は、サーバーバージョン、おおよその時間、影響を受けたブラウザ、エラーコードまたは正確なメッセージ、音声が機能するかどうか、および各ネットワークテストの結果をBigBlueButtonホストに送信してください。ミーティングリンク、アクセストークン、編集されていないブラウザログを公開しないでください。

有用な診断を行うことで、障害が発生しているレイヤー(ローカルカメラへのアクセス、特定のユーザーのネットワーク、またはサーバーのメディア経路など)を絞り込むことができます。メッセージだけではこれらのケースを区別することはできませんが、これらのチェックを行うことで、管理者は次の変更を行うための根拠を得ることができます。

公式資料

コメントを残す

クライアントブラウザでのJitsi MeetにおけるCPU使用率の高さを修正する

クライアントブラウザでのJitsi MeetにおけるCPU使用率の高さを修正する

Jitsi MeetブラウザのCPUスパイクを診断し、ビデオタイル、カメラエフェクト、ブラウザグラフィック、ホスト設定をチェックすることで、クライアントの負荷を軽減します。

PrometheusとGrafanaを使用してJitsi Videobridgeのメトリクスを監視する方法

PrometheusとGrafanaを使用してJitsi Videobridgeのメトリクスを監視する方法

Jitsi Videobridgeに内蔵されたPrometheusエンドポイントを使用して、Jitsi Videobridgeの状態、会議の負荷、トラフィックを追跡し、Grafanaでデータを探索およびグラフ化できます。

Jitsi Meet Docker のカスタムドメイン名の設定方法

Jitsi Meet Docker のカスタムドメイン名の設定方法

Jitsi Meet Docker 用のカスタムドメインを、DNS、PUBLIC_URL、HTTPS、Let's Encrypt、ファイアウォールポート、NAT 設定、エンドツーエンド検証とともに構成します。

SSL更新後にZimbra管理コンソールで発生する404 Not Foundエラーを修正する

SSL更新後にZimbra管理コンソールで発生する404 Not Foundエラーを修正する

SSL更新後に発生するZimbra管理コンソールの404エラーを修正するには、正しいURLとポート、プロキシルーティング、サービスステータス、デプロイ済みの証明書、およびログを確認してください。

Nextcloudの「PHP OPcacheが正しく設定されていません」という警告を修正する

Nextcloudの「PHP OPcacheが正しく設定されていません」という警告を修正する

アクティブなPHP SAPI、サイズ制限、コメント、および再検証設定を確認することで、NextcloudのPHP OPcache構成警告を診断および修正する方法を学びましょう。

MySQLバージョンアップグレード後のKopanoデータベース移行エラーを修正する

MySQLバージョンアップグレード後のKopanoデータベース移行エラーを修正する

MySQLまたはMariaDBのアップグレード後にKopanoデータベースの移行が失敗した場合は、バックアップ、サーバーバージョン、SQLモード、文字セット、スキーマ状態、およびログを確認してトラブルシューティングを行います。

NextcloudでLDAPとActive Directory認証を設定する方法

NextcloudでLDAPとActive Directory認証を設定する方法

セキュアなトランスポート、ユーザーおよびグループフィルタ、ログイン属性、そしてテスト済みの展開機能を使用して、NextcloudをLDAPまたはActive Directoryに接続します。

GoogleサービスなしでElement Android通知を修正する方法:UnifiedPushガイド

GoogleサービスなしでElement Android通知を修正する方法:UnifiedPushガイド

UnifiedPush、Androidの権限設定、バッテリー設定、および信頼性の高い検証テストを設定することで、Googleサービスを削除した端末におけるElement Android通知の問題を修正します。

Nextcloudの「データベースに一部のインデックスが欠落しています」という警告を修正する

Nextcloudの「データベースに一部のインデックスが欠落しています」という警告を修正する

Nextcloudのデータベースインデックス不足警告を、公式のoccコマンドでクリアします。まずバックアップを作成し、変更内容をプレビューしてから修復を実行し、結果を確認してください。

Element WebでKeycloakを使用してシングルサインオン(SSO)を設定する方法

Element WebでKeycloakを使用してシングルサインオン(SSO)を設定する方法

Element Web 用の Keycloak SSO を設定するには、OIDC を Synapse に接続し、正確なコールバック URL を設定し、ユーザー クレームをマッピングし、ログアウトをテストします。