预警通知回调状态查询:跟踪每条通知的送达情况

调用接口返回 code=2,只代表平台受理了这条预警,不代表对方手机一定收到、电话一定听完。要真正跟踪每条通知的送达情况,必须依赖回调状态通知。本文介绍如何接收互亿无线的回调,并在业务侧落库跟踪。 回调状态里有哪些信息 短信和闪信的回调会告…

调用接口返回 code=2,只代表平台受理了这条预警,不代表对方手机一定收到、电话一定听完。要真正跟踪每条通知的送达情况,必须依赖回调状态通知。本文介绍如何接收互亿无线的回调,并在业务侧落库跟踪。

回调状态里有哪些信息

短信和闪信的回调会告诉你实际是送达成功还是失败、失败原因是什么;语音回调除了状态,还会带回通话时长——这一点对预警尤其重要,能判断值班人到底听没听完整条播报。所有回调都以 HTTP POST 形式推送到你在控制台配置的地址。发送时拿到的 smsid 就是后续把回调和原告警对上的钥匙。

接收回调的代码示例

下面用 Python Flask 写一个回调接收服务,把送达状态落库:

from flask import Flask, request
app = Flask(__name__)

@app.route("/callback", methods=["POST"])
def callback():
    data = request.form
    smsid = data.get("smsid")
    status = data.get("status")      # 送达状态
    reason = data.get("reason", "")
    duration = data.get("voice_duration", "")
    print("流水号%s 状态%s 原因%s 通话时长%s" % (smsid, status, reason, duration))
    # 这里把状态写入数据库或更新工单
    return "success"

if __name__ == "__main__":
    app.run(port=8080)

状态跟踪的落地要点

  • 发送时把 smsid 与业务告警 ID 一起入库,回调回来时按 smsid 反查并更新状态。
  • 语音通话时长为 0 秒通常意味着未接听,应触发升级策略,通知下一级值班人。
  • 回调接口要快速返回 success,避免平台重试;耗时操作放到异步队列。
  • 公网回调地址需确保 HTTPS 可达,并做好来源校验,防止伪造回调。

回调数据怎么用起来

除了单条跟踪,回调数据还能做聚合分析:按号码段统计短信送达率、按时段统计语音接通率、按值班人统计平均响应时长。把这些报表每周看一次,就能发现"某个运营商号码段总是失败""夜间某时段语音接通偏低"这类规律,再反过来调整通道权重与呼叫时段。

状态查询带来的闭环

有了回调,预警通知就形成了"发送—受理—送达—接听"的完整闭环。运维在复盘一次故障时,能清楚看到告警几点几分发出、几点几分送达、值班人通话了多少秒,而不是凭记忆争论"当时到底通知到没有"。

回调地址的部署要求

回调是平台主动推送到你的公网地址,所以这个地址必须稳定可达。建议部署在独立的小服务上,端口开放给平台,内部再转发到业务系统;接口收到后立即返回 success,真正的写库操作丢进异步队列,避免回调超时被平台重复推送。

用回调做升级判断

def on_callback(smsid, status, duration):
    update_ticket(smsid, status)
    if duration == "0" and is_voice(smsid):
        # 语音未接听,升级到下一级值班人
        escalate_next_oncall(smsid)
  • 语音通话时长为 0 秒通常代表未接听,应触发升级而不是干等。
  • 回调要校验来源,防止有人伪造送达状态污染统计。
  • 把回调数据按周聚合,能看出哪个通道、哪个时段触达偏低。

回调数据的日常用法

除了单次升级判断,回调数据还能用来做周报:本周发了多少条、送达率多少、语音接通率多少、哪类告警升级多。这些数字帮团队判断告警体系是否健康,而不是只在出故障时才关心它。

互亿无线通话时长可查,正是为这种闭环设计的。想搭建状态跟踪可以注册免费试用

立即开始,免费体验

新用户注册即送免费测试额度,3分钟快速接入,专属客服全程指导

免费试用 →