Twilio Node.js-在statusCallback中获取会议参与者详细信息 [英] Twilio Node.js - Getting Conference Participant Details In statusCallback
问题描述
我正在尝试更新呼叫以将其拨入会议,然后我希望跟踪会议中有哪些电话号码。在更新呼叫之前,我已经有了电话号码,所以我的计划是将其作为参数添加到statusCallback中,这样当有人加入时,我就知道哪个电话号码已经加入(或离开)了。这是我用来将呼叫更新到会议中的Twiml。
let conferenceTwiml = function(conferenceName, phoneNumber) {
let voiceResponse = new VoiceResponse();
let options = {
startConferenceOnEnter: true,
endConferenceOnExit: false,
waitUrl: <myWaitUrl>,
statusCallbackEvent: "join leave",
statusCallback: <myStatusCallBackUrl> + '?phoneNumber=' + phoneNumber,
statusCallbackMethod:"POST",
};
voiceResponse.dial().conference(options, conferenceName);
return voiceResponse.toString();
}
发送到statusCallback的正文如下所示:
{
Coaching: 'false',
FriendlyName: 'Room 123',
SequenceNumber: '4',
ConferenceSid: 'CF1c7a162ba5d0587f390a0d7e7c6eb9a5',
EndConferenceOnExit: 'false',
CallSid: 'CA5244195567afec7327bb24d65a2d2b15',
StatusCallbackEvent: 'participant-join',
Timestamp: 'Wed, 17 Jul 2019 18:18:27 +0000',
StartConferenceOnEnter: 'true',
Hold: 'false',
AccountSid: <myAccountSid>,
Muted: 'false'
}
所以您可以看到,如果没有附加的查询参数,实际上没有任何标识信息。
我遇到的问题是,根据文档:
statusCallback URL由第一个加入会议的参与者设置,后续的statusCallback将被忽略。
因此,实际上我无法为拨入会议的每个人动态设置phoneNumber参数,因为它将始终反映第一个加入会议的人的phoneNumber。
我的问题是,我如何才能获得有关谁要加入或离开会议的某种识别信息?我的Twilio布道者在哪里?谢谢!
推荐答案
这里是Heyooo开发者布道者。👋
有两种方法可以解决此问题。
1.通过CallSid
自己持久化呼叫信息
当您收到最初的电话呼叫并将人员安排到会议中时,您可以做些什么来将呼叫信息(包括电话号码)持久保存在您那端,并在收到statusCallback
钩子时使用CallSid
稍后引用它。这样,当statusCallback
钩子进入时,您就可以使用可用的CallSid
获得手头的所有信息。
2.收到statusCallback
时获取呼叫信息
虽然statusCallback
钩子不包括调用详细信息,但您始终可以做的是to fetch the call information again by using the CallSid
。这样,您可以从StatusCallbackEvent
获取信息,并在收到呼叫详细信息后将其与其他信息合并。
这两种方法各有优缺点,但在您必须从"某处"获取呼叫信息的方式上是相似的。
第一种方法需要您找到一种持久化调用信息的方法。这会给您的应用程序带来额外的开销。
第二种方法使您无需保存调用详细信息,但会引入额外的API请求。
一如既往-这取决于您的情况。我希望这能帮上忙。:)
这篇关于Twilio Node.js-在statusCallback中获取会议参与者详细信息的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!