一、总体结构
系统总体结构图如下:
二、协议的总体分类
1、 客户端<->服务器 信令协议:即由客户端与服务器的命令控制协议,通过TCP传输。协议命令字范围从0X1100到0X12FF。
2、 流媒体协议:即由服务器<->客户端之间的媒体交互协议(包括音频和视频)。协议命令字范围为0X00到0XFF。
三、公共结构及类型定义
1) 公共协议包头定义
信令控制协议包头
名称 |
类型 |
长度(bytes) |
备注 |
Packet Head |
DWORD |
4 |
版本号(0x01) |
WORD |
2 |
命令 |
|
WORD |
2 |
返回结果(用于应答包) |
|
WORD |
2 |
数据长度(不包括包头的长度) |
typedef struct
{
DWORD nVersion;
WORD wCmdID;
WORD wResult;
WORD wDataLen;
} CMD_HEADER;
#define MEETING_MEDIA_VERSION 0x01
#define SIZE_CMD_HEADER sizeof(CMD_HEADER)
四、 信令控制协议
1) 登录媒体信令服务器
请求登录媒体信令服务器
命令为: 0x1101
数据包格式为:
名称 |
类型 |
长度(bytes) |
备注 |
Packet Head |
CMD_HEADER |
SIZE_HEADER |
|
MediaID |
WORD |
2 |
信令服务器返回的媒体ID |
MediaPassword |
DWORD |
4 |
媒体服务器密码 |
应答登录媒体服务器结果
命令为: 0x1201
数据包格式为:
名称 |
类型 |
长度(bytes) |
备注 |
Packet Head |
CMD_HEADER |
SIZE_HEADER |
|
ServerPort |
WORD |
64 |
服务器UDP端口列表 |
返回结果定义:
wResult:
=0表示成功
=1表示密码错误
ServerPort 可能有多个,每个WORD代表一个端口。如:53,443,8000。
请求退出媒体信令服务器
命令为: 0x1102
数据包格式为:
名称 |
类型 |
长度(bytes) |
备注 |
Packet Head |
CMD_HEADER |
SIZE_HEADER |
|
2) 接收视频操作
请求开始接收视频
命令为: 0x1112
数据包格式为:
名称 |
类型 |
长度(bytes |