RTCP を使用した RTP 音声ストリームのモニタリング
RTP Control Protocol (RTCP) を有効にすることで音声ストリーミングをモニターするように、 IBM® Voice Gateway を構成できます。 RTCP が有効化されると、Voice Gateway は、レポート・イベントおよび vgwNetworkWarnings 状態変数で、ネットワーク関連の問題をレポートします。 RTCP の有効化は、バージョン 1.0.0.5 以降でサポートされます。
音声ストリームのモニタリングについて
Voice Gateway は、Real-time Transport Protocol (RTP) を使用して、終端システム (SIP トランクなど) に対して音声ストリームを送受信します。 RTP Control Protocol (RTCP) は、RTP 仕様 (RFC 3550) の一部であり、RTP メディア・ストリームのサービスの品質 (QoS) の統計を提供します。 RTCP が有効化されると、Voice Gateway は、このプロトコルを使用して、RTP ネットワーク・データ配信メトリック (ジッター、パケット転送など) をモニターします。
RTCP による音声ストリーム・モニタリングが有効化されると、Voice Gateway は以下の情報をレポートします。
-
ネットワークの警告: RTP ストリームで、高いパケット損失率や高い平均ジッターなどのネットワーク関連の問題が発生すると、SIP Orchestrator および Media Relay は警告をログに記録します。 Voice Gateway も、これらの警告を以下の場所にレポートします。
- Watson Assistant turn イベントのレポートが有効化されている場合、Voice Gateway は、会話ターンごとに、Watson Assistant turn イベントに警告をレポートします。 また、Voice Gateway は、
vgwNetworkWarningsAPI 状態変数でも警告を送信します。この警告は、Watson Assistant またはサービス・オーケストレーション・エンジンに送信されます。 - CDR イベント・レポートが有効化されている場合、通話の最後に、発着信詳細記録イベントの
warningsオブジェクトに警告が組み込まれます。
- Watson Assistant turn イベントのレポートが有効化されている場合、Voice Gateway は、会話ターンごとに、Watson Assistant turn イベントに警告をレポートします。 また、Voice Gateway は、
-
ネットワーク・サマリー: Voice Gateway は、発着信詳細記録イベント内の
rtpNetworkSummaryオブジェクトでネットワーク・サマリーを提供します。 このネットワーク・サマリーには、通話のインバウンドおよびアウトバウンドの音声ストリームからの統計が含まれます (ジッターおよびパケットの平均と最大に関する情報など)。
RTP 終端システムが RTCP をサポートしていない場合、アウトバウンド・ストリームのジッターおよびパケット損失はレポートできないことに注意してください。
重要: RTCP を有効化すると、通話ごとに追加の UDP ポートが使用されます。 通話ごとに、RTP では、RTP_UDP_PORT_RANGE 環境変数に設定されている範囲内の動的ポートが使用されます。また、RTCP ではその次のポートが使用されます。 例えば、RTP でポート 16384 が使用されると、RTCP ではポート 16385 が使用されます。 これらのポートがファイアウォールで開かれていることを確認してください。
詳しくは、『ファイアウォールのポート設定』を参照してください。
RTCP の有効化
RTCP を有効化するには、Media Relay コンテナーのデプロイメント構成で以下の環境変数を設定します。
| 環境変数 | デフォルト値 | 説明 |
|---|---|---|
ENABLE_RTCP 必須 |
false |
RTP 音声ストリーミングをモニターするために RTP Control Protocol (RTCP) の使用を有効化する場合は、true に設定します。 RTCP が有効化されると、通話中に生成された警告、および音声ストリーム統計を含むネットワーク・サマリーが、発着信詳細記録 (CDR) レポート・イベントに組み込まれます。 バージョン 1.0.0.5 以降。 |
RTCP_MAX_JITTER_THRESHOLD オプション |
30 |
警告がトリガーされる際の、RTP パケット間の最大遅延 (ミリ秒)。 この最大値を超過すると、Voice Gateway は、影響を受けるインバウンドまたはアウトバウンドの音声ストリームについて警告を発行します。 バージョン 1.0.0.5 以降。 |
RTCP_MAX_PACKET_LOSS_THRESHOLD オプション |
5 |
警告がトリガーされる際の、損失パケットの最大パーセンテージ。 この最大値を超過すると、Voice Gateway は、影響を受けるインバウンドまたはアウトバウンドの音声ストリームについて警告を発行します。 バージョン 1.0.0.5 以降。 |
以下の例では、RTCP を有効化し、ジッターおよびパケット損失の警告を送信するためのデフォルト値を変更しています。
-
Docker の場合:
media.relay: environment: ... - ENABLE_RTCP=true - RTCP_MAX_JITTER_THRESHOLD=45 - RTCP_MAX_PACKET_LOSS_THRESHOLD=10 -
IBM Cloud Kubernetes Service の Kubernetes の場合:
"env": [ ... { "name": "ENABLE_RTCP", "value": "true" }, { "name": "RTCP_MAX_JITTER_THRESHOLD", "value": "45" }, { "name": "RTCP_MAX_PACKET_LOSS_THRESHOLD", "value": "10" }]
レポートされるネットワーク情報
RTCP が有効化されると、Voice Gateway は、通話中にネットワーク警告をレポートし、その後、通話が終了すると、警告を集計してネットワーク・サマリーを提供します。
通話中
Voice Gateway は、会話ターンごとに、vgwNetworkWarnings 状態変数で、構成済みの Watson Assistant サービスまたはサービス・オーケストレーション・エンジンにネットワーク警告を送信します。 この状態変数を、目的のアクション (通話の転送、終了など) を実行するためのトリガーとして使用できます。 状態変数の使用について詳しくは、Voice Gateway API を使用したセルフサービス・エージェントのプログラミングを参照してください。
例:
"vgwNetworkWarnings" : [
{
"timestamp": "2018-02-08T13:10:01Z",
"message": "CWSMR0035W: The inbound RTP audio stream packet loss of 7 percent exceeds the maximum packet loss threshold of 5 percent.",
"id": "CWSMR0035W"
}
]
Watson Assistant turn イベントには、Watson Assistant またはサービス・オーケストレーション・エンジンから送信された完全なコンテキストが含まれるため、このイベントには、レポートされた警告も含まれます。 詳しくは、Voice Gateway からの Watson Assistant turn レポート・イベントを参照してください。
通話終了時
通話が終了すると、Voice Gateway は、レポートされたネットワーク警告を集計し、発着信詳細記録 (CDR) イベントで RTP ネットワーク・サマリーを提供します。 CDR イベントを生成するには、Voice Gateway 構成で CDR イベント・レポートを有効化し、イベントを保管するように REST サーバーをセットアップする必要があります。 詳しくは、Voice Gateway からの発着信詳細記録レポート・イベントを参照してください。
RTCP により、イベント内に以下の JSON オブジェクトが追加されます。
warnings: 通話中にログに記録された警告のリストに RTP ネットワーク警告が追加されます。 警告の詳細を参照してください。rtpNetworkSummary: インバウンドおよびアウトバウンドの RTP 音声ストリームのデータ配信統計。 RTP ネットワーク・サマリーの詳細を参照してください。