Javascript 打开新(弹出)窗口以接听Twilio呼叫

Javascript 打开新(弹出)窗口以接听Twilio呼叫,javascript,jquery,twilio,twilio-twiml,Javascript,Jquery,Twilio,Twilio Twiml,我正在使用Twilio JavaScript SDK在浏览器中放置和接收调用。作为其中的一部分,我需要在一个新的弹出窗口中拨打和接听电话。这样,用户就可以在不断开呼叫的情况下继续浏览网站 我已经为传出呼叫设置了此功能,用户单击一个号码,然后在我呼叫窗口的背面。打开该窗口可启动呼叫 但是,对于来电,我尝试在启动浏览器窗口中执行以下操作: Twilio.Device.incoming(function (connection) { $('#callPopup').show(); $(

我正在使用Twilio JavaScript SDK在浏览器中放置和接收调用。作为其中的一部分,我需要在一个新的弹出窗口中拨打和接听电话。这样,用户就可以在不断开呼叫的情况下继续浏览网站

我已经为传出呼叫设置了此功能,用户单击一个号码,然后在我呼叫窗口的背面。打开该窗口可启动呼叫

但是,对于来电,我尝试在启动浏览器窗口中执行以下操作:

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实现这一点,主web应用程序在框架内,但我认为这是一个非常混乱的实现,我希望避免这种情况。

Twilio开发者福音传道者

在这种情况下,您的问题确实是调用上下文位于父窗口中。我现在唯一想到的是当用户登录并准备接听电话时弹出呼叫窗口,然后在弹出窗口中初始化

您仍然可以将此弹出窗口连接到出站呼叫的代码


这有帮助吗?

是的,我理解你的意思,但我只是希望在有人打电话时通过一个简单的弹出窗口来实现这一点。我需要重新思考如何解决这个问题我也有同样的问题……事实上我发布了一个关于这个问题的问题: