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 リソースで診断設定を使用する方法の詳細については、「診断設定のログ記録を有効にする」を参照してください。
診断設定名の下で、Operation Call Automation ログ と 呼び出し自動化イベントの概要ログ を選択して、呼び出しの自動化のログを有効にします。
リソース ログのカテゴリ
Communication Services には、有効にできる次のログが用意されています。
- 使用状況ログ: 課金される各サービス オファリングに関連付けられている使用状況データを提供します。
- コール オートメーション操作ログ: Call Automation API 要求に関する操作情報を提供します。 これらのログを使用して、障害ポイントを識別し、呼び出しで行われたすべての要求に対してクエリを実行できます (関連付け ID またはサーバー呼び出し ID を使用)。
- Call Automation メディア要約ログ: メディア操作の結果に関する情報を提供します。 これらのログは、Call Automation API を使用してメディア要求を行うときに非同期的に送信されます。 これらのログを使用して、ユーザーがアプリケーションと対話する方法に関する障害ポイントと考えられるパターンを特定できます。
使用状況ログ スキーマ
プロパティ | 説明 |
---|---|
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 Automation の操作ログ
プロパティ | 説明 |
---|---|
TimeGenerated |
ログが生成された時刻のタイム スタンプ (UTC)。 |
OperationName |
ログ レコードに関連付けられている操作。 |
CorrelationID |
呼び出しを識別し、一意の呼び出しのイベントを関連付ける識別子。 |
OperationVersion |
operationName 操作が API を介して実行された場合、操作に関連付けられている api-version バージョン。 この操作に対応する 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 の種類。 |
ParticipantId |
要求を行った通話参加者を識別する ID。 |
SubOperationName |
メディア操作 (再生または認識) のサブタイプを識別するために使用される名前。 |
operationID |
非同期イベントの関連付けに使用される ID。 |
Call Automation 操作ログの例を次に示します:
[
{
"TimeGenerated [UTC]": "5/25/2023, 5:43:25.746 PM",
"Level": "Informational",
"CorrelationId": "e2a97d52-0cbb-4adf-8c4b-e10f791fb764",
"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 |
イベントの重大度レベル。 Informational 、 Warning 、 Error 、または Critical のいずれかである必要があります。 |
resourceId |
イベントを生成したリソースの ID。 |
durationMs |
操作時間 (ミリ秒)。 |
callerIpAddress |
|
correlationId |
Skype チェーン ID。 |
operationName |
このイベントが表す操作の名前。 |
operationVersion |
|
resultType |
イベントの状態です。 一般的な値には、Completed 、Canceled 、および Failed があります。 |
resultSignature |
操作の副状態。 この操作が REST API 呼び出しに対応している場合、このフィールドは、対応する REST 呼び出しの HTTP 状態コードです。 |
operationId |
非同期イベントの関連付けに使用される操作 ID。 |
recognizePromptSubOperationName |
操作のサブタイプ。 使用可能な値には、File 、TextToSpeech 、および 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": "d149d528-a392-404c-8fcd-69087e9d0802",
"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."
}