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

排除 Azure 通信服务 PSTN 通话失败的故障

排查 Azure 通信服务 PSTN 通话失败问题时,建议启用日志记录。 然后,可以使用 ResultCategoriesParticipantEndReasonParticipantEndSubCode 值来确定单个通话结束的原因以及系统是否检测到任何故障。

使用 ResultCategories 排查失败问题

ResultCategories 数组是通话摘要日志架构的属性。 它包含描述通话结束方式的一般原因列表:

  • Success
  • Failure
  • UnexpectedClientError
  • UnexpectedServerError

此信息有助于确定通话结束,但未生成详细错误日志的原因。

使用 ParticipantEndReason 和 ParticipantEndSubCode 排查失败问题

如果在对 PSTN 通话进行故障排除时 ResultCategories 中的详细信息级别不够,则可以使用 ParticipantEndReasonParticipantEndSubCode 来更详细地了解通话结束的原因。 ParticipantEndReasonParticipantEndSubCode 也是通话摘要日志架构的属性。

ParticipantEndReason

ParticipantEndReason 是显示常规通话状态的三位数代码。 此代码解释了通话结束的原因,并按类别对失败进行分组。 例如,ParticipantEndReason 404 表示找不到呼叫方或被呼叫者。 ParticipantEndReason 500 表示发生服务错误。

此代码基于会话初始协议 (SIP) 响应代码。 有关详细信息,请参阅 Wikipedia 的 SIP 响应代码列表

ParticipantEndSubCode

ParticipantEndSubCode 是一个更具体的响应代码,长度通常为 6 位。 它更详细地解释了通话存在问题的原因。

排查 Azure 通信服务 PSTN 通话问题的关键因素在于确定呼叫的最终 SIP 响应代码是来自 Microsoft 进程还是来自用户/运营商的会话边界控制器 (SBC)。 确定代码来源的一个简单方法是查看 ParticipantEndSubCode 响应。

如果 ParticipantEndSubCode 值以 560 开头,则它指示用户/运营商的 SBC 生成了响应代码。 在这种情况下,应检查 SBC 配置。

例如,如果 ParticipantEndSubCode 值为 560403,则表示 SBC 生成了最终响应代码,并且代码为 403。 在这种情况下,应使用 SBC 日志开始对通话进行故障排除。

对于不以 560 开头的 ParticipantEndSubCode 响应,最终相应代码则是由 Microsoft 生成的。