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 上进行范围请求时,接受范围设置为无