配置FindMe / Hunt功能

时间:2019-05-30 16:19:34

标签: twilio

我一直在尝试使用功能配置FindMe Twimlet,以便我可以在基本twimlet上为此添加更多功能。创建功能并将功能设置为要使用的号码时,拨打该号码时会出现错误。这就是我所拥有的,这还会阻止电话转到语音信箱吗?

我仍然需要使用TwiML Bin吗?还是应该立即使用此功能?

 const context = {
  PHONE_NUMBERS: '+1xxxxxx,+1xxxxxx'
};

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);
};

2 个答案:

答案 0 :(得分:0)

Twilio开发人员传播者Phil Nash已经编写了一个功能来执行类似的操作,您可以在下面的代码中找到链接。这不会阻止呼叫转到语音邮件,因此,您需要实现其他逻辑,最可靠的是此处{@ 3}中讨论的人体检测。

https://support.twilio.com/hc/en-us/articles/223132567-Can-Twilio-tell-whether-a-call-was-answered-by-a-human-or-machine-#alternatives-to-amd

答案 1 :(得分:0)

这里是Twilio开发人员的传播者。

我认为这里的问题是您试图在处理程序外部的函数中设置PHONE_NUMBERS的列表。

context是一个由Twilio运行时传递给处理程序函数的参数。该对象由config area for functions中设置的环境变量填充。

我会将您的PHONE_NUMBERS列表设置为environment variable,然后重试。