如何获取Twilio Flex中StartOutboundCall创建的外呼Call Sid?
获取Twilio Flex中
StartOutboundCall创建的通话Call Sid的方法 这里有几种可靠且简便的方法来获取由StartOutboundCall生成的Call Sid,满足你后续管理录音的需求:
1. 监听afterStartOutboundCall事件
StartOutboundCall动作执行完成后会立即触发afterStartOutboundCall事件,其返回的payload中直接包含生成的Call Sid,无需等待任务创建或接受,是最直接的方式:
Flex.Actions.addListener('afterStartOutboundCall', (payload) => { const outboundCallSid = payload.callSid; // 可将Call Sid存储到全局变量或状态管理工具中,用于后续录音启停/删除操作 console.log('外呼通话Call Sid:', outboundCallSid); });
2. 监听任务属性更新事件
如果需要将Call Sid与Flex任务关联,可监听任务的updated事件,处理conference对象异步插入的情况:
Flex.TaskManager.addListener('taskUpdated', (task) => { const conferenceAttr = task.attributes.conference; if (conferenceAttr && conferenceAttr.participants) { // 筛选出外呼方向的通话记录 const outboundParticipant = conferenceAttr.participants.find(participant => participant.direction === 'outbound' ); if (outboundParticipant) { const callSid = outboundParticipant.callSid; console.log('从任务属性中获取的Call Sid:', callSid); } } });
3. 通过Flex Flow配置自动注入Call Sid
在Twilio控制台的Flex Flow设置中,修改任务路由的属性模板,添加call_sid字段并使用{{CallSid}}占位符,这样任务创建时会自动将Call Sid注入到任务属性中,后续直接从task.attributes.call_sid即可获取,无需额外代码开发。
注意事项
- 方法1优先推荐,适合需要在通话发起后立即控制录音的场景
- 方法2适合需要绑定任务上下文的场景,需处理异步更新的时序问题
- 方法3是配置层面的全局设置,适合所有外呼任务都需要携带Call Sid的需求
内容的提问来源于stack exchange,提问作者ege
相关产品推荐
相关产品推荐

