【发布时间】:2017-03-20 12:10:56
【问题描述】:
我正在使用 Twilio JavaScript SDK 在浏览器中发出和接收调用。作为其中的一部分,我需要在新的弹出窗口中拨打和接听电话。这样用户就可以在不中断通话的情况下继续浏览网站。
我已经为拨出电话工作了(用户点击一个号码,然后我拨打window.open 发起呼叫)。
但是对于来电,我尝试在发起浏览器窗口中执行以下操作:
Twilio.Device.incoming(function (connection) {
$('#callPopup').show();
$('.js-answer-call').on('click', function (event) {
event.preventDefault();
var receiveCallWindow = window.open('/call/incoming', '', 'width=350,height=200');
receiveCallWindow.connection = connection;
$('#callPopup').hide();
});
$('.js-reject-call').on('click', function (event) {
event.preventDefault();
connection.reject();
$('#callPopup').hide();
});
});
这会将连接对象传递给弹窗,然后弹窗运行如下代码:
var connection = window.connection;
$(document).ready(function () {
connection.accept();
});
这确实会接听电话,但通话上下文仍在父窗口中,如果用户离开该页面,它将结束通话。
我知道我可以通过一个只包含调用逻辑的主 iframe 来实现这一点,主网络应用程序位于框架内,但是我认为这是一个非常混乱的实现,并希望避免这种情况。
【问题讨论】:
标签: javascript jquery twilio twilio-twiml