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