Twilio Studio/ Функции и конференц-связь

Я использую поток Studio для управления аутентификацией конечного пользователя, звонящего на наш номер, и, предполагая, что они проходят аутентификацию, они затем добавляются к конференц-вызову, однако, чтобы я мог установить различные параметры для начала конференц-связи, я m пытается инициировать функцию присоединения к конференции в функциях, вызываемых из Studio.

Итак, пример: конечный пользователь, если он подтвержден, и следующий шаг в потоке Studio вызывает функцию под названием «Начать вызов». Переменная, переданная в функцию запуска вызова, включает имя конференции.

       exports.handler = function(context, event, callback) {
  console.log('Function - /startCall');
  const conference_id = event.conference_id;

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

  twiml.say('Please wait while we dial you into the call.');
  twiml.dial().conference(conference_id);
  
  console.log('TWIML',twiml);
  
  return callback(null, twiml);
  };

Затем это возвращается обратно в Studio Flow, так что в качестве теста моя следующая часть - позвонить третьей стороне в тот же конференц-вызов, поэтому еще один запрос из потока к функции с именем conferenceOperator:

       exports.handler = function (context, event, callback) {
  console.log('Function - /conferenceOperator');
  
  const conference_id = event.conference_id;

  console.log('CONFERENCE',conference_id );
  
  const twilioClient = context.getTwilioClient();
  console.log(twilioClient.studio);
  twilioClient.studio.flows('FWxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx').executions.create({ 
    to: '+44xxxxxxxxxxxx', 
    from: '+44xxxxxxxxxx', 
    parameters: JSON.stringify({
      call_id: conference_id 
    })
  })
  .then(function(execution) { 
    console.log(execution.sid); 
    callback(null, execution.sid);        
  })
  .catch(error => {
    console.error(`problem with request: ${error.message}`);
    callback(error.message);
  });

Номер набирается и переводится в режим ожидания в ожидании начала конференции. Однако в момент запуска этого потока исходный входящий вызов отбрасывается. Глядя на журналы потока Studio, видно, что он все еще выполняется.

Итак, вопросы:

  • почему пропадает входящий звонок?
  • правильно ли я обрабатываю перевод входящего вызова на конференцию через функцию?
  • какие ошибки я пропустил?

Спасибо

1 ответ

Теперь я решил эту проблему - в другой части потока возникла странная ошибка, которая возвращала http-ошибку 500 - это привело к сбою всего потока и, таким образом, к завершению вызова без отправки отчета!

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