如何使用Twilio SDK获取Worker的当前活跃CallSID?
通过Worker SID获取Twilio活跃通话的CallSID
核心逻辑
Twilio TaskRouter中,Worker的活跃通话会关联到assigned状态的任务里,我们需要获取该Worker的已分配任务,从任务属性中提取对应的CallSID。
前置准备
- 安装对应语言的Twilio SDK
- 准备你的Twilio Account SID、Auth Token、目标Worker SID以及所属Workspace SID
Python 实现示例
- 安装SDK:
pip install twilio
- 代码实现:
from twilio.rest import Client # 替换为你的实际信息 ACCOUNT_SID = "你的Account SID" AUTH_TOKEN = "你的Auth Token" WORKER_SID = "目标Worker的SID" WORKSPACE_SID = "所属Workspace的SID" client = Client(ACCOUNT_SID, AUTH_TOKEN) # 获取Worker的所有已分配任务 assigned_tasks = client.taskrouter.workspaces(WORKSPACE_SID)\ .workers(WORKER_SID)\ .tasks.list(assignment_status="assigned") # 遍历任务提取CallSID for task in assigned_tasks: task_attrs = task.attributes # 注意:属性键名可能因你的TaskRouter配置不同而变化 if "call_sid" in task_attrs: print(f"活跃通话CallSID: {task_attrs['call_sid']}")
Node.js 实现示例
- 安装SDK:
npm install twilio
- 代码实现:
const twilio = require('twilio'); // 替换为你的实际信息 const accountSid = "你的Account SID"; const authToken = "你的Auth Token"; const workerSid = "目标Worker的SID"; const workspaceSid = "所属Workspace的SID"; const client = twilio(accountSid, authToken); // 获取并筛选Worker的已分配任务 client.taskrouter.workspaces(workspaceSid) .workers(workerSid) .tasks.list({ assignmentStatus: "assigned" }) .then(tasks => { tasks.forEach(task => { const attrs = JSON.parse(task.attributes); // 属性键名需匹配你的实际配置 if (attrs.call_sid) { console.log(`活跃通话CallSID: ${attrs.call_sid}`); } }); }) .catch(err => console.error("获取任务失败:", err));
注意事项
- 确保Worker确实有处于
assigned状态的通话任务,否则不会返回任何CallSID - 任务属性中的
call_sid字段名可能根据你的TaskRouter任务模板配置有所不同,需对应调整
内容的提问来源于stack exchange,提问作者mlegui21
相关产品推荐
相关产品推荐

