Menu

Expand
Rate this page:

Thanks for rating this page!

We are always striving to improve our documentation quality, and your feedback is valuable to us. How could this documentation serve you better?

Prevent Blocked Numbers from Calling Your Application

Prevent blocked numbers from calling your application. This application would require you to upload a private asset.

// Description
// Prevent blocked numbers from calling your application
// Host blocklist.json as a private Twilio asset

const fs = require('fs');

exports.handler = function (context, event, callback) {
  let twiml = new Twilio.twiml.VoiceResponse();

  // Phone numbers in blocklist.json file are rejected
  // blocklist.json is uploaded to Twilio Assets as a private asset
  // Format of blocklist.json is plain text:
  // ["+14075550100", "+18025550100"]

  let fileName = '/blocklist.json';
  let file = Runtime.getAssets()[fileName].path;
  let text = fs.readFileSync(file);
  let blocklist = JSON.parse(text);
  let blocked = true;

  if (blocklist.length > 0) {
    if (blocklist.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('https://demo.twilio.com/welcome/voice/');
  }

  return callback(null, twiml);
};
Rate this page:

Need some help?

We all do sometimes; code is hard. Get help now from our support team, or lean on the wisdom of the crowd browsing the Twilio tag on Stack Overflow.