twilio отклоняет входящие вызовы с помощью черного списка телефонных номеров - PullRequest
0 голосов
/ 04 февраля 2020

Прежде всего. Я сожалею, что Engli sh - мой второй язык, поэтому я прошу прощения за любые ошибки. Во-вторых. Я новичок с Twilio.

Заранее благодарю за всю вашу помощь.

У меня несколько телефонных номеров с Twilio, и я пытаюсь ввести черный список для всех мои номера телефонов. В настоящее время я использую функцию ниже индивидуально со всеми моими Twilio числами. Поэтому в идеале я хотел бы создать файл со всеми телефонными номерами, которые я хочу добавить в черный список, и я мог бы прочитать этот файл в функции, и мне не нужно записывать номера из черного списка в отдельных функциях.

exports.handler = function(context, event, callback) {
  // List all blocked phone numbers in quotes and E.164 formatting, separated by a comma
  let blacklist = event.blacklist || [ "blacklist numbers","XXXXXXXXXX","XXXXXXXXX" ];  
  let twiml = new Twilio.twiml.VoiceResponse();
  let blocked = true;
  if (blacklist.length > 0) {
    if (blacklist.indexOf(event.From) === -1) {
      blocked = false;
    }
  }
  if (blocked) {
    twiml.reject();
  }
  else {
  // if the caller's number is not blocked, redirect to your existing webhook
  twiml.redirect("XXXXXX");
  }
  callback(null, twiml);
};

Большое спасибо.

1 Ответ

1 голос
/ 05 февраля 2020

У вас может быть что-то вроде кода ниже. Затем вы должны загрузить черный список. json в свои активы Twilio в качестве частного актива. Код для чтения частного ресурса показан в документации Twilio, Чтение содержимого актива .

Формат черного списка. json - это просто массив JSON: [ "+14071234567", "+18021234567"]

const fs = require('fs');

exports.handler = function(context, event, callback) {
    let fileName = 'blacklist.json';
    let file = Runtime.getAssets()[fileName].path;
    let text = fs.readFileSync(file);
    let blacklist = JSON.parse(text);
    console.log(blacklist);

    let twiml = new Twilio.twiml.VoiceResponse();

    let blocked = true;
    if (blacklist.length > 0) {
        if (blacklist.indexOf(event.From) === -1) {
        blocked = false;
    }
  }
  if (blocked) {
    twiml.reject();
  }
  else {
  // if the caller's number is not blocked, redirect to your existing webhook
    twiml.redirect("XXXXXX");
  }
  callback(null, twiml);
};
...