Конференция Twilio - возвращение после зависания при запуске

У нас есть настройка конференции Twilio, и главный пользователь (модератор) может частично управлять конференцией из меню конференции. Чтобы получить к нему доступ, они нажимают *.

Это устанавливается при первом создании конференции следующим образом (из функций):

      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, но я не вижу способа сделать это, либо как-то снять их с удержания.

Любая помощь с благодарностью получена :)

1 ответ

Поддержка Twilio пришла хорошо.

Мой оригинальный тимл "rejoin":

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

Это сработало! :)

Другие вопросы по тегам