如何从 Twilio Voice Javascript SDK 获取通话详细信息

问题描述 投票:0回答:1

我刚刚开始按照此处的代码和步骤构建浏览器到浏览器的调用。这是 Twilio Javascript Voice SDK 快速入门。

但是,通话后我很难找到通话详细信息。我想检索客户端的通话记录,但我可以在我配置的 TwiMl 应用程序中找到任何通话数据。 我希望每次结束通话时,我都可以检索通话数据,例如通话目的地、通话地点、录音、长度等...

我遇到了几种方法:

 async function makeOutgoingCall() {
        var params = {
            To: phoneNumberInput.value,
            callingDeviceIdentity
        };

        if (device) {
            log(`Attempting to call ${params.To} ... `);

            // Twilio.Device.connect() returns a Call object
            const call = await device.connect({ params });
            console.log(call);
            // add listeners to the Call
            // "accepted" means the call has finished connecting and the state is now "open"
            call.on("accept", updateUIAcceptedOutgoingCall);
            call.on("disconnect", updateUIDisconnectedOutgoingCall);
            call.on("cancel", updateUIDisconnectedOutgoingCall);

            outgoingCallHangupButton.onclick = () => {
                log("Hanging up ...");
                call.disconnect();
            };

        } else {
            log("Unable to make call.");
        }
    }

我怀疑操纵参数,即添加 statuscallback 和 statuscallbackevent,但我没有找到任何关于如何修改参数的文档...

twilio twilio-api
1个回答
0
投票

你的怀疑是正确的!

在许多 Twilio 的 API 中,

statusCallback
statusCallbackEvent
参数用于通知服务器端端点有关操作(如调用)的进度或结果。

如果我们把它分解

  1. statusCallback:这是 Twilio 将向

    statusCallbackEvent
    中指定的状态事件发送异步 Webhook 请求的 URL。

  2. statusCallbackEvent:指定哪些呼叫进度事件将导致 Webhook 发送到

    statusCallback
    URL。

要捕获您提到的详细信息(

to
from
recording
length
),您需要:

  1. 设置一个服务器端端点(如 REST API 端点)来侦听传入请求(来自 Twilio)。

  2. 修改您的

    params
    以包含
    statusCallback
    statusCallbackEvent

这是一个例子:


async function makeOutgoingCall() {
    const params = {
        To: phoneNumberInput.value,
        callingDeviceIdentity,
        statusCallback: 'https://yourserver.com/twilio/status', // your server-side endpoint
        statusCallbackEvent: 'initiated ringing answered completed' // possible events
    };

    if (device) {
        ...
    }
}

当指定的

statusCallbackEvent
事件之一发生时,Twilio 将向您在
statusCallback
中指定的 URL 发送 POST 请求。

然后,在您的服务器上,您将需要处理此 POST 请求并从中提取必要的详细信息。 Twilio 将在 POST 请求中发送

CallSid
From
To
RecordingUrl
CallDuration
等信息。然后,您可以处理这些数据、存储它或执行应用程序所需的任何操作。

此外,关于最佳实践,我还会考虑以下几点:

  • 安全:确保您的端点安全。您可能想要验证传入请求是否确实来自 Twilio。 Twilio 提供了一种通过检查

    X-Twilio-Signature
    标头来验证传入请求的方法。

  • 录音:如果您想要录制通话并在回调中收到

    RecordingUrl
    ,请确保您的 TwiML 响应(或应用程序配置)指示 Twilio 录制通话。

我建议始终参考 Twilio 的官方文档。

© www.soinside.com 2019 - 2024. All rights reserved.