在無預(yù)定義呼叫信令協(xié)議的情況下在瀏覽器之間發(fā)起呼叫的機制的制作方法
【專利說明】在無預(yù)定義呼叫信令協(xié)議的情況下在瀏覽器之間發(fā)起呼叫 的機制 相關(guān)申請案交叉申請
[0001] 本發(fā)明要求李栗(LiLi)等人2013年2月4日遞交的發(fā)明名稱為"在無預(yù)定義 呼叫信令協(xié)議的情況下在瀏覽器之間發(fā)起呼叫的機制(MechanismtoInitiateCalls betweenBrowserswithoutPredefinedCallSignalingProtocol) " 的第 13/758, 250 號美國非臨時申請案的在先申請優(yōu)先權(quán),該在先申請的內(nèi)容以引入的方式全文并入本文本 中。 關(guān)于由聯(lián)邦政府贊助研宄或開發(fā)的聲明
[0002] 不適用。 參考縮微膠片附錄
[0003] 不適用。
技術(shù)領(lǐng)域 無
【背景技術(shù)】
[0004] 使用Web瀏覽器等Web應(yīng)用程序的多媒體呼叫和電話會議,例如視頻電話、視頻聊 天以及對等(P2P)文件共享會話,正在日益普及。Web應(yīng)用程序可以毫不費力地使用同一呼 叫信令協(xié)議(CSP)基于萬維網(wǎng)聯(lián)盟(W3C)Web實時通信(WebRTC)應(yīng)用程序編程接口(API) 發(fā)起對彼此的呼叫。然而,存在多個非標(biāo)準(zhǔn)化CSP協(xié)議,并且因此一些Web應(yīng)用程序可能嘗 試使用沖突CSP的WebRTC,例如,WebRTC提議/應(yīng)答協(xié)議(ROAP)、WebSocket(WS)、可擴展的 信息和呈現(xiàn)協(xié)議(XMPP)/Jingle、會話發(fā)起協(xié)議(SIP)、H. 323、媒體網(wǎng)關(guān)控制協(xié)議(MGCP)、 或特定于通信網(wǎng)站的CSP。沖突CSP通常導(dǎo)致不能進行WebRTC通信。
[0005] 因此,具有沖突CSP的應(yīng)用程序無法發(fā)起呼叫,除非使用先前協(xié)定的CSP用于呼 口H,這在各種環(huán)境中可能存在問題。WebRTC通信發(fā)起者("主叫")可通常通過使用由WebRTC 通信接收方("被叫")提供的CSP呼叫被叫來確保CSP互操作性。然而,這可能導(dǎo)致開放 式網(wǎng)絡(luò)中的釣魚攻擊,因為使用被叫CSP可將整個瀏覽器置于被叫Web應(yīng)用程序的控制下, 并可能使得主叫的Web瀏覽器難以增強安全規(guī)范。在釣魚環(huán)境中,被叫Web應(yīng)用程序要求 主叫使用主叫的Jabber標(biāo)識符(JID)和密碼登錄到XMPP服務(wù)器中。在不可信賴環(huán)境中, 政府機構(gòu)主叫想要提醒多個被叫有關(guān)即將發(fā)生的自然災(zāi)害或其它緊急情況。在這樣的情況 下,被叫可能愿意使用主叫的CSP,但并非反之亦然。
[0006] 由于多種原因,使用例如統(tǒng)一資源標(biāo)識符(URI)或接口規(guī)范等標(biāo)準(zhǔn)名稱的CSP的 瀏覽器協(xié)商可能不合需要。例如,標(biāo)準(zhǔn)名稱可能不合需要,因為它們需要開發(fā)標(biāo)準(zhǔn)協(xié)議,且 開發(fā)標(biāo)準(zhǔn)協(xié)議可能花費數(shù)年來開發(fā)。此外,標(biāo)準(zhǔn)名稱可能需要大量的互操作性測試,即, NXN次成對協(xié)調(diào)測試,來驗證功能,并且可能最終僅確保互操作性到測試情況的程度。因 此,替代方案可能是優(yōu)選的。
【發(fā)明內(nèi)容】
[0007] 在一個方面中,本發(fā)明包含一種裝置,其包括處理器,所述處理器用于:接收用以 呼叫遠端用戶的指令;加載通信應(yīng)用程序;從服務(wù)器請求一或多個所支持通信協(xié)議的列 表;從服務(wù)器接收一或多個所支持通信協(xié)議的列表;從一或多個所支持通信協(xié)議的列表中 選擇協(xié)議;在隔離的安全環(huán)境中加載選定通信協(xié)議;以及使用選定通信協(xié)議用遠端服務(wù)器 發(fā)起呼叫。
[0008] 在另一方面中,本發(fā)明包含一種計算機程序產(chǎn)品,其包括存儲在非暫時性媒體上 的計算機可執(zhí)行指令,所述計算機可執(zhí)行指令在由處理器執(zhí)行時致使所述處理器執(zhí)行以下 操作:在Web瀏覽器中加載通信應(yīng)用程序;向站點發(fā)送對所支持通信協(xié)議列表的請求;從 站點接收所支持通信協(xié)議列表,其中所支持通信協(xié)議列表含有通信協(xié)議;向站點發(fā)送對支 持通信協(xié)議的庫的請求;從站點接收支持通信協(xié)議的庫;發(fā)送根據(jù)通信協(xié)議編碼的通信提 議;以及接收根據(jù)通信協(xié)議編碼的應(yīng)答。
[0009] 在又另一方面中,本發(fā)明包含一種用于在無預(yù)定義CSP的情況下在瀏覽器之間發(fā) 起呼叫的方法,所述方法包括:在第一瀏覽器處實施CSP狀態(tài)機;從第一服務(wù)器請求針對 CSP的CSP庫;接收并加載CSP庫;向第二服務(wù)器發(fā)送提議,其中所述提議根據(jù)CSP編碼;從 第二服務(wù)器接收應(yīng)答,其中所述應(yīng)答根據(jù)CSP編碼;以及根據(jù)CSP向第二瀏覽器傳輸數(shù)據(jù), 其中所述數(shù)據(jù)包括語音數(shù)據(jù)、視頻數(shù)據(jù)或這兩者。
[0010] 從結(jié)合附圖以及權(quán)利要求書進行的以下詳細描述中將更清楚地理解這些以及其 它特征。
【附圖說明】
[0011] 為了更透徹地理解本發(fā)明,現(xiàn)參考結(jié)合附圖和【具體實施方式】描述的以下簡要說 明,其中相同參考標(biāo)號表不相同部分。
[0012] 圖1圖示了用戶設(shè)備的實施例。
[0013] 圖2是在無預(yù)定義CSP的情況下在瀏覽器之間發(fā)起呼叫的機制的實例實施方案。
[0014] 圖3是示出由在無預(yù)定義CSP情況下在站點之間發(fā)起呼叫的機制的實施例所用的 CSP協(xié)商過程的協(xié)議圖。
[0015] 圖4A描繪了可以用于在無預(yù)定義CSP情況下在站點之間發(fā)起呼叫的機制的實施 例的初始條件。
[0016] 圖4B描繪了可以用于在無預(yù)定義CSP情況下在站點之間發(fā)起呼叫的CSP協(xié)商過 程。
[0017] 圖4C描繪了在使用在無預(yù)定義CSP情況下在站點之間發(fā)起呼叫的機制的實施例 之后的呼叫。
[0018] 圖5是通信設(shè)備的實施例的示意圖。
【具體實施方式】
[0019] 首先應(yīng)理解,盡管下文提供一或多個實施例的說明性實施方案,但所公開的系統(tǒng) 和/或方法可使用任何數(shù)目的技術(shù)來實施,無論該技術(shù)是當(dāng)前已知還是現(xiàn)有的。本發(fā)明決 不應(yīng)限于下文所說明的說明性實施方案、附圖和技術(shù),包含本文所說明并描述的示例性設(shè) 計和實施方案,而是可在所附權(quán)利要求書的范圍以及其等效物的完整范圍內(nèi)修改。
[0020] 本發(fā)明描述保證來自不同站點的WebRTC應(yīng)用程序在不存在任何標(biāo)準(zhǔn)CSP的情況 下使用可互操作CSP的系統(tǒng)和方法。本發(fā)明描述此類機制和協(xié)議以協(xié)商CSPJavaScript 編碼并在隔離的安全環(huán)境中執(zhí)行所述編碼使得以可控安全性來保證互操作性。換句話說, 本發(fā)明描述了一種架構(gòu),其用以使CSP層、資源或模塊與WebRTC應(yīng)用程序的其余部分分離, 使用CSP層、資源或模塊以在JavaScript中實施CSP狀態(tài)機,并批準(zhǔn)Web應(yīng)用程序之間的 數(shù)據(jù)傳輸。使用所公開的系統(tǒng)和方法可以尤其降低互操作性測試成本,因為對于N個CSP 實施方案僅需要N次單獨的測試(而不是NXN次成對協(xié)調(diào)測試,其中N是整數(shù));增大互 操作性,因為應(yīng)用程序可以使用相同的CSPJavaScript編碼而不是相同CSP的不同實施方 案;通過增強的和可控的機制增大安全性;以及提供靈活性,因為模塊化設(shè)計允許CSP編碼 改變而不影響Web應(yīng)用程序的其它部分。
[0021] 圖1圖示了第一和第二用戶設(shè)備100的實施例。用戶設(shè)備100可以例如通過發(fā) 送對含有URI的HTML文檔的請求并接收所述HTML文檔而與服務(wù)器102通信。用戶設(shè)備 100可以經(jīng)由網(wǎng)絡(luò)104耦合到服務(wù)器102,所述網(wǎng)絡(luò)例如因特網(wǎng)協(xié)議(IP)網(wǎng)絡(luò)、企業(yè)內(nèi)部 網(wǎng)、或局域網(wǎng)(LAN)等任何其它網(wǎng)絡(luò)。用戶設(shè)備100可以分別地是面向用戶的固定或移動 設(shè)備,例如,臺式計算機、筆記本或膝上型計算機、上網(wǎng)本、平板計算機、智能電話、個人數(shù)字 助理(PDA)、或蜂窩式電話。用戶設(shè)備100可以各自包括處理塊110和瀏覽器或搜索應(yīng)用 程序112。處理塊110可以是允許用戶配置或訪問用戶設(shè)備100的不同特征以及在用戶設(shè) 備100上安裝和操作其它軟件或程序的任何軟件(例如,操作系統(tǒng))和/或硬件,例如,圖7 的通用網(wǎng)絡(luò)組件700和操作系統(tǒng)。處理塊110可以包含操作系統(tǒng)Windows?、Mac?OS和 Android?。瀏覽器/搜索應(yīng)用程序112可以是在處理塊110上運行且允許用戶在用戶設(shè)備 100上發(fā)送搜索查詢并接收搜索結(jié)果的軟件或程序。瀏覽器/搜索應(yīng)用程序112可以使用 對應(yīng)編碼、API、語言或接口經(jīng)由第一網(wǎng)絡(luò)(例如,因特網(wǎng))與服務(wù)器通信。瀏覽器/搜索應(yīng) 用程序112可以包括可用來例如經(jīng)由因特網(wǎng)遠程訪問搜索應(yīng)用程序的瀏覽器,或可以包括 整合的瀏覽器和搜索應(yīng)用程序。瀏覽器/搜索應(yīng)用程序112可以具有用于向用戶顯示搜索 查詢和結(jié)果的視覺用戶接口。瀏覽器/搜索應(yīng)用程序112的實例可以包含谷歌Chrome?、 因特網(wǎng)Explorer'、摩斯拉巧-也^以及微件。盡管本實施例中描繪為相同組件,但服務(wù) 器102和用戶設(shè)備100可以是能夠?qū)崿F(xiàn)指定目的的組件的任何合適組合。
[0022] 圖2示出在無預(yù)定義CSP的情況下在瀏覽器之間發(fā)起呼叫的機制的實施方案。圖 2含有站點202和站點204,其可以是例如在由用戶的Web瀏覽器采用時向網(wǎng)站用戶提議 WebRTC服務(wù)等通信服務(wù)的任何網(wǎng)站。站點202和204可以在圖1的服務(wù)器102等單獨的服 務(wù)器上單獨地托管。站點202可以是主叫所用的WebRTC服務(wù)并且站點204可以是被叫所用 的WebRTC服務(wù)。圖2另外含有被叫Web瀏覽器205和主叫Web瀏覽器206,例如,圖1的瀏 覽器/搜索應(yīng)用程序112,其在一側(cè)上包括被叫WebRTC應(yīng)用程序編程接口(API) 207和另一 API209,例如,aW3CWebSocketJavaScriptAPI、服務(wù)器已發(fā)送事件API、異步JavaScript 和XML(AJA