【摘要】 本文首先對(duì)基于P2P-SIP的VoIP系統(tǒng)進(jìn)行了系統(tǒng)需求分析,闡述了基于CHORD的P2P與SIP相結(jié)合的設(shè)計(jì)方案,通過對(duì)SIP會(huì)議模型的分析和比較,確定了本系統(tǒng)的VoIP會(huì)議模型,并給出會(huì)議系統(tǒng)的邏輯架構(gòu)設(shè)計(jì)及模塊劃分,最后為支持本會(huì)議方案對(duì)SIP協(xié)議進(jìn)行了擴(kuò)展設(shè)計(jì)。
【關(guān)鍵詞】 P2P-SIP VoIP會(huì)議系統(tǒng)
一、系統(tǒng)需求分析
傳統(tǒng)C/S模式下基于SIP的VoIP會(huì)議系統(tǒng),除了客戶端外,還需要配置SIP注冊(cè)服務(wù)器、位置服務(wù)器、重定向服務(wù)器以及會(huì)議服務(wù)器,因而會(huì)議系統(tǒng)的構(gòu)建和管理維護(hù)都需要較大的費(fèi)用代價(jià)。
二、P2P與SIP結(jié)合的設(shè)計(jì)方案
不同于傳統(tǒng)的SIP系統(tǒng)結(jié)構(gòu),P2P-SIP系統(tǒng)不再區(qū)分服務(wù)器和用戶代理,系統(tǒng)中每個(gè)結(jié)點(diǎn)既承擔(dān)服務(wù)器的功能,同時(shí)也承擔(dān)用戶代理的功能。結(jié)點(diǎn)之間直接進(jìn)行聯(lián)系,一方面結(jié)點(diǎn)可扮演SIP網(wǎng)絡(luò)電話中幾乎所有實(shí)體的角色,不僅具有客戶機(jī)方面的SIP用戶代理功能,可以發(fā)起、接收呼叫,而且還具有傳統(tǒng)SIP所需要的服務(wù)器功能,可以向用戶提供注冊(cè)、代理和重定向服務(wù);另一方面結(jié)點(diǎn)還必須能夠組織和管理P2P網(wǎng)絡(luò),具備處理結(jié)點(diǎn)的加入與退出、信息的路由、P2P網(wǎng)絡(luò)穩(wěn)定性保持等功能。P2P-SIP覆蓋網(wǎng)絡(luò)通過CHORD算法來組織和維護(hù)。系統(tǒng)中每個(gè)結(jié)點(diǎn)根據(jù)其結(jié)點(diǎn)IP地址和端口號(hào)使用Hash函數(shù)計(jì)算出一個(gè)Node-ID,并根據(jù)Node-ID的大小,首尾相連成一個(gè)的邏輯環(huán)結(jié)構(gòu)。系統(tǒng)中電話用戶的Resource-ID是根據(jù)用戶名使用Hash函數(shù)計(jì)算得到的。一個(gè)Resource-ID為k的用戶注冊(cè)信息將存儲(chǔ)在第一個(gè)Node-ID大于或等于(模運(yùn)算)k的結(jié)點(diǎn)處。用戶注冊(cè)信息的存儲(chǔ)位置會(huì)隨著相關(guān)結(jié)點(diǎn)的加入和離開而發(fā)生變化。
三、會(huì)議模型的分析與選擇
3.1 SIP會(huì)議模型分析
SIP會(huì)議模型按信令與媒體流的關(guān)系主要分為緊耦合和松耦合兩種模型。緊耦合會(huì)議模型是指由一個(gè)中心結(jié)點(diǎn)實(shí)現(xiàn)信令集中控制,又分為端系統(tǒng)混合、集中混合和信令集中媒體流分布三種模式。松耦合會(huì)議模型則是指無(wú)需中央SIP信令的控制,終端直接進(jìn)行交互,又分為組播會(huì)議和網(wǎng)狀分布式單播會(huì)議兩種模式。
3.2 會(huì)議模型的選擇
本文網(wǎng)絡(luò)會(huì)議模型采用信令集中、媒體流分布模型。由若干個(gè)核心管理結(jié)點(diǎn)組成SIP會(huì)議的信令控制中心,負(fù)責(zé)維護(hù)與所有參與會(huì)議結(jié)點(diǎn)間的SIP信令連接,而與會(huì)結(jié)點(diǎn)之間沒有SIP信令的交互。音頻流則由各個(gè)與會(huì)結(jié)點(diǎn)分別進(jìn)行處理,每個(gè)參與會(huì)議的結(jié)點(diǎn)同時(shí)接收其它與會(huì)結(jié)點(diǎn)的音頻流。作為會(huì)議管理結(jié)點(diǎn)不參與音頻流的處理,每個(gè)會(huì)議的發(fā)起由CHORD邏輯環(huán)上的結(jié)點(diǎn)發(fā)出,CHORD邏輯環(huán)上的各結(jié)點(diǎn)可以發(fā)起多個(gè)會(huì)議,不同會(huì)議的管理將分布在不同的結(jié)點(diǎn)上,同一會(huì)議的管理結(jié)點(diǎn)將采用P2P備份策略。
3.3 系統(tǒng)邏輯架構(gòu)
系統(tǒng)邏輯結(jié)構(gòu)分為會(huì)議層、SIP層和DHT層。會(huì)議層用于處理與會(huì)議相關(guān)的操作;SIP層負(fù)責(zé)構(gòu)造SIP信令消息,通過對(duì)SIP協(xié)議的擴(kuò)展,CHORD邏輯環(huán)上結(jié)點(diǎn)間的信息交互可以SIP信令格式實(shí)現(xiàn);DHT層負(fù)責(zé)結(jié)點(diǎn)的定位操作,可實(shí)現(xiàn)SIP協(xié)議中的結(jié)點(diǎn)發(fā)現(xiàn)、呼叫建立等功能。該結(jié)構(gòu)只須對(duì)SIP協(xié)議進(jìn)行擴(kuò)展而無(wú)須修改,與現(xiàn)有采用C/S結(jié)構(gòu)的SIP網(wǎng)絡(luò)電話系統(tǒng)相兼容。
3.4 系統(tǒng)模塊劃分
系統(tǒng)可由以下幾個(gè)模塊組成。在整個(gè)系統(tǒng)設(shè)計(jì)方案中,用戶界面主要提供用戶登錄界面,用戶基本信息的輸入等功能;注冊(cè)模塊負(fù)責(zé)新結(jié)點(diǎn)的注冊(cè)加入以及用戶信息的注冊(cè);定位模塊負(fù)責(zé)用戶定位,包括注冊(cè)用戶的定位和呼叫用戶的定位;退出模塊負(fù)責(zé)結(jié)點(diǎn)和用戶的退出;DHT操作模塊負(fù)責(zé)調(diào)用SIP協(xié)議棧實(shí)現(xiàn)基本的CHORD算法;會(huì)議模塊負(fù)責(zé)會(huì)議的創(chuàng)建、用戶的加入退出、用戶會(huì)話等功能;媒體數(shù)據(jù)傳輸模塊負(fù)責(zé)音頻數(shù)據(jù)的編解碼及媒體數(shù)據(jù)的收發(fā)。
3.5 SIP協(xié)議擴(kuò)展設(shè)計(jì)
SIP協(xié)議具有良好的可擴(kuò)展性,其擴(kuò)展性體現(xiàn)在它與底層傳輸協(xié)議的無(wú)關(guān)特性上。SIP對(duì)消息的傳輸、理解和處理獨(dú)立于支持它的下層協(xié)議。SIP擴(kuò)展以模塊化的風(fēng)格實(shí)現(xiàn),并且SIP使用的方法可以在會(huì)話建立期間協(xié)商,從而保證實(shí)現(xiàn)核心協(xié)議的簡(jiǎn)單用戶代理能和更高級(jí)的用戶代理實(shí)現(xiàn)互操作。
按照前文所討論的P2P與SIP結(jié)合的設(shè)計(jì)方案,P2P-SIP網(wǎng)絡(luò)的維護(hù)是通過結(jié)點(diǎn)之間的SIP消息交互完成的,因而必須對(duì)SIP協(xié)議進(jìn)行擴(kuò)展以支持DHT網(wǎng)絡(luò)。除此之外,為了支持會(huì)議功能,還須對(duì)SIP協(xié)議進(jìn)行會(huì)議消息方面的擴(kuò)展。
參 考 文 獻(xiàn)
[1] 向文武,周德新. VoIP會(huì)議系統(tǒng)中TFO模型的MCU實(shí)現(xiàn)[J]. 計(jì)算機(jī)應(yīng)用,2005,S1:506-507+511
[2] 萬(wàn)曉林. 基于P2P-SIP的VoIP會(huì)議系統(tǒng)分層服務(wù)模型的研究[J]. 科技風(fēng),2011,05:74-75