录制完成时Twilio未触发RecordingStatusCallback回调请求问题
Twilio录制状态回调未触发问题
Twilio通话日志显示已成功接收RecordingStatusCallback相关请求参数,但录制完成后,系统从未向指定的端点URL发起POST请求。我试过用自有服务器和公开模拟端点,结果都一样。
Twilio接收到的请求参数:
POST Request URL https://api.twilio.com/2010-04-01/Accounts/AC9ef59c28fad/Calls.json ParametersShow Raw Transcribe "false" Method "POST" RecordingStatusCallbackEvent "completed" RecordingStatusCallbackMethod "POST" RecordingStatusCallback "https://back.theurl.org/recording_status_callback" AccountSid "AC9939959c28fad" Twiml "<Response><Redirect method=\"POST\">https://back.theurl.org/call_amd_handle</Redirect></Response>" StatusCallbackMethod "POST" AsyncAmd "false"
创建呼叫的Python代码:
call = client_twilio.calls.create( twiml=f'<Response><Redirect method="POST">https://back.theurl.org/call_amd_handle</Redirect></Response>', machine_detection="Enable", to=call_input.call_to, from_=call_input.call_from, recording_status_callback='https://back.theurl.org/recording_status_callback', recording_status_callback_event='completed' )
排查方向:
- 检查录音是否实际启动:当前初始Twiml只是重定向到
call_amd_handle,需要确认该端点返回的Twiml中是否包含<Record>指令。如果通话全程没有启动录音操作,Twilio自然不会触发录制状态回调。 - 验证通话是否生成录音:登录Twilio控制台,查看对应通话的详情,确认是否存在关联的录音条目。无录音则无回调。
- 检查端点可用性:确保回调端点公网可访问,且能正确接收POST请求并返回200 OK响应。可以用
curl模拟请求测试:curl -X POST https://back.theurl.org/recording_status_callback - 查看Twilio错误日志:在Twilio控制台的「监控 > 调试工具 > 事件日志」中,搜索对应通话的SID,检查是否有回调发送失败的记录(如超时、SSL证书错误等)。
- 确认参数优先级:如果重定向后的Twiml流程中设置了其他录音相关参数,可能会覆盖创建呼叫时的
RecordingStatusCallback设置,需排查后续流程的配置。
内容的提问来源于stack exchange,提问作者kielerrr
相关产品推荐
相关产品推荐

