Twilio - 如何通过在 NodeJs 中提供呼叫 SID 来检索语音呼叫记录媒体文件

Posted

技术标签:

【中文标题】Twilio - 如何通过在 NodeJs 中提供呼叫 SID 来检索语音呼叫记录媒体文件【英文标题】:Twilio - How to retrieve the voice call recording media file by providing the call SID in NodeJs 【发布时间】:2019-11-19 01:23:51 【问题描述】:

我想在我的应用程序中播放 Twilio 录音媒体文件/url,我在 nodejs 中使用twilio-node 包。

let response = new VoiceResponse();
response.dial(
    callerId: process.env.TWILIO_NUMBER,
    record: true
    , req.body.number);
    res.type('text/xml');
    res.send(response.toString());

我使用上面的示例启用录制并且它正在工作,但挑战是通过 API 提供调用 SID 或录制 SID 来获取媒体文件,我没有找到任何示例来获取录制 SID 或录制媒体通过提供调用 SID 文件。

let client = twilio(TWILIO_ACCOUNT_SID, TWILIO_AUTH_TOKEN)
let callLogData = await client.calls(callSid).fetch().then(data =>  return data )

我可以使用上面的示例获取通话记录,我尝试了 Twilio 文档中提到的多种方法,但我猜该包与文档不兼容。我没有使用可编程语音,而是使用 Twilio 直接呼叫个人电话。

【问题讨论】:

【参考方案1】:

第 1 步:

将是“获取给定通话的所有录音”,如此处所述 (https://www.twilio.com/docs/voice/api/recording-resource?code-sample=code-get-all-recordings-for-a-given-call-3&code-language=Node.js&code-sdk-version=3.x)

// Download the helper library from https://www.twilio.com/docs/node/install
// Your Account Sid and Auth Token from twilio.com/console
// DANGER! This is insecure. See http://twil.io/secure
const accountSid = 'ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX';
const authToken = 'your_auth_token';
const client = require('twilio')(accountSid, authToken);

client.recordings
      .list(callSid: 'CAXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', limit: 20)
      .then(recordings => recordings.forEach(r => console.log(r.sid)));

第 2 步:

一旦您获得了录制 ID(上述步骤中的 r.sid),您就可以例如通过 GET 请求获取录制的 .mp3

GET /2010-04-01/Accounts/ACXXXXX.../Recordings/RE557ce644e5ab84fa21cc21112e22c485.mp3

如此处所述 (https://www.twilio.com/docs/voice/api/recording-resource?code-sample=code-fetch-a-recording&code-language=Node.js&code-sdk-version=3.x)


注意:

获取录音的 mp3 的完整 URL 如下所示: https://api.twilio.com/2010-04-01/Accounts/ACXXXXX.../Recordings/RE557ce644e5ab84fa21cc21112e22c485.mp3

【讨论】:

谢谢亚历克斯。这对我来说是完美的解决方案,我以为每个通话只能有一个录音 ID,所以我没有尝试 client.recordings.list 来获得相同的结果,为什么只有这个 /2010-04-01/ 日期? 该日期(basePath)是 Twilio API 基本 URL 的一部分,与通话或录音的日期无关。

以上是关于Twilio - 如何通过在 NodeJs 中提供呼叫 SID 来检索语音呼叫记录媒体文件的主要内容,如果未能解决你的问题,请参考以下文章

通过 zapier 发送 vcard 时如何解决 Twilio SMS 发送错误

javascript 在Nodejs中使用Express的Axios HTTP请求。 5Way HTTP-RequestsLIST:https://www.twilio.com/blog/2017/0

如何在呼叫任何人之前创建 Twilio 会议?

如何在解析服务器上配置 Twilio?

twilio停止接收消息

当应用程序在前台时收到 Twilio 通知警报