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

如何使用Twilio Functions统计指定号码进行中与振铃通话总数

Twilio Function 实现方案

你不需要掌握复杂的Node.js开发,Twilio Functions 内置了官方Twilio SDK,不需要额外安装依赖,只需要写核心的接口调用和统计逻辑即可完成需求。

核心逻辑

调用Twilio Call资源列表接口,按指定电话号码、指定通话状态做过滤,直接统计符合条件的通话总数,返回结构化JSON给Twilio Studio读取即可。


步骤1:创建Twilio Function

  • 进入Twilio控制台的Functions服务页面,新建一个空白函数模板
  • 配置函数权限为可被Twilio Studio调用,如果你要固定统计某个号码,可以在函数环境变量里加TARGET_PHONE_NUMBER存目标号码,也可以后续从Studio动态传参。

步骤2:替换函数代码

把函数默认的示例代码替换为以下内容:

exports.handler = function(context, event, callback) {
  // 自动使用当前Twilio账号完成鉴权,无需手动填写Account SID/Auth Token
  const client = context.getTwilioClient();
  // 优先读取Studio传入的动态号码,没有则读取环境变量配置的固定号码
  const targetPhone = event.targetNumber || context.TARGET_PHONE_NUMBER;

  client.calls.list({
    // 统计该号码作为被叫的活跃通话就填to,作为主叫就填from,按需修改
    to: targetPhone,
    // 同时筛选振铃、通话中两种状态
    status: ['ringing', 'in-progress'],
    // 调整limit值覆盖你业务的最大并发通话规模,默认值20会导致统计不全
    limit: 500
  })
  .then(callList => {
    const totalActive = callList.length;
    // 返回JSON格式响应,方便Studio直接解析取值
    const res = new Twilio.Response();
    res.appendHeader('Content-Type', 'application/json');
    res.setBody({ count: totalActive });
    callback(null, res);
  })
  .catch(error => callback(error));
};

保存后部署函数即可。

步骤3:Studio侧配置

  • 在需要统计通话数的流程位置,添加Run Function组件,选中你刚部署的函数
  • 如果需要动态传入统计的目标号码,在组件的Function Parameters配置项中添加参数targetNumber,值绑定Studio流程里对应的号码变量(比如触发流程的被叫/主叫号码变量)
  • 函数执行完成后,你可以通过{{widgets.你的Run Function组件名.body.count}}直接拿到统计好的整数结果,后续做分支判断、变量赋值都可以直接使用这个值。

补充说明

  • 如果你需要同时统计某个号码作为主叫、被叫的所有活跃通话,只需要在函数里分别查询to: targetPhone和from: targetPhone的两个列表,把两个列表的长度相加后返回即可
  • 如果你不想维护Node.js代码,也可以用你熟悉的PHP写同样的接口逻辑,在Studio里用Make HTTP Request组件调用你的PHP接口,同样能拿到结果,效果完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.02 09:24:35