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

未接呼叫经运营商转至Twilio时,如何捕获原始TO&FROM号码并触发Webhook

捕获运营商条件转接至Twilio的原始呼叫号码并触发Webhook

1. 配置Twilio号码的触发Webhook

登录Twilio控制台,找到用于接收转接呼叫的号码,在「Voice & Fax」模块下,将「A call comes in」设置为「Webhook」,填入你的服务端接收地址(比如https://your-server.com/twilio-voice-webhook),请求方法选择POST或GET。一旦有转接呼叫进入,Twilio会自动向该地址发起请求,触发你的Webhook逻辑。

2. 提取原始FROM和TO号码

Twilio会在Webhook请求中携带呼叫相关参数,你可以从这些参数中提取原始呼叫信息:

  • 原始主叫号码(FROM):直接读取请求参数中的From字段,运营商转接时会把原始呼叫发起方的号码传递到这里。
  • 原始被叫号码(TO):不同运营商的传递方式略有差异,优先检查以下参数:
    • OriginalTo:如果运营商支持传递Original-To SIP头,Twilio会自动解析为该参数。
    • Called:部分运营商会将原始被叫号码放在这个字段中。
    • SipHeaders:如果以上参数都没有,可以从这个字段的X-Original-To头中提取(如果运营商有传递)。

代码示例(Node.js/Express)

const express = require('express');
const app = express();
app.use(express.urlencoded({ extended: true }));

app.post('/twilio-voice-webhook', (req, res) => {
  // 提取原始号码
  const originalFrom = req.body.From;
  const originalTo = req.body.OriginalTo || req.body.Called;

  // 这里写你的业务逻辑:存储号码、触发通知等
  console.log(`原始呼叫:从 ${originalFrom} 到 ${originalTo}`);

  // 返回Twilio要求的TwiML响应,即使不需要处理呼叫也要返回空响应
  res.send('<Response></Response>');
});

app.listen(3000, () => console.log('服务启动'));

3. 验证参数正确性

如果不确定哪个参数对应原始被叫号码,可以在Webhook中打印所有请求参数(比如console.log(req.body)),实际触发一次转接呼叫后查看日志,确认目标字段。如果参数缺失,联系运营商确认他们转接时会传递的SIP头或呼叫参数,再针对性提取。

4. 注意事项

  • 确保你的Webhook服务能被公网访问,Twilio无法调用内网地址。
  • 必须返回有效的TwiML响应,否则Twilio会向运营商返回错误,可能影响后续转接。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 17:57:50