如何将Twilio虚拟黑名单Function接入Studio Flow实现呼入拦截
Twilio 虚拟黑名单接入Studio Flow配置指南
第一步:修正现有Function代码的语法错误
你当前提供的代码存在多余双引号的语法问题,先修正为以下内容:
exports.handler = function(context, event, callback) { // 所有拉黑号码使用E.164格式,用逗号分隔 let numberBlock = event.block || [ "+11234567896" ]; let twiml = new Twilio.twiml.VoiceResponse(); let blocked = true; if (numberBlock.length > 0) { if (numberBlock.indexOf(event.From) === -1) { blocked = false; } } if (blocked) { // 拉黑号码直接拒接 twiml.reject(); callback(null, twiml); } else { // 非拉黑号码返回状态给Studio走后续流程 callback(null, {blocked: false}); } };
注:原代码中的重定向逻辑可删除,直接在Studio Flow内根据Function返回结果走分支即可,避免出现循环调用问题。
第二步:Studio Flow 流内配置步骤
你当前规划的Trigger > 运行VirtualBlockList函数 > 后续呼入处理流程架构是正确的,按以下步骤配置即可:
- 拖动「Run Function」组件到画布,连接到Incoming Call触发器的出口
- 点击Run Function组件,在配置面板选择你已经部署完成的VirtualBlockList函数
- 可选配置:如果需要在流内动态传入拉黑号码列表,可以在Function Parameters区域添加参数,key填写
block,value填写你的E.164格式号码数组 - 连接Run Function组件的「Success」出口到「Split Based On...」组件,选择判断条件为
widgets.<你的Run Function组件名>.parsed.blocked- 当条件等于
true时,直接连接到「Hang Up」组件结束通话即可 - 当条件等于
false时,连接到你原本的后续呼入处理流程即可
- 当条件等于
- 保存并发布Studio Flow,将该Flow绑定为你的Twilio号码的呼入触发入口即可生效
配置参考截图

测试验证方法
- 使用拉黑列表内的号码拨打Twilio号码,会直接被拒接,不会进入后续流程
- 使用非拉黑号码拨打,会正常进入你配置的后续呼入处理流程
内容的提问来源于stack exchange,提问作者Tayla Belville
相关产品推荐
相关产品推荐

