相關(guān)申請(qǐng)
本申請(qǐng)?jiān)?5USC 119或365下要求2012年6月14日提交的英國(guó)申請(qǐng)No.1210596.1的優(yōu)先權(quán),該文獻(xiàn)的公開內(nèi)容全部合并于此。
背景技術(shù):
存在各種不同的用于通過諸如因特網(wǎng)之類的基于分組的網(wǎng)絡(luò)建立現(xiàn)場(chǎng)的基于分組的話音或視頻呼叫的通信系統(tǒng)。例如,這樣的系統(tǒng)可以使用VoIP(話音互聯(lián)網(wǎng)協(xié)議)技術(shù)。一種普及類型的通信系統(tǒng)建立在對(duì)等(P2P)拓?fù)浣Y(jié)構(gòu)上。在傳統(tǒng)的P2P系統(tǒng)中,每個(gè)最終用戶在他或她各自的用戶終端(例如臺(tái)式或膝上型計(jì)算機(jī)、平板計(jì)算機(jī)或者手持式移動(dòng)電話)上安裝通信客戶端應(yīng)用程序。每個(gè)用戶然后向P2P提供商的服務(wù)器注冊(cè)以便獲得認(rèn)證證書。一些用戶終端也將變成分布式數(shù)據(jù)庫(kù)的節(jié)點(diǎn),其將P2P通信系統(tǒng)內(nèi)的用戶的用戶名映射到該系統(tǒng)通過其實(shí)現(xiàn)的網(wǎng)絡(luò)內(nèi)的各個(gè)不同的用戶終端的地址(典型地為IP地址)。于是,最終用戶之間的通信可以在呼叫設(shè)立或者認(rèn)證過程中不涉及集中式服務(wù)器的情況下進(jìn)行。相反地,呼叫者的終端上的客戶端查詢分布式數(shù)據(jù)庫(kù)的一個(gè)或多個(gè)節(jié)點(diǎn)(即呼叫中以任何其他方式涉及的其他最終用戶(不一定是他們自己)的一個(gè)或多個(gè)終端)以便確定預(yù)期的被呼叫者的終端的地址。呼叫者然后使用所確定的地址向被呼叫者發(fā)送呼叫邀請(qǐng),并且被呼叫者以呼叫接受響應(yīng)進(jìn)行響應(yīng)。呼叫者和被呼叫者交換他們的認(rèn)證證書以便對(duì)彼此進(jìn)行認(rèn)證。
每個(gè)用戶也維持聯(lián)系人列表,該聯(lián)系人列表可以存儲(chǔ)在P2P提供商的服務(wù)器上,使得它即使在用戶登錄到不同的終端上的情況下也可用。其他諸如每個(gè)用戶的簡(jiǎn)檔信息(例如化身(avatar)圖像或者情緒消息)之類的輔助信息也可以存儲(chǔ)在服務(wù)器上。此外,客戶端應(yīng)用程序也彼此交換存在性信息。該存在性信息指示用戶的可用性狀態(tài),并且至少部分地由用戶他自己或她自己定義。例如,存在性可以指示用戶是否離線、在線但是選擇成不可用(“請(qǐng)勿打擾”)或者在線并且選擇成可用。例如,每個(gè)客戶端可以周期性地輪詢其聯(lián)系人列表中的每個(gè)聯(lián)系人以便確定他們各自的存在性,和/或每個(gè)客戶端可以周期性地向其列表中的每個(gè)聯(lián)系人發(fā)送出存在性更新。存在性典型地基于P2P技術(shù)在最終用戶之間直接地而不是經(jīng)由服務(wù)器用信號(hào)發(fā)送。當(dāng)進(jìn)行呼叫時(shí),呼叫者的客戶端基于最新的存在性信息確定被呼叫者是否可用來接受呼叫。
技術(shù)實(shí)現(xiàn)要素:
依照本發(fā)明的實(shí)施例,提供了一種通信提供商的網(wǎng)絡(luò)元件,該網(wǎng)絡(luò)元件包括:收發(fā)器裝置,其被設(shè)置成經(jīng)由基于分組的通信網(wǎng)絡(luò)接收來自始發(fā)端點(diǎn)的請(qǐng)求消息;以及處理裝置。處理裝置被配置成響應(yīng)于來自始發(fā)端點(diǎn)的請(qǐng)求消息而生成與來自始發(fā)端點(diǎn)的預(yù)期用于目的地端點(diǎn)的通信有關(guān)的推送通知,該通信要通過基于分組的網(wǎng)絡(luò)進(jìn)行。收發(fā)器裝置被設(shè)置成通過基于分組的網(wǎng)絡(luò)將推送通知發(fā)送至目的地端點(diǎn)。處理裝置進(jìn)一步被配置成利用包括代表始發(fā)用戶的圖像的指示的有效載荷生成推送通知,以便在就所述通信通知目的地用戶的用戶通知中由目的地端點(diǎn)輸出。至少所述圖像的指示在所述網(wǎng)絡(luò)元件處被確定并且插入到推送通知的有效載荷中。
依照本發(fā)明的另外的實(shí)施例,提供了一種相應(yīng)的方法和計(jì)算機(jī)程序產(chǎn)品。
本發(fā)明內(nèi)容被提供來以簡(jiǎn)化的形式引入構(gòu)思的選擇,這些構(gòu)思在下面的具體實(shí)施方式中進(jìn)一步加以描述。本發(fā)明內(nèi)容并不預(yù)期識(shí)別要求保護(hù)的主題的關(guān)鍵特征或基本特征,也不預(yù)期限制要求保護(hù)的主題。要求保護(hù)的主題也不限于解決現(xiàn)有系統(tǒng)的所提到的缺點(diǎn)中的任何一個(gè)或全部的實(shí)現(xiàn)方式。
附圖說明
圖1為依照一個(gè)或多個(gè)實(shí)施例的通信系統(tǒng)的一個(gè)示意圖。
圖2為依照一個(gè)或多個(gè)實(shí)施例的通信系統(tǒng)的另一個(gè)示意圖。
圖3為依照一個(gè)或多個(gè)實(shí)施例的通信系統(tǒng)的另一個(gè)示意圖。
圖4為依照一個(gè)或多個(gè)實(shí)施例的兩個(gè)用戶終端的示意圖,以及
圖5為依照一個(gè)或多個(gè)實(shí)施例的網(wǎng)絡(luò)元件和兩個(gè)用戶終端的示意圖。
具體實(shí)施方式
隨著能夠運(yùn)行諸如VoIP客戶端之類的通信客戶端應(yīng)用程序的手持式移動(dòng)電話的日益流行,存在越來越多數(shù)量的端點(diǎn)可用于參與通過因特網(wǎng)等等實(shí)現(xiàn)的VoIP通信系統(tǒng)或者其他這樣的基于分組的通信系統(tǒng)。然而,也可能出現(xiàn)的一個(gè)問題是,移動(dòng)電話手持送受話器典型地具有比傳統(tǒng)臺(tái)式或膝上型計(jì)算機(jī)更有限的資源,例如每單位時(shí)間能夠執(zhí)行更少的處理周期,每處理周期具有更少的功能,具有更有限的存儲(chǔ)器資源(例如RAM和/或緩存)和/或具有更少的屏幕區(qū)域資源。因此,一些終端上的操作系統(tǒng)(OS)可以將特定應(yīng)用程序置于背景狀態(tài)下。這可以包括通信客戶端。在背景狀態(tài)下,背景化應(yīng)用程序可以完全暫停,或者以不能夠檢測(cè)到來的呼叫邀請(qǐng)和/或處理傳統(tǒng)的呼叫邀請(qǐng)的程度每單位時(shí)間被調(diào)度有限的處理周期。例如,這可能在另一個(gè)應(yīng)用程序正在前景狀態(tài)下運(yùn)行的情況下,尤其是在其他應(yīng)用程序在處理、存儲(chǔ)器和/或屏幕資源方面密集,例如運(yùn)行于全屏模式或者像主導(dǎo)應(yīng)用程序那樣當(dāng)前具有某種其他狀態(tài)的情況下發(fā)生。一個(gè)實(shí)例將是在移動(dòng)電話上玩的計(jì)算機(jī)游戲。在這樣的情況下,如果客戶端不能夠發(fā)送出存在性更新或者對(duì)來自其他用戶的存在性輪詢進(jìn)行響應(yīng),那么用戶根據(jù)他或她的存在性可能看起來是離線的。然而,用戶可能仍然希望可用于接受呼叫,例如將寧愿中斷視頻游戲而不是錯(cuò)過呼叫。因此,傳統(tǒng)的存在性概念開始被打破。類似的問題可能潛在地發(fā)生在具有能夠?qū)⑻囟☉?yīng)用程序置于背景狀態(tài)下以利于一個(gè)或多個(gè)其他應(yīng)用程序的特征的任何終端上。因此,可能希望的是遠(yuǎn)離用于呼叫設(shè)立的P2P方法,或者至少遠(yuǎn)離純粹的P2P方法。
諸如在基于分組的網(wǎng)絡(luò)上實(shí)現(xiàn)的常規(guī)P2P系統(tǒng)之類的通信系統(tǒng)可能出現(xiàn)的另一個(gè)問題上呼叫信令的速度,尤其是在呼叫被應(yīng)答之前要花費(fèi)多長(zhǎng)時(shí)間,或者要花費(fèi)多長(zhǎng)時(shí)間確定呼叫未被應(yīng)答。這尤其是(但非排他性地)在被呼叫者的客戶端如上面所討論的處于背景狀態(tài)下時(shí)可能是個(gè)問題,其中呼叫者可能必須在他或她被通知被呼叫者不可用之前等待企圖的呼叫邀請(qǐng)超時(shí)。呼叫信令延遲也可能發(fā)生在其他情形中以及其他類型的通信系統(tǒng)中。
因此,可能希望的是提供一種改進(jìn)的或者可替換的向目的地用戶終端通知呼叫或者其他通信事件的方式。
一些其他類型的通信系統(tǒng)使用推送通知來通知通信事件的目的地用戶終端。推送通知是在服務(wù)器或者另一個(gè)始發(fā)元件的指使下而不是在目的地終端本身的指使下(即與由目的地終端拉拽相反)從服務(wù)器發(fā)送的通知。因此,推送通知可以被認(rèn)為與目的地終端異步。例如,常規(guī)上,這樣的推送通知可以用來指示來源于始發(fā)用戶終端的IM(即時(shí)消息傳遞)聊天消息或者文件傳輸在服務(wù)器處的可用性。
然而,在過去,“原始”推送通知僅僅通知目的地終端在服務(wù)器處存在等待它的某種通信。目的地終端于是仍然必須輪詢服務(wù)器以便確定等待通信的性質(zhì),即確定它被通知的事件的性質(zhì),并且響應(yīng)于接收到推送通知而從服務(wù)器拉拽涉及事件的性質(zhì)的有關(guān)信息。因此,例如,這意味著一旦目的地終端接收到通知,那么它仍然必須向后參閱服務(wù)器以獲得允許目的地用戶就他或她是否希望獲得所述通信做出明智決定的信息(如果這樣的話,在此之前再次回去取回等待通信,例如取回等待IM聊天消息或者文件傳輸)。
如果例如這樣的推送通知系統(tǒng)直接適于向用戶通知呼叫邀請(qǐng),使得原始通知用來從背景狀態(tài)喚醒目的地客戶端應(yīng)用程序,那么在喚醒時(shí)目的地客戶端于是將不得不輪詢服務(wù)器以便發(fā)現(xiàn)它為什么被喚醒(即確定提議了呼叫)并且發(fā)現(xiàn)使得它能夠?qū)艚醒?qǐng)進(jìn)行響應(yīng)的始發(fā)終端或者呼叫者的身份。這可能把不希望的延遲引入到呼叫信令中。
此外,獲取的信息的性質(zhì)可能仍然用途有限,并且不一定適合所述通信的特定預(yù)期接受者或者所述通信的特定發(fā)送者或者發(fā)送者和接受者的組合。
依照本發(fā)明的實(shí)施例,提供了一種擴(kuò)增推送通知機(jī)制,其中推送通知包括有效載荷,該有效載荷攜帶使得目的地用戶能夠就是否接受呼叫或通信做出明智決定的信息。特別地,有效載荷信息至少包括代表始發(fā)用戶——例如到來的話音或視頻呼叫的情況下的呼叫者的圖像的指示。
該圖像可以稱為始發(fā)用戶(例如呼叫者)的“化身”,并且可以是例如在其他用戶從VoIP提供商或者其他通信提供商的服務(wù)器觀看該用戶的簡(jiǎn)檔時(shí)通信系統(tǒng)內(nèi)出于其他目的用來代表該用戶的相同圖像。
在實(shí)施例中,所述圖像的指示包括插入到推送通知的有效載荷中的圖像本身,從而接受者終端(例如被呼叫者的終端)不必在確定始發(fā)用戶(例如呼叫者)的身份之前執(zhí)行取回圖像的附加呼叫信令。
在可替換的實(shí)施例中,所述圖像的指示可以包括到圖像的鏈接,該鏈接允許目的地終端以最少的附加信令獲取圖像。
有效載荷可選地可以包括其他的信息,例如所述通信的類型的指示(例如呼叫、IM、話音郵件、文件傳輸);始發(fā)用戶的附加指示(例如用戶名和/或顯示名);用于通知的語言或語言模板;始發(fā)終端的地址;始發(fā)終端的類型的指示;始發(fā)用戶的加密密鑰;時(shí)間戳;提議的通信會(huì)話的會(huì)話標(biāo)識(shí)符(例如提議的呼叫的呼叫ID);用于通信的交談標(biāo)識(shí)符;和或用于通信的任何中繼器的指示。
在實(shí)施例中,由于在推送通知本身中提供了附加用戶信息,因而在通知的時(shí)間,接收用戶能夠更好地確定他或她是否希望接受關(guān)聯(lián)的通信或通信會(huì)話(例如提議的呼叫)。在特定的實(shí)施例中,這在不一定必須首先從通信提供商的網(wǎng)絡(luò)元件中取回附加信息以便確定到來的通信的性質(zhì)和/或發(fā)送者的身份的情況下實(shí)現(xiàn)。這有利地減少了雙程的數(shù)量并且因而降低了信令延遲。
如所提到的,諸如手持式移動(dòng)電話之類的現(xiàn)代移動(dòng)設(shè)備現(xiàn)在能夠運(yùn)行通信客戶端應(yīng)用程序以便通過諸如因特網(wǎng)之類的基于分組的網(wǎng)絡(luò)而不是僅僅經(jīng)由移動(dòng)電話的專用蜂窩話音通道執(zhí)行諸如VoIP或者其他基于分組的話音或視頻呼叫之類的基于分組的通信。利用該能力,迎來在線且可呼叫或者可聯(lián)系的用戶數(shù)量的急劇增加。然而,這樣的用戶的客戶端應(yīng)用程序也可能潛在地被發(fā)現(xiàn)在呼叫時(shí)處于背景狀態(tài)下,由此客戶端被暫停,或者至多被移動(dòng)設(shè)備的操作系統(tǒng)調(diào)度非常有限的資源——從而需要被喚醒以便接收到來的呼叫。
在這樣的操作系統(tǒng)制度下——其中應(yīng)用程序不再可以保證能夠在背景中處理諸如到來的呼叫、聊天等等之類的事件——VoIP或者其他通信提供商的架構(gòu)將受益于擴(kuò)展。例如,這在以下情況下將是有益的:提供商希望能夠?qū)⒑艚?和其他)通知輸送至它們的通信系統(tǒng)的用戶,即使這些用戶“背景化”了有關(guān)的通信客戶端應(yīng)用程序(或者讓該應(yīng)用程序由操作系統(tǒng)背景化),但是雖然如此其仍然在線并且因此潛在地可呼叫或者可聯(lián)系。也可以修改客戶端應(yīng)用程序的呼叫部件以確保呼叫用戶的初始意圖可以可靠地輸送至其中用戶應(yīng)當(dāng)能夠——經(jīng)由推送通知(如果需要的話)接收呼叫(或者其他通信)的所有端點(diǎn)。
例如,考慮其中被呼叫者在等待他或她的朋友呼叫(也許來自國(guó)外,因此出于成本的原因偏好使用VoIP)的同時(shí)正在手持式電話或者平板計(jì)算機(jī)上使用web瀏覽器或者玩視頻游戲的使用情況。被呼叫者基于存在性狀態(tài)檢查朋友是否在線,但是當(dāng)他或她不在線時(shí),被呼叫者開始瀏覽或者玩以填補(bǔ)時(shí)間。接著,朋友(呼叫者)隨后登錄到例如臺(tái)式計(jì)算機(jī)上的他或她的客戶端應(yīng)用程序,準(zhǔn)備好呼叫被呼叫者。在實(shí)施例中,可以修改被呼叫者的客戶端以便將被呼叫者向呼叫者顯示為在線,即使被呼叫者的客戶端應(yīng)用程序由于瀏覽器或游戲需要消耗的高系統(tǒng)資源的原因,例如由于在瀏覽器中運(yùn)行的flash應(yīng)用程序或者其他小應(yīng)用程序的原因而由被呼叫者的操作系統(tǒng)暫?;蛘咭种啤T诒景l(fā)明的實(shí)施例中,呼叫者點(diǎn)擊呼叫按鈕以發(fā)起與被呼叫者的呼叫,并且被呼叫者的操作系統(tǒng)被配置成彈出向他或她通知到來的呼叫的提示。被呼叫者的客戶端應(yīng)用程序被配置成使得如果被呼叫者響應(yīng)于提示碰觸或者點(diǎn)擊接受按鈕,那么客戶端應(yīng)用程序在被呼叫者的終端上被帶回到前景中,從而允許被呼叫者對(duì)呼叫(話音或視頻)進(jìn)行應(yīng)答并且開始與他的朋友或者呼叫者交談。
在該示例性方案中存在一些要指出的元素。被呼叫者客戶端的狀態(tài)在最壞的情況下潛在地是完全暫停的(終止),并且因此不會(huì)由常規(guī)的P2P會(huì)話建立方法達(dá)成。在本發(fā)明的實(shí)施例中,被呼叫者可能不知道或者注意到他或她的客戶端應(yīng)用程序被暫停,因?yàn)檫@可以不由被呼叫者用戶顯式地完成——事實(shí)上恰恰相反,這可能由操作系統(tǒng)自動(dòng)地完成,并且被呼叫者可能假定他或她的客戶端應(yīng)用程序仍然在運(yùn)行,并且他們?cè)诰€且可達(dá)到。此外,在此方案中,與用于這樣的系統(tǒng)的常規(guī)存在性機(jī)制不同的是,沒有使得存在性依賴于(或者不僅僅依賴于)客戶端的P2P可用性。
為了支持上面的方案,提供商可以實(shí)現(xiàn)新的呼叫部件和/或?qū)ΜF(xiàn)有的部件做出必要的改變。
一個(gè)目標(biāo)是讓被呼叫者客戶端喚醒并且能夠在適當(dāng)?shù)臅r(shí)間表和范圍內(nèi)與呼叫者客戶端建立會(huì)話(例如P2P會(huì)話)。為了保持呼叫設(shè)立時(shí)間盡可能短,只要有可能,就應(yīng)當(dāng)將會(huì)話和呼叫建立中的雙程保持為最少。
如上面的實(shí)例方案中所示范的,呼叫發(fā)起流可以支持需要經(jīng)由非P2P消息輸送系統(tǒng)用信號(hào)發(fā)送呼叫的意圖的使用情況,這可以在需要的情況下回退到推送通知以便喚醒被呼叫者客戶端。例如,這可以借助于由所討論的操作系統(tǒng)的提供商提供的推送通知服務(wù)。
可以更新呼叫部件以便例如在核心庫(kù)中實(shí)現(xiàn)必要的客戶端部件變化,以確保它們迎合所有需要的使用情況、互操作性和后向兼容性方案。
可以更新呼叫客戶端部件以便允許被呼叫者客戶端接受借助于推送通知輸送方法接收的到來的呼叫邀請(qǐng)。這可以包括允許客戶端UI(用戶接口)層將接收的有效載荷信息傳遞至呼叫部件、使得P2P會(huì)話建立和呼叫設(shè)立及信令能夠進(jìn)行的一個(gè)或多個(gè)UI API(應(yīng)用編程接口)的集合。
為了將呼叫有關(guān)信息包括在經(jīng)由消息輸送系統(tǒng)輸送至被呼叫者端點(diǎn)的消息的有效載荷中,呼叫功能可以支持基于云的服務(wù),這些服務(wù)接收來自輸送基礎(chǔ)設(shè)施的消息并且填入該呼叫特定有效載荷信息。
呼叫通知將包括足夠的信息以便允許被呼叫者就是否應(yīng)答呼叫做出明智的決定。這可以包括例如呼叫者姓名(用戶名和/或顯示名)、呼叫者的化身和/或呼叫邀請(qǐng)的時(shí)間戳。呼叫通知也可以包括諸如握手消息之類的允許被呼叫者客戶端制定接受響應(yīng)的信息,以及允許作為響應(yīng)聯(lián)系呼叫者的信息(例如呼叫者用戶名和/或地址)。
一旦輸送系統(tǒng)的呼叫通知器完成了以上所述,那么傳遞呼叫通知以便最終輸送至被呼叫者端點(diǎn)。這將在被邀請(qǐng)參加呼叫的用戶為接收推送通知進(jìn)行了注冊(cè)的情況下或者在存在到客戶端的開放式連接的情況下發(fā)生。通知可以通過直接的持久連接(被呼叫者客戶端處于前景中和/或一些背景狀態(tài)),或者在需要的情況下經(jīng)由推送通知到達(dá)基于有關(guān)操作系統(tǒng)的通知服務(wù)(被呼叫者客戶端被暫停和/或一些其他背景狀態(tài))。
參與呼叫的邀請(qǐng)?jiān)谌舾汕闆r下可以由呼叫方發(fā)出,這些情況例如:在實(shí)際呼叫建立之前,作為發(fā)起的部分;或者在進(jìn)行中的呼叫期間,將另一個(gè)參與者添加到呼叫。
圖1為基于傳統(tǒng)P2P范式的通信系統(tǒng)的示意圖。該通信系統(tǒng)包括基于分組的網(wǎng)絡(luò)100,例如諸如因特網(wǎng)之類的廣域互聯(lián)網(wǎng)絡(luò)(互聯(lián)網(wǎng))。該通信系統(tǒng)也包括多個(gè)最終用戶終端102,每個(gè)最終用戶終端包括可操作來耦合到因特網(wǎng)100的收發(fā)器裝置,并且每個(gè)最終用戶終端包括所討論的通信系統(tǒng)的對(duì)應(yīng)通信客戶端應(yīng)用程序。最終用戶終端102中的每一個(gè)可以例如采取臺(tái)式或膝上型計(jì)算機(jī)、平板計(jì)算機(jī)或者手持式移動(dòng)電話(或者“手持送受話器”)的形式。用戶終端102中的每一個(gè)是通信系統(tǒng)內(nèi)的VoIP呼叫或者其他基于分組的通信的潛在端點(diǎn)。圖1中圖示出的是呼叫者端點(diǎn)102a和被呼叫者端點(diǎn)102b。
依照常規(guī)P2P原理,用戶終端102c中的一個(gè)或多個(gè)上的客戶端應(yīng)用程序呈現(xiàn)分布式地址查找數(shù)據(jù)庫(kù)的節(jié)點(diǎn)的狀態(tài)。為了確定被呼叫者的用戶終端102b的地址(例如包括IP地址),在步驟S10處呼叫者的用戶終端102a上的客戶端經(jīng)由因特網(wǎng)100與充當(dāng)分布式數(shù)據(jù)庫(kù)的節(jié)點(diǎn)的用戶終端102c之一上的客戶端通信。呼叫者的終端102a上的客戶端通過向數(shù)據(jù)庫(kù)節(jié)點(diǎn)102c發(fā)送識(shí)別通信系統(tǒng)內(nèi)的被呼叫者的被呼叫者的用戶名而查詢?cè)摂?shù)據(jù)庫(kù)節(jié)點(diǎn)102c,并且數(shù)據(jù)庫(kù)節(jié)點(diǎn)102c返回被呼叫者的用戶終端102b的所需地址。在步驟S12處,呼叫用戶終端102a上的客戶端然后使用該地址向預(yù)期的被呼叫者的終端102b上的客戶端用信號(hào)發(fā)送呼叫設(shè)立請(qǐng)求或者“邀請(qǐng)”(CI)。作為響應(yīng),如果被呼叫者選擇接受呼叫,那么被呼叫者終端102b上的客戶端向后用信號(hào)發(fā)送呼叫接受響應(yīng)。呼叫者和被呼叫者的終端102a和102b上的客戶端也交換認(rèn)證證書以便驗(yàn)證彼此的身份。這些客戶端因此建立彼此之間的會(huì)話以便作為現(xiàn)場(chǎng)話音或視頻呼叫的一部分發(fā)送來自其各自終端102、102b上的麥克風(fēng)和/或視頻照相機(jī)的實(shí)時(shí)話音和/或視頻內(nèi)容形式的通信量。由于地址查找基于分布式數(shù)據(jù)庫(kù),因而不必涉及用于這個(gè)目的的中央服務(wù)器。呼叫設(shè)立信令、認(rèn)證和呼叫通信量也在無需涉及中央服務(wù)器的情況下進(jìn)行。
在實(shí)施例中,如果呼叫者的用戶終端102a由于NAT(網(wǎng)絡(luò)地址轉(zhuǎn)換)或者防火墻108的原因而不能直接與被呼叫者的用戶終端102b通信,那么這些客戶端可以被設(shè)置成經(jīng)由也可以由在P2P通信系統(tǒng)的一個(gè)或多個(gè)其他用戶的最終用戶終端102d上運(yùn)行的客戶端實(shí)現(xiàn)的一個(gè)或多個(gè)中繼器通信。中繼最終用戶終端102d的用戶不必是呼叫的參與者(不必消耗呼叫的話音或視頻內(nèi)容,并且由于加密的原因而的確不能)。盡管如此,中繼最終用戶終端102d的用戶在他或她簽約到P2P通信系統(tǒng)時(shí)同意這樣的情形,并且他自己或者她自己在其他場(chǎng)合下可以受益于互惠的安排。
通信系統(tǒng)可以進(jìn)一步包括耦合到因特網(wǎng)100的后端服務(wù)器104,其中所述客戶端中的每一個(gè)可以存儲(chǔ)各自的聯(lián)系人列表,該列表是其各自用戶的聯(lián)系人的列表(通信系統(tǒng)被配置成使得用戶變成相互協(xié)議的聯(lián)系人)。后端服務(wù)器104也可以存儲(chǔ)用于每個(gè)用戶的簡(jiǎn)檔信息,例如用于向通信系統(tǒng)內(nèi)的其他用戶代表對(duì)應(yīng)用戶的化身圖像。每個(gè)客戶端可以訪問和顯示聯(lián)系人的簡(jiǎn)檔,使得呼叫者可以看見被呼叫者的簡(jiǎn)檔信息,并且反之亦然。
通信系統(tǒng)也可以包括耦合在因特網(wǎng)100與電路交換網(wǎng)絡(luò)(未示出)之間的網(wǎng)關(guān)106。這樣的網(wǎng)絡(luò)可以被稱為PSTN(公共交換電話網(wǎng)絡(luò)),例如陸線網(wǎng)絡(luò),或者諸如3GPP網(wǎng)絡(luò)之類的移動(dòng)蜂窩網(wǎng)絡(luò)。用戶終端102上的客戶端由此也能夠經(jīng)由網(wǎng)關(guān)106而與更傳統(tǒng)的電話建立呼叫。
圖2圖示出依照本發(fā)明實(shí)施例的修改的混合P2P通信系統(tǒng)。圖1的一些或者全部部件也可以仍然與圖2的系統(tǒng)并行地存在,但是為了簡(jiǎn)明起見一些部件從圖2中省略。此外,通信系統(tǒng)包括通信服務(wù)提供商(例如VoIP提供商)的、耦合到因特網(wǎng)100并且被設(shè)置成運(yùn)行呼叫控制和通知軟件的一個(gè)或多個(gè)服務(wù)器單元的形式的網(wǎng)絡(luò)元件204。通信系統(tǒng)也包括耦合到因特網(wǎng)100的一個(gè)或多個(gè)基于操作系統(tǒng)的推送通知服務(wù)(OS PNS)202。所述一個(gè)或多個(gè)基于操作系統(tǒng)的推送通知服務(wù)202中的每一個(gè)與對(duì)應(yīng)的操作系統(tǒng)關(guān)聯(lián),并且由操作系統(tǒng)的制造商和/或發(fā)布商提供以便支持經(jīng)由所討論的操作系統(tǒng)可用的專用推送通知機(jī)制。基于操作系統(tǒng)的推送通知服務(wù)202采取被設(shè)置成運(yùn)行推送通知軟件的一個(gè)或多個(gè)服務(wù)器單元的形式。
在圖2的示例性系統(tǒng)中,圖示的元件102、202、204被配置成如下操作。在步驟S20處,呼叫者的用戶終端102a上的客戶端將呼叫邀請(qǐng)(CI)不直接發(fā)送到被呼叫者的用戶終端102b上的客戶端,而是發(fā)送到VoIP提供商的呼叫控制和通知元件204(消息CI不一定與關(guān)于圖1所描述的消息相同)。在步驟S22處,響應(yīng)于接收到來自呼叫者的呼叫邀請(qǐng),VoIP提供商的呼叫控制和通知元件204生成它發(fā)送至基于操作系統(tǒng)的推送通知服務(wù)202的推送通知請(qǐng)求(PNR)。在步驟S24處,響應(yīng)于接收到來自VoIP提供商204的推送通知請(qǐng)求,操作系統(tǒng)的推送通知服務(wù)202將基于操作系統(tǒng)的推送通知(PN_OS)發(fā)送至被呼叫者的用戶終端102b上的操作系統(tǒng)。基于操作系統(tǒng)的推送通知由被呼叫者的用戶終端102b上的操作系統(tǒng)接收和處理,使得它在被呼叫者的用戶終端102b的屏幕上顯示向被呼叫者用戶指示存在到來的事件的彈出消息。
在本發(fā)明的實(shí)施例中,屏幕上消息可以提示被呼叫者是否接受到來的呼叫。如果被呼叫者的客戶端應(yīng)用程序當(dāng)前是背景化的,那么屏幕上消息可以提示用戶是否從背景狀態(tài)喚醒被呼叫者的客戶端應(yīng)用程序。在實(shí)施例中,可以將這些動(dòng)作組合到相同的提示中。如果作為響應(yīng),被呼叫者以肯定方式提供用戶輸入,那么操作系統(tǒng)通過重新調(diào)度至完全操作水平或者至少給被呼叫者的終端102上的被呼叫者客戶端應(yīng)用程序調(diào)度處理呼叫的足夠資源而喚醒該被呼叫者客戶端應(yīng)用程序。
如下文中更詳細(xì)地討論的,在實(shí)施例中,推送通知PN_OS可以包括使得被呼叫者的用戶終端102b上的客戶端能夠直接通過因特網(wǎng)100而不是經(jīng)由提供商或者服務(wù)元件202和204中的任何一個(gè)的服務(wù)器制定返回握手消息和信號(hào)的有效載荷,所述返回握手消息和信號(hào)通過因特網(wǎng)100向后通告呼叫者的用戶終端102a上的客戶端。如果被呼叫者接受來自操作系統(tǒng)的用戶提示,那么被呼叫者的用戶終端102b上的操作系統(tǒng)將推送通知的有效載荷的至少一部分向上傳遞至被呼叫者的客戶端應(yīng)用程序以便它可以制定有關(guān)響應(yīng)并且向后將該響應(yīng)發(fā)送至呼叫者。
圖3圖示出依照本發(fā)明實(shí)施例的另一個(gè)修改的混合P2P通信系統(tǒng)。圖1和/或圖2的一些或者全部部件也可能仍然與圖3的系統(tǒng)并行地存在,但是為了簡(jiǎn)明起見一些部件從圖3中省略了。
在圖3的示例性系統(tǒng)中,圖示的元件102、204被配置成如下操作。在步驟S20處,呼叫者的用戶終端102a上的客戶端同樣地將呼叫邀請(qǐng)(CI)不直接發(fā)送到被呼叫者的用戶終端102b上的客戶端,而是發(fā)送到VoIP提供商的呼叫控制和通知元件204(消息CI不一定與關(guān)于圖1所描述的消息相同)。在實(shí)施例中,這可以是與關(guān)于圖2所描述的步驟相同的步驟,或者在其他實(shí)施例中,它可以是可替換的或者附加的單獨(dú)步驟。然而,在這種情況下,VoIP提供商元件204不發(fā)送(或者不僅僅發(fā)送)推送通知請(qǐng)求(PNR)至操作系統(tǒng)的推送通知服務(wù)202。相反地,它直接制定它自己的應(yīng)用層推送通知(PN_AL),它直接通過因特網(wǎng)100將該應(yīng)用層推送通知發(fā)送至被呼叫者的用戶終端102b上的客戶端。被呼叫者的用戶終端102b上的客戶端然后可以在應(yīng)用層處理該通知以便自己借助于應(yīng)用層機(jī)制而不是上面描述的操作系統(tǒng)機(jī)制就到來的呼叫提示被呼叫者用戶。
如下文中更詳細(xì)地討論的,在實(shí)施例中,推送通知PN_AL包括使得被呼叫者的用戶終端102b上的客戶端能夠直接通過因特網(wǎng)100而不是經(jīng)由提供商或者服務(wù)元件202和204中的任何一個(gè)的服務(wù)器制定返回握手消息和信號(hào)的有效載荷,所述返回握手消息和信號(hào)通過因特網(wǎng)100向后通告呼叫者的用戶終端102a上的客戶端。在這種情況下,如果被呼叫者的終端102b上的客戶端處于前景狀態(tài)下(未受抑制以利于任何其他應(yīng)用程序)或者處于其中它被調(diào)度有限的周期但是仍然足以處理到來的呼叫的特殊背景狀態(tài)下,那么被呼叫者的客戶端能夠通過在操作系統(tǒng)調(diào)度被呼叫者的客戶端的時(shí)間期間偵聽來自網(wǎng)絡(luò)100的到來的通信,例如在被呼叫者的終端102b的被分配用于供被呼叫者的客戶端使用的網(wǎng)絡(luò)套接字上偵聽而直接訪問推送通知的有效載荷。
應(yīng)當(dāng)指出的是,圖1、圖2和圖3的機(jī)制中的兩個(gè)或更多可以并行地存在,并且這些機(jī)制中的任何一個(gè)或者全部可用于用信號(hào)發(fā)送呼叫邀請(qǐng)或通知。
在一個(gè)實(shí)施例中,至少被呼叫者端點(diǎn)102b包括移動(dòng)終端,該移動(dòng)終端具有相對(duì)有限的資源(處理、存儲(chǔ)器和/或屏幕資源),并且具有易于背景化對(duì)應(yīng)的客戶端應(yīng)用程序以利于諸如某些情況下的視頻游戲之類的另一個(gè)應(yīng)用程序的操作系統(tǒng)。在其中客戶端應(yīng)用程序完全被暫停的情況下,這意味著它被終止,直到喚醒,并且可能需要冷啟動(dòng)以便接收呼叫或者其他通信。
圖4給出了形成呼叫的兩個(gè)端點(diǎn)(或者甚至在多方會(huì)議呼叫方案中的更大數(shù)量的端點(diǎn)中的兩個(gè))的呼叫用戶(呼叫者)的始發(fā)最終用戶終端102a以及被呼叫用戶(被呼叫者)的目的地最終用戶終端102b的示意性框圖。
始發(fā)用戶終端102a包括對(duì)應(yīng)的操作系統(tǒng)400a、VoIP通信系統(tǒng)的通信客戶端402a(以及潛在地還有其他應(yīng)用程序)和用戶接口408a。VoIP客戶端402a存儲(chǔ)在始發(fā)終端102a的(諸如電子或磁性存儲(chǔ)設(shè)備之類的計(jì)算機(jī)可讀存儲(chǔ)器或者介質(zhì)形式的)存儲(chǔ)器上,并且被設(shè)置用于在始發(fā)終端102a的處理裝置上執(zhí)行。術(shù)語“計(jì)算機(jī)可讀存儲(chǔ)器”意在覆蓋存儲(chǔ)介質(zhì)的所有法定形式,并且因此并非意在覆蓋諸如信號(hào)和載波之類的非法定介質(zhì)形式。
客戶端應(yīng)用程序402a也被稱為在操作系統(tǒng)400a上運(yùn)行,因?yàn)樗徽{(diào)度用于由操作系統(tǒng)400a執(zhí)行。如果存在多個(gè)存在且運(yùn)行于終端102a上的應(yīng)用程序,那么操作系統(tǒng)將調(diào)度它們以便例如以交錯(cuò)的方式和/或在并行處理資源上執(zhí)行,使得每個(gè)應(yīng)用程序在操作系統(tǒng)400a的控制下被分配至少一些處理資源。當(dāng)被調(diào)度時(shí),客戶端應(yīng)用程序402a能夠經(jīng)由用戶接口408a與用戶交互并且經(jīng)由用戶終端102a的收發(fā)器裝置通過網(wǎng)絡(luò)100通信。如將關(guān)于目的地終端102b更詳細(xì)地討論的,操作系統(tǒng)也可以暫停諸如客戶端應(yīng)用程序之類的應(yīng)用程序的執(zhí)行。
目的地用戶終端102b也包括對(duì)應(yīng)的操作系統(tǒng)400b、VoIP通信系統(tǒng)的通信客戶端402b、諸如電子郵件客戶端404和視頻游戲406之類的其他應(yīng)用程序以及用戶接口408b。通信客戶端402b存儲(chǔ)在目的地終端102b的(諸如電子或磁性存儲(chǔ)設(shè)備之類的計(jì)算機(jī)可讀存儲(chǔ)器或者介質(zhì)形式的)存儲(chǔ)器上,并且被設(shè)置用于在目的地終端102b的處理裝置上執(zhí)行。VoIP客戶端應(yīng)用程序402b和其他應(yīng)用程序404、406被稱為在操作系統(tǒng)400b上運(yùn)行,因?yàn)樗鼈儽徽{(diào)度用于由操作系統(tǒng)例如以交錯(cuò)的方式和/或在并行處理資源上執(zhí)行,使得每個(gè)應(yīng)用程序在操作系統(tǒng)400b的控制下被分配至少一些處理資源。當(dāng)被調(diào)度時(shí),VoIP客戶端402b能夠經(jīng)由用戶接口408b與用戶交互并且經(jīng)由目的地用戶終端102b的收發(fā)器裝置通過網(wǎng)絡(luò)100通信。當(dāng)所述其他應(yīng)用程序404和406被調(diào)度時(shí),情況同樣如此。
如所提到的,操作系統(tǒng)400b也可以具有暫停諸如VoIP客戶端402b之類的應(yīng)用程序或者將其置于其中它每單位時(shí)間僅僅被分配非常有限數(shù)量的處理資源的某種其他背景狀態(tài)下的能力。
在實(shí)施例中,操作系統(tǒng)400b的調(diào)度包括將每個(gè)應(yīng)用程序402b、404、406置于前景狀態(tài)或者背景狀態(tài)下的能力。
前景狀態(tài)可以包括其中前景應(yīng)用程序?yàn)樵诋?dāng)前時(shí)間運(yùn)行的主要的、主導(dǎo)的應(yīng)用程序的狀態(tài)。這點(diǎn)的一個(gè)特定實(shí)例是應(yīng)用程序在全屏模式下運(yùn)行,在該模式下,它以其他應(yīng)用程序?yàn)榇鷥r(jià)被分配整個(gè)屏幕資源。例如,視頻游戲406在運(yùn)行時(shí)可以被給予全屏或者其他主導(dǎo)前景狀態(tài),因?yàn)橛脩艨赡苄枰羴硗嬗螒蚝?或游戲可能消耗顯著的處理資源,從而可能使得有限的處理資源或者沒有處理資源可用于諸如VoIP應(yīng)用程序402b和電子郵件客戶端404之類的其他應(yīng)用程序。這種方案尤其可能發(fā)生在諸如手持式移動(dòng)電話之類的移動(dòng)終端上,在該移動(dòng)終端處,資源與比如臺(tái)式計(jì)算機(jī)相比相對(duì)有限。
前景狀態(tài)的另一個(gè)實(shí)例可以包括這樣的狀態(tài),其中沒有一個(gè)應(yīng)用程序相對(duì)于任何其他應(yīng)用程序具有主導(dǎo)狀態(tài),例如,終端102b的用戶具有沒有應(yīng)用程序被最大化的開放式臺(tái)式機(jī),并且操作系統(tǒng)400b允許VoIP應(yīng)用程序402b具有足夠的處理資源以進(jìn)行完全操作、不受抑制以利于諸如視頻游戲406之類的任何其他應(yīng)用程序。
然而,當(dāng)一個(gè)諸如視頻游戲406之類的應(yīng)用程序處于主導(dǎo)前景狀態(tài)下時(shí),一個(gè)或多個(gè)其他應(yīng)用程序402b、404可以由操作系統(tǒng)400b置于背景狀態(tài)下。VoIP客戶端402b可以是針對(duì)這點(diǎn)的特定候選??商鎿Q地或者此外,在其他時(shí)間,操作系統(tǒng)400b可以將諸如VoIP客戶端402b之類的應(yīng)用程序置于背景狀態(tài)下以便節(jié)省電池資源。
在這樣的背景狀態(tài)下,VoIP客戶端402b或者被暫停,這意味著它不被操作系統(tǒng)400b調(diào)度任何處理周期,或者最多被抑制,使得它與非抑制前景狀態(tài)相比僅僅被調(diào)度有限的周期。在抑制狀態(tài)下,客戶端402b可能僅僅具有非常有限的功能,其中它可能不能夠單方面地處理到來的呼叫邀請(qǐng)或通知,或者可能不能夠使用在其他情況下在更高的功能狀態(tài)下可用的完全資源處理呼叫邀請(qǐng)或通知。
在前景狀態(tài)下,VoIP客戶端402b完全能夠偵聽到來的邀請(qǐng)或通知,它通過在目的地用戶終端102b的網(wǎng)絡(luò)套接字412上偵聽來完成這點(diǎn)。網(wǎng)絡(luò)套接字是被分配以供諸如VoIP客戶端402b之類的應(yīng)用程序使用的傳輸層端口和網(wǎng)絡(luò)地址的組合,典型地,IP套接字為IP地址和端口號(hào)的組合。例如,在前景狀態(tài)下,VoIP客戶端402b可能能夠直接從始發(fā)終端102a接收常規(guī)的P2P呼叫邀請(qǐng)(CI),并且相應(yīng)地處理該邀請(qǐng)以便接受呼叫,和/或可能能夠接收并且處理來自VoIP提供商204的應(yīng)用層推送通知(PN_AL)。目的地客戶端402b可以為此目的讓持久連接對(duì)于提供商的網(wǎng)絡(luò)元件204開放。
在實(shí)施例中,在背景狀態(tài)下,VoIP客戶端402b沒有調(diào)度的周期,并且必須依賴于基于操作系統(tǒng)的推送通知服務(wù)202,或者具有太有限的周期而不能依賴于除了基于操作系統(tǒng)的推送通知服務(wù)之外的任何事物。在這種情況下,基于操作系統(tǒng)的推送通知(OS_PN)由操作系統(tǒng)400b接收,作為響應(yīng)該操作系統(tǒng)在目的地終端102b上顯示屏幕上提示。該提示通知被呼叫者存在請(qǐng)求注意的通信事件,并且提示用戶選擇是否退出全屏模式或者以其他方式允許喚醒一個(gè)或多個(gè)休眠的應(yīng)用程序。屏幕上提示的格式可以由操作系統(tǒng)400b決定,可選地具有可以在推送通知中指定的少數(shù)參數(shù)。在一些實(shí)施例中,該提示可以向用戶通知僅僅存在未指定的通信事件這一事實(shí),并且通常詢問是否從全屏或者待機(jī)狀態(tài)喚醒電話。在其他實(shí)施例中,該提示可以包括一些允許用戶做出明智的決定的附加信息,例如通信事件為到來的呼叫的指示,和/或涉及呼叫者身份的用戶可觀看信息(例如顯示名和/或化身圖像)。這樣的附加信息可以從接收的推送通知的有效載荷中導(dǎo)出。
此外,如果用戶接受,那么操作系統(tǒng)400b與VoIP客戶端402b之間的適當(dāng)API 410可以將從推送通知有效載荷中導(dǎo)出的特定信息向上傳遞到喚醒的應(yīng)用程序402b,使得目的地終端102b上的VoIP客戶端402b可以制定響應(yīng)并且向后將該響應(yīng)返回始發(fā)終端102a。該有效載荷信息可以包括機(jī)器可讀標(biāo)識(shí)符信息,例如識(shí)別通信系統(tǒng)內(nèi)的呼叫者的用戶名和/或識(shí)別網(wǎng)絡(luò)100內(nèi)的呼叫者的終端102a的地址。
在可替換的實(shí)施例中,可以存在VoIP客戶端402b的背景狀態(tài),其中它被操作系統(tǒng)400b調(diào)度有限的周期,但是這些周期仍然足以至少偵聽套接字412上的應(yīng)用層推送通知并且對(duì)接收的通知執(zhí)行至少某種處理,甚至潛在地以便制定接受響應(yīng)并且在喚醒之前將其返回到始發(fā)終端(盡管可能仍然需要喚醒來實(shí)際地進(jìn)行呼叫,即一旦到來和出去的話音和/或視頻流開始,則處理這些流)。
使用基于操作系統(tǒng)的推送通知服務(wù),通知被發(fā)送至操作系統(tǒng)400b并且至少初始時(shí)由操作系統(tǒng)處理(即使操作系統(tǒng)400b隨后將有效載荷中的至少一些向上傳遞至應(yīng)用程序402b)。這不同于應(yīng)用層通知,其中操作系統(tǒng)400b給應(yīng)用程序402b調(diào)度至少一些周期,這些周期足夠該應(yīng)用程序偵聽有關(guān)套接字上的推送通知并且在不依賴于操作系統(tǒng)400b的任何特殊推送通知機(jī)制的情況下對(duì)接收的通知執(zhí)行至少某種處理。
圖5提供了依照本發(fā)明一個(gè)實(shí)例實(shí)現(xiàn)方式的VoIP提供商的呼叫控制和通知元件204的示意性框圖。網(wǎng)絡(luò)元件204包括:呼叫控制器502,耦合到呼叫控制器502的未接呼叫注冊(cè)器504,耦合到呼叫控制器502和基于操作系統(tǒng)的推送通知服務(wù)(OS PNS)202的推送通知中心506,推送使能端點(diǎn)(PEE)注冊(cè)器508,耦合到呼叫控制器510的解析器功能510,以及用于將始發(fā)用戶終端102a上的呼叫者客戶端402a耦合到呼叫控制器502的連接適配器512。元件502、504、506、508、510、512中的每一個(gè)可以實(shí)現(xiàn)為存儲(chǔ)在VoIP提供商204的一個(gè)或多個(gè)服務(wù)器單元的(諸如磁性或電子存儲(chǔ)設(shè)備之類的計(jì)算機(jī)可讀存儲(chǔ)器或者介質(zhì)形式的)存儲(chǔ)器上并且被設(shè)置成在VoIP提供商204的所述一個(gè)或多個(gè)服務(wù)器單元上運(yùn)行的軟件模塊。所述一個(gè)或多個(gè)服務(wù)器單元包括被設(shè)置成執(zhí)行所述軟件的處理裝置以及被設(shè)置成通過因特網(wǎng)100或者其他這樣的基于分組的網(wǎng)絡(luò)執(zhí)行有關(guān)通信的收發(fā)器裝置。
目的地用戶終端102b可以被注冊(cè)為推送使能端點(diǎn)(PEE),并且目的地終端102b上的被呼叫者客戶端402b可以被設(shè)置成能夠經(jīng)由IP套接字412接收來自推送通知中心506的一個(gè)或多個(gè)應(yīng)用層推送通知(PN_AL),和/或操作系統(tǒng)400b可以被設(shè)置成能夠接收來自基于操作系統(tǒng)的服務(wù)202的一個(gè)或多個(gè)基于操作系統(tǒng)的推送通知(PN_OS)。在后一情況下,目的地終端102b上的被呼叫者客戶端402b可以被設(shè)置成能夠經(jīng)由API 410接收來自基于操作系統(tǒng)的推送通知(PN_OS)中的一個(gè)或多個(gè)的有效載荷信息。
在操作中,始發(fā)終端102a上的呼叫者的VoIP客戶端402a通過經(jīng)由因特網(wǎng)100和連接適配器512與呼叫控制器502形成連接而開始。該連接可以提供可識(shí)別的連接,使得由呼叫控制器502通過與連接適配器512的給定連接接收來自呼叫者客戶端402a的任何通信被識(shí)別為源于特定的已知來源。連接適配器512可以認(rèn)證呼叫者的身份,使得通過與連接適配器512的連接接收的任何通信都被識(shí)別為源于其身份被安全地驗(yàn)證的來源。
在實(shí)施例中,連接適配器512提供前端部件,該前端部件使用適當(dāng)?shù)恼J(rèn)證機(jī)制(其可以是專有的)對(duì)客戶端認(rèn)證并且也終止客戶端的連接。連接適配器512于是可以用作針對(duì)其余服務(wù)以及尤其是呼叫控制器502而言的客戶端身份的權(quán)威來源(參見以后的討論)。在實(shí)施例中,因此,不必由呼叫者自己在有效載荷中提供呼叫者的身份,這是有利的,因?yàn)榉駝t的話身份可能被偽造并且因而不被信任。
在步驟S20和/或步驟S30(與圖2和圖3中所示的步驟相應(yīng))處,呼叫者的用戶終端102a上的客戶端402a經(jīng)由連接適配器512使用所述連接將呼叫邀請(qǐng)(CI)發(fā)送至VoIP提供商204的呼叫控制器502。
為了建立用于進(jìn)行諸如呼叫之類的通信的會(huì)話,有必要交換形成握手的兩半的兩個(gè)握手協(xié)議消息——第一個(gè)從一個(gè)端點(diǎn)到另一個(gè)端點(diǎn),并且然后第二個(gè)握手消息作為回報(bào)同意呼叫。在實(shí)施例中,從呼叫者客戶端402a發(fā)送的呼叫邀請(qǐng)包括第一握手消息HS1。
在實(shí)施例中,HS1可以是P2P會(huì)話建立消息。在這種情況下,它包含該消息的接收者能夠繼續(xù)與發(fā)送者協(xié)商P2P傳輸會(huì)話的足夠信息(例如可以用來進(jìn)行呼叫)。它可以包含一個(gè)或多個(gè)通過其可以達(dá)到呼叫者的IP地址以及潛在地一些其他信息。該消息用作建立P2P會(huì)話的邀請(qǐng)。一旦建立了認(rèn)證的和加密的會(huì)話,那么呼叫信令可以通過該會(huì)話流動(dòng)。中繼器信息和用戶名是與HS1分離的某種事物,并且當(dāng)HS1在行進(jìn)的同時(shí)不可用或者到期時(shí),它們可以用在回退機(jī)制中。然而,應(yīng)當(dāng)指出的是,這些實(shí)施例并不限于P2P或者混合P2P布置,并且在其他實(shí)施例中,會(huì)話建立的后續(xù)階段中的一些或者全部可以經(jīng)由諸如一個(gè)或多個(gè)服務(wù)器之類的集中式元件進(jìn)行。用于建立其他類型的通信的其他類型的會(huì)話建立協(xié)議也是可能的。
然后,響應(yīng)于接收到來自呼叫者客戶端402a的呼叫邀請(qǐng),呼叫控制器506制定內(nèi)部推送通知請(qǐng)求PNR_i。
在實(shí)施例中,這涉及在步驟S50處呼叫控制器502引用解析器功能510以便解析呼叫者和/或他或她的用戶終端102a的標(biāo)識(shí)符信息——“用戶解析”信息(UR)。解析器510維持用戶和/或用戶終端相關(guān)信息列表,呼叫控制器502可以基于識(shí)別的與連接適配器512的連接查詢?cè)摿斜怼?/p>
用戶解析(UR)可以落入至少兩個(gè)類別。第一個(gè)類別是作為響應(yīng)將用來允許被呼叫者的客戶端402b聯(lián)系呼叫者的標(biāo)識(shí)符信息。這可以包括:
識(shí)別VoIP通信系統(tǒng)內(nèi)的呼叫者的呼叫者用戶名;和/或
呼叫者的始發(fā)用戶終端102b的在網(wǎng)絡(luò)內(nèi)識(shí)別該用戶終端的地址(典型地為IP地址);以及
可選地附加的路由信息,例如用來聯(lián)系呼叫者的任何一個(gè)或多個(gè)中繼器(例如102c)的標(biāo)識(shí)。
UR信息的第二個(gè)類別是允許被呼叫者就是否應(yīng)答呼叫做出明智決定的信息。這可以包括:
呼叫者的顯示名(有別于用戶名);
代表呼叫者的圖像(其可以稱為“化身”圖像);和/或
用來向被呼叫者通知到來的呼叫的語言的指示,在其將在被呼叫者的終端102b處顯現(xiàn)時(shí)其可以擴(kuò)展到指定用于屏幕上通知消息的句法的語言模板。
依照本發(fā)明的實(shí)施例,插入到推送通知的有效載荷中的UR信息包括代表呼叫者(或者更一般地為始發(fā)用戶,即始發(fā)端點(diǎn)的用戶)的圖像。為此目的,解析器510包括對(duì)著所討論的通信系統(tǒng)的多個(gè)用戶的身份繪制的代表性圖像的數(shù)據(jù)庫(kù)。于是,解析器510被配置成基于呼叫者的身份解析有關(guān)圖像的指示,并且將該圖像插入到有效載荷(或者可替換地,可以在通知時(shí)由被呼叫者訪問的到圖像的鏈接)中。
在一個(gè)或多個(gè)實(shí)施例中,圖像為化身圖像,其通常與也由呼叫者(或者始發(fā)用戶)在所討論的通信系統(tǒng)內(nèi)(例如在VoIP系統(tǒng)內(nèi))更廣泛地用來代表他們自己的圖像基本上相同(就圖像內(nèi)容而言)。例如,化身圖像也可以可由被呼叫者或者其他聯(lián)系人從通信提供商的服務(wù)器104訪問。元件204的解析器510可以與提供簡(jiǎn)檔的后端服務(wù)器104集成,使得解析器510訪問用戶在其他情況下通常輪詢呼叫者的簡(jiǎn)檔時(shí)訪問的圖像的相同實(shí)例(相同拷貝)??商鎿Q地,解析器510可以被設(shè)置成訪問相同圖像的不同實(shí)例(相同內(nèi)容的不同拷貝)。在實(shí)施例中,不管哪種方式,如插入到有效載荷中的實(shí)例都可以是圖像的尺寸減小的實(shí)例(就比特和/或屏幕上尺寸而言)。
在實(shí)施例中,解析器510進(jìn)一步包括對(duì)著所討論的通信系統(tǒng)的多個(gè)用戶的身份繪制的民族、住所和/或語言的列表。于是,解析器510被配置成基于被呼叫者和/或呼叫者的身份解析語言或語言模板。呼叫者的身份(例如用戶名)也可以包含在呼叫邀請(qǐng)(CI)中,并且可以用于這個(gè)目的以及識(shí)別目的地。在一個(gè)或多個(gè)實(shí)施例中,選擇的語言(以及可選地語言模板)基于被呼叫者(或者更一般地接受者)的民族、語言和/或住所而被選擇,因?yàn)檫@是所述通知預(yù)期要通知的人。然而,如果這不可用,那么最佳的猜測(cè)可以是,被呼叫者或者接受者理解呼叫者(或者更一般地發(fā)送者)的語言。
在一些實(shí)施例中,解析器510被配置成基于呼叫者和被呼叫者二者的身份而通過確定這兩個(gè)用戶的共同的語言來解析語言或語言模板。
在實(shí)施例中,解析器功能510也可以包括許可檢查功能,該許可檢查功能維持被呼叫者阻擋其聯(lián)系他或她的用戶列表。許可檢查作用來阻擋來自該列表中發(fā)現(xiàn)的任何呼叫者的呼叫邀請(qǐng),并且用于通知被呼叫者的以下步驟僅僅在呼叫者未被阻擋的條件下才進(jìn)行。
假設(shè)這沒有發(fā)生,那么呼叫控制器502制定包括用戶解析信息、HS1消息以及呼叫邀請(qǐng)(CI)中接收的任何其他有關(guān)信息的有效載荷(參見下文)。然后,在步驟S52處,呼叫控制器502在內(nèi)部推送通知請(qǐng)求PNR_i中將該有效載荷轉(zhuǎn)發(fā)到推送通知中心506。
可以包含在有效載荷中的附加信息如下。
指示發(fā)出邀請(qǐng)的時(shí)間的時(shí)間戳。這可以用來檢測(cè)何時(shí)建立呼叫的企圖超時(shí)。例如,用于超時(shí)的時(shí)限可以處于30-60秒的范圍內(nèi),并且在一個(gè)實(shí)施例中為50秒。時(shí)間戳可以包含在呼叫邀請(qǐng)中,該呼叫邀請(qǐng)從呼叫者客戶端402a發(fā)送,然后在有效載荷中轉(zhuǎn)發(fā),或者在尚未從接收自呼叫者的客戶端402a的邀請(qǐng)包括的情況下由呼叫控制器502生成。
密鑰交換方案的加密密鑰,其是呼叫者的公共密鑰(因而被呼叫者可以解密呼叫者的內(nèi)容)。這可以包含在呼叫邀請(qǐng)中,該呼叫邀請(qǐng)從呼叫者客戶端402a發(fā)送,然后在有效載荷中轉(zhuǎn)發(fā),或者可替換地存儲(chǔ)在解析器512處并且由呼叫控制器502作為用戶解析信息的另一實(shí)例而添加。
始發(fā)端點(diǎn)102a的類型的指示(例如它是移動(dòng)電話、平板計(jì)算機(jī)、膝上型計(jì)算機(jī)或者臺(tái)式機(jī)?它運(yùn)行什么操作系統(tǒng)?它運(yùn)行什么版本的VoIP客戶端402a和/或它是什么模型?)。再一次地,這可以包含在呼叫邀請(qǐng)中,該呼叫邀請(qǐng)從呼叫者客戶端402a發(fā)送,然后在有效載荷中轉(zhuǎn)發(fā),或者可替換地存儲(chǔ)在解析器512處并且由呼叫控制器502作為解析的部分而添加。
用于呼叫的會(huì)話標(biāo)識(shí)符,其可以由呼叫者的客戶端402a或者呼叫控制器502添加。再一次地,這可以包含在呼叫邀請(qǐng)中,該呼叫邀請(qǐng)從呼叫者客戶端402a發(fā)送,然后在有效載荷中轉(zhuǎn)發(fā),或者可替換地存儲(chǔ)在解析器512處并且由呼叫控制器502添加。
用于呼叫的交談標(biāo)題和/或其他交談標(biāo)識(shí)符,它例如在呼叫形成涉及IM消息和/或先前呼叫的更廣泛交談的部分的情況下是呼叫為其一部分的邏輯主題或上下文的指示。這可以取自來自呼叫者的客戶端402a的呼叫邀請(qǐng)。
如果通知系統(tǒng)可以用于不同類型的通信(除了話音和視頻呼叫之外,例如IM消息、話音郵件和/或文件傳輸),那么有效載荷也可以包括通信類型的指示。
推送通知中心506接收內(nèi)部推送通知請(qǐng)求PNR_i。在步驟S53處,作為響應(yīng),它查詢推送使能端點(diǎn)(PEE)注冊(cè)器508以便檢查被呼叫者是否已經(jīng)注冊(cè)以接收推送通知。PEE注冊(cè)器508維持已經(jīng)注冊(cè)以接收推送通知(或者在接收推送通知為缺省的情況下,等效地說沒有取消注冊(cè)以免接收推送通知)的用戶列表。例如,這可以是向用戶呈現(xiàn)何時(shí)他或她初次啟動(dòng)新電話102b的選項(xiàng),或者他或她的終端102b的選項(xiàng)屏幕中發(fā)現(xiàn)的選項(xiàng)。隨后,當(dāng)像在圖示出的方案中那樣企圖進(jìn)行呼叫時(shí),PEE注冊(cè)器508起作用以便僅僅許可以下推送通知步驟在被呼叫者同意他或她的設(shè)備102b將能夠接收推送通知(或者等效地說沒有決定退出)的條件下進(jìn)行。
假設(shè)被呼叫者為推送通知進(jìn)行了注冊(cè),那么推送通知中心做兩件事情中的一件或者兩件:
將外部推送通知請(qǐng)求PNR發(fā)送至基于操作系統(tǒng)的推送通知服務(wù)202(與圖2的步驟S22相應(yīng)),這進(jìn)而造成基于操作系統(tǒng)的推送通知服務(wù)202將基于操作系統(tǒng)的推送通知(PN_OS)發(fā)送至目的地終端102b上的操作系統(tǒng)400b(與圖2中的步驟S24相應(yīng));和/或
制定應(yīng)用層推送通知(PN_AL)并且將其發(fā)送至目的地終端102b上的被呼叫者的客戶端402b(與圖3中的步驟S32相應(yīng))。
此外,在步驟S53處,推送通知中心可以向后將指示被呼叫者的端點(diǎn)數(shù)量的消息(NEP)發(fā)送至呼叫控制器50(被呼叫者可能具有向PEE注冊(cè)器508注冊(cè)的多個(gè)設(shè)備)。這可以由呼叫控制器用來跟蹤可以潛在地期望來自被呼叫者的多少設(shè)備的出席報(bào)告(AR)(參見步驟S56)。
推送通知中心506作用來將接收自呼叫控制器502的有效載荷信息中的至少一些包含在推送通知中(在基于操作系統(tǒng)的推送通知PN_OS的情況下,經(jīng)由OS PNS 202)。在實(shí)施例中,有效載荷信息的數(shù)量可以由推送通知中心506根據(jù)要將該信息包含于其中的推送通知的類型(基于應(yīng)用層的還是基于操作系統(tǒng)的)進(jìn)行選擇。
在推送通知中心506制定應(yīng)用層推送通知的情況下,這可以包括任何數(shù)量的有效載荷信息,直到且包括上面討論的全數(shù)或者更多。這可以包括握手協(xié)議的第一握手消息HS1以及直到全用戶解析信息(UR)的任何事物,包括呼叫者的用戶名、始發(fā)地址、呼叫者的顯示名、用于呼叫者的化身圖像(或者到化身圖像的鏈接)以及語言指示器或模板。該有效載荷信息在應(yīng)用層推送通知PN_AL中被提供給被呼叫者客戶端402b。
如果被呼叫者的終端102b上的客戶端402b接收到應(yīng)用層推送通知PN_AL,那么它提取有效載荷信息并且使用該信息向被呼叫者通知到來的呼叫。這可以包括提取用戶解析信息的用戶可讀部分,例如顯示名、化身圖像和/或語言模板,并且使用它生成屏幕上通知消息形式的適當(dāng)用戶通知。例如,屏幕上消息可以示出化身圖像并且顯示格式為“您有來自[顯示名]的到來的呼叫”的書面消息??商鎿Q地,用戶通知可以采取來自目的地終端102b的揚(yáng)聲器的可聽口語消息的形式。
用戶通知消息的語言(換句話說,書面或口頭語言,即語感語言)基于推送通知的有效載荷中接收的指示來確定。例如,這可以從包括以下中的兩個(gè)或更多的組中指定語言:英語,法語,德語,荷蘭語,西班牙語,葡萄牙語,意大利語,希臘語,羅馬尼亞語,匈牙利語,保加利亞語,捷克語,波蘭語,瑞典語,芬蘭語,挪威語,愛沙尼亞語,拉脫維亞語,立陶宛語,烏克蘭語,俄語,土耳其語,阿拉伯語,普通話,粵語,日語,越南語,韓語,臺(tái)語,泰語,印地語,烏爾都語,孟加拉語,旁遮普語,馬拉地語,泰盧固語,普什圖語,爪哇語,南非荷蘭語,手語等等。
在本發(fā)明的實(shí)施例中,用戶通知消息的形式基于推送通知的有效載荷中接收的語言模板所限定的句法來確定。句法的至少一個(gè)功能是指定語句中(或者更一般地,文本或語音的部分中)包括顯示名的位置。其他的語言格式化信息也可以包含在句法中,例如何處放置到來的通信事件類型的指示(呼叫、話音呼叫、視頻呼叫、IM、話音郵件、文件傳輸?shù)鹊?。
例如,在英語中,用戶通知可以采取形式“you have an incoming call from[顯示名]”,呼叫者或者發(fā)送者的姓名處于語句的結(jié)尾,而在法語中,例如它可以采取形式“[顯示名]vous téléphoner”,呼叫者或者發(fā)送者的姓名處于語句的開頭。要在字符串中插入姓名的位置可以是解析器510選擇的語言的函數(shù),并且因此句法與語言相應(yīng)。語言和句法(即語言格式)由語言模板指定。
此外,假設(shè)被呼叫者應(yīng)答呼叫,那么被呼叫者的終端102b上的客戶端402b被配置成從推送通知的有效載荷中提取諸如握手消息HS1之類的會(huì)話建立信息以及用于作為響應(yīng)聯(lián)系呼叫者的用戶解析信息的部分,并且從而制定呼叫接受響應(yīng)(CA)且向后將該響應(yīng)用信號(hào)發(fā)送至呼叫者的終端102a上的始發(fā)客戶端402a。呼叫接受響應(yīng)接受會(huì)話的建立,意圖是使用該會(huì)話進(jìn)行呼叫。例如,接收HS1之后,被呼叫者的客戶端402b制定呼叫接受響應(yīng)CA,該呼叫接受響應(yīng)包括握手協(xié)議的半應(yīng)答,HS2消息。然后,在步驟S58處,被呼叫者的客戶端402b基于至少包括呼叫者的用戶名和/或呼叫者的終端102a的地址的有關(guān)用戶解析信息,向后將該接受響應(yīng)用信號(hào)發(fā)送至始發(fā)終端102a上的客戶端402a。
通過使用有效載荷信息,這在無需在他或她決定是否應(yīng)答呼叫之前通過網(wǎng)絡(luò)100的任何其他信令以獲取用于聯(lián)系呼叫者的終端102a的標(biāo)識(shí)符信息,或者獲取向被呼叫者識(shí)別呼叫者和/或確定用戶通知的格式的信息的情況下完成。為了這些目的,無需向后對(duì)于諸如元件204或202之類的任何提供商或者運(yùn)營(yíng)商基礎(chǔ)設(shè)施的額外引用。因此,呼叫信令中雙程的數(shù)量減少,這意味著用于實(shí)現(xiàn)呼叫接受的時(shí)間可以減少。
在實(shí)施例中,被呼叫者的客戶端402b可以在其被發(fā)現(xiàn)在通知的時(shí)間處于前景(f/g)狀態(tài)的情況下僅僅接收應(yīng)用層推送通知PN_AL,因?yàn)樵谶@種狀態(tài)下,它具有被調(diào)度的足夠處理周期,能夠在IP套接字412上偵聽并且在檢測(cè)到時(shí)處理應(yīng)用層推送通知PN_AL。然而,在某些實(shí)現(xiàn)方式中,有可能被呼叫者的客戶端402b可能被分配特殊背景狀態(tài),其中盡管它被調(diào)度受抑制數(shù)量的處理時(shí)間,但是它仍然具有足夠的周期,能夠檢測(cè)并且作用于應(yīng)用層推送通知PN_AL。
被呼叫者的客戶端402b也可以在步驟S56處向后向呼叫控制器502報(bào)告指示它已經(jīng)接受了呼叫的出席報(bào)告(AR)。呼叫控制器502可以使用該報(bào)告跟蹤呼叫是否被應(yīng)答,或者呼叫在其被應(yīng)答之前是否超時(shí)??商鎿Q地,出席報(bào)告(AR)可以在始發(fā)者接收到來自目的地的響應(yīng)時(shí)由該始發(fā)者發(fā)送。后一選項(xiàng)可以在以下情況下使用:呼叫在目的地側(cè)由未利用發(fā)送出席報(bào)告的功能更新的舊版客戶端應(yīng)答。
在基于操作系統(tǒng)的推送通知PN_OS經(jīng)由服務(wù)202生成的情況下,這可以包括來自上面討論的潛在有效載荷信息之中的數(shù)量減少的有效載荷信息。例如,這可以包括握手消息HS1以及某些選擇的用戶解析信息(UR’),至少呼叫者的用戶名和/或呼叫者的用戶終端102a的地址。如果通知的格式允許足夠的比特對(duì)適度尺寸的圖像編碼,那么化身圖像也可以仍然用作基于操作系統(tǒng)的通知中的有效載荷信息。該有效載荷信息在基于操作系統(tǒng)的推送通知PN_OS中被提供給目的地終端102b上的操作系統(tǒng)400b。
如果被呼叫者的終端102b上的操作系統(tǒng)400b接收到基于操作系統(tǒng)的推送通知PN_OL,那么它生成屏幕上消息以便向被呼叫者通知到來的呼叫??蛇x地,這可以涉及從插入到操作系統(tǒng)400b的預(yù)定義屏幕上消息中的有效載荷信息提取的某些有限的參數(shù)。例如,接收操作系統(tǒng)400b可以根據(jù)接收的有效載荷確定呼叫者的顯示名,以及呼叫者的代表性圖像,并且可以將這些插入到屏幕上通知的預(yù)定格式中。然而,屏幕上消息格式的其他方面可以由操作系統(tǒng)400b決定,例如其尺寸、其“觀感”以及任何關(guān)聯(lián)的圖形。
例如,如果被呼叫者在通知時(shí)間正在全屏或者其他情況下的主導(dǎo)狀態(tài)下玩視頻游戲406或者使用某個(gè)其他的應(yīng)用程序,那么操作系統(tǒng)可以使得小的通知消息在諸如屏幕角落之類的相對(duì)不顯眼的位置彈出。
被呼叫者的操作系統(tǒng)400b生成的屏幕上消息提示被呼叫者采取什么動(dòng)作,例如是否接聽呼叫,或者是否拒絕通知并且繼續(xù)玩游戲406。
如先前所討論的,目的地VoIP客戶端406b可以在到來的通知的時(shí)間處于背景(b/g)狀態(tài)下。如果響應(yīng)于操作系統(tǒng)提示,被呼叫者的確選擇接受呼叫,那么操作系統(tǒng)喚醒被呼叫者的VoIP客戶端402b。這可以涉及結(jié)束先前在前景下運(yùn)行的應(yīng)用程序(例如游戲406)的全屏或者其他這樣的主導(dǎo)狀態(tài)。
被呼叫者的終端102b上的操作系統(tǒng)400b也將至少一定數(shù)量的有效載荷信息向上傳遞至新恢復(fù)的VoIP客戶端402b,傳遞第一握手消息HS1,以及用于作為響應(yīng)聯(lián)系呼叫者的用戶解析信息中的至少一些,即呼叫者用戶名和/或始發(fā)終端地址。當(dāng)被呼叫者VoIP客戶端402b喚醒時(shí),它因此能夠制定包括返回握手消息HS2的呼叫接受響應(yīng)CA并且向后將該響應(yīng)送達(dá)呼叫者的用戶終端102a上的始發(fā)客戶端402a。
在推送通知中接收的有效載荷信息因此仍然足以在無需在他或她決定是否應(yīng)當(dāng)呼叫之前通過網(wǎng)絡(luò)100的任何其他信令以獲取用于聯(lián)系呼叫者的終端102a的標(biāo)識(shí)符信息或者獲取向被呼叫者識(shí)別呼叫者的信息的情況下制定呼叫接受響應(yīng)(CA)。因此,同樣地,雙程的數(shù)量以及因此用于呼叫接受的時(shí)間可以減少。
再一次地,被呼叫者的客戶端402b也可以在步驟S56處向后向呼叫控制器502報(bào)告指示它已經(jīng)接受了呼叫的出席報(bào)告(AR)。可替換地,出席報(bào)告(AR)可以在始發(fā)者接收到來自目的地的響應(yīng)時(shí)由該始發(fā)者發(fā)送。呼叫控制器502可以使用該報(bào)告跟蹤呼叫是否被應(yīng)答或者呼叫在其被應(yīng)答之前是否超時(shí)。
在一些實(shí)施例中,基于應(yīng)用層的和基于操作系統(tǒng)的推送通知機(jī)制二者并行地存在。推送通知中心可以并行地嘗試這兩種通知方法。
此外,始發(fā)用戶終端102a上的呼叫者客戶端402a可以仍然可操作來直接通過因特網(wǎng)100將常規(guī)P2P呼叫邀請(qǐng)(CI,步驟S10)發(fā)送至目的地用戶終端102b上的被呼叫者客戶端402b。
在可替換的實(shí)施例中,可以不將HS1包含在來自被呼叫者的呼叫邀請(qǐng)(CI)中(步驟S20/S30)。相反地,交換可能要求被呼叫者響應(yīng)于初始通知而將HS1發(fā)送至呼叫者,并且呼叫者然后利用第二握手消息HS2答復(fù)以便建立反向會(huì)話。
在實(shí)施例中,一旦執(zhí)行了上面的呼叫信令,那么用戶的認(rèn)證可以通過像常規(guī)P2P方式中那樣在被呼叫者與呼叫者之間交換證書而以相互的方式進(jìn)行??商鎿Q地或者此外,當(dāng)連接適配器在形成初始連接的時(shí)間驗(yàn)證呼叫者的身份時(shí),認(rèn)證可以由連接適配器集中地執(zhí)行。在其中在上面的信令之后通過交換證書完成認(rèn)證的情況下,應(yīng)當(dāng)指出的是,呼叫接受響應(yīng)CA不是一個(gè)用于成功進(jìn)行呼叫的絕對(duì)最終標(biāo)準(zhǔn),而是建立會(huì)話的臨時(shí)接受,認(rèn)證可以首先通過其進(jìn)行——實(shí)際的呼叫遭受該認(rèn)證的影響(只要通信不是惡意的,那么這在大多數(shù)情形中不太可能成為問題)。在其他實(shí)施例中,認(rèn)證可能僅僅依賴于連接適配器對(duì)于呼叫者的初始認(rèn)證。
在某些實(shí)施例中,可以在建立會(huì)話的過程中使用認(rèn)證的這兩個(gè)階段。首先,呼叫者客戶端在連接適配器512上認(rèn)證自己并且然后通過建立的經(jīng)過認(rèn)證的傳輸將邀請(qǐng)發(fā)送至呼叫控制器502。這是第一次認(rèn)證并且它用來在服務(wù)器204上認(rèn)證客戶端。當(dāng)包含HS1的推送通知到達(dá)被呼叫者客戶端時(shí),這是在客戶端之間建立認(rèn)證的直接(P2P)連接的第一步并且這是第二次認(rèn)證發(fā)生的地方。第一階段為集中式認(rèn)證,而形成對(duì)照的是,第二階段為P2P認(rèn)證。
在另外的實(shí)施例中,可替換地或者此外,上面關(guān)于呼叫邀請(qǐng)所討論的通知特征可以用來就其他通信事件通知目的地終端的用戶,這些事件例如IM聊天消息、話音郵件或者文件傳輸,發(fā)送者(始發(fā)終端102a的用戶,類似于上面的呼叫者)企圖將這些事件發(fā)送至預(yù)期的接受者(目的地終端102b的用戶,類似于上面的被呼叫者)。如果接受者接受,那么他們的客戶端402b可以或者獲取來自服務(wù)器(例如元件204的部分)的等待通信,或者直接從發(fā)送者的終端102a獲取它。
應(yīng)當(dāng)領(lǐng)會(huì)的是,上面的實(shí)施例僅僅通過實(shí)例加以描述。
例如,盡管以上所述在上文中關(guān)于用于執(zhí)行VoIP呼叫的混合P2P系統(tǒng)加以描述,但是本文公開的技術(shù)可以適用于其他類型的基于分組的通信系統(tǒng)。因此,在可替換的實(shí)施例中,在通知之后,會(huì)話建立的一個(gè)、一些或者所有另外的階段(例如可以用來進(jìn)行呼叫)可替換地可以經(jīng)由諸如一個(gè)或多個(gè)提供商或運(yùn)營(yíng)商的一個(gè)或多個(gè)服務(wù)器之類的一個(gè)或多個(gè)網(wǎng)絡(luò)集中式元件進(jìn)行。關(guān)于其中使用了一些P2P技術(shù)的實(shí)施例也應(yīng)當(dāng)注意,在其最廣泛的意義上,術(shù)語P2P不一定限于完全去集中化布置。在例如一些實(shí)施例中,只有介質(zhì)(即呼叫或者其他會(huì)話的內(nèi)容)需要直接在對(duì)等體之間傳輸,所有其他的呼叫信令(包括地址查找和認(rèn)證)經(jīng)由中央元件發(fā)生。
此外,在上文中在服務(wù)器方面描述了任何網(wǎng)絡(luò)元件的情況下,應(yīng)當(dāng)領(lǐng)會(huì)的是,這并不限于容納在相同外殼內(nèi)或者位于相同地點(diǎn)的單個(gè)服務(wù)器單元或者服務(wù)器。依照本發(fā)明的實(shí)施例,通過一個(gè)或多個(gè)單元中的任何一個(gè)實(shí)現(xiàn)的任何邏輯網(wǎng)絡(luò)元件都可以用來實(shí)現(xiàn)通信提供商功能。此外,盡管以上所述在因特網(wǎng)通信方面加以描述,但是各個(gè)不同的實(shí)施例也可以用于通過其他基于分組的通信網(wǎng)絡(luò)提供通知和/或通過其他基于分組的通信網(wǎng)絡(luò)通知通信。
給定本文的公開內(nèi)容,其他的變型對(duì)于本領(lǐng)域技術(shù)人員可以變得清楚明白。