視頻會(huì)議協(xié)議相關(guān)

當(dāng)前位置:首頁(yè)>視頻會(huì)議技術(shù)文章>視頻會(huì)議協(xié)議相關(guān)

OpenH323實(shí)現(xiàn)流程

1、RAS

原理:

RAS是端點(diǎn)和網(wǎng)守之間執(zhí)行的協(xié)議,基本上是管理功能,它包含以下幾個(gè)過程:

1)、 網(wǎng)守搜尋

用于端點(diǎn)搜尋其歸屬網(wǎng)守,采用多播機(jī)制完成。其后所有RAS消息均限定在端點(diǎn)和其歸屬網(wǎng)守之間傳送。

2)、 端點(diǎn)登記:用于端點(diǎn)向網(wǎng)守登記其自身信息,主要是別名和呼叫控制信道運(yùn)輸層地址。包括去除登記過程。

3)、 端點(diǎn)定位:用于端點(diǎn)或網(wǎng)守向相應(yīng)的網(wǎng)守詢問某一端點(diǎn)的呼叫控制信道的運(yùn)輸層地址。

4)、 呼叫接納:起呼叫時(shí)的第一步操作,詢問網(wǎng)守是否允許該呼叫發(fā)起。

5)、 呼叫退出:呼叫結(jié)束后通知網(wǎng)守,該端點(diǎn)已經(jīng)退出呼叫。

6)、 帶寬管理:支持端點(diǎn)在呼叫過程中提出帶寬改變要求,由網(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)守搜尋請(qǐng)求

GCF

網(wǎng)守搜尋證實(shí)

GRJ

網(wǎng)守搜尋拒絕

端點(diǎn)登記

RRQ

端點(diǎn)登記請(qǐng)求

RCF

端點(diǎn)登記證實(shí)

RRJ

端點(diǎn)登記拒絕

URQ

去除登記請(qǐng)求

URJ

去除登記拒絕

UCF

去除登記證實(shí)

端點(diǎn)定位

LRQ

端點(diǎn)定位請(qǐng)求

LCF

端點(diǎn)定位證實(shí)

LRJ

端點(diǎn)定位拒絕

呼叫接納

ARQ

呼叫接納請(qǐng)求

ACF

呼叫接納證實(shí)

ARJ

呼叫接納拒絕

呼叫退出

DRQ

呼叫退出請(qǐng)求

DCF

呼叫退出證實(shí)

DRJ

呼叫退出拒絕

帶寬管理

BRQ

帶寬管理請(qǐng)求

BCF

帶寬管理證實(shí)

BRJ

帶寬管理拒絕

狀態(tài)查詢

IRQ

信息請(qǐng)求

IRR

信息證實(shí)

網(wǎng)關(guān)資源指示

RAI

網(wǎng)關(guān)資源可用性指示

RAC

網(wǎng)關(guān)資源可用性證實(shí)

 

消息過程都比較簡(jiǎn)單,一般是一端發(fā)出一個(gè)消息,另一方在收到消息后,如果需要響應(yīng),則發(fā)送一個(gè)響應(yīng)消息完成一個(gè)過程。可以參考下圖中的登記和去除登記消息。

RAS消息在呼叫開始和結(jié)束的時(shí)間都起著非常重要的作用,在呼叫開始時(shí),向網(wǎng)守發(fā)送ARQ,當(dāng)網(wǎng)守確認(rèn)該呼叫時(shí),將會(huì)返回包含端點(diǎn)的H.225信道的TCP地址(如果是網(wǎng)守選路方式,返回網(wǎng)守的H.225信道地址)。終端便可以根據(jù)該地址連接呼叫,而在呼叫結(jié)束的時(shí)候,在H.225和H245信道關(guān)閉后,也會(huì)發(fā)送DRQ/DCF消息以釋放占用的帶寬等資源。

在通話過程中,可能會(huì)有帶寬的變化,這就需要用到BRQ/BCF消息,至于其如何與H245消息結(jié)合起來操作的:                       

具體的實(shí)現(xiàn):

1)、 創(chuàng)建RAS偵聽(處理)線程

在網(wǎng)守初始化函數(shù)中,通過調(diào)用H323GatekeeperServer:AddListener函數(shù)創(chuàng)建RAS偵聽線程,便可以開始處理RAS消息了,而普通終端的UDP線程可以在設(shè)置網(wǎng)守時(shí)(H323EndPoint::SetGatekeeper函數(shù))才建立,也可以啟動(dòng)時(shí)即建立(人工創(chuàng)建)。

2)、 處理RAS的PDU的過程

處理RAS的函數(shù),對(duì)應(yīng)不同的類(H323gatekeeper和H323GatekeeperListener),調(diào)用的處理函數(shù)。在應(yīng)用程序中,當(dāng)調(diào)用AddListener時(shí),通過調(diào)用H.225_RAS::StartRasChnnel()函數(shù)創(chuàng)建了后臺(tái)線程——以HandleRasChannel()函數(shù)為主體,而在HandleRasChannel()函數(shù)中,有一個(gè)不斷循環(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)用程序中如果只是實(shí)現(xiàn)呼叫或者等待呼叫時(shí),其實(shí)根本不需要直接與RAS相關(guān)處理類交互。發(fā)起呼叫調(diào)用終端類的MakeCall過程中,協(xié)議棧類庫(kù)將呼叫涉及到的過程和函數(shù)調(diào)用已經(jīng)封裝的相當(dāng)完善,無需開發(fā)者干涉。當(dāng)然,前提是在應(yīng)用程序開始的時(shí)候要先創(chuàng)建RAS偵聽線程。等待呼叫則是只需要保證應(yīng)用程序已經(jīng)創(chuàng)建RAS偵聽線程即可。在接收到H.225的Setup消息后,應(yīng)用程序自然會(huì)調(diào)用RAS線程的相關(guān)處理函數(shù),向網(wǎng)守發(fā)送ARQ消息。

 

2、H.245控制信令

1).能力交換過程

原理

這是H.225呼叫 建立成功后首先要執(zhí)行的一個(gè)過程,他使通行雙方了解對(duì)方接受和發(fā)送信號(hào)的能力。每個(gè)邏輯信道限定傳送某種媒體信息,采用一定的編碼算法,具有一定的帶寬,因此在信道建立之前,收發(fā)雙方必須就這些參數(shù)進(jìn)行協(xié)商,確定雙方可接受的參數(shù)范圍,這就是H.245的能力交換過程。

H.245協(xié)議采用接收方控制的原則建立邏輯信道,發(fā)送方只能在接收方規(guī)定的范圍內(nèi)確定信道特性參數(shù)。能力交換的主要功能就是通過適當(dāng)?shù)南⑾驅(qū)Ψ酵ǜ姹径说慕邮苣芰?。該消息也允許通告發(fā)送能力,但其作用只是表示本端的一種選擇意向,希望對(duì)方在確定其接收能力時(shí)予以考慮。當(dāng)獲得對(duì)方的接受能力后,本端就在此范圍內(nèi)確定其發(fā)送方式,啟動(dòng)邏輯信道打開過程。

能力集的主要參數(shù)是接受能力,對(duì)方(發(fā)送方)必須知道本端的接受能力才能建立邏輯信道。如果能力集不含接受能力,表示本端只能發(fā)送不能接受。發(fā)送能力的作用是供對(duì)方(接收方)使用,對(duì)方可以在本端給出的發(fā)送能力范圍內(nèi)提出它所希望的發(fā)送方式。如果本端不希望對(duì)方干預(yù)自己的發(fā)送方式,則可以在能力集中不提供發(fā)送能力,這并不表示它不具備發(fā)送能力。

描述終端接受能力或發(fā)送能力的終端能力集消息不但給出終端可以支持的各種媒體信號(hào)的操作模式而且給出終端同時(shí)處理多種信號(hào)可能的組合操作模式。消息中包含一個(gè)能力表,該表列出了終端所允許的操作模式,每種模式對(duì)應(yīng)能力表中的一個(gè)表項(xiàng),賦予相應(yīng)的序號(hào)。若干個(gè)能力號(hào)構(gòu)成了可選能力集(altemative capability set)數(shù)據(jù)結(jié)構(gòu),表示該終端可以按其中一種方式工作。實(shí)際上能力集描述了終端的一個(gè)媒體信道的能力。

若干個(gè)可選能力又構(gòu)成一個(gè)“同時(shí)能力(Simultaneous Capabilities)”數(shù)據(jù)結(jié)構(gòu),表示該視頻會(huì)議終端可以同時(shí)使用一組能力進(jìn)行工作。最后若干同時(shí)能力又可構(gòu)成一個(gè)“能力描述語集”(capability descriptors)數(shù)據(jù)結(jié)構(gòu),他包括一組能力描述語,每個(gè)描述語由一個(gè)同時(shí)能力和一個(gè)能力描述語序號(hào)組成。該數(shù)據(jù)結(jié)構(gòu)給出了終端的總體能力。之所以要定義多個(gè)描述語,是因?yàn)榻K端選用多種組合方式工作,在不同的組合方式下,各個(gè)信道的允許操作模式可以不一樣,以滿足所需的要求。

下圖終端能力集消息的嵌套式數(shù)據(jù)結(jié)構(gòu),其中,序號(hào)有有證實(shí)消息返回,發(fā)送端數(shù)據(jù)可以確定與該證實(shí)消息匹配的終端能力集消息。協(xié)議標(biāo)識(shí)指明H.245版本號(hào),復(fù)用能力主要指示該終端的多點(diǎn)通信能力,用于視頻會(huì)議通信。能力表每個(gè)表項(xiàng)的內(nèi)容不只是簡(jiǎn)單的編譯碼標(biāo)準(zhǔn)還包含許多相關(guān)的參數(shù)。

 

終端能力集消息至少包含一個(gè)能力描述語。在通信過程中,允許終端發(fā)送新增或修改描述語,以動(dòng)態(tài)增加或刪除終端能力。

 

2).主從確定過程

主從確定過程用于避免信令過程中的沖突現(xiàn)象。主要應(yīng)用于會(huì)議通信中的MC仲裁。由于一個(gè)會(huì)議呼叫只能有一個(gè)MC,如果兩個(gè)參會(huì)的H.323實(shí)體都含有MC,則必須確定其中一個(gè)是主MC。同樣的過程也使用與雙向信道的建立時(shí)主從終端的確定。在建立信道連接之前必須首先解決主從關(guān)系。

每個(gè)H.323端點(diǎn)應(yīng)該既能工作在主機(jī)模式也能工作在從機(jī)模式。在執(zhí)行過程時(shí),每個(gè)端點(diǎn)需要生成一個(gè)隨機(jī)數(shù)稱為狀態(tài)確定號(hào),其取值范圍為0~2(24)-1,每個(gè)端點(diǎn)對(duì)于呼叫只能確定一個(gè)隨機(jī)數(shù)。為了確定主從消息,任一個(gè)端點(diǎn)可以向?qū)Ψ桨l(fā)送一個(gè)主從確定消息,該消息包括兩個(gè)參數(shù):狀態(tài)確定號(hào)和終端類型。

對(duì)方收到確定消息后,執(zhí)行確定計(jì)算過程。確定的規(guī)則:首先比較兩個(gè)端點(diǎn)的終端類型值,大者為主機(jī):如果相同,在比較兩個(gè)端點(diǎn)的狀態(tài)確定號(hào),大者為主機(jī)。如果仍相同,則判斷為不可確定,則回送拒絕消息。再次啟動(dòng)主從確定過程。

如果兩個(gè)實(shí)體為不同類型有MC功能的高于無MC功能的實(shí)體;若沒有MC,則網(wǎng)關(guān)高于終端;若都有MC,則優(yōu)先級(jí)別自高到低順序?yàn)椋篗CU、網(wǎng)守、網(wǎng)關(guān)、終端。

 

 

3).邏輯信道信令過程

原理

邏輯信道的信令過程包括邏輯信道的打開和關(guān)閉。其設(shè)計(jì)思路是首先建立連接,確定接收方能夠接收并已準(zhǔn)備好接受由對(duì)方發(fā)送來的數(shù)據(jù)后,才開始媒體數(shù)據(jù)的傳輸,在接納新的邏輯信道時(shí),接受方必須確保原有邏輯信道的通信不受影響。

該協(xié)議過程還包括雙向信道的打開。為了防止雙方終端同時(shí)打開信道,引起沖突,需將其中一方定義為主終端,另一方定義為從終端。

 

邏輯信道的關(guān)閉一般也是有發(fā)送方發(fā)起。

(1)單向信道打開過程

信道打開恒由發(fā)送方啟動(dòng)。它向接受方發(fā)送打開邏輯信道消息,消息包含前向邏輯信道號(hào)和信道參數(shù)。其中,信道號(hào)必須發(fā)送方賦值,證實(shí)消息返回此值,以和請(qǐng)求消息匹配。信道參數(shù)包括數(shù)據(jù)類型、媒體信息是否需要確保傳送、是否執(zhí)行靜音抑制、目的地終端標(biāo)記等。如果該信道用來傳送RTP封裝的實(shí)時(shí)媒體消息,則信道參數(shù)還應(yīng)該包括會(huì)話標(biāo)記、關(guān)聯(lián)會(huì)話標(biāo)識(shí)、媒體信道、媒體控制信道。這樣,經(jīng)過此過程,兩端點(diǎn)間建立前向RTP信道和雙向RTCP信道。

(2)雙向信道打開過程

雙向信道打開過程和單向信道基本相同,其中主要的差別在與消息中還包含反向信道參數(shù)。因此一次消息交換同時(shí)建立兩個(gè)方向的信道。此外,請(qǐng)求方接受到對(duì)方的證實(shí)消息后,還需回發(fā)一個(gè)確定消息,表示反向信道的建立成功,可以開始傳送信號(hào)。如果對(duì)方不能支持本端要求的反向信道,則回送拒絕消息,然后立即啟動(dòng)雙向信道打開過程,其反向信道參數(shù)等于本端發(fā)送的前向信道參數(shù),其前向信道參數(shù)取為雙方都能支持的參數(shù)值。

 

4).呼叫釋放過程

原理

通信的任何一方都可發(fā)起呼叫釋放。為簡(jiǎn)單說明,假設(shè)呼叫信令和H.245控制信令都采用直接選路方式,其釋放步驟為:

(1).   端點(diǎn)1停止在邏輯信道上傳送信息,關(guān)閉所有邏輯信道。然后在H.245控制信道上向端點(diǎn)2發(fā)送結(jié)束會(huì)話的命令消息,告訴對(duì)方要結(jié)束該呼叫,其后停止發(fā)送H.245消息。

(2).   端點(diǎn)2收到上述消息后,關(guān)閉所有邏輯信道,向端點(diǎn)1回送結(jié)束會(huì)話命令消息。至此,H.245控制信道關(guān)閉。

(3).   如果呼叫信令信道尚未關(guān)閉,端點(diǎn)1向端點(diǎn)2發(fā)送H.225。Release Complete消息關(guān)閉此信道。至此,呼叫已釋放。

(4).   端點(diǎn)1和端點(diǎn)2分別向其網(wǎng)守發(fā)送RAS消息DRQ,告之該呼叫占用的帶寬資源可予以釋放。

(5).   網(wǎng)守向端點(diǎn)回送DCF。其中,端點(diǎn)將不在向網(wǎng)守發(fā)送未經(jīng)過請(qǐng)求的IRR消息。至此,完成全部釋放過程。

如果是會(huì)議呼叫,則必須首先用H.245“退出會(huì)議”消息明確終止會(huì)議,然后各個(gè)端點(diǎn)等待MC自動(dòng)呼叫釋放過程。

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ò),一般是不對(duì)稱的應(yīng)用,而在H323系統(tǒng)中,呼叫是對(duì)稱應(yīng)用的。

H323端點(diǎn)之間建立通信關(guān)系一般要經(jīng)過三個(gè)過程:

1):呼叫接收控制。

執(zhí)行RAS協(xié)議(H.225),控制信道為RAS信道(不可靠信道),網(wǎng)守同意接納后在端點(diǎn)和網(wǎng)守或端點(diǎn)之間建立起呼叫信令信道,進(jìn)入呼叫建立。

2):呼叫控制

執(zhí)行呼叫信令協(xié)議(H.225),控制信令為信令信道(可靠信道),呼叫建立成功后,在端點(diǎn)之間建立H245控制信道。

3)連接控制

執(zhí)行H245控制協(xié)議,控制信道為媒體控制信道,簡(jiǎn)稱控制信道(可靠信道),在端點(diǎn)之間建立起具有一定帶寬的一個(gè)或多個(gè)邏輯信道,實(shí)時(shí)通行的邏輯信道都是不可靠。


在線咨詢

點(diǎn)擊這里給我發(fā)消息 售前咨詢專員

點(diǎn)擊這里給我發(fā)消息 售后服務(wù)專員

在線咨詢

銷售電話

24小時(shí)免費(fèi)咨詢

0771-5523920

銷售電話

微信掃一掃

微信聯(lián)系
返回頂部