1、RAS
原理:
RAS是端點和網(wǎng)守之間執(zhí)行的協(xié)議,基本上是管理功能,它包含以下幾個過程:
1)、 網(wǎng)守搜尋
用于端點搜尋其歸屬網(wǎng)守,采用多播機(jī)制完成。其后所有RAS消息均限定在端點和其歸屬網(wǎng)守之間傳送。
2)、 端點登記:用于端點向網(wǎng)守登記其自身信息,主要是別名和呼叫控制信道運(yùn)輸層地址。包括去除登記過程。
3)、 端點定位:用于端點或網(wǎng)守向相應(yīng)的網(wǎng)守詢問某一端點的呼叫控制信道的運(yùn)輸層地址。
4)、 呼叫接納:起呼叫時的步操作,詢問網(wǎng)守是否允許該呼叫發(fā)起。
5)、 呼叫退出:呼叫結(jié)束后通知網(wǎng)守,該端點已經(jīng)退出呼叫。
6)、 帶寬管理:支持端點在呼叫過程中提出帶寬改變要求,由網(wǎng)守做決定。
7)、 狀態(tài)查詢:主要是用于網(wǎng)守詢問終端的開機(jī)/關(guān)機(jī)狀態(tài)。
8)、 網(wǎng)關(guān)資源指示:向網(wǎng)守通告該網(wǎng)關(guān)的可用資源。
RAS消息如表:
過程 | 消息 | 消息名 |
網(wǎng)守搜尋 | GRQ | 網(wǎng)守搜尋請求 |
GCF | 網(wǎng)守搜尋證實 |
GRJ | 網(wǎng)守搜尋拒絕 |
端點登記 | RRQ | 端點登記請求 |
RCF | 端點登記證實 |
RRJ | 端點登記拒絕 |
URQ | 去除登記請求 |
URJ | 去除登記拒絕 |
UCF | 去除登記證實 |
端點定位 | LRQ | 端點定位請求 |
LCF | 端點定位證實 |
LRJ | 端點定位拒絕 |
呼叫接納 | ARQ | 呼叫接納請求 |
ACF | 呼叫接納證實 |
ARJ | 呼叫接納拒絕 |
呼叫退出 | DRQ | 呼叫退出請求 |
DCF | 呼叫退出證實 |
DRJ | 呼叫退出拒絕 |
帶寬管理 | BRQ | 帶寬管理請求 |
BCF | 帶寬管理證實 |
BRJ | 帶寬管理拒絕 |
狀態(tài)查詢 | IRQ | 信息請求 |
IRR | 信息證實 |
網(wǎng)關(guān)資源指示 | RAI | 網(wǎng)關(guān)資源可用性指示 |
RAC | 網(wǎng)關(guān)資源可用性證實 |
消息過程都比較簡單,一般是一端發(fā)出一個消息,另一方在收到消息后,如果需要響應(yīng),則發(fā)送一個響應(yīng)消息完成一個過程??梢詤⒖枷聢D中的登記和去除登記消息。
RAS消息在呼叫開始和結(jié)束的時間都起著非常重要的作用,在呼叫開始時,向網(wǎng)守發(fā)送ARQ,當(dāng)網(wǎng)守確認(rèn)該呼叫時,將會返回包含端點的H.225信道的TCP地址(如果是網(wǎng)守選路方式,返回網(wǎng)守的H.225信道地址)。終端便可以根據(jù)該地址連接呼叫,而在呼叫結(jié)束的時候,在H.225和H245信道關(guān)閉后,也會發(fā)送DRQ/DCF消息以釋放占用的帶寬等資源。
在通話過程中,可能會有帶寬的變化,這就需要用到BRQ/BCF消息,至于其如何與H245消息結(jié)合起來操作的:
具體的實現(xiàn):
1)、 創(chuàng)建RAS偵聽(處理)線程
在網(wǎng)守初始化函數(shù)中,通過調(diào)用H323GatekeeperServer:AddListener函數(shù)創(chuàng)建RAS偵聽線程,便可以開始處理RAS消息了,而普通終端的UDP線程可以在設(shè)置網(wǎng)守時(H323EndPoint::SetGatekeeper函數(shù))才建立,也可以啟動時即建立(人工創(chuàng)建)。
2)、 處理RAS的PDU的過程
處理RAS的函數(shù),對應(yīng)不同的類(H323gatekeeper和H323GatekeeperListener),調(diào)用的處理函數(shù)。在應(yīng)用程序中,當(dāng)調(diào)用AddListener時,通過調(diào)用H.225_RAS::StartRasChnnel()函數(shù)創(chuàng)建了后臺線程——以HandleRasChannel()函數(shù)為主體,而在HandleRasChannel()函數(shù)中,有一個不斷循環(huán),從RAS信道中讀出數(shù)據(jù),交由H.225_RAS::HandleRasPDU()函數(shù)處理,而后者H.225_RAS::HandleRasPDU()函數(shù)則是根據(jù)接收到的PDU的類型,轉(zhuǎn)給不同的處理函數(shù)。
3)、 如何在應(yīng)用程序中調(diào)用
在應(yīng)用程序中如果只是實現(xiàn)呼叫或者等待呼叫時,其實根本不需要直接與RAS相關(guān)處理類交互。發(fā)起呼叫調(diào)用終端類的MakeCall過程中,協(xié)議棧類庫將呼叫涉及到的過程和函數(shù)調(diào)用已經(jīng)封裝的相當(dāng)完善,無需干涉。當(dāng)然,前提是在應(yīng)用程序開始的時候要先創(chuàng)建RAS偵聽線程。等待呼叫則是只需要保證應(yīng)用程序已經(jīng)創(chuàng)建RAS偵聽線程即可。在接收到H.225的Setup消息后,應(yīng)用程序自然會調(diào)用RAS線程的相關(guān)處理函數(shù),向網(wǎng)守發(fā)送ARQ消息。
2、H.245控制信令
1).能力交換過程
原理
這是H.225呼叫 建立成功后首先要執(zhí)行的一個過程,他使通行雙方了解對方接受和發(fā)送信號的能力。每個邏輯信道限定傳送某種媒體信息,采用一定的編碼算法,具有一定的帶寬,因此在信道建立之前,收發(fā)雙方必須就這些參數(shù)進(jìn)行協(xié)商,確定雙方可接受的參數(shù)范圍,這就是H.245的能力交換過程。
H.245協(xié)議采用接收方控制的原則建立邏輯信道,發(fā)送方只能在接收方規(guī)定的范圍內(nèi)確定信道特性參數(shù)。能力交換的主要功能就是通過適當(dāng)?shù)南⑾驅(qū)Ψ酵ǜ姹径说慕邮苣芰?。該消息也允許通告發(fā)送能力,但其作用只是表示本端的一種選擇意向,希望對方在確定其接收能力時予以考慮。當(dāng)獲得對方的接受能力后,本端就在此范圍內(nèi)確定其發(fā)送方式,啟動邏輯信道打開過程。
能力集的主要參數(shù)是接受能力,對方(發(fā)送方)必須知道本端的接受能力才能建立邏輯信道。如果能力集不含接受能力,表示本端只能發(fā)送不能接受。發(fā)送能力的作用是供對方(接收方)使用,對方可以在本端給出的發(fā)送能力范圍內(nèi)提出它所希望的發(fā)送方式。如果本端不希望對方干預(yù)自己的發(fā)送方式,則可以在能力集中不提供發(fā)送能力,這并不表示它不具備發(fā)送能力。
描述終端接受能力或發(fā)送能力的終端能力集消息不但給出終端可以支持的各種媒體信號的操作模式而且給出終端同時處理多種信號可能的組合操作模式。消息中包含一個能力表,該表列出了終端所允許的操作模式,每種模式對應(yīng)能力表中的一個表項,賦予相應(yīng)的序號。若干個能力號構(gòu)成了可選能力集(altemative capability set)數(shù)據(jù)結(jié)構(gòu),表示該終端可以按其中一種方式工作。實際上能力集描述了終端的一個媒體信道的能力。
若干個可選能力又構(gòu)成一個“同時能力(Simultaneous Capabilities)”數(shù)據(jù)結(jié)構(gòu),表示該終端可以同時使用一組能力進(jìn)行工作。最后若干同時能力又可構(gòu)成一個“能力描述語集”(capability descriptors)數(shù)據(jù)結(jié)構(gòu),他包括一組能力描述語,每個描述語由一個同時能力和一個能力描述語序號組成。該數(shù)據(jù)結(jié)構(gòu)給出了終端的總體能力。之所以要定義多個描述語,是因為終端選用多種組合方式工作,在不同的組合方式下,各個信道的允許操作模式可以不一樣,以滿足所需的要求。
下圖終端能力集消息的嵌套式數(shù)據(jù)結(jié)構(gòu),其中,序號有有證實消息返回,發(fā)送端數(shù)據(jù)可以確定與該證實消息匹配的終端能力集消息。協(xié)議標(biāo)識指明H.245版本號,復(fù)用能力主要指示該終端的多點通信能力,用于通信。能力表每個表項的內(nèi)容不只是簡單的編譯碼標(biāo)準(zhǔn)還包含許多相關(guān)的參數(shù)。
終端能力集消息至少包含一個能力描述語。在通信過程中,允許終端發(fā)送新增或修改描述語,以動態(tài)增加或刪除終端能力。
2).主從確定過程
主從確定過程用于避免信令過程中的沖突現(xiàn)象。主要應(yīng)用于會議通信中的MC仲裁。由于一個會議呼叫只能有一個MC,如果兩個參會的H.323實體都含有MC,則必須確定其中一個是主MC。同樣的過程也使用與雙向信道的建立時主從終端的確定。在建立信道連接之前必須首先解決主從關(guān)系。
每個H.323端點應(yīng)該既能工作在主機(jī)模式也能工作在從機(jī)模式。在執(zhí)行過程時,每個端點需要生成一個隨機(jī)數(shù)稱為狀態(tài)確定號,其取值范圍為0~2(24)-1,每個端點對于呼叫只能確定一個隨機(jī)數(shù)。為了確定主從消息,任一個端點可以向?qū)Ψ桨l(fā)送一個主從確定消息,該消息包括兩個參數(shù):狀態(tài)確定號和終端類型。
對方收到確定消息后,執(zhí)行確定計算過程。確定的規(guī)則:首先比較兩個端點的終端類型值,大者為主機(jī):如果相同,在比較兩個端點的狀態(tài)確定號,大者為主機(jī)。如果仍相同,則判斷為不可確定,則回送拒絕消息。再次啟動主從確定過程。
如果兩個實體為不同類型有MC功能的高于無MC功能的實體;若沒有MC,則網(wǎng)關(guān)高于終端;若都有MC,則優(yōu)先級別自高到低順序為:MCU、網(wǎng)守、網(wǎng)關(guān)、終端。
3).邏輯信道信令過程
原理
邏輯信道的信令過程包括邏輯信道的打開和關(guān)閉。其設(shè)計思路是首先建立連接,確定接收方能夠接收并已準(zhǔn)備好接受由對方發(fā)送來的數(shù)據(jù)后,才開始媒體數(shù)據(jù)的傳輸,在接納新的邏輯信道時,接受方必須確保原有邏輯信道的通信不受影響。
該協(xié)議過程還包括雙向信道的打開。為了防止雙方終端同時打開信道,引起沖突,需將其中一方定義為主終端,另一方定義為從終端。
邏輯信道的關(guān)閉一般也是有發(fā)送方發(fā)起。
(1)單向信道打開過程
信道打開恒由發(fā)送方啟動。它向接受方發(fā)送打開邏輯信道消息,消息包含前向邏輯信道號和信道參數(shù)。其中,信道號必須發(fā)送方賦值,證實消息返回此值,以和請求消息匹配。信道參數(shù)包括數(shù)據(jù)類型、媒體信息是否需要確保傳送、是否執(zhí)行抑制、目的地終端標(biāo)記等。如果該信道用來傳送RTP封裝的實時媒體消息,則信道參數(shù)還應(yīng)該包括會話標(biāo)記、關(guān)聯(lián)會話標(biāo)識、媒體信道、媒體控制信道。這樣,經(jīng)過此過程,兩端點間建立前向RTP信道和雙向RTCP信道。
(2)雙向信道打開過程
雙向信道打開過程和單向信道基本相同,其中主要的差別在與消息中還包含反向信道參數(shù)。因此一次消息交換同時建立兩個方向的信道。此外,請求方接受到對方的證實消息后,還需回發(fā)一個確定消息,表示反向信道的建立成功,可以開始傳送信號。如果對方不能支持本端要求的反向信道,則回送拒絕消息,然后立即啟動雙向信道打開過程,其反向信道參數(shù)等于本端發(fā)送的前向信道參數(shù),其前向信道參數(shù)取為雙方都能支持的參數(shù)值。
4).呼叫釋放過程
原理
通信的任何一方都可發(fā)起呼叫釋放。為簡單說明,假設(shè)呼叫信令和H.245控制信令都采用直接選路方式,其釋放步驟為:
(1). 端點1停止在邏輯信道上傳送信息,關(guān)閉所有邏輯信道。然后在H.245控制信道上向端點2發(fā)送結(jié)束會話的命令消息,告訴對方要結(jié)束該呼叫,其后停止發(fā)送H.245消息。
(2). 端點2收到上述消息后,關(guān)閉所有邏輯信道,向端點1回送結(jié)束會話命令消息。至此,H.245控制信道關(guān)閉。
(3). 如果呼叫信令信道尚未關(guān)閉,端點1向端點2發(fā)送H.225。Release Complete消息關(guān)閉此信道。至此,呼叫已釋放。
(4). 端點1和端點2分別向其網(wǎng)守發(fā)送RAS消息DRQ,告之該呼叫占用的帶寬資源可予以釋放。
(5). 網(wǎng)守向端點回送DCF。其中,端點將不在向網(wǎng)守發(fā)送未經(jīng)過請求的IRR消息。至此,完成全部釋放過程。
如果是會議呼叫,則必須首先用H.245“退出會議”消息明確終止會議,然后各個端點等待MC自動呼叫釋放過程。
3、H.225呼叫信令
原理:H.225基本呼叫控制消息取自于Q.931和Q.932消息。但是由于其本身不承擔(dān)鏈接控制的任務(wù),所以許多消息不在H.225中出現(xiàn)。
雖然H.225呼叫信令模型取自于Q.931,但不同之處在于,Q.931用于ISDNUNI,兩端分別是用戶和網(wǎng)絡(luò),一般是不對稱的應(yīng)用,而在H323系統(tǒng)中,呼叫是對稱應(yīng)用的。
H323端點之間建立通信關(guān)系一般要經(jīng)過三個過程:
1):呼叫接收控制。
執(zhí)行RAS協(xié)議(H.225),控制信道為RAS信道(不可靠信道),網(wǎng)守同意接納后在端點和網(wǎng)守或端點之間建立起呼叫信令信道,進(jìn)入呼叫建立。
2):呼叫控制
執(zhí)行呼叫信令協(xié)議(H.225),控制信令為信令信道(可靠信道),呼叫建立成功后,在端點之間建立H245控制信道。
3)連接控制
執(zhí)行H245控制協(xié)議,控制信道為媒體控制信道,簡稱控制信道(可靠信道),在端點之間建立起具有一定帶寬的一個或多個邏輯信道,實時通行的邏輯信道都是不可靠。
推薦文章:
標(biāo)簽: