Twilio Node.js - 在 statusCallback 中获取会议参与者详细信息
Twilio Node.js - Getting Conference Participant Details In statusCallback
我正在尝试更新呼叫以拨入会议,然后我想跟踪会议中有哪些 phone 号码。在更新呼叫之前我已经有了 phone 号码,所以我的计划是将它作为参数添加到 statusCallback,然后当有人加入时,我会知道哪个 phone 号码加入了(或剩下)。这是我用来将呼叫更新到会议中的 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'
}
所以你可以看到,没有额外的查询参数,实际上并没有任何识别信息。
我 运行 遇到的问题是,根据文档:
The statusCallback URL is set by the first Participant to join the conference, subsequent statusCallbacks will be ignored.
所以本质上我无法为我拨入会议的每个人动态设置 phoneNumber 参数,因为它总是反映第一个拨入会议的人的 phoneNumber 参数加入了。
我的问题是,我怎样才能获得关于谁加入或离开会议的某种识别信息?我的 twilio 布道者在哪里?谢谢!
这里是 Heyooo 开发者布道师。
有两种方法可以解决这个问题。
1。通过 CallSid
自己
保存呼叫信息
当您接到最初的 phone 电话并让其他人加入会议时,您可以做些什么来在您的终端保留电话信息(包括 phone 号码)并使用CallSid
稍后在收到 statusCallback
挂钩时引用它。这样,当 statusCallback
挂钩出现时,您可以使用可用的 CallSid
获得手头的所有信息。
2。收到statusCallback
时获取来电信息
虽然 statusCallback
挂钩不包含通话详细信息,但您始终可以做的是 to fetch the call information again by using the CallSid
。这样您就可以从 StatusCallbackEvent
获取信息,并在收到通话详细信息后将其与其他信息合并。
这两种方法各有利弊,但在您必须从 "somewhere".
获取呼叫信息的方式上是相似的
第一种方法需要你找到一种方法来持久化调用信息。这会给您的应用程序带来额外的开销。
第二种方法使您无需保留通话详细信息,但引入了额外的 API 请求。
一如既往——这取决于你的情况。我希望这有帮助。 :)
我正在尝试更新呼叫以拨入会议,然后我想跟踪会议中有哪些 phone 号码。在更新呼叫之前我已经有了 phone 号码,所以我的计划是将它作为参数添加到 statusCallback,然后当有人加入时,我会知道哪个 phone 号码加入了(或剩下)。这是我用来将呼叫更新到会议中的 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'
}
所以你可以看到,没有额外的查询参数,实际上并没有任何识别信息。
我 运行 遇到的问题是,根据文档:
The statusCallback URL is set by the first Participant to join the conference, subsequent statusCallbacks will be ignored.
所以本质上我无法为我拨入会议的每个人动态设置 phoneNumber 参数,因为它总是反映第一个拨入会议的人的 phoneNumber 参数加入了。
我的问题是,我怎样才能获得关于谁加入或离开会议的某种识别信息?我的 twilio 布道者在哪里?谢谢!
这里是 Heyooo 开发者布道师。
有两种方法可以解决这个问题。
1。通过 CallSid
自己
保存呼叫信息
当您接到最初的 phone 电话并让其他人加入会议时,您可以做些什么来在您的终端保留电话信息(包括 phone 号码)并使用CallSid
稍后在收到 statusCallback
挂钩时引用它。这样,当 statusCallback
挂钩出现时,您可以使用可用的 CallSid
获得手头的所有信息。
2。收到statusCallback
时获取来电信息
虽然 statusCallback
挂钩不包含通话详细信息,但您始终可以做的是 to fetch the call information again by using the CallSid
。这样您就可以从 StatusCallbackEvent
获取信息,并在收到通话详细信息后将其与其他信息合并。
这两种方法各有利弊,但在您必须从 "somewhere".
获取呼叫信息的方式上是相似的第一种方法需要你找到一种方法来持久化调用信息。这会给您的应用程序带来额外的开销。
第二种方法使您无需保留通话详细信息,但引入了额外的 API 请求。
一如既往——这取决于你的情况。我希望这有帮助。 :)