咨询Twilio DID号码是否支持呼入CNAM及传递至SIP分机
Twilio呼入CNAM功能及SIP分机传递方案
Twilio确实支持呼入来电的CNAM功能,针对开启该功能的号码,每条呼入CNAM查询收费0.01美元,和你了解的一致。
要将CNAM信息传递到SIP分机,你需要通过带逻辑处理的Webhook(推荐用Twilio Function)实现,TWIML BIN因为不支持动态代码逻辑,无法直接完成CNAM查询与传递。具体步骤如下:
- 第一步:在Twilio控制台找到你的目标号码,开启「CNAM Lookup」功能(号码设置的「Voice & Fax」板块下)。
- 第二步:创建Twilio Function,编写代码完成CNAM查询并通过自定义头传递给SIP分机:
exports.handler = function(context, event, callback) { const twiml = new Twilio.twiml.VoiceResponse(); const client = context.getTwilioClient(); // 查询来电号码的CNAM信息 client.lookups.v1.phoneNumbers(event.From) .fetch({type: ['caller-name']}) .then(phoneNumber => { const callerName = phoneNumber.callerName?.callerName || 'Unknown'; // 生成SIP转接指令,添加自定义X-CNAM头 const sip = twiml.sip({ headers: {'X-CNAM': callerName} }); sip.send('sip:你的SIP分机号@你的SIP域名.com'); callback(null, twiml); }) .catch(() => { // 查询失败时默认传递Unknown const sip = twiml.sip({ headers: {'X-CNAM': 'Unknown'} }); sip.send('sip:你的SIP分机号@你的SIP域名.com'); callback(null, twiml); }); };
- 第三步:将该Twilio Function的地址设置为你号码的「A Call Comes In」事件的Webhook(选择「Webhook」类型,HTTP方法选POST)。
- 第四步:在你的SIP分机侧配置接收自定义头
X-CNAM,即可获取到来电的CNAM名称。
内容的提问来源于stack exchange,提问作者Sean Devoy
相关产品推荐
相关产品推荐

