Azure 通訊服務的通話自動化記錄
Azure 通訊服務會提供記錄功能,以供您監視通訊服務解決方案並對其進行偵錯。 您可以透過 Azure 入口網站設定這些功能。
必要條件
Azure 通訊服務透過 Azure 監視器記錄和 Azure 監視器計量提供監視和分析功能。 每個 Azure 資源都需要自己的診斷設定,其會定義下列準則:
傳送至設定所定義目的地的記錄和計量資料類別。 可用的類別會因資源類型而異。
一個或多個要傳送記錄的目的地。 目前的目的地包括 Log Analytics 工作區、Azure 事件中樞和 Azure 儲存體。
單一診斷設定僅能定義其中一個目的地類型。 如果您想要將資料傳送至多個目的地類型 (例如兩個 Log Analytics 工作區),請建立多個設定。 每個資源最多可以有五個診斷設定。
重要
您必須在 Azure 監視器中啟用診斷設定,才能將問卷的記錄資料傳送至 Log Analytics 工作區、事件中樞或 Azure 儲存體帳戶,以接收和分析問卷資料。 如果您未將通話自動化資料傳送至其中一個選項,您的問卷資料將不會儲存,而且會遺失。
下列指示能幫助您設定 Azure 監視器資源,讓您開始為 Azure 通訊服務執行個體建立記錄和計量。 如需在所有 Azure 資源中使用診斷設定的詳細文件,請參閱在診斷設定中啟用記錄。
在診斷設定名稱下,選取 [作業通話自動化記錄] 和 [呼叫自動化事件摘要記錄],以啟用通話自動化的記錄。
資源記錄類別
通訊服務提供下列類型的記錄供您啟用:
- 使用量記錄:提供與每個計費服務供應項目相關聯的使用量資料。
- 通話自動化作業記錄:提供有關通話自動化 API 要求的操作資訊。 您可以使用這些記錄來找出失敗點,並查詢通話中提出的所有要求 (使用相互關聯標識碼或伺服器通話識別碼)。
- 通話自動化媒體摘要記錄:提供媒體作業結果的相關資訊。 當您使用通話自動化 API 提出媒體要求時,這些記錄會以非同步方式傳送給您。 您可以使用這些記錄來協助找出失敗點,以及使用者如何與應用程式互動的可能模式。
使用記錄結構描述
屬性 | 說明 |
---|---|
Timestamp |
產生記錄時的時間戳記 (UTC)。 |
OperationName |
與記錄錄製相關聯的作業。 |
OperationVersion |
與作業相關聯的 api-version 值 (如果透過 API 執行 OperationName 的話)。 如果沒有對應至此作業的 API,則版本代表該作業的版本,以防與作業相關聯的屬性日後變更。 |
Category |
事件的記錄類別。 類別是您可在資源上啟用或停用記錄的細微性。 出現在事件的 properties Blob 內的屬性,與在記錄類別和資源類型內的相同。 |
CorrelationID |
相互關聯事件的識別碼。 您可以使用此識別碼來識別多個資料表之間相互關聯的事件。 |
Properties |
適用於各種通訊服務模式的其他資料。 |
RecordID |
使用記錄的唯一識別碼。 |
UsageType |
使用模式 (例如,聊天、PSTN 或 NAT)。 |
UnitType |
使用方式的單位類型是以使用模式為基礎 (例如,分鐘數、MB 或訊息數)。 |
Quantity |
此記錄所使用或取用的單位數。 |
通話自動化作業記錄
屬性 | 說明 |
---|---|
TimeGenerated |
產生記錄時的時間戳記 (UTC)。 |
OperationName |
與記錄錄製相關聯的作業。 |
CorrelationID |
用於識別通話並將個別通話的事件相互關聯的識別碼。 |
OperationVersion |
與作業相關聯的 api-version 版本 (如果透過 API 執行 operationName 作業的話)。 如果沒有對應至此作業的 API,則版本代表該作業的版本,以防與作業相關聯的屬性日後變更。 |
Category |
事件的記錄類別。 類別是您可在資源上啟用或停用記錄的細微性。 出現在事件的 properties Blob 內的屬性,與在記錄類別和資源類型內的相同。 |
ResultType |
作業的狀態。 |
ResultSignature |
作業的子狀態。 如果此作業對應至 REST API 呼叫,則此欄位是對應 REST 呼叫的 HTTP 狀態碼。 |
DurationMs |
作業的持續時間 (以毫秒為單位)。 |
CallerIpAddress |
呼叫端 IP 位址,如果作業對應至來自具有公開可用 IP 位址之實體的 API 呼叫。 |
Level |
事件的嚴重性層級。 |
URI |
要求的 URI。 |
CallConnectionId |
如果有的話,表示通話連線的識別碼。 每個參與者的此識別碼都不同,可用來識別其與通話的連線。 |
ServerCallId |
用來識別通話的唯一識別碼。 |
SDKVersion |
在要求中使用的 SDK 版本。 |
SDKType |
在要求中使用的 SDK 類型。 |
ParticipantId |
用來識別發出要求的通話參與者的識別碼。 |
SubOperationName |
用來識別媒體作業子類型的名稱 (播放或辨識)。 |
operationID |
用來將非同步事件相互關聯的識別碼。 |
以下是通話自動化作業記錄的範例:
[
{
"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",
}
通話自動化媒體摘要記錄
屬性 | 說明 |
---|---|
TimeGenerated |
事件的時間戳記 (UTC)。 |
level |
事件的嚴重性層級。 必須是 Informational 、Warning 、Error 或 Critical 的其中之一。 |
resourceId |
發出事件之資源的識別碼。 |
durationMs |
作業的持續時間 (以毫秒為單位)。 |
callerIpAddress |
|
correlationId |
Skype 鏈結識別碼。 |
operationName |
此事件代表的作業名稱。 |
operationVersion |
|
resultType |
事件的狀態。 一般值包括 Completed 、Canceled 和 Failed 。 |
resultSignature |
作業的子狀態。 如果此作業對應至 REST API 呼叫,則此欄位是對應 REST 呼叫的 HTTP 狀態碼。 |
operationId |
用來將非同步事件相互關聯的作業識別碼。 |
recognizePromptSubOperationName |
作業的子類型。 可能的值包括 File 、TextToSpeech 和 SSML 。 |
playInLoop |
如果已針對播放作業要求迴圈,則為 True 。 否則為 False 。 |
playToParticipant |
如果播放作業有目標,則為 True 。 如果這是對所有人播放的作業,則為 False 。 |
interrupted |
如果提示中斷,則為 True 。 否則為 False 。 |
resultCode |
作業的結果碼。 |
resultSubcode |
作業的結果子碼。 |
resultMessage |
作業的結果訊息。 |
以下是通話自動化媒體摘要記錄的範例:
[
{
"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."
}