【问题标题】:Twilio - How to retrieve the voice call recording media file by providing the call SID in NodeJsTwilio - 如何通过在 NodeJs 中提供呼叫 SID 来检索语音呼叫记录媒体文件
【发布时间】: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 直接呼叫个人电话。

【问题讨论】:

    标签: node.js 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 的一部分,与通话或录音的日期无关。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多