Как использовать функцию Twilio, чтобы повторить сообщение?

Вот мой код

exports.handler = function(context, event, callback) {
  let twiml = new Twilio.twiml.VoiceResponse();
  twiml.gather({ numdigit:"1", tiemout:"5"}).say("some message , press 9 to repeat");

  if(event.numdigit === 9)
  {
      twiml.repeat;
  }
  else if(event.numdigit != 9){
      twiml.say("soory");
  }
  callback(null, twiml);
};

Я новичок в функциях Twilio. Я просмотрел документы, но ничего не могу найти по этому поводу.

Когда я звоню на номер "какое-то сообщение, нажмите 9, чтобы повторить", это сказано, но я хочу повторить сообщение, когда нажата цифра 9, и должно извиниться, когда нажата цифра, отличная от 9

В настоящее время, если я нажму цифру, отличную от 9, то воспроизводится то же сообщение. Если я нажимаю на какую-либо вещь, то она переходит в "извините"

Может кто-нибудь предложить решение

1 ответ

Решение

Twilio разработчик евангелист здесь.

Что может сбить с толку, так это то, что эта функция на самом деле вызывается дважды как часть вашего вызова.

<Gather> работает так: когда пользователь вводит цифру, Twilio делает новый HTTP-запрос с Digits параметр либо <Gather>action атрибут или по умолчанию тот же URL-адрес, что и текущий ответ. В вашем случае это означает, что он снова запросит ту же функцию Twilio.

Повторить TwiML нет, поэтому нам нужно повторить то же самое. Вот пример того, как этого добиться, возвращая тот же TwiML для первоначального запроса и для любого запроса, где Digits параметр не "9":

exports.handler = function(context, event, callback) {
  const message = "some message , press 9 to repeat";
  const gatherOptions = { numdigit:"1", tiemout:"5"};
  let twiml = new Twilio.twiml.VoiceResponse();

  if (event.Digits) {
    if(event.Digits === '9') {
      twiml.gather(gatherOptions).say(message);
    } else {
      twiml.say("sorry");
    }
  } else {
    twiml.gather(gatherOptions).say(message);
  }
  callback(null, twiml);
};

Дайте мне знать, если это поможет.

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