你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
对通话 SDK、通话自动化 SDK、PSTN、聊天 SDK 和短信 SDK 的通话结束响应代码进行故障排除
本文介绍如何对通话 SDK、通话自动化和 PSTN 通话的通话结束响应代码进行故障排除。
故障排除提示
进行故障排除时,请考虑以下提示:
- 应用程序未收到
IncomingCall Event Grid
事件:确保在创建事件订阅时应用程序终结点已通过事件网格进行验证。 如果验证成功,事件订阅的预配状态将被标记为成功。 - 对于错误
The field CallbackUri is invalid
:通话自动化不支持 HTTP 终结点。 请确保提供的回调 URL 支持 HTTPS。 PlayAudio
操作不播放任何内容:音频文件目前仅支持 Wave 文件 (.wav) 格式。 Wave 文件中的音频内容必须是单声道、16 位采样,采样率为 16,000 (16 KHz)。- PSTN 终结点上的操作不起作用:对于针对电话号码执行的
CreateCall
、Transfer
、AddParticipant
和Redirect
,需要在操作请求中设置SourceCallerId
。 除非使用的是直接路由,否则源调用方 ID 必须是通信服务资源拥有的电话号码,这样操作才能成功。
有关产品小组跟踪的问题的详细信息,请参阅已知问题。
注意
下表中列出的“消息类别”和“结果类别”均为公共预览版。 有关详细信息,请参阅 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 | 在此处了解有关以 3112 的子代码结尾的调用的更多详细信息。 |
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 门户提交支持请求。 |
了解调用代码和子代码
何时收到错误代码?
调用自动化的错误代码可以作为 API 调用的同步响应或通过提供的回调 URI 进行异步响应。 在同步情况下,如果进行了 API 调用且该调用不被接受,ACS 将提供错误代码,描述 API 调用被拒绝的原因。 在异步情况下,如果发出 API 调用并接受,但仍出错,则同时收到回调事件和错误代码。 调用失败的常见回调事件的示例是每当调用断开连接时显示的 callDisconnected
事件。 收到 callDisconnected
事件后,该给定调用将不再有回调事件。 有关呼叫信号回调事件的列表,请参阅(本页面),有关媒体操作的回调事件列表,请参阅(本页面)。
错误代码语法
错误代码、子代码和相应的结果类别可帮助开发人员识别和诊断错误。 错误代码详细信息包括:
代码 - 是表示客户端或服务器响应状态的 3 位整数。 代码类别:
- 成功响应 (200-299)
- 客户端错误 (400-499)
- 服务器错误 (500-599)
- 全局错误 (600-699)
子代码 - 定义为整数,其中每个数字表示特定于一组方案或特定方案结果的唯一原因。
消息 - 描述结果,并提供在结果失败时如何缓解问题的提示。
除了代码和子代码,还可以在调用日志中找到更详细的故障排除信息。 若要详细了解如何启用和访问通话日志,请参阅本页面以获取详细的指导。
调用自动化 SDK 错误代码
下表包含最常见的代码和子代码。 如果错误不在此表中,请参阅通用代码和子代码,获取有关特定方案的详细信息。
最常见的通话自动化错误代码
代码 | 子代码 | 说明 | 缓解操作 |
---|---|---|---|
404 | 8522 | 指示找不到资源的通用错误代码。 资源可以包括通话和参与者。 | 仔细检查通话状态:通话可能已结束,或者参与者已离开通话。 |
400 | 8523 | 一个通用错误代码,指示请求正文中的内容无效。 | 检查以确保所有参数都有效。 请参阅错误消息来确定哪个参数引发了错误。 |
400 | 8501 | 操作不支持的通话未建立 | 通话未处于活动状态时激活了与错误消息关联的操作。 确保在通话断开连接后不会启动新的通话操作。 如果通话接近通话断开连接的时间,则此错误也可能是由于通话处于活动状态时调用的操作。 |
400 | 8500 | 媒体模式无效 | 检查媒体操作的状态,查看其中任何一个操作是否已处于活动状态,或者目标参与者是否已在媒体操作中。 如果有活动的媒体操作,请等待操作完成,然后重试。 |
400 | 8559 | 操作不支持 仅允许一个拨号应用 | 重复的开始记录请求、已启动或正在进行录制。 仔细检查录制状态,以确保在提交新的开始记录通话之前处于非活动状态。 |
400 | 8528 | 操作不支持的通话终止 | 通话终止时激活了与错误消息关联的操作。 确保在通话终止后不会启动新的通话操作。 如果通话接近通话终止的时间,则此错误也可能是由于通话处于活动状态时调用的操作。 |
409 | 8519 | 冲突 | 检查以确保未对同一资源并行执行多个操作。 请参阅错误消息,确定哪些两个操作存在冲突。 |
403 | 7507 | 通话源标识无效 | 来自授权令牌的应用程序标识与通话源中的应用程序标识不匹配。 检查以确保使用 ACS 资源中的连接字符串,来电 Webhook 已在其中配置(电话号码必须由应答呼叫的同一 ACS 资源拥有)。 |
403 | 7504 | 应用程序权限不足 | 用于权限不足的通用代码,检查有关资源缺少权限的上下文的错误消息。 |
400 | 8585 | 当前通话状态中操作无效 | 呼叫未建立或已断开连接:在重试媒体操作之前等待建立通话。 |
405 | 8520 | 目前不支持的功能 | 预期错误:当前不支持工作流。 查看我们的发布博客,了解是否有启用了这些功能的更新 SDK。 有关不支持的工作流列表,请参阅“通话自动化已知限制”页。 |
412 | 8583 | 前置条件失败 | 参考本页面,列出了不兼容的媒体操作,以确保你未运行或排队不兼容的操作。 |
400 | 8567 | 未启用 ACS 资源服务主体 | Azure 认知服务资源未正确配置。 有关设置 Azure 认知服务资源的指南,请参阅本页。 |
405 | 8522 | 缺少配置 | 检查错误消息,了解需要建立配置的更多上下文。 调用 AnswerCall API 时,需要执行此配置。 |
通用错误代码
2xx 代码
2xx 代码表示成功的响应。 成功响应的子代码将为 0。
4xx 代码
4xx 代码表示客户端错误。
状态代码 | 说明 |
---|---|
400 | 错误的请求 |
401 | 未授权 |
403 | 禁止 |
404 | 未找到 |
405 | 不允许的方法 |
406 | 不可接受 |
408 | 已超时 |
409 | Conflict |
412 | 前置条件失败 |
413 | 请求实体太大 |
426 | 需要升级 |
429 | 请求太多 |
481 | 事务不存在 |
487 | 已取消 |
5xx 代码
5xx 代码表示服务器错误。
状态代码 | 说明 |
---|---|
500 | 内部服务器错误 |
501 | 未实现 |
502 | 网关错误 |
503 | 服务不可用 |
504 | 网关超时 |
6xx 代码
6xx 代码表示全局错误。
状态代码 | 说明 |
---|---|
603 | 已拒绝 |
通用子代码
子代码 | 说明 |
---|---|
0 | 成功 |
7000 | 常规 |
7500 | 不支持的 AAD 标识 |
7501 | 无效的令牌 |
7502 | 未启用访问权限 |
7504 | 应用程序权限不足 |
7505 | 企业租户不匹配 |
7506 | 不受信任的证书 |
7507 | 通话源标识无效 |
7508 | 不支持的 ACS 标识 |
7509 | HMAC 验证错误 |
7510 | 托管标识验证错误 |
7600 | 未启用资源访问权限 |
7601 | ACS 源标识无效 |
7602 | ACS 目标标识无效 |
7603 | ACS 标识无效 |
7604 | 未经授权的 Teams 互操作方案 |
7605 | 未经授权的 Teams 记录互操作方案 |
7606 | 认知操作的未经授权的 ACS 资源 |
8500 | 媒体模式无效 |
8501 | 未建立通话 |
8502 | 我的参与者 ID 不可用 |
8503 | 调用媒体状态音频非活动状态 |
8504 | 媒体流不可用 |
8505 | 具有替换项的多个参与者 |
8506 | 不合规记录通话 |
8508 | 操作已取消 |
8509 | 达到最大静音超时 |
8510 | 达到初始静音超时 |
8511 | 播放提示失败 |
8512 | 播放蜂鸣声失败 |
8513 | 媒体接收超时 |
8514 | 检测到停止音调 |
8515 | 达到最大记录持续时间 |
8516 | 通话受限 |
8517 | 通话租户 ID 不匹配 |
8518 | 通话异常 |
8519 | 冲突 |
8520 | 未实现 |
8521 | 跃点过多 |
8522 | 未找到 |
8523 | 参数无效 |
8524 | 合规性记录的参与者计数无效 |
8525 | 非记录方 |
8526 | 联接令牌无效 |
8527 | 联接 URL 无效 |
8528 | 通话已终止 |
8529 | 已达到通话限制的每月限制 |
8530 | 已达到通话限制的活动通话限制 |
8531 | 接收的最大位数 |
8532 | 已达到输入的最大间隔时间 |
8,533 | Dtmf 选项匹配 |
8534 | 输入的音调不正确 |
8535 | 文件格式无效 |
8536 | 文件下载失败 |
8537 | 已达到保持连接超时 |
8538 | 被叫方拒绝 |
8539 | 被叫方忙 |
8,540 | 被叫方到处都忙 |
8541 | 被叫方离线 |
8542 | 通话已取消 |
8543 | 通话不存在 |
8544 | 被叫方无法接通电话 |
8545 | 语音选项匹配 |
8546 | 被叫方发送无效请求 |
8547 | 语音选项不匹配 |
8548 | 通话不是群组通话 |
8549 | 重定目标对话创建失败 |
8550 | 重定目标媒体协商失败 |
8551 | 不支持重定目标 |
8552 | 无法删除组织者 |
8553 | 重复记录 |
8554 | 参与者退出会议音频混合 |
8555 | 已进行重定目标 |
8556 | CR 呼叫不支持的操作 |
8557 | 格式类型错误 |
8558 | 参与者缺席 |
8559 | 重复单拨号 |
8560 | 由于已锁定会议,已阻止加入对话 |
8561 | 无效的加入会议 ID |
8562 | 不支持录制模式 |
8563 | 无法识别语音 |
8564 | 语音服务连接错误 |
8565 | 认知服务错误 |
8566 | 不允许取消静音操作 |
8567 | 未启用 ACS 资源服务主体 |
8568 | 认知服务请求的托管标识失败 |
8571 | 记录操作冲突 |
8569 | 语音已识别 |
8570 | 认知服务语音识别错误 |
8572 | 播放服务关闭 |
8573 | 不允许暂停恢复方法 |
8578 | 听录失败 |
8579 | 听录已取消 |
8580 | 听录服务关闭 |
8581 | 流 URL 无效 |
8582 | 播放源文本或 Ssml 空 |
8583 | 前置条件失败 |
8585 | 当前通话状态中操作无效 |
8586 | 机器人未确认来电 |
8587 | 来电未及时接听 |
8588 | 记录已完成和媒体接收超时 |
8589 | 记录限制 |
8594 | 更新会议状态失败 |
8603 | 媒体流式处理失败 |
8604 | 媒体流式处理已取消 |
8605 | 不支持听录自定义语音模型 |
8,606 | 通信标识符创建失败 |
8607 | 传输操作冲突 |
8608 | 记录参与者客户端错误 |
8609 | 来自机器人的无效联接响应 |
8610 | 通知时没有来自机器人的响应 |
8613 | 已达到呼叫限制实时辅助字幕限制 |
9001 | 基础服务中的未知错误 |
9002 | 基础服务中的超时错误 |
9003 | 操作取消错误 |
9998 | 严重错误 |
9999 | 未知 |
包含 ParticipantEndReason 的 PSTN 通话响应代码
本部分提供针对 ParticipantEndReason
和 ParticipantEndSubCode
响应代码的各种组合的故障排除信息。 对于本部分中的表,ParticipantEndReason
= 代码和 ParticipantEndSubCode
= 子代码。
ParticipantEndReason 0
响应 ParticipantEndReason
的值为 0 通常表示正常通话清除,会标记完成时无错误的通话。
SubCode | 代码 | 消息 | 结果类别 | Advice |
---|---|---|---|---|
0 | 0 | 本地参与者成功结束呼叫。 | 成功 | |
560000 | 0 | 正常 PSTN 通话结束: - 用户结束了呼叫。 - 媒体代理结束了通话。 |
成功 | |
540000 | 0 | 正常 PSTN 通话结束: - 用户结束了呼叫。 - 媒体代理结束了通话。 |
成功 |
ParticipantEndReason 4xx
响应 ParticipantEndReason
的值为 4xx 表示通话未接通。
SubCode | 代码 | 消息 | 结果类别 | Advice |
---|---|---|---|---|
510403 | 403 | 通话被阻止: - 未为通话提供备用 ID。 - 用户会话边界控制器 (SBC) 不允许使用电话号码。 |
- 有关备用 ID 的详细信息,请参阅管理通话。 - 确保指定了有效的备用 ID。 它必须是属于你正在使用的资源的电话号码。 - 验证你是否拥有用于拨打电话的资源。 - 对于直接路由通话,请验证会话边界控制器禁止该通话的原因。 |
|
560403 | 403 | - 通话被禁止。 - 通话被取消。 - 通话被拒绝。 |
请确保拨打的电话号码格式正确且有效。 有关支持的号码格式的详细信息,请参阅 https://en.wikipedia.org/wiki/E.164。 | |
511532 | 403 | 未找到资源 SIP 中继配置。 | 请在 Azure 门户中检查直接路由设置。 有关详细信息,请参阅直接路由预配。 | |
560404 | 404 | - 找不到电话号码。 - 未将电话号码分配给任何目标。 - 会话边界控制器不允许使用电话号码。 |
- 请确保该电话号码属于你正在使用的资源,并且你拥有该资源。 - 请验证你呼叫的号码是否存在以及是否分配给有效目标。 |
|
511404 | 404 | - 找不到电话号码。 - 未找到在通话中使用的资源。 |
- 请确保使用的电话号码属于你正在使用的资源,并且你拥有该资源。 - 请验证你呼叫的号码是否存在以及是否分配给有效目标。 - 请确保用于通话的资源没有被删除或禁用。 - 请确保 Azure 订阅未被删除或禁用。 |
|
560408 | 408 | 被叫方在规定时段内未响应通话建立消息。 | - 请仔细检查被叫方为何没有进行响应。 - 对于直接路由通话,请检查会话边界控制 (SBC) 日志和设置以及超时配置。 |
|
500001 | 408 | 用户网关超时 Azure 通信服务在指定的时间限制内未收到来自客户端的响应,因此终止了请求。 |
- 请仔细检查被叫方为何没有进行响应。 - 对于直接路由通话,请检查 SBC 日志和设置以及超时配置。 |
|
531004 | 410 | 交互式连接建立 (ICE) 检查失败。 | - 无法建立媒体路径。 可能是因错误的网络配置造成的。 请验证网络配置,以确保所需 IP 地址和端口没有被阻止。 请阅读 https://www.rfc-editor.org/rfc/rfc5245#section-7 中的准则。 - 对于直接路由通话,请检查 SBC 日志和设置中的 ICE 配置和配置文件。 请联系 SBC 供应商以获取配置帮助。 有关详细信息,请参阅针对 Azure 通信服务直接路由认证的会话边界控制器列表。 |
|
560480 | 480 | - 没有来自被调用用户的应答。 - 被调用用户暂时无法接通。 |
- 请仔细检查被叫方为何没有进行响应。 - 如果被叫方暂时无法接通,请稍后重试通话。 - 对于直接路由通话,请检查 SBC 日志和设置以及超时配置。 |
|
560484 | 484 | - 被叫方地址不完整或无效。 - 被叫方号码格式不完整或无效。 |
- 在某些情况下,可以忽略这些失败,因为用户拨打了无效的号码。 - 请确保电话号码的格式正确。 有关详细信息,请参阅 https://en.wikipedia.org/wiki/E.164。 - 对于直接路由,SBC 可能会因为呼叫转移场景中缺少配置而导致这些失败。 |
|
60486 | 486 | 被叫号码正忙 | - 所呼叫的号码可能已连接至现有通话,或者存在技术问题。 - 对于直接路由通话,请检查 SBC 日志和设置以及超时配置。 |
|
540487 | 487 | 呼叫方终止了通话请求。 | 请重试通话。 | |
560487 | 497 | - 呼叫方终止了通话请求。 - 以正常通话清除的方式终止了请求。 |
请重试通话。 |
ParticipantEndReason 5xx
响应 ParticipantEndReason
的值为 5xx 表示由于完成连接所需的软件或硬件组件出现问题,导致通话失败。
SubCode | 代码 | 消息 | 结果类别 | Advice |
---|---|---|---|---|
560500 | 500 | 通话中涉及的服务之一发生了内部服务器错误。 | - 请重试通话。 如果问题仍然存在,请联系电信提供商或 Microsoft 支持部门。 - 对于直接路由通话,请检查 SBC 日志和设置以及超时配置,查看是否是 SBC 导致了失败。 |
|
560503 | 503 | - 通话失败是因为通话中涉及的服务之一发生了内部服务器错误。 - 用于建立通话的网络出现故障。 - 通话中涉及的服务之一出现了暂时故障。 |
- 请检查网络和路由配置是否存在问题。 验证网络防火墙规则是否正确。 - 请重试通话。 如果问题仍然存在,请联系电信提供商或 Microsoft 支持部门。 - 对于直接路由通话,请检查 SBC 日志和设置以及超时配置,查看是否是 SBC 导致了失败。 |
ParticipantEndReason 603
响应 ParticipantEndReason
的值为 603 表示通话被拒绝,未进行连接。
SubCode | 代码 | 消息 | 结果类别 | Advice |
---|---|---|---|---|
560603 | 603 | - 接收方拒绝通话。 - 由于检测到欺诈,通话被拒绝。 |
- 如果被接收方拒绝,请重试通话。 - 请确保没有超出 Azure 通信服务电话号码允许的最大并发通话数。 有关详细信息,请参阅 PSTN 通话限制。 |
聊天 SDK 错误代码
聊天 SDK 使用以下错误代码,你可以通过这些错误代码来排查聊天问题。 错误代码通过错误响应中的 error.code
属性公开。
代码 | 消息 | Advice |
---|---|---|
401 | 未授权 | 请确保通信服务令牌有效且未过期。 |
403 | 已禁止 | 确保请求的发起方有权访问该资源。 |
429 | 请求太多 | 确保客户端应用程序以用户友好的方式处理此方案。 如果此错误持续存在,请提交支持请求。 |
503 | 服务不可用 | 通过 Azure 门户提交支持请求。 |
SMS 错误代码
短信 SDK 使用以下错误代码,你可以通过这些错误代码来排查短信问题。 错误代码通过短信发送报告中的 DeliveryStatusDetails
字段公开。
代码 | 消息 | Advice |
---|---|---|
2000 | 消息已成功发送。 | |
4000 | 因检测到欺诈,消息被拒绝。 | 请确保不超过你的号码所允许的最大消息数。 |
4001 | 因源/发送号码格式无效,消息被拒绝 | 请确保接收号码采用 E.164 格式,发送号码采用 E.164 或短代码格式。 |
4002 | 因目标/接收号码格式无效,消息被拒绝。 | 请确保接收号码采用 E.164 格式 |
4003 | 因目标不受支持,消息发送失败。 | 请检查尝试发送到的目标是否受支持。 |
4004 | 因目标/接收号码不存在,消息发送失败。 | 请确保要发送到的接收号码有效。 |
4005 | 消息被目标运营商阻止。 | |
4006 | 无法接通目标/接收号码。 | 请尝试稍后重新发送消息。 |
4007 | 目标/接收号码已选择不接收你的消息。 | 将目标/接收号码标记为已选择不接收,以便不再试图向该号码发送消息。 |
4008 | 已超出配置文件允许的最大消息数。 | 请确保不超过你的号码所允许的最大消息数,或使用队列对消息进行批处理。 |
4009 | 消息被 Microsoft 权利系统拒绝。 | 这最常发生在检测到欺诈活动的情况下。 请联系支持部门以了解更多详细信息。 |
4010 | 由于未验证免费号码,消息被阻止。 | 请查看未经验证的发送限制并尽快提交免费验证。 |
5000 | 消息发送失败。 请联系 Microsoft 支持团队以了解更多详细信息。 | 通过 Azure 门户提交支持请求。 |
5001 | 因应用程序/系统暂时不可用,消息发送失败。 | |
5002 | 运营商不支持送达报告 | 这最常发生在运营商不支持送达报告的情况下。 由于消息可能已送达,因此不需要执行任何操作。 |
9999 | 因未知错误/故障,消息发送失败。 | 请尝试重新发送消息。 |