跳至内容

如何解决通过 Amazon SNS 或 AWS 终端用户消息发送服务发送短信时出现的“Unknown error attempting to reach phone”错误?

1 分钟阅读
0

我的手机短信通过 Amazon Simple Notification Service (Amazon SNS) 或 AWS 终端用户消息发送服务发送失败。我在短信的 Amazon CloudWatch Logs 中收到“Unknown error attempting to reach phone”错误。

简短描述

由于多种原因,您可能会在短信的 CloudWatch Logs 中收到“Unknown error attempting to reach phone”错误。要启用并查看短信的 CloudWatch Logs,请参阅查看 CloudWatch Logs

要解决其他类型的短信错误消息,请参阅如何排查 Amazon SNS 中的手机短信 (SMS) 失败?

**重要事项:**短信的底层架构就是分散式的。最佳做法是避免对应用程序的短信传输可靠性和性能做出假设。有关详细信息,请参阅互联网工程任务组 (IETF) 的 RFC 5724

解决方法

排查常见问题

确认问题并非由以下原因导致:

  • 该电话号码被运营商作为垃圾短信拦截。
  • 目标号码被拦截。
  • 消息正文无效。
  • 该电话号码在请勿打扰 (DND) 列表中。
  • 手机处于漫游网络中。
  • 手机运营商拦截了此消息。
  • 手机阻止了短信接收。
  • 手机暂时不在服务区。
  • 手机已关机。
  • 号码是座机(不是手机)。
  • 消息正文中包含未注册的 URL。
  • 手机号码无效。
  • 对于给定数量或一组区域号码,下游合作伙伴的网络配置不正确。

查看短信最佳实践

确认您遵循目的地国家/地区或您发送短信所在的 AWS 区域的短信最佳实践、规则和法规。

确认所使用的发件身份正确无误。如果需要,请注册身份。有关详细信息,请参阅支持使用 AWS 终端用户消息发送 SMS 服务发送短信的国家/地区和区域

如果您向美国发送短信,请确保使用美国支持的发件号码

如果您使用美国的免费号码,请确保该电话号码已注册

如果您通过本地路由向印度发送短信,请在完成注册流程后指定实体 ID 和模板 ID 值。确保您指定的模板 ID 与您的短信模板完全匹配。

排查单台设备送达问题

设备级短信屏蔽、漫游、脱离服务区及其他因素都有可能导致单台设备送达问题。

完成以下步骤:

  1. 使用 Amazon Pinpoint API 验证电话号码。座机和 VoIP 电话号码可能会导致送达问题。
  2. 从另一台设备发送短信,然后检查消息是否送达。

如果这两个步骤均成功,请在其他设备上进行测试。

如果问题仍然存在,则设备所有者必须联系其移动运营商寻求支持。

排查多台设备送达问题

如果短信送达延迟问题影响多台设备,则可能是下游的聚合商、供应商、提供商和运营商存在问题。

要解决潜在的下游问题,请为您用于发送短信的服务创建支持案例

请在支持案例中提供以下信息:

  • 您用于发送短信的区域。
  • 问题开始发生时的时间戳。
  • 三条短信日志示例,其中包含不同电话号码三天之内的失败短信消息 ID。
  • (仅限印度)您的 DLT 注册实体 ID、模板 ID 以及用于发送短信的内容示例。

**注意:**移动运营商存储短信的时间可能不会超过 3 天。

重要事项: CloudWatch Logs 中的短信送达记录可能无法提供准确的短信送达时间。短信可能在您收到 CloudWatch Logs 之前就已送达。送达日志中的 dwellTimeMsUntilDeviceAck 值显示运营商在何时接受消息,但不提供有关延迟短信的信息。有关详细信息,请参阅查看 CloudWatch Logs

相关信息

How to manage global sending of SMS with AWS End User Messaging(如何使用 AWS 终端用户消息发送服务管理全球短信发送)

使用 CloudWatch 监控 Amazon SNS 主题

发送短信有哪些最佳实践?

AWS 官方已更新 5 个月前