网络IP电话的资料,关于openh323?(200分)

  • 主题发起人 主题发起人 sunfuhong
  • 开始时间 开始时间
S

sunfuhong

Unregistered / Unconfirmed
GUEST, unregistred user!
请问谁对OPENH323的资料有了解?或者谁对IP电话的技术有了解的,请谈一谈经验.分数可以全部送上.
 
用goole去搜一把
 
http://linux.softhouse.com.cn/linux/software/Linux/Development/libraries/58996.html

www.openh323.org
 
http://www.programsalon.com/download.asp?type_id=65
 
to lixx:
第一个连接不行呀?请问还有没有.
to wwolf:
谢谢.
 
[red]
代码:
好希望可以应用在小区内,做个高清晰的网络电话网,应该有很大的市场的
[/red][:D][:D][:D]
 
1. H.323与SIP协议栈结构
1.1 基于H.323的IP电话技术
H.323是ITU-T开发的IP网络实时多媒体通信标准协议族,由呼叫控制、媒体编码、管理控制和多点通信等一系列协议组成。它最初是面向局域网上的多媒体会议的,后来扩展到IP电话。H.323的第一个版本诞生于1996年,定义了在局域网上实现虚拟电话系统,不保证服务质量。随着VoIP的发展,出现了一些新的需求,比如IP电话和传统的交换式电话的互通、服务质量的要求等。为此ITU-T在1998年1月发布了H.323版本2已满足这些需求。不久又有一些新的特征被添加到H.323标准,比如网络传真、网守和网守之间的通讯以及快速连接机制,这使得版本3能很快扩展。H.323是H.32x家族的一个成员。H.32x家族的其他成员规范了在不同的网络上实现多媒体通信。H.324定义在PSTN上,H.320定义在ISDN上,H.321和H.310定义在B-ISDN上,H.322定义在保证QoS 的LAN上。H.323标准的一个重要目标是和别的网络上的多媒体业务互连,而这项功能的完成者就是网关。
1.1.1 H.323协议栈
H.323协议栈结构如图1-1所示 。

图1-1 H.323协议栈
其中,图像编码可采用H.261(P×64kbit/s)和H.263(<64kbit/s),语音编码可采用G.71X、G.72X和G.723.1(为5.3/6.3双速率编码器)、数据通信采用T.120系列建议。H.225和H.245是H.323系统的控制协议,前者用于呼叫控制,后者负责媒体信道控制。音频、视频和终端的注册分组采用不可靠的用户数据报协议(UDP)来传输,数据和控制信令分组采用可靠的传输控制协议(TCP)作为其传输协议。
1.1.2 H.323系统结构
H.323标准定义了四个组成部分:终端(terminal)、网关(gateway)、网守(gatekeeper)、多点控制单元(MCU)。[3]网守、网关和MCU是逻辑上分散的成分,可以在一个物理设备上实现。终端、网关和MCU统称为端点(endpoints),端点可以发起呼叫,也可以接受呼叫,媒体信息流就在端点生成和终结。其系统结构如图1-2所示。

图1-2 H.323系统结构
1) 终端:终端是局域网上的客户端点,用来提供实时、双向的通信,支持H.245、Q.931、RAS和RTP等协议。H.323采用H.245作为控制协议,用于控制通信信道的建立、维护和释放。呼叫信令协议Q.931负责呼叫的建立,RAS用于终端和网守的通信。另外,H.323终端还可以包括T.120数据会议协议、视频编解码器,也可以支持MCU。H.323终端可以和H.323终端、H.323网关或者MCU通信。
2) 网关:网关用于在H.323网络和非H.323网络之间建立连接。例如,一个网关能连接H.323的终端和SCN网(SCN网包括所有交换电话网络,如PSTN)。不同网络的连接是通过网关完成呼叫建立和释放、媒体编码格式的转换、传递信息等来实现的。终端与网关间的通信采用H.245和Q.931协议。
3) 网守:网守是H.323网络关键实体,负责为端点提供地址转换、接入控制、呼叫信令和呼叫授权等功能,另外还提供带宽管理和呼叫管理功能。网守是网络的管理节点,一个网守管理的所有终端、网关和MCU组成了一个管理区(Zone),如图1-3所示。端点和网守之间的执行的管理协议是RAS。

T:终端 GK:网守 GW:网关 MCU:多点会议控制器 R:路由器`
图1-3 管理区示意图
4) MCU多点控制单元:MCU支持三个或多个H.323终端的会议。所有参与此会议的终端需要与MCU建立一个连接。MCU管理会议的资源,决定终端之间使用何种语音或视频的编码格式,并处理媒体流。MCU由MC(Multipoint Controller)和MP(Multipoint Processors)组成,其中MC是必需的,它提供多点会议的控制功能。MP在MC的控制下完成对来自各个端点的音频、视频和数据信号的混合处理,并回送到各个端点。在集中式多点会议和混合式多点会议中,MP是必需的:在分散式多点会议中,由于音频和视频信号都是由各个终端通过多播方式直接发送的,MP可以省略。MC和MP只是功能实体,并非物理实体。MC可以分布在终端、网关、网守和MCU中,MP可以分布在网关、网守和MCU中。
1.1.3 H.323系统控制和信令协议
H.323规定了三个控制协议:H.225/Q.931、H.225.0RAS和H.245。[4]
1) RAS协议:RAS协议是端点(终端或网关)和网守之间执行的协议。它采用UDP作为运输层,需要超时和重发机制来保证可靠性。RAS协议定义了以下过程。
(1) 网守搜寻: 用于端点搜寻其归属网守,端点先用多播机制发送一个GRQ报文询问附近网守是否愿意接受注册,如果网守接收该请求则回送GCF报文,并告知其RAS地址,反之,发送GRJ报文。在多个网守回送GCF报文的情况下,端点选择一个作为归属网守进行登记注册。如果端点没有收到网守的响应,定时器超时后,端点可重发GRQ报文。
(2) 端点注册: 端点向归属网守注册其自身的传输层地址和别名等信息,并加入一个管理域。
(3) 端点定位: 当端点或网守只知道目的端点的别名而要进行通信时,发送一个定位请求报文(LRQ),目的端点的归属网守负责回送一个定位确认报文,报文中包括了目的端点的呼叫信令信道的运输层地址或者是该网守的呼叫信令信道的运输层地址。
(4) 呼叫准入和脱离: 是呼叫控制过程的第一对和最后一对报文,分别标志呼叫的开始和结束。
(5) 带宽管理: 支持端点在呼叫过程中提出带宽管理改变要求,由网守决定。
(6) 状态查询: 主要用于网守询问终端的开机/关机状态。
2) H.225.0呼叫信令协议:呼叫信令信道用于承载H.225控制信息。如果网络中没有网守,所有的呼叫信令报文都通过呼叫信令运输层地址在主叫和被叫之间直接传送。在任何呼叫开始之前,首先必需在端点之间建立呼叫联系,同时建立H.245控制信道,这就是H.225呼叫信令协议的主要功能。呼叫信令报文在可靠的TCP连接上传输。
3) H.245媒体和会议控制协议:H.245是通用的多媒体通信控制协议,主要针对会议通信设计。H.323系统在呼叫建立完成后就采用H.245进行媒体控制。每一个逻辑信道的打开和关闭、参数的设定、收发双方的能力的协商等控制功能由H.245协议完成。H.245主要提供了以下功能。
(1) 主从确定过程 在会议通信中,如果两个参加会议的H.323实体都含有MC,则必须通过一定的规则确定一个为主MC。
(2) 性能协商 当呼叫建立时H.245用于性能协商,在呼叫过程中,只要需要性能的交换就可以进行性能协商。
(3) 媒体信道控制 包括了逻辑信道的打开和关闭。
(4) 其它命令和指示 H.245协议定义了许多简单的命令和指示消息:流量控制命令、多点方式命令、通信方式命令、用户输入指示等。
4) 呼叫建立过程:在H.323系统中,呼叫的建立包括以下过程。
(1) 网守搜索过程 发现一个负责管理特定端点的归属网守。
(2) 端点注册过程 端点在其归属网守处进行注册。
(3) 端点进入呼叫建立状态 执行呼叫信令协议(H.225.0),呼叫建立成功后,在端点间建立起H.245控制信道。
(4) 端点进入连接控制状态 执行媒体控制协议(H.245),端点间进行性能协商,建立起具有一定带宽的若干个媒体信道。
(5)端点和网守都可以中断呼叫。
 
谢谢大侠的指教,只是不知道有没有DELPHI的代码呢?
 
抱歉,我是从同学文章里拷的,没有Delphi代码。这方面,C代码比较好找,Delphi就困难了。
 
谢谢Zw84611.先记着先.
 
怎么什么都要用delphi来做呢?
www.openh323.org本身已经有一个可以在windows下面运行的pwlib了。
h323协议还是比较复杂的,asn.1,RAS,Q931,H225,H245等等,用delphi来做的话可以说是
很不偿失。
 
请问CHENLILI:
既然已经有一个PWLIB了。我怎么不可以在DELPHI里面用动态连接库的方式进行调用呢。
因为我只需要进行一个很简单的拨号动作就可以了。但是在C++里面我可不知道怎么将界面搞得
花哨一点。因为这个程序对界面的要求很高。请指点一下。
 
我也在做此类的视频网络会议软件遵循h323标准,大家一起研究呀
 
pwlib是一个基础库,linux下面也有,
openh323有windows下面的runtime的。
如果只是要界面的话,你可以用delphi做一个界面程序,在这个程序调用openh323
例如:
shellexecute,createsingelobject等
 
to chenlili:
shellexecute?????不是吧?.这个行吗?
OPENH323只是提供了动态连接库呀???怎么样个SHELLEXECUTE?????
可以举个简单例子吗?
 
pwlib是否生成了dll?其主程序是否是通过调用相应dll实现的?如果是,你直接调用dll
就可以了。但如果是lib,那就不行了。
 
我看见下载的包里面有三个DLL应该是DLL的方式了吧.但是源代码太长了.看得很慢.时间也不
多了.哪位能指点一下关于拨号的动作.还有皮肤用哪一套控件好且稳定.
 
帮忙up 有分!!!!!!!!!!!!!
 
后退
顶部