定义
SMS Gateway(短信网关)是连接应用与运营商短信网络的中间层,负责将平台或客户系统的短信请求路由至运营商,并接收上行短信。在国际物联网云平台(ICMP)中,SMS Gateway 支持 A2P(Application-to-Person)短信、OTP(一次性密码)、2FA(双因素认证)等能力,与全球运营商对接实现跨境短信收发,支撑验证、告警、远程控制等场景。
工作原理
SMS Gateway 接收来自 ICMP 平台或客户系统的 API 请求,将短信内容、目标号码、发送方标识等封装为运营商协议格式,通过 SMPP、HTTP API 等接口提交至运营商。运营商完成投递后,通过回调或上行通道将状态、回复内容返回网关。跨境场景下,网关需与多国运营商或聚合商对接,支持不同国家的号码格式、编码与合规要求(如 A2P 注册、内容审核)。网关通常具备路由优化、重试、状态追踪等能力,提升送达率与可观测性。
应用场景
典型场景包括:设备激活与 OTP——通过短信下发验证码,完成 SIM 激活或 2FA 登录;告警通知——设备异常、Quota 告警、Suspension 等事件通过短信推送至运维人员;远程控制——通过短信下发指令,控制设备行为(如重启、配置更新);客户触达——Reseller 向终端客户发送订单确认、用量提醒等。与 A2P 合规配合,确保商业短信符合各地监管要求。
在 ICMP 中的实践
达希物联 ICMP 集成 SMS Gateway,支持全球短信收发。平台通过 RESTful API 或 SDK 提供短信发送能力,客户可触发 OTP、2FA、告警通知等。网关与多国运营商对接,支持 A2P 路由与合规。结合 Event Subscription,短信发送状态可回调至客户系统。跨境场景下,网关按目标国家选择最优路由,平衡成本与送达率,支撑全球物联网设备的验证与通信需求。
提交、路由与回执三段
短信网关把一条短信分成三段处理。平台提交的是内容、目标号码和发送方标识;网关按目标国家选择路由,交给运营商或聚合方;对方返回的可能是“已接受”“已送达”“失败”或长时间没有回执。这三段状态不能合并成一个成功标志。已接受只说明下游收下了请求,已送达才说明终端侧网络报告投递完成,用户是否阅读通常仍然不知道。物联网里的远程指令还要考虑设备是否支持短信承载、当前是否附着,网关本身不能让一台不在网的设备收到短信。
使用网关的条件,是目标国家的号码格式、编码、发送方标识和内容限制已经确认。验证码、告警和营销内容的路由与标识要求经常不同,不能共用一个未登记的发送方名称。重试要有上限和间隔,避免同一条指令被设备执行多次。谁可以调用发送接口,应由身份与访问管理限制到具体系统和动作。发送结果若要通知业务系统,应使用可核对的消息标识,并在审计记录中保存标识、时间和最终状态,不保存不必要的完整验证码。
受理成功被当成已经送达
容易出错的是接口返回提交成功后,就把一次性密码标记成用户已经收到,或把远程重启标记成设备已经执行。提交成功距离终端收到可能还要经过国际路由,失败回执会晚到。若业务不等待回执也不处理失败,用户没有收到验证码,系统却开始计算有效期。另一个错误是忽略发送方标识在目标国不可用,短信被过滤或显示成陌生号码,用户不敢回填。
编码错误会把非拉丁字符截断,指令只发出一半。长短信被拆成多段时,若只追踪第一段的回执,后面的段落失败也会被当成整条成功。短信网关的集成要分别处理提交、路由失败和送达回执,业务动作以约定的那一个状态为准,并且能用消息标识把回执对回原来的那一次发送。
长短信会被拆成多段。只跟踪第一段的回执,会把后面段落的失败当成整条成功。业务侧应以全部段落都送达作为整条送达,任一段失败就按失败处理,并允许按原消息标识重发整条,而不是只补最后一段。编码要在提交前确定,非拉丁字符被截断时,远程指令可能只剩下半条,设备无法执行。内容长度超过单条限制时,调用方应看到分段数量,而不是只看到一个提交成功。
发送方标识在不同国家的规则不同。有的国家要求事先登记字母标识,有的只允许数字。未登记的标识可能被改写或直接拒绝。验证码、告警和营销不要共用一个标识,否则接收方无法分辨用途,过滤规则也可能把验证码一起丢掉。路由选择要记录实际走的路径和返回的错误,方便更换路径后对比,而不是只保留最后一次尝试的结果。
送达回执晚到是正常现象。业务有效期若短于回执时间,应在发送前就决定:是等回执再开始计算验证码有效期,还是从提交时计算并接受部分用户来不及回填。远程指令则不能把提交成功当成设备已执行,设备是否动作要靠设备自己的回传或后续状态确认。短信网关负责把消息交给网络并报告投递状态,不负责证明业务已经完成。