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

Posted

技术标签:

【中文标题】Twilio:通话记录中的通话记录 mp3 文件存在问题【英文标题】:Twilio: Issue with call record mp3 file in call logs 【发布时间】:2021-09-17 19:39:05 【问题描述】:

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

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

【问题讨论】:

【参考方案1】:

这里是 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 以下载每个录音音频文件。

【讨论】:

在媒体 URL 上强制执行 HTTP 身份验证需要保持什么状态?它是启用还是禁用?在以下线程的答案中,yvesonline 建议启用它,但在答案下的 cmets 上,他告诉禁用它。 ***.com/questions/67398055/… 如果您想对媒体 URL 强制执行 HTTP 身份验证,那么您应该在控制台中启用该设置。 我尝试使用 HTTP 基本身份验证的启用和禁用条件播放通话记录音频。在这两种情况下,我都会得到相同的对话框。 i.stack.imgur.com/VrCJW.png。我也想要可以从 chrome 播放的音频 URL。 您可以尝试在媒体 url 上禁用 http auth,然后进行新的录制,然后尝试在浏览器中访问它吗?我的怀疑是 HTTP 身份验证不适用于现有录音,因此您不会无意中暴露以前受保护的录音。 不,您需要从我上面描述的 API 调用中获取录音文件。如果您还需要在带有录音的列表中显示结果,我建议您缓存 API 调用或以其他方式获取和存储录音 URL,这样您就不必从 UI 进行多个 API 调用。

以上是关于Twilio:通话记录中的通话记录 mp3 文件存在问题的主要内容,如果未能解决你的问题,请参考以下文章

在 twilio mp3 录制 url 上进行范围请求时,接受范围设置为无

Twilio 应用程序 - 更新通话资源结束通话

音频会话中断后恢复 twilio 通话

如何读取和删除通话记录中的消息?

我如何更新数据库中的通话记录数据(java android)

Twilio Target Worker表达-在文本上阻止语音通话