Twilio:通话记录中的通话记录 mp3 文件存在问题

问题描述

我正在使用此 API获取 Twilio 通话记录。我想要相应通话的录音作为 mp3 文件。我们正在从 recordings 下的 subresource_uris 访问记录 URL,但那是 .json 文件。根据此thread,我们将 .json 替换为 .mp3 并在开头添加https://api.twilio.com。如果我们尝试播放录音,它不会播放。

目前,录音 URL 可用于所有通话记录,但只有少数通话启用了通话记录。那么我们如何区分通话是否被录音呢?

解决方法

这里是 Twilio 开发者布道者。

据我所知,您正在尝试使用 C# 访问录音文件。您可以通过请求 call's recording resource:

来获取通话录音列表
string accountSid = Environment.GetEnvironmentVariable("TWILIO_ACCOUNT_SID");
string authToken = Environment.GetEnvironmentVariable("TWILIO_AUTH_TOKEN");

TwilioClient.Init(accountSid,authToken);

var recordings = RecordingResource.Read(
  callSid: "CAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",limit: 20
);

// print out each recording's URI
foreach(var record in recordings)
{
  Console.WriteLine(record.Uri);
}

如果您使用具有录音的呼叫 Sid 运行上述程序,那么您将看到打印出的录音的 URI。它们看起来像:

/2010-04-01/Accounts/ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Recordings/REXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.json

这是您应该采用的 URI,前缀为 https://api.twilio.com 并将扩展名从 .json 更改为 .mp3 以获取录音文件。所以,对于上面的例子,请求:

https://api.twilio.com/2010-04-01/Accounts/ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/Recordings/REXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.mp3

因此,如果您使用 API 获取通话记录以获取通话 SID,然后调用每个通话的录音资源,您就可以获得录音列表并构建 URI 以下载每个录音音频文件。