资源描述:
《使用openh323开发学习资料.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、使用openh323开发精品文档pwlib是一套跨平台的C++的开发库,使基于pwlib上开发的应用能够很少量的移植就可以跑
在windows和unix的平台上.
Open323是澳洲的一家公司驱动的opensource的h323协议族实现,还不够十分的完整,但
是已经是非常的难得了.
在windows上和linux下都能编译使用,我已经试过了.Windows上编译他们比较麻烦,注意
的是一定要用batchbuilding.在VC7上编译openh323的动态连接库的时候,VS.net会崩溃
,注意避开,不过
2、也可以试试看看现象,如果能够解决,请告诉我一下.
在linux上编译就没有什么好说的了,设好两个环境变量(PWLIBDIR,OPENH323DIR),就可
以在展开的目录下编译了,先编译PWLIB,再编译OPENH323,别忘了将相应xx/lib写到/et
c/ld.so.conf下.我这里可能对安装讲的不够详细,openh323讲的非常详细,大家可以去
看.以linux平台为例:
使用pwlib,在成功编译之后,到$(PWLIBDIR)/SAMPLES/
这里是一些例子,hello_world是个非常简单的
3、工程,从这里我们可以看到如何写使用pw
lib的Makefile:
#Simplemakefileforthehelloworldprogram
PROG=hello
SOURCES=hello.cxx
ifndefPWLIBDIR
PWLIBDIR=$(HOME)/pwlib
endif
include$(PWLIBDIR)/make/ptlib.mak
关键是包含了一个ptlib.makhello.cxx
#include
classHello:publicPProcess
{
PCLASSINFO(He
4、llo,PProcess)
public:
voidMain();
};PCREATE_PROCESS(Hello)
voidHello::Main()
{收集于网络,如有侵权请联系管理员删除精品文档
cout<<"Helloworld!";
}
非常有代表性.Include$(PWLIBDIR)/make/ptlib.mak这样就可以makeall,makedebu
g的之类的进行编译,需要的头文件库都会替你安排好.编译的结果就会放在obj_linux_x
86_xx,xx表示你用的是debug编译还是
5、其他,如果是debug,xx就是d.使用pwlib的程序,必然要有一个PProcess的子类,作为整个进程,这是指在console模式
下,gui模式的用PApplication这个我没有用过.Pwlib里面的类大多都是P开头,(可能是
取其兼容的意思,跨平台的特性,我瞎猜的),在进程中如果想创建新的线程就创建PThre
ad子类的对象,对于这种关于过程的类,都有Main函数等待子类去实现.
在使用所有的P类的时候,注意使用两个宏,声明类的时候PCLASSINFO(Hello,PProcess)
;分号可以加
6、,也可不加.PProcess的子类的实现的时候要用PCREATE_PROCESS(Hello);,
这个东西把main()之类的系统入口封装了,由他来调用Main()成员函数.在使用线程的时
候,如果想让线程从线程的对象一创建就运行,就应该在PThread子类中的构造函数中调用
父类的Resume().关于pwlib先说这些,在使用Openh323的时候到处都会用到pwlib的东西
和概念.Openh323:
终于进入正题了,先粗略的讲点概念(多余了),H323是指协议族了,包含了很多规范,它
来自ITU,
7、应会议的需要而产生,信令相关的东西用H225H245,类似Q931,用ASN1编码后在
tcp之上传输,数据相关的就是编码解码的东西了(包括音频视频),音频g711(alaw,ulaw
)了等等多了,视频h261,好像h263还没实现.
在H323的系统里进行通讯的角色实体就是Endpoint,每个Endpoint可以有很多的Connecti
on,每个Endpoint也可以拥有很多的逻辑角色,这个不讨论.
Endpoint在Openh323中就是类H323Endpoint的实例
Connection在Ope
8、nh323中就是H323Connection的实例
当Endpoint接收了一个远程的连接请求,Endpoint就会创建一个H323Connection;
当Endpoint发出一个连接的请求,Endpoint也会创建一个H323Connection
Connection就会进入一个状态机,在各个状态中,收集于网络,如有侵权请联系管理员删除精品文档Connetcion会相应的执行相应的方法,
这些