1

我正在尝试修改以下代码以执行耳语并要求接听的座席按 1。如果他们不接听或不按 1,则呼叫将转到语音信箱。我需要将它放在一个函数中,因为我无法从 Studio 调用 Twiml Bin。任何帮助将不胜感激。以下脚本的来源是https://github.com/philnash/useful-twilio-functions/tree/master/hunt

exports.handler = function(context, event, callback) {
  const numbers = context.PHONE_NUMBERS.split(',').map(number => number.trim());
  const response = new Twilio.twiml.VoiceResponse();
  if (event.DialCallStatus === 'complete') {
    // Call was answered and completed
    response.hangup();
  } else if (event.finished === 'true') {
    if (context.FINAL_URL) {
      response.redirect(context.FINAL_URL);
    } else {
      response.hangup();
    }
  } else {
    const numberToDial = event.nextNumber ? event.nextNumber : numbers[0];
    const currentNumberIndex = numbers.indexOf(numberToDial);
    let url;
    if (currentNumberIndex + 1 === numbers.length) {
      // No more numbers to call after this.
      url = '/hunt?finished=true';
    } else {
      const nextNumber = numbers[currentNumberIndex + 1];
      url = '/hunt?nextNumber=' + encodeURIComponent(nextNumber);
    }
    const dial = response.dial({ action: url });
    dial.number(numberToDial);
  }
  callback(null, response);
};
4

1 回答 1

1

Twilio 开发人员布道者(以及该仓库的所有者)在这里。

要执行耳语,您需要向指向返回 TwiML 的 URL 的属性添加您想要耳语的消息url<Number>

在上面的代码中,这意味着您需要更新该行:

dial.number(numberToDial);

到:

dial.number({ url: 'https://example.com/whisper' }, numberToDial);

然后,在该 URL 处,您需要返回嵌套在 a 中的消息,<Gather>以便您可以从应答者那里获得结果。这<Gather>将需要一个action属性设置为您将获得结果的 URL。您可以只使用 TwiML Bin 来执行此操作,结果应如下所示:

<Response>
  <Gather action="ACTION_URL" numDigits="1">
   <Say>You are receiving a call, please dial 1 to accept or anything else to reject</Say>
  </Gather>
</Response>

最后,您ACTION_URL需要再次指向一个函数,以便您可以处理结果。像这样的东西应该工作:

function handler(context, event, callback) {
  const response = new Twilio.twiml.VoiceResponse();
  if (event.Digits === '1') {
    response.say('Connecting you now');
  } else {
    response.hangup();
  }
  callback(null, response);
}

这将进行窃窃私语,但由于这是该功能的搜索的一部分,因此您需要提供在FINAL_URL搜索结束后将呼叫者带到语音信箱的选项。

让我知道这是否有帮助。

于 2018-07-27T18:55:35.507 回答