预警通知回调解析:如何接收发送状态与通话时长

提交预警通知后,code=2只代表受理成功。短信是否送达、语音电话是否被接听、通话时长多少,这些结果需要通过回调(推送通知)或主动查询来获取。理解回调机制,才能形成提交、送达、接听的完整闭环。本文介绍如何接收并解析互亿无线预警通知的回调数据…

提交预警通知后,code=2只代表受理成功。短信是否送达、语音电话是否被接听、通话时长多少,这些结果需要通过回调(推送通知)或主动查询来获取。理解回调机制,才能形成提交、送达、接听的完整闭环。本文介绍如何接收并解析互亿无线预警通知的回调数据。

为什么需要回调

告警通知的价值在于确认人真的收到了。尤其是语音预警,值班人员是否接听、听了几秒,直接关系到是否需要升级通知。回调就是把这些结果主动推送给业务方。

  • 短信回调:通知送达状态,成功或失败;
  • 语音回调:通知是否接听、通话时长;
  • 通过流水号smsid与提交时关联,定位到具体告警;
  • 通话时长为0通常表示未接听,需要触发重拨或升级。

回调接收服务端配置

在互亿无线控制台配置回调地址,服务端把状态数据POST到该URL。业务方需提供一个公网可访问的HTTP接口。

  1. 在控制台填写回调URL,例如https://yourdomain.com/notify/callback;
  2. 服务端接收POST参数,解析流水号与状态;
  3. 根据流水号关联到对应告警记录;
  4. 若语音未接听(通话时长为0),触发重拨或升级到上级;
  5. 返回固定响应告知服务端已接收。

回调解析代码示例(Python)

下面用一个简单的HTTP处理逻辑演示如何解析回调参数:

def handle_callback(params):
    smsid = params.get("smsid")        # 流水号
    status = params.get("status")       # 送达状态
    duration = params.get("voicetime")  # 通话时长(秒)
    if status == "成功":
        log.info(f"告警{smsid}已送达")
    if duration and int(duration) == 0:
        # 语音未接听,触发升级通知
        escalate(params.get("mobile"))
    return "success"

实际字段以控制台回调文档为准,建议在联调时先打印原始参数对照。

回调接入注意事项

  • 回调URL必须公网可达,且能快速返回,避免服务端重试堆积;
  • 用流水号做幂等处理,同一回调可能重复推送;
  • 语音通话时长为0时按升级策略处理,确保告警有人接;
  • 回调数据注意鉴权,不要暴露未验证的回调接口。

回调常见字段说明

服务端把发送状态POST到业务方配置的URL时,会携带一组字段。联调时建议先打印原始参数,再按业务需要提取。常见字段含义如下:

字段说明
smsid提交时返回的流水号,用于关联具体告警记录
mobile接收手机号
status短信送达状态或语音处理结果
voicetime语音通话时长,单位秒,为0通常表示未接听
receiptTime状态回调时间

回调接收的健壮性处理

回调可能重复推送,业务方必须用smsid做幂等处理,同一流水号的同一状态只处理一次。回调接口要在数秒内返回固定响应,否则服务端会按策略重试,造成重复通知。生产环境建议先把原始参数落库,再异步处理升级逻辑,避免阻塞回调响应。

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

@app.route("/notify/callback", methods=["POST"])
def callback():
    p = request.form
    smsid = p.get("smsid")
    status = p.get("status")
    duration = p.get("voicetime")
    if already_processed(smsid, status):   # 幂等
        return "success"
    mark_processed(smsid, status)
    if duration and int(duration) == 0:
        escalate(p.get("mobile"))          # 未接听,升级
    return "success"

回调接入常见问题

  • 回调URL必须公网可达,本地开发可用内网穿透工具临时联调;
  • 同一回调可能重复推送,务必按smsid幂等;
  • 回调接口不要做耗时操作,先响应再异步处理;
  • 建议对回调来源做校验,避免伪造请求触发升级通知。

完整字段以控制台回调文档为准。前往注册免费试用配置回调地址开始联调。

打通回调,预警通知才形成闭环。前往注册免费试用配置回调地址开始联调。

立即开始,免费体验

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

免费试用 →