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"
}
次のステップ
- Call Recording の分析情報を取得する。
- Call Recording についてさらに学習する。