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

Twilio结合WebSocket无法传递参数的问题求助

Twilio结合WebSocket无法传递参数的问题求助

我最近碰到个头疼的问题:在用Twilio的时候,没法把参数传递给通过webhook调用的WebSocket。我当前用的技术栈是node.js、express、ws(JS websocket库)。

其实webhook本身没啥问题,它只是调用我这边的一个接口而已。但在这个接口里,我创建了Twilio的VoiceResponse实例,用它来连接WebSocket,过程中我想传一些参数进去——这样就能在WebSocket里获取用户数据之类的信息了,可偏偏就是传不进去😭

我已经试了好几种方法,先贴一下我的接口代码片段:

app.post("/incoming", async (req, res) => {
    const ttsService = new TextToSpeechService({
        deepgramApiKey: process.env.DEEPGRAM_API_KEY,
        model: "aura-asteria-en",
    });
    const greetingText =
        "Hi! You have called Gigi Bianco, my name is Alice, how can I help you?";
    const twiml = new VoiceResponse();
    // 尝试连接WebSocket并传递参数,但一直没成功
    const connect = twiml.connect();
    connect.stream({
        url: `wss://my-server-url/ws`,
        // 试过在这里加自定义参数,比如params: { userId: req.body.From },但WebSocket里拿不到
    });
    res.type("text/xml").send(twiml.toString());
});

再贴一下WebSocket服务端的处理代码:

const WebSocket = require('ws');
const wss = new WebSocket.Server({ port: 8080 });

wss.on('connection', (ws) => {
    ws.on('message', (data) => {
        // 尝试获取传递的参数,但这里根本拿不到相关内容
        console.log('Received:', data);
    });
});

我试过在stream的URL里拼接参数,比如wss://my-server-url/ws?userId=${req.body.From},但Twilio好像不支持这种方式,直接连接失败;也试过在VoiceResponse的其他节点加自定义参数,都没用。有没有大佬能指点一下,到底该怎么把参数从Twilio的webhook接口传递到对应的WebSocket里啊?

备注:内容来源于stack exchange,提问作者petru tirla

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.17 08:54:51