網(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ì)話單和帶寬管理等集中管理功能。在一個(gè)H.323系統(tǒng)中,可以沒有網(wǎng)守,也可以有一個(gè)或多個(gè)網(wǎng)守,網(wǎng)守之間可以相互通信。在邏輯上網(wǎng)守是一個(gè)獨(dú)立的實(shí)體,但在物理上可以與終端、MCU、或網(wǎng)關(guān)設(shè)計(jì)在一起。
1.網(wǎng)守的基本功能
1)地址翻譯。根據(jù)地址翻譯表將別名地址翻譯為傳輸層地址,此翻譯表可由登記消息或其他方式更新。
2)接入控制。根據(jù)呼叫授權(quán)、帶寬或廠商制訂的其他原則來(lái)確定是否有權(quán)接入。采用ARQ/ACF/ARJ H.225.0消息。此項(xiàng)功能也可以不設(shè),即允許所有接入請(qǐng)求。
3)帶寬控制。網(wǎng)守應(yīng)支持BRQ/BRJ/BCF消息,根據(jù)帶寬情況進(jìn)行帶寬管理。此項(xiàng)功能也可以不設(shè),即允許所有帶寬改變請(qǐng)求。
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)守可以允許或拒絕某個(gè)終端的呼叫。
3)帶寬管理。控制同時(shí)接入網(wǎng)絡(luò)的H.323終端的數(shù)量。利用H.225.0信令,當(dāng)網(wǎng)守判定帶寬不足時(shí),可以拒絕某個(gè)終端的呼叫。當(dāng)某個(gè)己建立的呼叫要求增加帶寬時(shí),此項(xiàng)功能也適用。
4)呼叫管理。網(wǎng)守對(duì)正在進(jìn)行的H.323呼叫進(jìn)行管理,這些信息可以用于顯示被叫終端忙閑或用于帶寬管理功能。
當(dāng)網(wǎng)絡(luò)中存在網(wǎng)關(guān)時(shí),也必須有網(wǎng)守以提供E.164地址與傳輸層地址之間的翻譯。
2.網(wǎng)守的主要功能
1)地址翻譯。根據(jù)登記時(shí)建立的翻譯表,執(zhí)行別名地址至傳輸層地址的翻譯,該翻譯表隨登記消息不斷更新。常見的別名就是E.164地址。它可以是一個(gè)單一號(hào)碼,供SCN用戶標(biāo)識(shí)H.323終端,也就是PC—電話通信時(shí),須給PC賦予一個(gè)E.164號(hào)碼;也可以是一組前綴號(hào)碼,供SCN-IP網(wǎng)-SCN使用環(huán)境下,確定目的端網(wǎng)關(guān)的傳輸層地址。
2)呼叫接納控制。根據(jù)用戶權(quán)限、網(wǎng)絡(luò)可用帶寬等條件確定是否允許用戶發(fā)起該呼叫,判定條件可由制造廠商決定。在端點(diǎn)發(fā)起呼叫時(shí),第一個(gè)消息就是發(fā)往網(wǎng)守的接納請(qǐng)求信息。
3)帶寬控制。允許端點(diǎn)提出改變分配給它的PBN帶寬的請(qǐng)求。如果端點(diǎn)要求降低分配帶寬,一般均予同意;如果提出增加帶寬要求,網(wǎng)守根據(jù)情況予以同意或拒絕。
4)區(qū)域管理。對(duì)本管理區(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)守選路呼叫信令方式,雙方不知道對(duì)端的地址,有利于保護(hù)用戶的隱私權(quán),網(wǎng)守介入呼叫信令過(guò)程。另一種是端到端的直接選路呼叫信令,網(wǎng)守只在初始RAS過(guò)程中提供被叫的傳輸層地址,其后不再介入呼叫信令過(guò)程。
6)呼叫權(quán)限。網(wǎng)守可以通過(guò)RAS過(guò)程拒絕無(wú)權(quán)用戶發(fā)起呼叫,拒絕原因可以是限制自某些特定終端或網(wǎng)關(guān)發(fā)出的呼叫或發(fā)往這些端點(diǎn)的呼出,或者是在某些時(shí)間段限制發(fā)起呼叫。
7)帶寬管理??刂圃试S同時(shí)接入PBN的H.323終端個(gè)數(shù)。通過(guò)RAS協(xié)議過(guò)程,網(wǎng)守可以拒絕栽終端發(fā)起呼叫,其原因是它判定網(wǎng)絡(luò)沒有足夠的帶寬支持該呼叫,判定準(zhǔn)則由管理者自定。當(dāng)在呼叫進(jìn)行過(guò)程中,某終端提出增加帶寬時(shí),網(wǎng)守也可對(duì)此拒絕或允許。
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ù)、管理信息庫(kù)等。
上述功能中,(1)-(4)項(xiàng)為網(wǎng)守的基本功能。
3.網(wǎng)守的測(cè)試
網(wǎng)守的測(cè)試主要包括以下幾個(gè)部分:
功能測(cè)試、協(xié)議測(cè)試、性能測(cè)試和互通性測(cè)試。其中功能測(cè)試主要包括地址解析功能、接入認(rèn)證功能、呼叫控制功能、路由管理功能、計(jì)費(fèi)功能、安全管理功能和配置、統(tǒng)計(jì)、告警等功能。協(xié)議測(cè)試除了RAS協(xié)議外,還應(yīng)包括RADIUS協(xié)議、H.225.0附件G、Q.931等,測(cè)試方法主要是利用協(xié)議分析儀監(jiān)視協(xié)議是否符合標(biāo)準(zhǔn)。
對(duì)于性能測(cè)試和互通性測(cè)試方法目前正在研究之中。性能測(cè)試主要應(yīng)對(duì)網(wǎng)守管理的網(wǎng)關(guān)數(shù)、用戶數(shù)以及同時(shí)處理的呼叫數(shù)進(jìn)行測(cè)試,而互通性測(cè)試應(yīng)包括不同廠家的網(wǎng)守和網(wǎng)關(guān)之間的互通測(cè)試以及不同廠家網(wǎng)守的互通測(cè)試。
3.網(wǎng)守的層次結(jié)構(gòu)[3]

頂級(jí)網(wǎng)守云可以包含多個(gè)頂級(jí)網(wǎng)守,頂級(jí)網(wǎng)守之間的連接、一級(jí)網(wǎng)守與頂級(jí)網(wǎng)守之間的連接以及不同運(yùn)營(yíng)者之間的連接由各運(yùn)營(yíng)者根據(jù)各自的情況自行確定其方式。當(dāng)運(yùn)營(yíng)者網(wǎng)絡(luò)規(guī)模不是很大時(shí),頂級(jí)網(wǎng)守的功能可由其中一個(gè)一級(jí)網(wǎng)守完成。
(1)頂級(jí)網(wǎng)守。頂級(jí)網(wǎng)守負(fù)責(zé)管理屬于該運(yùn)營(yíng)者的一級(jí)網(wǎng)守,主要負(fù)責(zé)一級(jí)網(wǎng)守之間的地址解析、不同運(yùn)營(yíng)者視頻會(huì)議網(wǎng)之間的互通和地址交換;也負(fù)責(zé)國(guó)際業(yè)務(wù)的管理,即國(guó)際呼叫的建立和拆除。
(2)一級(jí)網(wǎng)守。一級(jí)網(wǎng)守主要負(fù)責(zé)該一級(jí)網(wǎng)守所管轄的全部二級(jí)網(wǎng)守以及IP電話終端代理間的地址解析工作。在兩級(jí)網(wǎng)的情況下,二級(jí)網(wǎng)守的功能全部歸入一級(jí)網(wǎng)守。
(3)二級(jí)網(wǎng)守。二級(jí)網(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ū)域之間的呼叫建立。頂級(jí)網(wǎng)守與一級(jí)網(wǎng)守之間,或一級(jí)網(wǎng)守與二級(jí)網(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)之間完成注冊(cè)、接入控制、帶寬轉(zhuǎn)換、狀態(tài)信息傳送和切斷等操作。RAS信令信道與呼叫信令信道和H.245呼叫控制信道無(wú)關(guān)。RAS信令信道為非可靠信道,使用UDP方式傳送信令。
4.網(wǎng)守的系統(tǒng)設(shè)計(jì)[3]

1)標(biāo)準(zhǔn)性要求
網(wǎng)守設(shè)計(jì)應(yīng)符合ITU—T制訂的H.323協(xié)議和中國(guó)通信行業(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)營(yíng)商所需的計(jì)費(fèi)接口。根據(jù)H.323協(xié)議中關(guān)于網(wǎng)守功能的規(guī)定,可將網(wǎng)守劃分為五個(gè)功能模塊:
·呼叫控制和管理(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)要最大限度地適用于多種平臺(tái)環(huán)境,兼容性要好,一般要求能夠在Windows9x、Windows2000、WindowsXP、WindowsCE、UNIX等平臺(tái)下運(yùn)行。
4)使用維護(hù)要求要求
系統(tǒng)兼容性較強(qiáng),結(jié)構(gòu)簡(jiǎn)單,維護(hù)方便,升級(jí)容易,功能較強(qiáng),組網(wǎng)靈活,成本較低。
5.網(wǎng)守的實(shí)現(xiàn)方法[3]
網(wǎng)守實(shí)現(xiàn)基于面向?qū)ο蟮木幊谭椒?,用VC++語(yǔ)言作為開發(fā)系統(tǒng),采用Pwlib和OpenH323兩個(gè)SDK動(dòng)態(tài)連接類庫(kù)。
軟件實(shí)現(xiàn)平臺(tái)采用Pwlib和OpenH323兩個(gè)動(dòng)態(tài)連接類庫(kù)的原因在于:
(1)這兩個(gè)庫(kù)中封裝了大量的通信類庫(kù)以處理信令交互和報(bào)文收發(fā),整個(gè)平臺(tái)的設(shè)計(jì)遵循開放性原則(Mozilla Public License),能夠很好地支持H.323協(xié)議。
(2)類庫(kù)Pwlib是一個(gè)適度大小的類庫(kù),它的發(fā)展已有很長(zhǎng)一段時(shí)間了,其最初的主要目的是形成一種同時(shí)可在Microsoft Windows、UNIX、Linux等多種操作系統(tǒng)平臺(tái)上運(yùn)行的具有通用性的類庫(kù)系統(tǒng),然而它以后的發(fā)展卻遠(yuǎn)遠(yuǎn)超越了最初的目的。I/O的封裝類、多線程類、UNIX后臺(tái)郵件收發(fā)類、基于NT平臺(tái)的服務(wù)器類,幾乎所有的互聯(lián)網(wǎng)協(xié)議類均被逐漸地增加進(jìn)來(lái),同時(shí)遵循了開放性原則,因此Pwlib非常適合作為開發(fā)H.323系統(tǒng)的基礎(chǔ)類庫(kù)。
(3)類庫(kù)OpenH323基于類庫(kù)Pwlib之上,也是一種開放源代碼的、可供互操作的、具備完整特性的、適度大小的、面向整個(gè)H.323協(xié)議棧的基礎(chǔ)類庫(kù),是由澳大利亞一家叫EquivalencePtyLtd的公司發(fā)展起來(lái)的。在遵循開放性原則的前提下,所有對(duì)其感興趣的團(tuán)體、商業(yè)、個(gè)人均可免費(fèi)使用該類庫(kù)。
(4)開發(fā)人員可以通過(guò)互聯(lián)網(wǎng)在開放性原則下共同使用這兩個(gè)類庫(kù),相互交流,共同開發(fā),共同提高,這使得我們可以最大限度地降低開發(fā)成本和減少開發(fā)周期,也使得網(wǎng)守與類庫(kù)可實(shí)現(xiàn)同時(shí)升級(jí)。
網(wǎng)守的開發(fā)系統(tǒng)采用Visfial C十十6.0,數(shù)據(jù)庫(kù)使用微軟的Access。對(duì)于一個(gè)電信級(jí)會(huì)議系統(tǒng),由于用戶數(shù)很多,數(shù)據(jù)量很大,安全性要求很高,必須使用大型的數(shù)據(jù)庫(kù)來(lái)完成各種信息的存取,通常可使用SQLServer、Oracle、Sybase等。使用Microsoft的Access數(shù)據(jù)庫(kù),主要基于以下考慮:
(1)微軟在Windows和VisualStudios系列中對(duì)Access數(shù)據(jù)庫(kù)的支持,讓我們可以方便地操作Access數(shù)據(jù)庫(kù),并且它的效率也較高。
(2)面向小規(guī)模應(yīng)用所設(shè)計(jì)的網(wǎng)守,數(shù)據(jù)量相對(duì)還不是很大,Access數(shù)據(jù)庫(kù)完全滿足應(yīng)用要求。
(3)Access數(shù)據(jù)庫(kù)的整個(gè)數(shù)據(jù)存放在一個(gè)文件中,移動(dòng)和拷貝比較方便。
(4)采用適當(dāng)?shù)姆庋b之后,在以后需要升級(jí)到大規(guī)模的應(yīng)用數(shù)據(jù)庫(kù)時(shí),可以方便地從訪問(wèn)Access數(shù)據(jù)庫(kù)向訪問(wèn)SQL Server或者Oracle數(shù)據(jù)庫(kù)過(guò)渡轉(zhuǎn)變。當(dāng)然,如果使用ODBC數(shù)據(jù)庫(kù)引擎訪問(wèn)數(shù)據(jù)庫(kù),這種轉(zhuǎn)變將不再是問(wèn)題。
6.網(wǎng)守的實(shí)現(xiàn)[3]
1.模塊說(shuō)明
根據(jù)以上對(duì)網(wǎng)守功能結(jié)構(gòu)的分析,我們?cè)趯?shí)現(xiàn)時(shí)把網(wǎng)守分解為以下幾個(gè)主要的功能模塊:RAS協(xié)議過(guò)程實(shí)現(xiàn)模塊、呼叫信令路由模塊、端點(diǎn)注冊(cè)信息鏈表模塊、計(jì)費(fèi)模塊、H.245協(xié)議處理模塊等,如圖3所示。
RAS協(xié)議過(guò)程實(shí)現(xiàn)模塊用來(lái)處理RAS協(xié)議過(guò)程,它包括網(wǎng)守搜尋(采用多播機(jī)制完成)、端點(diǎn)登記、呼叫接納、呼叫退出、帶寬管理等過(guò)程,并且把相應(yīng)的端點(diǎn)信息傳送到端點(diǎn)注冊(cè)信息鏈表模塊。
呼叫信令路由模塊用來(lái)與終端之間進(jìn)行H.225.0呼叫信令過(guò)程,它包括呼叫建立、呼叫清除、Q.932消息處理等過(guò)程,并且支持呼叫轉(zhuǎn)移功能,既可以進(jìn)行一般的連接過(guò)程,又支持快速連接過(guò)程。建立呼叫路由之前首先要從端點(diǎn)注冊(cè)信息鏈表模塊中取得端點(diǎn)信息,在合法的情況下再去建立呼叫路由,然后再把呼叫信息傳送到當(dāng)前呼叫信息鏈表模塊中,直至呼叫清除時(shí)再次傳送信息給當(dāng)前呼叫信息鏈表模塊和計(jì)費(fèi)模塊去處理。
端點(diǎn)注冊(cè)信息鏈表模塊用來(lái)儲(chǔ)存注冊(cè)終端的詳細(xì)信息,包括別名、呼叫信令傳輸層地址、RAS端口地址、終端ID、終端類型、制造廠商代碼等;還提供端點(diǎn)的插入、刪除、更新、查詢、類型判斷、超時(shí)處理等大量的用戶接口功能。
當(dāng)前呼叫信息鏈表模塊用來(lái)儲(chǔ)存當(dāng)前正在進(jìn)行呼叫和通話的每一對(duì)呼叫的詳細(xì)信息,包括主叫和被叫ID、呼叫ID、呼叫引用值、分配帶寬、呼叫的發(fā)起時(shí)間等信息,同樣也包括呼叫的插入、刪除、更新、查詢等大量的用戶接口功能。
計(jì)費(fèi)模塊從呼叫信令路由模塊中取得呼叫信息。對(duì)每次的呼叫原始計(jì)費(fèi)信息進(jìn)行詳細(xì)記錄。這些信息至少包括呼叫起始時(shí)間、終止時(shí)間、主被叫E.164別名地址、主被叫IP地址、使用帶寬等信息。
2.網(wǎng)守主程序
一個(gè)處于運(yùn)行狀態(tài)中的網(wǎng)守,其各個(gè)功能模塊的瞬時(shí)運(yùn)行狀態(tài)都是隨機(jī)并發(fā)的,每個(gè)模塊內(nèi)部又要同時(shí)處理若干個(gè)端點(diǎn)的請(qǐng)求或連接。因此網(wǎng)守最適合于使用多線程的編程方法來(lái)實(shí)現(xiàn)。網(wǎng)守在實(shí)現(xiàn)時(shí),首先由主程序創(chuàng)建RAS處理線程、呼叫信令處理線程、多播接收處理線程這三個(gè)線程來(lái)啟動(dòng)相應(yīng)的功能處理模塊,然后在各線程內(nèi)部當(dāng)每接收一個(gè)請(qǐng)求或連接時(shí),該模塊便向系統(tǒng)申請(qǐng)所需的資源,然后在其內(nèi)部產(chǎn)生一個(gè)專門用來(lái)處理此次請(qǐng)求或連接的子線程,直至此次請(qǐng)求或連接結(jié)束時(shí),該子線程將自動(dòng)停止運(yùn)行,釋放所占用的系統(tǒng)資源以備系統(tǒng)重新分配使用。
網(wǎng)守的主程序完成的任務(wù)主要是生成網(wǎng)守的主控制臺(tái)界面窗口,實(shí)現(xiàn)網(wǎng)守運(yùn)行前的初始化過(guò)程,搜集所需的各項(xiàng)環(huán)境參數(shù),建立終端注冊(cè)表(Endpoint Table)、當(dāng)前呼叫信息表(Call Detail Table)等各功能塊運(yùn)行所必需的信息鏈表,啟動(dòng)網(wǎng)守各功能模塊的相應(yīng)線程,以及隨時(shí)根據(jù)系統(tǒng)管理員發(fā)出的控制臺(tái)命令對(duì)網(wǎng)守當(dāng)前工作狀態(tài)、運(yùn)行日志進(jìn)行查詢、關(guān)閉或結(jié)束網(wǎng)守等動(dòng)作。
網(wǎng)守的主控制臺(tái)界面主要包括四部分:菜單欄、圖形按鈕、網(wǎng)守所在主機(jī)IP地址顯示窗、網(wǎng)守工作信息顯示窗。菜單欄內(nèi)包含很多命令,用于啟動(dòng)或關(guān)閉網(wǎng)守,查看注冊(cè)終端表、當(dāng)前呼叫信息表、工作日志等:圖形按鈕是最常用的菜單命令的快捷按鈕。網(wǎng)守所在主機(jī)IP地址顯示窗是網(wǎng)守啟動(dòng)后顯示主機(jī)IP地址的窗口,該地址供各終端設(shè)置時(shí)查詢使用。網(wǎng)守工作信息顯示窗用于顯示網(wǎng)守的工作狀態(tài)以及各表項(xiàng)參數(shù)。
網(wǎng)守主程序的簡(jiǎn)要工作流程如圖4所示。
下面是網(wǎng)守主程序中啟動(dòng)各功能塊的關(guān)鍵語(yǔ)句以及簡(jiǎn)要說(shuō)明,它們完成了各數(shù)據(jù)鏈表的建立和各工作線程的啟動(dòng):
//建立注冊(cè)終端信息表
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é)議過(guò)程,它包括網(wǎng)守搜尋、端點(diǎn)登記等過(guò)程。RAS協(xié)議是端點(diǎn)和網(wǎng)守之間執(zhí)行的協(xié)議,基本上實(shí)現(xiàn)管理功能。
網(wǎng)守賦予了一個(gè)公認(rèn)TSAP標(biāo)識(shí)(對(duì)于IP網(wǎng)絡(luò)來(lái)說(shuō)就是TCP/UDP端口號(hào))作為RAS信道的TSAP標(biāo)識(shí),對(duì)于IP網(wǎng)絡(luò)來(lái)說(shuō)就是端口1719。一般的端點(diǎn)在啟動(dòng)時(shí)首先要向網(wǎng)守注冊(cè)登記,因此必須事先知道網(wǎng)守的RAS協(xié)議的傳輸層地址(網(wǎng)絡(luò)層地址+TSAP標(biāo)識(shí)),也稱為RAS地址。圖5是RAS消息處理線程的簡(jiǎn)要流程。
流程圖中處理RAS消息是該線程的核心部分,完成了RAS協(xié)議的主要功能,包括端點(diǎn)登記、呼叫接納和退出帶寬管理等功能。
1)網(wǎng)守搜索
網(wǎng)守搜索有兩種方式:人工方式和自動(dòng)方式。自動(dòng)方式是通過(guò)搜尋多播地址發(fā)送GRQ消息來(lái)實(shí)現(xiàn)的。人工方式通過(guò)對(duì)端點(diǎn)的配置來(lái)完成,將其歸屬的網(wǎng)守傳輸層地址預(yù)置入端點(diǎn)的配置文件或初始化文件中。
自動(dòng)方式允許端點(diǎn)和歸屬網(wǎng)守的關(guān)系可以隨時(shí)間而改變,當(dāng)原有網(wǎng)守出故障時(shí)可以自動(dòng)切換到替換網(wǎng)守上去,當(dāng)所屬網(wǎng)守改變后無(wú)需在每個(gè)終端上修改其配置文件。
在自動(dòng)方式中,端點(diǎn)采用搜尋多播地址發(fā)送GRQ消息,詢問(wèn)“誰(shuí)是我的網(wǎng)守”??梢杂幸粋€(gè)或多個(gè)網(wǎng)守回送GCF消息,表示“我可以是你的網(wǎng)守”,并在消息中告知其RAS地址。不愿意該端點(diǎn)在其上登記的網(wǎng)守則返回G對(duì)消息。如果有多個(gè)網(wǎng)守回送GCF消息,端點(diǎn)可在其中任選一個(gè)作為其歸屬網(wǎng)守。如果超時(shí)仍未收到網(wǎng)守的響應(yīng),端點(diǎn)可重發(fā)GRQ消息,但兩次相鄰GRQ之間的時(shí)間間隔不能小于5秒。如果仍未收到響應(yīng),則改用人工搜尋。當(dāng)然如果事先知道網(wǎng)守的IP地址,則可以直接使用人工搜尋。
端點(diǎn)發(fā)送的GRQ消息包含端點(diǎn)類型、端點(diǎn)自身的RAS地址、希望在其上登記的網(wǎng)守標(biāo)識(shí)等參數(shù)。若未含網(wǎng)守標(biāo)識(shí)參數(shù),就表示端點(diǎn)愿意在任何一個(gè)網(wǎng)守上登記。網(wǎng)守返回的GCF消息除了包含該網(wǎng)守標(biāo)識(shí)和RAS地址外,還可包含“替換網(wǎng)守”序列參數(shù)并指定優(yōu)先級(jí)順序。如果至該網(wǎng)守的請(qǐng)求未予響應(yīng)或被拒絕又未給出轉(zhuǎn)向信息,則可轉(zhuǎn)向替換網(wǎng)守重新提出請(qǐ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消息,消息中包含的兩個(gè)參數(shù)是端點(diǎn)別名及其呼叫信令傳輸層地址。也有可能RRQ消息中沒有包含別名,網(wǎng)守便賦予一個(gè),然后在隨后的RCF消息中發(fā)回給終端。別名可以是E.164地址或H.323標(biāo)識(shí),但為了和普通的固定電話保持一致,我們一般使用E.164地址。E.164地址由接入碼和電話號(hào)碼組成,接入碼可以用來(lái)標(biāo)識(shí)網(wǎng)關(guān)。H.323標(biāo)識(shí)為字符串形式,可以是用戶名、E—mail名或其他標(biāo)識(shí)名。一個(gè)端點(diǎn)可以有多個(gè)別名,所有的別名都在RRQ消息中發(fā)往網(wǎng)守,它們將被翻譯為同一個(gè)傳輸層地址。一般情況下,網(wǎng)守將返回RCF消息,告訴端點(diǎn)網(wǎng)守的呼叫信令傳輸層地址,并將端點(diǎn)別名和地址登記入端點(diǎn)注冊(cè)登記表中(End Point Table)。消息還包含一個(gè)“生存時(shí)間”參數(shù),單位是秒,指示本次登記信息的壽命。但是如果RRQ消息中的別名和已登記的某一端點(diǎn)相同而傳輸層地址不同,則回送RⅪ消息,并指明“重復(fù)登記”的拒絕原因。但是如果RRQ消息中的別名和傳輸層地址與已登記的某一端點(diǎn)都相同,則視為更新登記并修改表End Point Table中的相應(yīng)信息。
端點(diǎn)也可以改變其別名,這時(shí)應(yīng)先向網(wǎng)守發(fā)送URQ消息,網(wǎng)守回送UCF消息,以便端點(diǎn)在此用一新的別名登記注冊(cè)。同樣,網(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)守詢問(wèn)某一端點(diǎn)呼叫控制信道的傳輸層地址。當(dāng)端點(diǎn)或網(wǎng)守已知某一端點(diǎn)的別名,需要知道其呼叫信令信道傳輸層地址時(shí),可向相應(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)守的呼叫信令信道傳輸層地址,究竟傳送哪一個(gè)地址取決于呼叫信令是采用直接選路方式還是網(wǎng)守選路方式。
對(duì)于該端點(diǎn)未在其上登記的網(wǎng)守,如果是在RAS信道上收到LRQ消息,則須回送LRJ消息;如果是在搜尋多播地址上收到LRQ消息,則不需要作任何響應(yīng)。
4)呼叫接納和退出
呼叫的接納(ARQ/ACF)和呼叫退出是整個(gè)呼叫控制的第一對(duì)和最后一對(duì)消息,分別標(biāo)志呼叫的開始和結(jié)束。在ARQ中端點(diǎn)給出目的地別名(Alias)、呼叫引用值(Call Reference Value)、呼叫標(biāo)識(shí)(Call ID)、會(huì)議標(biāo)識(shí)(Conference ID)、應(yīng)答呼叫(Answer Call)等信息以及所需要的帶寬。網(wǎng)守根據(jù)具體情況可以接納也可以拒絕該呼叫。如接受該呼叫則回送ACF消息,其中包括的兩項(xiàng)主要參數(shù)是允許分配的帶寬和翻譯后所得的目的地呼叫信令傳輸層地址或者是網(wǎng)守本身的呼叫信令傳輸層地址。
不但主叫發(fā)起呼叫時(shí)需要請(qǐng)求網(wǎng)守接納,被叫接收呼叫建立信令時(shí)也要向網(wǎng)守發(fā)送ARQ請(qǐng)求,因此在ARQ中有一“應(yīng)答呼叫”(Answer Call)參數(shù),指示是否響應(yīng)呼叫。在ARQ消息中還有以下三個(gè)關(guān)于呼叫的標(biāo)識(shí)參數(shù)。
(1)呼叫引用值(Call Reference Value,CRV):用于標(biāo)識(shí)呼叫,僅在呼叫段上局部有效。例如,呼叫信令采用網(wǎng)守選路方式傳送,則“主叫終端一網(wǎng)守”和“網(wǎng)守一被叫終端”這兩個(gè)信令段的CRV一般是不相同的,網(wǎng)守負(fù)責(zé)建立兩個(gè)CRV之間的關(guān)聯(lián),以保證信令消息的正確轉(zhuǎn)送。.但是在同一信令段上,屬于同一呼叫的所有H.225.0消息,包括呼叫接納、呼叫建立、補(bǔ)充業(yè)務(wù)、帶寬改變、呼叫終結(jié)等消息的CRV均相同。
(2)呼叫標(biāo)識(shí)(Call ID):亦用于標(biāo)識(shí)呼叫,和CRV不同的是,它是全局有效參數(shù)。也就是說(shuō),從主叫端點(diǎn)到其網(wǎng)守、從主叫端點(diǎn)到被叫端點(diǎn)、從被叫端點(diǎn)到其網(wǎng)守,屬于同一呼叫的所有RAS消息和呼叫信令消息中的呼叫標(biāo)識(shí)均相同。呼叫標(biāo)識(shí)主要用于端到端的信息傳送,如將其封裝在Q.931消息的用戶一用戶信息中傳遞,可供補(bǔ)充業(yè)務(wù)使用。呼叫標(biāo)識(shí)由主叫端點(diǎn)賦值。
(3)會(huì)議標(biāo)識(shí)(Conference Identifier,CID):惟一標(biāo)識(shí)會(huì)議的全局號(hào)碼,是由會(huì)議發(fā)起端點(diǎn)創(chuàng)建的關(guān)聯(lián)該會(huì)議所屬所有呼叫的信令消息。如果一個(gè)會(huì)議包括若干個(gè)呼叫,則每個(gè)呼叫有其各自的呼叫標(biāo)識(shí),所有呼叫有一個(gè)共同的會(huì)議標(biāo)識(shí),凡屬該會(huì)議的所有H.225.0消息均采用該會(huì)議標(biāo)識(shí)。
CID由三部分組成:端點(diǎn)網(wǎng)絡(luò)地址、會(huì)議呼叫發(fā)起的絕對(duì)時(shí)間和所用的協(xié)議版本。CID由16個(gè)八位位組組成,如表1所示。其中:0為最低八位位組;N5:NO為48位LAN地址,如無(wú)此地址,則以隨機(jī)數(shù)填充;C1:CO為16比特計(jì)數(shù)器,每次會(huì)議加1;V為4比特的版本號(hào),位于CID字節(jié)6的低4比特;H1、A、M1:M0、L3:L0為1OOns時(shí)鐘計(jì)時(shí)值的最低60比特,其比特排列順序如表2所示。
表1 會(huì)議標(biāo)識(shí)
CID八位位組 | 15~10 | 9~8 | 7 | 6 | 5~4 | 3~O |
八位位組名 | N5:NO | C1:CO | H1 | AV | M1:Mo | L3:L0 |
表2 時(shí)鐘計(jì)時(shí)比特
H1 | A | M1 | M0 | L3 | L2 | L1 | L0 |
5952 | 5148 | 4732 | 310 |
5)帶寬管理
帶寬管理用來(lái)處理呼叫中途改變呼叫接納時(shí)確定的帶寬,改變請(qǐng)求可由網(wǎng)守或端點(diǎn)發(fā)起。如果網(wǎng)守主動(dòng)向端點(diǎn)發(fā)送BRQ,請(qǐng)求降低帶寬,端點(diǎn)必須服從,降低其總比特率且回送BCF;同時(shí)向?qū)Χ硕它c(diǎn)發(fā)送H.245控制消息,通知其信道帶寬已經(jīng)改變,然后由對(duì)端端點(diǎn)再通知其網(wǎng)守。如果是增加帶寬請(qǐng)求,端點(diǎn)根據(jù)需要決定是否增加比特率。
6)狀態(tài)和資源
狀態(tài)查詢主要用于網(wǎng)守詢問(wèn)終端的開機(jī)/關(guān)機(jī)狀態(tài);網(wǎng)關(guān)資源指示用于向網(wǎng)守通告該網(wǎng)關(guān)的可用資源。
4.呼叫處理線程
呼叫處理線程(Call Thread)完成的功能就是H.225.0呼叫信令消息過(guò)程?;镜暮艚行帕钕⑷∽杂赒.931和Q.932消息。
呼叫處理線程在主程序中被啟動(dòng)后便開始在呼叫信道上偵聽是否有端點(diǎn)發(fā)出呼叫。每當(dāng)一個(gè)新的端點(diǎn)發(fā)起一個(gè)有效呼叫并且選路方式設(shè)定為網(wǎng)守選路模式時(shí),呼叫處理線程便打開一個(gè)新的TCP套接字,利用此套接字與該端點(diǎn)建立連接,然后建立一個(gè)真正處理該呼叫信令消息的線程(Signalling Thread)去處理此次呼叫,呼叫處理線程則接著在原呼叫信道上偵聽是否有新的端點(diǎn)發(fā)出呼叫。圖6就是呼叫處理線程簡(jiǎn)要流程。

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