我正在尝试更新呼叫以将其拨入会议的功能,然后我想跟踪会议中有哪些电话号码。在更新呼叫之前,我已经有了电话号码,因此我的计划是将其作为参数添加到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由参加会议的第一位参与者设置,后续的statusCallbacks将被忽略。
因此,从本质上讲,我无法为要拨入会议的每个人动态设置phoneNumber参数,因为它将始终反映出第一个加入会议的人的phoneNumber。
我的问题是,如何获得有关谁参加或退出会议的识别信息?我的twilio福音传教士在哪里?谢谢!
答案 0 :(得分:1)
Heyooo开发人员布道者在这里。 ?
有两种方法可以解决这个问题。
CallSid
保留通话信息当您收到初始电话并将您带入会议时,您可以执行以下操作以将通话信息(包括电话号码)保留在终端,并在以后使用CallSid
进行引用您会收到statusCallback
钩子。这样,当插入CallSid
钩子时,您将可以使用可用的statusCallback
掌握所有信息。
statusCallback
尽管statusCallback
挂接不包含呼叫详细信息,但您始终可以做的是to fetch the call information again by using the CallSid
。这样,您可以从StatusCallbackEvent
获取信息,并在收到呼叫详细信息后将其与其他信息合并。
两种方法都有优点和缺点,但是在必须从“某处”获取呼叫信息的方式上相似。
第一种方法需要您找到一种保留呼叫信息的方法。这在您的应用程序中带来了额外的开销。
第二种方法使您无需保留呼叫详细信息,但引入了额外的API请求。
一如既往-这取决于您的情况。希望对您有所帮助。 :)