次の方法で共有


通話品質の向上と管理

この記事では、Azure Communication Services の通話品質を監視、トラブルシューティング、改善するために利用できる主なツールについて説明します。 次の資料は、最適なユーザー エクスペリエンスを実現するための計画に役立ちます。

この記事を読む前に、通話に関する以下の概要情報をご確認ください。

QoS を使用してネットワークを準備し、重要なネットワーク トラフィックを優先させる

ユーザーが Azure Communication Services を使用して通話や会議を始めると、通話相手の音声が途切れたり、通話や会議の途中で聞こえたり聞こえなかったりすることがあります。 また、共有ビデオがフリーズしたり、ブロックノイズが発生したり、まったく再生できなかったりする場合もあります。 この問題は、音声トラフィックとビデオ トラフィックの IP パケットがネットワークの込み合いに巻き込まれたことにより、順番通りに到達しなかったり、まったく到達しなかったりすることが原因です。 これが発生した場合は (またはそもそも発生しないようにするためには)、ネットワークの推奨事項に従ってサービスの品質 (QoS) を活用します。

QoS を使用すると、遅延の影響を受けやすいネットワーク トラフィック (音声ストリームやビデオ ストリームなど) を優先することができます。 そのようなトラフィックは、遅延の影響を受けにくいトラフィックの前に "割り込む" ことができます。 優先順位の低いトラフィックの例として、新しいアプリのダウンロードがあります。 この場合、ダウンロードにかかる時間が 1 秒伸びたとしても、大きな問題にはなりません。

QoS は、Windows グループ ポリシー オブジェクトと、ポートベースのアクセス制御リストと呼ばれるルーティング機能を使用して、リアルタイム ストリーム内のすべてのパケットを識別してマークします。 この機能は、音声、ビデオ、画面共有にそれぞれ専用のネットワーク帯域幅を割り当てるようにネットワークに指示します。

Azure Communication Services ソリューションを導入する準備をしながら、内部ネットワークに QoS を実装しておくのが理想的です。 しかし、実装はいつでもできます。 ネットワークが十分に小さければ、QoS が必要ない場合もあります。

詳細なガイダンスについては、「ネットワークの最適化」を参照してください。

品質と信頼性の調査のためにデプロイを準備する

品質の定義は、リアルタイム通信のユース ケースとユーザーの視点によって異なります。 リアルタイムの通話エクスペリエンスにおいて体感される品質には、多くの変数が影響します。 ある変数を改善すると、別の変数にマイナスの変化が生じる可能性があります。 たとえば、ビデオ通話のフレーム レートと解像度を上げると、使用するネットワーク帯域幅と処理能力が増えます。

開発を開始する前に、顧客のユース ケースと要件を確認しておきましょう。 たとえば、多数のセキュリティ カメラのフィードを同時に監視する必要がある場合は、各ビデオ ストリームで提供可能な最大解像度とフレーム レートは必要ないかもしれません。 このシナリオでは、ビデオの制約 API 機能を使用して、各ビデオ ストリームで使用する帯域幅の量を制限できます。

ネイティブ プラットフォームにログ記録を実装する

ログ ファイルの取得に関するチュートリアルの説明にあるようにログ記録を実装することは、ネイティブ開発のための詳細を収集する上で非常に重要です。 詳細なログは、デバイス モデルまたは OS バージョンに固有の問題を診断する際に役立ちます。 Logs API の構成を開始する開発者には、通話の有効期間に関する詳細を取得することをお勧めします。

デプロイ前に品質と信頼性に関する既存の機能を実装する

ユーザーに最適な通話品質を提供するように最適化されているこれらの簡単に実装できる通話サンプルをご利用いただくことをお勧めします。

サンプルがニーズに合わず、Azure Communication Services 通話ソリューションをカスタマイズする場合は、高品質の通話エクスペリエンスをサポートする以下の機能を実装してください。 これらの機能のツールは、品質や信頼性に関する一般的な問題の発生を防止し、問題が発生した場合はその診断に役立つものです。 これらの機能を実装しない限り、一部の通話データは作成または保存されないことに注意してください。

以下のセクションでは、通話の各フェーズで実装すべきツールについて詳しく説明します。

  • 通話前: 通話前の準備。
  • 通話中: 通話中の通信。
  • 通話後: 通話品質と信頼性の監視とトラブルシューティング。

通話前

Azure Communication Services が提供する通話前のチェックを使用すると、通話前にユーザーの接続状態を知り、ユーザーに代わって予防的なアクションを実行できます。 たとえば、ユーザーの接続状況が悪いことを把握できた場合は、音声接続を改善するために、通話に参加する前にビデオをオフにするよう勧めることができます。

ネットワーク診断ツール

ネットワーク診断ツールは、開発者が開発中に通話の準備状況を検証するためのホストされたエクスペリエンスを提供します。 優れた通話エクスペリエンスを提供する上で、ユーザーのデバイスとネットワークの状態がサービスに接続するのに最適かどうかを確認できます。 このツールは、ネットワーク、デバイス、通話品質に関する診断を実行します。

ネットワーク診断ツールを使用すると、通話に参加する前に信頼性の問題を解決し、ネットワーク接続を改善するようユーザーに促すことができます。

詳細については、「ネットワーク診断ツール」を参照してください。

診断のための通話前 API

独自の診断ツールを構築したり、ネットワーク診断ツールをアプリケーションとより緊密に統合したいことがあるかもしれません。 その場合は、通話前 API を使用して、Calling SDK の診断ツールを実行できます。

通話前 API を使用すると、ユーザー インターフェイスのエクスペリエンスをカスタマイズできます。 その後、ネットワーク診断ツールで使用される一連のテストを実行し、テスト通話で互換性、接続性、デバイスのアクセス許可を確認できます。 通話が始まる前に、問題を修正する方法をユーザーに伝える最善の方法を決定できます。 また、品質と信頼性の問題をトラブルシューティングする際に、特定のチェックを実行することもできます。

たとえば、ユーザーのハードウェア テストで問題が見つかった場合は、ユーザーに通知することで、今後の通話に対する期待事項と変更を管理できます。

詳細については、「事前通話診断」を参照してください。

通話クライアントの競合

Azure Communication Services の音声およびビデオ通話は Web ブラウザーとモバイル ブラウザーで動作するため、ユーザーが複数のブラウザー タブで別の Azure Communication Services Calling SDK のインスタンスを実行する可能性があります。 このような状況は、次の例のようなさまざまな理由で発生する可能性があります。

  • ユーザーが以前利用していたタブを閉じるのを忘れた。
  • 会議の開催者が不在で、ユーザーが通話に参加できなかった。 ユーザーが会議に参加するためのリンクを再度選択した際、別のモバイル ブラウザー タブが開いてしまった。

複数の通話ブラウザー タブを同時に使用すると、ユーザーが参加しようとしている通話 (つまり "ターゲット通話") の音声およびビデオの動作が乱れます。 通話を開始する前、そして通話ライフサイクルの全体 (監視を使用) を通して、複数のブラウザー タブが開かれていないことを確認する必要があります。 余分なタブを閉じるよう通知したり、最初に通話に参加できなかった場合は役に立つメッセージを送って、通話に正しく参加できるように支援することができます。

ユーザーがブラウザーで複数の Azure Communication Services インスタンスを実行しているかどうかを確認するには、「Azure Communication Services の SDK を使用するアプリケーションがブラウザーの複数のタブでアクティブになっているかどうかを検出する方法」を参照してください。

通話中

通話中、ユーザーのネットワークの状態が悪化したり、信頼性や互換性の問題が発生したりする可能性があります。 このような状況では、通話エクスペリエンスを損なってしまう可能性があります。 次のセクションは、通話時に発生する問題を管理し、ユーザーと通信するための機能を応用するの上で役立ちます。

ユーザー向け診断

ユーザーが通話中の場合は、通話の問題についてリアルタイムで通知することが重要です。 ユーザー向け診断機能を利用すると、発話時のマイクのミュートや、ネットワーク品質の低下など、ユーザーに影響を与える問題に対してリアルタイムでフラグを立てることができます。

ユーザー インターフェイスのメッセージをシナリオに合わせて調整することもできます。 次に例を示します。

  • フラグによってネットワークの問題が特定された場合、ビデオをオフにしたり、ネットワークを変更したり、ネットワークの状態や接続が良好な場所に移動したりするようユーザーに促すことができます。
  • フラグによってデバイスの問題が特定された場合は、デバイスを変更するようユーザーに促すことができます。

メッセージングだけでなく、ユーザーに代わって行動し、ユーザーの限られた帯域幅を保護するための積極的なアプローチを検討することもできます。 あなたからの通知を受け取った後、ユーザーがビデオをオフにしないことがあることに気づいた場合は、ユーザーのビデオをあらかじめオフにしておき、音声接続を優先させることができます。 また、ユーザーが通話に参加する前に、そのユーザーに表示されるユーザー インターフェースからビデオ機能を非表示にすることもできます。

詳細については、「ユーザー向け診断」を参照してください。

ビデオの制約

ビデオ ストリームは、大量のネットワーク帯域幅を消費します。 ユーザーのネットワーク帯域幅が限られているか、ネットワークの状態が悪いことがわかっている場合は、ビデオの制約を利用してユーザーのビデオ接続のネットワーク使用量を制御することができます。 ユーザーのビデオ ストリームで消費する帯域幅の量を制限することで、ネットワーク環境が悪い場合でも、良好な音声品質に必要な帯域幅を確保できます。

詳細については、「ビデオの制約」を参照してください。

ボリューム インジケーター

ユーザーがお互いの声を聞き取れないことが時々発生する場合があります。 スピーカーの音が小さすぎるか、聞き手のデバイスがオーディオ パケットを受信できていないか、オーディオ デバイスの問題で音がブロックされている可能性があります。 ユーザーは、相手に自分の声が聞こえていないことを知ることができません。 入力インジケーターと出力インジケーターを使用することで、以下を行うことができます。

  1. ユーザーの音量が低いか、ないかを示します。
  2. ユーザー インターフェイスを介して、大きな声で話すか、オーディオ デバイスの問題を調査するようにユーザーに促します。

詳細については、Web 通話に音量インジケーターを追加する方法に関するクイックスタートを参照してください。

メディア品質の統計情報

ネットワークの状態は通話中に変化する可能性があるため、問題なく通話を開始した場合でも、音声とビデオの品質が低いという報告がユーザーから上がることがあります。 "メディア品質の統計情報" 機能は、受信と送信の各オーディオ、ビデオ、画面共有ストリームに関する詳細な品質メトリックを提供します。 この詳細な分析情報は、進行中の通話の監視、通話全体を通したユーザーのネットワーク品質の状態の表示、個々の通話のデバッグに役立ちます。

この機能のメトリックは、送受信に関する Azure Communication Services クライアント SDK のメディア ストリームの問題を特定するのに役立ちます。 たとえば、送信ビデオ ストリームの availableBitrate 値を能動的に監視し、推奨される 1.5 Mbps を一貫して下回っていることに気付いた場合は、ビデオ品質が低下していることをユーザーに通知できます。

サーバー ログ データからは、通話終了後の一般的な概要しか得られません。 詳細なメディア統計は、通話中は低次のメトリックを提供し、その後はより詳細な分析を行うのに利用できます。

詳細については、「メディア品質の統計情報」を参照してください。

最適なビデオ数 API

2 人以上の参加者でグループ通話をしていると、ネットワークの状態の変化と特定のハードウェアの制限により、ユーザーのビデオ品質が上下する可能性があります。 最適なビデオ数 API を使用すると、品質を下げることなく同時にいくつのビデオ ストリームをローカル エンドポイントでレンダリングできるかを知ることで、ユーザーの通話品質を向上させることができます。

この機能を実装することで、そうでない場合はビデオのレンダリングの質が下がるような場合でも、ローカル エンドポイントの通話品質と帯域幅を維持することができます。 この API は、optimalVideoCount プロパティを公開します。このプロパティは、ローカル エンドポイントのネットワークとハードウェアの能力に応じて動的に変化します。 この情報は実行時に利用でき、通話全体を通じて更新されるため、ネットワークとハードウェアの状態の変化に応じてユーザーの視覚的なエクスペリエンスを調整することができます。

この機能を実装するには、Web プラットフォーム ガイダンスの「通話中にビデオを管理する」を参照してください。

通話後

Azure Communication Services 通話ソリューションをリリースしてスケールする前に、品質と信頼性に関する以下の監視機能を実装して、利用可能なログとメトリックを収集していることを確認してください。 通話データはこれらの機能を実装するまで保存されないため、この機能がないと、通話の品質と信頼性を監視およびデバッグできません。

詳細については、「Azure Communication Services の音声通話およびビデオ通話のログ」を参照してください。

通話ログの収集を開始する

通話ログの収集を開始するには、「Azure Monitor の診断設定でログを有効化する」を確認してください。

Azure Monitor でデータの表示と分析を行うには、カテゴリ グループ [allLogs] を選択し、宛先の詳細として [Log Analytics ワークスペースに送信する] を選択することをお勧めします。 データの送信先となる Log Analytics ワークスペースがない場合は、作成する必要があります。

必要に応じて、コストに関する考慮事項について、データの使用状況と保持ポリシーを確認することをお勧めします。 詳細については、「コストの制御」を参照してください。

通話の診断を使用して通話を診断する

通話の診断は、Azure portal の専用のテレメトリと診断ページを通じて、カスタマイズされた分析情報を提供する Azure Monitor エクスペリエンスです。

Log Analytics ワークスペースにログ データを格納し始めたら、個々の通話の検索を可視化し、通話の診断でデータを可視化できます。 Azure Monitor アカウントで、お使いの Azure Communication Services リソースに移動し、サービス メニューで [通話の診断] を見つけます。 この機能の最適な使用方法については、「通話の診断」を参照してください。

音声とビデオの分析情報を使用して通話品質を調べる

ログを有効にしたら、「音声とビデオの分析情報」の視覚化の例を使用して、Azure リソースで通話の分析情報を表示できます。

既存のブックを変更したり、独自のブックを作成することもできます。 詳細については、「Azure Workbooks」を参照してください。

より詳細な分析例については、「通話ログにクエリを実行する」を参照してください。

通話終了アンケートを使用してユーザーのセンチメントを分析する

お客様からのフィードバックは非常に貴重です。 通話終了アンケートは、構築した JavaScript または Web SDK 通話ソリューションの全体的な品質と信頼性を、ユーザーがどのように認識しているかを理解するのに役立ちます。

すでにアンケート ソリューションを導入している場合は、アンケートをさまざまな形式に変更できます。 アンケート データを公開した後は、Azure Monitor で結果を表示し、分析と改善を行うことができます。 また、Azure Communication Services でも、アンケート API の結果を参考にして通話の品質と信頼性の監視と向上を行っています。

この機能を実装する場合は、「チュートリアル: 通話終了調査を使用してユーザーのフィードバックを収集する」を参照してください。 診断設定を有効にしてアンケート データを取り込んだら、Azure Log Analytics の通話ログ クエリのサンプルを使用して、ユーザーが感じた品質エクスペリエンスを分析できます。 ユーザー フィードバックは、把握できていなかった通話の問題を示し、品質改善策に優先順位を付けるのに役立ちます。

詳細については、「通話終了アンケートの概要」を参照してください。

クライアントから直接通話データを分析する

メディアの統計情報、ユーザー向け診断、通話前 API 情報などの通話データを収集することで、問題のトラブルシューティング時に、品質の低い通話を調査して根本原因の分析を行うことができます。

たとえば、1 時間の長い通話を行ったあるユーザーが、その通話のある時点で音質が低下したと報告したとします。 この通話では、ユーザー向け診断が実行されて、受信または送信メディアのストリーム品質に重大な問題があることを示すフラグが立てられている可能性があります。

通話の詳細なメディア統計情報を保存することで、ユーザー向け診断のフラグがいつ立てられたかを確認し、この時にネットワークの状態が悪化したことを示すような高レベルのパケット損失、ジッター、待機時間が発生していたかどうかを調べることができます。 たとえば、外部クライアントの管理されていないネットワークや、サービス品質 (QoS) の不適切なネットワーク優先順位付けのポリシーによって生じた不要なネットワーク トラフィック、不要な仮想プライベート ネットワーク (VPN) などによって、ネットワークが影響を受けたかどうかを調べることができます。

Note

原則として、ユーザーのビデオ接続よりも音声接続の帯域幅を優先することをお勧めします。 そして、音声とビデオの両方を、他のネットワーク トラフィックよりも優先することをお勧めします。 ネットワークが音声とビデオの両方には対応できない場合は、ユーザーのビデオを事前に無効にするか、ユーザーにビデオを無効にするよう促してください。

サポートの要求

解決できない品質または信頼性の問題が発生した場合は、テクニカル サポートに要求を送信できます。 要求で提供する情報は、多いほど好ましいです。 (応答時間を最適化するには、ネイティブ ログが重要です)。ただし、お問い合わせを開始するために、部分的な情報のみを記載して要求を送信することができます。 詳細については、「Azure サポート リクエストを作成する方法」を参照してください。

テクニカル サポートの要求中にライセンス要件について通知された場合は、ニーズに最も合った有料の Azure サポート プランを選択することが必要になる場合があります。 「サポート プランの比較」を参照してください。

サポートを購入したくない場合は、コミュニティ サポートを利用できます。 「Azure コミュニティ サポート」を参照してください。

その他の考慮事項

顧客の Azure portal へのアクセス許可がなく、Azure リソース ID に関連付けられているデータを表示できない場合は、その顧客の代わりに品質を向上させるために、ワークスペースに対してクエリを実行するように要求できます。 詳細については、「Azure Monitor 内の Log Analytics ワークスペース、アプリケーション、リソース全体のデータにクエリを実行する」を参照してください。