我刚刚开始按照此处的代码和步骤构建浏览器到浏览器的调用。这是 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 的 API 中,
statusCallback
和 statusCallbackEvent
参数用于通知服务器端端点有关操作(如调用)的进度或结果。
如果我们把它分解
statusCallback:这是 Twilio 将向
statusCallbackEvent
中指定的状态事件发送异步 Webhook 请求的 URL。
statusCallbackEvent:指定哪些呼叫进度事件将导致 Webhook 发送到
statusCallback
URL。
要捕获您提到的详细信息(
to
、from
、recording
、length
),您需要:
设置一个服务器端端点(如 REST API 端点)来侦听传入请求(来自 Twilio)。
修改您的
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 的官方文档。