Azure 通訊服務中的疑難排解
本文可協助您針對 Azure 通訊服務 解決方案中可能會遇到的問題進行疑難解答。 如果您要針對SMS進行疑難解答,您可以使用 Azure 事件方格 啟用傳遞報告,以擷取 SMS 傳遞詳細數據。
取得協助
我們鼓勵開發人員提交問題、建議功能,以及回報問題。 如需詳細資訊,請參閱專用的支援和說明選項頁面。
為了協助您針對某些問題進行疑難排解,您可能需要下列一或多項資訊:
- MS-CV 識別碼:針對呼叫和訊息進行疑難排解。
- 通話標識碼:識別 Azure 通訊服務 通話。
- 簡訊識別碼:識別簡訊。
- 簡短程式代碼程式簡短標識碼:識別簡短的程式代碼程式簡短應用程式。
- 免付費電話驗證活動概要識別碼:識別免付費電話驗證活動概要應用程式。
- 電子郵件訊息識別碼:識別 傳送電子郵件 要求。
- 相互關聯標識碼:使用通話自動化來識別提出的要求。
- 通話記錄:使用詳細資訊來針對通話和網路問題進行疑難解答。
如需節流和限制的詳細資訊,請參閱服務限制。
存取您的 MS-CV 識別碼
您可以在初始化 SDK 時,在物件實例中 clientOptions
設定診斷,以存取 MS-CV 識別符。 您可以設定任何 Azure SDK 的診斷,包括聊天、身分識別和 VoIP 通話。
用戶端選項範例
下列程式碼片段示範診斷組態。 當您啟用 SDK 的診斷時,診斷詳細數據會發出至已設定的事件接聽程式。
// 1. Import Azure.Core.Diagnostics
using Azure.Core.Diagnostics;
// 2. Initialize an event source listener instance
using var listener = AzureEventSourceListener.CreateConsoleLogger();
Uri endpoint = new Uri("https://<RESOURCE-NAME>.communication.azure.net");
var (token, communicationUser) = await GetCommunicationUserAndToken();
CommunicationUserCredential communicationUserCredential = new CommunicationUserCredential(token);
// 3. Setup diagnostic settings
var clientOptions = new ChatClientOptions()
{
Diagnostics =
{
LoggedHeaderNames = { "*" },
LoggedQueryParameters = { "*" },
IsLoggingContentEnabled = true,
}
};
// 4. Initialize the ChatClient instance with the clientOptions
ChatClient chatClient = new ChatClient(endpoint, communicationUserCredential, clientOptions);
ChatThreadClient chatThreadClient = await chatClient.CreateChatThreadAsync("Thread Topic", new[] { new ChatThreadMember(communicationUser) });
使用通話自動化的存取標識碼
當您針對通話自動化 SDK 的問題進行疑難解答時,例如通話管理或錄製問題,您需要收集標識碼,以協助識別失敗的通話或作業。 您可以提供下列兩個識別碼之一:
從 API 回應的標頭。 找出欄位
X-Ms-Skype-Chain-Id
。從執行動作之後,您的應用程式收到的回呼事件。 例如,使用
CallConnected
或PlayFailed
找出相互關聯標識符。.
除了其中一個標識碼之外,您還需要提供失敗使用案例的詳細數據,以及發生失敗時的時間戳。
存取用戶端呼叫識別碼
當您針對語音或視訊通話進行疑難解答時,您可能需要提供 call ID
。 透過 id
物件的屬性 call
存取此值。
// `call` is an instance of a call created by `callAgent.startCall` or `callAgent.join` methods
console.log(call.id)
存取您的 SMS 訊息識別碼
針對 SMS 問題,您可以從回應物件收集訊息識別碼。
// Instantiate the SMS client
const smsClient = new SmsClient(connectionString);
async function main() {
const result = await smsClient.send({
from: "+18445792722",
to: ["+1972xxxxxxx"],
message: "Hello World 👋🏻 via Sms"
}, {
enableDeliveryReport: true // Optional parameter
});
console.log(result); // your message ID is in the result
}
存取簡短代碼程式概要識別碼
在 [簡短代碼] 區段中的 [Azure 入口網站 中尋找程序簡短標識符。
存取免付費電話驗證活動概要識別碼
在 [法規檔] 區段中的 [Azure 入口網站 中尋找程序簡短標識符。
存取電子郵件作業識別碼
當您針對電子郵件傳送狀態或電子郵件訊息狀態要求進行疑難解答時,您可能需要提供作業標識碼。 您可以在回應中存取此值。
var emailSendOperation = await emailClient.SendAsync(
wait: WaitUntil.Completed,
senderAddress: sender,
recipientAddress: recipient,
subject: subject,
htmlContent: htmlContent);
/// Get the OperationId so that it can be used for tracking the message for troubleshooting
Console.WriteLine($"Email operation id = {emailSendOperation.Id}");
存取呼叫 SDK 中的支持檔案
呼叫 SDK 提供方便的方法來存取記錄檔。 這些檔案可協助Microsoft支援專家和工程師。 建議您在偵測到問題時收集這些記錄。
啟用和存取通話記錄
瞭解如何啟用和存取通話記錄。
JavaScript
Azure 通訊服務呼叫 SDK 在內部依賴@azure/記錄器連結庫來控制記錄。
使用 @azure/logger
套件中的 setLogLevel
方法來設定記錄輸出層級。 建立記錄器,並將其傳遞至建 CallClient
構函式。
import { setLogLevel, createClientLogger, AzureLogger } from '@azure/logger';
setLogLevel('verbose');
let logger = createClientLogger('ACS');
const callClient = new CallClient({ logger });
您可以 AzureLogger
藉由覆寫 AzureLogger.log
方法來重新導向 Azure SDK 的記錄輸出。
您可以登入瀏覽器主控台、檔案或緩衝區。 您也可以傳送至您自己的服務。 如果您要透過網路將記錄傳送至您自己的服務,請勿傳送每個記錄行的要求,因為此方法會對瀏覽器效能造成負面影響。 而是累積記錄行,並以批次方式傳送它們。
// Redirect log output
AzureLogger.log = (...args) => {
// To console, file, buffer, REST API, etc...
console.log(...args);
};
Native SDK (Android/iOS)
針對 Android、iOS 和 Windows,Azure 通訊服務通話 SDK 提供記錄檔的存取權。
如需呼叫原生 SDK,請參閱 記錄檔存取教學課程。
UI 程式庫 (Android、iOS)
如果您使用適用於 Android 或 iOS 的 Azure 通訊服務 UI 連結庫,您可以透過內建支援表單來徵求使用者意見反應。
如需呼叫UI支援表單支援表單支援函式的詳細資訊,請參閱 支援表單整合教學課程。 本文說明如何新增必要的事件處理程式,並建立基本的用戶端/伺服器實作,以集中儲存支持資訊。 本文說明與組織所使用的支持服務整合的路徑。
在 ACS 整合中建置端對端支援流程
無論您使用通話 SDK 還是通話 UI SDK,為客戶提供支援都是任何強固整合的重要元件。
提供用戶支援一文強調支援意見反應迴圈的每個時間點的重要考慮,並提供跳躍點以深入瞭解。
尋找Microsoft項目資訊
使用下列程序來尋找Microsoft Entra 資訊。
取得目錄識別碼
若要尋找您的目錄(租用戶)標識碼,請遵循下列步驟:
登入 Azure 入口網站。
在服務功能表上,選取 [Microsoft Entra ID]。
在 Microsoft Entra ID 的 [ 概 觀] 頁面上,複製目錄標識碼(租使用者標識碼),並將其儲存在您的應用程式程式碼中。
取得應用程式識別碼
若要尋找您的應用程式識別碼,請遵循下列步驟:
登入 Azure 入口網站。
在服務功能表上,選取 [Microsoft Entra ID]。
在 Microsoft Entra ID 的 [應用程式註冊] 中,選取應用程式。
複製應用程式 (用戶端) 識別碼,並將其儲存在您的應用程式程式代碼中。
您也可以在應用程式 [概觀 ] 頁面上找到目錄(租用戶)標識碼。
取得使用者標識碼
若要尋找您的使用者識別碼,請遵循下列步驟:
登入 Azure 入口網站。
在服務功能表上,選取 [Microsoft Entra ID]。
從 Microsoft Entra ID 的 [使用者] 中,選取使用者。
在 Microsoft Entra 使用者的 [設定檔 ] 頁面上,複製 [物件識別符 ],並將其儲存在您的應用程式程式碼中。
取得不可變的資源標識碼
有時候,您也需要提供 Azure 通訊服務 資源的不可變資源識別碼。 若要尋找,請遵循下列步驟:
登入 Azure 入口網站。
開啟 Azure 通訊服務資源。
在服務功能表上,選取 [概觀],然後切換至 JSON 檢視。
在 [ 資源 JSON] 頁面上,複製
immutableResourceId
值,並將其提供給支援小組。
確認 Teams 授權資格以使用 Teams 使用者的 Azure 通訊服務 支援
有兩種方式可以驗證 Teams 授權資格,以使用 Teams 使用者的 Azure 通訊服務 支援。
透過 Teams Web 客戶端驗證
若要透過Teams Web用戶端驗證Teams授權資格,請遵循下列步驟:
- 開啟瀏覽器並移至 Teams Web 用戶端。
- 使用具有有效 Teams 授權的認證進行登入。
- 如果驗證成功,且您仍留在網域中
https://teams.microsoft.com/
,則您的Teams授權符合資格。 如果驗證失敗,或您重新導向至https://teams.live.com/v2/
網域,您的Teams授權不符合使用Teams使用者的 Azure 通訊服務支持資格。
透過 Microsoft Graph API 檢查您目前的 Teams 授權
您可以使用 licenseDetails 找到您目前的 Teams 授權。 Microsoft Graph API 會傳回指派給用戶的授權。 請遵循下列步驟,使用 Graph 總管工具來檢視指派給使用者的授權。
開啟瀏覽器並移至 Graph 總管。
使用認證登入 Graph 總管。
在查詢方塊中,輸入下列 API,然後選取 [ 執行查詢]。
https://graph.microsoft.com/v1.0/me/licenseDetails
或者,您可以使用下列 API 提供使用者識別碼來查詢特定使用者:
https://graph.microsoft.com/v1.0/users/{id}/licenseDetails
[ 回應預覽 ] 窗格會顯示輸出。
為了方便閱讀,此處顯示的回應物件可能會縮短。
{ "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users('071cc716-8147-4397-a5ba-b2105951cc0b')/assignedLicenses", "value": [ { "skuId": "b05e124f-c7cc-45a0-a6aa-8cf78c946968", "servicePlans":[ { "servicePlanId":"57ff2da0-773e-42df-b2af-ffb7a2317929", "servicePlanName":"TEAMS1", "provisioningStatus":"Success", "appliesTo":"User" } ] } ] }
尋找授權詳細數據,
servicePlanName
其中 屬性在 [合格 Teams 授權] 數據表中具有其中一個值。
相關內容
- 針對 Azure 通訊服務 PSTN 通話失敗進行疑難排解。
- 針對通話 SDK、通話自動化 SDK、PSTN、聊天 SDK 和 SMS SDK 的通話結束響應碼進行疑難解答。
- 存取語音和視訊、聊天、電子郵件、網路周遊、錄製、簡訊和通話自動化的記錄。
- 計量。
- 服務限制.