專利名稱:基于sip的即時通訊系統(tǒng)中的添加好友的實現(xiàn)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及SIP的即時通訊系統(tǒng),具體涉及基于SIP的即時通訊系統(tǒng)中的添加好
友的實現(xiàn)方法。
背景技術(shù):
目前,移動通信、即時通信等IM (即時通信)網(wǎng)絡(luò)通信技術(shù)已經(jīng)得到了大規(guī)模的應(yīng)用,關(guān)于V0IP、即時通信和網(wǎng)絡(luò)融合的討論已經(jīng)從理論探討逐漸到了現(xiàn)實生活中,基于SIP的即時通訊系統(tǒng)正在或即將成為主流。SIP已經(jīng)成為數(shù)據(jù)包網(wǎng)絡(luò)上的VoIP和其它實時媒體通信(media communication)的主要協(xié)議。 首先,SIP被認(rèn)為是一種從一開始就為IP網(wǎng)絡(luò)的設(shè)計的協(xié)議。這個協(xié)議是由IETF建立的,并且是在已經(jīng)為IP領(lǐng)域開發(fā)的其它一些協(xié)議的基礎(chǔ)上建立起來的。SIP是一種基于文本的協(xié)議,兼容網(wǎng)絡(luò)領(lǐng)域的基于標(biāo)記語言分布式應(yīng)用程序。它使用與互聯(lián)網(wǎng)相同的地址并且在工作中使用許多互聯(lián)網(wǎng)結(jié)構(gòu)的組件(如DNS服務(wù)器等)。這就使SIP協(xié)議更容易集成到根據(jù)標(biāo)準(zhǔn)的計算平臺和操作系統(tǒng)制作的應(yīng)用程序中,促進(jìn)網(wǎng)絡(luò)的融合。
第二,SIP是一種可擴展的協(xié)議,能夠與多種媒體格式和負(fù)載一起工作以運行范圍很廣的應(yīng)用程序。SIP協(xié)議已經(jīng)為即時消息、資源管理、媒體流(視頻)和好友在線管理等應(yīng)用程序制定了若干標(biāo)準(zhǔn)。這種擴展性能夠創(chuàng)造創(chuàng)新的新的應(yīng)用程序。SIP適用于企業(yè)應(yīng)用程序以及伸縮性非常大的運營商應(yīng)用程序。這個協(xié)議適用于有線和無線網(wǎng)絡(luò),能夠利用網(wǎng)絡(luò)的安全和AAA資產(chǎn)的優(yōu)勢。 第三,SIP協(xié)議現(xiàn)在已經(jīng)是大多數(shù)端點中的基礎(chǔ)設(shè)施的一部分,特別是桌面操作系
統(tǒng)。這就使開發(fā)人員能夠非常容易地制作基于SIP協(xié)議的應(yīng)用程序。同許多通信標(biāo)準(zhǔn)一樣,
互操作性是關(guān)鍵,SIP已經(jīng)確保了所有的主要執(zhí)行工作能夠很好地兼容。 但是,目前作為基于SIP的即時通訊系統(tǒng)中最基本的好友管理功能——添加好友,
在現(xiàn)有的通信系統(tǒng)中還沒有比較好的實現(xiàn)方式。
發(fā)明內(nèi)容
針對上述問題,本發(fā)明的目的在于提供一種基于SIP的即時通訊系統(tǒng)中的添加好友的實現(xiàn)方法,添加好友必須對方驗證通過才能被加到自己的好友列表中,以滿足用戶對安全性的要求。同時本發(fā)明中的好友列表存儲在XDMS上,滿足了不同類型的通信終端實現(xiàn)好友列表的共享,增強用戶體驗。
本發(fā)明包括以下步驟 A10、發(fā)端發(fā)送邀請時,在邀請消息的消息體中攜帶發(fā)端的昵稱,SIP賬號,邀請?zhí)砑拥降姆纸MID和附加信息; A20、收端收到上述邀請后,從邀請消息中獲取發(fā)端的昵稱,SIP賬號,邀請?zhí)砑拥降姆纸M和附加信息,然后將收端的昵稱、SIP賬號、邀請方邀請?zhí)砑拥降姆纸MID和接受或拒絕的驗證結(jié)果封裝在驗證消息的消息體中發(fā)送到發(fā)端;如果收端接受此邀請,則通過XCAP消息向XDMS發(fā)送指令將發(fā)端添加到自己的好友列表中,否則,發(fā)送拒絕回復(fù); A30、發(fā)端收到驗證消息,從驗證消息的消息體中獲得收端的昵稱、SIP賬號、自己
邀請?zhí)砑拥降姆纸MID和驗證結(jié)果,如果收端接受邀請,則通過XCAP消息向XDMS發(fā)送指令
將收端添加到自己邀請?zhí)砑拥降姆纸M,否則,提示發(fā)端,對方拒絕了好友邀請。 上述方案中,對于離線的好友邀請和好友邀請驗證消息存儲在IM應(yīng)用服務(wù)器,待
對方上線后,轉(zhuǎn)發(fā)到SIP Proxy,具體步驟為用戶上線時向SIP Proxy發(fā)送注冊消息,SIP
Proxy將該注冊消息轉(zhuǎn)發(fā)到IM服務(wù)器,IM服務(wù)器收到該用戶的注冊消息后,將存儲的離線
的好友邀請或好友邀請驗證消息通過SIPProxy,轉(zhuǎn)發(fā)到該用戶。 X匿服務(wù)器保存好友列表,終端可以通過XCAP消息發(fā)送指令進(jìn)行好友列表的管
理,包括對好友列表分組的管理和好友列表中用戶的管理, 所述好友列表分組的管理包括以下步驟 B10、通過XCAP的PUT操作,創(chuàng)建好友列表的一個分組; B20、通過XCAP的PUT操作,修改好友列表分組的名稱;B30、通過XCAP的DELETE操作,刪除好友列表的分組; 好友列表中用戶的管理包括以下步驟 C10、通過XCAP的PUT操作,添加好友到好友列表的分組; C20、通過XCAP的PUT操作,修改一個好友的備注;C30、通過XCAP的DELETE操作,刪除一個好友。 本發(fā)明提供的基于SIP的即時通訊系統(tǒng)中添加好友的方法,增加了驗證機制,為SIP即時通訊系統(tǒng)中的安全性提供了一定的保證,為不同用戶終端之間共享好友列表的解決方案,用戶的好友列表以XML文檔的形式存儲在X匿S上,任何形式的客戶端,只要經(jīng)過認(rèn)證和授權(quán),都可以通過XCAP協(xié)議從XDMS上獲取這些數(shù)據(jù),這為在不同的用戶終端之間進(jìn)行好友列表共享提供了一種可靠有效的解決方案。
圖1是本發(fā)明的實現(xiàn)組網(wǎng)示意圖; 圖2是本發(fā)明的添加好友,對方同意邀請的流程圖,中間省略了 SIP Proxy的轉(zhuǎn)發(fā)流程; 圖3是本發(fā)明的添加好友,對方拒絕邀請的流程圖,中間省略了 SIP Proxy的轉(zhuǎn)發(fā)流程。
具體實施例方式
下面結(jié)合附圖對本發(fā)明作出詳細(xì)的說明,需要說明的是,此處所描述的具體實施方式
僅僅用以解釋本發(fā)明,并不用來限定本發(fā)明。 圖1是本發(fā)明的實現(xiàn)組網(wǎng)示意圖,其中,IM應(yīng)用服務(wù)器提供基于SIP的IM服務(wù),SIP Proxy負(fù)責(zé)SIP消息的轉(zhuǎn)發(fā),X匿服務(wù)器用于保存好友列表,終端可以通過XCAP消息發(fā)送指令進(jìn)行好友列表的管理。圖2是本發(fā)明的添加好友,對方同意邀請的流程圖,圖3是本發(fā)明的添加好友,對方拒絕邀請的流程圖,中間省略了 SIP Proxy的轉(zhuǎn)發(fā)流程,如圖2、圖3所示,本發(fā)明提供的基于SIP的即時通訊系統(tǒng)中的添加好友的實現(xiàn)方法包括以下步驟
A10、發(fā)端UA1通過IM Server發(fā)送邀請時,在邀請消息的消息體中攜帶發(fā)端的昵
稱,SIP賬號,邀請?zhí)砑拥降姆纸MID和附加信息,附加信息用來告訴被邀請方自己的一些信
息,如姓名,身份等,邀請消息如下 好友邀請(發(fā)端995282) MESSAGE sip:995446@10. 90. 5. 122SIP/2. 0 Via:SIP/2. 0/UDP10. 96. 5. 128 ;branch = z9hG4bK776sgdkse User-Agent: IKul. 0 Max-Forwards:70 From:sip:995282@10. 90. 5. 122 ;tag = 49583 To: sip: 995446@10. 90. 5. 122 Call-ID:asd88asd77a@l. 2. 3. 4 CSeq "MESSAGE Content-Type :message/friend-invite //擴展 Content-Length:". 〈friend_invite> A20、收端UA2從IM Server收到上述邀請后,從邀請消息中獲取發(fā)端的昵稱,SIP賬號,邀請?zhí)砑拥降姆纸M和附加信息,然后將收端的昵稱、SIP賬號、邀請方邀請?zhí)砑拥降姆纸MID和接受或拒絕的驗證結(jié)果封裝在驗證消息的消息體中發(fā)送到發(fā)端;如果收端接受此邀請,則通過XCAP消息向XDMS發(fā)送指令將發(fā)端添加到自己的好友列表中,否則發(fā)送拒絕回復(fù)。 邀請驗證消息如下 好友邀請驗證(收端995446)MESSAGE sip:995282@10. 90. 5. 122SIP/2. 0Via:SIP/2. 0/UDP 10. 96. 5. 128 ;branch = z9hG4bK776sgdkbb User-Agent: IKul. 0 Max-Forwards:70From:sip:995446@10. 90. 5. 122 ;tag = 98786
To: sip: 995282@10. 90. 5. 122
Call_ID:asd89asd77cc@l. 2. 3. 4
CSeq "MESSAGE Content-Type :message/friend-invite-notify //擴展
Content-Length:".
〈friend_invite_notify> 〈invite_user_dispname>Tom〈/invite_user_dispname>
〈user-uri>sip:995282@10. 90. 5. 122〈/user_uri>〈added_listID>oma_buddylist〈/added_listID>
5
〈invite_user_uri>sip:995446@10. 90. 5. 122〈/invite_user_uri> 〈listID>oma_buddylist〈/listID> 〈option>yes〈/option> 〈/friend_invite_notify> 在XDMS上將發(fā)端添加到好友列表中的"測試組"(收端在"測試組"分組中添加發(fā)端,"測試組"分組ID為ext_mylist_yenuib)的實現(xiàn)方式如下 PUT /resource_l ists/users/sip : 995446@10. 90. 5. 122/index/ /resource-lists/list % 5b(g謹(jǐn)e =% 22ext_mylist_yenuib% 22% 5d/entry% 5b@uri = % 22 sip:995282@10. 90. 5. 122% 22% 5d HTTP/1. 1 Content-Type: application/xc即-el+xml X-3GPP-Asserted-Identity:sip:995446@10. 90. 5. 122 User-Agent:XDM_client/0MA2. 0 Content-Length:74 〈entryuri=〃 sip: 995282@10. 90. 5. 122 〃 > 〈display-n咖e幾ily〈/display_name> 〈/entry> 如果拒絕邀請,將消息體option字段改為"no",如下 〈friend_invite_notify> 〈invite_user_dispname>Tom〈/invite_user_dispname> 〈invite_user_uri>sip:995446@10. 90. 5. 122〈/invite_user_uri> 〈listID>oma_buddylist〈/listID> 〈option>no〈/option> 〈/friend_invite_notify> A30、發(fā)端收到驗證消息,從驗證消息的消息體中獲得收端的昵稱、SIP賬號、自己
邀請?zhí)砑拥降姆纸MID和驗證結(jié)果,如果收端接受邀請,則通過XCAP消息向XDMS發(fā)送指令
將收端添加到自己邀請?zhí)砑拥降姆纸M,否則,提示發(fā)端,對方拒絕了好友邀請。 在X匿S上將收端添加到好友列表中的"我的好友"(發(fā)端在"我的好友"分組中添
加收端,"我的好友"分組ID為0ma_buddyliSt)的實現(xiàn)方式如下 PUT /resource_lists/users/sip:995282@10. 90. 5. 122/index廣/
resource-lists/list % 5b@name = % 22oma_buddylist % 22 % 5d/entry % 5b@uri = % 22sip:995446@10. 90. 5. 122% 22% 5d
HTTP/1. 1 Content-Type: application/xc即-el+xml X-3GPP-Asserted-Identity:sip:995282@10. 90. 5. 122 User-Agent:XDM_client/0MA2. 0
Content-Length:74 〈entryuri=〃 sip: 995446@10. 90. 5. 122 〃 >
〈display_name>Tom〈/display_name>
〈/entry> 通過以上步驟實現(xiàn)了經(jīng)過驗證添加好友。 上述方法中,SIP Proxy用于將發(fā)端的好友邀請和好友邀請驗證消息轉(zhuǎn)發(fā)到IM服 務(wù)器,并將來自IM服務(wù)器的好友邀請和好友邀請驗證消息轉(zhuǎn)發(fā)到收端,完成好友邀請和好 友邀請驗證消息的轉(zhuǎn)發(fā)。M應(yīng)用服務(wù)器用于將在線的好友邀請和好友邀請驗證消息轉(zhuǎn)發(fā)到 SIP Proxy,以及對離線的好友邀請和好友邀請驗證消息進(jìn)行存儲,待對方上線后,轉(zhuǎn)發(fā)到 SIP Proxy,完成好友邀請和好友邀請驗證消息的存儲和轉(zhuǎn)發(fā)。具體步驟用戶向SIP Proxy 發(fā)送注冊消息,SIPProxy會將該注冊消息轉(zhuǎn)發(fā)到IM服務(wù)器,這樣IM服務(wù)器就知道該用戶 上線了,會將存儲的離線的好友邀請或好友邀請驗證消息通過SIP Proxy,轉(zhuǎn)發(fā)到該用戶。
X匿服務(wù)器用于保存好友列表,終端可以通過XCAP消息發(fā)送指令進(jìn)行好友列表的 管理,包括對好友列表分組的管理和好友列表中用戶的管理。
0100] 好友列表分組的管理包括以下步驟
0101] B10、通過XCAP的PUT操作,創(chuàng)建好友列表的一個分組;
0102] B20、通過XCAP的PUT操作,修改好友列表分組的名稱;
0103]B30、通過XCAP的DELETE操作,刪除好友列表的分組;
0104] 好友列表中用戶的管理包括以下步驟
0105] C10、通過XCAP的PUT操作,添加好友到好友列表的分組;
0106] C20、通過XCAP的PUT操作,修改一個好友的備注;
0107]C30、通過XCAP的DELETE操作,刪除一個好友。
0108] 以下為好友管理的各消息實例
O109] (1)、創(chuàng)建好友列表的一個分組。
0110] PUT/resource-lists/users/sip:995282@10. 90. 5. 122/
O川] ext_mylist_yenuib HTTP/1. 1
0112] Content-Type:即plication/resource-lists+xml
0113] Accept:氺/氺
0114] Host :10. 90. 5. 80
0115] Connection:Close
0116] X-3GPP-Intended-Identity:sip:995282@10. 90.5.122
0117] User-Agent:XDM_client/0MA2. 0
0118] Cont ent_Length:244
0119] 〈? xml version = 〃 1.0〃 encoding = 〃 UTF-8" Xresource-lists
0120]xmlns = 〃 urn: ietf :par咖s:xml :ns:resource-lists〃
0121]xmlns:oau=〃 urn:oma:xml :xdm:resource-list :即pusage〃 Xlist
0122] name=〃 ext—mylist—ye皿ib〃 Xdisplay-n謙〉測試組
0123] 〈/display_name>〈/listX/resource_lists>
O124] (2)、修改好友列表分組的名稱。
PUT/resource-lists/users/sip:995282@10. 90. 5. 122/ ext_mylist_bbbeiu/ /resource_lists/list % 5b@name = % 22ext_mylist—
bbbeiu% 22% 5d/disp lay-name% 5bl% 5d HTTP/1. 1 Content-Type:即pl ication/xc即-el+xml Accept :氺/氺 Host :10. 90. 5. 80 Connection:Close X-3GPP-Intended-Identity:sip:995282@10. 90. 5. 122 User-Agent:XDM_client/0MA2. 0 Content-Length:35 〈display-n謙〉測試修改組名〈/display-n謙〉 (3)、刪除好友列表的分組。 DELETE/resource-lists/users/sip:995282@10. 90. 5. 122/ index/ /resource_lists/list% 5b@name =% 22oma_£illcont£icts% 22% 5d/
external % 5bfenchor = % 22http://xdmsl. fhims.com. cn/services/resource-1ists/users/ sip:995282@10. 90. 5. 1 22/ext_mylist_bbbeiu/ /resource_lists/list% 5B@name =% 22ext—
mylist_bbbeiu% 22% 5D% 2 2% 5d HTTP/1. 1 Accept :氺/氺 Host :10. 90. 5. 80 Co皿ection:Close X-3GPP-Intended-Identity:sip:995282@10. 90. 5. 122 User-Agent:XDM_client/0MA2. 0 (4)、添加好友到好友列表的分組。 PUT/resource_lists/users/sip:995282@10. 90. 5. 122/ oma_buddylist/ /resource_lists/list % 5b@name = % 22oma_buddylist %
22% 5d/entry% 5b@uri = % 22sip: 995446@10. 90. 5. 122% 22% 5d HTTP/1. 1 Content-Type:即pl ication/xc即-el+xml Accept :氺/氺 Host :10. 90. 5. 80 Connection:Close X-3GPP-Intended-Identity:sip:995282@10. 90. 5. 122 User-Agent:XDM_client/0MA2. 0 Content-Length:89 〈entryuri=〃 sip:995446@10. 90. 5. 122〃 Xdisplay-name〉Tom
〈/display_name>〈/entry> (5)、修改一個好友的備注。 PUT/resource-lists/users/sip:995282@10. 90. 5. 122/ oma_buddylist/ /resource_lists/list % 5b@name = % 22oma_buddylist %
22% 5d/entry% 5b@uri = % 22sip: 995446@10. 90. 5. 122% 22% 5d HTTP/1. 1
Content-Type:即pl ication/xc即-el+xml Accept :氺/氺 Host :10. 90. 5. 80 Connection:Close X-3GPP-Intended-Identity:sip:995282@10. 90. 5. 122 User-Agent:XDM_client/0MA2. 0 Content-Length:84 〈entryuri=〃 sip:995446@10. 90. 5. 122〃 Xdisplay_name>test 〈/display_name>〈/entry> (6)、刪除一個好友。 DELETE/resource-lists/users/sip:995282@10. 90. 5. 122/ oma_buddylist/ /resource_lists/list % 5b@name = % 22oma_buddylist %
22% 5d/entry% 5b@uri =% 22sip:995446@10. 90. 5. 122% 22% 5d HTTP/1. 1 Accept :氺/氺 Host :10. 90. 5. 80 Connection:Close X-3GPP-Intended-Identity:sip:995282@10. 90. 5. 122 User-Agent:XDM_client/0MA2. 0 本發(fā)明不局限于上述最佳實施方式,任何人應(yīng)該得知在本發(fā)明的啟示下作出的結(jié)
構(gòu)變化,凡是與本發(fā)明具有相同或相近的技術(shù)方案,均落入本發(fā)明的保護(hù)范圍之內(nèi)。
權(quán)利要求
基于SIP的即時通訊系統(tǒng)中添加好友的方法,其特征在于包括以下步驟A10、發(fā)端發(fā)送邀請時,在邀請消息的消息體中攜帶發(fā)端的昵稱,SIP賬號,邀請?zhí)砑拥降姆纸MID和附加信息;A20、收端收到上述邀請后,從邀請消息中獲取發(fā)端的昵稱,SIP賬號,邀請?zhí)砑拥降姆纸M和附加信息,然后將收端的昵稱、SIP賬號、邀請方邀請?zhí)砑拥降姆纸MID和接受或拒絕的驗證結(jié)果封裝在驗證消息的消息體中發(fā)送到發(fā)端;如果收端接受此邀請,則通過XCAP消息向XDMS發(fā)送指令將發(fā)端添加到自己的好友列表中,否則,發(fā)送拒絕回復(fù);A30、發(fā)端收到驗證消息,從驗證消息的消息體中獲得收端的昵稱、SIP賬號、自己邀請?zhí)砑拥降姆纸MID和驗證結(jié)果,如果收端接受邀請,則通過XCAP消息向XDMS發(fā)送指令將收端添加到自己邀請?zhí)砑拥降姆纸M,否則,提示發(fā)端,對方拒絕了好友邀請。
2. 如權(quán)利要求1所述的基于SIP的即時通訊系統(tǒng)中添加好友的方法,其特征在于對于離線的好友邀請和好友邀請驗證消息存儲在IM應(yīng)用服務(wù)器,待對方上線后,轉(zhuǎn)發(fā)到SIPProxy,具體步驟為用戶上線時向SIP Proxy發(fā)送注冊消息,SIP Proxy將該注冊消息轉(zhuǎn)發(fā)到IM服務(wù)器,IM服務(wù)器收到該用戶的注冊消息后,將存儲的離線的好友邀請或好友邀請驗證消息通過SIP Proxy,轉(zhuǎn)發(fā)到該用戶。
3. 如權(quán)利要求1或2所述的基于SIP的即時通訊系統(tǒng)中添加好友的方法,其特征在于X匿服務(wù)器保存好友列表,終端可以通過XCAP消息發(fā)送指令進(jìn)行好友列表的管理,包括對好友列表分組的管理和好友列表中用戶的管理,所述好友列表分組的管理包括以下步驟B10、通過XCAP的PUT操作,創(chuàng)建好友列表的一個分組;B20、通過XCAP的PUT操作,修改好友列表分組的名稱;B30、通過XCAP的DELETE操作,刪除好友列表的分組;好友列表中用戶的管理包括以下步驟C10、通過XCAP的PUT操作,添加好友到好友列表的分組;C20、通過XCAP的PUT操作,修改一個好友的備注;C30、通過XCAP的DELETE操作,刪除一個好友。
全文摘要
本發(fā)明公開了一種基于SIP的即時通訊系統(tǒng)中添加好友的方法,包括以下步驟,A10、發(fā)端發(fā)送邀請時,在邀請消息的消息體中攜帶發(fā)端的信息;A20、收端收到上述邀請后,從邀請消息中獲取發(fā)端的信息,然后將收端的信息和接受或拒絕的驗證結(jié)果封裝在驗證消息的消息體中發(fā)送到發(fā)端;A30、發(fā)端收到驗證消息,從驗證消息的消息體中獲得收端的信息并作出接受或拒絕響應(yīng)。本發(fā)明提供的方法,增加了驗證機制,為SIP即時通訊系統(tǒng)中的安全性提供了一定的保證,為不同用戶終端之間共享好友列表提供了解決方案。
文檔編號H04L12/58GK101754428SQ20091025969
公開日2010年6月23日 申請日期2009年12月23日 優(yōu)先權(quán)日2009年12月23日
發(fā)明者黃妮麗 申請人:烽火通信科技股份有限公司