Twilio JS SDK外呼转接问题:需将客户直连转接对象
解决方案:Twilio呼叫转接时保留客户来电信息
核心问题分析
转接时直接建立Rohit与Kevin的连接,导致Kevin端显示主叫为Rohit的号码。要实现客户与Kevin的直接连接并显示客户号码,需通过指定主叫ID的方式重新发起呼叫逻辑。
1. 使用TwiML转接时指定客户号码为来电显示
当触发转接请求时,返回给Twilio的TwiML需明确设置callerId为客户号码,让Twilio以客户身份呼叫Kevin:
<Response> <Dial callerId="+9179********"> <Client>Kevinemp</Client> </Dial> </Response>
此方式下,Kevin的客户端会接到来电显示为客户号码的呼叫,同时Twilio会建立客户与Kevin的直接连接。
2. 通过JavaScript SDK发起转接时指定from参数
若使用Twilio JavaScript SDK发起转接API请求,需将from字段设为客户号码,to设为Kevin的客户端标识:
const twilio = require('twilio'); const client = twilio('你的账户SID', '你的认证Token'); // 发起转接呼叫 client.calls.create({ from: '+9179********', // 设置为客户号码 to: 'client:Kevinemp', twiml: '<Response><Connect><Stream url="wss://你的服务地址/stream" /></Connect></Response>' }) .then(call => { console.log('转接呼叫SID:', call.sid); // 挂断原有的Rohit与客户的呼叫 return client.calls('原有呼叫的SID').update({status: 'completed'}); }) .then(() => console.log('原有呼叫已终止')) .catch(err => console.error('转接失败:', err));
3. 关键注意事项
- 来电显示权限:若客户号码非Twilio托管号码,需在Twilio控制台的「来电显示设置」中验证并授权该号码作为主叫ID使用。
- 原有呼叫处理:转接成功后务必终止Rohit与客户的原有呼叫,避免出现三方通话或资源浪费。
内容的提问来源于stack exchange,提问作者Hema sharma
相关产品推荐
相关产品推荐

