【问题标题】:Twilio Conference - Rejoin after hanguponstartTwilio 会议 - hanguponstart 后重新加入
【发布时间】:2021-08-18 10:12:30
【问题描述】:

我们有一个 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 将它们添加回来,但我没有看到这样做的方法,或者以某种方式取消它们。

感谢您的帮助:)

【问题讨论】:

  • 只要会议还在与其他参与者一起运行,使用会议名称就应该加入同一个房间。您是否正在与其他参与者一起测试这个?
  • 我以为是这样...看起来需要另一张 Twilio 支持票:(
  • 是的,这很奇怪而且出乎意料。我很想知道这里的结果是什么!

标签: twilio twilio-functions twilio-conference


【解决方案1】:

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);

成功了! :)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多