登錄

網(wǎng)守

1.什么是網(wǎng)守[1]

網(wǎng)守是指網(wǎng)絡(luò)上提供地址翻譯和控制H.323終端、網(wǎng)關(guān)和MCU接入的H.323實(shí)體。網(wǎng)守也可為終端、網(wǎng)關(guān)和MCU提供其他服務(wù),比如帶寬管理和網(wǎng)關(guān)定位。

2.網(wǎng)守設(shè)備及其主要功能[2]

網(wǎng)守在其負(fù)責(zé)的域中為H.323終端、網(wǎng)關(guān)和MCU提供地址翻譯和接入控制功能。在H.323系統(tǒng)中網(wǎng)守是可選的,但如果有網(wǎng)守,它提供鑒權(quán)、選路、呼叫詳細(xì)話單和帶寬管理等集中管理功能。在一個H.323系統(tǒng)中,可以沒有網(wǎng)守,也可以有一個或多個網(wǎng)守,網(wǎng)守之間可以相互通信。在邏輯上網(wǎng)守是一個獨(dú)立的實(shí)體,但在物理上可以與終端、MCU、或網(wǎng)關(guān)設(shè)計(jì)在一起。

1.網(wǎng)守的基本功能

1)地址翻譯。根據(jù)地址翻譯表將別名地址翻譯為傳輸層地址,此翻譯表可由登記消息或其他方式更新。

2)接入控制。根據(jù)呼叫授權(quán)、帶寬或廠商制訂的其他原則來確定是否有權(quán)接入。采用ARQ/ACF/ARJ H.225.0消息。此項(xiàng)功能也可以不設(shè),即允許所有接入請求。

3)帶寬控制。網(wǎng)守應(yīng)支持BRQ/BRJ/BCF消息,根據(jù)帶寬情況進(jìn)行帶寬管理。此項(xiàng)功能也可以不設(shè),即允許所有帶寬改變請求。

4)域管理。網(wǎng)守應(yīng)向其登記的終端、MCU和網(wǎng)關(guān)設(shè)備提供以上功能。

網(wǎng)守還具有其他功能:

1)呼叫控制信令。網(wǎng)守可以選擇自行完成與端點(diǎn)之間的呼叫信令,也可以讓端點(diǎn)之間直接以呼叫信令信道連接。

2)呼叫授權(quán)。利用H.225.0信令,網(wǎng)守可以允許或拒絕某個終端的呼叫。

3)帶寬管理??刂仆瑫r接入網(wǎng)絡(luò)的H.323終端的數(shù)量。利用H.225.0信令,當(dāng)網(wǎng)守判定帶寬不足時,可以拒絕某個終端的呼叫。當(dāng)某個己建立的呼叫要求增加帶寬時,此項(xiàng)功能也適用。

4)呼叫管理。網(wǎng)守對正在進(jìn)行的H.323呼叫進(jìn)行管理,這些信息可以用于顯示被叫終端忙閑或用于帶寬管理功能。

當(dāng)網(wǎng)絡(luò)中存在網(wǎng)關(guān)時,也必須有網(wǎng)守以提供E.164地址與傳輸層地址之間的翻譯。

2.網(wǎng)守的主要功能

1)地址翻譯。根據(jù)登記時建立的翻譯表,執(zhí)行別名地址至傳輸層地址的翻譯,該翻譯表隨登記消息不斷更新。常見的別名就是E.164地址。它可以是一個單一號碼,供SCN用戶標(biāo)識H.323終端,也就是PC—電話通信時,須給PC賦予一個E.164號碼;也可以是一組前綴號碼,供SCN-IP網(wǎng)-SCN使用環(huán)境下,確定目的端網(wǎng)關(guān)的傳輸層地址。

2)呼叫接納控制。根據(jù)用戶權(quán)限、網(wǎng)絡(luò)可用帶寬等條件確定是否允許用戶發(fā)起該呼叫,判定條件可由制造廠商決定。在端點(diǎn)發(fā)起呼叫時,第一個消息就是發(fā)往網(wǎng)守的接納請求信息。

3)帶寬控制。允許端點(diǎn)提出改變分配給它的PBN帶寬的請求。如果端點(diǎn)要求降低分配帶寬,一般均予同意;如果提出增加帶寬要求,網(wǎng)守根據(jù)情況予以同意或拒絕。

4)區(qū)域管理。對本管理區(qū)內(nèi)已登記的終端、MCU和網(wǎng)關(guān)提供上述服務(wù)功能。

5)呼叫控制信令。H.323建立規(guī)定端點(diǎn)至端點(diǎn)的呼叫信令有兩種傳送方式。一是經(jīng)由網(wǎng)守轉(zhuǎn)接的網(wǎng)守選路呼叫信令方式,雙方不知道對端的地址,有利于保護(hù)用戶的隱私權(quán),網(wǎng)守介入呼叫信令過程。另一種是端到端的直接選路呼叫信令,網(wǎng)守只在初始RAS過程中提供被叫的傳輸層地址,其后不再介入呼叫信令過程。

6)呼叫權(quán)限。網(wǎng)守可以通過RAS過程拒絕無權(quán)用戶發(fā)起呼叫,拒絕原因可以是限制自某些特定終端或網(wǎng)關(guān)發(fā)出的呼叫或發(fā)往這些端點(diǎn)的呼出,或者是在某些時間段限制發(fā)起呼叫。

7)帶寬管理??刂圃试S同時接入PBN的H.323終端個數(shù)。通過RAS協(xié)議過程,網(wǎng)守可以拒絕栽終端發(fā)起呼叫,其原因是它判定網(wǎng)絡(luò)沒有足夠的帶寬支持該呼叫,判定準(zhǔn)則由管理者自定。當(dāng)在呼叫進(jìn)行過程中,某終端提出增加帶寬時,網(wǎng)守也可對此拒絕或允許。

8)呼叫管理。例如,網(wǎng)守可以保存一張正在進(jìn)行的H.323呼叫清單,據(jù)此可判定被叫終端是否忙,并且可向帶寬管理功能提供帶寬使用信息。

9)網(wǎng)絡(luò)管理??上蛴?jì)費(fèi)中心提供計(jì)費(fèi)基礎(chǔ)數(shù)據(jù),向管理中心提供話務(wù)統(tǒng)計(jì)基礎(chǔ)數(shù)據(jù)。

10)其他功能。如終端帶寬預(yù)留、目錄服務(wù)、管理信息庫等。

上述功能中,(1)-(4)項(xiàng)為網(wǎng)守的基本功能。

3.網(wǎng)守的測試

網(wǎng)守的測試主要包括以下幾個部分:

功能測試、協(xié)議測試、性能測試和互通性測試。其中功能測試主要包括地址解析功能、接入認(rèn)證功能、呼叫控制功能、路由管理功能、計(jì)費(fèi)功能、安全管理功能和配置、統(tǒng)計(jì)、告警等功能。協(xié)議測試除了RAS協(xié)議外,還應(yīng)包括RADIUS協(xié)議、H.225.0附件G、Q.931等,測試方法主要是利用協(xié)議分析儀監(jiān)視協(xié)議是否符合標(biāo)準(zhǔn)。

對于性能測試和互通性測試方法目前正在研究之中。性能測試主要應(yīng)對網(wǎng)守管理的網(wǎng)關(guān)數(shù)、用戶數(shù)以及同時處理的呼叫數(shù)進(jìn)行測試,而互通性測試應(yīng)包括不同廠家的網(wǎng)守和網(wǎng)關(guān)之間的互通測試以及不同廠家網(wǎng)守的互通測試。

3.網(wǎng)守的層次結(jié)構(gòu)[3]

公用視頻會議系統(tǒng)采用兩級體系結(jié)構(gòu),即頂級網(wǎng)守和一級網(wǎng)守。在業(yè)務(wù)量大的地區(qū)可根據(jù)需要增加二級網(wǎng)守,形成三級體系結(jié)構(gòu)。公用視頻會議系統(tǒng)網(wǎng)守的體系結(jié)構(gòu)如圖1所示。
Image:公用視頻會議系統(tǒng)網(wǎng)守體系結(jié)構(gòu).jpg

頂級網(wǎng)守云可以包含多個頂級網(wǎng)守,頂級網(wǎng)守之間的連接、一級網(wǎng)守與頂級網(wǎng)守之間的連接以及不同運(yùn)營者之間的連接由各運(yùn)營者根據(jù)各自的情況自行確定其方式。當(dāng)運(yùn)營者網(wǎng)絡(luò)規(guī)模不是很大時,頂級網(wǎng)守的功能可由其中一個一級網(wǎng)守完成。

(1)頂級網(wǎng)守。頂級網(wǎng)守負(fù)責(zé)管理屬于該運(yùn)營者的一級網(wǎng)守,主要負(fù)責(zé)一級網(wǎng)守之間的地址解析、不同運(yùn)營者視頻會議網(wǎng)之間的互通和地址交換;也負(fù)責(zé)國際業(yè)務(wù)的管理,即國際呼叫的建立和拆除。

(2)一級網(wǎng)守。一級網(wǎng)守主要負(fù)責(zé)該一級網(wǎng)守所管轄的全部二級網(wǎng)守以及IP電話終端代理間的地址解析工作。在兩級網(wǎng)的情況下,二級網(wǎng)守的功能全部歸入一級網(wǎng)守。

(3)二級網(wǎng)守。二級網(wǎng)守主要負(fù)責(zé)所屬區(qū)域內(nèi)用戶的地址解析和認(rèn)證,防止非法用戶的接入和非法網(wǎng)關(guān)的登記;負(fù)責(zé)向所屬網(wǎng)關(guān)提供路由信息,包括被叫網(wǎng)關(guān)的端口信息等。

(4)網(wǎng)守之間的互通。網(wǎng)守之間的通信完成不同區(qū)域之間的呼叫建立。頂級網(wǎng)守與一級網(wǎng)守之間,或一級網(wǎng)守與二級網(wǎng)守之間的互通采用RAS協(xié)議,主要傳送用戶地址解析信息。

(5)網(wǎng)守與網(wǎng)關(guān)之間的互通。網(wǎng)守與網(wǎng)關(guān)之間使用RAS協(xié)議進(jìn)行通信,RAS信令采用H.225.0消息在網(wǎng)守與端點(diǎn)之間完成注冊、接入控制、帶寬轉(zhuǎn)換、狀態(tài)信息傳送和切斷等操作。RAS信令信道與呼叫信令信道和H.245呼叫控制信道無關(guān)。RAS信令信道為非可靠信道,使用UDP方式傳送信令。

4.網(wǎng)守的系統(tǒng)設(shè)計(jì)[3]

網(wǎng)守的結(jié)構(gòu)如圖2所示。這是一種較為完整的結(jié)構(gòu),適合大規(guī)模系統(tǒng)應(yīng)用。此處我們只討論能夠?yàn)樗羞B接到LAN上的H.323端點(diǎn)提供基本服務(wù)的網(wǎng)守的實(shí)現(xiàn)問題。
Image:網(wǎng)守的結(jié)構(gòu).jpg

1)標(biāo)準(zhǔn)性要求

網(wǎng)守設(shè)計(jì)應(yīng)符合ITU—T制訂的H.323協(xié)議和中國通信行業(yè)標(biāo)準(zhǔn)《IP電話網(wǎng)守設(shè)備技術(shù)要求》的要求,支持H.225.0、H.245、LAN通信協(xié)議(IEEE802.3或IEEE802.3u)、TCP/IP等;使用面向?qū)ο蟮木幊碳夹g(shù),使系統(tǒng)具有清晰的邏輯層次結(jié)構(gòu),系統(tǒng)應(yīng)具有較強(qiáng)的兼容性,易于維護(hù)和二次開發(fā);能夠和符合H.323協(xié)議的各種設(shè)備(網(wǎng)守、終端、MCU、網(wǎng)關(guān))相兼容,并且可以為它們提供相應(yīng)的服務(wù)。

2)功能性要求

網(wǎng)守應(yīng)實(shí)現(xiàn)H.323規(guī)定的基本功能和部分可選附加功能,實(shí)現(xiàn)相關(guān)的所有協(xié)議,應(yīng)具有記錄網(wǎng)守運(yùn)行日志的能力,能夠提供計(jì)費(fèi)所使用的原始通信紀(jì)錄,實(shí)現(xiàn)計(jì)費(fèi)功能,或提供運(yùn)營商所需的計(jì)費(fèi)接口。根據(jù)H.323協(xié)議中關(guān)于網(wǎng)守功能的規(guī)定,可將網(wǎng)守劃分為五個功能模塊:

·呼叫控制和管理(Call Control and Management)

·地址翻譯(Address Translation)

·帶寬控制和管理(Bandwidth Controland Mangement)

·用戶認(rèn)證、授權(quán)和計(jì)費(fèi)(Authentication,Authorization & Account,AAA)

·計(jì)費(fèi)信息的采集(Call Detail Record Convergence,CDR Convergence)

3)運(yùn)行環(huán)境要求

系統(tǒng)要最大限度地適用于多種平臺環(huán)境,兼容性要好,一般要求能夠在Windows9x、Windows2000、WindowsXP、WindowsCE、UNIX等平臺下運(yùn)行。

4)使用維護(hù)要求要求

系統(tǒng)兼容性較強(qiáng),結(jié)構(gòu)簡單,維護(hù)方便,升級容易,功能較強(qiáng),組網(wǎng)靈活,成本較低。

5.網(wǎng)守的實(shí)現(xiàn)方法[3]

網(wǎng)守實(shí)現(xiàn)基于面向?qū)ο蟮木幊谭椒?,用VC++語言作為開發(fā)系統(tǒng),采用Pwlib和OpenH323兩個SDK動態(tài)連接類庫。

軟件實(shí)現(xiàn)平臺采用Pwlib和OpenH323兩個動態(tài)連接類庫的原因在于:

(1)這兩個庫中封裝了大量的通信類庫以處理信令交互和報(bào)文收發(fā),整個平臺的設(shè)計(jì)遵循開放性原則(Mozilla Public License),能夠很好地支持H.323協(xié)議。

(2)類庫Pwlib是一個適度大小的類庫,它的發(fā)展已有很長一段時間了,其最初的主要目的是形成一種同時可在Microsoft Windows、UNIX、Linux等多種操作系統(tǒng)平臺上運(yùn)行的具有通用性的類庫系統(tǒng),然而它以后的發(fā)展卻遠(yuǎn)遠(yuǎn)超越了最初的目的。I/O的封裝類、多線程類、UNIX后臺郵件收發(fā)類、基于NT平臺的服務(wù)器類,幾乎所有的互聯(lián)網(wǎng)協(xié)議類均被逐漸地增加進(jìn)來,同時遵循了開放性原則,因此Pwlib非常適合作為開發(fā)H.323系統(tǒng)的基礎(chǔ)類庫。

(3)類庫OpenH323基于類庫Pwlib之上,也是一種開放源代碼的、可供互操作的、具備完整特性的、適度大小的、面向整個H.323協(xié)議棧的基礎(chǔ)類庫,是由澳大利亞一家叫EquivalencePtyLtd的公司發(fā)展起來的。在遵循開放性原則的前提下,所有對其感興趣的團(tuán)體、商業(yè)、個人均可免費(fèi)使用該類庫。

(4)開發(fā)人員可以通過互聯(lián)網(wǎng)在開放性原則下共同使用這兩個類庫,相互交流,共同開發(fā),共同提高,這使得我們可以最大限度地降低開發(fā)成本和減少開發(fā)周期,也使得網(wǎng)守與類庫可實(shí)現(xiàn)同時升級。

網(wǎng)守的開發(fā)系統(tǒng)采用Visfial C十十6.0,數(shù)據(jù)庫使用微軟的Access。對于一個電信級會議系統(tǒng),由于用戶數(shù)很多,數(shù)據(jù)量很大,安全性要求很高,必須使用大型的數(shù)據(jù)庫來完成各種信息的存取,通??墒褂肧QLServer、Oracle、Sybase等。使用Microsoft的Access數(shù)據(jù)庫,主要基于以下考慮:

(1)微軟在Windows和VisualStudios系列中對Access數(shù)據(jù)庫的支持,讓我們可以方便地操作Access數(shù)據(jù)庫,并且它的效率也較高。

(2)面向小規(guī)模應(yīng)用所設(shè)計(jì)的網(wǎng)守,數(shù)據(jù)量相對還不是很大,Access數(shù)據(jù)庫完全滿足應(yīng)用要求。

(3)Access數(shù)據(jù)庫的整個數(shù)據(jù)存放在一個文件中,移動和拷貝比較方便。

(4)采用適當(dāng)?shù)姆庋b之后,在以后需要升級到大規(guī)模的應(yīng)用數(shù)據(jù)庫時,可以方便地從訪問Access數(shù)據(jù)庫向訪問SQL Server或者Oracle數(shù)據(jù)庫過渡轉(zhuǎn)變。當(dāng)然,如果使用ODBC數(shù)據(jù)庫引擎訪問數(shù)據(jù)庫,這種轉(zhuǎn)變將不再是問題。

6.網(wǎng)守的實(shí)現(xiàn)[3]

1.模塊說明

根據(jù)以上對網(wǎng)守功能結(jié)構(gòu)的分析,我們在實(shí)現(xiàn)時把網(wǎng)守分解為以下幾個主要的功能模塊:RAS協(xié)議過程實(shí)現(xiàn)模塊、呼叫信令路由模塊、端點(diǎn)注冊信息鏈表模塊、計(jì)費(fèi)模塊、H.245協(xié)議處理模塊等,如圖3所示。
Image:網(wǎng)守主要模塊的信息傳遞結(jié)構(gòu)圖.jpg

RAS協(xié)議過程實(shí)現(xiàn)模塊用來處理RAS協(xié)議過程,它包括網(wǎng)守搜尋(采用多播機(jī)制完成)、端點(diǎn)登記、呼叫接納、呼叫退出、帶寬管理等過程,并且把相應(yīng)的端點(diǎn)信息傳送到端點(diǎn)注冊信息鏈表模塊。

呼叫信令路由模塊用來與終端之間進(jìn)行H.225.0呼叫信令過程,它包括呼叫建立、呼叫清除、Q.932消息處理等過程,并且支持呼叫轉(zhuǎn)移功能,既可以進(jìn)行一般的連接過程,又支持快速連接過程。建立呼叫路由之前首先要從端點(diǎn)注冊信息鏈表模塊中取得端點(diǎn)信息,在合法的情況下再去建立呼叫路由,然后再把呼叫信息傳送到當(dāng)前呼叫信息鏈表模塊中,直至呼叫清除時再次傳送信息給當(dāng)前呼叫信息鏈表模塊和計(jì)費(fèi)模塊去處理。

端點(diǎn)注冊信息鏈表模塊用來儲存注冊終端的詳細(xì)信息,包括別名、呼叫信令傳輸層地址、RAS端口地址、終端ID、終端類型、制造廠商代碼等;還提供端點(diǎn)的插入、刪除、更新、查詢、類型判斷、超時處理等大量的用戶接口功能。

當(dāng)前呼叫信息鏈表模塊用來儲存當(dāng)前正在進(jìn)行呼叫和通話的每一對呼叫的詳細(xì)信息,包括主叫和被叫ID、呼叫ID、呼叫引用值、分配帶寬、呼叫的發(fā)起時間等信息,同樣也包括呼叫的插入、刪除、更新、查詢等大量的用戶接口功能。

計(jì)費(fèi)模塊從呼叫信令路由模塊中取得呼叫信息。對每次的呼叫原始計(jì)費(fèi)信息進(jìn)行詳細(xì)記錄。這些信息至少包括呼叫起始時間、終止時間、主被叫E.164別名地址、主被叫IP地址、使用帶寬等信息。

2.網(wǎng)守主程序

一個處于運(yùn)行狀態(tài)中的網(wǎng)守,其各個功能模塊的瞬時運(yùn)行狀態(tài)都是隨機(jī)并發(fā)的,每個模塊內(nèi)部又要同時處理若干個端點(diǎn)的請求或連接。因此網(wǎng)守最適合于使用多線程的編程方法來實(shí)現(xiàn)。網(wǎng)守在實(shí)現(xiàn)時,首先由主程序創(chuàng)建RAS處理線程、呼叫信令處理線程、多播接收處理線程這三個線程來啟動相應(yīng)的功能處理模塊,然后在各線程內(nèi)部當(dāng)每接收一個請求或連接時,該模塊便向系統(tǒng)申請所需的資源,然后在其內(nèi)部產(chǎn)生一個專門用來處理此次請求或連接的子線程,直至此次請求或連接結(jié)束時,該子線程將自動停止運(yùn)行,釋放所占用的系統(tǒng)資源以備系統(tǒng)重新分配使用。

網(wǎng)守的主程序完成的任務(wù)主要是生成網(wǎng)守的主控制臺界面窗口,實(shí)現(xiàn)網(wǎng)守運(yùn)行前的初始化過程,搜集所需的各項(xiàng)環(huán)境參數(shù),建立終端注冊表(Endpoint Table)、當(dāng)前呼叫信息表(Call Detail Table)等各功能塊運(yùn)行所必需的信息鏈表,啟動網(wǎng)守各功能模塊的相應(yīng)線程,以及隨時根據(jù)系統(tǒng)管理員發(fā)出的控制臺命令對網(wǎng)守當(dāng)前工作狀態(tài)、運(yùn)行日志進(jìn)行查詢、關(guān)閉或結(jié)束網(wǎng)守等動作。

網(wǎng)守的主控制臺界面主要包括四部分:菜單欄、圖形按鈕、網(wǎng)守所在主機(jī)IP地址顯示窗、網(wǎng)守工作信息顯示窗。菜單欄內(nèi)包含很多命令,用于啟動或關(guān)閉網(wǎng)守,查看注冊終端表、當(dāng)前呼叫信息表、工作日志等:圖形按鈕是最常用的菜單命令的快捷按鈕。網(wǎng)守所在主機(jī)IP地址顯示窗是網(wǎng)守啟動后顯示主機(jī)IP地址的窗口,該地址供各終端設(shè)置時查詢使用。網(wǎng)守工作信息顯示窗用于顯示網(wǎng)守的工作狀態(tài)以及各表項(xiàng)參數(shù)。

網(wǎng)守主程序的簡要工作流程如圖4所示。
Image:網(wǎng)守主程序簡要工作流程.jpg

下面是網(wǎng)守主程序中啟動各功能塊的關(guān)鍵語句以及簡要說明,它們完成了各數(shù)據(jù)鏈表的建立和各工作線程的啟動:

//建立注冊終端信息表

MvEnviron.EPTable=new EndpointTable(MyEnviron);

//建立當(dāng)前呼叫信息表

MyEnviron.CTable=new CallTable(MyEnviron);

//建立RAS日志

MyEnviron.Log=new OpengateLog;

//創(chuàng)建呼叫信令處理線程

CallThread * CThread=new CallThread( MyEnviron);

MyEnviron.MyCallAddr=CThread->GetMyCallSignallingAddr();

//創(chuàng)建RAS信令處理線程

RasThread * RThread=new RasThread( MyEnviron);

//創(chuàng)建Multicast receiver線程

Multicast Thread * MCThread=new MulticastThread( MyEnviron);

3.RAS消息處理線程

RAS消息處理線程(RasThread)完成的功能實(shí)際就是RAS協(xié)議過程,它包括網(wǎng)守搜尋、端點(diǎn)登記等過程。RAS協(xié)議是端點(diǎn)和網(wǎng)守之間執(zhí)行的協(xié)議,基本上實(shí)現(xiàn)管理功能。

網(wǎng)守賦予了一個公認(rèn)TSAP標(biāo)識(對于IP網(wǎng)絡(luò)來說就是TCP/UDP端口號)作為RAS信道的TSAP標(biāo)識,對于IP網(wǎng)絡(luò)來說就是端口1719。一般的端點(diǎn)在啟動時首先要向網(wǎng)守注冊登記,因此必須事先知道網(wǎng)守的RAS協(xié)議的傳輸層地址(網(wǎng)絡(luò)層地址+TSAP標(biāo)識),也稱為RAS地址。圖5是RAS消息處理線程的簡要流程。
Image:RAS消息處理線程簡要流程.jpg

流程圖中處理RAS消息是該線程的核心部分,完成了RAS協(xié)議的主要功能,包括端點(diǎn)登記、呼叫接納和退出帶寬管理等功能。

1)網(wǎng)守搜索

網(wǎng)守搜索有兩種方式:人工方式和自動方式。自動方式是通過搜尋多播地址發(fā)送GRQ消息來實(shí)現(xiàn)的。人工方式通過對端點(diǎn)的配置來完成,將其歸屬的網(wǎng)守傳輸層地址預(yù)置入端點(diǎn)的配置文件或初始化文件中。

自動方式允許端點(diǎn)和歸屬網(wǎng)守的關(guān)系可以隨時間而改變,當(dāng)原有網(wǎng)守出故障時可以自動切換到替換網(wǎng)守上去,當(dāng)所屬網(wǎng)守改變后無需在每個終端上修改其配置文件。

在自動方式中,端點(diǎn)采用搜尋多播地址發(fā)送GRQ消息,詢問“誰是我的網(wǎng)守”??梢杂幸粋€或多個網(wǎng)守回送GCF消息,表示“我可以是你的網(wǎng)守”,并在消息中告知其RAS地址。不愿意該端點(diǎn)在其上登記的網(wǎng)守則返回G對消息。如果有多個網(wǎng)守回送GCF消息,端點(diǎn)可在其中任選一個作為其歸屬網(wǎng)守。如果超時仍未收到網(wǎng)守的響應(yīng),端點(diǎn)可重發(fā)GRQ消息,但兩次相鄰GRQ之間的時間間隔不能小于5秒。如果仍未收到響應(yīng),則改用人工搜尋。當(dāng)然如果事先知道網(wǎng)守的IP地址,則可以直接使用人工搜尋。

端點(diǎn)發(fā)送的GRQ消息包含端點(diǎn)類型、端點(diǎn)自身的RAS地址、希望在其上登記的網(wǎng)守標(biāo)識等參數(shù)。若未含網(wǎng)守標(biāo)識參數(shù),就表示端點(diǎn)愿意在任何一個網(wǎng)守上登記。網(wǎng)守返回的GCF消息除了包含該網(wǎng)守標(biāo)識和RAS地址外,還可包含“替換網(wǎng)守”序列參數(shù)并指定優(yōu)先級順序。如果至該網(wǎng)守的請求未予響應(yīng)或被拒絕又未給出轉(zhuǎn)向信息,則可轉(zhuǎn)向替換網(wǎng)守重新提出請求。GRJ消息也包含轉(zhuǎn)向信息參數(shù),另外還給出拒絕原因。

2)端點(diǎn)登記

端點(diǎn)搜索到所屬網(wǎng)守后,必須在網(wǎng)守上登記后才能發(fā)起和接納呼叫。登記表明該端點(diǎn)加入了該管理區(qū)。端點(diǎn)首先要向網(wǎng)守的RAS地址發(fā)送RRQ消息,消息中包含的兩個參數(shù)是端點(diǎn)別名及其呼叫信令傳輸層地址。也有可能RRQ消息中沒有包含別名,網(wǎng)守便賦予一個,然后在隨后的RCF消息中發(fā)回給終端。別名可以是E.164地址或H.323標(biāo)識,但為了和普通的固定電話保持一致,我們一般使用E.164地址。E.164地址由接入碼和電話號碼組成,接入碼可以用來標(biāo)識網(wǎng)關(guān)。H.323標(biāo)識為字符串形式,可以是用戶名、E—mail名或其他標(biāo)識名。一個端點(diǎn)可以有多個別名,所有的別名都在RRQ消息中發(fā)往網(wǎng)守,它們將被翻譯為同一個傳輸層地址。一般情況下,網(wǎng)守將返回RCF消息,告訴端點(diǎn)網(wǎng)守的呼叫信令傳輸層地址,并將端點(diǎn)別名和地址登記入端點(diǎn)注冊登記表中(End Point Table)。消息還包含一個“生存時間”參數(shù),單位是秒,指示本次登記信息的壽命。但是如果RRQ消息中的別名和已登記的某一端點(diǎn)相同而傳輸層地址不同,則回送RⅪ消息,并指明“重復(fù)登記”的拒絕原因。但是如果RRQ消息中的別名和傳輸層地址與已登記的某一端點(diǎn)都相同,則視為更新登記并修改表End Point Table中的相應(yīng)信息。

端點(diǎn)也可以改變其別名,這時應(yīng)先向網(wǎng)守發(fā)送URQ消息,網(wǎng)守回送UCF消息,以便端點(diǎn)在此用一新的別名登記注冊。同樣,網(wǎng)守也可以發(fā)送URQ消息給端點(diǎn),端點(diǎn)回送UCF消息,網(wǎng)守然后刪除端點(diǎn)以前登記的信息。

3)端點(diǎn)定位

端點(diǎn)定位用于端點(diǎn)或網(wǎng)守向相應(yīng)的網(wǎng)守詢問某一端點(diǎn)呼叫控制信道的傳輸層地址。當(dāng)端點(diǎn)或網(wǎng)守已知某一端點(diǎn)的別名,需要知道其呼叫信令信道傳輸層地址時,可向相應(yīng)的網(wǎng)守發(fā)送LRQ消息,發(fā)送地址是該網(wǎng)守的RAS地址。如不知道該端點(diǎn)的歸屬網(wǎng)守,也可用搜尋多播地址發(fā)送LRQ消息。該端點(diǎn)在其上登記的網(wǎng)守收到此消息后應(yīng)回送LCF消息,消息中包含該端點(diǎn)的呼叫信令信道傳輸層地址,或者是該網(wǎng)守的呼叫信令信道傳輸層地址,究竟傳送哪一個地址取決于呼叫信令是采用直接選路方式還是網(wǎng)守選路方式。

對于該端點(diǎn)未在其上登記的網(wǎng)守,如果是在RAS信道上收到LRQ消息,則須回送LRJ消息;如果是在搜尋多播地址上收到LRQ消息,則不需要作任何響應(yīng)。

4)呼叫接納和退出

呼叫的接納(ARQ/ACF)和呼叫退出是整個呼叫控制的第一對和最后一對消息,分別標(biāo)志呼叫的開始和結(jié)束。在ARQ中端點(diǎn)給出目的地別名(Alias)、呼叫引用值(Call Reference Value)、呼叫標(biāo)識(Call ID)、會議標(biāo)識(Conference ID)、應(yīng)答呼叫(Answer Call)等信息以及所需要的帶寬。網(wǎng)守根據(jù)具體情況可以接納也可以拒絕該呼叫。如接受該呼叫則回送ACF消息,其中包括的兩項(xiàng)主要參數(shù)是允許分配的帶寬和翻譯后所得的目的地呼叫信令傳輸層地址或者是網(wǎng)守本身的呼叫信令傳輸層地址。

不但主叫發(fā)起呼叫時需要請求網(wǎng)守接納,被叫接收呼叫建立信令時也要向網(wǎng)守發(fā)送ARQ請求,因此在ARQ中有一“應(yīng)答呼叫”(Answer Call)參數(shù),指示是否響應(yīng)呼叫。在ARQ消息中還有以下三個關(guān)于呼叫的標(biāo)識參數(shù)。

(1)呼叫引用值(Call Reference Value,CRV):用于標(biāo)識呼叫,僅在呼叫段上局部有效。例如,呼叫信令采用網(wǎng)守選路方式傳送,則“主叫終端一網(wǎng)守”和“網(wǎng)守一被叫終端”這兩個信令段的CRV一般是不相同的,網(wǎng)守負(fù)責(zé)建立兩個CRV之間的關(guān)聯(lián),以保證信令消息的正確轉(zhuǎn)送。.但是在同一信令段上,屬于同一呼叫的所有H.225.0消息,包括呼叫接納、呼叫建立、補(bǔ)充業(yè)務(wù)、帶寬改變、呼叫終結(jié)等消息的CRV均相同。

(2)呼叫標(biāo)識(Call ID):亦用于標(biāo)識呼叫,和CRV不同的是,它是全局有效參數(shù)。也就是說,從主叫端點(diǎn)到其網(wǎng)守、從主叫端點(diǎn)到被叫端點(diǎn)、從被叫端點(diǎn)到其網(wǎng)守,屬于同一呼叫的所有RAS消息和呼叫信令消息中的呼叫標(biāo)識均相同。呼叫標(biāo)識主要用于端到端的信息傳送,如將其封裝在Q.931消息的用戶一用戶信息中傳遞,可供補(bǔ)充業(yè)務(wù)使用。呼叫標(biāo)識由主叫端點(diǎn)賦值。

(3)會議標(biāo)識(Conference Identifier,CID):惟一標(biāo)識會議的全局號碼,是由會議發(fā)起端點(diǎn)創(chuàng)建的關(guān)聯(lián)該會議所屬所有呼叫的信令消息。如果一個會議包括若干個呼叫,則每個呼叫有其各自的呼叫標(biāo)識,所有呼叫有一個共同的會議標(biāo)識,凡屬該會議的所有H.225.0消息均采用該會議標(biāo)識。

CID由三部分組成:端點(diǎn)網(wǎng)絡(luò)地址、會議呼叫發(fā)起的絕對時間和所用的協(xié)議版本。CID由16個八位位組組成,如表1所示。其中:0為最低八位位組;N5:NO為48位LAN地址,如無此地址,則以隨機(jī)數(shù)填充;C1:CO為16比特計(jì)數(shù)器,每次會議加1;V為4比特的版本號,位于CID字節(jié)6的低4比特;H1、A、M1:M0、L3:L0為1OOns時鐘計(jì)時值的最低60比特,其比特排列順序如表2所示。

表1 會議標(biāo)識

CID八位位組15~109~8765~43~O
八位位組名N5:NOC1:COH1AVM1:MoL3:L0

表2 時鐘計(jì)時比特

H1AM1M0L3L2L1L0
595251484732310

5)帶寬管理

帶寬管理用來處理呼叫中途改變呼叫接納時確定的帶寬,改變請求可由網(wǎng)守或端點(diǎn)發(fā)起。如果網(wǎng)守主動向端點(diǎn)發(fā)送BRQ,請求降低帶寬,端點(diǎn)必須服從,降低其總比特率且回送BCF;同時向?qū)Χ硕它c(diǎn)發(fā)送H.245控制消息,通知其信道帶寬已經(jīng)改變,然后由對端端點(diǎn)再通知其網(wǎng)守。如果是增加帶寬請求,端點(diǎn)根據(jù)需要決定是否增加比特率。

6)狀態(tài)和資源

狀態(tài)查詢主要用于網(wǎng)守詢問終端的開機(jī)/關(guān)機(jī)狀態(tài);網(wǎng)關(guān)資源指示用于向網(wǎng)守通告該網(wǎng)關(guān)的可用資源。

4.呼叫處理線程

呼叫處理線程(Call Thread)完成的功能就是H.225.0呼叫信令消息過程?;镜暮艚行帕钕⑷∽杂赒.931和Q.932消息。

呼叫處理線程在主程序中被啟動后便開始在呼叫信道上偵聽是否有端點(diǎn)發(fā)出呼叫。每當(dāng)一個新的端點(diǎn)發(fā)起一個有效呼叫并且選路方式設(shè)定為網(wǎng)守選路模式時,呼叫處理線程便打開一個新的TCP套接字,利用此套接字與該端點(diǎn)建立連接,然后建立一個真正處理該呼叫信令消息的線程(Signalling Thread)去處理此次呼叫,呼叫處理線程則接著在原呼叫信道上偵聽是否有新的端點(diǎn)發(fā)出呼叫。圖6就是呼叫處理線程簡要流程。
Image:呼叫處理線程簡要流程.jpg
在初始呼叫建立完成后,實(shí)際的呼叫控制和保持活動消息被轉(zhuǎn)移到了新的臨時端口上,信令線程就是在該端口上實(shí)際處理這些消息的線程。信令線程的簡要流程如圖7所示。
Image:信令線程簡要流程.jpg

信令線程可以完成兩種連接過程,即常規(guī)的連接過程和“快速連接”過程。

5.搜尋多播接收處理線程

網(wǎng)守具有一個公認(rèn)的多播地址,即搜尋多播地址。因?yàn)橐话愕亩它c(diǎn)在剛啟動時并不知道歸屬于哪一個網(wǎng)守,也不知道網(wǎng)守的網(wǎng)絡(luò)層地址,因此利用此公認(rèn)的多播地址廣播搜尋消息,以確認(rèn)其歸屬的網(wǎng)守。還有在端點(diǎn)定位時,當(dāng)端點(diǎn)或網(wǎng)守已知某一端點(diǎn)的別名,需要知道其呼叫信令信道傳輸層地址時,可以向相應(yīng)的網(wǎng)守RAS地址發(fā)送LRQ消息。但是有時并不知道該端點(diǎn)的歸屬網(wǎng)守,這時可利用該多播地址發(fā)送LRQ消息,該端點(diǎn)的歸屬網(wǎng)守收到該消息后回送LCF消息,消息中包括該端點(diǎn)的呼叫信令信道傳輸層地址或者是該網(wǎng)守的呼叫信令信道傳輸層地址,回送哪一個地址取決于采用的是直接選路方式還是網(wǎng)守選路方式。該線程的工作方式與RAS消息處理線程相似,如圖8所示。
Image:搜尋多播接收處理線程簡要流程.jpg

評論  |   0條評論