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

改善和管理通话质量

本文介绍 Azure 通信服务中可用于对通话质量进行监视、故障排和改进的主要工具。 以下材料可帮助你规划最佳用户体验。

在阅读本文之前,请熟悉有关通话的概述信息:

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

当用户开始使用 Azure 通信服务进行通话和会议时,他们可能会遇到呼叫方的声音中断或者在通话或会议中断断续续的情况。 共享视频可能会冻结、像素化或完全失败。 此问题的原因是代表语音和视频流量的 IP 数据包遇到网络拥塞,无法按顺序到达或根本没有到达。 如果发生这种情况(或为了从一开始就防止这种情况发生),请按照网络建议使用服务质量 (QoS)。

使用 QoS 可以优先处理对延迟敏感的网络流量(例如语音或视频流)。 允许该流量在对延迟不太敏感的流量前面“插队”。 例如,下载新应用就是低优先级的流量。 在这种情况下,多花一秒钟下载并不是什么大问题。

QoS 使用 Windows 组策略对象和名为“基于端口的访问控制列表”的路由功能来识别和标记实时流中的所有数据包。 该功能指示网络为语音、视频和屏幕共享提供自己的专用网络带宽。

理想情况下,在准备好推出 Azure 通信服务解决方案时在内部网络上实施 QoS。 但你也可以随时实施 QoS。 如果你的网络带宽足够小,则可能不需要 QoS。

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

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

根据实时通信用例和用户的观点,质量有不同的定义。 许多变量会影响实时通话体验的感知质量。 一个变量的改善可能会导致另一个变量的负面变化。 例如,提高视频通话的帧速率和分辨率会增加网络带宽利用率和处理能力。

在开始开发之前,请确定客户的用例和要求。 例如,需要同时监视数十个安全摄像头画面的客户可能不需要每个视频流所能提供的最大分辨率和帧速率。 在这种情况下,可以利用视频约束 API 功能来限制每个视频流使用的带宽量。

在本机平台上实现日志记录

按照有关检索日志文件的教程中的说明实现日志记录对于收集本机开发的详细信息至关重要。 详细的日志有助于诊断特定于设备型号或操作系统版本的问题。 我们建议那些开始配置日志 API 的开发人员获取有关通话生存期的详细信息。

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

我们建议使用这些易于实现的通话示例,因为它们已经过优化,可为用户提供最佳通话质量。

如果示例不能满足你的需求,并且你决定自定义 Azure 通信服务通话解决方案,请实现以下功能来支持高质量的通话体验。 这些功能的工具有助于防止常见质量和可靠性问题的发生,并在问题发生时进行诊断。 请记住,除非实现这些功能,否则不会创建或存储某些通话数据。

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

  • 通话前:通话前的就绪状态
  • 通话期间:通话过程中的通信
  • 通话后:监视通话质量和可靠性并进行故障排除

通话前

通过使用 Azure 通信服务提供的通话前检查,可以在通话前了解用户的连接状态并代表他们采取主动措施。 例如,如果你发现用户的连接质量较差,则可以建议他们在加入通话之前关闭视频以实现更好的音频连接。

网络诊断工具

网络诊断工具为开发人员提供托管体验,以便在开发过程中验证通话就绪情况。 可以检查用户的设备和网络条件是否适合连接到服务,以帮助确保卓越的通话体验。 该工具对网络、设备和呼叫质量执行诊断。

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

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

用于诊断的通话前 API

也许你想构建自己的诊断工具或将网络诊断工具更深入地集成到应用程序中。 如果是这样,你可以使用通话前 API 来运行通话 SDK 的诊断工具。

通话前 API 可用于自定义用户界面中的体验。 然后,可以运行网络诊断工具使用的同一系列测试,通过测试通话来确保兼容性、连接性和设备权限。 可以决定在通话开始前告诉用户如何更正问题的最佳方式。 还可以在排查质量和可靠性问题时执行特定检查。

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

有关详细信息,请参阅呼叫前诊断

冲突的通话客户端

由于 Azure 通信服务语音和视频通话在 Web 和移动浏览器上运行,因此用户可能有多个浏览器标签页运行单独的 Azure 通信服务通话 SDK 实例。 这种情况可能因各种原因而发生,例如:

  • 用户忘记关闭上一个选项卡。
  • 在没有会议组织者出席的情况下用户无法加入通话。 用户重试选择加入会议的链接,这会打开单独的移动浏览器选项卡。

同时打开多个通话浏览器选项卡会导致用户尝试加入的通话(即目标通话)发生音频和视频行为中断。 应(通过监视)确保在通话开始之前以及在通话的整个生命周期内不会打开多个浏览器选项卡。 可以主动通知客户关闭多余的标签页,或者在其最初无法加入通话时通过有用的消息帮助他们正确加入通话。

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

通话期间

在通话过程中,用户的网络状况可能会变差,或者遇到可靠性和兼容性问题。 这种情况可能会导致通话体验不佳。 以下部分帮助你应用相关功能来管理通话中的问题并与用户通信。

面向用户的诊断

当用户在通话中时,实时通知他们通话中的问题非常重要。 面向用户的诊断功能可以针对影响用户的问题(例如通话时麦克风静音或网络质量差)提供实时标志。

可以定制用户界面消息,使其最适合你的场景。 例如:

  • 如果标志标识了网络问题,你可以提示用户关闭其视频、更改网络或移动到网络状况或连接更好的位置。
  • 如果标志标识了设备问题,你可以提醒用户切换设备。

除了消息传递之外,你还可以代表用户采取行动,并考虑采用主动方法来保护用户有限的带宽。 如果你发现用户在收到你的通知后并没有持续关闭其视频,你可以主动关闭用户的视频以优先处理其音频连接。 甚至可在客户加入通话之前在用户界面中对客户隐藏视频功能。

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

视频约束

视频流会占用大量的网络带宽。 如果你知道用户的网络带宽有限或网络状况不佳,可以使用视频约束来控制用户视频连接的网络用量。 当限制用户视频流可以使用的带宽量时,可以保护在较差的网络环境中实现良好音频质量所需的带宽。

有关详细信息,请参阅视频约束

音量指示器

有时用户无法听到彼此的声音。 这也许是因为扬声器声音太小,听者的设备没有接收到音频数据包,或者音频设备问题阻挡了声音。 用户不知道其他人何时听不到他们的声音。 可以使用输入和输出指示器来:

  1. 指示用户音量是否太低或无声。
  2. 通过用户界面提示用户大声说话或调查音频设备问题。

有关详细信息,请参阅有关向 Web 通话添加音量指示器的快速入门

媒体质量统计信息

由于在通话过程中网络状况会发生变化,因此即使用户在通话开始时没有遇到任何问题,也可能会报告音频和视频质量较差。 媒体质量统计信息功能提供每个入站和出站音频、视频和屏幕共享流的详细质量指标。 这些详细的见解可帮助监视正在进行的通话,向用户显示其在整个通话过程中的网络质量状态,并调试单个通话。

此功能中的指标有助于指示 Azure 通信服务客户端 SDK 在发送和接收媒体流时出现的问题。 例如,可以主动监视传出视频流的 availableBitrate 值,如果发现其持续低于建议的 1.5 Mbps,则向用户通知视频质量已下降。

服务器日志数据仅在通话结束后提供通话的总体摘要。 详细的媒体统计信息在整个通话期间提供低级指标,供以后进行更深入的分析。

有关详细信息,请参阅媒体质量统计信息

最佳视频计数 API

在有两个或更多参与者的群组通话期间,用户的视频质量可能会由于网络状况的变化和特定硬件限制而波动。 通过使用最佳视频计数 API,可以了解本地终结点可在不降低质量的情况下一次呈现多少个视频流,从而提高用户通话质量。

通过实现此功能,可以保持本地终结点的通话质量和带宽,否则这些终结点会试图以较低的质量呈现视频。 该 API 公开 optimalVideoCount 属性,该属性会动态更改以响应本地终结点的网络和硬件功能。 此信息在运行时可用,并在整个通话过程中更新,因此你可以在网络和硬件条件变化时调整用户的视觉体验。

若要实现此功能,请参阅 Web 平台指导在通话期间管理视频

通话后

在发布和缩放 Azure 通信服务通话解决方案之前,请实现以下质量和可靠性监视功能,以确保收集可用日志和指标。 在实现这些功能之前不会存储通话数据,因此如果没有这些功能,就无法监视和调试通话质量和可靠性。

有关详细信息,请参阅 Azure 通信服务语音通话和视频通话日志

开始收集呼叫日志

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

若要在 Azure Monitor 中查看和分析数据,我们建议选择类别组“allLogs”,并选择“发送到 Log Analytics 工作区”的目标详细信息。 如果没有要将数据发送到其中的 Log Analytics 工作区,请创建一个工作区

出于成本考虑,建议根据需要监视数据使用情况和保留策略。 有关详细信息,请参阅控制成本

使用通话诊断来诊断通话

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

开始将日志数据存储到 Log Analytics 工作区中后,可以直观查看单个通话的搜索和通话诊断中的数据。 在你的 Azure Monitor 帐户中转到你的 Azure 通信服务资源,并在服务菜单中找到“通话诊断”。 若要了解如何以最佳方式使用此功能,请参阅通话诊断

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

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

你可以修改现有工作簿,甚至可以创建自己的工作簿。 有关详细信息,请参阅 Azure 工作簿

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

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

客户反馈非常宝贵。 通话结束调查可帮助你了解用户如何看待 JavaScript 或 Web SDK 通话解决方案的整体质量和可靠性。

如果你已有调查解决方案,则可以将调查修改为各种格式。 发布调查数据后,可以在 Azure Monitor 中查看结果,以进行分析和改进。 Azure 通信服务还使用调查 API 结果来监视和提高通话质量和可靠性。

若要实现该功能,请参阅教程:使用通话结束调查收集用户反馈。 启用诊断设置来捕获调查数据后,可以使用 Azure Log Analytics 中的示例通话日志查询来分析用户感知到的质量体验。 用户反馈可以向你显示你不知道的通话问题,并帮助确定质量改进的优先级。

有关详细信息,请参阅通话结束调查概述

直接从客户端分析通话数据

通过收集通话数据(例如媒体统计信息、面向用户的诊断和通话前 API 信息),可以查看质量较差的通话,以便在排查问题时执行根本原因分析。

例如,用户可能进行了一个小时的通话,并在通话中的某个时刻报告音频效果很差。 该通话可能触发了面向用户的诊断标志,指示传入或传出媒体流的质量存在严重问题。

通过存储通话的详细媒体统计信息,可以查看面向用户的诊断标志的出现时间,以了解是否出现过高级别的数据包丢失、抖动或延迟,这些情况表明网络状况不佳。 例如,可以探索网络是否受到以下因素的影响:外部客户端的非托管网络、因 QoS 网络优先级策略不当而导致的不必要网络流量,或不必要的虚拟专用网 (VPN)。

注意

通常,我们建议优先考虑用户的音频连接带宽而不是视频连接。 我们建议优先考虑音频和视频而不是其他网络流量。 当网络无法同时支持音频和视频时,可以主动禁用用户的视频或提醒用户禁用其视频。

请求支持

如果遇到无法解决的质量或可靠性问题,可以提交技术支持请求。 在请求中提供的信息越多越好。 (本机日志对于优化响应时间至关重要。)但是你仍然可以提交包含部分信息的请求来开始查询。 有关详细信息,请参阅创建 Azure 支持请求

如果在尝试请求技术支持时收到有关许可证要求的通知,则可能需要选择最符合需求的付费 Azure 支持计划。 请参阅比较支持计划

如果不想购买支持服务,可以利用社区支持。 请参阅 Azure 社区支持

其他注意事项

如果你无权访问客户的 Azure 门户来查看与其 Azure 资源 ID 绑定的数据,可以请求查询其工作区以代表其提高质量。 有关详细信息,请参阅在 Azure Monitor 中跨 Log Analytics 工作区、应用程序和资源查询数据