打开新的(弹出窗口)窗口来回答Twilio电话

时间:2017-03-20 12:10:56

标签: javascript jquery twilio twiml

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

1 个答案:

答案 0 :(得分:-1)

Twilio开发者传道者在这里。

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

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

这有帮助吗?