Что ж, получается, что обнаружение машин AMD не является надежным вариантом.
Поэтому я выбрал альтернативы-амд , также известный как Проверка вызовов .
Это надежно.Шаги следующие:
- Вы должны создать все вызовы, которые будут добавлены в конференцию.
const Twilio = require('twilio');
const client = new Twilio(account_sid, authToken);
mobileArr.forEach(function(number,ind) {
client.calls
.create({
url: 'CallScreening call url',
from: user.twilioDetails.number,
to: number,
statusCallback: 'Your call status callback url',
statusCallbackMethod: 'POST',
statusCallbackEvent: ['initiated', 'ringing', 'answered', 'completed'],
Timeout: '15',
method: 'POST'
})
.then(call => {
console.log(call)
})
});
Тогда вам нужно использовать сбор в url: 'CallScreening call url'
const VoiceResponse = require('twilio').twiml.VoiceResponse;
exports.callScreeningWebhook = (req, res) => {
console.log('callScreeningWebhook');
console.log(req.body);
const twiml = new VoiceResponse();
const gather = twiml.gather({
input:'dtmf',
timeout: 20,
numDigits: 1,
action: twilioCallBackUrl+'gatherAction'
});
gather.say('Please enter any digits to join conference');
// Render the response as XML in reply to the webhook request
res.type('text/xml');
res.send(twiml.toString());
}
Затем добавьте все эти вызовы в конкретную конференцию, используя обратный вызов метода
Gather .
exports.gatherAction = (req, res) => {
console.log('gatherAction');
console.log(req.body);
const twiml = new VoiceResponse();
if (req.body.Digits) {
var input = parseInt(req.body.Digits)
console.log('HEllo',typeof input);
if (!isNaN(input)){
console.log('JoIN conference data');
twiml.say('You are being merged to conference');
const dial = twiml.dial();
dial.conference({
statusCallbackMethod: 'POST',
statusCallbackEvent: 'start end join leave',
statusCallback: twilioCallBackUrl+'twilioConferenceWebhook'
}, conference.title);
console.log(twiml.toString());
console.log('JoIN Complete')
res.type('text/xml');
res.send(twiml.toString());
}else{
console.log('input parsing error');
twiml.say('Invalid input, Please try again')
twiml.redirect(twilioCallBackUrl+'callScreeningWebhook');
res.type('text/xml');
res.send(twiml.toString());
}
}else{
console.log('no input');
twiml.say('No input, Please try again')
twiml.pause({length: 10});
twiml.redirect(twilioCallBackUrl+'gatherFailure');
res.type('text/xml');
res.send(twiml.toString());
}
}
Код для collectFailure выглядит следующим образом
exports.gatherFailure = (req, res) => {
console.log('gatherFailure');
console.log(req.body);
const twiml = new VoiceResponse();
twiml.hangup();
res.type('text/xml');
res.send(twiml.toString());
}
Таким образом, с помощью команды «Собрать кого-либо» можно определить, ответил человек на вызов или нет, и выполнить любое подходящее действие.
Один разЕще раз большое спасибо Philnash .