- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
探讨开发H.323协议栈和VoIP应用系统遇到的问题
创建VoIP应用系统
为了更好地理解如何利用H.323协议栈实现VoIP应用系统,让我们看几个例子,它们展示了下层协议和应用层之间的交互关系。
要利用基于原语的H.323协议栈实现的基本的VoIP应用系统,必须实现一组由H.323标准定义的流程。这些流程由可重入状态机组成,基于输入或输出原语的消息由状态机执行。另一个替代方案是面向任务的,为每一个流程启动一个新线程。无论哪种方案,用原语表示的输入或输出消息都是异步发生的。应用系统程序必须把状态值保持在这些流程中,而且某些流程可能会有多个运行实例。
每个原语包括多个参数,这些参数必须在应用层定义。在Q.931中,参数相当简单且易于理解。然而,当学习H.245协议时,阅读复杂的ASN.1表结构是很困难的。有关能力集(capability set)流程的原语尤其复杂,ASN.1结构可能嵌套5到6层深。对于不熟悉ASN.1的人来说,这可不是简单工作。
本地流程时序
另一个核心开发问题是时序,即为了建立或拆除对远程主机的呼叫,本地流程所执行的时序。当考虑其它H.323实现或应用的互操作性时,研究时序问题尤其必要,这类系统的实例有Microsoft的NetMeeting和NetSpeak的WebPhone。尽管H.323规范揭示了流程之间的依赖关系,必须通过实验测试和反向工程来揭示发起呼叫并建立通信需要的时序。
图2展示了与远程终端建立通信关系时H.323协议栈必须执行的流程。注意,同一水平线上的流程可能同时运行,但是他们都完成后该时序才能继续下去。
来源:电子工程专辑
上一篇:不同RAID级别的性能和安全性浅析
下一篇:24通道高精度A/D数据采集模块的研制