Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 如何在拨打twilio电话时获取会议Sid_Node.js_Twilio_Twilio Api - Fatal编程技术网

Node.js 如何在拨打twilio电话时获取会议Sid

Node.js 如何在拨打twilio电话时获取会议Sid,node.js,twilio,twilio-api,Node.js,Twilio,Twilio Api,我一直在使用twilio,使用Node.js,并在两个web端点之间拨打电话。一个是客户,另一个是代理。我用下面的代码拨号 function dialCall(calledNumber, url) { client.calls.create({ to: `client:${calledNumber}`, from: twilioNumber, url: url }) .then(call => cal

我一直在使用twilio,使用Node.js,并在两个web端点之间拨打电话。一个是客户,另一个是代理。我用下面的代码拨号

    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开发者福音传道者

在返回TwiML以创建会议时,还没有会议资源,因此无法在该阶段获取会议SID

正如您所描述的,您可以使用会议资源,通过您给它起的名字来访问它。但是,您不能在返回TwiML时列出会议,因为那时还没有创建会议


我建议您使用
TwiML设置一个URL,以便在会议开始时回调,而不是设置一个可能不稳定的超时。在该回调的参数中,您将获得
ConferenceSid

,感谢您的建议。