IOSOR 知识库

DID 上的入站 Webhook 路由:无所有者的 MO 将导致 STOP 丢失

安全地将入站 Webhook 路由至所属账户。在白标预付费 CPaaS 中防止孤儿 MO 事件和遗漏退订。

DID 入站流量路由的运作机制

当终端用户向已配置的 E.164 号码发送 SMS 时,运营商网络会将有效负载传送到我们的网关。在多租户白标 CPaaS 中,每个传入的移动发起(MO)消息必须立即解析到特定的子账户所有者。此过程依赖于一个动态的路由表,该表将 DID 映射到租户 ID。如果路由失败,例如由于映射条目缺失、过期或配置错误,有效负载就会变成孤儿 MO。在没有明确所有者的情况下,诸如 STOP、UNSUB 或 CANCEL 之类的关键消费者命令将被静默丢弃,从而破坏合规性、导致客户流失并引发监管投诉。平台必须维护一个准确的 DID 所有权查找机制,以确保所有入站流量都能正确归属。

防止孤儿 MO 和丢失停止命令

未分配的 MO 是一个无声的隐患,可能导致严重的合规性问题。如果入站 SMS 包含诸如 STOP 或 CANCEL 之类的关键字,但系统无法识别租户映射,退订处理就会失败。这意味着订阅者违背意愿地保持活跃状态,这不仅违反了通信偏好,还可能导致客户流失和运营商惩罚。为了维护运营商的信任和平台的声誉,我们的网关在将 MO 消息转发到租户的 Webhook 端点之前,会对每个入站 Webhook 执行严格的验证检查。如果目标 DID 缺乏有效的订阅、有效的路由表条目或所有权映射,网关将无法正常处理该消息,并会将其路由到死信队列,同时触发告警,而不是静默丢弃。

钱包安全与阈值保护机制

大容量流量需要强大的财务控制来防止滥用和确保服务的可持续性。我们的基础架构对租户创建强制执行严格的 USD 20 预付费底线,确保没有任何入站或出站管道在没有资金储备的情况下运行。此外,一个自动化的风险引擎会在总消费接近 USD 1,000/月或消息速率异常升高时触发软审查。此引擎会监控账户余额和流量模式,以识别潜在的欺诈活动或意外的流量高峰。当触发审查时,平台可能会暂时限制出站消息发送或要求进行账户充值,以保护平台免受意外流量高峰的影响,并确保 Webhook 投递端点是合法的且有能力处理流量。

Webhook 分发与消费者运维

交付高吞吐量的 HTTP 有效负载需要弹性的重试策略和严格的端点隔离。在将入站 SMS 路由到租户服务器时,不良的消费者做法可能会压垮您的基础设施。正确的 大流量下的 Webhook 消费者运维 原则规定,接收服务器必须快速返回 2xx 状态码(例如 200 OK 或 202 Accepted),同时将繁重的解析工作卸载给后台工作线程。如果您的端点在规定的超时时间内未能响应或返回非 2xx 状态码,网关将根据预定义的指数退避策略进行重试。此外,平台支持通过 DLR(Delivery Report)和 Webhook 来通知发送状态,包括成功送达、失败或正在重试。为了进一步增强稳定性,我们实施了“安静时间”功能,允许租户在特定时段(例如夜间)限制接收非紧急消息,以防止对运营造成干扰。

处理抑制列表与合规性

在消息业务中,合规性是不容妥协的。当成功处理入站 STOP 命令时,平台会记录退订事件,并将该号码标记到与特定租户关联的抑制列表中。这可以防止未来向已撤销同意的号码发送任何出站消息,从而确保遵守所有相关的法规和用户偏好。有关管理退订和抑制列表的更多操作详情,请查阅我们的 呼入 MO 自动进入黑名单机制:DID 上的 STOP 指令保护发送声誉 指南。适当的抑制处理可确保您的白标品牌保持完全合规,并避免因发送未经请求的消息而产生的罚款或声誉损害。平台还支持通过 Webhook 接收 DLR,以便实时了解消息的送达状态,包括因抑制列表而被阻止的情况。

开启 IOSOR 以实现强大路由

在入站流量到达之前,必须将每个目的 DID 明确映射到一个租户账户。如果某个 DID 未能成功映射到任何租户,该入站消息将被路由到死信队列,并触发告警通知相关管理员。平台严禁静默丢弃任何入站消息。如果消费者(租户)未能为接收到的消息(尤其是 STOP 指令)返回正确的 2xx 状态码,或者返回了错误的租户响应,这将被视为路由或处理失败,并可能导致消息被重新排队或发送到死信队列。IOSOR(Inbound Outbound Sender Ownership Routing)的核心在于准确的所有权查找,而不是直接写入抑制名单本身,也不是对 E.164 号码进行简单的清洗或验证。它确保了消息的来源和去向都清晰可控。

IOSOR 要点

入站路由的核心是确定消息的接收者(即 DID 的所有者)。没有明确的所有者,就无法正确处理消息,特别是像 STOP 这样的指令,这些指令需要更新与特定租户相关的抑制名单。平台必须确保每个 DID 都与一个活跃的租户账户相关联。对于无法映射的 DID,应将其发送到死信队列并发出告警,而不是静默丢弃。消费者(租户)必须通过返回 2xx 状态码来确认成功接收消息,否则将触发重试或进入死信处理。IOSOR 确保了消息在整个生命周期中的可追踪性和可控性,是实现合规和可靠通信的关键。

这篇指南有帮助吗?

相关指南