You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让twiml.say在拨打后立即向通话对象发声?

解决你的Twilio TwiML.Say相关问题

问题1:如何让twiml.say向已拨打的对象(被叫方)发声?

如果你想在被叫方接听后立即给他们播放语音内容,得用到Twilio的**呼叫筛选(Call Screening)**功能——通过<Dial>动词的url参数指定一个筛选端点。当被叫方接听时,Twilio会自动请求这个端点,你可以在该端点返回的TwiML里用<Say>给被叫方播放语音,之后再完成主叫和被叫的桥接。

给你举个实际的代码例子:

主呼叫处理函数(发起呼叫)

exports.handler = function(context, event, callback) { 
  let twiml = new Twilio.twiml.VoiceResponse(); 
  // 判断目标是电话号码还是客户端
  const attr = isAValidPhoneNumber(event.To) ? 'number' : 'client'; 

  // 创建Dial动词,指定筛选端点的路径
  const dial = twiml.dial({
    url: '/call-screening' // 替换成你的筛选端点路径
  });
  dial[attr](event.To);

  callback(null, twiml); 
};

呼叫筛选端点(给被叫方播放语音)

exports.screeningHandler = function(context, event, callback) {
  let twiml = new Twilio.twiml.VoiceResponse();
  // 这段内容会直接播放给刚接听的被叫方
  twiml.say('您好,这里是来自XX的呼叫,请稍候为您接通。');
  // 用<Connect>完成主叫和被叫的通话桥接
  twiml.connect();

  callback(null, twiml);
};

这样设置后,被叫方一接听就会听到<Say>的内容,之后才会和主叫方建立通话。


问题2:拨打911后,twiml.say需等对方挂断才执行,如何让它在拨打完成(接通)后立即运行?

默认情况下,<Dial>动词会阻塞后续的TwiML代码,直到呼叫结束(对方挂断)才会执行后面的内容。要在呼叫接通后立刻触发<Say>,你需要用到<Dial>的action属性——它可以指定一个端点,当呼叫状态发生变化(比如接通、挂断)时,Twilio会自动请求这个端点并执行返回的TwiML。

修改你的代码如下:

主呼叫处理函数

exports.handler = function(context, event, callback) { 
  let twiml = new Twilio.twiml.VoiceResponse(); 
  const attr = isAValidPhoneNumber(event.To) ? 'number' : 'client'; 

  // 创建Dial动词,设置action指向接通后的处理端点
  const dial = twiml.dial({
    action: '/post-connect-action', // 替换成你的后续处理端点路径
    method: 'POST'
  });
  dial[attr](event.To); // 这里event.To是911号码

  callback(null, twiml); 
};

接通后的处理端点

exports.postConnectHandler = function(context, event, callback) {
  let twiml = new Twilio.twiml.VoiceResponse();
  // 这段内容会在呼叫接通后立即播放,不需要等对方挂断
  twiml.say('呼叫已接通,请注意您的通话内容。');

  // 如果需要保持通话,不需要额外操作;如果要主动结束通话可以添加twiml.hangup()
  // twiml.hangup();

  callback(null, twiml);
};

⚠️ 注意:911属于紧急呼叫,部分地区的运营商或Twilio服务可能对这类呼叫有特殊限制,建议测试前确认当地的紧急呼叫规则。


内容的提问来源于stack exchange,提问作者Tim Clemans

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 07:36:49