Azure Communication Services Call Recording のログ

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

この記事の内容では、Azure Monitor を使用して有効にするログを指しています (よく寄せられる質問に関するページも参照)。 Communications Services 用にこれらのログを有効にする方法については、「診断設定でのログの有効化」を参照してください。

リソース ログのカテゴリ

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

  • 使用状況ログ: 課金される各サービス内容に関連付けられている使用状況データを提供します。
  • Call Recording 概要ログ: 次のような通話レコーディングに関する概要情報を提供します。
    • 通話時間。
    • メディア コンテンツ (オーディオ/ビデオ、ミックスされていない、文字起こしなど)。
    • レコーディングに使用される形式の種類 (WAV や MP4 など)。
    • レコーディングが終了した理由。
  • 受信操作ログのレコーディング: Call Recording 操作の受信要求に関する情報を提供します。 すべてのエントリは、StartRecording、StopRecording、PauseRecording、ResumeRecording などの Call Recording API に対する呼び出しの結果に対応します。

レコーディング ファイルは、通話または会議の最後に生成されます。 ユーザーまたはアプリ (ボット) が、レコーディングを開始および停止できます。 レコーディングは、システム障害が原因で終了する場合もあります。

概要ログは、レコーディングをダウンロードする準備ができた後に発行されます。 このログは、Azure Monitor リソース ログの標準的な待機時間内に発行されます。 「Azure Monitor でのログ データ インジェスト時間」を参照してください。

使用状況ログ スキーマ

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

Call Recording 概要ログ スキーマ

プロパティ名 データ型 説明
timeGenerated DateTime ログが生成された時刻のタイム スタンプ (UTC)。
operationName String ログ レコードに関連付けられている操作。
correlationId String 複数のテーブル間でイベントを関連付けるために使用される ID。
recordingID String このログで参照されているレコーディングの ID。
category String イベントのログ カテゴリ。 ログ カテゴリとリソースの種類が同じログには、同じプロパティ フィールドがあります。
resultType String 操作の状態。
level String 操作の重大度。
chunkCount Integer レコーディングに作成されたチャンクの合計数。
channelType String ミックスされた、またはミックスされていないなどの、レコーディングのチャネルの種類。
recordingStartTime DateTime レコーディングが開始した時刻。
contentType String レコーディングの内容 (オーディオのみ、オーディオ/ビデオ、文字起こしなど)
formatType String レコーディングのファイル形式。
recordingLength 倍精度浮動小数点型 レコーディングの継続時間 (秒単位)。
audioChannelsCount Integer レコーディング内のオーディオ チャネルの合計数。
recordingEndReason String レコーディングが終了した理由。

Call Recording とサンプル データ

"operationName":            "Call Recording Summary",
"operationVersion":         "1.0",
"category":                 "RecordingSummary",

レコーディング イベントがトリガーされた回数によって、1 つの通話に 1 つまたは多数のレコーディングが含まれる場合があります。

たとえば、エージェントがレコーディングされている回線で発信通話を開始し、ネットワーク信号の悪化により通話が途絶した場合、callID には 1 つの recordingID 値が含まれます。 エージェントが顧客にコールバックした場合、システムは新しい callID インスタンスと新しい recordingID 値を生成します。

例: 1 つの通話に対して 1 つのレコーディングの場合の Call Recording

"properties"
{  
  "TimeGenerated":"2022-08-17T23:18:26.4332392Z",
    "OperationName": "RecordingSummary",
    "Category": "CallRecordingSummary",
    "CorrelationId": "zzzzzz-cada-4164-be10-0000000000",
    "ResultType": "Succeeded",
    "Level": "Informational",
    "RecordingId": "eyJQbGF0Zm9ybUVuZHBvaW5xxxxxxxxFmNjkwxxxxxxxxxxxxSZXNvdXJjZVNwZWNpZmljSWQiOiJiZGU5YzE3Ni05M2Q3LTRkMWYtYmYwNS0yMTMwZTRiNWNlOTgifQ",
    "RecordingEndReason": "CallEnded",
    "RecordingStartTime": "2022-08-16T09:07:54.0000000Z",
    "RecordingLength": "73872.94",
    "ChunkCount": 6,
   "ContentType": "Audio - Video",
    "ChannelType": "mixed",
    "FormatType": "mp4",
    "AudioChannelsCount": 1
}

エージェントがレコーディングを開始した後、通話中にレコーディングを複数回停止および再開した場合、callID には多くの recordingID 値が含まれます。 値の数は、レコーディング イベントをトリガーした回数によって異なります。

例: 1 つの通話に対して多数のレコーディングの場合の Call Recording


{   
 "TimeGenerated": "2022-08-17T23:55:46.6304762Z",
    "OperationName": "RecordingSummary",
    "Category": "CallRecordingSummary",
    "CorrelationId": "xxxxxxx-cf78-4156-zzzz-0000000fa29cc",
    "ResultType": "Succeeded",
    "Level": "Informational",
    "RecordingId": "eyJQbGF0Zm9ybUVuZHBxxxxxxxxxxxxjkwMC05MmEwLTRlZDYtOTcxYS1kYzZlZTkzNjU0NzciLCJSxxxxxNwZWNpZmljSWQiOiI5ZmY2ZTY2Ny04YmQyLTQ0NzAtYmRkYy00ZTVhMmUwYmNmOTYifQ",
    "RecordingEndReason": "CallEnded",
    "RecordingStartTime": "2022-08-17T23:55:43.3304762Z",
    "RecordingLength": 3.34,
    "ChunkCount": 1,
    "ContentType": "Audio - Video",
    "ChannelType": "mixed",
    "FormatType": "mp4",
    "AudioChannelsCount": 1
}
{
    "TimeGenerated": "2022-08-17T23:55:56.7664976Z",
    "OperationName": "RecordingSummary",
    "Category": "CallRecordingSummary",
    "CorrelationId": "xxxxxxx-cf78-4156-zzzz-0000000fa29cc",
    "ResultType": "Succeeded",
    "Level": "Informational",
    "RecordingId": "eyJQbGF0Zm9ybUVuxxxxxxiOiI4NDFmNjkwMC1mMjBiLTQzNmQtYTg0Mi1hODY2YzE4M2Y0YTEiLCJSZXNvdXJjZVNwZWNpZmljSWQiOiI2YzRlZDI4NC0wOGQ1LTQxNjEtOTExMy1jYWIxNTc3YjM1ODYifQ",
    "RecordingEndReason": "CallEnded",
    "RecordingStartTime": "2022-08-17T23:55:54.0664976Z",
    "RecordingLength": 2.7,
    "ChunkCount": 1,
    "ContentType": "Audio - Video",
    "ChannelType": "mixed",
    "FormatType": "mp4",
    "AudioChannelsCount": 1
}

ACSCallRecordingIncomingOperations ログ

プロパティを次に示します。

プロパティ 説明
timeGenerated ログが生成された時刻のタイム スタンプ (UTC)。
callConnectionId 通話接続またはレッグの ID (使用可能な場合)。
callerIpAddress 操作が、一般的に利用できる IP アドレスを持つエンティティからの API 呼び出しに対応している場合は、呼び出し元 IP アドレス。
correlationId 相関性があるイベントの ID。 これを使用して、複数のテーブル間の相関イベントを識別できます。
durationMs 操作時間 (ミリ秒)。
level 操作の重大度。
operationName ログ レコードに関連付けられている操作。
operationVersion 操作または操作のバージョンに関連付けられている API バージョン (API バージョンがない場合)。
resourceId レコードが関連付けられているリソースの一意識別子。
resultSignature 操作の副状態。 この操作が REST API 呼び出しに対応している場合、このフィールドは、対応する REST 呼び出しの HTTP 状態コードです。
resultType 操作の状態。
sdkType 要求で使用された SDK の種類。
sdkVersion SDK バージョン。
serverCallId サーバー通話 ID。
URI 要求の URI。

次に例を示します。

"properties"
{  "TimeGenerated": "2023-05-09T15:58:30.100Z",
    "Level": "Informational",
    "CorrelationId": "a999f996-b4e1-xxxx-ac04-a59test87d97",
    "OperationName": "ResumeCallRecording",
    "OperationVersion": "2023-03-06",
    "URI": "https://acsresouce.communication.azure.com/calling/recordings/   eyJQbGF0Zm9ybUVuZHBviI0MjFmMTIwMC04MjhiLTRmZGItOTZjYi0...:resume?api-version=2023-03-06",
    "ResultType": "Succeeded",
    "ResultSignature": 202,
    "DurationMs": 130,
    "CallerIpAddress": "127.0.0.1",
    "CallConnectionId": "d5596715-ab0b-test-8eee-575c250e4234",
    "ServerCallId": "aHR0cHM6Ly9hcGk0vjCCCCCCQd2pRP2k9OTMmZT02Mzc5OTQ3xMDAzNDUwMzg...",
    "SdkVersion": "1.0.0-alpha.20220829.1",
    "SdkType": "dotnet"
}

次のステップ