运维监控

使用 Python 解析语音通知回调数据完整示例

文章详情

回调数据长什么样 当一通语音呼叫结束后,互亿无线平台会向开发者在控制台配置的地址推送一次回调,携带本次通话的呼叫状态、通话时长、接听时间等字段。业务方需要用一个 HTTP 接口接收并解析这些数据,用于更新订单状态、触发后续流程或对账。本文用…

回调数据长什么样

当一通语音呼叫结束后,互亿无线平台会向开发者在控制台配置的地址推送一次回调,携带本次通话的呼叫状态、通话时长、接听时间等字段。业务方需要用一个 HTTP 接口接收并解析这些数据,用于更新订单状态、触发后续流程或对账。本文用 Python 给出一个完整可运行的接收示例。

接收与解析示例

下面基于 Flask 框架演示如何接收回调、解析字段并落库,真实项目中应把落库部分替换为自己的业务存储。

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

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

字段处理要点

  • 呼叫状态:判断本次外呼是否真正接通,未接通时 duration 通常为 0,可结合失败自动补呼决定是否再次外呼。
  • 通话时长:是按成功计费的依据,单位为秒,解析时注意转成整数并做默认值保护。
  • 接听时间:用于时序统计与对账,建议统一转为本地时间存储。

生产环境建议

回调接口必须在约定时间内返回成功应答,否则平台会按策略重试。建议接口具备幂等能力,依据 call_id 去重;日志完整记录原始报文便于排查;异常落库不能阻塞主流程。语音通知按成功计费、失败不计费,可据此与平台账单对账。发送接口与回调字段说明见 https://www.ihuyi.com/doc/voice/vm/api ,Python 调用代码示例见 https://www.ihuyi.com/doc/voice/vm/demo 。

立即开始使用语音通知 API

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