基于WebRTC的应急指挥调度系统设计与实现
2022-04-29刘晓江赵可心
刘晓江 赵可心
摘要:突发自然灾害时,应急通信对抢险救灾工作至关重要。为了使基层救援队快速获取灾区的实际情况并安排下一步救援方案,设计并实现了基于网页实时通信(Web Real-Time Communication,WebRTC)的应急指挥调度系统,在救援现场通过服务级联的方式快速構建前后方通信指挥体系,通过采集终端实时获取现场位置及音视频信息并回传给指挥部。介绍了系统总体架构,对客户端、前方服务和后方服务进行了阐述,给出了各模块功能及软件实现方案。
关键词:应急通信;网页实时通信;指挥调度
中图分类号:TN91文献标志码:A文章编号:1008-1739(2022)17-57-04
0引言
近年来,随着一些突如其来灾害的侵袭,各级政府越来越意识到应急能力建设的重要性,其中,应急通信是灾害来临后重要的一环,加强信息能力,有利于提高决策质效[1]。
但是,目前基层应急管理部门仍有一些急需解决的问题。例如,如何使基层先遣救援队伍快速、准确地获取灾区的实际受灾情况,从而迅速安排下一步救援方案。基于此现状,设计了基于网页实时通信(Web Real-Time Communication,WebRTC)的应急指挥调度系统,在救援现场通过服务级联的方式快速构建前后方通信指挥体系。
应急指挥调度系统将业务与现场通信场景深度融合,提供设备定位、一键通信、现场信息回传和音视频组会等应急指挥功能,支持在救援现场迅速展开,实现分钟级开设,从根本上解决了区县级救援部门技术人员不足、装备便携性差、设备配置繁琐以及建设资金短缺等问题,提高现场应急通信[2-3]保障效率,为救援指挥提供网络支撑。
1系统总体设计
本系统由客户端、前方服务和后方服务3部分组成,如图1所示。从部署场景来看,分为后方指挥中心、现场指挥部和一线救援现场。当灾害发生,救援人员首先会携带部署了前方服务的便携式现场指挥平台赶赴现场,搭建现场指挥部。救援现场通过自组网[4]形成一个局域网,前方服务和所有采集终端通过此局域网连接起来,一线救援人员携带安装了客户端的各种采集终端(执法记录仪、单兵和无人机)奔赴一线救援现场,客户端实时采集救援现场音视频,再通过WebRTC技术回传给现场指挥部,实现现场指挥部和一线救援现场音视频的互通。除了现场指挥部,本系统还包含后方指挥中心,后方指挥中心和前方指挥部经互联网实现互联互通,前方服务搭建完成后根据需要通过路由器和后方服务建立连接,然后前方指挥部通过私网穿越技术将现场视频推送给后方指挥中心。系统的主要功能———音视频传输是基于WebRTC进行设计。WebRTC是一种Web浏览器原生支持的点对点进行实时音视频通信及通用数据传输的技术。媒体的传送部分使用ICE(Interactive Session Establishment)技术,支持对4种类型NAT(Network Address Translation)或防火墙的穿透,实现点对点、点对多点等多种方式媒体通路的建立和传送[5]。
2客户端
客户端是呈现系统业务的上层应用,分为后方指挥客户端、指挥客户端和移动客户端,分别部署于指挥中心、现场指挥部和救援现场3个场景。
2.1后方指挥客户端
后方指挥客户端部署于后方应急管理用户的指挥中心,用于对现场的统一指挥和协调调度。后方指挥客户端功能主要是和前方建立通信、查看现场视频。
2.2前方指挥客户端
前方指挥客户端包含指挥客户端和移动客户端,部署于现场指挥部,即根据灾害事故需要,临时开设的用于灾害事故现场附近的指挥场所,用于指挥调度应急救援力量和资源。指挥客户端运行于现场指挥平台,包含“GIS调度”和“监控调度”2个界面,“GIS调度”基于百度离线地图实现,地图上通过添加标注来显示终端位置和在线离线状态,点击标注发起调阅;“监控调度”可以同时调阅4路移动端视频。指挥员使用前方指挥客户端可根据需要随时调配现场终端资源,掌控现场指挥的全要素。
指挥客户端基于VUE框架开发,移动客户端通过原生+H5混合开发,2种客户端共用前端部分,与服务端通过websocket[6]连接。
2.3移动客户端
移动客户端安装在多模终端或者单兵图传设备,单兵终端可以通过HDMI外接无人机。移动客户端承担了现场灾情汇报、指令接收等任务。功能主要包含上报位置和采集现场视频向服务端传输高清视频。音视频编解码采用硬编码,支持主流视频格式和音频格式。
3前方服务
前方服务为现场各类客户端提供业务支撑,主要包含终端配置模块、业务控制模块和媒体服务模块。
3.1终端配置模块
终端配置模块主要负责对终端账号进行配置和管理。不同的客户端软件通过账号注册到服务器上,才能进行各项业务流程,账号分为业务调度类、指挥终端类和移动终端类,可进行分组管理,不同组的账号互相不可见,互不影响。指挥终端类可设置优先级,同一组内,在链路资源紧张的情况下,高级别指挥客户端可以强拆低级别的视频调阅业务。
本系统配置模块基于SpringMVC框架开发,可通过Web界面实现对终端账号资源的管理与维护。
3.2业务控制模块
业务控制模块是系统的核心模块,主要负责业务的逻辑控制、实现视频调阅和组会等业务功能。
业务控制模块分为坐席接入层和业务控制层。坐席接入层实现调度台的接入、账号管理及权限管理,完成业务控制层和不同账号之间的消息转发;业务控制层提供业务逻辑处理服务,采用room機制管理业务单元,使用有限状态机控制业务逻辑。
视频调阅和组会均采用会议模型的设计思想,调阅是和一个移动终端组会,分发移动终端的视频,会议是和多个移动终端组会,分发所有在会终端的混屏画面。
视频调阅主要分为指挥端调阅多个采集终端(各调阅相互独立)和多个指挥端调阅一个采集终端2种场景,基于此需求,采用资源池化机制,增加视频调阅标识。当调阅资源标识相同时,业务控制模块通过媒体服务增加一路视频调阅资源的分发(多调一)。若当前业务控制模块中没有该视频调阅标识,媒体服务在业务控制模块的控制下拉取一次视频调阅资源(一调一或一调多)。
调阅一个移动客户端的基本流程如图2所示。
①指挥客户端发送调阅请求,业务控制模块收到请求后向媒体服务器申请资源,申请资源成功后,将申请的room ID返回给指挥客户端。
②业务控制模块向媒体服务器申请成员资源,申请资源成功后,将①中的room ID发送给移动客户端。
③指挥客户端收到room ID后,与媒体服务器进行媒体协商,设置sdp offer为发送音频,接收音视频,协商完成后将指挥客户端的媒体元素的ID发送给业务控制模块。
④移动客户端收到room ID后,与媒体服务器进行媒体协商,设置sdp offer为发送音视频,接收音频,协商完成后将移动客户端的媒体元素的ID发送给业务控制模块。
⑤业务控制模块收到2个媒体元素的ID后,向媒体服务器发送消息连接2个媒体元素。
⑥2个客户端媒体流连接成功,调阅完成。
当一个指挥客户端调阅多个移动客户端,即进行多次如图2所示的流程。当多个指挥客户端调阅一个移动客户端,在指挥客户端发送调阅请求后,业务控制模块不再向媒体服务器申请资源,而是将移动客户端已在的room ID返回给指挥客户端,并向指挥客户端分发移动客户端的视频。
组会流程和调阅流程基本相同,主要区别是第②步,组会会向多个移动客户端发送room ID,多个移动客户端收到room ID后,各自和媒体服务进行媒体协商然后入会,媒体服务模块将入会成功的移动终端的视频进行混屏,业务控制模块再把混屏画面分发给指挥端。
3.3媒体服务模块
媒体服务是系统的媒体核心,接收以SIP为载体的控制核心的指令,对音视频进行汇聚、处理和分发,媒体服务器功能包括群组通信、转码、混合和视听流的路由。媒体服务器中的一个重要概念是媒体管道,媒体管道是一系列媒体元素的链接,其中一个媒体元素的输出流被送到一个或多个其他媒体元素,媒体元素是封装特定媒体功能的模块,例如RTP媒体元素和WebRTC媒体元素等,本系统用到的主要是WebRTC媒体元素。
媒体服务中关于音视频处理的关键技术有MCU布局算法、语音降噪算法、语音活性检测算法和动态帧率调整策略。会议中将多个成员的画面合成为一个画面输出,媒体引擎采用的自调整算法根据参与混屏的成员数,自动调整画面的布局。语音降噪算法由基于WebRTC插件开发的音频优化组件实现,将带有噪声的音频流送入组件,对音频流进行降噪,实现了对音频流的优化处理,提升了音频质量。语音活性检测算法通过音频过滤组件和语音活动检测(Voice Activity Detection,VAD)模块实现,音频过滤组件用于音频流的实时监测,VAD模块用于初步的语音活性检测,上层模块依据音频过滤组件提供的实时音频参数和VAD模块提供的语音决策,执行混音优选算法进行混音,并进行说话者上报及说话者的实时更新。动态帧率调整策略是视频发送端根据接收端的带宽估计等参数动态调整视频发送的码率和帧率,当网络条件好时,码率和帧率会增大;反之,码率和帧率则会降低,以快速且高解析度地适应不断变化的网络环境。另外,媒体服务采用静态JitterBuffer,将缓存报文个数设置为无限大的固定值,以优化网络带宽低的时候视频卡顿的情况,保证媒体流顺畅平稳处理。
4后方服务
后方服务和前方服务的组成基本相同,但是后方服务部署于互联网,只管理后方指挥客户端,不直接和现场各类终端通信,而是和前方服务建立连接,由前方服务推送现场的音视频。前后方服务首先通过TCP建立连接,后方服务作为TCP Server,前方服务作为TCP Client,前方服务和后方服务建立连接后,后方服务根据前方服务的IP信息发起调阅。
3.3节中介绍了媒体服务器的一个特征———媒体管道,前后方媒体流的传输就是利用这种特性,将前后方媒体服务器链接成一个包含多个媒体元素的媒体管道来传输音视频,如图3所示。后方指挥中心调阅前方视频的关键流程,如图4所示。
①后方指挥客户端向后方服务发送调阅请求,后方业务控制模块收到请求后向媒体服务器申请资源,申请资源成功后,将申请的room ID返回给指挥客户端。
②指挥客户端收到room ID后和后方媒体服务器进行媒体协商,生成代表本端的WebRTC媒体元素,然后将ID发送后方业务控制模块。
③后方业务控制模块收到媒体元素的ID后,通过转发服务发送给前方业务控制模块。
④前方业务控制模块收到后向媒体服务器申请资源,申请资源成功后,将申请的room ID发送给前方指挥客户端。
⑤前方指挥客户端收到room ID后,与前方媒体服务器进行媒体协商,生成代表本端的WebRTC媒体元素,然后将ID发送前方业务控制模块。
⑥前方业务控制模块再通过转发服务将媒体元素ID发送给后方业务控制模块,转发服务将前后方2个媒体元素连接,然后通过ICE技术进行私网穿越[7],至此前后方2个指挥客户端媒体流连接成功。
⑦最后,前方指挥客户端邀请前方移动客户端入会,前方服务端将混屏后的媒体流发送给后方。
5结束语
应急指挥调度系统在救援现场通过服务级联的方式快速构建前后方通信指挥体系,实现了在低带宽、高时延、高抖动的不稳定链路情况下的音视频高质量稳定传输,保证了指挥部和救援现场的实时通信。系统重平台、轻前端,终端轻松便携,操作简单,一张图实现指挥,满足应急通信的大部分使用需求,在应急通信行业中有广泛地应用前景。
但是,系统还有一些不足,目前支持的终端资源类型较单一,后续将接入更多类型的终端,例如监控摄像头和手环等,丰富业务场景。
参考文献
[1]翟琳.加强应急能力建设,守护城市安全[N].中国应急管理报,2022-03-10(2).
[2]杨东晓.信息化技术在消防指挥中的应用[J].消防界(电子版),2022,8(3):52-54.
[3]周雄偉.新一代应急通信系统发展展望[J].通信技术,2022,55(1):1-6.
[4]李溯,魏书精,罗斯生,等.窄带无线自组网在森林火灾现场应急通信中的应用研究[J].新农业,2021(14):56-59.
[5]付斌,杨鑫,王松,等.WebRTC技术研究及其应用[J].电信科学,2013,29(9):108-112.
[6]邵其专,蒋迪,莫熙.基于WebSocket技术面向电力调度的即时通信系统[J].电子设计工程,2020,28(6):144-148.
[7]杨金花.STUN技术通信问题的研究[J].电子设计程,2015,23(6):92-94.