回调数据长什么样 当一通语音呼叫结束后,互亿无线平台会向开发者在控制台配置的地址推送一次回调,携带本次通话的呼叫状态、通话时长、接听时间等字段。业务方需要用一个 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 。