您好,欢迎访问三七文档
第一步:基于H.323的网守发现和注册程序结构网守发现和注册过程创建一个UDP传输的对象创建一个客户端网守的实体找到网守?注册成功?开始根据给出的网守地址进行网守发现向发现的网守进行注册本地端点指定和网守进行连接结束显示注册成功显示注册失败否是是显示发现网守失败状态否网守地址,H323ID,和电话号码网守发现过程生成连接端点和网守交换的h.225消息的对象找到网守?成功?超过规定的次数?否否读取网守发来的信息正确?开始取得远端网守的ip地址和端口号根据给出的本地ip地址和端口号创建本地UDP套接字取得本机ip地址和端口号对发现网守(GRQ)的消息进行编码成为ASN.1编码向对端网守发送注册编码后的消息读取GCF信息读取GRJ信息,并显示原因建立和网守的一个UDP通道启动和网守进行信令交换的线程结束是否和网守进行信令交换的后台线程创建网守响应的消息对象开始退出?从套接口读取网守的响应信息根据响应的类型做相应的处理否网守注册过程创建RRQ请求消息对象在注册请求的PDU中设置各项参数对RRQ请求信息进行编码发送成功?收到响应?处理解码后的响应信息设置网守的ip地址和端口注册成功?设定发送响应周期在已建立的UDP通道上发送注册信息RRQ从和网守进行信令交换的后台线程中等待网守的信息对响应信息进行解码响应是RCF吗?读取RRJ信息,并显示原因结束显示注册成功开始是否是是否否第二步:基于RTP协议的媒体数据的传输程序结构Rtp传送和接收主流程开始确定对方的ip地址和端口号打开rtp通道启动用于发送和接收的媒体数据的后台线程来接收和发送数据传送是否结束否结束是传送或接收数据Rtp媒体数据的接收和发送后台线程根据指定的媒体格式确定rtp帧的大小,如payload大小创建一个RTP分组的对象开始读取已经编码后的媒体数据设置时间戳设置静荷类型和静荷大小根据当前的RTP帧发送RTCP分组发送RTP分组数据发送完毕?结束确定在数据报套接字或者是在控制套接字发生了读事件读取状态?从相应的控制套接字读取rtcp复合分组读到rtcp分组从相应的数据套接字读取rtp分组读到rtp分组向对端发送rtcp复合分组没有读到数据包包的类型?解析rtcp分组SR包的信息根据取得的信息进行相应得处理解析rtcp分组RR包的信息取得复合包中的第一个rtcp分组解析rtcp分组BYE包的信息解析rtcp分组SDE包的信息取复合包中的下一个分组取得了分组?对rtp分组进行合法性检查,如版本号等判断是否为正常的rtp分组,然后决定是否丢弃把数据进行解码数据接收完毕?结束发送媒体数据接收媒体数据根据读到的数据长度和静音设置rtp帧中的标志位是否SR包RR包SDE包BYE是否是否RTCP分组发送开始取得当前时间设定当前RTP分组的序列号和同步源标示已有发送过帧且标志位为0?统计两个RTP分组之间的间隔统计发送方的RTP静荷字节数和分组数创建一个RTCP分组对象发送过RTP分组?构建RR分组构建SR分组构建SEDS分组,并和上面的分组构成复合分组发送此RTCP复合分组是否结束是否
本文标题:试验流程图
链接地址:https://www.777doc.com/doc-6342049 .html