最近想学习voip,看了h323的协议,但是不明白,怎么从网络数据包中提取h323协议的数据。不知道 呼叫,控制信道,以及语音在数据包中的关系。他们是怎么串在一起的(如何从呼叫到控制信道包括端口、如何在信道中找到语音内容)?
------解决方案--------------------------------------------------------
H.323是ITU的一个标准协议簇,H.323系统中的通信可以看成是数据、视频、音频和控制信息的混合。视频、音频流通过RTP/RTCP封装在UDP中,数据流(如传真业务)则封装在TCP中,控制信息流则涉及到3中信令:RAS信令(R:Registration,注册;A:Admission,许可;S:Status,状态),H.225.0呼叫信令和H.245控制信令。其中,RAS信令封装在UDP中,H.225.0和H.245则封装在TCP中。
RAS信令用来完成终端与网守之间的登记注册、授权许可、带宽改变、状态和脱离解除等过程。H.225.0呼叫信令用来建立两个终端之间的连接,这个信令使用Q.931消息来控制呼叫的建立和拆除。H.245控制信令用来传送终端到终端的控制消息,包括主从判别、能力交换、打开和关闭逻辑信道、模式参数请求、流控消息和通用命令与指令等。
------解决方案--------------------------------------------------------
很大的工程,算法复杂,试试这个
VC++写的支持H.323和SIP的点对点网络电话VOIP系统源代码