一種用sip協議實現呈現和即時消息業務的系統及其方法
2023-12-02 21:31:06
專利名稱:一種用sip協議實現呈現和即時消息業務的系統及其方法
技術領域:
本發明涉及會話發起協議SIP應用領域,特別是涉及一種用SIP協議實現呈現和即時消息等即時通信業務的系統及其方法。
背景技術:
隨著即時通信業務的不斷發展,用戶群的不斷擴大,各種使用呈現(Presence,以下簡稱PS)和即時消息(Instant Message,以下簡稱IM)業務的即時通信軟體也是層出不窮,其中以MSN和QQ為代表。截至2005年8月,MSN的註冊用戶已超過700萬,而QQ的註冊用戶數則已突破3億。由此可見,即時通信業務在人們的工作和日常生活中正扮演著越來越重要的角色。
所謂PS業務,指的是用戶通過客戶端軟體登陸PS伺服器後,可以從伺服器上取得用戶的好友列表及其好友的當前狀態;所謂IM業務,指的是用戶通過客戶端軟體登陸IM伺服器後,可以通過伺服器向其他在線好友發送即時消息。另外,PS和IM伺服器之間通常是有緊密聯繫的(如IM伺服器分發即時消息時,需要從PS伺服器上得知哪些用戶可以分發),因此,以下均簡稱PS/IM伺服器。
通過對MSN和QQ等主流即時通信軟體的分析可以發現,這些客戶端軟體登陸PS伺服器後獲取好友列表和好友狀態時,採用的是超文本傳輸協議(Hypertext Transfer Protocol,簡記為HTTP),然後客戶端軟體會啟動一個定時器,定時給PS伺服器發送請求,看看是否有好友的狀態發生了變化;而這些客戶端軟體通過IM伺服器發送即時消息和接收消息時,也是採用的HTTP協議,即接收者要定時給IM伺服器發送請求,看看是否有其他好友給自己發的即時消息。因此可以發現,這些客戶端軟體採用HTTP協議定時到伺服器上查看是否有好友狀態發生變化和是否有其他好友給自己發送即時消息的方式存在一個明顯的缺陷不具有實時性,好友狀態的變化和發給自己的即時消息不能立即送達客戶端!需要等定時器到時後,才由客戶端主動給伺服器發查詢命令,等伺服器返回查詢結果後,才能知道是否有好友狀態發生了變化,以及是否有好友給自己發送了即時消息。如果定時器間隔太長,則實時性更差,如果定時器間隔太短,則在客戶端和伺服器之間會產生過多的無用的消息包而佔用大量的帶寬。
發明內容
本發明所要解決的技術問題在於提供一種用會話發起協議SIP(SessionInitiation Protocol,簡記為SIP)實現呈現和即時消息業務的系統及其方法,用於克服現有技術中存在的使用HTTP協議所帶來的實時性差和帶寬資源浪費嚴重的問題。
為了實現上述目的,本發明提供了一種用SIP協議實現呈現和即時消息業務的系統,包括客戶端、PS/IM伺服器,其特徵在於,還包括設置於所述客戶端上的客戶端SIP協議棧模塊、設置於所述PS/IM伺服器上的伺服器SIP協議棧模塊;其中所述客戶端SIP協議棧模塊用於通過所述SIP協議中定義的INFO方法發送消息給所述伺服器SIP協議棧模塊,及通過所述SIP協議中定義的200 OK方法回應所述伺服器SIP協議棧模塊發來的消息;所述伺服器SIP協議棧模塊用於通過所述SIP協議中定義的INFO方法發送消息給所述客戶端SIP協議棧模塊,及通過所述SIP協議中定義的200 OK方法回應所述客戶端SIP協議棧模塊發來的消息。
為了實現上述目的,本發明提供了一種基於上述系統的用SIP協議實現呈現和即時消息業務的方法,其特徵在於,所述客戶端SIP協議棧模塊通過所述SIP協議中定義的INFO方法發送一消息給所述伺服器SIP協議棧模塊,所述伺服器SIP協議棧模塊通過所述SIP協議中定義的200 OK方法回應所述消息;所述伺服器SIP協議棧模塊通過所述SIP協議中定義的INFO方法發送一消息給所述客戶端SIP協議棧模塊,所述客戶端SIP協議棧模塊通過所述SIP協議中定義的200 OK方法回應所述消息。
所述的用SIP協議實現呈現和即時消息業務的方法,其中,在所述客戶端SIP協議棧模塊與所述伺服器SIP協議棧模塊之間相互收發消息之前,還包括所述客戶端SIP協議棧模塊在所述伺服器SIP協議棧模塊上進行註冊的步驟。
所述的用SIP協議實現呈現和即時消息業務的方法,其中,若所述客戶端SIP協議棧模塊在所述伺服器SIP協議棧模塊上註冊成功後,還包括所述客戶端通過所述客戶端SIP協議棧模塊向所述PS/IM伺服器發送一登陸請求信息的步驟。
所述的用SIP協議實現呈現和即時消息業務的方法,其中,還包括所述PS/IM伺服器接收該登陸請求信息後向所述客戶端SIP協議棧模塊回應200OK的步驟。
所述的用SIP協議實現呈現和即時消息業務的方法,其中,還包括所述PS/IM伺服器通過向所述客戶端發送一認證結果同意所述客戶端登陸的步驟。
所述的用SIP協議實現呈現和即時消息業務的方法,其中,若所述客戶端SIP協議棧模塊未在一定時間內收到所述伺服器SIP協議棧模塊返回的200 OK時,將重新發送該信息,直到所述伺服器SIP協議棧模塊回應200 OK或發送一定次數後取消發送。
所述的用SIP協議實現呈現和即時消息業務的方法,其中,若所述伺服器SIP協議棧模塊未在一定時間內收到所述客戶端SIP協議棧模塊返回的200 OK時,將重新發送該信息,直到所述客戶端SIP協議棧模塊回應200 OK或發送一定次數後取消發送。
所述的用SIP協議實現呈現和即時消息業務的方法,其中,當所述客戶端欲向一接收客戶端發送一即時消息時,還包括所述客戶端SIP協議棧模塊將該即時消息發給所述PS/IM伺服器,所述PS/IM伺服器又通過所述伺服器SIP協議棧模塊將該即時消息發至所述接收客戶端的步驟。
所述的用SIP協議實現呈現和即時消息業務的方法,其中,當所述客戶端欲下線時,還包括所述客戶端SIP協議棧模塊將下線消息和離線狀態發給所述PS/IM伺服器,所述PS/IM伺服器確認該下線消息並通過所述伺服器SIP協議棧模塊返回確認消息至所述客戶端的步驟。
本發明的有益效果在於本發明提供了一種真正實時地進行PS和IM業務並節約網絡帶寬資源的方法和系統,解決了現有技術中存在的使用HTTP協議所帶來的實時差和帶寬資源浪費嚴重的問題;與現有技術相比,採用本發明所述方法能達到真正實時地進行PS和IM業務的目的,同時節約了網絡帶寬資源。
因此,本發明將在客戶端與PS/IM伺服器之間使用SIP協議,解決了目前使用HTTP協議所帶來的實時性差和帶寬資源浪費嚴重的問題。
以下結合附圖和具體實施例對本發明進行詳細描述,但不作為對本發明的限定。
圖1為本發明客戶端與PS/IM伺服器組網圖;圖2為本發明SIP協議的INFO方法和200 OK方法交互流程圖;圖3為本發明SIP協議實現PS和IM業務詳細流程圖。
具體實施例方式
下面結合附圖,對技術方案的實施作進一步的詳細描述。
請參閱圖1所示,為本發明客戶端與PS/IM伺服器組網圖。在該圖中,客戶端20上必須運行有SIP協議棧,PS/IM伺服器10上也必須運行有SIP協議棧;因此,該組網結構包括以下模塊PS/IM伺服器10上的SIP協議棧模塊101,客戶端20上的SIP協議棧模塊201。
結合圖1所示,本發明提出的用SIP協議實現PS和IM業務的方法包括以下步驟(1),當SIP協議棧模塊201所在客戶端20在進行PS和IM業務的過程中需要給SIP協議棧模塊101所在PS/IM伺服器10發送信息時,SIP協議棧模塊201將利用SIP協議中定義的INFO方法,將消息發送給SIP協議棧模塊101,SIP協議棧模塊101在收到SIP協議棧模塊201發來的消息後,將立即給SIP協議棧模塊201回應SIP協議中定義的200 OK方法,表示收到;(2),當SIP協議棧模塊101所在PS/IM伺服器10在進行PS和IM業務的過程中需要給SIP協議棧模塊201所在客戶端20發送信息時,SIP協議棧模塊101將利用SIP協議中定義的INFO方法,將消息發送給SIP協議棧模塊201,SIP協議棧模塊201在收到SIP協議棧模塊101發來的消息後,將立即給SIP協議棧模塊101回應SIP協議中定義的200 OK方法,表示收到;(3),進一步,如果信息發送方沒有在一定時間內收到信息接收方返回的200 OK時,將重新發送信息,直到對方回應200 OK或發送一定次數後取消發送。
請參閱圖2所示,為本發明SIP協議的INFO方法和200 OK方法交互流程圖。該流程圖包括如下步驟步驟210、當PS/IM伺服器10有消息(如好友列表,好友狀態變化消息,或一客戶端發給另一客戶端的即時消息)需要發給客戶端20時,只需將消息放到MESSAGE中,利用SIP協議中定義的INFO方法就可以發給客戶端20了;步驟220、當客戶端20收到PS/IM伺服器10發來的消息時,將立即回應SIP協議中定義的200 OK消息,表示已收到;步驟230、當客戶端20有消息(如登陸請求,好友列表請求,添加、刪除或修改好友請求,以及給某好友發送即時消息請求等等)發給PS/IM伺服器10時,只需將消息放到MESSAGE中,利用SIP協議中定義的INFO方法就可以發給PS/IM伺服器10了;步驟240、當PS/IM伺服器10收到客戶端20發來的消息時,將立即回應SIP協議中定義的200 OK消息,表示已收到。
請參閱圖3所示,為本發明用SIP協議實現PS和IM業務詳細流程圖。在圖3中,用SIP協議實現PS和IM業務詳細流程圖包括如下步驟第1步驟,要想實現客戶端20的SIP協議棧模塊201與PS/IM伺服器10的SIP協議棧模塊101之間互相收發MESSAGE,客戶端20的SIP協議棧模塊201要首先到PS/IM伺服器10的SIP協議棧模塊101上註冊Register;第2步驟,若註冊成功,則PS/IM伺服器10的SIP協議棧模塊101會給客戶端20的SIP協議棧模塊201回200 OK;第3步驟,當Register成功後,客戶端20將使用SIP協議棧模塊201給PS/IM伺服器10發送登陸請求MESSAGE;第4步驟,若PS/IM伺服器10的SIP協議棧模塊101收到此MESSAGE,將給客戶端20的SIP協議棧模塊201回200 OK;與上述MESSAGE--200 OK方式相同,當PS/IM伺服器10同意客戶端20登陸,則通過第5、6步驟將認證結果發給客戶端20;此時,客戶端20就可以繼續使用第3、4步驟,將各種信息(如請求各個配置信息,請求好友列表,請求好友狀態等等)發給PS/IM伺服器10。
同樣地,此時PS/IM伺服器10也可以繼續使用第5、6步驟,將各種信息(如客戶端20用戶的個人配置信息,客戶端20用戶的好友列表,客戶端20用戶的好友狀態等等)發給客戶端20了。
當某客戶端20(或本客戶端)的狀態發生變化時,將使用第3、4步驟或第7、8步驟將新的狀態發給PS/IM伺服器10;然後PS/IM伺服器10將繼續使用第5、6步驟或第9、10步驟,將此用戶的新狀態廣播給將此用戶添加為好友的用戶。其中,第7、8步驟與第9、10步驟的內容與上述MESSAGE--200 OK方式的內容相同。
類似地,當某客戶端需要給另一客戶端發送即時消息時,也需要使用第3、4步驟或第7、8步驟發送給PS/IM伺服器10,然後由PS/IM伺服器10通過第5、6步驟或第9、10步驟發送給接收客戶端20。
當客戶端20需要下線時,可以繼續使用第3、4步驟,將下線消息和離線狀態發給PS/IM伺服器10;當PS/IM伺服器10確認了客戶端20下線消息後,將確認消息通過第5、6步驟發給客戶端20;此時客戶端20就可以使用第11、12步驟,在SIP協議層進行註銷了。其中,第11、12步驟為REGISTER--200 OK方式,該步驟為SIP協議應用基本步驟。
與現有技術相比,採用本發明所述方法達到了真正實時地進行PS和IM業務的目的,並節約了網絡帶寬資源。
當然,本發明還可有其他多種實施例,在不背離本發明精神及其實質的情況下,熟悉本領域的技術人員當可根據本發明作出各種相應的改變和變形,但這些相應的改變和變形都應屬於本發明所附的權利要求的保護範圍。
權利要求
1.一種用SIP協議實現呈現和即時消息業務的系統,包括客戶端、PS/IM伺服器,其特徵在於,還包括設置於所述客戶端上的客戶端SIP協議棧模塊、設置於所述PS/IM伺服器上的伺服器SIP協議棧模塊;其中所述客戶端SIP協議棧模塊用於通過所述SIP協議中定義的INFO方法發送消息給所述伺服器SIP協議棧模塊,及通過所述SIP協議中定義的200 OK方法回應所述伺服器SIP協議棧模塊發來的消息;所述伺服器SIP協議棧模塊用於通過所述SIP協議中定義的INFO方法發送消息給所述客戶端SIP協議棧模塊,及通過所述SIP協議中定義的200 OK方法回應所述客戶端SIP協議棧模塊發來的消息。
2.一種基於權利要求1所述系統的用SIP協議實現呈現和即時消息業務的方法,其特徵在於,所述客戶端SIP協議棧模塊通過所述SIP協議中定義的INFO方法發送一消息給所述伺服器SIP協議棧模塊,所述伺服器SIP協議棧模塊通過所述SIP協議中定義的200 OK方法回應所述消息;所述伺服器SIP協議棧模塊通過所述SIP協議中定義的INFO方法發送一消息給所述客戶端SIP協議棧模塊,所述客戶端SIP協議棧模塊通過所述SIP協議中定義的200 OK方法回應所述消息。
3.根據權利要求2所述的用SIP協議實現呈現和即時消息業務的方法,其特徵在於,在所述客戶端SIP協議棧模塊與所述伺服器SIP協議棧模塊之間相互收發消息之前,還包括所述客戶端SIP協議棧模塊在所述伺服器SIP協議棧模塊上進行註冊的步驟。
4.根據權利要求3所述的用SIP協議實現呈現和即時消息業務的方法,其特徵在於,若所述客戶端SIP協議棧模塊在所述伺服器SIP協議棧模塊上註冊成功後,還包括所述客戶端通過所述客戶端SIP協議棧模塊向所述PS/IM伺服器發送一登陸請求信息的步驟。
5.根據權利要求4所述的用SIP協議實現呈現和即時消息業務的方法,其特徵在於,還包括所述PS/IM伺服器接收該登陸請求信息後向所述客戶端SIP協議棧模塊回應200 OK的步驟。
6.根據權利要求4或5所述的用SIP協議實現呈現和即時消息業務的方法,其特徵在於,還包括所述PS/IM伺服器通過向所述客戶端發送一認證結果同意所述客戶端登陸的步驟。
7.根據權利要求2、3、4或5所述的用SIP協議實現呈現和即時消息業務的方法,其特徵在於,若所述客戶端SIP協議棧模塊未在一定時間內收到所述伺服器SIP協議棧模塊返回的200 OK時,將重新發送該信息,直到所述伺服器SIP協議棧模塊回應200 OK或發送一定次數後取消發送。
8.根據權利要求2、3、4或5所述的用SIP協議實現呈現和即時消息業務的方法,其特徵在於,若所述伺服器SIP協議棧模塊未在一定時間內收到所述客戶端SIP協議棧模塊返回的200 OK時,將重新發送該信息,直到所述客戶端SIP協議棧模塊回應200 OK或發送一定次數後取消發送。
9.根據權利要求2所述的用SIP協議實現呈現和即時消息業務的方法,其特徵在於,當所述客戶端欲向一接收客戶端發送一即時消息時,還包括所述客戶端SIP協議棧模塊將該即時消息發給所述PS/IM伺服器,所述PS/IM伺服器又通過所述伺服器SIP協議棧模塊將該即時消息發至所述接收客戶端的步驟。
10.根據權利要求2所述的用SIP協議實現呈現和即時消息業務的方法,其特徵在於,當所述客戶端欲下線時,還包括所述客戶端SIP協議棧模塊將下線消息和離線狀態發給所述PS/IM伺服器,所述PS/IM伺服器確認該下線消息並通過所述伺服器SIP協議棧模塊返回確認消息至所述客戶端的步驟。
全文摘要
本發明公開了一種用SIP協議實現呈現和即時消息業務的系統及其方法,其中,該方法包括客戶端SIP協議棧模塊通過SIP協議中定義的INFO方法發送一消息給伺服器SIP協議棧模塊,伺服器SIP協議棧模塊通過SIP協議中定義的200 OK方法回應消息;伺服器SIP協議棧模塊通過SIP協議中定義的INFO方法發送一消息給客戶端SIP協議棧模塊,客戶端SIP協議棧模塊通過SIP協議中定義的200 OK方法回應消息。本發明有效解決了現有技術中存在的使用HTTP協議所帶來的實時性差和帶寬資源浪費嚴重的問題;與現有技術相比,採用本發明所述方法能達到真正實時地進行PS和IM業務的目的,同時節約了網絡帶寬資源。
文檔編號H04L12/58GK1984129SQ20051012647
公開日2007年6月20日 申請日期2005年12月13日 優先權日2005年12月13日
發明者張繼棟, 曹義林, 陸劍峰, 蔣宇智, 鍾名奇 申請人:中興通訊股份有限公司