專利名稱:基于會話發(fā)起協(xié)議的訂閱方法及其系統(tǒng)和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及訂閱技術(shù),特別涉及會話發(fā)起協(xié)議中的SUBSCRIBE/NOTIFY(訂閱/通知)的機(jī)制。
背景技術(shù):
會話發(fā)起協(xié)議(Session Initation Protocol,簡稱“SIP”)是因特網(wǎng)工程任務(wù)組(IETF)于1999年3月發(fā)布的“一種在網(wǎng)上傳送話音(VoIP)的標(biāo)準(zhǔn)”。
SIP是一信令協(xié)議用于初始、管理和終止分組網(wǎng)絡(luò)中的語音和視頻會話,具體地說就是用來生成、修改和終結(jié)一個或多個參與者之間的會話。SIP是IETF多媒體數(shù)據(jù)和控制體系結(jié)構(gòu)的一個組成部分,因此它與IETF的許多其他協(xié)議都有聯(lián)系,例如實時傳輸協(xié)議(RealTime Transfer Protocol,簡稱“RTP”)、會話描述協(xié)議(Session Description Protocol,簡稱“SDP”)等。
SIP主要提供了與會話建立和終結(jié)相關(guān)的五個方面功能,它們是(1)用戶定位用于通信的終端系統(tǒng)的決定;(2)用戶可用性被呼叫方參與通信的意愿的決定;(3)用戶能力使用的媒體和媒體參數(shù)的決定;(4)會話建立“振鈴”,呼叫和被呼叫方會話參數(shù)的建立;(5)會話管理包括轉(zhuǎn)移和終結(jié)會話,修改會話參數(shù),以及調(diào)用業(yè)務(wù)等。
SIP有兩種類型的消息,它們是(1)請求從客戶機(jī)發(fā)到服務(wù)器的消息。
(2)響應(yīng)從服務(wù)器發(fā)到客戶機(jī)的消息。
其中請求消息包括INVITE初始呼叫。
ACK確認(rèn)INVITE的最終應(yīng)答。
BYE終止呼叫。
CANCEL撤消搜索和振玲。
OPTIONS查詢另一方能力。
REGISTER注冊位置服務(wù)。
INFO發(fā)送會話中信息而不改變會話狀態(tài)。
PRACK與ACK作用相同,但是用于臨時響應(yīng)。
SUBSCRIBE該方法用來向遠(yuǎn)端端點預(yù)訂其狀態(tài)變化的通知。
NOTIFY該方法發(fā)送消息以通知預(yù)訂者它所預(yù)定的狀態(tài)的變化。
UPDATE允許客戶更新一個會話的參數(shù)而不影響該會話的當(dāng)前狀態(tài)。
MESSAGE通過在其請求體中承載即時消息內(nèi)容實現(xiàn)即時消息。
REFER其功能是指示接受方通過使用在請求中提供的聯(lián)系地址信息聯(lián)系第三方。
響應(yīng)消息包含數(shù)字響應(yīng)代碼。SIP響應(yīng)代碼集部分基于HTTP響應(yīng)代碼。有兩種類型的響應(yīng),它們是臨時響應(yīng)(1XX)臨時響應(yīng)被服務(wù)器用來指示進(jìn)程,但是不終結(jié)SIP事物。
最終響應(yīng)(2XX,3XX,4XX,5XX,6XX)最終響應(yīng)終止SIP事物。
每條SIP消息由以下三部分組成(1)起始行(Start Line)每個SIP消息由起始行開始。起始行傳達(dá)消息類型(在請求中是方法類型,在響應(yīng)中是響應(yīng)代碼)與協(xié)議版本。起始行可以是一請求行(請求)或狀態(tài)行(響應(yīng))。
(2)SIP頭用來傳遞消息屬性和修改消息意義。它們在語法和語義上與HTTP頭域相同(實際上有些頭就是借自HTTP),并且總是保持格式<名字><值>。
(3)消息體用于描述初始的會話(例如,在多媒體會話中包括音頻和視頻編碼類型,采樣率等)。消息體能夠顯示在請求與響應(yīng)中。SIP清晰區(qū)別了在SIP起始行和頭中傳遞的信令信息與在SIP范圍之外的會話描述信息??赡艿捏w類型就包括本文將要描述的SDP會話描述協(xié)議。
自1999年至今,SIP基礎(chǔ)協(xié)議已從最初的RFC 2543發(fā)展到了現(xiàn)在的RFC3261,協(xié)議內(nèi)容得到了很大的擴(kuò)充,其描述的信令框架也更加完善。人們已不再滿足于使用SIP完成基本的呼叫控制,更多的是關(guān)注如何利用SIP靈活實現(xiàn)增值業(yè)務(wù)。
在SIP協(xié)議中給出了一種SUBSCRIBE/NOTIFY(訂閱/通知)的機(jī)制,使網(wǎng)絡(luò)中的一些實體可以訂閱網(wǎng)絡(luò)中某些資源或呼叫的狀態(tài)信息,當(dāng)那些被訂閱的資源的狀態(tài)發(fā)生改變時,負(fù)責(zé)這一資源的網(wǎng)絡(luò)實體將向訂閱者發(fā)送通告,通報當(dāng)前資源狀態(tài)的變化情況。訂閱者(subscriber)向通知者(notifier)通過SIP SUBSCRIBE消息發(fā)起對某個事件的訂閱請求,通知者通過SIPNOTIFY消息返回訂閱通知。
當(dāng)一個訂閱事件被訂閱成功后,訂閱者和通知者都會為該訂閱事件創(chuàng)建各自的訂閱實例,該訂閱實例具有一定的生命周期,該生命周期由SUBSCRIBE/NOTIFY消息中的Expires值和當(dāng)前SIP會話標(biāo)識的生命周期所共同決定,在Expires值到達(dá)時,如果訂閱者想繼續(xù)得到該訂閱事件的通知,則需要重發(fā)SUBSCRIBE消息,以刷新訂閱實例;而若當(dāng)前SIP會話標(biāo)識的生命周期結(jié)束,如訂閱者離線,則該訂閱實例的生命周期也隨之結(jié)束。在訂閱實例的生命周期結(jié)束前,訂閱者想取消訂閱,則需要發(fā)送一個Expires值為“0”的SUBSCRIBE消息。
在實際應(yīng)用中,上述方案存在以下問題當(dāng)用戶希望能發(fā)起一個永久有效的訂閱時,用戶終端(訂閱者)需要保持一直在線。比如,用戶開通了一個語音郵箱,只要該郵箱還有效,就希望能夠在自己有新留言消息時,語音郵箱能夠通知他。只要用戶離線,訂閱實例就會結(jié)束,要實現(xiàn)永久訂閱的場景需求,只能在用戶重新上線時,由用戶主動或用戶終端在能識別出用戶企圖(永久訂閱)的前提下自動重新發(fā)起一個對留言消息事件的訂閱請求,這對用戶和用戶終端都是額外的要求,何況SIP協(xié)議中也沒有用戶終端能識別出用戶永久訂閱企圖的方法。
另外,如果用戶希望能發(fā)起一個臨時有效的一次性訂閱,該訂閱在訂閱事件所服務(wù)的業(yè)務(wù)完成結(jié)束時自動取消。用戶終端也很難為其設(shè)定一個具體的訂閱周期值。比如,用戶收到一個匿名的惡意呼叫,向網(wǎng)絡(luò)設(shè)備訂閱惡意呼叫追查事件,此時用戶訂閱的并不是一種狀態(tài)變化,而是該訂閱事件的當(dāng)前狀態(tài)(發(fā)起惡意呼叫的主叫標(biāo)識)。由于通知者可能本身也不知道發(fā)起惡意呼叫的主叫標(biāo)識而需要先向其它網(wǎng)元請求,因此從通知者接收訂閱到發(fā)出通知之間將會有一個不確定的間隔,使得用戶更加難以設(shè)定訂閱周期值。如果訂閱周期值設(shè)得太小,有可能用戶終端在收到訂閱通知時,所創(chuàng)建的訂閱實例已經(jīng)失效而造成訂閱失??;如果設(shè)得大了,有可能在呼叫釋放時,訂閱實例還有效存在,使得訂閱者和通知者必須進(jìn)行額外的處理。
另外,由于目前的SUBSCRIBE/NOTIFY機(jī)制沒有給出基于時間策略的訂閱,使得用戶無法發(fā)起一個能夠指定訂閱實例的起始生效時間以及訂閱通知的發(fā)送時間的訂閱。比如說,用戶三天后出差,他希望現(xiàn)在就訂閱三天后的出差城市的天氣預(yù)報,即服務(wù)商在三天后才開始發(fā)送天氣預(yù)報。再比如,用戶訂閱了天氣預(yù)報,因為服務(wù)商的發(fā)送時刻不符合他的生活習(xí)慣,他希望服務(wù)商能夠按他自己指定的時刻來發(fā)送天氣預(yù)報。目前的SUBSCRIBE/NOTIFY機(jī)制就無法滿足這樣的用戶需求。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明的主要目的在于提供一種基于會話發(fā)起協(xié)議的訂閱方法,使得永久訂閱和臨時訂閱功能得以實現(xiàn),可定制通知發(fā)送時間。
為實現(xiàn)上述目的,本發(fā)明提供了一種基于會話發(fā)起協(xié)議的訂閱方法,包含以下步驟通知者收到訂閱請求消息,根據(jù)該消息所攜帶的永久訂閱標(biāo)識或臨時訂閱標(biāo)識、或根據(jù)所訂閱事件判斷所述訂閱請求是永久訂閱請求或臨時訂閱請求,發(fā)送通知消息告知訂閱者所訂閱事件的當(dāng)前狀態(tài),直到所述永久訂閱或臨時訂閱失效。
其中,所述訂閱者接收到的所述訂閱請求的響應(yīng)消息中或所述通知消息中,攜帶永久訂閱標(biāo)識或臨時訂閱標(biāo)識。
此外在所述方法中,所述通知者為所述訂閱者設(shè)置永久訂閱標(biāo)記或臨時訂閱標(biāo)記。
此外在所述方法中,所述永久訂閱在所述訂閱被取消時失效,所述臨時訂閱在所訂閱事件對應(yīng)的業(yè)務(wù)完成時失效。
此外在所述方法中,所述訂閱者離線后,所述永久訂閱保持有效。
此外在所述方法中,通過擴(kuò)展會話發(fā)起協(xié)議消息中現(xiàn)有頭域的取值、或通過在會話發(fā)起協(xié)議消息中增加新的頭域,以指明所述消息中的永久訂閱標(biāo)識或臨時訂閱標(biāo)識。
此外在所述方法中,可被擴(kuò)展的現(xiàn)有頭域可以是以下之一“Expires”頭域、“Subscription-State”頭域、或“Event”頭域。
此外在所述方法中,通過在所述會話發(fā)起協(xié)議消息中不攜帶有效期限頭域,以指明所述消息中的永久訂閱標(biāo)識。
此外在所述方法中,所述消息中的臨時訂閱標(biāo)識可以是表示單次或有限次訂閱的標(biāo)識。
此外在所述方法中,所述訂閱請求消息會話發(fā)起協(xié)議中的“SUBSCRIBE”消息;所述通知消息是會話發(fā)起協(xié)議中的“NOTIFY”消息。
本發(fā)明還提供了一種基于會話發(fā)起協(xié)議的訂閱方法,包含以下步驟訂閱者向通知者發(fā)起訂閱請求消息,其中包含表示訂閱起始生效時間的第一參數(shù)、和/或表示通知發(fā)送時間的第二參數(shù);所述通知者收到該訂閱請求消息后,在其中的第一參數(shù)指定的時間之后、和/或按第二參數(shù)指定的時間,向所述訂閱者發(fā)送通知消息。
其中,所述第二參數(shù)中可包含一個或多個通知發(fā)送時間。
此外在所述方法中,所述第二參數(shù)中可包含一個或多個相鄰兩次通知發(fā)送的時間間隔。
此外在所述方法中,可通過擴(kuò)展會話發(fā)起協(xié)議消息中現(xiàn)有頭域的取值,以攜帶所述第一、第二參數(shù)。
此外在所述方法中,可被擴(kuò)展的現(xiàn)有頭域可以是以下之一或其任意組合“Expires”頭域、“Subscription-State”頭域、或“Event”頭域。
此外在所述方法中,可通過在會話發(fā)起協(xié)議消息中增加新的頭域,以攜帶所述第一、第二參數(shù)。
此外在所述方法中,所述訂閱請求消息和取消訂閱的消息是會話發(fā)起協(xié)議中的“SUBSCRIBE”消息;所述通知消息是會話發(fā)起協(xié)議中的“NOTIFY”消息。
本發(fā)明還提供了一種基于會話發(fā)起協(xié)議的訂閱系統(tǒng),包含以下模塊訂閱模塊,用于發(fā)起訂閱請求消息;通知模塊,用于接收所述訂閱請求消息,根據(jù)該消息中所攜帶的訂閱時間描述信息,向所述訂閱模塊發(fā)送描述所訂閱事件當(dāng)前狀態(tài)的訂閱通知消息。
其中,所述訂閱時間描述信息可以是永久訂閱標(biāo)識或臨時訂閱標(biāo)識、或表示訂閱起始生效時間的參數(shù)和/或表示通知發(fā)送時間的參數(shù)。
此外在所述系統(tǒng)中,所述通知模塊在發(fā)送的所述訂閱通知消息中、或所述訂閱請求的響應(yīng)消息中,攜帶永久訂閱標(biāo)識或臨時訂閱標(biāo)識。
此外在所述系統(tǒng)中,所述通知模塊收到的所述訂閱請求消息中沒有包含永久訂閱標(biāo)識或臨時訂閱標(biāo)識,則可以根據(jù)所訂閱事件判斷所述訂閱請求是永久訂閱請求或臨時訂閱請求,向所述訂閱模塊發(fā)送描述所訂閱事件當(dāng)前狀態(tài)的訂閱通知消息。
此外在所述系統(tǒng)中,所述訂閱請求表示永久訂閱或臨時訂閱,所述通知模塊將為所述訂閱設(shè)置永久訂閱標(biāo)志或臨時訂閱標(biāo)志。
此外在所述系統(tǒng)中,所述訂閱請求表示永久訂閱或臨時訂閱,所述通知模塊在所述永久訂閱被取消后、或所述臨時訂閱所訂閱事件對應(yīng)的業(yè)務(wù)完成后,使所述永久訂閱或臨時訂閱失效。
此外在所述系統(tǒng)中,所述訂閱請求表示永久訂閱,且所述訂閱模塊位于用戶終端,用戶終端離線后,所述通知模塊使所述永久訂閱保持有效。
此外在所述系統(tǒng)中,所述訂閱時間描述信息表示訂閱起始生效時間的參數(shù)和/或表示通知發(fā)送時間的參數(shù),所述通知模塊在第一參數(shù)指定的時間之后、和/或按第二參數(shù)指定的時間,向所述訂閱模塊發(fā)送所述訂閱通知消息。
本發(fā)明還提供了一種基于會話發(fā)起協(xié)議的訂閱裝置,包括訂閱標(biāo)識設(shè)定單元,用于為訂閱事件設(shè)定與其業(yè)務(wù)特性對應(yīng)的永久訂閱標(biāo)識或臨時訂閱標(biāo)識;消息構(gòu)造單元,用于生成攜帶所述訂閱標(biāo)識設(shè)定單元設(shè)定的永久訂閱標(biāo)識或臨時訂閱標(biāo)識的消息。
其中,所述消息構(gòu)造單元生成的消息是訂閱請求消息。
此外,所述消息構(gòu)造單元生成的消息是與訂閱請求消息對應(yīng)的通知消息或響應(yīng)消息。
此外,所述消息構(gòu)造單元通過擴(kuò)展SIP消息中現(xiàn)有頭域的取值來攜帶永久訂閱標(biāo)識或臨時訂閱標(biāo)識;或者所述消息構(gòu)造單元通過SIP消息中增加的頭域來攜帶永久訂閱標(biāo)識或臨時訂閱標(biāo)識;或者所述消息構(gòu)造單元通過SIP消息中不標(biāo)明有效期限頭域來表示永久訂閱標(biāo)識。
通過比較可以發(fā)現(xiàn),本發(fā)明的技術(shù)方案與現(xiàn)有技術(shù)的主要區(qū)別在于,引入了臨時訂閱和永久訂閱的機(jī)制。通知者收到SUBSCRIBE消息時,根據(jù)消息中所帶的標(biāo)識或所訂閱事件對應(yīng)的業(yè)務(wù)特性,為訂閱者設(shè)置臨時訂閱標(biāo)記或永久訂閱標(biāo)記;如果是永久訂閱標(biāo)記,則通知者的NOTIFY消息一直發(fā)送到被訂閱者或系統(tǒng)取消訂閱為止;如果是臨時訂閱標(biāo)記,則通知者在所訂業(yè)務(wù)完成時就不再發(fā)送NOTIFY消息。
訂閱者可以在發(fā)給通知者的SUBSCRIBE消息中指明臨時訂閱或永久訂閱的標(biāo)識;或由通知者收到普通訂閱后根據(jù)業(yè)務(wù)特性決定訂閱類型;或由業(yè)務(wù)控制節(jié)點在收到訂閱者的普通訂閱后根據(jù)業(yè)務(wù)特性決定訂閱類型,再于轉(zhuǎn)發(fā)給通知者的SUBSCRIBE消息中指明臨時訂閱或永久訂閱的標(biāo)識。
訂閱者可以在發(fā)給通知者的SUBSCRIBE消息中攜帶表示訂閱起始生效時間的參數(shù)和/或表示通知發(fā)送時間的參數(shù),通知者解析該消息,在訂閱起始生效時間之后、和/或按通知發(fā)送時間,向訂閱者發(fā)送NOTIFY消息。
為了在SIP消息中指明臨時訂閱或永久訂閱的標(biāo)識、訂閱起始生效時間、以及通知發(fā)送時間,可以擴(kuò)展現(xiàn)有頭域(如Expires、Subscription-State、Event等)的取值,也可以增加新的頭域。
這種技術(shù)方案上的區(qū)別,帶來了較為明顯的有益效果,即在SIP協(xié)議中,通過SUBSCRIBE中的某種標(biāo)識指明永久訂閱和臨時訂閱,使用戶在發(fā)起此類訂閱時,不再需要考慮設(shè)定一個具體的訂閱周期值,甚至也不需要指明永久訂閱和臨時訂閱,簡化了操作,給用戶帶來了良好的業(yè)務(wù)體驗。同時永久訂閱標(biāo)記不再受訂閱實例的生命周期的限制,只要用戶終端可以保存永久訂閱標(biāo)記,離線后再在線所創(chuàng)建的永久訂閱依舊有效,給用戶帶來了良好的業(yè)務(wù)體驗。
在SIP協(xié)議中,通過訂閱消息中的某種參數(shù)指明訂閱的起始生效時間和通知的發(fā)送時間,使得訂閱者可以靈活創(chuàng)建基于時間的訂閱策略,給用戶帶來了良好的業(yè)務(wù)體驗。
圖1是根據(jù)本發(fā)明第一實施例的一種臨時訂閱和永久訂閱的方法流程示意圖;圖2是根據(jù)本發(fā)明第二實施例的一種臨時訂閱和永久訂閱的方法流程示意圖;圖3是根據(jù)本發(fā)明第三實施例的一種臨時訂閱和永久訂閱的方法流程示意圖;圖4是根據(jù)本發(fā)明第四實施例的一種臨時訂閱和永久訂閱的方法流程示意圖;圖5是根據(jù)本發(fā)明第五實施例的一種臨時訂閱和永久訂閱的方法流程示意圖。
具體實施例方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合附圖對本發(fā)明作進(jìn)一步地詳細(xì)描述。
通過在SIP消息中設(shè)置某種標(biāo)識來指明永久訂閱和臨時訂閱,使得訂閱者或通知者可以根據(jù)永久訂閱標(biāo)識或臨時訂閱標(biāo)識在訂閱實施例中設(shè)置永久訂閱標(biāo)記或臨時訂閱標(biāo)記,再根據(jù)此標(biāo)記來完成對永久訂閱和臨時訂閱的事件處理,而不再需要用戶考慮設(shè)定一個具體的訂閱周期值,也不需要用戶離線后再在線為實現(xiàn)永久的訂閱而再次發(fā)起訂閱操作。
本發(fā)明的第一實施例如圖1所示,在步驟110中,訂閱者通過SUBSCRIBE消息發(fā)起訂閱請求。訂閱者根據(jù)訂閱事件的業(yè)務(wù)特性決定是發(fā)起一個永久訂閱或臨時訂閱,然后,在發(fā)起的訂閱請求中標(biāo)識永久訂閱或臨時訂閱。比如說,用戶訂閱留言消息事件,只要語音郵箱還有效,就希望能夠在自己有新留言消息時,語音郵箱能夠通知他。所以,該用戶在發(fā)起的訂閱請求中要標(biāo)識這是一個永久訂閱。如果用戶訂閱惡意呼叫追查事件,該訂閱事件是隨著該業(yè)務(wù)完成結(jié)束后自動取消的,那么,該用戶在發(fā)起的訂閱請求中要標(biāo)識這是一個臨時訂閱。訂閱者在發(fā)起的訂閱請求中可以通過擴(kuò)展現(xiàn)有頭域的取值或者新增頭域來標(biāo)識永久訂閱或臨時訂閱。舉例來說,在SIP訂閱機(jī)制中可以通過擴(kuò)展Expires、Subscription-State(訂閱狀態(tài))、Event的頭域來標(biāo)識永久訂閱或臨時訂閱。比如說,在目前的SIP協(xié)議中,Expires頭域的取值格式如下
Expires=“Expires”“:”(SIP-date|delta-seconds)SIP-date是一種日期時間的表示格式,delta-seconds是一個單位為秒的非負(fù)整數(shù),如ExpiresThu,01 Dec 1994 16:00:00 GMTExpires5現(xiàn)在,可以在Expires頭域中增加兩種取值permanent(永久訂閱)和temporary(臨時訂閱)ExpirespermanentExpirestemporary那么,在Expires頭域中就可以標(biāo)識永久訂閱或臨時訂閱。
也可以在Subscription-State(訂閱狀態(tài))頭域中增加取值。在目前的SIP協(xié)議中,Subscription-State(訂閱狀態(tài))的取值格式如下Subscription-State =″Subscription-State″HCOLON substate-value*(SEMI subexp-params)substate-value =″active″/″pending″/″terminated″/extension-substate并且該頭域只用在通知者發(fā)出的NOTIFY消息中?,F(xiàn)在,可以增加三種訂閱狀態(tài)的取值,并且讓訂閱者在發(fā)出的SUBSCRIBE消息中也可以攜帶該頭域,使訂閱者可以自己標(biāo)識永久訂閱或臨時訂閱。該取值可以定義如下Subscription-Statenormal(訂閱周期正常)Subscription-Statepermanent(訂閱周期永久)Subscription-Statetemporary(訂閱周期臨時)在Event頭域中也可以增加一個參數(shù)來描述訂閱事件的訂閱周期屬性,該屬性用來表示訂閱事件的類型是正常訂閱還是永久訂閱或臨時訂閱。在目前的SIP協(xié)議中,Event頭域用來描述訂閱事件類型,取值定義如下Event=(“Event”/“o”)HCOLON event-type*(SEMI event-param)event-type =event-package*(“.”event-template)event-package=token-nodotevent-template =token-nodottoken-nodot =1*(alphanum/“-”/“!”/“%”/“*”/“_”/“+”/“`”/“′”/“~”)event-param =generic-param/(“id”EQUAL token)在目前的Event頭域中有event-type和可選的event-param這兩個參數(shù),可以在其中再增加一個可選的event-period參數(shù),取值定義如下event-period =“normal”/“permanent”/“temporary”其中,若Event頭域中沒有設(shè)定event-period參數(shù)時,等同于該參數(shù)取值為“normal”,也就是說,event-period的缺省值為“normal”。
訂閱者除了可以在SUBSCRIBE消息中通過擴(kuò)展Expires、Subscription-State、Event等現(xiàn)有頭域的取值來標(biāo)識永久訂閱或臨時訂閱,也可以通過新增頭域來標(biāo)識永久訂閱或臨時訂閱。比如說,在SIP協(xié)議中增加一個新的頭域Periods來描述訂閱事件的周期性屬性,該屬性用來表示訂閱事件的類型是正常訂閱還是永久訂閱或臨時訂閱。格式如下Periods=“Periods”HCOLON periods-valueperiods-value =“normal”/“permanent”/“temporary”/token通過periods-value的值來標(biāo)識該訂閱是正常,永久,還是臨時的。需要說明的是,無論是通過擴(kuò)展Expires、Subscription-State、event等現(xiàn)有頭域的取值還是通過新增頭域來標(biāo)識訂閱的類型是普通訂閱、永久訂閱或臨時訂閱,都可以將臨時訂閱這一類型繼續(xù)細(xì)分為單次訂閱和有限次訂閱。其中,單次訂閱(once)表示訂閱者發(fā)起的訂閱請求,只需要通知者發(fā)送一次訂閱通知;有限次訂閱(limited)表示訂閱者發(fā)起的訂閱請求,需要通知者發(fā)送一次或一次以上的、有限次的訂閱通知,直至臨時訂閱服務(wù)的業(yè)務(wù)完成結(jié)束。比如說,在Expires頭域中增加三種取值permanent(永久訂閱)、once(一次訂閱)和limited(有限次訂閱)ExpirespermanentExpiresonceExpireslimited同樣,也可以在Subscription-State、Event等現(xiàn)有頭域或是新增頭域中將臨時訂閱細(xì)分為單次訂閱和有限次訂閱。
當(dāng)訂閱者通過SUBSCRIBE消息發(fā)起訂閱請求,并在該訂閱請求中標(biāo)識了永久訂閱或臨時訂閱后,進(jìn)入步驟120。通知者接收到訂閱者的訂閱請求后,對該訂閱請求進(jìn)行解析并鑒權(quán),也就是通知者是否同意訂閱者對該訂閱事件的訂閱。同時,通知者發(fā)出200OK響應(yīng),200OK表示訂閱已被接受且用戶已被授權(quán)訂閱請求的資源,并且,通知者根據(jù)SUBSCRIBE消息中的永久訂閱標(biāo)識或臨時訂閱標(biāo)識為該訂閱者設(shè)定一個該訂閱事件的永久訂閱標(biāo)記或臨時訂閱標(biāo)記,并在該標(biāo)記的有效期內(nèi),發(fā)送NOTIFY消息通知訂閱者該訂閱事件的當(dāng)前狀態(tài)。比如說,訂閱者訂閱的是留言消息事件,在發(fā)起的訂閱請求中標(biāo)識了永久訂閱,那么,通知者在接收到訂閱請求并對其進(jìn)行解析鑒權(quán)后,只要設(shè)定的永久訂閱標(biāo)記不失效,就通過NOTIFY消息發(fā)送通知消息,告知訂閱者該訂閱事件的當(dāng)前狀態(tài)。永久訂閱標(biāo)記的失效是指當(dāng)訂閱者發(fā)出取消對該訂閱事件訂閱的SIP SUBSCRIBE消息,或系統(tǒng)因某種原因取消對該訂閱事件的訂閱(如訂閱者用戶對運(yùn)營商銷戶)時,通知者取消為該訂閱者設(shè)定的該訂閱事件的永久訂閱標(biāo)記。如果訂閱者訂閱的是惡意呼叫追查事件,在發(fā)起的訂閱請求中標(biāo)識了臨時訂閱,那么,通知者在接收到訂閱請求并對其進(jìn)行解析鑒權(quán)后,只要設(shè)定的臨時訂閱標(biāo)記不失效,就要發(fā)送NOTIFY消息通知訂閱者該訂閱事件的當(dāng)前狀態(tài)。臨時訂閱標(biāo)記的失效是指若臨時訂閱標(biāo)識中沒有區(qū)分是單次訂閱(once)還是有限次訂閱(limited),則通知者根據(jù)該訂閱事件所服務(wù)業(yè)務(wù)的完成結(jié)束情況,決定臨時訂閱標(biāo)記的失效;若已經(jīng)在訂閱消息中區(qū)分了單次訂閱標(biāo)識和有限次訂閱標(biāo)識,則對單次訂閱標(biāo)識,通知者在通知了一次該訂閱事件的當(dāng)前狀態(tài)之后即可取消單次訂閱標(biāo)記,而對有限次訂閱標(biāo)識,通知者仍需根據(jù)該訂閱事件所服務(wù)業(yè)務(wù)的完成結(jié)束情況,決定有限次訂閱標(biāo)記的失效。
其中,對永久訂閱來說,當(dāng)訂閱者離線,為節(jié)約系統(tǒng)開銷,通知者可以(暫時)停止發(fā)送NOTIFY消息,當(dāng)訂閱者重新上線,不需要訂閱者額外的操作,只要永久訂閱標(biāo)記仍然有效,通知者將繼續(xù)發(fā)送NOTIFY消息通知訂閱者。當(dāng)通知者獲知訂閱者重新上線時,若在訂閱者上次離線和此次上線之間,所訂閱事件的狀態(tài)發(fā)生了變化,則立即發(fā)送NOTIFY消息通知訂閱者,否則將等到訂閱事件的狀態(tài)發(fā)生變化后,再通知訂閱者。
本實施例通過在SIP訂閱機(jī)制中標(biāo)識永久訂閱或臨時訂閱,使得訂閱者在發(fā)起此類訂閱時,不再需要考慮設(shè)定一個具體的訂閱周期值,也不需要用戶離線后再在線為實現(xiàn)永久的訂閱而再次發(fā)起訂閱操作,,簡化了操作,給用戶帶來了良好的業(yè)務(wù)體驗。
本發(fā)明的第二實施例如圖2所示。在步驟210中,訂閱者通過SUBSCRIBE消息發(fā)起一個普通的訂閱請求。訂閱者可能沒有能力發(fā)起一個永久或臨時訂閱,或不愿決定是否發(fā)起一個永久或臨時訂閱,所以,在發(fā)出的SUBSCRIBE消息中沒有指明該訂閱請求是永久訂閱還是臨時訂閱。
在步驟220中,通知者接收到訂閱者發(fā)出的SUBSCRIBE消息后,對該訂閱請求進(jìn)行解析與鑒權(quán),然后根據(jù)訂閱事件的業(yè)務(wù)特性,判斷該訂閱為一個永久訂閱或臨時訂閱,并為該訂閱者設(shè)定一個該訂閱事件的永久訂閱標(biāo)記或臨時訂閱標(biāo)記。同時,通知者發(fā)送200OK響應(yīng)碼給訂閱者,在此響應(yīng)碼中,指明永久訂閱標(biāo)識或臨時訂閱標(biāo)識,標(biāo)識方式在步驟110中已詳細(xì)說明,在此不再贅述。比如說,通知者接收到訂閱者發(fā)起的訂閱請求是留言消息事件,根據(jù)該訂閱事件的業(yè)務(wù)特性可以判斷出該訂閱為一個永久訂閱,則為該訂閱者設(shè)定一個該訂閱事件的永久訂閱標(biāo)記,并且,在發(fā)送的200OK響應(yīng)碼中指明永久訂閱標(biāo)識。當(dāng)通知者為訂閱者設(shè)定了一個該訂閱事件的永久訂閱標(biāo)記或臨時訂閱標(biāo)記后,就要在該標(biāo)記的有效期內(nèi),發(fā)送NOTIFY消息通知訂閱者該訂閱事件的當(dāng)前狀態(tài),永久訂閱標(biāo)記或臨時訂閱標(biāo)記的失效方式已在步驟120中詳細(xì)說明,在此不再贅述。
訂閱者接收到200OK響應(yīng)碼后,根據(jù)其中的永久訂閱標(biāo)識或臨時訂閱標(biāo)識,為該訂閱事件設(shè)定一個永久訂閱標(biāo)記或臨時訂閱標(biāo)記。
本實施例的作用效果與第一實施例相比,不需要用戶指明永久訂閱和臨時訂閱,進(jìn)一步簡化了操作,給用戶帶來了更好的業(yè)務(wù)體驗。
本發(fā)明的第三實施例如圖3所示。在步驟310中,訂閱者發(fā)起一個普通的訂閱請求。訂閱者可能沒有能力發(fā)起一個永久或臨時訂閱,或不愿決定是否發(fā)起一個永久或臨時訂閱,所以,在發(fā)出的SUBSCRIBE消息中沒有指明該訂閱請求是永久訂閱還是臨時訂閱。
在步驟320中,通知者接收到訂閱者發(fā)出的SUBSCRIBE消息后,對該訂閱請求進(jìn)行解析與鑒權(quán)。同時,發(fā)送200OK響應(yīng)碼給訂閱者,表示訂閱已被接受且用戶已被授權(quán)訂閱請求的資源。
在步驟330中,通知者發(fā)送NOTIFY消息通知訂閱者所訂閱事件的當(dāng)前狀態(tài),即同步通知(sync NOTIFY),并在此通知中指明永久訂閱標(biāo)識或臨時訂閱標(biāo)識。根據(jù)SIP協(xié)議,通知者在接收到SUBSCRIBE消息后,一般需立即發(fā)送一個NOTIFY消息通知訂閱者所訂閱事件的當(dāng)前狀態(tài),即同步通知(sync NOTIFY)。在本實施例中,通知者在接收到SUBSCRIBE消息并解析鑒權(quán)后,先根據(jù)訂閱事件的業(yè)務(wù)特性,如留言消息事件或惡意呼叫追查事件等的業(yè)務(wù)特性,判斷該訂閱為一個永久訂閱或臨時訂閱,并為該訂閱者設(shè)定一個該訂閱事件的永久訂閱標(biāo)記或臨時訂閱標(biāo)記,然后,在發(fā)送的同步通知中指明永久訂閱標(biāo)識或臨時訂閱標(biāo)識。永久訂閱或臨時訂閱的標(biāo)識方式在步驟110中已詳細(xì)說明,在此不再贅述。只要該訂閱事件的永久訂閱標(biāo)記或臨時訂閱標(biāo)記有效,通知者就要發(fā)送NOTIFY消息通知訂閱者該訂閱事件的當(dāng)前狀態(tài)。永久訂閱標(biāo)記或臨時訂閱標(biāo)記的失效方式已在步驟120中詳細(xì)說明,在此不再贅述。
在步驟340中,訂閱者接收到NOTIFY消息后,根據(jù)其中的永久訂閱標(biāo)識或臨時訂閱標(biāo)識,為該訂閱事件設(shè)定一個永久訂閱標(biāo)記或臨時訂閱標(biāo)記,并發(fā)送200OK響應(yīng)碼給通知者。
本實施例的作用效果與第二實施完全相同。
本發(fā)明的第四實施例如圖4所示,在步驟410中,訂閱者發(fā)起一個普通的訂閱請求。訂閱者可能沒有能力發(fā)起一個永久或臨時訂閱,或不愿決定是否發(fā)起一個永久或臨時訂閱,所以,在發(fā)出的SUBSCRIBE消息中沒有指明該訂閱請求是永久訂閱還是臨時訂閱。
在步驟420中,業(yè)務(wù)控制節(jié)點接收SUBSCRIBE消息,根據(jù)訂閱事件的業(yè)務(wù)特性,判斷該訂閱為一個永久訂閱或臨時訂閱,然后在訂閱者發(fā)出的SUBSCRIBE消息中指明永久訂閱標(biāo)識或臨時訂閱標(biāo)識,繼續(xù)向通知者發(fā)送。永久訂閱或臨時訂閱的標(biāo)識方式在步驟110中已詳細(xì)說明,在此不再贅述。其中,業(yè)務(wù)控制節(jié)點是存在于訂閱者與通知者之間的一個控制節(jié)點。比如說,用戶終端(訂閱者)發(fā)起了一個惡意呼叫追查事件的訂閱請求,惡意呼叫追查業(yè)務(wù)由惡意呼叫追查控制節(jié)點處理,那么,訂閱者與通知者之間的控制節(jié)點就是惡意呼叫追查控制節(jié)點。該節(jié)點根據(jù)該訂閱事件的業(yè)務(wù)特性,判斷該訂閱為臨時訂閱。由于該節(jié)點也沒有發(fā)起惡意呼叫的用戶標(biāo)識,所以該節(jié)點將向知道該用戶標(biāo)識的主叫側(cè)的網(wǎng)絡(luò)節(jié)點再傳遞該訂閱請求,并在該訂閱請求中指明永久訂閱標(biāo)識或臨時訂閱標(biāo)識。
在步驟430中,通知者在接收到訂閱者發(fā)起的訂閱請求后,發(fā)送200OK響應(yīng)碼給訂閱者。
在步驟440中,業(yè)務(wù)控制節(jié)點傳遞對訂閱請求的200OK響應(yīng)碼,并在該響應(yīng)碼中指明永久訂閱標(biāo)識或臨時訂閱標(biāo)識,標(biāo)識方式在步驟110中已詳細(xì)說明,在此不再贅述。
訂閱者接收到200OK響應(yīng)碼后,根據(jù)其中的永久訂閱標(biāo)識或臨時訂閱標(biāo)識,為該訂閱事件設(shè)定一個永久訂閱標(biāo)記或臨時訂閱標(biāo)記。
本實施例的作用效果與第二實施例完全相同。
本發(fā)明的第五實施例如圖5所示。在步驟510中,訂閱者發(fā)起一個普通的訂閱請求。訂閱者可能沒有能力發(fā)起一個永久或臨時訂閱,或不愿決定是否發(fā)起一個永久或臨時訂閱,所以,在發(fā)出的SUBSCRIBE消息中沒有指明該訂閱請求是永久訂閱還是臨時訂閱。
在步驟520中,業(yè)務(wù)控制節(jié)點接收SUBSCRIBE消息,根據(jù)訂閱事件的業(yè)務(wù)特性,判斷該訂閱為一個永久訂閱或臨時訂閱,然后在訂閱者發(fā)出的SUBSCRIBE消息中指明永久訂閱標(biāo)識或臨時訂閱標(biāo)識,繼續(xù)向通知者發(fā)送。
在步驟530中,通知者在接收到訂閱者發(fā)起的訂閱請求后,發(fā)送200OK響應(yīng)碼給訂閱者。
在步驟540中,業(yè)務(wù)控制節(jié)點將由通知者發(fā)出的200OK響應(yīng)碼傳遞給訂閱者。
在步驟550中,通知者發(fā)送由SUBSCRIBE消息所觸發(fā)的NOTIFY消息,通知訂閱者所訂閱事件的當(dāng)前狀態(tài),即同步通知(sync NOTIFY)。
在步驟560中,業(yè)務(wù)控制節(jié)點將由通知者發(fā)出的同步通知(syncNOTIFY)傳遞給訂閱者,并在此同步通知中指明永久訂閱標(biāo)識或臨時訂閱標(biāo)識,標(biāo)識方式在步驟110中已詳細(xì)說明,在此不再贅述。
在步驟570中,訂閱者接收到NOTIFY消息后,根據(jù)其中的永久訂閱標(biāo)識或臨時訂閱標(biāo)識,為該訂閱事件設(shè)定一個永久訂閱標(biāo)記或臨時訂閱標(biāo)記,并發(fā)送200OK響應(yīng)碼給通知者。
在步驟580中,業(yè)務(wù)控制節(jié)點將由訂閱者發(fā)出的200OK響應(yīng)碼傳遞給通知者。
本實施例的作用效果與第二實施例完全相同。
在前述實施例中,通過擴(kuò)展Expires頭域、或Subscription-State頭域、或Event頭域、或Periods頭域來標(biāo)識永久訂閱,擴(kuò)展的參數(shù)取值可以被看成是一種顯式的永久訂閱標(biāo)識,此外,還可以通過在SUBSCRIBE訂閱消息中不攜帶Expires(有效期限)頭域來標(biāo)識永久訂閱,即不標(biāo)明訂閱的有效期限值,可以將這種方式看成是一種隱式的永久訂閱標(biāo)識,當(dāng)然采用這種方式,返回的NOTIFY通知消息中也不能攜帶Expires頭域。
本發(fā)明的第六實施例是基于時間策略的訂閱,該訂閱指明訂閱的起始生效時間。
訂閱者通過SIP中的SUBSCRIBE消息發(fā)起訂閱請求,該訂閱請求中指明訂閱的起始生效時間。比如說,訂閱者訂閱的是三天后的天氣預(yù)報,發(fā)起訂閱請求的日期為2005年7月18日,訂閱有效期為5天。那么,訂閱者通過SUBSCRIBE消息發(fā)起的訂閱請求中要指明訂閱的起始生效時間為2005年7月21日。訂閱者在發(fā)起的訂閱請求中可以通過擴(kuò)展現(xiàn)有頭域的取值來指明訂閱的起始生效時間,也就是在現(xiàn)有頭域中新增一個可選參數(shù)來表示訂閱的起始生效時間,該可選參數(shù)可表示為start-param=“start-time”EQUAL(SIP-date)
其中,start-time表示的就是訂閱的起始生效時間,比如說,在Expires頭域中新增該可選參數(shù),那么針對上述天氣預(yù)報的訂閱請求,在SUBSCRIBE消息中可以表示為ExpiresTues,26 Jul 2005 00:00:00 GMT;start-time=Thu,21 Jul 2005 00:00:00 GMT;同樣,也可以在Subscription-State(訂閱狀態(tài))、Event的頭域中新增該可選參數(shù)來指明訂閱的起始生效時間?;蛘?,也可以新增一個頭域,用來攜帶該可選參數(shù)。
通知者接收到訂閱者的訂閱請求,對該訂閱請求進(jìn)行解析并鑒權(quán)。然后,在該訂閱的起始生效時間之后,通知者通過SIP中的NOTIFY消息向訂閱者發(fā)送通知消息,直到過了訂閱有效期為止。
本發(fā)明的第七實施例是基于時間策略的訂閱,該訂閱指明訂閱通知的發(fā)送時間。
訂閱者通過SIP中的SUBSCRIBE消息發(fā)起訂閱請求,該訂閱請求中指明訂閱通知的發(fā)送時間。比如說,訂閱者訂閱的是天氣預(yù)報的請求,發(fā)起訂閱請求的日期為2005年7月18日,訂閱有效期為5天,希望在有效期內(nèi)每日的8點發(fā)送通知。那么,訂閱者通過SUBSCRIBE消息發(fā)起的訂閱請求中要指明訂閱通知的發(fā)送時間為在有效期內(nèi)每日的8點。訂閱者在發(fā)起的訂閱請求中可以通過擴(kuò)展現(xiàn)有頭域的取值來指明訂閱通知的發(fā)送時間,也就是在現(xiàn)有頭域中新增一個可選參數(shù)來表示訂閱通知的發(fā)送時間,該可選參數(shù)可表示為notify-param=“notify-time”EQUAL(SIP-date)*(SEMI interval-param)interval-param=“interval”EQUAL(delta-seconds)其中,notify-time表示通知的發(fā)送時間,interval表示兩次通知之間的間隔時間。
比如說,在Expires頭域中新增該可選參數(shù),那么針對上述天氣預(yù)報的訂閱請求,在SUBSCRIBE消息中可以表示為ExpiresSat,23 Jul 2005 00:00:00 GMT;notify-time=Mon,18 Jul 2005 08:00:00 GMT;interval=86400其中,interval參數(shù)值86400描述表示第一次通知時間后,每次通知的間隔為一天。其實,notify-time參數(shù)允許攜帶多個通知時間值以及多個時間間隔,因此我們可以構(gòu)造更復(fù)雜的通知時間策略,如notify-time=Mon,18 Jul 2005 08:00:00 GMT,Mon,18 Jul 200520:00:00 GMT;interval=86400,Sat,23 Jul 2005 00:00:00 GMT該參數(shù)表示第一次通知時間為7月18日8點,第二次通知時間為7月18日20點,第二次通知后的每次通知時間間隔為一天,最后一次通知時間為7月23日0點。
同樣,也可以在Subscription-State(訂閱狀態(tài))、Event的頭域中新增該可選參數(shù)來指明訂閱通知的發(fā)送時間?;蛘?,也可以新增一個頭域,用來攜帶該可選參數(shù)。
通知者接收到訂閱者的訂閱請求,對該訂閱請求進(jìn)行解析并鑒權(quán)。然后,通知者按照SUBSCRIBE消息中訂閱通知的發(fā)送時間,通過SIP中的NOTIFY消息向訂閱者發(fā)送通知消息,直到過了訂閱有效期為止。
本發(fā)明的第八實施例是基于時間策略的訂閱,該訂閱指明訂閱的起始生效時間和訂閱通知的發(fā)送時間。
訂閱者通過SIP中的SUBSCRIBE消息發(fā)起訂閱請求,該訂閱請求中指明訂閱的起始生效時間和訂閱通知的發(fā)送時間。比如說,訂閱者訂閱的是三天后的天氣預(yù)報,發(fā)起訂閱請求的日期為2005年7月18日,訂閱有效期為5天,希望在有效期內(nèi)每日的8點發(fā)送通知。那么,訂閱者通過SUBSCRIBE消息發(fā)起的訂閱請求中要指明訂閱的起始生效時間為2005年7月21日以及訂閱通知的發(fā)送時間為在有效期內(nèi)每日的8點。訂閱者在發(fā)起的訂閱請求中可以通過擴(kuò)展現(xiàn)有頭域的取值來指明訂閱的起始生效時間和訂閱通知的發(fā)送時間,也就是在現(xiàn)有頭域中新增兩個可選參數(shù)來表示訂閱的起始生效時間和訂閱通知的發(fā)送時間,新增的兩個可選參數(shù)可表示為start-param=“start-time”EQUAL(SIP-date)notify-param=“notify-time”EQUAL(SIP-date)*(SEMI interval-param)interval-param=“interval”EQUAL(delta-seconds)其中,start-time表示訂閱的起始生效時間,notify-time表示通知的發(fā)送時間,interval表示兩次通知之間的間隔時間。
比如說,在Expires頭域中新增這兩個可選參數(shù),那么針對上述天氣預(yù)報的訂閱請求,在SUBSCRIBE消息中可以表示為ExpiresTues,26 Jul 2005 00:00:00 GMT;start-time=Thu,21 Jul 2005 00:00:00 GMT;notify-time=Thu,21 Jul 2005 08:00:00 GMT;interval=86400其中,interval參數(shù)值86400描述表示第一次通知時間后,每次通知的間隔為一天。
同樣,也可以在Subscription-State(訂閱狀態(tài))、Event的頭域,或者其中的任意組合中,新增這兩個可選參數(shù)來指明訂閱的起始生效時間和訂閱通知的發(fā)送時間?;蛘撸部梢孕略鲆粋€頭域,用來攜帶這兩個可選參數(shù)。
通知者接收到訂閱者的訂閱請求,對該訂閱請求進(jìn)行解析并鑒權(quán)。然后,通知者在訂閱的起始生效時間之后,按照SUBSCRIBE消息中訂閱通知的發(fā)送時間,通過SIP中的NOTIFY消息向訂閱者發(fā)送通知消息,直到過了訂閱有效期為止。
根據(jù)本發(fā)明前述的實施方法,本發(fā)明還提供了一種基于會話發(fā)起協(xié)議的訂閱系統(tǒng),該系統(tǒng)包含以下模塊訂閱模塊,用于發(fā)起訂閱請求消息,如SIP SUBSCRIBE消息;通知模塊,用于接收所述訂閱請求消息,根據(jù)該消息中所攜帶的訂閱時間描述信息,向所述訂閱模塊發(fā)送描述所訂閱事件當(dāng)前狀態(tài)的訂閱通知消息,如SIP NOTIFY消息。
其中,所述訂閱時間描述信息可以是永久訂閱標(biāo)識或臨時訂閱標(biāo)識,也可以是表示訂閱起始生效時間的參數(shù),還可以是表示通知發(fā)送時間的參數(shù)。
其中,訂閱模塊可以是用戶終端,也可以是網(wǎng)元,如業(yè)務(wù)控制節(jié)點;通知模塊可以是用戶終端,也可以是網(wǎng)元,如業(yè)務(wù)控制節(jié)點。
其中,通知模塊發(fā)送的所述訂閱通知消息中,可以攜帶永久訂閱標(biāo)識或臨時訂閱標(biāo)識,還可以在發(fā)送的所述訂閱請求的響應(yīng)消息中攜帶永久訂閱標(biāo)識或臨時訂閱標(biāo)識。
其中,通知模塊收到的所述訂閱請求消息中沒有包含永久訂閱標(biāo)識或臨時訂閱標(biāo)識,通知模塊還可以根據(jù)所訂閱事件判斷所述訂閱請求是永久訂閱請求或臨時訂閱請求,向所述訂閱模塊發(fā)送描述所訂閱事件當(dāng)前狀態(tài)的訂閱通知消息。
其中,如果所述訂閱請求表示永久訂閱或臨時訂閱,則所述通知模塊將為所述訂閱設(shè)置永久訂閱標(biāo)志或臨時訂閱標(biāo)志。
其中,如果所述訂閱請求表示永久訂閱或臨時訂閱,則所述通知模塊在所述永久訂閱被取消后、或所述臨時訂閱所訂閱事件對應(yīng)的業(yè)務(wù)完成后,使所述永久訂閱或臨時訂閱失效。
其中,如果所述訂閱請求表示永久訂閱,且所述訂閱模塊位于用戶終端,用戶終端離線后,只要該訂閱未被取消,則所述通知模塊使所述永久訂閱保持有效。
其中,如果所述訂閱時間描述信息表示訂閱起始生效時間的參數(shù)、和/或通知發(fā)送時間的參數(shù),則所述通知模塊在第一參數(shù)指定的時間之后、和/或按第二參數(shù)指定的時間,向所述訂閱模塊發(fā)送所述訂閱通知消息。
根據(jù)本發(fā)明前述的實施方法,本發(fā)明還提供了另一種基于會話發(fā)起協(xié)議的訂閱裝置,該裝置訂閱標(biāo)識設(shè)定單元,用于為訂閱事件設(shè)定與其業(yè)務(wù)特性對應(yīng)的永久訂閱標(biāo)識或臨時訂閱標(biāo)識;消息構(gòu)造單元,用于生成攜帶所述訂閱標(biāo)識設(shè)定單元設(shè)定的永久訂閱標(biāo)識或臨時訂閱標(biāo)識的消息。
對位于訂閱者一方的實現(xiàn)訂閱的裝置來說,所述消息構(gòu)造單元生成的消息是訂閱請求消息。
對位于通知者一方的實現(xiàn)訂閱的裝置來說,所述消息構(gòu)造單元生成的消息是與訂閱請求消息對應(yīng)的通知消息或響應(yīng)消息。
具體來說,所述消息構(gòu)造單元通過擴(kuò)展SIP消息中現(xiàn)有頭域的取值來攜帶永久訂閱標(biāo)識或臨時訂閱標(biāo)識;或者所述消息構(gòu)造單元通過SIP消息中增加的頭域來攜帶永久訂閱標(biāo)識或臨時訂閱標(biāo)識;或者所述消息構(gòu)造單元通過所述消息中不標(biāo)明有效期限頭域來表示永久訂閱標(biāo)識。工作過程與前述方法的實施例大致相同,此不贅述。
雖然通過參照本發(fā)明的某些優(yōu)選實施例,已經(jīng)對本發(fā)明進(jìn)行了圖示和描述,但本領(lǐng)域的普通技術(shù)人員應(yīng)該明白,可以在形式上和細(xì)節(jié)上對其作各種改變,而不偏離本發(fā)明的精神和范圍。
權(quán)利要求
1.一種基于會話發(fā)起協(xié)議的訂閱方法,其特征在于,包含以下步驟通知者收到訂閱請求消息,根據(jù)該消息所攜帶的永久訂閱標(biāo)識或臨時訂閱標(biāo)識、或根據(jù)所訂閱事件判斷所述訂閱請求是永久訂閱請求或臨時訂閱請求,發(fā)送通知消息告知訂閱者所訂閱事件的當(dāng)前狀態(tài),直到所述永久訂閱或臨時訂閱失效。
2.根據(jù)權(quán)利要求1所述的基于會話發(fā)起協(xié)議的訂閱方法,其特征在于,所述訂閱者接收到的所述訂閱請求的響應(yīng)消息中或所述通知消息中,攜帶永久訂閱標(biāo)識或臨時訂閱標(biāo)識。
3.根據(jù)權(quán)利要求1所述的基于會話發(fā)起協(xié)議的訂閱方法,其特征在于,所述通知者為所述訂閱者設(shè)置永久訂閱標(biāo)記或臨時訂閱標(biāo)記。
4.根據(jù)權(quán)利要求1所述的基于會話發(fā)起協(xié)議的訂閱方法,其特征在于,所述永久訂閱在所述訂閱被取消時失效,所述臨時訂閱在所訂閱事件對應(yīng)的業(yè)務(wù)完成時失效。
5.根據(jù)權(quán)利要求4所述的基于會話發(fā)起協(xié)議的訂閱方法,其特征在于,所述訂閱者離線后,所述永久訂閱保持有效。
6.根據(jù)權(quán)利要求1至5中任一項所述的基于會話發(fā)起協(xié)議的訂閱方法,其特征在于,通過擴(kuò)展會話發(fā)起協(xié)議消息中現(xiàn)有頭域的取值、或通過在會話發(fā)起協(xié)議消息中增加新的頭域,以指明所述消息中的永久訂閱標(biāo)識或臨時訂閱標(biāo)識。
7.根據(jù)權(quán)利要求6所述的基于會話發(fā)起協(xié)議的訂閱方法,其特征在于,可被擴(kuò)展的現(xiàn)有頭域可以是以下之一“Expires”頭域、“Subscription-State”頭域、或“Event”頭域。
8.根據(jù)權(quán)利要求1至5中任一項所述的基于會話發(fā)起協(xié)議的訂閱方法,其特征在于,通過在所述會話發(fā)起協(xié)議消息中不攜帶有效期限頭域,以指明所述消息中的永久訂閱標(biāo)識。
9.根據(jù)權(quán)利要求1至5任一項所述的基于會話發(fā)起協(xié)議的訂閱方法,其特征在于,所述消息中的臨時訂閱標(biāo)識可以是表示單次或有限次訂閱的標(biāo)識。
10.根據(jù)權(quán)利要求1至5中任一項所述的基于會話發(fā)起協(xié)議的訂閱方法,其特征在于,所述訂閱請求消息會話發(fā)起協(xié)議中的“SUBSCRIBE”消息;所述通知消息是會話發(fā)起協(xié)議中的“NOTIFY”消息。
11.一種基于會話發(fā)起協(xié)議的訂閱方法,其特征在于,包含以下步驟訂閱者向通知者發(fā)起訂閱請求消息,其中包含表示訂閱起始生效時間的第一參數(shù)、和/或表示通知發(fā)送時間的第二參數(shù);所述通知者收到該訂閱請求消息后,在其中的第一參數(shù)指定的時間之后、和/或按第二參數(shù)指定的時間,向所述訂閱者發(fā)送通知消息。
12.根據(jù)權(quán)利要求11所述的基于會話發(fā)起協(xié)議的訂閱方法,其特征在于,所述第二參數(shù)中可包含一個或多個通知發(fā)送時間。
13.根據(jù)權(quán)利要求11所述的基于會話發(fā)起協(xié)議的訂閱方法,其特征在于,所述第二參數(shù)中可包含一個或多個相鄰兩次通知發(fā)送的時間間隔。
14.根據(jù)權(quán)利要求11所述的基于會話發(fā)起協(xié)議的訂閱方法,其特征在于,可通過擴(kuò)展會話發(fā)起協(xié)議消息中現(xiàn)有頭域的取值,以攜帶所述第一、第二參數(shù)。
15.根據(jù)權(quán)利要求14所述的基于會話發(fā)起協(xié)議的訂閱方法,其特征在于,可被擴(kuò)展的現(xiàn)有頭域可以是以下之一或其任意組合“Expires”頭域、“Subscription-State”頭域、或“Event”頭域。
16.根據(jù)權(quán)利要求11所述的基于會話發(fā)起協(xié)議的訂閱方法,其特征在于,可通過在會話發(fā)起協(xié)議消息中增加新的頭域,以攜帶所述第一、第二參數(shù)。
17.根據(jù)權(quán)利要求11至16中任一項所述的基于會話發(fā)起協(xié)議的訂閱方法,其特征在于,所述訂閱請求消息和取消訂閱的消息是會話發(fā)起協(xié)議中的“SUBSCRIBE”消息;所述通知消息是會話發(fā)起協(xié)議中的“NOTIFY”消息。
18.一種基于會話發(fā)起協(xié)議的訂閱系統(tǒng),其特征在于,包含以下模塊訂閱模塊,用于發(fā)起訂閱請求消息;通知模塊,用于接收所述訂閱請求消息,根據(jù)該消息中所攜帶的訂閱時間描述信息,向所述訂閱模塊發(fā)送描述所訂閱事件當(dāng)前狀態(tài)的訂閱通知消息。
19.根據(jù)權(quán)利要求18所述的基于會話發(fā)起協(xié)議的訂閱系統(tǒng),其特征在于,所述訂閱時間描述信息可以是永久訂閱標(biāo)識或臨時訂閱標(biāo)識、或表示訂閱起始生效時間的參數(shù)和/或表示通知發(fā)送時間的參數(shù)。
20.根據(jù)權(quán)利要求19所述的基于會話發(fā)起協(xié)議的訂閱系統(tǒng),其特征在于,所述通知模塊在發(fā)送的所述訂閱通知消息中、或所述訂閱請求的響應(yīng)消息中,攜帶永久訂閱標(biāo)識或臨時訂閱標(biāo)識。
21.根據(jù)權(quán)利要求19所述的基于會話發(fā)起協(xié)議的訂閱系統(tǒng),其特征在于,所述通知模塊收到的所述訂閱請求消息中沒有包含永久訂閱標(biāo)識或臨時訂閱標(biāo)識,則可以根據(jù)所訂閱事件判斷所述訂閱請求是永久訂閱請求或臨時訂閱請求,向所述訂閱模塊發(fā)送描述所訂閱事件當(dāng)前狀態(tài)的訂閱通知消息。
22.根據(jù)權(quán)利要求18或21所述的基于會話發(fā)起協(xié)議的訂閱系統(tǒng),其特征在于,所述訂閱請求表示永久訂閱或臨時訂閱,所述通知模塊將為所述訂閱設(shè)置永久訂閱標(biāo)志或臨時訂閱標(biāo)志。
23.根據(jù)權(quán)利要求18或21所述的基于會話發(fā)起協(xié)議的訂閱系統(tǒng),其特征在于,所述訂閱請求表示永久訂閱或臨時訂閱,所述通知模塊在所述永久訂閱被取消后、或所述臨時訂閱所訂閱事件對應(yīng)的業(yè)務(wù)完成后,使所述永久訂閱或臨時訂閱失效。
24.根據(jù)權(quán)利要求18或21所述的基于會話發(fā)起協(xié)議的訂閱系統(tǒng),其特征在于,所述訂閱請求表示永久訂閱,且所述訂閱模塊位于用戶終端,用戶終端離線后,所述通知模塊使所述永久訂閱保持有效。
25.根據(jù)權(quán)利要求18所述的基于會話發(fā)起協(xié)議的訂閱系統(tǒng),其特征在于,所述訂閱時間描述信息表示訂閱起始生效時間的參數(shù)和/或表示通知發(fā)送時間的參數(shù),所述通知模塊在第一參數(shù)指定的時間之后、和/或按第二參數(shù)指定的時間,向所述訂閱模塊發(fā)送所述訂閱通知消息。
26.一種基于會話發(fā)起協(xié)議的訂閱裝置,其特征在于,包括訂閱標(biāo)識設(shè)定單元,用于為訂閱事件設(shè)定與其業(yè)務(wù)特性對應(yīng)的永久訂閱標(biāo)識或臨時訂閱標(biāo)識;消息構(gòu)造單元,用于生成攜帶所述訂閱標(biāo)識設(shè)定單元設(shè)定的永久訂閱標(biāo)識或臨時訂閱標(biāo)識的消息。
27.根據(jù)權(quán)利要求26所述的基于會話發(fā)起協(xié)議的訂閱裝置,其特征在于,所述消息構(gòu)造單元生成的消息是訂閱請求消息。
28.根據(jù)權(quán)利要求26所述的基于會話發(fā)起協(xié)議的訂閱裝置,其特征在于,所述消息構(gòu)造單元生成的消息是與訂閱請求消息對應(yīng)的通知消息或響應(yīng)消息。
29.根據(jù)權(quán)利要求26至28任一項所述的基于會話發(fā)起協(xié)議的訂閱裝置,其特征在于,所述消息構(gòu)造單元通過擴(kuò)展SIP消息中現(xiàn)有頭域的取值來攜帶永久訂閱標(biāo)識或臨時訂閱標(biāo)識;或者所述消息構(gòu)造單元通過SIP消息中增加的頭域來攜帶永久訂閱標(biāo)識或臨時訂閱標(biāo)識;或者所述消息構(gòu)造單元通過SIP消息中不標(biāo)明有效期限頭域來表示永久訂閱標(biāo)識。
全文摘要
本發(fā)明涉及訂閱技術(shù),公開了一種基于會話發(fā)起協(xié)議的訂閱方法及其系統(tǒng)和裝置,使得永久訂閱和臨時訂閱功能得以實現(xiàn),可定制通知發(fā)送時間。本發(fā)明中,引入了臨時訂閱和永久訂閱的機(jī)制。通知者收到SUBSCRIBE消息時,根據(jù)消息中所帶的標(biāo)識或所訂閱事件對應(yīng)的業(yè)務(wù)特性,為訂閱者設(shè)置臨時訂閱標(biāo)記或永久訂閱標(biāo)記;如果是永久訂閱標(biāo)記,則通知者的NOTIFY消息一直發(fā)送到被訂閱者或系統(tǒng)取消訂閱為止;如果是臨時訂閱標(biāo)記,則通知者在所訂業(yè)務(wù)完成時就不再發(fā)送NOTIFY消息。訂閱者還可以在發(fā)給通知者的SUBSCRIBE消息中攜帶表示訂閱起始生效時間的參數(shù)和/或表示通知發(fā)送時間的參數(shù),通知者解析該消息,在訂閱起始生效時間之后、和/或按通知發(fā)送時間,向訂閱者發(fā)送NOTIFY消息。
文檔編號H04L29/06GK1901550SQ20061010665
公開日2007年1月24日 申請日期2006年7月21日 優(yōu)先權(quán)日2005年7月22日
發(fā)明者施有鑄 申請人:華為技術(shù)有限公司