Twilio Task Router的"call"指令是否支持AMD(答录机检测)参数?
Twilio Task Router中实现答录机检测的方案
问题结论
Task Router的"call"指令不支持直接传入MachineDetection参数,你测试时未收到AnsweredBy字段、通话日志无该参数记录的情况是符合预期的——该参数不在call指令的官方支持范围内,Twilio会忽略这个传入的参数。
替代实现方式
方案1:先通过Twilio Calls API发起带检测的呼叫,再关联Task Router任务
- 跳过Task Router的"call"指令,直接调用Twilio Calls API发起外呼,请求参数中明确设置
MachineDetection为Enable或DetectMessageEnd,同时指定status_callback_url用于接收检测结果。 - 呼叫发起后,获取返回的Call SID,通过Task Router API将该Call SID关联到对应坐席的任务中,让坐席接入已发起的呼叫。
- 在Calls API的status回调中,根据
AnsweredBy字段值(human/machine等),执行后续逻辑(比如更新任务状态、通知坐席等)。
方案2:在call指令指向的TwiML中启用答录机检测
- 保留Task Router的"call"指令结构,修改
url参数指向的TwiML服务地址。 - 该TwiML服务返回的内容中,使用
<Dial>标签并添加machineDetection属性,示例TwiML代码:
<Response> <Dial machineDetection="Enable" statusCallback="http://example.com/detection_result"> <Client>你的坐席标识</Client> </Dial> </Response>
- Twilio在建立坐席通话时会自动执行答录机检测,结果会发送到
statusCallback指定的地址,你可在此回调中处理检测数据。
内容的提问来源于stack exchange,提问作者Gautam Kumar Samal
相关产品推荐
相关产品推荐

