Это должно быть возможно с использованием комбинации службы обнаружения автоответчика Twilio и глагола <Play>
TwiML.
Вот пример кода совершения исходящего вызова с обнаружением автоответчика.
const accountSid = 'ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX';
const authToken = 'your_auth_token';
const client = require('twilio')(accountSid, authToken);
client.calls
.create({
machineDetection: 'Enable',
url: 'https://handler.twilio.com/twiml/EHXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX',
to: '+1562300000',
from: '+18180000000'
})
.then(call => console.log(call.sid))
.done();
Если в вашем вызове включена поддержка AMD, Twilio опубликует результат вызова в указанном вами веб-крюке.Этот веб-крючок получит параметр AnsweredBy
, который будет указывать на такие события, как machine_start
или machine_end_beep
.
Контроллер, который получает веб-крючок, должен ответить, используя глагол <Play>
TwiML, чтобы «нажать» правильныйкнопка. Вот пример кода того, как это может выглядеть (этот код не проверен):
const VoiceResponse = require('twilio').twiml.VoiceResponse;
app.post('/answering-machine-handler', function (req, res) {
const response = new VoiceResponse();
if (req.params.AnsweredBy === 'machine_start') {
response.play({
digits: 'wwww3'
});
} else {
// Handle other cases here.
}
res.send(response);
})
console.log(response.toString());