你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

提高和管理通话质量

本文介绍可用于监视、排查和提高Azure 通信服务通话质量的关键工具。 以下材料可帮助你规划最佳的最终用户体验。 请确保先阅读我们的通话概述材料,以熟悉自己。

使用 QoS 准备网络并确定重要网络流量的优先级

当用户开始对呼叫和会议使用Azure 通信服务时,他们可能会遇到呼叫者的声音分手或切入或退出呼叫或会议。 共享视频可能会冻结、像素化或完全失败。 这是因为表示语音和视频流量的 IP 数据包遇到网络拥塞并完全不按顺序到达。 如果发生这种情况(或者为了防止它首先发生),请遵循我们的 网络建议使用服务质量(QoS)。

使用 QoS,可以优先考虑延迟敏感的网络流量(例如语音或视频流),使其在不太敏感的流量前“排队”(例如下载新应用,其中额外下载第二个应用并不大)。 QoS 使用 Windows 组策略对象和名为“基于端口的访问控制列表”的路由功能识别和标记实时流中的所有数据包,该功能指示网络提供语音、视频和屏幕共享其自己的专用网络带宽。

理想情况下,可以在内部网络上实现 QoS,同时准备好推出Azure 通信服务解决方案,但可以随时执行此操作。 如果足够小,则可能不需要 QoS。

有关详细指南,请参阅: 网络优化

为质量和可靠性调查准备部署

质量具有不同的定义,具体取决于最终用户的实时通信用例和视角。 有许多变量会影响实时调用体验的感知质量,一个变量的改进可能会导致另一个变量出现负面变化。 例如,提高视频通话的帧速率和分辨率会增加网络带宽利用率和处理能力。

因此,在开始开发之前,需要确定客户的用例和要求。 例如,需要同时监视数十个安全摄像头源的客户可能不需要每个视频流可以提供的最大分辨率和帧速率。 在此方案中,可以利用我们的 视频约束 功能来限制每个视频流使用的带宽量。

在部署之前实现现有质量和可靠性功能

注意

建议使用我们易于实现的示例,因为它们已经过优化,使用户获得最佳呼叫质量。 请参阅: 示例

如果我们的通话示例不符合你的需求,或者你决定自定义解决方案,请确保你在自定义通话方案中了解并实现以下功能。

在启动和缩放自定义Azure 通信服务通话解决方案之前,请实现以下功能以支持高质量的通话体验。 这些工具有助于防止常见的质量和可靠性调用问题,并在出现问题时诊断问题。 请记住,除非实现这些调用数据,否则不会创建或存储其中一些调用数据。

以下部分详细介绍了在调用的不同阶段实现的工具:

  • 呼叫之前
  • 在呼叫期间
  • 调用后

呼叫之前

预呼叫就绪情况 – 通过使用Azure 通信服务提供的预呼叫检查,可以在呼叫前了解用户的连接状态,并代表他们采取主动操作。 例如,如果你了解到用户的连接很差,则可以建议他们在加入呼叫之前关闭其视频,以便建立更好的音频连接。

网络诊断工具

网络诊断工具为开发人员提供托管体验,用于在开发期间验证呼叫准备情况。 如果用户的设备和网络条件最适合连接到服务,以确保良好的呼叫体验,则可以检查。 该工具对网络、设备和呼叫质量执行诊断。

  • 通过使用网络诊断工具,可以鼓励用户在加入呼叫之前解决可靠性问题并改进其网络连接。

  • 有关详细信息,请参阅: 网络诊断工具

预调用诊断 API

你可能想要构建自己的网络诊断工具,或者执行此工具与应用程序更深入的集成。 如果是这样,则可以使用运行调用 SDK 的网络诊断工具的预调用诊断 API。 使用预调用诊断 API 可以自定义用户界面中的体验。 然后,可以运行网络诊断工具用于确保测试调用的兼容性、连接和设备权限的同一系列测试。 你可以决定在呼叫开始之前如何更正问题的最佳方法。 排查质量和可靠性问题时,还可以执行特定的检查。

  • 例如,如果用户的硬件测试出现问题,可以通知相关用户管理期望和将来的呼叫更改。

  • 有关详细信息,请参阅: 预呼叫诊断

冲突的呼叫客户端

由于Azure 通信服务语音和视频呼叫在 Web 和移动浏览器中运行,因此用户可能有多个浏览器选项卡运行Azure 通信服务呼叫 SDK 的单独实例。 这可能发生在各种原因上。 也许用户忘记关闭其上一个选项卡。也许用户无法在没有会议组织者的情况下加入呼叫,他们重新尝试打开会议加入 URL 链接,这会打开单独的移动浏览器选项卡。无论用户如何同时出现多个呼叫浏览器选项卡,都会在尝试参与的呼叫(称为目标呼叫)上导致音频和视频行为中断。 在调用开始之前,应确保未打开多个浏览器选项卡,并在整个呼叫生命周期内进行监视。 你可以主动通知客户关闭其多余的选项卡,或者在他们最初无法加入呼叫时通过有用的消息帮助他们正确加入呼叫。

  • 若要检查用户在浏览器中运行的多个Azure 通信服务实例,请参阅:如何在浏览器的多个选项卡中检测使用 Azure 通信服务 SDK 的应用程序是否处于活动状态。

在呼叫期间

呼叫内通信 – 在通话期间,用户的网络状况可能会恶化,或者他们可能会遇到可靠性和兼容性问题,所有这些都可能导致通话体验不佳。 本部分可帮助你应用功能来管理通话中的问题并与用户通信。

面向用户的诊断(UFD)

当用户在呼叫中时,必须主动实时通知他们呼叫中的问题。 面向用户的诊断(UFDs)为用户提供实时标志,例如,在通话或网络质量不佳时将麦克风静音。 你可以代表他们轻推或采取行动。 除了消息传递,还可以考虑主动方法来保护用户拥有的有限带宽。 你可以定制用户界面消息,以最适合你的方案。 如果你发现用户在收到通知时不一致地关闭其视频,则可以主动关闭用户的视频来确定其音频连接的优先级,甚至可以在加入呼叫之前在用户界面中隐藏客户的视频功能。

例如:

  • 如果发现存在网络问题,可以提示用户关闭其视频、更改网络或移动到具有更好网络条件或连接的位置。

  • 如果标识了设备问题,则可以微移用户切换设备。

  • 有关详细信息,请参阅: 面向用户的诊断

视频约束

视频流消耗大量网络带宽,如果你知道用户的网络带宽有限或网络条件差,则可以减少控制用户视频连接与视频约束的网络使用情况。 限制用户视频流可以使用的带宽量时,可以保护在网络环境中良好音频质量所需的带宽。

音量指示器

有时用户无法相互听到,也许扬声器太安静,侦听器的设备不会接收音频数据包,或者有音频设备问题阻止声音。 用户不知道他们说话太安静,或者其他人何时听不到他们的声音。 可以使用输入和输出指示器指示用户音量是否较低或缺席,并提示用户通过用户界面朗或调查音频设备问题。

详细的媒体统计信息

由于网络条件在通话期间可能会更改,因此即使用户启动通话时没有问题,用户也可以报告音频和视频质量不佳的情况。 我们的媒体统计信息提供了每个入站和出站音频、视频和屏幕共享流的详细质量指标。 这些详细的见解可帮助你监视正在进行的呼叫、显示用户在通话中的网络质量状态以及调试单个呼叫。

  • 这些指标有助于指示客户端 SDK 发送和接收媒体流的Azure 通信服务问题。 例如,可以主动监视传出的视频流 availableBitrate,请注意建议的 1.5 Mbps 以下持续下降,并通知用户其视频质量已降级。

  • 请务必注意,我们的服务器日志数据仅在调用结束后提供调用的总体摘要。 我们的详细媒体统计信息在通话期间提供低级别指标,供通话期间使用,之后进行更深入的分析。

  • 若要了解详细信息,请参阅: 媒体质量统计信息

最佳视频计数

在与 2 名或更多参与者进行群组通话期间,由于网络条件及其特定硬件限制的变化,用户的视频质量可能会波动。 通过使用最佳视频计数 API,可以通过了解其本地终结点一次可以呈现的视频流数而不恶化质量来提高用户通话质量。 通过实现此功能,可以保留本地终结点的通话质量和带宽,否则会尝试呈现视频不佳。 API 公开属性(optimalVideoCount),该属性会动态更改以响应本地终结点的网络和硬件功能。 此信息在运行时可用,并且在整个调用中更新,让你可以在网络和硬件条件发生变化时调整用户的视觉体验。

  • 若要实现,请访问 Web 平台指南 管理视频 并查看标题为“远程视频质量”的部分。

通话调查结束

客户反馈非常宝贵,“呼叫结束调查”提供了一个工具来了解最终用户如何感知 JavaScript/Web SDK 呼叫解决方案的整体质量和可靠性。 如果已有调查解决方案,则可以将调查修改为各种调查格式。 发布调查数据后,可以在 Azure Monitor 中查看调查结果进行分析和改进。 Azure 通信服务还使用调查 API 结果来监视并提高质量和可靠性。

调用后

监视和排查呼叫质量和可靠性问题 - 在发布和缩放Azure 通信服务通话解决方案之前,请实施这些质量和可靠性监视功能,以确保收集可用的日志和指标。 在实现呼叫数据之前,这些呼叫数据不会存储,因此你无法在没有呼叫质量和可靠性的情况下监视和调试呼叫质量和可靠性。

开始收集呼叫日志

查看本文档以开始收集呼叫日志:在 Azure Monitor 中通过诊断设置启用日志

  • 建议选择类别组“allLogs”,并选择“发送到 Log Analytics 工作区”的目标详细信息,以便查看和分析 Azure Monitor 中的数据。
  • 如果没有用于将数据发送到的 Log Analytics 工作区,则需要 创建一个。
  • 建议根据需要监视数据使用情况和保留策略,了解成本注意事项。 请参阅: 控制成本。

使用呼叫诊断诊断诊断来诊断呼叫

呼叫诊断是一种 Azure Monitor 体验,它通过Azure 门户中的专用遥测和诊断页面提供定制见解。

在 Log Analytics 工作区中开始存储日志数据后,可以可视化搜索单个呼叫并在通话诊断中可视化数据。 在 Azure Monitor 帐户中,只需导航到Azure 通信服务资源,并在侧窗格中找到“呼叫诊断”边栏选项卡。

  • 请参阅 呼叫诊断 ,了解如何最好地使用此功能。

使用语音和视频见解预览版检查通话质量

启用日志后,可以使用可视化示例在 Azure 资源中查看通话见解: 语音和视频见解

  • 可以修改现有工作簿,甚至可以创建自己的工作簿: Azure 工作簿

  • 有关更深入的建议分析示例,请参阅查询 调用日志

使用通话结束调查分析最终用户情绪

启用诊断设置以捕获调查数据后,可以使用 Azure Log Analytics 中的示例 调用日志查询 来分析用户感知的质量体验。 用户反馈可以向你显示你不知道的问题,并帮助确定质量改进的优先级。

直接从客户端分析呼叫数据

通过收集呼叫数据(如媒体统计信息、面向用户的诊断和预调用 API 信息),可以在排查问题时查看质量不佳的调用,以便进行根本原因分析。 例如,用户可能有一小时的通话时间长,并在通话的某个时间点报告不良音频。

该呼叫可能已触发面向用户的诊断,指示传入或传出媒体蒸汽质量存在严重问题。 通过存储 来自呼叫的详细媒体统计信息 ,可以查看 UFD 何时出现高级别的数据包丢失、抖动或延迟,这表示网络状况不佳。 可以探索网络是否受外部客户端的非托管网络、由于服务质量(QoS)网络优先级策略不当而导致的不必要的网络流量或不必要的虚拟专用网络(VPN)的影响。

注意

作为一项规则,我们建议在用户的视频连接之前优先处理用户的音频连接带宽,并在其他网络流量之前同时优先考虑音频和视频。 当网络无法同时支持音频和视频时,可以主动禁用用户的视频或微移用户禁用其视频。

请求支持

如果遇到无法解决的质量或可靠性问题,并且需要支持,可以提交技术支持请求。 可以在请求中提供的信息越多越好,但仍可以提交包含部分信息的请求以开始查询。 请参阅: 如何创建 Azure 支持请求

  • 如果在尝试请求技术支持时收到许可证要求通知,则可能需要选择最符合需求的付费Azure 支持计划。 请参阅: 比较支持计划
  • 如果不想购买支持,可以利用社区支持。 请参阅: 社区支持

其他注意事项

后续步骤