通話品質の向上と管理
この記事では、Azure Communication Services の通話品質の監視、トラブルシューティング、改善を行うために利用できる主なツールについて説明します。 次の資料は、最適なエンドユーザー エクスペリエンスの提供を計画する際に役立ちます。 まず、通話の概要に関する資料を読み、内容の理解を深めてください。
音声およびビデオ通話 - Azure Communication Services Calling SDK の概要
電話通話 - 公衆交換電話網 (PSTN) 統合の概念
QoS を使用してネットワークを準備し、重要なネットワーク トラフィックに優先順位を付ける
ユーザーが通話や会議に Azure Communication Services を使用し始めると、通話や会議中に発信者の音声が止まったり途切れ途切れに聞こえてきたりする場合があります。 共有ビデオがフリーズしたり、ブロックノイズが発生したり、まったく再生できなかったりする場合もあります。 これは、音声トラフィックとビデオ トラフィックの IP パケットがネットワークの輻輳に遭遇し、順序がバラバラで到着したか、まったく到着しなかったことが原因です。 これが発生した場合は (またはそもそも発生しないようにするためには)、ネットワークの推奨事項に従ってサービスの品質 (QoS) を活用します。
QoS を活用すると、遅延の影響が出やすいネットワーク トラフィック (音声ストリームやビデオ ストリームなど) を優先し、影響が出にくいトラフィック (新しいアプリのダウンロードなど、ダウンロードに 1 秒余計にかかったとしても大きな問題にはならない) の前に「割り込み」ができるようになります。 QoS は、Windows グループ ポリシー オブジェクトと、ポートベースのアクセス制御リストと呼ばれるルーティング機能を使用して、リアルタイム ストリームのすべてのパケットを識別してマークします。これにより、音声、ビデオ、および画面共有に独自の専用ネットワーク帯域幅を提供するようにネットワークに指示します。
Azure Communication Services ソリューションを導入する準備をしながら、内部ネットワークに QoS を実装しておくのが理想的ですが、実装はいつでもできます。 規模が小さい組織では、QoS が必要ないこともあります。
詳細なガイダンスについては、「ネットワークの最適化」を参照してください。
品質と信頼性の調査のためにデプロイを準備する
品質の定義は、リアルタイム通信のユース ケースとエンド ユーザーの視点によって異なります。 リアルタイムの通話体験で感じる品質に影響する変数は多数あります。1 つの変数が改善されても、別の変数にマイナスの変化がある場合もあります。 たとえば、ビデオ通話のフレーム レートと解像度を上げると、使用するネットワーク帯域幅と処理能力が増えます。
そのため、開発を開始する前に、お客様のユース ケースと要件を確認する必要があります。 たとえば、多数のセキュリティ カメラ フィードを同時に監視する必要があるお客様は、各ビデオ ストリームで提供可能な最大解像度とフレーム レートを必要としない場合があります。 このシナリオでは、ビデオの制約機能を使用 して、各ビデオ ストリームで使用する帯域幅の量を制限できます。
デプロイ前に品質と信頼性に関する既存の機能を実装する
Note
簡単に実装できるサンプルがあるのでご利用をお勧めします。ユーザーに最適な通話品質を提供するように最適化済みです。 サンプルを参照してください
通話サンプルではニーズが満たされない場合、またはソリューションをカスタマイズすることにした場合は、以下の機能を理解した上で、カスタムの通話シナリオに実装してください。
カスタマイズした Azure Communication Services 通話ソリューションを導入して展開する前に、以下の機能を実装して高品質の通話エクスペリエンスをサポートします。 以下のツールは、一般的な通話の品質と信頼性に関する問題が発生するのを防ぎ、問題が発生した場合に診断を行うのに役立ちます。 以下の通話データの一部は、実装しない限り、作成または保存されないことに注意してください。
以下のセクションでは、通話のさまざまなフェーズで実装するツールについて詳しく説明します。
- 通話前
- 通話中
- 通話後
通話前
通話前の準備 – Azure Communication Services が提供する通話前のチェックを使用すると、通話前にユーザーの接続状態を知り、ユーザーに代わってプロアクティブなアクションを実行できます。 たとえば、ユーザーの接続が悪い場合は、通話に参加する前にビデオをオフにして、音声接続を改善することを勧めます。
ネットワーク診断ツール
ネットワーク診断ツールは、開発者が開発中に通話の準備状況を検証するためのホストされたエクスペリエンスを提供します。 優れた通話エクスペリエンスを提供する上で、ユーザーのデバイスとネットワークの状態がサービスに接続するのに最適かどうかを確認できます。 このツールは、ネットワーク、デバイス、通話品質に関する診断を実行します。
ネットワーク診断ツールを使用すると、通話に参加する前に信頼性の問題を解決し、ネットワーク接続を改善するようユーザーに促すことができます。
詳細については、「ネットワーク診断ツール」を参照してください。
通話前診断 API
独自のネットワーク診断ツールを構築したい、またはこのツールをアプリケーションとより緊密に統合したい場合があります。 その場合は、Calling SDK のネットワーク診断ツールを実行する通話前診断 API を使用できます。 通話前診断 API を使用すると、ユーザー インターフェイスのエクスペリエンスをカスタマイズできます。 その後、ネットワーク診断ツールが使用するのと同じ一連のテストを実行し、テスト通話で互換性、接続性、デバイスのアクセス許可を確認できます。 通話が始まる前に、問題を修正する方法をユーザーに伝える最善の方法を決定できます。 品質と信頼性の問題をトラブルシューティングする際に、特定のチェックを実行することもできます。
たとえば、ユーザーのハードウェア テストに問題がある場合は、関係するユーザーに通知することで、今後の通話に対する期待事項と変更を管理できます。
詳細については、通話前診断に関する記事を参照してください。
通話クライアントの競合
Azure Communication Services の音声およびビデオ通話は Web ブラウザーとモバイル ブラウザーで実行されるため、ユーザーが複数のブラウザー タブで別の Azure Communication Services Calling SDK のインスタンスを実行している可能性があります。 この状況はさまざまな理由で発生する可能性があります。 ユーザーが前のタブを閉じ忘れた可能性があります。会議の開催者がいないのでユーザーが通話に参加できず、会議への参加 URL リンクを開き直そうとすると別のモバイル ブラウザー タブが開いたのかもしれません。ユーザーがどのように複数の通話ブラウザー タブを同時に使用することになったにせよ、参加しようとしている通話 (ターゲット通話) の音声とビデオの挙動に悪影響が出ます。 通話を開始する前に複数のブラウザー タブが開かれていないことを確認するとともに、通話ライフサイクルの全体を監視する必要があります。 余分なタブを閉じるようこちらから相手に通知したり、最初に通話に参加できなかった相手には役に立つメッセージを送って、通話に正しく参加できるように支援することができます。
- ユーザーがブラウザーで複数の Azure Communication Services インスタンスを実行しているかどうかを確認するには、「Azure Communication Services の SDK を使用するアプリケーションがブラウザーの複数のタブでアクティブになっているかどうかを検出する方法」を参照してください。
通話中
通話中の通信 – 通話中に、ユーザーのネットワーク状態が悪化したり、信頼性や互換性の問題が発生したりする場合があり、こうした事象のすべてが通話エクスペリエンスの低下につながる可能性があります。 このセクションは、通話の問題を管理し、ユーザーと通信するための機能を応用する上で役立ちます。
ユーザー向け診断 (UFD)
ユーザーが通話中の場合は、通話の問題についてこちらからリアルタイムで通知することが重要です。 ユーザー向け診断 (UFD) は、会話中にマイクをミュートしたり、ネットワーク品質が低下したりするなどの問題に対してリアルタイムで知らせるフラグをユーザーに提供します。 そうしたユーザーに行動を促したり、代わりに行動したりすることができます。 メッセージングに加えて、ユーザーの限られた帯域幅を保護するためにプロアクティブなアプローチも検討できます。 ユーザー インターフェイスのメッセージをシナリオに合わせて調整することもできます。 ユーザーが通知を受信してもビデオをオフにしていないことがある場合は、ユーザーのビデオを事前にオフにしてオーディオ接続を優先したり、通話に参加する前にユーザー インターフェイスでビデオ機能を非表示にしたりすることもできます。
例:
ネットワークの問題が見つかった場合は、ユーザーに対して、ビデオの無効化や、ネットワークの変更、ネットワークの状態や接続が良好な場所への移動を求めることができます。
デバイスの問題が見つかった場合は、デバイスを変えるようにユーザーをうながすことができます。
詳細については、ユーザー向け診断に関する記事を参照してください。
ビデオの制約
ビデオ ストリームは大量のネットワーク帯域幅を消費します。ユーザーのネットワーク帯域幅が制限されているか、ネットワークの状態が悪いことがわかっている場合は、ビデオの制約を利用してユーザーのビデオ接続のネットワーク使用量を減らすことができます。 ユーザーのビデオ ストリームが消費できる帯域幅の量を制限することで、ネットワーク環境の質が悪い場合に必要な帯域幅を確保できます。
- 詳細については、「ビデオの制約」を参照してください。
ボリューム インジケーター
ユーザーのお互いの声が聞こえない、スピーカーの音量が小さすぎる、リスナーのデバイスがオーディオ パケットを受信していない、またはオーディオ デバイスの問題が音声をブロックしている場合があります。 ユーザーは、声が小さすぎる場合や、他のユーザーに聞こえていない場合でも自分ではわかりません。 入力および出力インジケーターを使用して、ユーザーの音量が低いあるいはまったくないかを表示し、ユーザー インターフェイスを使用して、ユーザーに大きな声で話すか、オーディオ デバイスの問題を調べるように求めることができます。
- 詳細については、Web 通話へのボリューム インジケーターの追加に関する記事を参照してください
詳細なメディア統計情報
通話中にネットワークの状態が変化する可能性があるため、問題なく通話を開始した場合でも、音声とビデオの品質が低いという報告がユーザーから上がることがあります。 メディアの統計情報は、受信と送信の各オーディオ、ビデオ、画面共有ストリームに関する詳細な品質メトリックを提供します。 この詳細な分析情報は、進行中の通話の監視、通話全体を通したユーザーのネットワーク品質の状態の表示、個々の通話のデバッグに役立ちます。
このメトリックは、Azure Communication Services クライアント SDK によるメディア ストリームの送受信に関する問題を知るのに役立ちます。 たとえば、送信ビデオ ストリームの
availableBitrate
を能動的に監視し、推奨される 1.5 Mbps を一貫して下回っていることに気付いた場合は、ビデオ品質が低下していることをユーザーに通知できます。重要なのは、サーバー ログ データで示されるのは通話全体の概要だけだということです。 詳細なメディア統計は、通話中は通話時間を通して低次のメトリックを提供し、その後により詳細な分析を行うのに利用できます。
詳細については、「メディア品質統計」を参照してください
最適なビデオ数
2 人以上の参加者でグループ通話をしていると、ネットワークの状態の変化と特定のハードウェアの制限により、ユーザーのビデオ品質が上下する可能性があります。 Optimal Video Count API を使用すると、品質を下げることなく同時にいくつのビデオ ストリームをローカル エンドポイントでレンダリングできるかを知ることで、ユーザーの通話品質を向上させることができます。 この機能を実装することで、そうでない場合はビデオのレンダリングの質が下がるような場合でも、ローカル エンドポイントの通話品質と帯域幅を維持することができます。 この API は、optimalVideoCount プロパティを公開します。このプロパティは、ローカル エンドポイントのネットワークとハードウェアの能力に応じて動的に変化します。 この情報は実行時に利用でき、通話全体を通じて更新されるため、ネットワークとハードウェアの状態の変化に応じてユーザーの視覚的なエクスペリエンスを調整することができます。
- 実装する場合は、Web プラットフォームガイダンス「通話中にビデオを管理する」を開き、「リモート ビデオ品質」のセクションを確認してください。
通話終了アンケート
お客様のフィードバックは重要です。通話終了アンケートは、エンド ユーザーが JavaScript/Web SDK 通話ソリューションの全体的な品質と信頼性をどのように考えているかを知るためのツールを提供してくれます。 アンケートのソリューションを既に用意している場合は、アンケートをさまざまなアンケート形式に変更できます。 アンケート データを公開した後は、Azure Monitor でアンケート結果を表示し、分析と改善を行うことができます。 また、Azure Communication Services でも、アンケート API の結果を参考にして品質と信頼性の監視と向上を行っています。
- 詳細については、「通話終了アンケートの概要」を参照してください
- 実装する場合は、「チュートリアル: 通話終了調査を使用してユーザーのフィードバックを収集する」を参照してください
通話後
通話の品質と信頼性の監視とトラブルシューティング - Azure Communication Services 通話ソリューションをリリースして展開する前に、以下の品質と信頼性の監視機能を実装し、利用できるログとメトリックを確実に収集するようにしてください。 これらの呼び出しデータは実装するまで保存されないため、通話の品質と信頼性を監視およびデバッグすることはできません。
- 詳細については、Azure Communication Services の音声通話とビデオ通話のログを参照してください。
通話ログの収集を開始する
通話ログの収集を開始するには、「Azure Monitor の診断設定でログを有効化する」を確認してください
- Azure Monitor でデータを表示および分析するには、カテゴリ グループ "allLogs" を選択し、[Log Analytics ワークスペースに送信] の宛先の詳細を選択することをお勧めします。
- データを送信する Log Analytics ワークスペースがない場合は、作成する必要があります 。
- 必要に応じて、コストに関する考慮事項について、データの使用状況と保持ポリシーを監視することをお勧めします。 「コストの管理」を参照してください。
通話診断を使用して通話を診断する
呼び出し診断は、Azure Portal の特殊なテレメトリと診断ページを通じて、カスタマイズされた分析情報を提供する Azure Monitor エクスペリエンスです。
ログ分析ワークスペースへのログ データの格納を開始したら、個々の呼び出しの検索を視覚化し、通話診断でデータを視覚化できます。 Azure Monitor アカウント内で、Azure Communication Services リソースに移動し、サイド ウィンドウで [通話診断] ブレードを見つけるだけでかまいません。
音声とビデオの分析情報プレビューを使用して通話品質を確認する
ログを有効にしたら、「音声とビデオの分析情報」の視覚化例を参照して、Azure リソースで通話の分析情報を表示できます
既存のブックを変更することも、独自の Azure ブックを作成することもできます
より詳細な分析例については、「通話ログにクエリを実行する」を参照してください
通話終了アンケートを使用してエンド ユーザーのセンチメントを分析する
診断設定を有効にしてアンケート データを取り込んだら、Azure Log Analytics の通話ログ クエリのサンプルを使用して、ユーザーが感じた品質エクスペリエンスを分析できます。 ユーザーフィードバックは、自分が知らなかった通話の問題を示し、品質改善策に優先順位を付けるのに役立ちます。
クライアントから直接通話データを分析する
メディア統計、ユーザー向け診断、通話前 API 情報などの通話データを収集することで、品質の低い通話を確認し、問題のトラブルシューティング時に根本原因分析を実施できます。 たとえば、ユーザーが 1 時間の長い通話を行い、通話のある時点で音質が低かったとします。
この通話では、ユーザー向け診断が実行されて、受信または送信メディアのストリーム品質に重大な問題があることを示した可能性があります。 通話の詳細なメディア統計情報を保存することで、UFD がいつ実行されたかを確認し、この時にネットワーク状態が悪化したことを示すような高レベルのパケット損失、ジッター、待機時間が発生していたかどうかを調べることができます。 ネットワークが、外部クライアントの管理されていないネットワークや、サービス品質 (QoS) の不適切なネットワーク優先順位付けのポリシーによって生じた不要なネットワーク トラフィック、不要な仮想プライベート ネットワーク (VPN) などの影響を受けたかどうかを調べます。
Note
原則として、ユーザーのオーディオ接続の帯域幅をユーザーのビデオ接続よりも優先し、オーディオとビデオの両方を他のネットワーク トラフィックよりも優先することをお勧めします。 ネットワークがオーディオとビデオの両方に対応できない場合は、ユーザーのビデオを事前に無効にしたり、ユーザーにお願いしてビデオを無効にしてもらったりすることができます。
サポートの要求
解決できず、サポートが必要な品質または信頼性の問題が発生した場合は、テクニカル サポートの要求を送信できます。 要求で提供できる情報が多いほど良くなりますが、問い合わせを開始するための部分的な情報を含む要求を送信することもできます。 参照: Azure サポート要求を作成する方法
- テクニカル サポートの要求中にライセンス要件が通知された場合は、ニーズに最も合った有料Azure サポートプランを選択することが必要になる場合があります。 「サポート プランの比較」を参照してください。
- サポートを購入したくない場合は、コミュニティ サポートを利用できます。 コミュニティ サポートを参照してください。
その他の考慮事項
- 顧客の Azure リソース ID に関連付けられているデータを表示する Azure portal にアクセスできない場合は、そのユーザーに代わって品質を向上させるために、ワークスペースに対してクエリを実行するように要求できます。
次のステップ
その他のベスト プラクティスについては、「ベスト プラクティス: Azure Communication Services の通話 SDK」を参照してください
既知の問題の詳細については、「SDK と API の既知の問題」を参照してください
Log Analytics ワークスペースの使用方法を学習するには、「Log Analytics のチュートリアル」を参照してください
Log Analytics で独自のクエリを作成します。クエリの使用を開始するに関する記事を参照してください