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