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

如何在Twilio外呼的TwiML<say>标签中添加动态参数

实现Twilio外呼的动态TwiML消息

要让你的Twilio外呼消息支持动态参数(比如账号号码),你需要做两件核心事情:在发起呼叫时传递动态参数到你的TwiML端点,然后在端点动态生成包含参数的TwiML响应。下面是具体的实现步骤:

1. 修改发起呼叫的代码,传递动态参数

原来的代码中你直接指向了静态XML文件,现在需要在URL中添加查询参数,把accountnumber传递过去。假设你已经有了要传递的账号变量,修改后的代码如下:

public void call() 
{ 
    // Find your Account Sid and Token at twilio.com/console 
    const string accountSid = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"; 
    const string authToken = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"; 
    TwilioClient.Init(accountSid, authToken); 

    try 
    {
        // 替换成你实际要传递的动态账号号码
        string targetAccountNumber = "123456789";
        // 构建带查询参数的URL,用EscapeDataString处理特殊字符
        string dynamicTwimlUrl = $"https://automatecondominium.com/Services/Twilio/VoiceMessages/twiliomessage?accountNumber={Uri.EscapeDataString(targetAccountNumber)}";

        var call = CallResource.Create( 
            method: Twilio.Http.HttpMethod.Get, 
            url: new Uri(dynamicTwimlUrl), 
            to: new Twilio.Types.PhoneNumber("+917018244303"), 
            from: new Twilio.Types.PhoneNumber("+15206197315") 
        ); 
    } 
    catch (Exception) 
    { 
        throw; 
    } 
}

2. 修改后端端点,动态生成TwiML

原来的静态XML文件需要改成一个动态生成响应的服务(比如ASP.NET的Web API或MVC动作)。下面是C#示例,适配你的技术栈:

public ActionResult TwilioMessage()
{
    // 从请求的查询参数中获取账号号码
    string accountNumber = Request.QueryString["accountNumber"];
    
    // 处理参数为空的情况,避免出现不友好的提示
    string voiceMessage = string.IsNullOrEmpty(accountNumber) 
        ? "Hello, your account is deleted." 
        : $"Hello, your account {accountNumber} is deleted.";

    // 用Twilio的TwiML库构建响应(也可以手动拼接XML字符串)
    var voiceResponse = new Twilio.TwiML.VoiceResponse();
    voiceResponse.Say(voiceMessage, voice: Twilio.TwiML.Say.VoiceEnum.Man);

    // 返回正确格式的XML响应
    return Content(voiceResponse.ToString(), "application/xml");
}

关键注意点

  • 确保你的后端端点是公网可访问的,Twilio需要能调用到这个地址才能获取TwiML指令。
  • 如果传递的是敏感信息,务必使用HTTPS协议,避免数据在传输过程中泄露。
  • 你可以用同样的方式扩展更多动态参数,比如用户名、过期时间等,只要在URL中添加对应的查询参数,后端读取后替换到消息里即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:57:09