1、引言
GB28181-2016是中国公安部发布的视频监控设备通信协议标准,其中包括了语音对讲功能的接入规范。然而,该标准对于语音对讲的具体实现流程并没有明确的规定,导致各厂家根据自身理解进行实现。本文将介绍我们目前采用的语音对讲接入方式,并详细描述其流程及关键步骤。
2、实现方式概述
我们的语音对讲实现方式基于GB28181-2016标准,主要涉及客户端、信令、流媒体和IPC(网络摄像头)之间的交互。下面将逐步介绍语音对讲接入的流程。
3、流程步骤
3.1 客户端发起语音对讲请求
客户端首先向服务器发起语音对讲请求,表明其意图进行语音对讲操作。
3.2 信令交互
服务器接收到语音对讲请求后,通过信令与IPC进行交互。服务器向IPC发送Invite信令,并告知IPC流媒体的语音对讲监听端口以及ssrc(同步信源标识符)。
3.3 IPC回复
IPC接收到Invite信令后,回复服务器表示可以进行语音对讲,并通过流媒体发送包含提前告知的ssrc的RTP(实时传输协议)包。流媒体接收到RTP包后,解析其中的ssrc,建立对讲绑定关系。
3.4 音频数据传输
客户端采集到的音频数据经过编码(通常使用g711a格式),通过流媒体发送给IPC。IPC接收到音频数据后,进行解码,并通过设备侧发声,实现语音对讲功能。
4、对讲防抢断功能
在语音对讲过程中,为了避免其他客户端对正常对讲会话的干扰,我们引入了对讲防抢断功能。具体实现如下:
4.1 唯一对讲Key生成与绑定
每次客户端进行对讲操作时,客户端会生成一个唯一的对讲Key,并将该Key与对讲设备进行绑定。这样,每个对讲会话都具有唯一的标识,确保不会与其他对讲会话发生冲突。
4.2 对讲状态标注
在对讲设备与客户端进行对讲时,对讲状态会被标注为正在对讲中。这样,其他客户端或设备在检测到对讲状态时,会收到相应的提示,提示该设备当前正在进行对讲,从而防止对正常对讲会话造成影响。
5、对讲状态超时设定
为了保障对讲资源的合理利用和及时释放,我们设定了对讲状态超时机制。具体如下:
5.1 客户端语音数据超时
如果在10秒内没有收到客户端传来的语音数据,系统将判断该对讲会话出现异常,并触发对讲超时操作。此时,系统会断开对讲连接,释放相关资源,并将对讲状态恢复到正常状态。
5.2 设备建链数据超时
除了客户端语音数据超时外,如果在10秒内没有收到设备发送的建链数据,系统同样会判断该对讲会话存在异常,并执行对讲超时操作。对讲连接将被断开,相关资源将被释放,对讲状态将被恢复为正常状态。