欧美,精品,综合,亚洲,好吊妞视频免新费观看,免费观看三级吃奶,一级a片女人自慰免费看

 首頁 > 新聞 > 專家觀點 >

利用基于原語的H.323協(xié)議棧開發(fā)VoIP系統(tǒng)

2013-11-18 17:11:21   作者:   來源:EET電子工程專輯   評論:0  點擊:


    “TRANSFER.request”原語有四個字段,用ASN.1格式填充。這四個字段是PROTOID、MUXCAP、CAPTABLE 和 CAPDESCRIPTORS。在此,我們集中討論CAPTABLE參數(shù),它是特定終端支持的所有編解碼器的列表。在此例中,填充的CAPTABLE參數(shù)表示以下終端能力:單一G.711 A律64k編解碼器,能夠接收的分組長達180ms音頻數(shù)據(jù)。下面的偽碼是初始化一個ASN.1結(jié)構(gòu)元素的基本步驟。

    CAPTABLE參數(shù)實際上是CapabilityTableEntry的數(shù)組。填充該參數(shù)的第一步是為該數(shù)組分配內(nèi)存空間。每個被支持的編解碼器都需要一個CapabilityTableEntry。在本例中,數(shù)組只有一個元素,因為只支持G.711編解碼器。每個CapabilityTableEntry有兩個元素:TableEntryNumber字段和可選的能力信息結(jié)構(gòu)。

    CAPTABLE[0].Capability.TableEntryNumber = 1 (1)

    在行1的語句中,CapabilityTableEntryNumber任意設(shè)置,但是在同一消息中取值要不同。該參數(shù)由CAPDESCRIPTORS參數(shù)使用,以描述編解碼器之間的依賴關(guān)系。CAPDESCRIPTORS結(jié)構(gòu)要復(fù)雜得多,不在本文討論范圍內(nèi)。

    能力信息結(jié)構(gòu)描述了至少12種基本能力/業(yè)務(wù)中的一種。該結(jié)構(gòu)是可選的,但是不選用的情況不多。在特定的應(yīng)用方式下,ReceiveAudioCapability被選用。像ReceiveAudioCapability的AudioCapability結(jié)構(gòu)包含14多種不同的編解碼器中的一種。用戶必須選用其中一種編解碼器。一旦選用了某特定的編解碼器,相關(guān)字段必須定義。在g711Alaw64k情況下,只需要一個字段。第二行語句表示編解碼器驅(qū)動器能夠處理的分組大小至多180ms。

    CAPTABLE[0].capability.receiveAudioCapability.g711Alaw64k = 180 (2)

    值得注意的是,這個簡單例子在一個參數(shù)中只定義了一個編解碼器。其它原語和參數(shù)如CAPDESCRIPTORS要復(fù)雜得多。處理這種原語的過程枯燥、耗時且會給項目造成不必要的困難。

    如果采用替代方案,開發(fā)者使用簡單的API協(xié)議棧,則不需要關(guān)心這些細節(jié)。只要給出用ASN.1正確描述的編解碼器驅(qū)動器,一個在用戶層的簡單的函數(shù)調(diào)用就能處理所有這些細節(jié):

    獨立進行簡單API協(xié)議棧研究和開發(fā),只需投入數(shù)百個工時去解決有關(guān)ASN.1的問題就可以了。在應(yīng)用層,僅僅RegisterCodec()函數(shù)就可以為開發(fā)者節(jié)省相當多的時間。當成本和上市時間最重要時,該協(xié)議棧的簡單性具有不可估量的價值。

    作者簡介:

    Brian Krejcarek是US Software公司開發(fā)嵌入式H.323協(xié)議棧的主要開發(fā)人員。他擁有Illinois大學(xué)BSEE學(xué)位,可以通過briank@ussw.com與他聯(lián)系。

    Jonathan Shaw也是US Software公司開發(fā)H.323協(xié)議棧的主要開發(fā)人員,他擁有George Fox大學(xué)應(yīng)用科學(xué)學(xué)士學(xué)位以及Seattle Pacific大學(xué)BSEE學(xué)位,可以通過jonathan@ussw.com與他聯(lián)系。

分享到: 收藏

專題