拨打twilio call时如何获取Conference Sid

How to get Conference Sid at the time of dialing twilio call

我一直在使用 twilio,使用 Node.js,并在两个网络端点之间拨打电话。一个是客户,另一个是代理。我正在使用以下代码拨打电话。

    function dialCall(calledNumber, url) {

    client.calls.create({
        to: `client:${calledNumber}`,
        from: twilioNumber,
        url: url
      })
      .then(call => call.sid));
}

我正在使用以下 twiml 建立呼叫。

 const generateTwiml = (conferenceName) => {
      let twimlResponse = new VoiceResponse();
  twimlResponse.say(`Welcome to unity dialer.`, {
    voice: 'alice',
  });
  const dial = twimlResponse.dial({
    timeLimit: '600',
  });
  dial.conference({
  startConferenceOnEnter: true,
  endConferenceOnExit: true
}, "Test Room");
  return twimlResponse.toString();
};

我已经成功地呼叫了代理和客户,并获得了两个呼叫的 callSid。但是,我的问题是此时我还想获得会议 Sid 以及作为会议拨打电话。获得它的方法是什么。根据文档,有一种使用会议名称和状态获取会议的方法。但是,如果我使用它一段时间,由于竞争条件不会返回相同的,我必须为相同的任意延迟实现设置超时功能。我一直在得到结果,但是否有任何其他解决方案可用于该结果。

这里是 Twilio 开发人员布道者。

当时您 return 创建会议的 TwiML 还没有会议资源,因此在那个阶段无法获取会议 SID。

正如您所描述的,您可以通过您提供的名称list conferences and filter使用会议资源。但是,您无法在 return TwiML 时列出会议,因为那时还没有创建该会议。

我建议您使用 <Conference> TwiML 的 statusCallback attribute 来设置 URL 以在会议开始时回调,而不是设置超时,这可能会不稳定。在该回调的参数中,您将获得 ConferenceSid.