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

如何通过Call SID获取Twilio通话的全部关联费用?

如何通过代码获取Twilio呼叫(Call SID)的总费用(含STT、TTS及通话时长费用)

你当前的代码只能获取基础通话时长的费用,因为Twilio的Call资源返回的price字段仅包含核心通话费用,STT(语音转文字)、TTS(文字转语音)这类附加服务的费用会作为单独的账单记录存在,且关联同一个Call SID。要获取总费用,需要从Twilio的**使用记录(Usage Records)**中筛选出该Call SID对应的所有条目并累加。

Python 实现

from twilio.rest import Client

# 替换为你的Twilio账号信息
account_sid = '你的Account SID'
auth_token = '你的Auth Token'
target_call_sid = '要查询的Call SID'

client = Client(account_sid, auth_token)

# 筛选该Call SID对应的所有使用记录
usage_records = client.usage.records.list(
    call_sid=target_call_sid,
    # 可选:指定时间范围,避免查询全部历史(按需调整)
    start_date='2024-01-01',
    end_date='2024-12-31'
)

# 累加所有费用
total_cost = 0.0
currency = None

for record in usage_records:
    total_cost += float(record.price)
    if not currency:
        currency = record.price_unit

# 费用为负数表示扣款,可按需取绝对值
print(f"总费用: {abs(total_cost):.2f} {currency}")

PHP 实现

<?php
require_once '/path/to/vendor/autoload.php'; // 引入Twilio SDK

use Twilio\Rest\Client;

// 替换为你的Twilio账号信息
$accountSid = '你的Account SID';
$authToken = '你的Auth Token';
$targetCallSid = '要查询的Call SID';

$client = new Client($accountSid, $authToken);

// 筛选该Call SID对应的所有使用记录
$usageRecords = $client->usage->records
    ->read([
        'callSid' => $targetCallSid,
        // 可选:指定时间范围
        'startDate' => '2024-01-01',
        'endDate' => '2024-12-31'
    ]);

// 累加所有费用
$totalCost = 0.0;
$currency = null;

foreach ($usageRecords as $record) {
    $totalCost += (float)$record->price;
    if (!$currency) {
        $currency = $record->priceUnit;
    }
}

// 费用为负数表示扣款,可按需取绝对值
echo "总费用: " . number_format(abs($totalCost), 2) . " " . $currency;
?>

关键说明

  • 使用记录会包含所有与该Call SID关联的费用项,包括呼入时长、呼出时长、STT识别、TTS合成等。
  • 指定start_date和end_date可缩小查询范围,提升查询效率,尤其是账号历史记录较多时。
  • Twilio返回的price字段为负数(代表扣款),可根据显示需求取绝对值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 00:07:15