你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
本文介绍如何对通话 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 必须是通信服务资源拥有的电话号码,这样操作才能成功。
有关产品小组跟踪的问题的详细信息,请参阅已知问题。
Note
下表中列出的“消息类别”和“结果类别”均为公共预览版。 有关详细信息,请参阅 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 的逻辑。
| Subcode | Code | Message | 结果类别 | 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 的实例。 使用 LocalVideoStream 对象或 VideoDeviceInfo 对象构造 MediaStream。 请参阅以下文章以确定问题的根本原因: - 发起使用摄像头的通话 - 通话时开始和停止发送本地视频 - 访问原始视频 |
| 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 | 无法启动屏幕共享,通话未处于“已连接”状态。 订阅通话的 stateChanged 事件,以了解通话何时处于已连接状态。 |
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 | 详细了解如何正确支持最佳数量的传入视频流 |
| 71005 | 401 | 由于 Azure 通信服务中的验证错误,呼叫失败。 请重试。如果仍存在问题,请联系 Azure 通信服务支持部门。 | UnexpectedClientError | |
| 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。
呼叫结束通话代码和子代码
呼叫结束的原因有不同的解释。 这些是呼叫结束代码和子代码的含义,显示呼叫如何结束。
| Subcode | Code | Message | 结果类别 | Advice |
|---|---|---|---|---|
| 0 | 0 | 本地参与者成功结束呼叫。 | Success | |
| 0 | 487 | 由于呼叫方取消了呼叫,呼叫成功结束。 | Success | |
| 0 | 603 | 由于被叫方拒绝,呼叫成功结束。 | Success | 通话结束,因为目标用户通过客户端 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 | 会议组织者结束了所有用户的呼叫。 | Success | |
| 4502 | 490 | 由于出现网络连接问题,通话失败,浏览器无法完成网络 HTTP 请求。 | UnexpectedClientError | 客户端未能完成 HTTP 请求和响应。 重试。 如果问题仍然存在,请收集通话信息、客户端日志、浏览器控制台日志并联系 Azure 通信服务支持。 |
| 4506 | 408 | 呼叫已超时。请检查被叫方是否收到并接受了呼叫。 | UnexpectedClientError | 重试。 如果问题仍然存在,请收集通话信息、客户端日志、浏览器控制台日志并联系 Azure 通信服务支持。 |
| 4507 | 495 | 由于应用程序未提供有效的 Azure 通信服务令牌,呼叫结束。 | UnexpectedClientError | 确保应用程序正确实现令牌刷新机制。 |
| 4521 | 0 | 通话已结束,因为用户突然与通话断开连接。 这可能是由于用户关闭了托管通话的应用程序造成的,例如用户在没有正确挂断的情况下关闭浏览器标签页,从而终止了应用程序。 | ExpectedError | |
| 5000 | 0 | 此参与者的通话已结束。 另一参与者已从对话中删除了该参与者。 | Success | |
| 5003 | 0 | 由于呼叫已结束,Azure 通信服务已结束呼叫。 | Success | |
| 5300 | 0 | 该参与者的呼叫已结束,因为另一参与者已从对话中删除了该参与者。 | Success | 由于另一位参与者将其移除,该参与者的通话已结束,此操作可能是由另一个客户端、呼叫自动化 API 或图形 API 执行的。 |
| 5317 | 0 | 由于参与者角色更新,系统已删除目标参与者。 | ExpectedError | |
| 5828 | 403 | 用户不在受邀者列表中,因此无权加入会议室会议。 | UnexpectedClientError | |
| 5829 | 403 | 不允许在会议室会议的结束时间之后或开始时间之前加入会议。 | UnexpectedClientError | |
| 5830 | 403 | 仅允许通信服务用户加入会议室会议。 | ExpectedError | |
| 7000 | 0 | Azure 通信服务呼叫自动化 API 或服务器机器人已结束呼叫。 | Success | ACS 呼叫自动化 API 或 Graph 机器人已结束呼叫。 |
| 10003 | 487 | 已取消对此用户终结点的呼叫,因为另有一个终结点在其他地方接受了该呼叫。 | Success | 向目标用户发起呼叫(开始呼叫、添加参与者、转接)后,因为目标用户同时拥有多个活动端点,用户在其中一个端点上接受了呼叫。 这是正常行为,只有一个终结点可以接受并连接到呼叫。 所有其他终结点都会收到子代码 10003 以表明该呼叫已被接受。 |
| 10004 | 487 | 由于目标用户未及时接受或拒绝,呼叫因超时而被取消。 确保用户看到通知,和/或应用程序可以自动处理并尝试再次发起该呼叫。 | ExpectedError | 由于目标用户没有接受或拒绝,通话在预定的时间(通常为 2 分钟)后被取消。 |
| 10009 | 401 | 未经身份验证的标识。 - 确保 Azure 通信服务令牌有效且未过期。 | UnexpectedClientError | |
| 71005 | 401 | 由于 Azure 通信服务中的验证错误,呼叫失败。 请重试。如果仍存在问题,请联系 Azure 通信服务支持部门。 | UnexpectedClientError | |
| 10024 | 487 | 通话已成功结束。 所有被叫方终结点都拒绝了通话。 | Success | 尝试再次呼叫。 |
| 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 呼叫者成功结束呼叫。 | Success | |
| 510403 | 403 | 通话被阻止: - 找不到已拨号号码的匹配语音路由。 - 未为通话提供备用 ID。 - 用户会话边界控制器 (SBC) 不允许使用电话号码。 - 以前标记为垃圾邮件,现在被阻止。 |
ExpectedError | 有关备用 ID 的详细信息,请参阅 “管理呼叫”。 - 确认你已拨打的号码具有有效的语音路由。 - 确保指定了有效的备用 ID。 它必须是属于你正在使用的资源的电话号码。 - 验证你是否拥有用于拨打电话的资源。 - 对于直接路由通话,请验证会话边界控制器禁止该通话的原因。 - 确保通信服务令牌有效且未过期。 |
| 540487 | 487 | 由于呼叫方取消了呼叫,呼叫成功结束。 | Success | |
| 560000 | 0 | 远程 PSTN 参与者成功结束呼叫。 | Success | 可能的原因: - 用户结束了呼叫。 - 媒体代理结束了通话。 |
| 560486 | 486 | 由于远程 PSTN 参与者繁忙,呼叫结束。 被呼号码占线或存在技术问题。 | Success | - 对于直接路由呼叫,请检查会话边界控制日志和设置以及超时配置。 可能的原因:被呼号码正在接听电话或存在技术问题。 |
| 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 错误代码
下表包含最常见的代码和子代码。 如果错误不在此表中,请参阅通用代码和子代码,获取有关特定方案的详细信息。
调用自动化错误代码
| 回调事件 | Code | Subcode | Description | Mitigation |
|---|---|---|---|---|
| 呼叫创建失败 / 应答失败 | 404 | 8522 | 指示找不到资源的通用错误代码。 资源可以包括通话和参与者。 | 仔细检查通话状态:通话可能已结束,或者参与者已离开通话。 |
| 呼叫创建失败 / 应答失败 | 400 | 8523 | 一个通用错误代码,指示请求正文中的内容无效。 | 检查以确保所有参数都有效。 请参阅错误消息来确定哪个参数引发了错误。 |
| AnswerFailed | 400 | 8501 | 操作不支持的通话未建立 | 通话未处于活动状态时激活了与错误消息关联的操作。 确保在通话断开连接后不会启动新的通话操作。 如果通话接近通话断开连接的时间,则此错误也可能是由于通话处于活动状态时调用的操作。 |
| AnswerFailed | 400 | 8500 | 媒体模式无效 | 检查媒体操作的状态,查看其中任何一个操作是否已处于活动状态,或者目标参与者是否已在媒体操作中。 如果有活动的媒体操作,请等待操作完成,然后重试。 |
| CallDisconnected | 400 | 8559 | 操作不支持 仅允许一个拨号应用 | 重复的开始记录请求、已启动或正在进行录制。 仔细检查录制状态,以确保在提交新的开始记录通话之前处于非活动状态。 |
| AnswerFailed | 400 | 8528 | 操作不支持的通话终止 | 通话终止时激活了与错误消息关联的操作。 确保在通话终止后不会启动新的通话操作。 如果通话接近通话终止的时间,则此错误也可能是由于通话处于活动状态时调用的操作。 |
| 创建呼叫失败 / 连接失败 | 409 | 8519 | Conflict | 检查以确保未对同一资源并行执行多个操作。 请参阅错误消息,确定哪些两个操作存在冲突。 |
| CreateCallFailed | 403 | 7507 | 通话源标识无效 | 来自授权令牌的应用程序标识与通话源中的应用程序标识不匹配。 检查以确保使用 ACS 资源中的连接字符串,来电 Webhook 已在其中配置(电话号码必须由应答呼叫的同一 ACS 资源拥有)。 |
| CreateCallFailed | 403 | 7504 | 应用程序权限不足 | 用于权限不足的通用代码,检查有关资源缺少权限的上下文的错误消息。 |
| AnswerFailed | 400 | 8585 | 当前通话状态中操作无效 | 呼叫未建立或已断开连接:在重试媒体操作之前等待建立通话。 |
| CreateCallFailed | 405 | 8520 | 目前不支持的功能 | 预期错误:当前不支持工作流。 查看我们的发布博客,了解是否有启用了这些功能的更新 SDK。 有关不支持的工作流列表,请参阅“通话自动化已知限制”页。 |
| CreateCallFailed | 412 | 8583 | 前置条件失败 | 参考本页面,列出了不兼容的媒体操作,以确保你未运行或排队不兼容的操作。 |
| CreateCallFailed | 400 | 8567 | 未启用 ACS 资源服务主体 | Azure 认知服务资源未正确配置。 有关设置 Azure 认知服务资源的指南,请参阅本页。 |
| CreateCallFailed | 405 | 8522 | 缺少配置 | 检查错误消息,了解需要建立配置的更多上下文。 调用 AnswerCall API 时,需要执行此配置。 |
| CallDisconnected | 200 | 0 | 本地参与者成功结束通话。 | 不需要执行任何操作;通话按预期结束。 |
| CallDisconnected | 200 | 4521 | 参与者突然断开连接(例如,在未挂断的情况下关闭了应用、选项卡或浏览器)。 | 建议在客户端中使用正常挂起逻辑。 使用客户端日志验证应用是否被强制关闭。 |
| CallDisconnected | 200 | 5000 | 参与者已被另一个参与者移除。 | 检查用于移除操作的通话控制逻辑。 确认移除是否是有意的。 |
| CallDisconnected | 200 | 5010 | 通话已结束,因为只有一个参与者仍在。 | 这是预期的行为。 如果打算继续通话,请与多个参与者重新加入。 |
| CallDisconnected | 200 | 5013 | 通话已结束,因为没有其他人加入组通话。 | 检查参与者加入时间安排。 |
| CallDisconnected | 200 | 7000 | 通话被 Azure 通信服务通话自动化或服务器端机器人结束。 | 确认机器人逻辑是否触发了通话结束。 检查机器人实现和通话流。 |
| CallDisconnected | 200 | 7015 | 成功传输后,通话被服务结束。 | 不需要执行任何操作;通话被终止,这是预期传输行为的一部分。 |
| CallDisconnected | 487 | 0 | 由于呼叫方取消了呼叫,呼叫成功结束。 | 无需执行任何操作。 确保取消是有意的。 |
| CallDisconnected | 487 | 10003 | 另一终结点接受了通话(例如,另一个机器人应答了呼叫)。 确保机器人仅应答定向到它们的呼叫。 | 应用程序逻辑应检查终结点优先级或重新路由逻辑。 |
| CallDisconnected | 487 | 10024 | 所有被叫方终结点都拒绝了通话。 | 无需执行任何操作。 |
| CallDisconnected | 500 | 10045 | Azure 通信服务基础结构错误。 | 如果问题仍然存在,请捕获日志并联系支持人员。 |
| CallDisconnected | 503 | 560503 | 意外的服务器错误。 | 内部服务器错误,请收集日志并创建支持工单 |
| CreateCallFailed | 401 | 10009 | 未经身份验证的标识。 | 确保 Azure 通信服务令牌有效,具有作用域且未过期。 |
| CreateCallFailed | 403 | 510403 | 呼叫被标记为骚扰电话并被阻止。 | 检查外呼模式。 确保它符合反骚扰电话策略。 |
| CreateCallFailed | 403 | 560403 | 呼叫被禁止、取消或拒绝。 | 验证权限和目标用户状态。 |
| CreateCallFailed | 404 | 4500 | 呼叫 ID 不存在或呼叫已结束。 | 仔细检查呼叫 ID 和呼叫生命周期。 确保未引用过期的呼叫。 |
| CreateCallFailed | 480 | 10078 | 远程参与者未注册或不可访问。 | 确认被叫方的客户端应用正在运行且已注册。 如果需要,请稍后重试。 |
| CreateCallFailed | 480 | 560480 | 被叫方没有应答。 | 确认用户可用性。 |
| CreateCallFailed | 487 | 540487 | 呼叫被发起方取消。 | 无需执行任何操作。 验证源应用程序是否按预期取消了呼叫。 |
| ConnectFailed | 408 | 10057 | 在会议加入或呼叫接受期间超时。 | 验证参与者是否存在并验证客户端就绪情况。 |
| ConnectFailed | 429 | 10110 | 已超出最大呼叫持续时间。 | 查看呼叫持续时间策略。 请考虑根据需要安排重新连接。 |
| ConnectFailed | 480 | 10076 | 目标用户已注册但处于脱机状态。 | 目标必须联机。 确认应用状态或回退到语音邮件或异步消息。 |
| ConnectFailed | 484 | 560484 | 被叫方地址无效或不完整。 | 验证被叫方标识符(例如电话号码、ACS ID)。 更正并重试。 |
| AnswerFailed | 401 | 71005 | 应答呼叫时出现令牌验证错误。 | 确保 AnswerCall 请求具有有效的未过期令牌。 |
| AnswerFailed | 404 | 404 | 无法回答。 | 收集日志并创建支持工单 |
| AnswerFailed | 408 | 4506 | 超时 – 被叫方没有及时响应。 | 验证应用程序可用性和推送通知。 |
| AnswerFailed | 495 | 4507 | Azure 通信服务令牌无效。 | 检查令牌生成和作用域。 需要时重新生成令牌。 |
| AnswerFailed | 430 | 10315 | 无法将信令消息传送到客户端。 | 确保客户端应用可访问,并可以接收信令消息。 |
| AnswerFailed | 430 | 10317 | 客户端未确认信令请求。 | 请检查客户端应用响应能力。 需要时重启应用或设备。 |
| AnswerFailed | 480 | 10077 | 目标已注册但在呼叫时未联机。 | 确保被叫方具有活动会话,并且未处于后台/睡眠状态。 |
| AnswerFailed | 487 | 10004 | 超时 – 用户未及时接受或拒绝。 | 考虑添加回退路径或延长响铃持续时间。 |
| AnswerFailed | 487 | 4501 | 被拒绝,或媒体提供生成失败(例如终结点不匹配)。 | 验证媒体功能并确保参与者之间的兼容性。 |
| AnswerFailed | 490 | 4502 | 网络问题 – 浏览器未能完成请求。 | 验证客户端连接,并在网络设置中将 ACS 域加入允许列表。 |
| AnswerFailed | 496 | 7 | 网络连接丢失;重试失败。 | 记录并监视反复出现的连接断开,以便进一步分析。 |
通用错误代码
2xx 代码
2xx 代码表示成功的响应。 成功响应的子代码将为 0。
4xx 代码
4xx 代码表示客户端错误。
| 状态代码 | Description |
|---|---|
| 400 | 错误请求 |
| 401 | Unauthorized |
| 403 | Forbidden |
| 404 | 未找到 |
| 405 | 不允许使用该方法 |
| 406 | 不可接受 |
| 408 | 已超时 |
| 409 | Conflict |
| 412 | 不满足前提条件 |
| 413 | 请求实体太大 |
| 426 | 需要升级 |
| 429 | 请求过多 |
| 481 | 事务不存在 |
| 487 | Canceled |
5xx 代码
5xx 代码表示服务器错误。
| 状态代码 | Description |
|---|---|
| 500 | 内部服务器错误 |
| 501 | 未实现 |
| 502 | 网关错误 |
| 503 | 服务不可用 |
| 504 | 网关超时 |
6xx 代码
6xx 代码表示全局错误。
| 状态代码 | Description |
|---|---|
| 603 | Declined |
通用子代码
| Subcode | Description |
|---|---|
| 0 | Success |
| 7000 | Graceful |
| 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 | Conflict |
| 8520 | 未实现 |
| 8521 | 跃点过多 |
| 8522 | 未找到 |
| 8523 | 参数无效 |
| 8524 | 合规性记录的参与者计数无效 |
| 8525 | 非记录方 |
| 8526 | 联接令牌无效 |
| 8527 | 联接 URL 无效 |
| 8528 | 通话已终止 |
| 8529 | 已达到通话限制的每月限制 |
| 8530 | 已达到通话限制的活动通话限制 |
| 8531 | 接收的最大位数 |
| 8532 | 已达到输入的最大间隔时间 |
| 8533 | Dtmf 选项匹配 |
| 8534 | 输入的音调不正确 |
| 8535 | 文件格式无效 |
| 8536 | 文件下载失败 |
| 8537 | 已达到保持连接超时 |
| 8538 | 被叫方拒绝 |
| 8539 | 被叫方忙 |
| 8540 | 被叫方到处都忙 |
| 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 | 不支持听录自定义语音模型 |
| 8606 | 通信标识符创建失败 |
| 8607 | 传输操作冲突 |
| 8608 | 记录参与者客户端错误 |
| 8609 | 来自机器人的无效联接响应 |
| 8610 | 通知时没有来自机器人的响应 |
| 8613 | 已达到呼叫限制实时辅助字幕限制 |
| 9001 | 基础服务中的未知错误 |
| 9002 | 基础服务中的超时错误 |
| 9003 | 操作取消错误 |
| 9998 | 严重错误 |
| 9999 | Unknown |
回调事件中的 SIP 和 Q.850 诊断代码
通话自动化回调事件现在通过已添加到 对象的 SipDetails 和 Q850Details 字段支持低级别诊断数据ResultInformation。
这些诊断信息可呈现来自电信信令层的协议级见解,有助于排查 PSTN 与 SIP/VoIP 场景中的通话掉线、无法到达目标或意外拒绝等问题。
可用性
Note
是否存在 SipDetails 和 Q850Details 完全依赖于所涉及的 SBC 或电信运营商是否提供此信息。
如果会话边界控制 (SBC)/运营商在相应的通话自动化信令请求后返回相关诊断信息,则生成的事件会在 SipDiagnosticInfo 中包含 ResultInformation。
受影响的事件
以下事件可能会在 SipDiagnosticInfo 中包括 ResultInformation:
RemoveParticipantsFailedAddParticipantsFailedCreateCallFailedAnswerFailedCallDisconnectedTransferFailedCanAddParticipantFailed
实际上,当 SBC/运营商提供这些诊断信息时,任何包含 ResultInformation 的回调事件都可以携带这些信息。
结构
每个诊断信息都表示为一个对象:
| 资产 | 类型 | Description |
|---|---|---|
Code |
整数 | SIP 或 Q.850 代码(例如,486、16) |
Message |
String | 人类可读的原因(例如,“此处繁忙”) |
这些字段是可选的,仅在 SBC/运营商提供时才显示。
Example
{
"ResultInformation": {
"Code": 500,
"SubCode": 560503,
"Message": "Unexpected server error",
"SipDetails": {
"Code": 486,
"Message": "Busy Here"
},
"Q850Details": {
"Code": 17,
"Message": "User busy"
}
}
}
包含 ParticipantEndReason 的 PSTN 通话响应代码
本部分提供针对 ParticipantEndReason 和 ParticipantEndSubCode 响应代码的各种组合的故障排除信息。 对于本部分中的表,ParticipantEndReason = 代码和 ParticipantEndSubCode = 子代码。
作为一般准则,如果 ParticipantEndSubCode 值以 560 或 540 开头,则表示用户的 SBC 生成了响应代码。 这可用于排查直接路由调用问题,因为子代码可以帮助确定错误来自 SBC 还是 Microsoft 服务。 以 560 开头的子代码表示出站呼叫,而以 540 开头的子代码表示入站呼叫。 在任一情况下,检查 SBC 日志。
例如,如果 ParticipantEndSubCode 值为 560403,则表示它是出站调用,SBC 生成了最终响应代码,SBC 中的 SIP 响应代码为 403。 通过检查 SBC 日志开始对调用进行故障排除。
对于不以 560 或 540 开头的 ParticipantEndSubCode 响应,最终相应代码则是由 Microsoft 生成的。
ParticipantEndReason 0
响应 ParticipantEndReason 的值为 0 通常表示正常通话清除,会标记完成时无错误的通话。
| SubCode | Code | Message | 结果类别 | Advice |
|---|---|---|---|---|
| 0 | 0 | 本地参与者成功结束呼叫。 | Success | |
| 560000 | 0 | 正常 PSTN 通话结束: - 用户结束了呼叫。 - 媒体代理结束了通话。 |
Success | |
| 540000 | 0 | 正常 PSTN 通话结束: - 用户结束了呼叫。 - 媒体代理结束了通话。 |
Success |
ParticipantEndReason 4xx
响应 ParticipantEndReason 的值为 4xx 表示通话未接通。
| SubCode | Code | Message | 结果类别 | 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 可能会因为呼叫转移场景中缺少配置而导致这些失败。 |
|
| 540486 | 486 | 被叫号码正忙 | - 所呼叫的号码可能已连接至现有通话,或者存在技术问题。 - 对于直接路由通话,请检查 SBC 日志和设置以及超时配置。 |
|
| 560486 | 486 | 被叫号码正忙 | - 所呼叫的号码可能已连接至现有通话,或者存在技术问题。 - 对于直接路由通话,请检查 SBC 日志和设置以及超时配置。 |
|
| 540487 | 487 | 呼叫方终止了通话请求。 | 请重试通话。 | |
| 560487 | 497 | - 呼叫方终止了通话请求。 - 以正常通话清除的方式终止了请求。 |
请重试通话。 |
ParticipantEndReason 5xx
响应 ParticipantEndReason 的值为 5xx 表示由于完成连接所需的软件或硬件组件出现问题,导致通话失败。
| SubCode | Code | Message | 结果类别 | Advice |
|---|---|---|---|---|
| 560500 | 500 | 通话中涉及的服务之一发生了内部服务器错误。 | - 请重试通话。 如果问题仍然存在,请联系电信提供商或 Microsoft 支持部门。 - 对于直接路由通话,请检查 SBC 日志和设置以及超时配置,查看是否是 SBC 导致了失败。 |
|
| 560503 | 503 | - 通话失败是因为通话中涉及的服务之一发生了内部服务器错误。 - 用于建立通话的网络出现故障。 - 通话中涉及的服务之一出现了暂时故障。 |
- 请检查网络和路由配置是否存在问题。 验证网络防火墙规则是否正确。 - 请重试通话。 如果问题仍然存在,请联系电信提供商或 Microsoft 支持部门。 - 对于直接路由通话,请检查 SBC 日志和设置以及超时配置,查看是否是 SBC 导致了失败。 |
ParticipantEndReason 603
响应 ParticipantEndReason 的值为 603 表示通话被拒绝,未进行连接。
| SubCode | Code | Message | 结果类别 | Advice |
|---|---|---|---|---|
| 560603 | 603 | - 接收方拒绝通话。 - 由于检测到欺诈,通话被拒绝。 |
- 如果被接收方拒绝,请重试通话。 - 请确保没有超出 Azure 通信服务电话号码允许的最大并发通话数。 有关详细信息,请参阅 PSTN 通话限制。 |
聊天 SDK 错误代码
聊天 SDK 使用以下错误代码,你可以通过这些错误代码来排查聊天问题。 错误代码通过错误响应中的 error.code 属性公开。
| Code | Message | Advice |
|---|---|---|
| 401 | Unauthorized | 确保通信服务令牌有效且未过期。 |
| 403 | Forbidden | 确保请求的发起方有权访问该资源。 |
| 429 | 请求过多 | 确保客户端应用程序以用户友好的方式处理此方案。 如果此错误持续存在,请提交支持请求。 |
| 503 | 服务不可用 | 通过 Azure 门户提交支持请求。 |
SMS 错误代码
短信 SDK 使用以下错误代码,你可以通过这些错误代码来排查短信问题。 错误代码通过短信发送报告中的 DeliveryStatusDetails 字段公开。
| Code | Message | Advice |
|---|---|---|
| 2000 | 消息已成功发送。 | |
| 4000 | 因检测到欺诈,消息被拒绝。 | 请确保不超过你的号码所允许的最大消息数。 |
| 4001 | 因源/发送号码格式无效,消息被拒绝 | 请确保接收号码采用 E.164 格式,发送号码采用 E.164 或短代码格式。 |
| 4002 | 因目标/接收号码格式无效,消息被拒绝。 | 请确保接收号码采用 E.164 格式 |
| 4003 | 因目标不受支持,消息发送失败。 | 请检查尝试发送到的目标是否受支持。 |
| 4004 | 因目标/接收号码不存在,消息发送失败。 | 请确保要发送到的接收号码有效。 |
| 4005 | 消息被目标运营商阻止。 | |
| 4006 | 无法接通目标/接收号码。 | 请尝试稍后重新发送消息。 |
| 4007 | 目标/接收号码已选择不接收你的消息。 | 将目标/接收号码标记为已选择不接收,以便不再试图向该号码发送消息。 |
| 4008 | 已超出配置文件允许的最大消息数。 | 请确保不超过你的号码所允许的最大消息数,或使用队列对消息进行批处理。 |
| 4009 | 消息被 Microsoft 权利系统拒绝。 | 这最常发生在检测到欺诈活动的情况下。 请联系支持部门以了解更多详细信息。 |
| 4010 | 由于未验证免费号码,消息被阻止。 | 请查看未经验证的发送限制并尽快提交免费验证。 |
| 4020 | 由于体积违规,消息被运营商拒绝。 | 请确保不超过你的号码所允许的最大消息数,或使用队列对消息进行批处理。 |
| 5000 | 消息发送失败。 请联系 Microsoft 支持团队以了解更多详细信息。 | 通过 Azure 门户提交支持请求。 |
| 5001 | 因应用程序/系统暂时不可用,消息发送失败。 | |
| 5002 | 运营商不支持送达报告 | 这最常发生在运营商不支持送达报告的情况下。 由于消息可能已送达,因此不需要执行任何操作。 |
| 9999 | 因未知错误/故障,消息发送失败。 | 请尝试重新发送消息。 |