运维监控

语音通知回调接口解析:如何接收通话状态与时长回传

文章详情

为什么需要回调 调用语音通知发送接口 https://api.ihuyi.com/voice/vm 后,code=2 只代表任务被受理,外呼是否真正接通、用户是否接听、通话持续多久,都需要通过回调异步回传。互亿无线支持两种方式获取呼叫结果:…

为什么需要回调

调用语音通知发送接口 https://api.ihuyi.com/voice/vm 后,code=2 只代表任务被受理,外呼是否真正接通、用户是否接听、通话持续多久,都需要通过回调异步回传。互亿无线支持两种方式获取呼叫结果:主动调用状态查询接口,或在控制台配置回调地址,由平台在呼叫结束后主动推送。

回调推送的字段

当一通呼叫结束后,平台会向开发者预先配置的 HTTP 地址发送 POST 请求,携带本次通话的关键信息。业务方需在服务端实现接收接口并返回成功应答。

  • 呼叫状态:标识本次外呼最终结果,如接通、未接通、对方忙、无应答、空号,业务方可据此判断是否补呼。
  • 通话时长:用户实际接听后的通话秒数,是按成功计费的依据;未接通时通常为 0。
  • 接听时间:用户摘机接听的时间戳,便于时序分析与对账。

服务端接收示例

下面用一段 Python 伪代码说明接收回调的最小结构,真实项目中应把解析结果落库并对重复推送做幂等处理。

@app.route("/voice/callback", methods=["POST"])
def cb():
    s = request.form.get("status")      # 呼叫状态
    d = request.form.get("duration")     # 通话时长(秒)
    t = request.form.get("answer_time")  # 接听时间
    save(request.form.get("callid"), s, d, t)
    return "SUCCESS"

注意事项

回调接口须在约定时间内返回成功应答,否则平台会按策略重试。生产环境建议接口具备幂等能力、日志完整、失败可重放。对重要告警可结合失败自动补呼,振铃 60 秒未接按自定义次数与间隔再次呼叫。字段明细以 https://www.ihuyi.com/doc/voice/vm/api 为准。

立即开始使用语音通知 API

注册送10条调试额度 · 3分钟快速接入 · 免费技术支持