如何解决发送短信时,在 Amazon SNS 中收到“尝试联系手机时出现未知错误”错误提醒或在 Amazon Pinpoint 收到“未知”错误提醒?

1 分钟阅读
0

无法通过 Amazon Simple Notification Service (Amazon SNS) 或 Amazon Pinpoint 发送手机短信。然后,我在 Amazon SNS 或 Amazon Pinpoint 中收到错误短信,提醒“尝试联系手机时出现未知错误”。

简短描述

短信通过第三方下游聚合商、短信供应商和移动运营商传送给移动设备。也就是说,当您使用 Amazon SNS、Amazon Pinpoint 或任何与 Amazon SNS 或 Amazon Pinpoint 集成的 AWS 服务时,当这些下游合作伙伴无法访问移动设备时,您会收到“尝试联系手机时出现未知错误”错误提醒。
**重要事项:**短信的底层架构就是分散式的。最好不要对应用程序的短信传输可靠性和性能做出假设。请参阅互联网工程任务组 (IETF) 的 RFC 5724,了解更多信息。

解决方法

根据自身用例执行以下故障排除步骤。

排查常见问题

排除与 Amazon SNS 或 Amazon Pinpoint 不相关的常见问题。
您可能会由于以下原因收到此错误提醒:

  • 运营商将该电话号码当作骚扰号码屏蔽。
  • 目的地已被封锁。
  • 短信正文无效。
  • 手机号码在请勿打扰 (DND) 列表中。
  • 手机处于漫游网络中。
  • 手机运营商屏蔽了这条消息。
  • 手机屏蔽了短信。
  • 手机暂时不在服务区。
  • 手机已关机。
  • 号码是座机(不是手机)。
  • 消息正文包含未注册的 URL。
  • 手机号码无效。
  • 对于给定数量或一组区域号码,下游合作伙伴的网络配置不正确。

查看短信最佳实践

确认您遵循目的地国家/地区或您发送短信所在的 AWS 区域的短信最佳实践、规则和法规。
确认您使用的是正确的始发身份。如果需要,必须注册身份。有关详细信息,请参阅支持的国家和地区(短信渠道)
如果向美国发送短信,请确保使用美国支持的始发号码
如果使用的是美国的免费号码,请确保该电话号码已注册
如果您使用本地路由向印度发送短信,请先预注册您的专用字母发件人 ID。然后,使用 DLT 注册模板。向短信添加内容时,请确保与 DLT 注册模板中的内容完全匹配。有关详细信息,请参阅印度的发件人 ID 注册要求

排查单台设备传送问题

设备级短信屏蔽、漫游、脱离服务区及其他因素都有可能导致单台设备传送问题。
要排查这些问题,请执行以下操作:

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

如果这两个步骤都成功,则可以考虑在其他设备上进行测试。
如果问题仍然存在,则设备所有者必须联系其移动运营商寻求支持。

排查多台设备传送问题

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

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

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

**注意:**移动运营商存储短信的时间可能不会超过三天。
重要事项: Amazon CloudWatch Logs 的短信传输不一定能始终提供准确的短信传输时间。某些情况下,短信在收到 CloudWatch Logs 之前便送达。传输日志中的 dwellTimeMsUntilDeviceAck 值显示运营商在何时接受消息,但不提供有关延迟短信的信息。有关详细信息,请参阅查看短信传输的 CloudWatch 指标和日志

相关信息

如何使用 Amazon Pinpoint 管理短信的全局发送
使用 CloudWatch 监控 Amazon SNS 主题