改善和管理通話品質
本文介紹 Azure 通訊服務中您可以用來監視、疑難排解及改善通話品質的重要工具。 下列教材會協助您規劃最佳的使用者體驗。
閱讀本文之前,請先熟悉有關通話的概觀資訊:
- 語音和視訊通話:Azure 通訊服務通話 SDK 概觀
- 電話通話:公用交換電話網路 (PSTN) 整合概念
使用 QoS 準備網路並設定重要網路流量的優先順序
當您的使用者開始使用 Azure 通訊服務進行通話和會議時,可能會遇到來電者的聲音中斷或打斷通話或會議的情況。 分享的視訊可能凍結或像素化,或是完全失敗。 這個問題是因為代表語音和視訊流量的 IP 封包遇到網路壅塞,或是未依序抵達或完全未抵達。 如果發生這種情況 (或是若要事先避免發生這個情況),請遵循網路建議,使用服務品質 (QoS)。
使用 QoS,您可以設定延遲敏感網路流量 (例如,語音或視訊串流) 的優先順序。 您允許該流量在不太敏感的流量前面「插隊」。 低優先順序流量的範例是下載新的應用程式。 在此情況下,多一秒下載並不是一個重大問題。
QoS 會使用 Windows 群組原則物件和稱為連接埠型存取控制清單的路由功能,識別並標記即時串流中的所有封包。 該功能會指示您的網路讓語音、視訊和螢幕分享自己的專用網路頻寬。
在理想情況下,您會在內部網路實作 QoS,同時準備好推出 Azure 通訊服務解決方案。 但是,你可以隨時這樣做。 如果您的網路夠小,則您可能不需要 QoS。
如需詳細指導,請參閱網路最佳化。
為品質和可靠性調查準備部署
品質有不同的定義,取決於即時通訊使用案例和使用者觀點。 許多變數會影響即時通話體驗的認知品質。 某個變數的改善可能會導致另一個變數發生負數變化。 例如,增加視訊通話的畫面播放速率和解析度,可提高網路頻寬使用率和處理能力。
開始開發之前,您必須先確定客戶的使用案例和需求。 例如,需要同時監視數十部保全攝影機摘要的客戶,可能不需要每個視訊串流所能提供的最高解析度和畫面播放速率。 在這個案例中,您可以使用視訊條件約束 API 功能,限制每個視訊串流所使用的頻寬量。
在原生平台上實作記錄
依擷取記錄檔教學課程中所述實作記錄,對於收集詳細資料進行原生開發至關重要。 詳細的記錄有助於診斷裝置型號或 OS 版本特有的問題。 我們鼓勵開始設定記錄 API 的開發人員,取得通話存留期的詳細資料。
在部署之前實作現有的品質和可靠性功能
建議您使用這些易於實作的通話範例,因為這些範例已最佳化,可為使用者提供最佳的通話品質。
如果這些範例不符合您的需求,而且您決定自訂 Azure 通訊服務通話解決方案,請實作下列功能,以支援高品質的通話體驗。 這些功能的工具有助於防止常見的品質和可靠性問題發生,並在發生時診斷這些問題。 請記住,除非您實作這些功能,否則不會建立或儲存某些通話資料。
下列各節詳細說明在通話階段實作的工具:
- 通話前:通話前整備。
- 通話期間:通話中通訊。
- 通話後:監視通話品質和可靠性,並針對它們進行疑難排解。
通話之前
使用 Azure 通訊服務提供的通話前檢查,您可以在通話之前了解使用者的連線狀態,並代替他們主動採取動作。 例如,如果您了解使用者連線不良,可以建議他們在加入通話之前關閉視訊,以改善音訊連線品質。
網路診斷工具
網路診斷工具提供託管體驗,讓開發人員在開發期間驗證通話整備程度。 您可以檢查使用者的裝置和網路狀況,對於連線服務是否為最佳狀態,以協助確保優異的通話體驗。 此工具會在網路、裝置和通話品質上執行診斷。
使用網路診斷工具,您可以鼓勵使用者在加入通話之前解決可靠性問題,並改善其網路連線品質。
如需詳細資訊,請參閱網路診斷工具。
用於診斷的通話前 API
或許您想要建置自己的診斷工具,或是將網路診斷工具更深入整合至應用程式。 若是如此,您可以使用通話前 API,來執行通話 SDK 的診斷工具。
通話前 API 可讓您自訂使用者介面中的體驗。 然後,您可以執行網路診斷工具所使用的相同測試系列,以透過測試通話確保相容性、連線能力和裝置權限。 您可以決定通話開始之前告知使用者如何更正問題的最佳方式。 您也可以在針對品質和可靠性問題進行疑難排解時執行特定檢查。
例如,如果使用者的硬體測試有問題,您可以通知使用者,管理未來通話的期望和變更。
如需詳細資訊,請參閱通話前診斷。
衝突的呼叫用戶端
Azure 通訊服務語音和視訊通話在 Web 和行動瀏覽器執行,因此使用者可能有多個瀏覽器索引標籤執行個別的 Azure 通訊服務通話 SDK 執行個體。 這種情況可能會因為各種原因而發生,如下列範例所示:
- 使用者忘記關閉上一個索引標籤。
- 使用者無法加入沒有會議召集人出席的通話。 使用者重新嘗試選取加入會議的連結,這會開啟個別的行動瀏覽器索引標籤。
同時具有多個通話瀏覽器索引標籤會導致使用者嘗試加入的通話 (即「目標通話」) 上發生音訊和視訊行為中斷的情況。 您應該確保在通話開始之前和 (透過監視) 在通話的整個生命週期期間,不會開啟多個瀏覽器索引標籤。 您可以主動通知客戶關閉多餘的索引標籤,或在客戶無法加入通話之初,以實用的傳訊協助他們正確加入通話。
若要檢查使用者是否在瀏覽器中執行 Azure 通訊服務的多個執行個體,請參閱如何偵測使用 Azure 通訊服務 SDK 的應用程式在瀏覽器的多個索引標籤中是否作用中。
通話期間
在通話期間,使用者的網路狀況可能會惡化,或者他們可能會遇到可靠性和相容性問題。 這些狀況可能會導致通話體驗不佳。 下列幾節會協助您運用各種功能管理通話中的問題,並與使用者溝通。
使用者診斷
使用者進行通話時,請務必將通話中出現的問題即時通知他們。 使用者端診斷功能為影響使用者的問題提供即時旗標,例如通話時麥克風靜音或網路品質不佳。
您可以量身打造使用者介面訊息,以最符合您的案例。 例如:
- 如果旗標識別網路問題,您可以提示使用者關閉視訊、變更網路,或移至網路狀況或連線更好的位置。
- 如果旗標識別裝置問題,您可以提示使用者切換裝置。
除了傳訊之外,您還可以代表使用者採取行動,並考慮採取主動方法來保護使用者擁有的有限頻寬。 如果您發現使用者在收到您的通知之後並未一直關閉其視訊,您可以主動關閉使用者的視訊,以設定其音訊連線的優先順序。 您甚至可以在客戶加入通話之前,於使用者介面中隱藏視訊功能,讓這些客戶看不到。
如需詳細資訊,請參閱使用者面向診斷。
視訊條件約束
視訊串流會耗用大量的網路頻寬。 如果您知道使用者的網路頻寬有限或網路狀況不佳,可以透過使用視訊條件約束控制使用者視訊連線的網路使用量。 限制使用者視訊串流可以耗用的頻寬量時,您可以在不佳的網路環境中保護獲得良好音訊品質所需的頻寬。
若要深入了解,請參閱視訊條件約束。
音量指示器
有時使用者聽不到對方的聲音。 可能是喇叭太小聲、接聽者的裝置未收到音訊封包,或者有音訊裝置問題阻擋聲音。 使用者不知道對方何時聽不到他們的聲音。 您可以使用輸入與輸出指標:
- 指出使用者的音量是否很低或沒有聲音。
- 透過您的使用者介面提示使用者大聲說話,或調查音訊裝置問題。
如需詳細資訊,請參閱有關將音量指標新增至 Web 通話的快速入門。
媒體品質統計資料
因為通話期間網路狀況可能改變,所以即使使用者開始通話時沒有任何問題,也可能回報音訊和視訊品質不佳。 「媒體品質統計資料」功能,針對每個輸入和輸出音訊、視訊和螢幕畫面分享串流,為您提供詳細的品質計量。 這些詳細的深入解析協助您監視進行中的通話、為使用者顯示整個通話的網路品質狀態,以及偵錯個別通話。
此功能中的計量有助於指出 Azure 通訊服務用戶端 SDK 媒體串流上傳送和接收的問題。 例如,您可以主動監視傳出視訊串流 availableBitrate
值、注意持續低於 1.5 Mbps 建議值的情形,並且通知使用者視訊品質降低。
伺服器記錄資料只會提供通話結束後的一般摘要。 詳細的媒體統計資料提供了整個通話期間和通話之後的低階計量,以進行更深入的分析。
若要深入了解,請參閱媒體品質統計資料。
最佳視訊計數 API
在參與者 2 位以上的群組通話期間,使用者的視訊品質可能因為網路狀況發生變更及其特定硬體限制而波動。 使用最佳視訊計數 API,透過了解本機端點在不使品質下降的情況下一次可轉譯的視訊串流數目,即可改善使用者通話品質。
實作這項功能即可維持本機端點的通話品質和頻寬,否則會造成視訊轉譯不佳。 API 會公開 optimalVideoCount
屬性,以動態變更的方式回應本機端點的網路和硬體功能。 這項資訊在執行階段提供,並在整個通話期間更新,因此您可以在網路和硬體狀況變更時調整使用者的視覺體驗。
若要實作這項功能,請參閱 Web 平台指引在通話期間管理視訊。
通話之後
在您釋出及調整 Azure 通訊服務通話解決方案之前,請先針對品質和可靠性實作下列監視功能,以確保您正在收集可用的記錄和計量。 實作這些功能之前不會儲存通話資料,因此若沒有這些資料,您無法監視及偵錯通話品質和可靠性。
如需詳細資訊,請參閱 Azure 通訊服務語音通話和視訊通話記錄。
開始收集通話記錄
檢閱此文件,開始收集通話記錄:透過 Azure 監視器的診斷設定啟用記錄。
若要在 Azure 監視器中檢視並分析資料,建議您選擇類別群組 allLogs,然後選擇 [傳送至 Log Analytics 工作區] 的目的地詳細資料。 如果您沒有 Log Analytics 工作區,以將資料傳送至其中,請建立一個。
建議您因應成本考量,視需要監視資料使用量和保留原則。 如需詳細資訊,請參閱控制成本。
使用通話診斷進行通話診斷
通話診斷是一種 Azure 監視器體驗,其會透過 Azure 入口網站中的特殊化遙測和診斷頁面,提供量身打造的深入解析。
在開始將記錄資料儲存在 Log Analytics 工作區之後,您可以將個別通話搜尋視覺化,以及將通話診斷中的資料視覺化。 在您的 Azure 監視器帳戶中,移至您的 Azure 通訊服務資源,然後在服務功能表上找到 [通話診斷]。 若要了解如何充分利用這項功能,請參閱通話診斷。
使用語音和視訊深入解析來檢查通話品質
啟用記錄之後,您可以在 Azure 資源中檢視通話深入解析,方法是使用語音和視訊深入解析中的視覺效果範例。
您可以修改現有的活頁簿,或甚至建立自己的活頁簿。 如需詳細資訊,請參閱 Azure 活頁簿。
如需更深入建議分析的範例,請參閱查詢通話記錄。
使用通話結束後問卷分析使用者意見
客戶意見反應非常寶貴。 通話結束後問卷可協助您了解您的使用者如何看待 JavaScript 或 Web SDK 通話解決方案的整體品質和可靠性。
如果已有問卷解決方案,可以將問卷修改為各種格式。 發佈問卷資料之後,您可以檢視 Azure 監視器中的結果,進行分析和改善。 Azure 通訊服務也會使用問卷 API 結果,監視並改善通話品質和可靠性。
若要實作此功能,請參閱教學課程:使用通話結束後問卷收集使用者意見反應。 啟用診斷設定以擷取問卷資料之後,您可以使用 Azure Log Analytics 中的範例通話記錄查詢,分析使用者所感知的品質體驗。 使用者意見反應可以向您顯示您不知道的問題,並協助您設定品質改善的優先順序。
若要深入了解,請參閱通話結束後問卷概觀。
直接從用戶端分析通話資料
透過收集媒體統計資料、使用者面向診斷和通話前 API 等通話資料,您可以檢閱品質不良的通話,以在針對問題進行疑難排解時執行根本原因分析。
例如,使用者可能進行了長達一小時的通話,並在通話的某個時間點回報音訊不良。 此通話可能引發了使用者面向診斷,指出傳入或傳出的媒體串流品質有嚴重問題。
透過儲存通話中的詳細媒體統計資料,您可以檢閱使用者面向診斷旗標何時發生,以查看這個時間左右出現的大量封包遺失、抖動或延遲,是否表明網路狀況不佳。 例如,您可以探索外部用戶端非受控網路、QoS 網路優先順序原則不當所導致的不必要網路流量,或者不必要的虛擬私人網路 (VPN) 是否影響了網路。
注意
通常,建議優先考慮使用者音訊連線的頻寬,然後再考慮視訊連線的頻寬。 建議您優先考慮音訊和視訊,再考慮其他網路流量。 網路無法同時支援音訊和視訊時,您可以主動停用使用者的視訊,或提示使用者停用其視訊。
要求支援
如果您遇到無法解決的品質或可靠性問題,可以提出技術支援要求。 您在要求中提供的資訊越多越好。 (原生記錄對於最佳化回應時間至關重要。)不過,您仍然可以提交包含部分資訊的要求,以開始您的查詢。 如需詳細資訊,請參閱 建立 Azure 支援要求。
如果嘗試要求技術支援時收到授權需求的通知,您可能必須選擇最適合您需求的付費 Azure 支援計劃。 請參閱比較支援計劃。
如果您不想購買支援,則可以利用社群支援。 請參閱 Azure 社群支援。
其他考量
如果您無權存取客戶的 Azure 入口網站,以檢視繫結至其 Azure 資源識別碼的資料,您可以要求查詢其工作區,代表這些客戶改善品質。 如需詳細資訊,請參閱在 Azure 監視器中跨 Log Analytics 工作區、應用程式和資源查詢資料。
相關內容
- 了解其他最佳做法:最佳做法:Azure 通訊服務通話 SDK。
- 探索已知問題:SDK 和 API 中的已知問題。
- 了解如何偵錯通話:通話診斷。
- 了解如何使用 Log Analytics 工作區:Log Analytics 教學課程。
- 建立您自己的查詢:Azure 監視器中的記錄查詢入門。