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

在Twilio Functions中直接指定TwiML替代URL的可行性及报错咨询

在Twilio Functions中直接指定TwiML实现通话内容的方法

Twilio 支持直接指定TwiML来定义通话内容,无需依赖外部URL。你碰到的Url parameter is required错误,是因为参考的官方示例默认用Url参数指向返回TwiML的资源,要是想直接传TwiML,得调整参数的使用方式。

方式1:在Function里直接返回TwiML

如果你的Function用来处理呼叫逻辑并返回TwiML,直接在代码里构建返回就行:

exports.handler = function(context, event, callback) {
  const twiml = new Twilio.twiml.VoiceResponse();
  twiml.say('这是来自Twilio Functions的直接TwiML问候!');
  twiml.hangup();
  
  callback(null, twiml);
};

这种情况发起呼叫时,要把这个Function的URL作为Url参数传入,也就是官方示例的常规用法。如果想跳过Url,直接在发起呼叫时传TwiML,看下面的方式2。

方式2:发起呼叫时直接传入TwiML内容

通过Twilio API发起外呼时,直接用twiml参数传入内容,不用Url参数,示例代码如下:

exports.handler = async function(context, event, callback) {
  const client = context.getTwilioClient();
  
  try {
    const call = await client.calls.create({
      to: event.to, // 目标通话号码
      from: context.TWILIO_PHONE_NUMBER, // 你的Twilio号码(需在环境变量配置)
      twiml: '<Response><Say>直接通过传入的TwiML发起通话!</Say></Response>' // 直接写TwiML字符串
    });
    callback(null, { 通话ID: call.sid });
  } catch (error) {
    callback(error);
  }
};

这里要注意用的是小写的twiml参数,不是Url,这样就不会触发Url parameter is required的错误了。

关键提示

  • 错误码21205的本质是:发起呼叫时必须提供Url或TwiML其中一个参数,Twilio需要靠它确定通话的处理逻辑。
  • 直接传TwiML适合简单场景,复杂的通话逻辑还是建议用Function返回TwiML的方式,方便后续维护和扩展。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 14:02:29