專利名稱:一種在即時通訊系統(tǒng)中實現(xiàn)呼叫受限的方法、裝置和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計算機(jī)技術(shù)領(lǐng)域,特別涉及一種在IM(Instant Messaging,即時通訊)系統(tǒng)中實現(xiàn)呼叫受限的方法、裝置和系統(tǒng)。
背景技術(shù):
網(wǎng)絡(luò)即時通訊工具發(fā)展到今天,已經(jīng)被大多數(shù)的網(wǎng)民所接受,成為用戶日常的交流與溝通中必不可少的軟件工具,不但在平時的休閑娛樂中,而且在用戶的工作中得到廣泛的使用。即時通訊屬于一種實時的溝通方式,用戶通過IM軟件實現(xiàn)了與好友以及各個群組之間的實時溝通。當(dāng)前的IM軟件中,應(yīng)用較廣的有騰訊QQ與TM、網(wǎng)易POPO、新浪UC、微軟MSN等。隨著IM軟件的廣泛應(yīng)用,用戶在不同狀態(tài)時可能需要不同的溝通方式,例如在某些會議或工作場合,用戶并不希望彈出與好友之間的聊天窗口,接收實時即時消息。
國際商業(yè)機(jī)器公司IBM在中國提出的申請?zhí)枮?00510062835.0,發(fā)明名稱為“在即時消息接發(fā)系統(tǒng)中批準(zhǔn)受限可呼叫狀態(tài)的方法和系統(tǒng)”的發(fā)明專利申請中公開了一種用于在即時消息接發(fā)應(yīng)用程序中管理可訪問狀態(tài)值的方法、設(shè)備、系統(tǒng)和計算機(jī)程序產(chǎn)品。即時消息接發(fā)應(yīng)用程序的用戶能夠選擇與該用戶相關(guān)聯(lián)的“請勿打擾”狀態(tài),從而使大多數(shù)用戶不能夠發(fā)起與該用戶的即時消息接發(fā)會話。此外,即時消息接發(fā)應(yīng)用程序的用戶可以有選擇地批準(zhǔn)一個子集的用戶具有能夠啟動與該用戶的即時消息接發(fā)會話的特權(quán),同時對所有其他用戶保持該用戶處于“請勿打擾”狀態(tài)的指示。
上述技術(shù)方案利用IM用戶設(shè)置的某種特殊的狀態(tài),例如“請勿打擾”的呼叫受限狀態(tài)在某些時段完全阻止了某個聯(lián)系人或者某個聯(lián)系人組的會話消息。IM用戶后續(xù)也無法再收取到在這個時段中受限聯(lián)系人發(fā)送的即時消息。而對于IM用戶來說,在某些情況下,切換到“請勿打擾”的呼叫受限狀態(tài)只是暫時性的需求,并不是完全不希望接收在這個時段的消息,而更可能是希望在切換到可用狀態(tài)的時候能夠重新獲取這些聯(lián)系人發(fā)送來的即時消息。
另外,對于用戶所設(shè)置的某個呼叫受限聯(lián)系人或者某個呼叫受限聯(lián)系人組的呼叫受限狀態(tài),其設(shè)置內(nèi)容的存儲與本地相關(guān),即用戶更換登錄終端后,則無法享用同一設(shè)置需求,需要重新進(jìn)行設(shè)置,不方便用戶使用。
發(fā)明內(nèi)容
為了使用戶在切換到可用狀態(tài)后,能夠收到聯(lián)系人或聯(lián)系人組在受限狀態(tài)時間段發(fā)送的即時消息,并實現(xiàn)設(shè)置狀態(tài)的漫游,本發(fā)明實施例提出了一種在即時通訊系統(tǒng)中實現(xiàn)呼叫受限的方法、裝置和系統(tǒng)。通過設(shè)置“后續(xù)激活”的呼叫受限狀態(tài),使即時通訊系統(tǒng)記錄聯(lián)系人發(fā)送的消息,在呼叫受限狀態(tài)取消后自動激活該消息,并推送給用戶;還通過修改服務(wù)器的時間戳實現(xiàn)了呼叫受限狀態(tài)設(shè)置的漫游。所述技術(shù)方案如下根據(jù)一個方面,本發(fā)明實施例提供了一種在即時通訊系統(tǒng)中實現(xiàn)呼叫受限的方法,所述方法包括以下步驟接收客戶端發(fā)送的呼叫受限信息,所述呼叫受限信息包括用戶的標(biāo)識、呼叫受限對象和為所述呼叫受限對象設(shè)置的呼叫受限狀態(tài);收到聯(lián)系人的呼叫消息后,如果所述聯(lián)系人為所述用戶設(shè)置的呼叫受限對象且所述聯(lián)系人的呼叫受限狀態(tài)為后續(xù)激活狀態(tài),則記錄所述呼叫消息,在所述呼叫受限狀態(tài)取消后,推送所述呼叫消息。
優(yōu)選地,所述記錄所述呼叫消息,在所述呼叫受限狀態(tài)取消后,推送所述呼叫消息的步驟具體包括建立所述聯(lián)系人與所述呼叫消息的對應(yīng)關(guān)系,存儲所述呼叫消息,在所述呼叫受限狀態(tài)取消后,遍歷所有聯(lián)系人與呼叫消息的對應(yīng)關(guān)系,根據(jù)客戶端的選擇推送對應(yīng)的呼叫消息。
優(yōu)選地,所述接收客戶端發(fā)送的呼叫受限信息的步驟之后還包括修改服務(wù)器的時間戳;當(dāng)所述用戶登錄后,客戶端獲取所述服務(wù)器的時間戳,并將所述服務(wù)器的時間戳與本地的時間戳比較,如果所述服務(wù)器的時間戳大于所述本地的時間戳,則從所述服務(wù)器下載所述用戶對應(yīng)的呼叫受限信息,更新本地呼叫受限信息。
優(yōu)選地,所述呼叫受限對象為聯(lián)系人或聯(lián)系人組。
優(yōu)選地,所述用戶的標(biāo)識為用戶身份號碼。
根據(jù)另一個方面,本發(fā)明實施例還提供了一種在即時通訊系統(tǒng)中實現(xiàn)呼叫受限的裝置,所述裝置包括聯(lián)系人狀態(tài)管理模塊和聯(lián)系人消息管理模塊;所述聯(lián)系人狀態(tài)管理模塊用于接收并存儲客戶端用戶發(fā)送的呼叫受限信息,所述呼叫受限信息包括用戶的標(biāo)識、呼叫受限對象和為所述呼叫受限對象設(shè)置的呼叫受限狀態(tài),還用于將所述呼叫受限信息發(fā)送給所述聯(lián)系人消息管理模塊;所述聯(lián)系人消息管理模塊具體包括接收單元和記錄推送單元;所述接收單元用于接收聯(lián)系人發(fā)來的呼叫消息,并判斷所述聯(lián)系人是否為所述聯(lián)系人狀態(tài)管理模塊發(fā)來的呼叫受限信息中所述用戶設(shè)置的呼叫受限對象,如果是且所述聯(lián)系人的呼叫受限狀態(tài)為后續(xù)激活狀態(tài),則通知所述記錄推送單元;所述記錄推送單元用于接收所述接收單元的通知,記錄所述呼叫消息,在所述呼叫受限狀態(tài)取消后,推送所述呼叫消息。
優(yōu)選地,所述記錄推送單元具體包括記錄子單元和推送子單元;所述記錄子單元用于接收所述接收單元的通知,建立所述聯(lián)系人與所述呼叫消息的對應(yīng)關(guān)系,存儲所述呼叫消息,并將所述對應(yīng)關(guān)系發(fā)送給所述推送子單元;所述推送子單元用于在所述呼叫受限狀態(tài)取消后,獲取所述記錄子單元發(fā)送的所述對應(yīng)關(guān)系,遍歷所有聯(lián)系人與呼叫消息的對應(yīng)關(guān)系,根據(jù)客戶端的選擇推送對應(yīng)的呼叫消息。
優(yōu)選地,所述裝置還包括聯(lián)系人狀態(tài)網(wǎng)絡(luò)同步模塊;所述聯(lián)系人狀態(tài)網(wǎng)絡(luò)同步模塊用于接收客戶端發(fā)送的呼叫受限信息,所述呼叫受限信息包括所述用戶的標(biāo)識、呼叫受限對象和為所述呼叫受限對象設(shè)置的呼叫受限狀態(tài);還用于修改所述裝置中的時間戳,并將所述時間戳發(fā)送給客戶端。
根據(jù)另一個方面,本發(fā)明實施例還提供了一種實現(xiàn)呼叫受限的即時通訊系統(tǒng),所述系統(tǒng)包括客戶端和服務(wù)器;所述客戶端包括主面板管理模塊,所述服務(wù)器包括聯(lián)系人狀態(tài)管理模塊和聯(lián)系人消息管理模塊;所述主面板管理模塊用于選擇呼叫受限對象,設(shè)置所述呼叫受限對象的呼叫受限狀態(tài)為后續(xù)激活狀態(tài),并將包含用戶的標(biāo)識、所述呼叫受限對象和為所述呼叫受限對象設(shè)置的呼叫受限狀態(tài)的呼叫受限信息發(fā)送給所述聯(lián)系人狀態(tài)管理模塊;所述聯(lián)系人狀態(tài)管理模塊用于接收所述主面板管理模塊發(fā)來的呼叫受限信息,還用于將所述呼叫受限信息發(fā)送給所述聯(lián)系人消息管理模塊;所述聯(lián)系人消息管理模塊用于接收聯(lián)系人發(fā)來的呼叫消息,并判斷所述聯(lián)系人是否為所述聯(lián)系人狀態(tài)管理模塊發(fā)來的呼叫受限信息中所述用戶設(shè)置的呼叫受限對象,如果是且所述聯(lián)系人的呼叫受限狀態(tài)為后續(xù)激活狀態(tài),則記錄所述呼叫消息,在所述呼叫受限狀態(tài)取消后,推送所述呼叫消息給所述客戶端。
優(yōu)選地,所述服務(wù)器還包括聯(lián)系人狀態(tài)網(wǎng)絡(luò)同步模塊和狀態(tài)更新模塊;所述服務(wù)器的聯(lián)系人狀態(tài)網(wǎng)絡(luò)同步模塊用于從所述聯(lián)系人狀態(tài)管理模塊獲取所述客戶端發(fā)送的呼叫受限信息,并修改所述服務(wù)器的時間戳,還用于將所述修改后的時間戳發(fā)送到所述狀態(tài)更新模塊;所述狀態(tài)更新模塊用于當(dāng)所述用戶登錄后,獲取所述修改后的時間戳,并將所述獲取的時間戳與本地的時間戳比較,如果所述獲取的時間戳大于所述本地的時間戳,則通過所述服務(wù)器下載所述呼叫受限信息,更新本地的呼叫受限信息。
采用本發(fā)明實施例所述的技術(shù)方案,用戶可以對呼叫受限對象設(shè)定“后續(xù)激活”的呼叫受限狀態(tài),當(dāng)IM用戶狀態(tài)從呼叫受限切換到可用狀態(tài)時,可以及時地查看消息,避免了由于設(shè)置了“完全阻止”的呼叫受限而導(dǎo)致信息的丟失。
同時,本發(fā)明實施例所述的技術(shù)方案將IM用戶針對某個聯(lián)系人或者聯(lián)系人組設(shè)置的呼叫受限狀態(tài)保存在服務(wù)器中,并在IM客戶端進(jìn)行同步,實現(xiàn)了呼叫受限狀態(tài)設(shè)置的漫游。當(dāng)IM用戶更換登錄終端后,不需要對聯(lián)系人受限狀態(tài)重新設(shè)置,提高了IM軟件的可用性。
圖1是本發(fā)明實施例1提供的在即時通訊系統(tǒng)中實現(xiàn)呼叫受限的裝置的結(jié)構(gòu)圖;圖2是本發(fā)明實施例1提供的在即時通訊系統(tǒng)中實現(xiàn)呼叫受限的裝置的具體結(jié)構(gòu)圖;圖3是本發(fā)明實施例1提供的在即時通訊系統(tǒng)中實現(xiàn)呼叫受限的方法的流程圖;
圖4是本發(fā)明實施例1提供的在即時通訊系統(tǒng)中實現(xiàn)呼叫受限的方法的詳細(xì)流程圖;圖5是本發(fā)明實施例2提供的在即時通訊系統(tǒng)中實現(xiàn)呼叫受限的裝置的結(jié)構(gòu)圖;圖6是本發(fā)明實施例2提供的在即時通訊系統(tǒng)中實現(xiàn)呼叫受限的方法的流程圖;圖7是本發(fā)明實施例3提供的在即時通訊系統(tǒng)中實現(xiàn)呼叫受限的系統(tǒng)的結(jié)構(gòu)圖。
具體實施例方式
下面結(jié)合附圖和具體實施例對本發(fā)明作進(jìn)一步說明,但本發(fā)明不局限于以下實施例。
實施例1本發(fā)明實施例提出了一種在即時通訊系統(tǒng)中實現(xiàn)呼叫受限的方法及裝置。IM用戶可以通過IM軟件針對某個聯(lián)系人或者某個聯(lián)系人組切換到類似“請勿打擾”的呼叫受限狀態(tài),同時提供給IM用戶針對該特殊狀態(tài)的兩個額外二級選擇“完全阻止”與“后續(xù)激活”。IM用戶可以根據(jù)具體情況進(jìn)行選擇。如果IM用戶選擇“完全阻止”,則后續(xù)用戶狀態(tài)發(fā)生變化后,也無法接收到聯(lián)系人在受限狀態(tài)時間段發(fā)送的即時消息;如果IM用戶選擇“后續(xù)激活”,則后續(xù)用戶狀態(tài)發(fā)生變化后,IM軟件可以自動激活在受限狀態(tài)時間段接收到的即時消息顯示給IM用戶查看。用戶受限狀態(tài)的時間段的設(shè)置發(fā)生變化可以為用戶主動從受限狀態(tài)切換回可用狀態(tài),或服務(wù)器根據(jù)系統(tǒng)設(shè)置自動切換,也可以為用戶設(shè)定受限時間,由服務(wù)器自動切換等等。
參見圖1,本發(fā)明提供了一種在即時通訊系統(tǒng)中實現(xiàn)呼叫受限的裝置,該裝置包括聯(lián)系人狀態(tài)管理模塊101和聯(lián)系人消息管理模塊102。上述兩個模塊可以位于IM服務(wù)器。
其中,聯(lián)系人狀態(tài)管理模塊101用于接收并存儲客戶端用戶發(fā)送的呼叫受限信息,所述呼叫受限信息包括所述用戶的標(biāo)識、呼叫受限對象和為所述呼叫受限對象設(shè)置的呼叫受限狀態(tài),還用于將所述呼叫受限信息發(fā)送給所述聯(lián)系人消息管理模塊102。
聯(lián)系人消息管理模塊102用于接收聯(lián)系人發(fā)來的呼叫消息,判斷所述聯(lián)系人是否為所述聯(lián)系人狀態(tài)管理模塊101發(fā)來的呼叫受限信息中所述用戶設(shè)置的呼叫受限對象,如果是,則根據(jù)所述聯(lián)系人的呼叫受限狀態(tài)對所述呼叫消息進(jìn)行處理。
在本實施例中,IM用戶可以選擇兩種呼叫受限狀態(tài),“后續(xù)激活”或“完全阻止”狀態(tài)。
對于設(shè)置“后續(xù)激活”狀態(tài)的情況,用戶通過客戶端選擇呼叫受限對象,且設(shè)置所述呼叫受限對象的呼叫受限狀態(tài)為后續(xù)激活狀態(tài),相應(yīng)地,所述聯(lián)系人狀態(tài)管理模塊101接收到的呼叫受限信息中呼叫受限狀態(tài)為后續(xù)激活狀態(tài);而且,聯(lián)系人消息管理模塊102具體為后續(xù)激活處理單元,用于接收聯(lián)系人發(fā)來的呼叫消息,判斷所述聯(lián)系人是否為所述聯(lián)系人狀態(tài)管理模塊101發(fā)來的呼叫受限信息中所述用戶設(shè)置的呼叫受限對象,如果是且所述聯(lián)系人的呼叫受限狀態(tài)為后續(xù)激活狀態(tài),則記錄所述呼叫消息,在所述呼叫受限狀態(tài)取消后,推送所述呼叫消息。
參見圖2,設(shè)置“后續(xù)激活”狀態(tài)的情況下,聯(lián)系人消息管理模塊102可以具體分為接收單元a和記錄推送單元b。
接收單元a用于接收聯(lián)系人發(fā)來的呼叫消息,并判斷所述聯(lián)系人是否為所述聯(lián)系人狀態(tài)管理模塊101發(fā)來的呼叫受限信息中所述用戶設(shè)置的呼叫受限對象;如果是且所述聯(lián)系人的呼叫受限狀態(tài)為后續(xù)激活狀態(tài),則通知所述記錄推送單元b。
所述記錄推送單元b用于接收到所述接收單元a的通知后,記錄所述呼叫消息,在所述呼叫受限狀態(tài)取消后,推送所述呼叫消息。
進(jìn)一步地,記錄推送單元b包括記錄子單元b1和推送子單元b2。
記錄子單元b1用于接收所述接收單元a發(fā)送的通知后,建立所述聯(lián)系人與所述呼叫消息的對應(yīng)關(guān)系,存儲所述呼叫消息,并將所述對應(yīng)關(guān)系發(fā)送給所述推送子單元b2。
推送子單元b2用于在所述呼叫受限狀態(tài)取消后,獲取所述記錄子單元發(fā)送的所述對應(yīng)關(guān)系,遍歷所有聯(lián)系人與呼叫消息的對應(yīng)關(guān)系,根據(jù)用戶的選擇推送對應(yīng)的呼叫消息。
對于設(shè)置“完全阻止”狀態(tài)的情況,用戶通過客戶端選擇呼叫受限對象,且設(shè)置所述呼叫受限對象的呼叫受限狀態(tài)為完全阻止?fàn)顟B(tài),相應(yīng)地,所述聯(lián)系人狀態(tài)管理模塊101接收到的呼叫受限信息中呼叫受限狀態(tài)為完全阻止?fàn)顟B(tài);而且,聯(lián)系人消息管理模塊102具體為完全阻止處理單元,用于接收聯(lián)系人發(fā)來的呼叫消息,并判斷所述聯(lián)系人是否為所述聯(lián)系人狀態(tài)管理模塊101發(fā)來的呼叫受限信息中所述用戶設(shè)置的呼叫受限對象,如果是且所述聯(lián)系人的呼叫受限狀態(tài)為完全阻止?fàn)顟B(tài),則丟棄所述呼叫消息。
參見圖3,在本實施例中,采用上述裝置實現(xiàn)了一種在即時通訊系統(tǒng)中實現(xiàn)呼叫受限的方法,具體步驟如下步驟201接收客戶端發(fā)送的呼叫受限信息,所述呼叫受限信息包括用戶的標(biāo)識、呼叫受限對象和為所述呼叫受限對象設(shè)置的呼叫受限狀態(tài);其中,用戶的標(biāo)識可以為用戶的UIN號碼;步驟202收到聯(lián)系人的呼叫消息后,如果所述聯(lián)系人為所述用戶設(shè)置的呼叫受限對象且所述聯(lián)系人的呼叫受限狀態(tài)為后續(xù)激活狀態(tài),則記錄所述呼叫消息;步驟203當(dāng)所述呼叫受限狀態(tài)取消后,推送所述呼叫消息給客戶端。
參見圖4,為了清楚地描述本發(fā)明的技術(shù)方案,本發(fā)明實施例對上述在即時通訊系統(tǒng)中實現(xiàn)呼叫受限的方法進(jìn)行了更詳細(xì)的描述,具體步驟如下步驟301IM用戶成功登錄IM服務(wù)器后,當(dāng)前用戶的狀態(tài)處于在線狀態(tài),其他聯(lián)系人可以通過IM軟件的主面板發(fā)起與該IM用戶的即時聊天過程。當(dāng)IM用戶處于會議中或者類似不希望被IM即時消息所打擾的環(huán)境中的時候,IM用戶可以通過客戶端選擇呼叫受限對象,并對他們進(jìn)行受限呼叫狀態(tài)的設(shè)置。具體操作如下IM用戶首先選擇某個聯(lián)系人或某個聯(lián)系人組,IM客戶端的主面板管理模塊捕獲IM用戶的鍵盤操作,利用Windows的菜單API(Application ProgrammingInterface,應(yīng)用程序編程接口)生成狀態(tài)切換的各個一級子菜單,IM用戶根據(jù)各個子菜單的內(nèi)容提示進(jìn)行主狀態(tài)的切換選擇。然后,IM客戶端的主面板管理模塊根據(jù)IM用戶選擇的主狀態(tài)內(nèi)容,生成二級子菜單,IM用戶根據(jù)二級子菜單的內(nèi)容提示進(jìn)行二級狀態(tài)的切換選擇。例如,IM用戶根據(jù)一級子菜單的內(nèi)容選擇切換到類似“請勿打擾”的主狀態(tài),則主面板管理模塊繼續(xù)生成針對該狀態(tài)的兩個額外二級選擇“完全阻止”與“后續(xù)激活”,IM用戶根據(jù)二級子菜單的內(nèi)容選擇相應(yīng)的二級狀態(tài),如選擇“后續(xù)激活”。
步驟302主面板管理模塊將呼叫受限信息,即IM用戶選擇的呼叫受限對象和呼叫受限狀態(tài)組合在消息中發(fā)送給聯(lián)系人狀態(tài)管理模塊。具體操作如下主面板管理模塊根據(jù)當(dāng)前IM用戶鼠標(biāo)位置所在的區(qū)域判斷當(dāng)前用戶選擇的呼叫受限對象是單個聯(lián)系人還是聯(lián)系人組,如果是單個聯(lián)系人,則組合該聯(lián)系人的UIN號碼、IM用戶選擇的呼叫受限主狀態(tài)標(biāo)志和二級狀態(tài)標(biāo)志,并將組合后的內(nèi)容通過消息發(fā)送到服務(wù)器上的聯(lián)系人狀態(tài)管理模塊,該消息中還攜帶有IM用戶的信息,即IM用戶的UIN號碼。
如果主面板管理模塊判斷當(dāng)前IM用戶鼠標(biāo)位置所在的區(qū)域是聯(lián)系人組,則獲取該聯(lián)系人組ID,查詢聯(lián)系人管理模塊,獲取對應(yīng)該聯(lián)系人組下的所有聯(lián)系人的UIN號碼列表,遍歷該組聯(lián)系人UIN號碼列表,組合該組聯(lián)系人的所有UIN號碼、相應(yīng)的呼叫受限主狀態(tài)標(biāo)志和二級狀態(tài)標(biāo)志,并將組合后的內(nèi)容通過消息發(fā)送到聯(lián)系人狀態(tài)管理模塊,該消息中還攜帶有IM用戶的信息,即IM用戶的UIN號碼。
步驟303聯(lián)系人狀態(tài)管理模塊根據(jù)主面板管理模塊發(fā)送的消息,對消息數(shù)據(jù)參數(shù)進(jìn)行解析,獲取到IM用戶設(shè)置的聯(lián)系人的UIN號碼、相應(yīng)的呼叫受限主狀態(tài)標(biāo)志和二級狀態(tài)標(biāo)志,同時建立以聯(lián)系人UIN號碼為關(guān)鍵字Key的狀態(tài)Map數(shù)據(jù)結(jié)構(gòu),其具體數(shù)據(jù)Value中存儲了IM用戶針對該聯(lián)系人設(shè)置的呼叫受限主狀態(tài)標(biāo)志和二級狀態(tài)標(biāo)志,這樣就建立了呼叫受限對象與其呼叫受限狀態(tài)的對應(yīng)關(guān)系。
至此,IM用戶已對呼叫受限對象完成了呼叫受限狀態(tài)的設(shè)置和存儲,即時通訊系統(tǒng)可以根據(jù)IM用戶設(shè)置的呼叫受限狀態(tài)內(nèi)容對其他聯(lián)系人發(fā)送的消息進(jìn)行相應(yīng)的處理。
步驟304當(dāng)聯(lián)系人向IM用戶發(fā)送某個消息時,IM客戶端的網(wǎng)絡(luò)通道接收到聯(lián)系人通過服務(wù)器發(fā)送的數(shù)據(jù)包,按照約定格式對數(shù)據(jù)包進(jìn)行解析與解密處理,成功后獲取該數(shù)據(jù)包的協(xié)議命令,如果協(xié)議命令不是聯(lián)系人消息命令,則其他模塊進(jìn)行處理,否則向聯(lián)系人消息管理模塊發(fā)送數(shù)據(jù)包。
步驟305聯(lián)系人消息管理模塊接收到聯(lián)系人的消息后,解析獲取數(shù)據(jù)包中IM用戶設(shè)置的聯(lián)系人UIN號碼,利用該聯(lián)系人UIN號碼查詢聯(lián)系人狀態(tài)管理模塊,獲取IM用戶針對該聯(lián)系人設(shè)置的主狀態(tài)標(biāo)志,判斷該主狀態(tài)是否為呼叫受限狀態(tài),如果不是,說明該聯(lián)系人不是呼叫受限對象,則按照其正常流程處理。如果主狀態(tài)為呼叫受限狀態(tài),說明該聯(lián)系人為呼叫受限對象,則查詢對應(yīng)該聯(lián)系人的二級狀態(tài)內(nèi)容,并根據(jù)步驟301中IM用戶設(shè)置的二級狀態(tài)進(jìn)行以下不同的處理,具體步驟如下如果該聯(lián)系人對應(yīng)的二級狀態(tài)標(biāo)志為“完全阻止”則聯(lián)系人消息管理模塊則在消息鏈表中直接丟棄對應(yīng)該聯(lián)系人的所有消息。
如果該聯(lián)系人對應(yīng)的二級狀態(tài)標(biāo)志為“后續(xù)激活”,則聯(lián)系人消息管理模塊記錄以聯(lián)系人的UIN號碼為關(guān)鍵字Key的激活消息Map數(shù)據(jù)結(jié)構(gòu),其具體數(shù)據(jù)Value中存儲了消息鏈表中對應(yīng)的由聯(lián)系人發(fā)送來的消息,這樣就建立了聯(lián)系人號碼與消息鏈表中消息的對應(yīng)關(guān)系。
步驟306IM客戶端自動檢測IM用戶的狀態(tài)切換,如果用戶當(dāng)前狀態(tài)已經(jīng)不是呼叫受限狀態(tài),則利用消息提示界面遍歷步驟305中產(chǎn)生的所有激活消息Map數(shù)據(jù)結(jié)構(gòu),找出對應(yīng)該用戶的消息,提示IM用戶當(dāng)前有多少個“后續(xù)激活”的聯(lián)系人發(fā)來消息等待激活,根據(jù)IM用戶選擇不同的聯(lián)系人提取對應(yīng)的消息鏈表中的消息,并推送到客戶端,通過聊天窗口進(jìn)行顯示,顯示后刪除對應(yīng)數(shù)據(jù)結(jié)構(gòu)。
在上述實施利中,由于采用了后續(xù)激活的方法,用戶狀態(tài)發(fā)生變化后,可以及時地查看消息。避免了由于設(shè)置了呼叫受限而導(dǎo)致信息的丟失。
IM用戶可以通過IM軟件針對某個聯(lián)系人或者某個聯(lián)系人組切換到類似“請勿打擾”的呼叫受限狀態(tài),同時提供給用戶針對該特殊狀態(tài)的兩個額外二級選擇“完全阻止”與“后續(xù)激活”,因而用戶在使用IM軟件時,在不同的應(yīng)用場景下可以設(shè)置不同的用戶狀態(tài),提高了IM系統(tǒng)的可用性,服務(wù)更加人性化。這樣用戶能夠更加個性化地展現(xiàn)自己的狀態(tài),表現(xiàn)自己的個性。
本實施例只提供了“完全阻止”與“后續(xù)激活”兩個額外二級狀態(tài)作為選擇內(nèi)容,在實際操作中,也可以還有更多的選項,如接收并提示消息、消息來時只顯示消息數(shù)目等選項,使操作更加靈活。當(dāng)然,為了實施簡便,也可以只提供其中一個二級狀態(tài),如后續(xù)激活作為選擇內(nèi)容。
實施例2在上述實施例中,當(dāng)IM用戶更換登錄終端后,無法在其它終端享用同一設(shè)置要求,需要對聯(lián)系人受限狀態(tài)重新設(shè)置。在本實施例中,可以通過將IM用戶針對某個聯(lián)系人或者聯(lián)系人組設(shè)置的呼叫受限狀態(tài)保存在用戶信息管理服務(wù)器中,并在IM客戶端進(jìn)行同步的方法實現(xiàn)呼叫受限狀態(tài)設(shè)置的漫游。
參見圖5,為實現(xiàn)上述目的,在上述實施例1的裝置中還需要增加聯(lián)系人狀態(tài)網(wǎng)絡(luò)同步模塊403。
其中,聯(lián)系人狀態(tài)網(wǎng)絡(luò)同步模塊403用于接收客戶端發(fā)送的呼叫受限信息,所述呼叫受限信息包括用戶的標(biāo)識、呼叫受限對象和為所述呼叫受限對象設(shè)置的呼叫受限狀態(tài);還用于修改所述裝置中的時間戳,并將所述時間戳發(fā)送給客戶端。
當(dāng)用戶登錄后,客戶端獲取所述裝置的時間戳,并將所述裝置的時間戳與本地的時間戳比較,如果所述裝置的時間戳大于本地的時間戳,則通過所述裝置下載呼叫受限對象及其相應(yīng)的呼叫受限狀態(tài),更新本地的呼叫受限信息。
聯(lián)系人狀態(tài)網(wǎng)絡(luò)同步模塊403可以位于IM服務(wù)器或用戶信息管理服務(wù)器。
參見圖6,采用上述裝置后,實現(xiàn)呼叫受限狀態(tài)設(shè)置的具體步驟如下步驟501IM用戶針對某個聯(lián)系人或者聯(lián)系人組設(shè)置呼叫受限狀態(tài)。具體步驟和實施例1中步驟301-303相同,不再贅述。
步驟502聯(lián)系人狀態(tài)網(wǎng)絡(luò)同步模塊從聯(lián)系人狀態(tài)管理模塊獲取IM客戶端發(fā)送的包含呼叫受限信息的消息;步驟503聯(lián)系人狀態(tài)網(wǎng)絡(luò)同步模塊對該消息進(jìn)行解析以及解密處理,獲取該消息中IM用戶UIN號碼以及相應(yīng)的以聯(lián)系人UIN號碼為Key的狀態(tài)Map數(shù)據(jù)結(jié)構(gòu),利用IM用戶UIN號碼獲取對應(yīng)的數(shù)據(jù)行進(jìn)行數(shù)據(jù)庫寫入操作(即將與IM用戶UIN號碼對應(yīng)的以聯(lián)系人UIN號碼為Key的狀態(tài)Map數(shù)據(jù)結(jié)構(gòu)寫入IM用戶UIN號碼對應(yīng)的數(shù)據(jù)行),同時修改上述裝置的時間戳(通常為用戶信息管理服務(wù)器的時間戳),將時間戳增加。
步驟504當(dāng)IM用戶登錄IM客戶端,IM客戶端發(fā)送協(xié)議獲取用戶信息管理服務(wù)器對應(yīng)受限狀態(tài)設(shè)置的時間戳,與本地的時間戳進(jìn)行比較,如果用戶信息管理服務(wù)器的時間戳大于本地的時間戳,則說明本地數(shù)據(jù)需要更新,通過服務(wù)器查詢本用戶UIN對應(yīng)的所有以聯(lián)系人UIN號碼為Key的狀態(tài)Map數(shù)據(jù)結(jié)構(gòu),并下載查詢出來的用戶設(shè)置數(shù)據(jù),即呼叫受限對象及其對應(yīng)的呼叫受限狀態(tài),更新本地的呼叫受限信息。如果等于則說明本地已經(jīng)是最新數(shù)據(jù),不需要進(jìn)行后續(xù)同步處理了。
上述步驟502至504中,用戶設(shè)置數(shù)據(jù)是通過IM服務(wù)器發(fā)送給用戶信息管理服務(wù)器,并由客戶端與用戶信息管理服務(wù)器同步該設(shè)置數(shù)據(jù)。在系統(tǒng)較小的情況下,也可以只采用一個服務(wù)器,如IM服務(wù)器來實現(xiàn)設(shè)置數(shù)據(jù)的同步。
實施例3參見圖7,本發(fā)明實施例提供了一種實現(xiàn)呼叫受限的即時通訊系統(tǒng),該系統(tǒng)包括客戶端和服務(wù)器;所述客戶端包括主面板管理模塊601,所述服務(wù)器包括聯(lián)系人狀態(tài)管理模塊602和聯(lián)系人消息管理模塊603;主面板管理模塊601用于選擇呼叫受限對象,設(shè)置呼叫受限對象的呼叫受限狀態(tài)為后續(xù)激活狀態(tài),并將包含用戶的標(biāo)識、呼叫受限對象和為呼叫受限對象設(shè)置的呼叫受限狀態(tài)的呼叫受限信息發(fā)送給聯(lián)系人狀態(tài)管理模塊602;聯(lián)系人狀態(tài)管理模塊602用于接收主面板管理模塊發(fā)來的呼叫受限信息,還用于將呼叫受限信息發(fā)送給聯(lián)系人消息管理模塊603;聯(lián)系人消息管理模塊603用于接收聯(lián)系人發(fā)來的呼叫消息,并判斷聯(lián)系人是否為聯(lián)系人狀態(tài)管理模塊發(fā)來的呼叫受限信息中用戶設(shè)置的呼叫受限對象,如果是且聯(lián)系人的呼叫受限狀態(tài)為后續(xù)激活狀態(tài),則記錄呼叫消息,在呼叫受限狀態(tài)取消后,推送呼叫消息給客戶端。
其中,為了實現(xiàn)用戶設(shè)置的呼叫受限消息的同步,服務(wù)器還包括聯(lián)系人狀態(tài)網(wǎng)絡(luò)同步模塊604和狀態(tài)更新模塊605;服務(wù)器的聯(lián)系人狀態(tài)網(wǎng)絡(luò)同步模塊604用于從聯(lián)系人狀態(tài)管理模塊獲取客戶端發(fā)送的呼叫受限信息,并修改服務(wù)器的時間戳,還用于將修改后的時間戳發(fā)送到狀態(tài)更新模塊605;狀態(tài)更新模塊605用于當(dāng)用戶登錄后,獲取修改后的時間戳,并將獲取的時間戳與本地的時間戳比較,如果獲取的時間戳大于本地的時間戳,則通過服務(wù)器下載呼叫受限信息,更新本地的呼叫受限信息。
以上所述,僅為本發(fā)明較佳的具體實施方式
,本發(fā)明的保護(hù)范圍并不局限于此,任何本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),不經(jīng)創(chuàng)造性勞動即可作出的顯而易見的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
1.一種在即時通訊系統(tǒng)中實現(xiàn)呼叫受限的方法,其特征在于,所述方法包括以下步驟接收客戶端發(fā)送的呼叫受限信息,所述呼叫受限信息包括用戶的標(biāo)識、呼叫受限對象和為所述呼叫受限對象設(shè)置的呼叫受限狀態(tài);收到聯(lián)系人的呼叫消息后,如果所述聯(lián)系人為所述用戶設(shè)置的呼叫受限對象且所述聯(lián)系人的呼叫受限狀態(tài)為后續(xù)激活狀態(tài),則記錄所述呼叫消息,在所述呼叫受限狀態(tài)取消后,推送所述呼叫消息。
2.如權(quán)利要求1所述的在即時通訊系統(tǒng)中實現(xiàn)呼叫受限的方法,其特征在于,所述記錄所述呼叫消息,在所述呼叫受限狀態(tài)取消后,推送所述呼叫消息的步驟具體包括建立所述聯(lián)系人與所述呼叫消息的對應(yīng)關(guān)系,存儲所述呼叫消息,在所述呼叫受限狀態(tài)取消后,遍歷所有聯(lián)系人與呼叫消息的對應(yīng)關(guān)系,根據(jù)客戶端的選擇推送對應(yīng)的呼叫消息。
3.如權(quán)利要求1或2所述的在即時通訊系統(tǒng)中實現(xiàn)呼叫受限的方法,其特征在于,所述接收客戶端發(fā)送的呼叫受限信息的步驟之后還包括修改服務(wù)器的時間戳;當(dāng)所述用戶登錄后,客戶端獲取所述服務(wù)器的時間戳,并將所述服務(wù)器的時間戳與本地的時間戳比較,如果所述服務(wù)器的時間戳大于所述本地的時間戳,則從所述服務(wù)器下載所述用戶對應(yīng)的呼叫受限信息,更新本地呼叫受限信息。
4.如權(quán)利要求1或2所述的在即時通訊系統(tǒng)中實現(xiàn)呼叫受限的方法,其特征在于,所述呼叫受限對象為聯(lián)系人或聯(lián)系人組。
5.如權(quán)利要求1所述的在即時通訊消息系統(tǒng)中實現(xiàn)呼叫受限的方法,其特征在于,所述用戶的標(biāo)識為用戶身份號碼。
6.一種在即時通訊系統(tǒng)中實現(xiàn)呼叫受限的裝置,其特征在于,所述裝置包括聯(lián)系人狀態(tài)管理模塊和聯(lián)系人消息管理模塊;所述聯(lián)系人狀態(tài)管理模塊用于接收并存儲客戶端用戶發(fā)送的呼叫受限信息,所述呼叫受限信息包括用戶的標(biāo)識、呼叫受限對象和為所述呼叫受限對象設(shè)置的呼叫受限狀態(tài),還用于將所述呼叫受限信息發(fā)送給所述聯(lián)系人消息管理模塊;所述聯(lián)系人消息管理模塊具體包括接收單元和記錄推送單元;所述接收單元用于接收聯(lián)系人發(fā)來的呼叫消息,并判斷所述聯(lián)系人是否為所述聯(lián)系人狀態(tài)管理模塊發(fā)來的呼叫受限信息中所述用戶設(shè)置的呼叫受限對象,如果是且所述聯(lián)系人的呼叫受限狀態(tài)為后續(xù)激活狀態(tài),則通知所述記錄推送單元;所述記錄推送單元用于接收所述接收單元的通知,記錄所述呼叫消息,在所述呼叫受限狀態(tài)取消后,推送所述呼叫消息。
7.如權(quán)利要求6所述的在即時通訊系統(tǒng)中實現(xiàn)呼叫受限的裝置,其特征在于,所述記錄推送單元具體包括記錄子單元和推送子單元;所述記錄子單元用于接收所述接收單元的通知,建立所述聯(lián)系人與所述呼叫消息的對應(yīng)關(guān)系,存儲所述呼叫消息,并將所述對應(yīng)關(guān)系發(fā)送給所述推送子單元;所述推送子單元用于在所述呼叫受限狀態(tài)取消后,獲取所述記錄子單元發(fā)送的所述對應(yīng)關(guān)系,遍歷所有聯(lián)系人與呼叫消息的對應(yīng)關(guān)系,根據(jù)客戶端的選擇推送對應(yīng)的呼叫消息。
8.如權(quán)利要求6或7所述的在即時通訊系統(tǒng)中實現(xiàn)呼叫受限的裝置,其特征在于,所述裝置還包括聯(lián)系人狀態(tài)網(wǎng)絡(luò)同步模塊;所述聯(lián)系人狀態(tài)網(wǎng)絡(luò)同步模塊用于接收客戶端發(fā)送的呼叫受限信息,所述呼叫受限信息包括所述用戶的標(biāo)識、呼叫受限對象和為所述呼叫受限對象設(shè)置的呼叫受限狀態(tài);還用于修改所述裝置中的時間戳,并將所述時間戳發(fā)送給客戶端。
9.一種實現(xiàn)呼叫受限的即時通訊系統(tǒng),其特征在于,所述系統(tǒng)包括客戶端和服務(wù)器;所述客戶端包括主面板管理模塊,所述服務(wù)器包括聯(lián)系人狀態(tài)管理模塊和聯(lián)系人消息管理模塊;所述主面板管理模塊用于選擇呼叫受限對象,設(shè)置所述呼叫受限對象的呼叫受限狀態(tài)為后續(xù)激活狀態(tài),并將包含用戶的標(biāo)識、所述呼叫受限對象和為所述呼叫受限對象設(shè)置的呼叫受限狀態(tài)的呼叫受限信息發(fā)送給所述聯(lián)系人狀態(tài)管理模塊;所述聯(lián)系人狀態(tài)管理模塊用于接收所述主面板管理模塊發(fā)來的呼叫受限信息,還用于將所述呼叫受限信息發(fā)送給所述聯(lián)系人消息管理模塊;所述聯(lián)系人消息管理模塊用于接收聯(lián)系人發(fā)來的呼叫消息,并判斷所述聯(lián)系人是否為所述聯(lián)系人狀態(tài)管理模塊發(fā)來的呼叫受限信息中所述用戶設(shè)置的呼叫受限對象,如果是且所述聯(lián)系人的呼叫受限狀態(tài)為后續(xù)激活狀態(tài),則記錄所述呼叫消息,在所述呼叫受限狀態(tài)取消后,推送所述呼叫消息給所述客戶端。
10.根據(jù)權(quán)利要求9所述的實現(xiàn)呼叫受限的即時通訊系統(tǒng),其特征在于,所述服務(wù)器還包括聯(lián)系人狀態(tài)網(wǎng)絡(luò)同步模塊和狀態(tài)更新模塊;所述服務(wù)器的聯(lián)系人狀態(tài)網(wǎng)絡(luò)同步模塊用于從所述聯(lián)系人狀態(tài)管理模塊獲取所述客戶端發(fā)送的呼叫受限信息,并修改所述服務(wù)器的時間戳,還用于將所述修改后的時間戳發(fā)送到所述狀態(tài)更新模塊;所述狀態(tài)更新模塊用于當(dāng)所述用戶登錄后,獲取所述修改后的時間戳,并將所述獲取的時間戳與本地的時間戳比較,如果所述獲取的時間戳大于所述本地的時間戳,則通過所述服務(wù)器下載所述呼叫受限信息,更新本地的呼叫受限信息。
全文摘要
本發(fā)明提供了一種在即時通訊系統(tǒng)中實現(xiàn)呼叫受限的方法、裝置和系統(tǒng),屬于計算機(jī)技術(shù)領(lǐng)域。為了使IM用戶在呼叫受限狀態(tài)取消后,能夠獲得聯(lián)系人在呼叫受限狀態(tài)期間發(fā)送的消息,所述方法包括接收客戶端發(fā)送的呼叫受限信息,呼叫受限信息包括用戶的標(biāo)識、呼叫受限對象和為呼叫受限對象設(shè)置的呼叫受限狀態(tài);收到聯(lián)系人的呼叫消息后,如果聯(lián)系人為用戶設(shè)置的呼叫受限對象且聯(lián)系人的呼叫受限狀態(tài)為后續(xù)激活狀態(tài),則記錄呼叫消息,在呼叫受限狀態(tài)取消后,推送呼叫消息。所述裝置包括聯(lián)系人狀態(tài)管理模塊和聯(lián)系人消息管理模塊。所述系統(tǒng)包括客戶端和服務(wù)器。采用本發(fā)明所述技術(shù)方案提高了IM系統(tǒng)的可用性,使服務(wù)更加人性化和個性化。
文檔編號H04L12/58GK101087272SQ200710076340
公開日2007年12月12日 申請日期2007年6月29日 優(yōu)先權(quán)日2007年6月29日
發(fā)明者李斌 申請人:騰訊科技(深圳)有限公司