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 - это привело к сбою всего потока и, таким образом, к завершению вызова без отправки отчета!