你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
了解呼叫代码和子代码错误
呼叫 SDK 和相应的服务器基础结构使用统一的框架来表示错误。 使用错误代码、子代码及其相应的结果类别,开发人员可以更轻松地理解这些错误,并找到有关其发生原因以及将来如何缓解的说明。 可将有关错误结果的详细信息视为:
代码建模为 3 位整数,指示客户端或服务器响应的响应状态。 它们分组为:
- 成功响应 (200-299)
- 客户端错误 (400-499)
- 服务器错误 (500-599)
子代码定义为整数,其中每个数字表示特定于一组方案或特定方案结果的唯一原因。
消息描述结果,并提供在结果失败时如何缓解问题的提示。
ResultCategory - 指示错误的类型。 根据上下文,该值可以是 Success
、ExpectedError
、UnexpectedClientError
或 UnexpectedServerError
重要
本文中所述的功能目前以公共预览版提供。 此预览版在提供时没有附带服务级别协议,我们不建议将其用于生产工作负荷。 某些功能可能不受支持或者受限。 有关详细信息,请参阅 Microsoft Azure 预览版补充使用条款。
了解呼叫代码和子代码错误
错误代码、子代码和相应的结果类别可帮助开发人员识别和诊断错误。 呼叫结束后,这些错误代码通过 call.callEndReason
属性公开。
错误代码详细信息包括:
代码 - 是表示客户端或服务器响应状态的 3 位整数。 代码类别:
- 成功响应 (200-299)
- 客户端错误 (400-499)
- 服务器错误 (500-599)
- 全局错误 (600-699)
子代码 - 定义为整数,其中每个数字表示特定于一组方案或特定方案结果的唯一原因。
消息 - 描述结果,并提供在结果失败时如何缓解问题的提示。
ResultCategory - 指示错误的类型。 根据上下文,该值可以是 Success
、ExpectedError
、UnexpectedClientError
或 UnexpectedServerError
。
Azure 通信服务呼叫 SDK 客户端错误代码和子代码
对于客户端错误,如果 resultCategories 属性为 ExpectedError
,则从 SDK 的角度看,该错误是意料之中的。 此类错误通常在前提条件失败时(例如在应用传递的参数不正确时,或者当前系统状态不允许 API 调用时)遇到。 应用程序应检查错误原因以及调用 API 的逻辑。
子代码 | 代码 | 消息 | 结果类别 | Advice |
---|---|---|---|---|
40101 | 408 | 无法创建 CallAgent。 请重试。如果问题仍然存在,请收集浏览器控制台日志和 .HAR 文件,然后联系 Azure 通信服务支持部门。 |
UnexpectedClientError | |
40104 | 408 | 无法创建 CallAgent。 请重试。如果问题仍然存在,请收集浏览器控制台日志和 .HAR 文件,然后联系 Azure 通信服务支持部门。 |
UnexpectedClientError | |
40114 | 408 | 无法连接到 Azure 通信服务基础结构。 请重试并检查浏览器的网络请求。 如果请求总是失败,请收集浏览器控制台日志和 .HAR 文件,然后联系 Azure 通信服务支持部门。 |
UnexpectedClientError | 有关详细信息,请参阅网络要求。 |
40115 | 412 | 无法创建 CallAgent,无法初始化与 Azure 通信服务基础结构的连接。 请重试并检查浏览器的网络请求。 如果请求总是失败,请收集浏览器控制台日志和 .HAR 文件,然后联系 Azure 通信服务支持部门。 |
UnexpectedClientError | 有关详细信息,请参阅网络要求。 |
40216 | 500 | 无法创建 CallAgent。 请重试。如果问题仍然存在,请收集浏览器控制台日志,然后联系 Azure 通信服务支持部门。 | UnexpectedClientError | |
40228 | 409 | 无法创建 CallAgent,与此标识关联的 CallAgent 实例已存在。 释放现有的 CallAgent,或创建一个具有不同标识的新 CallAgent。 | ExpectedError | |
40230 | 409 | 无法创建 TeamsCallAgent,与此标识关联的 TeamsCallAgent 实例已存在。 先释放现有的 TeamsCallAgent,然后再创建新的 TeamsCallAgent。 | ExpectedError | |
40606 | 405 | 无法枚举扬声器,不支持在 Android Chrome、iOS Safari 和 macOS Safari 上枚举/选择扬声器。 | ExpectedError | Android Chrome、iOS Safari 和 macOS Safari 都不支持扬声器枚举/选择项。 操作系统会自动选择扬声器(输出设备)。 详细了解设备管理以及如何以最佳方式缓解这些问题。 |
40613 | 400 | 无法获得麦克风和/或相机使用许可。被拒绝或失败。 确保在浏览器设置和 OS 设置中允许这些权限。 | ExpectedError | 详细了解如何以最佳方式处理设备权限。 |
40614 | 500 | 无法请求设备权限。确保在浏览器设置和 OS 设置中允许这些权限,然后重试。 如果问题仍然存在,请收集浏览器控制台日志,然后联系 Azure 通信服务支持部门。 | UnexpectedClientError | 详细了解如何以最佳方式处理设备权限。 |
41006 | 400 | 接听来电失败,未处于“响铃”状态。 订阅 CallAgent 的 incomingCall 事件以接听来电。 |
ExpectedError | 请参阅以下文章以确定问题的根本原因 - 接听来电 - 订阅 SDK 事件 |
41007 | 400 | 拒接来电失败,未处于“响铃”状态。 订阅 CallAgent 的 incomingCall 事件以拒绝来电。 |
ExpectedError | 请参阅以下文章以确定问题的根本原因 - 接听来电 - 订阅 SDK 事件 |
41015 | 500 | 无法将麦克风静音。 请重试。如果问题仍然存在,请收集浏览器控制台日志,然后联系 Azure 通信服务支持部门。 | UnexpectedClientError | |
41016 | 400 | 无法将麦克风取消静音。 请重试。如果问题仍然存在,请收集浏览器控制台日志,然后联系 Azure 通信服务支持部门。 | UnexpectedClientError | |
41025 | 400 | 无法启动视频,LocalVideoStream 实例无效或为空。 传入 LocalVideoStream 实例。 | ExpectedError | 确保传入的用于启动视频的对象是 LocalVideoStream 的实例。 使用 VideoDeviceInfo 对象或 MediaStream 对象构造 LocalVideoStream 。 请参阅以下文章以确定问题的根本原因: - 使用相机进行通话 - 在通话时开始发送和停止发送本地视频 - 访问原始视频 |
41027 | 400 | 无法启动视频,视频已启动。 | ExpectedError | 有用的链接: - 使用相机进行通话 - 在通话时开始发送和停止发送本地视频 |
41030 | 400 | 无法停止视频,视频已停止。 | ExpectedError | 有用的链接: - 使用相机进行通话 - 在通话时开始发送和停止发送本地视频 |
41032 | 400 | 无法停止视频,参数无效。 当前未发送用作输入的 LocalVideoStream。 | ExpectedError | 通话中发送的 LocalVideoStream 存储在 Call.localVideoStreams[] 数组中,其类型为 Video 或 RawMedia 。 请参阅以下文章以确定问题的根本原因: - 使用相机进行通话 - 在通话时开始发送和停止发送本地视频 - 访问原始视频 |
41033 | 500 | 无法保持通话。 请重试。如果问题仍然存在,请收集浏览器控制台日志,然后联系 Azure 通信服务支持部门。 | UnexpectedClientError | |
41034 | 500 | 无法恢复通话。 请重试。如果问题仍然存在,请收集浏览器控制台日志,然后联系 Azure 通信服务支持部门。 | UnexpectedClientError | |
41035 | 400 | 无法启动屏幕共享,屏幕共享已启动。 | ExpectedError | 详细了解如何在通话时启动和停止屏幕共享 |
41041 | 400 | 无法停止屏幕共享,屏幕共享已停止。 | ExpectedError | 详细了解如何在通话时启动和停止屏幕共享 |
41048 | 410 | 在通话建立过程中无法启动视频。 确保在浏览器设置和 OS 设置中允许视频权限,并确保相机设备没有被其他进程使用。 | UnexpectedClientError | 相机设备可能在系统中被禁用。 - 另一个进程正在使用相机。 |
41056 | 412 | 无法启动或加入通话,未为此 Azure 通信服务资源启用 Teams Enterprise 语音策略。 按照在线教程来启用它。 | ExpectedError | 请参阅如何为用户启用在线企业语音和电话系统语音邮件,以启用 Teams Enterprise 语音策略 |
41071 | 412 | 无法启动屏幕共享,通话未处于“已连接”状态。 订阅通话的 statteChanged 事件,以了解通话何时处于已连接状态。 |
ExpectedError | 有用的链接: - 检查通话属性 - 订阅 SDK 事件 |
41073 | 412 | 无法获取或设置自定义 MediaStream,Azure 通信服务当前禁用此功能。 | ExpectedError | |
43000 | 412 | 无法启动视频,视频设备正在被另一个进程/应用程序使用。 请停止在其他进程/应用程序中使用相机,然后重试。 | ExpectedError | 详细了解如何以最佳方式处理其他进程正在使用的相机 |
43001 | 403 | 无法启动视频,未被授予使用所选视频设备的权限。 确保在浏览器设置和系统设置中允许视频设备权限。 | ExpectedError | 确保在浏览器设置和设备系统设置中允许相机权限。 确保设备系统设置中未禁用相机。 在 macOS 上,确保系统设置允许屏幕录制。 有用的链接: - 请求设备权限- macOS 上的屏幕共享权限 - 在 macOS 和 iOS 的 Safari 上枚举或访问设备 |
43002 | 500 | 无法启动视频,出现未知错误。 重试。 如果仍存在问题,请联系 Azure 通信服务支持部门。 | UnexpectedClientError | |
43004 | 400 | 无法切换视频设备,输入无效。 输入必须是 VideoDeviceInfo 类型。 | ExpectedError | 使用设备管理器获取 VideoDeviceInfo 对象列表,然后使用 VideoDeviceInfo 对象来切换源。 详细了解如何在通话时开始发送和停止发送本地视频 |
43005 | 400 | 无法切换视频设备,不能切换到同一视频设备,该设备已选中。 | ExpectedError | |
43013 | 412 | 无法启动视频,未找到视频设备。 确保视频设备已插入并已在系统设置中启用。 | ExpectedError | 确保设备上已连接并安装了相机。 |
43014 | 412 | 无法启动视频,请求媒体流时出错。 请重试。如果仍存在问题,请联系 Azure 通信服务支持部门。 | UnexpectedClientError | |
43015 | 412 | 无法启动视频,媒体流请求超时。在浏览器提示访问相机时允许相应权限,然后重试。 | ExpectedError | 如果用户未根据浏览器的权限提示采取操作来允许访问相机,则可能会发生此错误。 |
43016 | 412 | 无法启动视频,权限被系统拒绝。 确保在浏览器设置和系统设置中允许视频设备权限。 | ExpectedError | - 确保在浏览器设置和设备系统设置中允许相机权限。 - 确保设备系统设置中未禁用相机。 - 在 macOS 上,确保系统设置允许屏幕录制。 有用的链接: - 请求设备权限 -macOS 上的屏幕共享权限 - 在 macOS 和 iOS 的 Safari 上枚举或访问设备 |
43017 | 412 | 无法启动视频,流不受支持。 请重试。如果仍存在问题,请联系 Azure 通信服务支持部门。 | UnexpectedClientError | |
43018 | 412 | 无法启动视频,无法设置约束。 请重试。如果仍存在问题,请联系 Azure 通信服务支持部门。 | UnexpectedClientError | 详细了解如何设置视频约束 |
43019 | 412 | 无法启动视频,未选择任何设备。 确保传递使用 VideoDeviceInfo 构造的 LocalVideoStream 并重试。 如果仍存在问题,请联系 Azure 通信服务支持部门。 | UnexpectedClientError | 有用的链接: - 使用相机进行通话 - 在通话时开始发送和停止发送本地视频 |
43200 | 412 | 无法呈现视频流,该流不可用。 订阅流的 isAvailable 属性,这样就会在远程参与者打开视频并且流可用于呈现时收到通知。 | ExpectedError | 有用的链接: - 呈现远程参与者视频/屏幕共享流 - 向应用添加 1:1 视频通话 - 订阅 SDK 事件 |
43202 | 404 | 无法呈现视频流,该流不再可用。 远程参与者关闭了其视频。 | ExpectedError | 远程参与者在尝试为其视频创建视图时关闭了视频。 |
43203 | 408 | 无法呈现视频流,等待视频帧时呈现超时。 请重试。如果仍存在问题,请联系 Azure 通信服务支持部门。 | UnexpectedClientError | |
43204 | 500 | 无法呈现视频流,无法订阅 Azure 通信服务基础结构上的视频。 请重试。如果仍存在问题,请联系 Azure 通信服务支持部门。 | UnexpectedClientError | |
43209 | 405 | 无法呈现视频流,VideoStreamRenderer 在初始化过程中被释放。 | ExpectedError | |
43210 | 400 | 无法释放 VideoStreamRenderer,因为它已释放。 | ExpectedError | |
43220 | 400 | 无法创建视图,已达到最大活动 RemoteVideoStream 视图数。 你可以释放一个旧的,以便创建一个新的。 |
ExpectedError | 详细了解如何正确支持最佳数量的传入视频流 |
480 | 未注册远程客户端终结点。 | 确保远程终结点可用。 | ||
481 | 无法处理传入呼叫。 | 通过 Azure 门户提交支持请求。 | ||
487 | 呼叫被取消、本地被拒绝,由于终结点不匹配问题而结束,或无法生成媒体产品/服务。 | 预期行为。 | ||
490、491、496、497、498 | 本地终结点网络问题。 | 检查网络。 | ||
503、504 | 通信服务基础结构错误。 | 通过 Azure 门户提交支持请求。 | ||
600 | 到处都忙。 成功联系到参与者,但返回忙音。 | 预期行为。 | ||
603 | 全局呼叫被远程通信服务参与者拒绝。 | 预期行为。 | ||
604 | 任何位置都不存在。 请求的 URI 不存在。 | 预期行为。 | ||
606 | 不可接受。 已成功联系到参与者,但参与者无法支持所描述的会话。 | 预期行为。 |
了解呼叫代码和子代码错误
错误代码、子代码和相应的结果类别可帮助开发人员识别和诊断错误。 呼叫结束后,这些错误代码通过 call.callEndReason
属性公开。
错误代码详细信息包括:
代码 - 是表示客户端或服务器响应状态的 3 位整数。 代码类别:
- 成功响应 (200-299)
- 客户端错误 (400-499)
- 服务器错误 (500-599)
- 全局错误 (600-699)
子代码 - 定义为整数,其中每个数字表示特定于一组方案或特定方案结果的唯一原因。
消息 - 描述结果,并提供在结果失败时如何缓解问题的提示。
ResultCategory - 指示错误的类型。 根据上下文,该值可以是 Success
、ExpectedError
、UnexpectedClientError
或 UnexpectedServerError
。
呼叫结束通话代码和子代码
呼叫结束的原因有不同的解释。 这些是呼叫结束代码和子代码的含义,显示呼叫如何结束。
子代码 | 代码 | 消息 | 结果类别 | Advice |
---|---|---|---|---|
0 | 0 | 本地参与者成功结束呼叫。 | Success | |
0 | 487 | 由于呼叫方取消了呼叫,呼叫成功结束。 | Success | |
0 | 603 | 由于被叫方拒绝,呼叫成功结束。 | 成功 | 通话结束,因为目标用户通过客户端 SDK、呼叫自动化、Graph、PSTN 或 Teams 拒绝功能拒绝了该通话。 |
7 | 496 | 由于客户端突然失去网络连接,通话结束,尽管重试多次,仍无法连接 | ExpectedError | 浏览器处于脱机状态或存在网络问题。 检查浏览器的网络连接,然后重试。 |
3100 | 410 | 由于客户端出现意外的网络问题,无法建立通话,请检查客户端的网络并重试。 | UnxpectedClientError | 检查网络配置,确保符合 Azure 通信呼叫网络要求。 |
3101 | 410 | 由于客户端出现意外的网络问题,通话中断,请检查客户端的网络并重试。 | UnxpectedClientError | 检查网络配置,确保符合 Azure 通信呼叫网络要求。 |
3111 | 410 | 通话建立失败,连接通话时无法处理媒体请求。 | UnxpectedClientError | 重试。 如果问题仍然存在,请收集通话信息、客户端日志、浏览器控制台日志并联系 Azure 通信服务支持。 |
3112 | 410 | 由于客户端出现网络配置问题,无法建立通话,请检查客户端的网络配置并重试。 | ExpectedError | |
4097 | 0 | 会议组织者结束了所有用户的呼叫。 | 成功 | |
4502 | 490 | 由于出现网络连接问题,通话失败,浏览器无法完成网络 HTTP 请求。 | UnexpectedClientError | 客户端未能完成 HTTP 请求和响应。 重试。 如果问题仍然存在,请收集通话信息、客户端日志、浏览器控制台日志并联系 Azure 通信服务支持。 |
4506 | 408 | 呼叫已超时。检查被叫方是否收到并接受了呼叫。 | UnexpectedClientError | 重试。 如果问题仍然存在,请收集通话信息、客户端日志、浏览器控制台日志并联系 Azure 通信服务支持。 |
4507 | 495 | 由于应用程序未提供有效的 Azure 通信服务令牌,呼叫结束。 | UnexpectedClientError | 确保应用程序正确实现令牌刷新机制。 |
4521 | 0 | 通话已结束,因为用户突然与通话断开连接。 这可能是由于用户关闭了托管通话的应用程序造成的,例如用户在没有正确挂断的情况下关闭浏览器标签页,从而终止了应用程序。 | ExpectedError | |
5000 | 0 | 此参与者的通话已结束。 另一参与者已从对话中删除了该参与者。 | 成功 | |
5003 | 0 | 呼叫成功结束,因为所有被叫方终结点都拒绝了呼叫。 | 成功 | |
5300 | 0 | 该参与者的呼叫已结束,因为另一参与者已从对话中删除了该参与者。 | 成功 | 由于另一位参与者将其移除,该参与者的通话已结束,此操作可能是由另一个客户端、呼叫自动化 API 或图形 API 执行的。 |
5,317 | 0 | 由于参与者角色更新,系统已删除目标参与者。 | ExpectedError | |
5828 | 403 | 用户不在受邀者列表中,因此无权加入会议室会议。 | UnexpectedClientError | |
5829 | 403 | 不允许在会议室会议的结束时间之后或开始时间之前加入会议。 | UnexpectedClientError | |
5830 | 403 | 仅允许通信服务用户加入会议室会议。 | ExpectedError | |
7000 | 0 | Azure 通信服务呼叫自动化 API 或服务器机器人已结束呼叫。 | 成功 | ACS 呼叫自动化 API 或 Graph 机器人已结束呼叫。 |
10003 | 487 | 已取消对此用户端点的呼叫,因为另有一个端点在其他地方接受了该呼叫。 | 成功 | 向目标用户发起呼叫(开始呼叫、添加参与者、转接)后,因为目标用户同时拥有多个活动端点,用户在其中一个端点上接受了呼叫。 这是正常行为,只有一个端点可以接受并连接到呼叫。 所有其他端点都会收到子代码 10003 以表明该呼叫已被接受。 |
10004 | 487 | 由于目标用户未及时接受或拒绝,呼叫因超时而被取消。 确保用户看到通知,和/或应用程序可以自动处理并尝试再次发起该呼叫。 | ExpectedError | 由于目标用户没有接受或拒绝,通话在预定的时间(通常为 2 分钟)后被取消。 |
10009 | 401 | 未经身份验证的标识。 - 确保 Azure 通信服务令牌有效且未过期。 | UnexpectedClientError | |
10024 | 487 | 通话已成功结束。 所有被叫方终结点都拒绝了通话。 | 成功 | 尝试再次呼叫。 |
10037 | 480 | 目标用户没有在 ACS 注册任何端点。 确保目标用户至少有一个活动端点并且处于联机状态。 | ExpectedError | 如果目标用户正在使用 Azure 通信服务呼叫 SDK,请确保该 SDK 在其客户端应用程序中成功初始化。 如果目标用户是 Teams 用户,请确保其客户端处于联机状态。 确保目标用户的标识符(CommunicationUserIdentifier、MicrosoftTeamsUserIdentifier 或 MicrosoftTeamsBotIdentifier)正确。 如果图形 API user 将属性 department 设置为 Microsoft Communication Application Instance ,则应指定 MicrosoftTeamsBotIdentifier 。 |
10057 | 408 | 通话失败,被叫方未能完成通话设置,很可能是被叫方断开了网络或突然终止了应用程序。 确保客户端已连接且可用。 | ExpectedError | |
10076 | 480 | 目标用户已注册,但在呼叫时未处于联机状态。 确保目标用户至少有一个活动端点并且处于联机状态。 | ExpectedError | 如果目标用户正在使用 Azure 通信服务呼叫 SDK,请确保该 SDK 在其客户端应用程序中成功初始化并且其端点处于联机状态。 如果目标用户是 Teams 用户,请确保其客户端处于联机状态。 |
10077 | 480 | 目标用户已注册 ACS 和/或推送通知,但在呼叫时未处于联机状态。 确保目标用户至少有一个活动端点并且处于联机状态。 | ExpectedError | 如果目标用户正在使用 Azure 通信服务呼叫 SDK,请确保该 SDK 在其客户端应用程序中成功初始化并且其端点处于联机状态。 如果应用程序利用推送通知,请确保其配置正确。 如果目标用户是 Teams 用户,请确保其客户端处于联机状态。 |
10078 | 480 | 远程客户端端点未注册或无法访问。 确保远程客户端终结点成功将网络请求发送到 Azure 通信服务。 | ExpectedError | - 如果目标用户正在使用 Azure 通信服务呼叫 SDK,请确保该 SDK 在其客户端应用程序中成功初始化并且其端点处于联机状态。 如果应用程序利用推送通知,请确保其配置正确。 - 如果目标用户是 Teams 用户,请确保其客户端处于联机状态。 |
301004 | 410 | 由于在呼叫设置期间无法与 Azure 通信服务基础结构建立媒体连接,Azure 通信服务基础结构将参与者从呼叫中移除。 检查用户的网络配置,包括本地网络、防火墙、VPN 配置,然后重试。 | UnexpectedClientError | 确保正确配置了用户的网络,请按照“网络建议”公共文档中的说明进行操作。 |
301005 | 410 | 由于与同一基础结构的媒体连接断开,Azure 通信服务基础结构从通话中删除了参与者。 如果参与者突然退出通话或断开网络连接,通常会发生这种情况。 参与者如果想要继续通话,可以重新进行连接。 | UnexpectedClientError | 请确保在受支持的环境中使用最新的 SDK。 |
540000 | 0 | 本地 PSTN 呼叫者成功结束呼叫。 | 成功 | |
510403 | 403 | 通话已结束,之前被标记为骚扰电话,现已被阻止。 | ExpectedError | - 确保通信服务令牌有效且未过期。 - 确保在通话选项中传入 AlternateId 。 |
540487 | 487 | 由于呼叫方取消了呼叫,呼叫成功结束。 | 成功 | |
560000 | 0 | 远程 PSTN 参与者成功结束呼叫。 | 成功 | 可能的原因: - 用户结束了呼叫。 - 媒体代理结束了通话。 |
560486 | 486 | 由于远程 PSTN 参与者繁忙,呼叫结束。 被呼号码占线或存在技术问题。 | 成功 | - 对于直接路由呼叫,请检查会话边界控制日志和设置以及超时配置。 可能的原因:被呼号码正在接听电话或存在技术问题。 |
404 | 找不到呼叫。 | 确保要呼叫的电话(或要加入的电话)存在。 | ||
408 | 呼叫控制器超时。 | 等待来自用户终结点的协议消息时呼叫控制器超时。 确保客户端已连接且可用。 | ||
410 | 本地媒体堆栈或媒体基础结构错误。 | 请确保在受支持的环境中使用最新的 SDK。 | ||
430 | 无法将消息传递到客户端应用程序。 | 请确保客户端应用程序正在运行而且可用。 | ||
480 | 未注册远程客户端终结点。 | 确保远程终结点可用。 | ||
481 | 无法处理传入呼叫。 | 通过 Azure 门户提交支持请求。 | ||
490、491、496、497、498 | 本地终结点网络问题。 | 检查网络配置,确保符合 Azure 通信呼叫网络要求。 | ||
500、503、504 | 通信服务基础结构错误。 | 通过 Azure 门户提交支持请求。 |