You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 02:50:51