次の方法で共有


Azure Communication Services Call Automation API

Azure Communication Services には、Communication Services ソリューションの監視とデバッグに使用できるログ機能が用意されています。 これらの機能は、Azure portal を使用して構成します。

前提条件

Azure Communication Services には、Azure Monitor ログAzure Monitor メトリック を介した監視と分析の機能が提供されます。 各 Azure リソースには、次の条件を定義する独自の診断設定が必要です。

  • 設定が定義する宛先に送信されるログデータとメトリック データのカテゴリ。 使用可能なカテゴリは、リソースの種類によって異なります。

  • ログを送信する 1 つ以上の送信先。 現在の宛先には、Log Analytics ワークスペース、Azure Event Hubs、Azure Storage が含まれます。

    1 つの診断設定では、各送信先を 1 つ以上定義できません。 複数の宛先の種類 (たとえば、2 つの Log Analytics ワークスペース) にデータを送信する場合は、複数の設定を作成します。 各リソースには、最大 5 つの診断設定を作成できます。

重要

アンケート データを受信して分析するには、Azure Monitor で診断設定を有効にして、アンケートのログ データを Log Analytics ワークスペース、イベント ハブ、または Azure ストレージ アカウントに送信する必要があります。 これらのオプションのいずれかに Call Automation データを送信しない場合、アンケート データは保存されず、失われます。

次の手順では、Communication Services インスタンスのログとメトリックの作成を開始するように Azure Monitor リソースを構成します。 すべての Azure リソースで診断設定を使用する方法の詳細については、「診断設定のログ記録を有効にする」を参照してください。

診断設定名の下で、次を選択して、Call Automation のログを有効にします。

  • 操作呼び出しの自動化ログ
  • Automation イベントの概要ログを呼び出す
  • Call Automation Media Streaming 機能の使用状況情報ログ

Call Automation の診断設定のスクリーンショット。

リソース ログのカテゴリ

Communication Services には、有効にできる次のログが用意されています。

  • 使用状況ログ: 課金される各サービス オファリングに関連付けられている使用状況データを提供します。
  • コール オートメーション操作ログ: Call Automation API 要求に関する操作情報を提供します。 これらのログを使用して、障害ポイントを識別し、呼び出しで行われたすべての要求に対してクエリを実行できます (関連付け ID またはサーバー呼び出し ID を使用)。
  • Call Automation メディア要約ログ: メディア操作の結果に関する情報を提供します。 これらのログは、Call Automation API を使用してメディア要求を行うときに非同期的に送信されます。 これらのログを使用して、ユーザーがアプリケーションと対話する方法に関する障害ポイントと考えられるパターンを特定できます。
  • Call Automation Media Streaming 機能の使用状況情報ログ: メディア ストリーミングや文字起こしなどのリアルタイム ストリーミング機能に関する使用状況情報を提供します。 これらのログは、リアルタイム ストリーミングが停止または完了したときに非同期的に表示されます。 これらのログを使用すると、リアルタイム ストリーミングが有効になっている通話、混合されていないストリーミング ケースでストリーミングされている参加者、ストリーミング開始時刻、期間、およびアプリケーションで使用されている可能性のあるストリーミング傾向を特定するのに役立ちます。

使用状況ログ スキーマ

プロパティ 説明
Timestamp ログが生成された時刻のタイム スタンプ (UTC)。
OperationName ログ レコードに関連付けられている操作。
OperationVersion api-version 操作が API を介して実行された場合に、操作に関連付けられた OperationName 値。 この操作に対応する API がない場合、操作に関連付けられているプロパティが将来変更された場合に備えて、バージョンは操作のバージョンを表します。
Category イベントのログ カテゴリ。 カテゴリは、リソースのログを有効または無効にできる細分性です。 イベントの properties BLOB 内に表示されるプロパティは、ログ カテゴリとリソースの種類内で同じです。
CorrelationID 相関性があるイベントの ID。 これを使用して、複数のテーブル間の相関イベントを識別できます。
Properties Communication Services のさまざまなモードに適用されるその他のデータ。
RecordID 使用状況レコードの一意の ID。
UsageType 使用モード (例えば、チャット、PSTN、NAT など)。
UnitType 使用モードに基づく単位の種類 (例えば、分、メガバイト、メッセージなど)。
Quantity そのレコードに関して使用または消費された単位の数。

Call Automation の操作ログ

プロパティ 説明
TimeGenerated ログが生成された時刻のタイム スタンプ (UTC)。
OperationName ログ レコードに関連付けられている操作。
CorrelationID 通話のイベントを関連付けるために使用される識別子。 この識別子は、参加者が通話に参加または退出するなどのイベントに応じて、通話中に変更される場合があります。 完全に安定した通話識別子については、CallConnectionId を使用することを検討してください。
OperationVersion api-version 操作が API を介して実行された場合、操作に関連付けられている operationName バージョン。 この操作に対応する API がない場合、操作に関連付けられているプロパティが将来変更された場合に備えて、バージョンは操作のバージョンを表します。
Category イベントのログ カテゴリ。 カテゴリは、リソースのログを有効または無効にできる細分性です。 イベントの properties BLOB 内に表示されるプロパティは、ログ カテゴリとリソースの種類内で同じです。
ResultType 操作の状態。
ResultSignature 操作の副状態。 この操作が REST API 呼び出しに対応している場合、このフィールドは、対応する REST 呼び出しの HTTP 状態コードです。
DurationMs 操作時間 (ミリ秒)。
CallerIpAddress 操作が、一般的に利用できる IP アドレスを持つエンティティからの API 呼び出しに対応している場合は、呼び出し元 IP アドレス。
Level イベントの重大度レベル。
URI 要求の URI。
CallConnectionId 呼び出し接続を表す ID (使用可能な場合)。 この ID は参加者ごとに異なり、通話への接続を識別するために使用されます。
ServerCallId 呼び出しを識別する一意の ID。
SDKVersion 要求に使用される SDK バージョン。
SDKType 要求に使用される SDK の種類。
SubOperationName メディア操作 (再生または認識) のサブタイプを識別するために使用される名前。
operationID 非同期イベントの関連付けに使用される ID。

Call Automation 操作ログの例を次に示します:

{
"TimeGenerated [UTC]": "5/25/2023, 5:43:25.746 PM",
"Level": "Informational",
"CorrelationId": "aaaa0000-bb11-2222-33cc-444444dddddd",
"OperationName": "Play",
"OperationVersion": "3/6/23",
"URI": "ccts-media-synthetics-prod.communication.azure.com",
"ResultType": "Succeeded",
"ResultSignature": "202",
"DurationMs": "82",
"CallerIpAddress": "40.88.50.228",
"CallConnectionId": "401f3500-fcb6-4b84-927e-81cd6372560b",
"ServerCallId": "aHR0cHM6Ly9hcGkuZmxpZ2h0cHJveHkuc2t5cGUuY29tL2FwaS92Mi9jcC9jb252LXVzZWEyLTAxLmNvbnYuc2t5cGUuY29tL2NvbnYvZzRoWlVoS1ZEVUtma19HenRDZ1JTQT9pPTEyJmU9NjM4MjA1NDc4MDg5MzEzMjIz",
"SdkVersion": "",
"SdkType": "unknown",
"SubOperationName": "File",
"OperationId": "5fab0875-3211-4879-8051-c688d0854c4d",
}

Call Automation メディアの概要ログ

プロパティ 説明
TimeGenerated イベントのタイム スタンプ (UTC)。
level イベントの重大度レベル。 InformationalWarningError、または Critical のいずれかである必要があります。 
resourceId イベントを生成したリソースの ID。
durationMs 操作時間 (ミリ秒)。
callerIpAddress
correlationId Call Automation を使用して作成された関連付け要求を識別します。
operationName このイベントが表す操作の名前。
operationVersion
resultType イベントの状態です。 一般的な値には、CompletedCanceled、および Failed があります。
resultSignature 操作の副状態。 この操作が REST API 呼び出しに対応している場合、このフィールドは、対応する REST 呼び出しの HTTP 状態コードです。
operationId 非同期イベントの関連付けに使用される操作 ID。
recognizePromptSubOperationName 操作のサブタイプ。 使用可能な値には、FileTextToSpeech、および SSML が含まれます。
playInLoop 再生操作に対してループが要求された場合は True。 そうでなければ False
playToParticipant 再生操作にターゲットがある場合は True。 プレイツーオール操作の場合は False
interrupted プロンプトが中断された場合は True。 そうでなければ False
resultCode 操作の結果コード。
resultSubcode 操作の結果サブコード。
resultMessage 操作の結果メッセージ。

Call Automation メディアの概要ログの例を次に示します:

{
"TimeGenerated [UTC]": "5/24/2023, 7:57:40.480 PM",
"Level": "Informational",
"CorrelationId": "bbbb1111-cc22-3333-44dd-555555eeeeee",
"ResultType": "Completed",
"OperationName": "Play",
"OperationId": "7bef24d5-eb95-4ee6-bbab-0b7d45d91288",
"PlayInLoop": "FALSE",
"PlayToParticipant": "TRUE",
"PlayInterrupted": "FALSE",
"RecognizePromptSubOperationName": "",
"ResultCode": "200",
"ResultSubcode": "0",
"ResultMessage": "Action completed successfully."
}

Call Automation Media Streaming 機能の使用状況情報ログ

プロパティ 説明
TimeGenerated イベントのタイム スタンプ (UTC)。
CorrelationId Call Automation を使用して作成された関連付け要求を識別します。
CallConnectionId 呼び出し接続を表す ID (使用可能な場合)。 この ID は参加者ごとに異なり、通話への接続を識別するために使用されます。
StreamingModality このイベントが表すリアルタイム ストリーミングの種類には、AudioStreamingUnmixed、AudioStreamingMixed、文字起こしなどがあります。
StreamingStartTime リアルタイム ストリーミング セッションが開始されたタイム スタンプ (UTC)。
StreamingDurationInMs リアルタイム ストリーミング セッションの期間 (ミリ秒単位)。
StreamingSessionId 特定の呼び出しにおけるリアルタイム ストリーミングの単一のモダリティの開始から終了までの時間として定義される、各リアルタイム ストリーミング セッションの一意の識別子。
ParticipantId ストリーミングがStreamingSessionIdで開始され、StreamingStartTimeの間続いたStreamingDurationInMsに識別されるストリーミングセッションに参加した各参加者の一意の識別子。 これは、 StreamingModality AudioStreamingUnmixed と文字起こしにのみ適用され、各参加者はこのテーブル内の独自のレコードで表されます。

Call Automation Media Streaming 機能の使用状況情報ログの例を次に示します。

{
"TimeGenerated [UTC]": "5/24/2023, 7:57:40.480 PM",
"CorrelationId": "bbbb1111-cc22-3333-44dd-555555eeeeee",
"CallConnectionId": "401f3500-fcb6-4b84-927e-81cd6372560b",
"StreamingModality": "AudioStreamingUnmixed",
"StreamingStartTime [UTC]": "5/24/2023, 7:57:45.480 PM",
"StreamingDurationInMs": "1172487.9394",
"StreamingSessionId": "8dc674eb-0313-46e1-8326-326ea71c7a45",
"ParticipantId": "7a5ae46f-efb0-4abb-bc9f-c1f1ccfd1470"
}

次のステップ