0

我们有一个 Twilio 会议设置,主要用户(主持人)能够从会议菜单对会议进行一些管理。要访问它,他们按 *。

这是在首次创建会议时设置的,如下所示(在 Functions 中):

exports.handler = function(context, event, callback) {

    let twiml = new Twilio.twiml.VoiceResponse();
    let twilio_call_id = event.twilio_call_id;

    twiml.dial({
        hangupOnStar: true,
        action: "https://" + context.DOMAIN_NAME + "/clientConferenceMenu",
        method: 'POST'
    }).conference(twilio_call_id, {
        startConferenceOnEnter: true,
        endConferenceOnExit: false,
        statusCallbackEvent: "join end leave hold",
        statusCallback: "https://" + context.DOMAIN_NAME + "/callStatus",
        record: "record_from_start",
        participantLabel: "Client"
    });
    return callback(null, twiml);
});

一旦用户进入会议菜单,他们可以使用特定选项返回会议 - 在这种情况下按 3(或说返回)。

如果他们按选项 3,如果尝试将他们添加回会议:

client.conferences(conference_id)
  .fetch()
  .then((conference) => {
    console.log("Conference: ", conference);
    twiml.dial({
      hangupOnStar: true,
      action: "https://" + context.DOMAIN_NAME + "/clientConferenceMenu",
      method: 'POST'
    }).conference(conference.friendlyName, {
      startConferenceOnEnter: true,
      endConferenceOnExit: false,
      statusCallbackEvent: "join end leave hold",
      statusCallback: "https://" + context.DOMAIN_NAME + "/callStatus",
      record: "record_from_start",
      participantLabel: "Client"
    });
    return callback(null, twiml);
  });

然而......它实际上所做的是创建一个具有相同名称但实际房间不同的新会议。我想我要么需要使用会议 SID 将它们添加回来,但我看不到这样做的方法,或者以某种方式将它们暂停。

感激地收到任何帮助:)

4

1 回答 1

0

Twilio 支持很好。

我原来的“重新加入” twiml:

twiml.dial({
    hangupOnStar: true,
    action: "https://" + context.DOMAIN_NAME + "/clientConferenceMenu",
    method: 'POST'
}).conference(twilio_call_id, {
    startConferenceOnEnter: true,
    endConferenceOnExit: false,
    statusCallbackEvent: "join end leave hold",
    statusCallback: "https://" + context.DOMAIN_NAME + "/callStatus",
    participantLabel: "Client"
});

他们的建议是去掉会议“选项”:

twiml.dial({
    hangupOnStar: true,
    action: "https://" + context.DOMAIN_NAME + "/clientConferenceMenu",
    method: 'POST'
}).conference(twilio_call_id);

那成功了!:)

于 2021-08-23T10:18:41.367 回答