OPENH323指引

来源:互联网 发布:美文美图软件 编辑:程序博客网 时间:2024/04/27 11:19

同PWLIB指引目的一样,提供OpenH323的一个简单描述和大部分类结构说明,具体蓝色的部分可以通过链接查看继承表及详细介绍

OpenH323

1.17.0

概述

在整体继承表中最基本的对象是H323Endpoint类。应用程序通常应该包含继承于该类的子类的实例,并为不同的H323参数定义缺省的参数值(超时等)。当然最重要的是那些定义编解码和程序能够处理信道类型这些能力表的内容。

使用H323Endpoint的应用程序海需要构建继承于H323Listener类的一个或者更多子类的实例。为每种协议制定一个H323Listener 的子类是允许的,比如H323ListenerIP将转为Internet使用。每一个侦听着产生一个线程监视自己的协议以及何时会有一个新的呼叫传入,然后创建一个H323Transport类(子类)的实例。对应H323Listener类,每种支持的协议都有一个对应的子类,比如H323TransportIP

H323Transport中,当第一个使用Q.931H.225协议的协议数据单元PDUProtocol Data Units)到达时,一个用来识别连接的呼叫连接将被创建。这些连接在H323Connection 中被具体实现,在H323Connection中,包含了所有H323端点间的状态信息。H323Endpoint实例维持着这些活动的连接路径。如果呼叫连接的序号已经失去连接,H323会自动创建一条新的连接并通过信号协商生成新的连接。

应用程序一般不直接使用H323Connection类,而继承于H323Connection生成自己的子类,并实例化。因此,大量的虚方法将被重写。这些虚方法都是库提供的回调函数,用来允许应用程序可以获得信息或者修改协议间协商的不同处理机制。例如,当一个呼叫传入时,提供一个回调函数以通知应用程序应该发出“警报”,很多应用程序会在这里弹出一个带有响铃声或者提示声音的窗口,而不是仅仅是默认提供的简单提示音。

H323Negotiator类用来维持由H.245协议定义的每个命令和变量的状态和功能实现。事实上,他们存在的最主要目的只是减少h225.hh.245.h文件的范围。仅仅这些文件就定义了成百条的类。一个使用H323Connection类的用户将因此而不需要在每个编译单元都包含所有这些类。

H.245的一些协商过程中,逻辑频道可以通过远程端点,也可以通过本地应用程序创建。这将通过H323Channel类的继承子类实现。比如,在对这些类的应用中,一个最典型的应用是打开一个编码后音频数据流:H323Channel类将根据在协议协商过程中传递的H323Capability来创建一个H323Codec

类继承表

OpenH323提供了丰富的类继承关系,能够实现绝大部分H.323端点需要的功能。下面的列表并不能一览无遗的列出所有包含的类,本列表只是作为发掘更多功能的一个很好的起点

端点类

  • H323EndPoint实现一个能够呼叫和接收呼叫的H.323端点

  • H323Connection为每个输出和输入呼叫建立的类的实例

  • H323Channel所有H.323物理频道的基类

  • H323Codec所有编解码器的基类,请参考H323AudioCodeH323VideoCodec

  • H323SignalPDU - 所有H.323协议数据单元PDU (Protocol Data Units)的基类

  • H323DataPDU - 所有H.323协议数据单元PDU (Protocol Data Units)的基类

  • H323GatekeeperServer实现一个H.323网守。例如,一个H.225 RAS协议的网守

数据类型

  • H225_AliasAddress定义H.225名称地址对象

  • H323TransportAddress以字符串方式定义IPv4IPv6传输地址

H.225协议类

这些类根据H.225 ASN原语定义构建

  • H225_Setup_UUIE

  • H225_CallProceeding_UUIE

  • H225_Connect_UUIE

  • H225_Alerting_UUIE

  • H225_Information_UUIE

  • H225_ReleaseComplete_UUIE

  • H225_Facility_UUIE

  • H225_Progress_UUIE

  • H225_Status_UUIE

  • H225_StatusInquiry_UUIE

  • H225_SetupAcknowledge_UUIE

  • H225_Notify_UUIE

  • H225_GatekeeperRequest,

  • H225_GatekeeperConfirm,

  • H225_GatekeeperReject,

  • H225_RegistrationRequest,

  • H225_RegistrationConfirm,

  • H225_RegistrationReject,

  • H225_UnregistrationRequest,

  • H225_UnregistrationConfirm,

  • H225_UnregistrationReject,

  • H225_AdmissionRequest,

  • H225_AdmissionConfirm,

  • H225_AdmissionReject,

  • H225_BandwidthRequest,

  • H225_BandwidthConfirm,

  • H225_BandwidthReject,

  • H225_DisengageRequest,

  • H225_DisengageConfirm,

  • H225_DisengageReject,

  • H225_LocationRequest,

  • H225_LocationConfirm,

  • H225_LocationReject,

  • H225_InfoRequest,

  • H225_InfoRequestResponse,

  • H225_NonStandardMessage,

  • H225_UnknownMessageResponse,

  • H225_RequestInProgress,

  • H225_ResourcesAvailableIndicate,

  • H225_ResourcesAvailableConfirm,

  • H225_InfoRequestAck,

  • H225_InfoRequestNak,

  • H225_ServiceControlIndication,

  • H225_ServiceControlResponse,

H.245协议类

这些类根据H.245 ASN原语定义创建

  • H245_NonStandardMessage

  • H245_MasterSlaveDetermination

  • H245_TerminalCapabilitySet

  • H245_OpenLogicalChannel

  • H245_CloseLogicalChannel

  • H245_RequestChannelClose

  • H245_MultiplexEntrySend

  • H245_RequestMultiplexEntry

  • H245_RequestMode

  • H245_RoundTripDelayRequest

  • H245_MaintenanceLoopRequest

  • H245_CommunicationModeRequest

  • H245_ConferenceRequest

  • H245_MultilinkRequest

  • H245_LogicalChannelRateRequest

  • H245_MasterSlaveDeterminationAck

  • H245_MasterSlaveDeterminationReject

  • H245_TerminalCapabilitySetAck

  • H245_TerminalCapabilitySetReject

  • H245_OpenLogicalChannelAck

  • H245_OpenLogicalChannelReject

  • H245_CloseLogicalChannelAck

  • H245_RequestChannelCloseAck

  • H245_RequestChannelCloseReject

  • H245_MultiplexEntrySendAck

  • H245_MultiplexEntrySendReject

  • H245_RequestMultiplexEntryAck

  • H245_RequestMultiplexEntryReject

  • H245_RequestModeAck

  • H245_RequestModeReject

  • H245_RoundTripDelayResponse

  • H245_MaintenanceLoopAck

  • H245_MaintenanceLoopReject

  • H245_CommunicationModeResponse

  • H245_ConferenceResponse

  • H245_MultilinkResponse

  • H245_LogicalChannelRateAcknowledge

  • H245_LogicalChannelRateReject

  • H245_MaintenanceLoopOffCommand

  • H245_SendTerminalCapabilitySet

  • H245_EncryptionCommand

  • H245_FlowControlCommand

  • H245_EndSessionCommand

  • H245_MiscellaneousCommand

  • H245_CommunicationModeCommand

  • H245_ConferenceCommand

  • H245_H223MultiplexReconfiguration

  • H245_NewATMVCCommand

  • H245_MobileMultilinkReconfigurationCommand

  • H245_FunctionNotUnderstood

  • H245_MasterSlaveDeterminationRelease

  • H245_TerminalCapabilitySetRelease

  • H245_OpenLogicalChannelConfirm

  • H245_RequestChannelCloseRelease

  • H245_MultiplexEntrySendRelease

  • H245_RequestMultiplexEntryRelease

  • H245_RequestModeRelease

  • H245_MiscellaneousIndication

  • H245_JitterIndication

  • H245_H223SkewIndication

  • H245_NewATMVCIndication

  • H245_UserInputIndication

  • H245_H2250MaximumSkewIndication

  • H245_MCLocationIndication

  • H245_ConferenceIndication

  • H245_VendorIdentification

  • H245_FunctionNotSupported

  • H245_MultilinkIndication

  • H245_LogicalChannelRateRelease

  • H245_FlowControlIndication

  • H245_MobileMultilinkReconfigurationIndication

 

原创粉丝点击