Twilio根据传入电话号码转发传入呼叫

Twilio根据传入电话号码转发传入呼叫,twilio,twilio-functions,Twilio,Twilio Functions,我最近把我家的固定电话号码转到了Twilio。现在,我创建了一个非常基本的呼叫转接TwiML Bin,将任何来电转接到这个以前的固定电话号码到我的手机: <Response> <Dial>mycellnumber</Dial> </Response> 菌丝数 我想做的是,根据呼入电话与联系人列表中的号码匹配的情况,将呼入电话转发到不同的手机,如果呼入号码不在联系人列表中,则进行默认转发 例如,如果来电来自Cell-X的联系人列表中的某个号码

我最近把我家的固定电话号码转到了Twilio。现在,我创建了一个非常基本的呼叫转接TwiML Bin,将任何来电转接到这个以前的固定电话号码到我的手机:

<Response>
 <Dial>mycellnumber</Dial>
</Response>

菌丝数
我想做的是,根据呼入电话与联系人列表中的号码匹配的情况,将呼入电话转发到不同的手机,如果呼入号码不在联系人列表中,则进行默认转发

例如,如果来电来自
Cell-X
的联系人列表中的某个号码,则将呼叫转接到
Cell-X
,否则如果在
Cell-Y
的联系人列表中转接到
Cell-Y
,则可能转到云语音邮件或其他号码

有没有一种方法可以在TwiML容器中或工作室中执行类似的操作,还是太复杂了?也许是任务路由器?这是住宅区,所以我希望它对来电者不可见,而不是像IVR解决方案那样,来电者会被提示为他们想要联系的人按一个号码


通过查看Twilio文档或搜索示例,我还没有找到一个具有这种逻辑的呼叫转移解决方案。请帮忙

您可以使用Twilio函数来实现这一点


假设您的Cell-X列表如下所示:

const cellXContactList=[“+17782001001”、“+17782001002”、“+17782001003”];
您的Cell-Y列表如下所示:

const cellYContactList=[“+17782001004”、“+17782001005”、“+17782001006”];
然后,您可以使用以下内容分发传入呼叫:

if(cellXContactList.length&&cellXContactList.indexOf(event.From)!=-1){
//在Cell-X联系人列表中找到呼叫者号码
destinationPhoneNumber=“+17781001001”;
}else if(cellYContactList.length&&cellYContactList.indexOf(event.From)!=-1){
//在Cell-Y联系人列表中找到呼叫者号码
destinationPhoneNumber=“+17781001002”;
}

以下是该功能的完整代码(替换为您的电话号码):

//根据传入的电话号码转接呼叫
exports.handler=函数(上下文、事件、回调){
//参考Twilio帮助程序库
const twiml=new Twilio.twiml.VoiceResponse();
//联系人列表
常数cellXContactList=[“+17782001001”、“+17782001002”、“+17782001003”];
const cellYContactList=[“+17782001004”、“+17782001005”、“+17782001006”];
//如果不在任何联系人列表中,请转发到此号码
让destinationPhoneNumber=“+17781001000”;
if(cellXContactList.length&&cellXContactList.indexOf(event.From)!=-1){
//在Cell-X联系人列表中找到呼叫者号码
destinationPhoneNumber=“+17781001001”;
}else if(cellYContactList.length&&cellYContactList.indexOf(event.From)!=-1){
//在Cell-Y联系人列表中找到呼叫者号码
destinationPhoneNumber=“+17781001002”;
}
twiml.dial({},destinationPhoneNumber);
//返回TwiML
回调(null,twiml);
};

您可以在Twilio控制台()中创建Twilio函数。从“空白”函数模板开始,然后替换为上面的代码


创建并发布函数后,您可以将Twilio号码配置为在“来电”时运行它。

谢谢!我最终找到了一种使用Studio实现这一点的方法,使用“基于拆分”小部件,并将电话号码添加到“如果匹配任何”条件中,然后转到“呼叫转移”小部件。但我会尝试一下,因为我更喜欢代码,而且应该更容易维护。