多Twilio Flow通用来电黑名单拦截功能故障求助
多Twilio Flow通用来电黑名单拦截功能问题
我需要创建一个可用于多个Twilio Flow的来电黑名单拦截功能,为所有号码提供拦截服务,但实现过程中遇到了一系列问题:
- 参考Twilio官方文档实现时,非黑名单号码会被重定向至固定URL,无法返回对应号码所属的Flow
- 尝试Stack Overflow上的空对象返回方案后,黑名单号码仍能接入Flow并转至语音信箱,无法被直接拒接并返回“号码已停用”提示
初始实现代码
exports.handler = function(context, event, callback) { // List all blocked phone numbers in quotes and E.164 formatting, separated by a comma let numberBlock = event.block || [ "\+19709892022", "\+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 { // if the caller's number is not blocked, return an empty JavaScript object callback(null, {}); } };
初始Flow设置:将该函数作为来电触发后的第一步操作,后续连接至语音信箱分支。
修改后的代码与问题
按建议调整函数与Flow逻辑后,出现新问题:黑名单号码被错误导向“hello”分支而非“goodbye”分支。
修改后的代码:
exports.handler = function(context, event, callback) { // List all blocked phone numbers in quotes and E.164 formatting, separated by a comma let numberBlock =["\+17171234567"]; let blocked = true; if (numberBlock.length > 0) { if (numberBlock.indexOf(event.From) === -1) { blocked = false; } } if (blocked) { callback(null, "blocked"); } else { callback(null, "accepted"); } };
修改后的Flow设置:添加了函数返回值的分支判断,配置“accepted”对应“hello”分支,“blocked”对应“goodbye”分支。
内容的提问来源于stack exchange,提问作者user2765920
相关产品推荐
相关产品推荐

