В Twilio, вы можете <Play>случайный аудиофайл из списка предоставленных URL-адресов для входящих звонков? - PullRequest
1 голос
/ 22 марта 2019

Использование Twilio для интерактивной художественной выставки, где вы звоните по номеру и слушаете аудио в галерее. Я хотел бы, чтобы входящие абоненты не всегда слышали одинаковые 20-30 секунд звука в начале аудиофайла. Можно ли предоставить 3-4 разных аудиофайла, и один из них случайным образом выбирается для воспроизведения при входящем звонке. Или даже рандомизировать время начала для одного аудиофайла тоже будет работать.

Я обыскал всех без особой удачи.

Код, который я использую для основной функции, приведен ниже.

<?xml version="1.0" encoding="UTF-8"?>
<Response>
  <Play> https://dl.dropboxusercontent.com/s/qt0l2zjrlssj3nv/CMCA-PHONE-01.mp3 </Play>
</Response>

1 Ответ

3 голосов
/ 22 марта 2019

Twilio евангелист здесь.

Нет встроенного способа сделать это, но вы определенно можете генерировать TwiML динамически и случайным образом выбирать URL-адрес для включения в глагол <Play>.

Если вы не в восторге от необходимости размещать все это самостоятельно, Функции Twilio дают вам возможность написать небольшой узел, который мог бы его сгенерировать.

Например, вы можете создать массив, содержащий n URL, а затем использовать Math.random, чтобы выбрать случайный элемент в этом массиве:

exports.handler = function(context, event, callback) {
  var items = [
    'http://www.example.com/1.mp3',
    'http://www.example.com/2.mp3',
    'http://www.example.com/3.mp3',
    'http://www.example.com/4.mp3'];

  var item = items[Math.floor(Math.random()*items.length)];

  var twiml = new Twilio.twiml.VoiceResponse()
  twiml.play(item);
  console.log(twiml.toString())
  callback(null, twiml);
};

Надеюсь, это поможет.

...