2017-03-20 33 views
0

我使用Twilio JavaScript SDK在瀏覽器中發出和接收呼叫。作爲這個的一部分,我需要在新的彈出窗口中撥打和接聽電話。這樣用戶就可以在不斷開通話的情況下繼續瀏覽網站。打開新的(彈出)窗口回答Twilio致電

我有這個工作的傳出呼叫(用戶點擊一個號碼,並在此我呼籲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應用程序,但我認爲這是一個非常混亂的實現,並希望避免這種情況。

回答

0

Twilio開發者佈道者在這裏。

在這種情況下,您的問題確實是調用上下文位於父窗口中。我現在唯一想到的就是在用戶登錄時彈出呼叫窗口,並準備接聽電話,然後在彈出窗口中初始化Twilio.Device

您仍然可以將此彈出窗口連接到外撥電話的代碼。

這有幫助嗎?

+0

我明白你的意思,但是我希望當有人打電話時,我可以通過一個簡單的彈出來實現。我需要重新思考如何解決這個問題 – lisburnite