gitextract_3q5h2l1l/ ├── .dockerignore ├── .github/ │ ├── ISSUE_TEMPLATE/ │ │ ├── bug.md │ │ ├── new.md │ │ └── solve.md │ └── workflows/ │ └── build.yml ├── .gitignore ├── .gitmodules ├── LICENSE ├── README.md ├── bin/ │ └── wvp.sh ├── doc/ │ ├── README.md │ ├── _content/ │ │ ├── ability/ │ │ │ ├── auto_play.md │ │ │ ├── cascade.md │ │ │ ├── cascade2.md │ │ │ ├── channel.md │ │ │ ├── cloud_record.md │ │ │ ├── continuous_broadcast.md │ │ │ ├── continuous_recording.md │ │ │ ├── device.md │ │ │ ├── device_use.md │ │ │ ├── gis.md │ │ │ ├── node_manager.md │ │ │ ├── online_doc.md │ │ │ ├── proxy.md │ │ │ ├── push.md │ │ │ └── user.md │ │ ├── about_doc.md │ │ ├── broadcast.md │ │ ├── disclaimers.md │ │ ├── introduction/ │ │ │ ├── compile.md │ │ │ ├── config.md │ │ │ └── deployment.md │ │ ├── qa/ │ │ │ ├── bug.md │ │ │ ├── development.md │ │ │ ├── play_error.md │ │ │ ├── regiser_error.md │ │ │ └── start_error.md │ │ ├── skill/ │ │ │ └── tcpdump.md │ │ └── theory/ │ │ ├── broadcast_cascade.md │ │ ├── code.md │ │ ├── play.md │ │ └── register.md │ ├── _coverpage.md │ ├── _navbar.md │ ├── _sidebar.md │ ├── index.html │ └── lib/ │ ├── css/ │ │ └── vue.css │ └── js/ │ └── docsify@4.js ├── docker/ │ ├── README.md │ ├── build.sh │ ├── docker-compose.yml │ ├── docker-upgrade.sh │ ├── media/ │ │ ├── Dockerfile │ │ ├── build.sh │ │ └── config.ini │ ├── mysql/ │ │ ├── Dockerfile │ │ ├── build.sh │ │ └── db/ │ │ ├── privileges.sql │ │ └── wvp.sql │ ├── nginx/ │ │ ├── Dockerfile │ │ ├── build.sh │ │ ├── config.js │ │ └── templates/ │ │ └── nginx.conf.template │ ├── push.sh │ ├── redis/ │ │ ├── Dockerfile │ │ ├── build.sh │ │ └── conf/ │ │ └── redis.conf │ └── wvp/ │ ├── Dockerfile │ ├── build.sh │ └── wvp/ │ ├── application-base.yml │ ├── application-docker.yml │ └── application.yml ├── install.sh ├── libs/ │ ├── jdbc-aarch/ │ │ ├── kingbase8-8.6.0.jar │ │ ├── kingbase8-8.6.0.jre7.jar │ │ ├── postgresql-42.2.9.jar │ │ └── postgresql-42.2.9.jre7.jar │ └── jdbc-x86/ │ ├── bcprov-jdk15on-1.70.jar │ ├── kingbase8-8.6.0.jar │ ├── kingbase8-8.6.0.jre6.jar │ ├── kingbase8-8.6.0.jre7.jar │ ├── postgresql-42.2.9.jar │ ├── postgresql-42.2.9.jre6.jar │ └── postgresql-42.2.9.jre7.jar ├── pom.xml ├── run.sh ├── src/ │ ├── main/ │ │ ├── java/ │ │ │ └── com/ │ │ │ └── genersoft/ │ │ │ └── iot/ │ │ │ └── vmp/ │ │ │ ├── VManageBootstrap.java │ │ │ ├── common/ │ │ │ │ ├── CivilCodePo.java │ │ │ │ ├── CommonCallback.java │ │ │ │ ├── DeviceStatusCallback.java │ │ │ │ ├── InviteInfo.java │ │ │ │ ├── InviteSessionStatus.java │ │ │ │ ├── InviteSessionType.java │ │ │ │ ├── RemoteAddressInfo.java │ │ │ │ ├── ServerInfo.java │ │ │ │ ├── StatisticsInfo.java │ │ │ │ ├── StreamInfo.java │ │ │ │ ├── StreamURL.java │ │ │ │ ├── SubscribeCallback.java │ │ │ │ ├── SystemAllInfo.java │ │ │ │ ├── VersionPo.java │ │ │ │ ├── VideoManagerConstants.java │ │ │ │ └── enums/ │ │ │ │ ├── ChannelDataType.java │ │ │ │ ├── DeviceControlType.java │ │ │ │ └── MediaApp.java │ │ │ ├── conf/ │ │ │ │ ├── CivilCodeFileConf.java │ │ │ │ ├── CloudRecordTimer.java │ │ │ │ ├── DynamicTask.java │ │ │ │ ├── GlobalExceptionHandler.java │ │ │ │ ├── GlobalResponseAdvice.java │ │ │ │ ├── MediaConfig.java │ │ │ │ ├── MediaStatusTimerTask.java │ │ │ │ ├── MybatisConfig.java │ │ │ │ ├── ScheduleConfig.java │ │ │ │ ├── ServiceInfo.java │ │ │ │ ├── SipConfig.java │ │ │ │ ├── SpringDocConfig.java │ │ │ │ ├── SystemInfoTimerTask.java │ │ │ │ ├── ThreadPoolTaskConfig.java │ │ │ │ ├── UserSetting.java │ │ │ │ ├── VersionConfig.java │ │ │ │ ├── VersionInfo.java │ │ │ │ ├── WVPTimerTask.java │ │ │ │ ├── exception/ │ │ │ │ │ ├── ControllerException.java │ │ │ │ │ ├── ServiceException.java │ │ │ │ │ └── SsrcTransactionNotFoundException.java │ │ │ │ ├── ftpServer/ │ │ │ │ │ ├── FileCallback.java │ │ │ │ │ ├── FtpAuthority.java │ │ │ │ │ ├── FtpFileSystemFactory.java │ │ │ │ │ ├── FtpFileSystemView.java │ │ │ │ │ ├── FtpServerConfig.java │ │ │ │ │ ├── FtpSetting.java │ │ │ │ │ ├── Ftplet.java │ │ │ │ │ ├── UserManager.java │ │ │ │ │ └── VirtualFtpFile.java │ │ │ │ ├── redis/ │ │ │ │ │ ├── RedisMsgListenConfig.java │ │ │ │ │ ├── RedisRpcConfig.java │ │ │ │ │ ├── RedisTemplateConfig.java │ │ │ │ │ └── bean/ │ │ │ │ │ ├── RedisRpcClassHandler.java │ │ │ │ │ ├── RedisRpcMessage.java │ │ │ │ │ ├── RedisRpcRequest.java │ │ │ │ │ └── RedisRpcResponse.java │ │ │ │ ├── security/ │ │ │ │ │ ├── AnonymousAuthenticationEntryPoint.java │ │ │ │ │ ├── DefaultUserDetailsServiceImpl.java │ │ │ │ │ ├── JwtAuthenticationFilter.java │ │ │ │ │ ├── JwtUtils.java │ │ │ │ │ ├── LogoutHandler.java │ │ │ │ │ ├── SecurityUtils.java │ │ │ │ │ ├── WebSecurityConfig.java │ │ │ │ │ └── dto/ │ │ │ │ │ ├── JwtUser.java │ │ │ │ │ └── LoginUser.java │ │ │ │ ├── webLog/ │ │ │ │ │ ├── LogChannel.java │ │ │ │ │ └── WebSocketAppender.java │ │ │ │ └── websocket/ │ │ │ │ └── WebSocketConfig.java │ │ │ ├── gb28181/ │ │ │ │ ├── SipLayer.java │ │ │ │ ├── auth/ │ │ │ │ │ └── DigestServerAuthenticationHelper.java │ │ │ │ ├── bean/ │ │ │ │ │ ├── AlarmChannelMessage.java │ │ │ │ │ ├── AudioBroadcastCatch.java │ │ │ │ │ ├── AudioBroadcastCatchStatus.java │ │ │ │ │ ├── BaiduPoint.java │ │ │ │ │ ├── BasicParam.java │ │ │ │ │ ├── CatalogChannelEvent.java │ │ │ │ │ ├── CatalogData.java │ │ │ │ │ ├── CmdType.java │ │ │ │ │ ├── CommonGBChannel.java │ │ │ │ │ ├── CommonRecordInfo.java │ │ │ │ │ ├── Device.java │ │ │ │ │ ├── DeviceAlarm.java │ │ │ │ │ ├── DeviceAlarmMethod.java │ │ │ │ │ ├── DeviceChannel.java │ │ │ │ │ ├── DeviceChannelInPlatform.java │ │ │ │ │ ├── DeviceNotFoundEvent.java │ │ │ │ │ ├── DeviceType.java │ │ │ │ │ ├── DeviceTypeEnum.java │ │ │ │ │ ├── DragZoomParam.java │ │ │ │ │ ├── DragZoomRequest.java │ │ │ │ │ ├── DrawThinProcess.java │ │ │ │ │ ├── FrontEndCode.java │ │ │ │ │ ├── FrontEndControlCodeForAuxiliary.java │ │ │ │ │ ├── FrontEndControlCodeForFI.java │ │ │ │ │ ├── FrontEndControlCodeForPTZ.java │ │ │ │ │ ├── FrontEndControlCodeForPreset.java │ │ │ │ │ ├── FrontEndControlCodeForScan.java │ │ │ │ │ ├── FrontEndControlCodeForTour.java │ │ │ │ │ ├── FrontEndControlCodeForWiper.java │ │ │ │ │ ├── FrontEndControlType.java │ │ │ │ │ ├── GBStringMsgParser.java │ │ │ │ │ ├── Gb28181Sdp.java │ │ │ │ │ ├── GbCode.java │ │ │ │ │ ├── GbSipDate.java │ │ │ │ │ ├── GbSteamIdentification.java │ │ │ │ │ ├── GbStream.java │ │ │ │ │ ├── GbStringMsgParserFactory.java │ │ │ │ │ ├── Group.java │ │ │ │ │ ├── GroupTree.java │ │ │ │ │ ├── HandlerCatchData.java │ │ │ │ │ ├── HomePositionRequest.java │ │ │ │ │ ├── Host.java │ │ │ │ │ ├── IFrontEndControlCode.java │ │ │ │ │ ├── IndustryCodeType.java │ │ │ │ │ ├── IndustryCodeTypeEnum.java │ │ │ │ │ ├── InviteDecodeException.java │ │ │ │ │ ├── InviteMessageInfo.java │ │ │ │ │ ├── InviteStreamCallback.java │ │ │ │ │ ├── InviteStreamInfo.java │ │ │ │ │ ├── InviteStreamType.java │ │ │ │ │ ├── MessageResponseTask.java │ │ │ │ │ ├── MobilePosition.java │ │ │ │ │ ├── NetworkIdentificationType.java │ │ │ │ │ ├── NetworkIdentificationTypeEnum.java │ │ │ │ │ ├── NotifyCatalogChannel.java │ │ │ │ │ ├── OpenRTPServerResult.java │ │ │ │ │ ├── Platform.java │ │ │ │ │ ├── PlatformCatalog.java │ │ │ │ │ ├── PlatformCatch.java │ │ │ │ │ ├── PlatformChannel.java │ │ │ │ │ ├── PlatformGbStream.java │ │ │ │ │ ├── PlatformKeepaliveCallback.java │ │ │ │ │ ├── PlatformRegister.java │ │ │ │ │ ├── PlayException.java │ │ │ │ │ ├── Preset.java │ │ │ │ │ ├── RecordInfo.java │ │ │ │ │ ├── RecordItem.java │ │ │ │ │ ├── RedisGroupMessage.java │ │ │ │ │ ├── Region.java │ │ │ │ │ ├── RegionTree.java │ │ │ │ │ ├── SDPInfo.java │ │ │ │ │ ├── SendRtpInfo.java │ │ │ │ │ ├── SipMsgInfo.java │ │ │ │ │ ├── SipSendFailEvent.java │ │ │ │ │ ├── SipTransactionInfo.java │ │ │ │ │ ├── SsrcTransaction.java │ │ │ │ │ ├── SubscribeHolder.java │ │ │ │ │ ├── SubscribeInfo.java │ │ │ │ │ ├── SyncStatus.java │ │ │ │ │ ├── TalkRtpInfo.java │ │ │ │ │ └── VectorTileSource.java │ │ │ │ ├── conf/ │ │ │ │ │ ├── DefaultProperties.java │ │ │ │ │ ├── ServerLoggerImpl.java │ │ │ │ │ └── StackLoggerImpl.java │ │ │ │ ├── controller/ │ │ │ │ │ ├── AlarmController.java │ │ │ │ │ ├── ChannelController.java │ │ │ │ │ ├── ChannelFrontEndController.java │ │ │ │ │ ├── DeviceConfig.java │ │ │ │ │ ├── DeviceControl.java │ │ │ │ │ ├── DeviceQuery.java │ │ │ │ │ ├── GBRecordController.java │ │ │ │ │ ├── GroupController.java │ │ │ │ │ ├── MediaController.java │ │ │ │ │ ├── MobilePositionController.java │ │ │ │ │ ├── PlatformController.java │ │ │ │ │ ├── PlayController.java │ │ │ │ │ ├── PlaybackController.java │ │ │ │ │ ├── PtzController.java │ │ │ │ │ ├── RegionController.java │ │ │ │ │ ├── SseController.java │ │ │ │ │ └── bean/ │ │ │ │ │ ├── AudioBroadcastEvent.java │ │ │ │ │ ├── ChannelForThin.java │ │ │ │ │ ├── ChannelListForRpcParam.java │ │ │ │ │ ├── ChannelReduce.java │ │ │ │ │ ├── ChannelToGroupByGbDeviceParam.java │ │ │ │ │ ├── ChannelToGroupParam.java │ │ │ │ │ ├── ChannelToRegionByGbDeviceParam.java │ │ │ │ │ ├── ChannelToRegionParam.java │ │ │ │ │ ├── DrawThinParam.java │ │ │ │ │ ├── Extent.java │ │ │ │ │ ├── PlayResult.java │ │ │ │ │ ├── ResetParam.java │ │ │ │ │ └── UpdateChannelParam.java │ │ │ │ ├── dao/ │ │ │ │ │ ├── CommonGBChannelMapper.java │ │ │ │ │ ├── DeviceAlarmMapper.java │ │ │ │ │ ├── DeviceChannelMapper.java │ │ │ │ │ ├── DeviceMapper.java │ │ │ │ │ ├── DeviceMobilePositionMapper.java │ │ │ │ │ ├── GroupMapper.java │ │ │ │ │ ├── PlatformChannelMapper.java │ │ │ │ │ ├── PlatformMapper.java │ │ │ │ │ ├── RegionMapper.java │ │ │ │ │ └── provider/ │ │ │ │ │ ├── ChannelProvider.java │ │ │ │ │ └── DeviceChannelProvider.java │ │ │ │ ├── event/ │ │ │ │ │ ├── EventPublisher.java │ │ │ │ │ ├── MessageSubscribe.java │ │ │ │ │ ├── SipSubscribe.java │ │ │ │ │ ├── alarm/ │ │ │ │ │ │ ├── AlarmEvent.java │ │ │ │ │ │ └── AlarmEventListener.java │ │ │ │ │ ├── channel/ │ │ │ │ │ │ └── ChannelEvent.java │ │ │ │ │ ├── record/ │ │ │ │ │ │ ├── RecordInfoEndEvent.java │ │ │ │ │ │ ├── RecordInfoEvent.java │ │ │ │ │ │ └── RecordInfoEventListener.java │ │ │ │ │ ├── sip/ │ │ │ │ │ │ ├── MessageEvent.java │ │ │ │ │ │ └── SipEvent.java │ │ │ │ │ └── subscribe/ │ │ │ │ │ ├── catalog/ │ │ │ │ │ │ ├── CatalogEvent.java │ │ │ │ │ │ └── CatalogEventLister.java │ │ │ │ │ └── mobilePosition/ │ │ │ │ │ ├── MobilePositionEvent.java │ │ │ │ │ └── MobilePositionEventLister.java │ │ │ │ ├── service/ │ │ │ │ │ ├── IDeviceAlarmService.java │ │ │ │ │ ├── IDeviceChannelService.java │ │ │ │ │ ├── IDeviceService.java │ │ │ │ │ ├── IGbChannelControlService.java │ │ │ │ │ ├── IGbChannelPlayService.java │ │ │ │ │ ├── IGbChannelService.java │ │ │ │ │ ├── IGroupService.java │ │ │ │ │ ├── IInviteStreamService.java │ │ │ │ │ ├── IPTZService.java │ │ │ │ │ ├── IPlatformChannelService.java │ │ │ │ │ ├── IPlatformService.java │ │ │ │ │ ├── IPlayService.java │ │ │ │ │ ├── IRegionService.java │ │ │ │ │ ├── ISourceDownloadService.java │ │ │ │ │ ├── ISourcePTZService.java │ │ │ │ │ ├── ISourcePlayService.java │ │ │ │ │ ├── ISourcePlaybackService.java │ │ │ │ │ └── impl/ │ │ │ │ │ ├── DeviceAlarmServiceImpl.java │ │ │ │ │ ├── DeviceChannelServiceImpl.java │ │ │ │ │ ├── DeviceServiceImpl.java │ │ │ │ │ ├── GbChannelControlServiceImpl.java │ │ │ │ │ ├── GbChannelPlayServiceImpl.java │ │ │ │ │ ├── GbChannelServiceImpl.java │ │ │ │ │ ├── GroupServiceImpl.java │ │ │ │ │ ├── InviteStreamServiceImpl.java │ │ │ │ │ ├── PTZServiceImpl.java │ │ │ │ │ ├── PlatformChannelServiceImpl.java │ │ │ │ │ ├── PlatformServiceImpl.java │ │ │ │ │ ├── PlayServiceImpl.java │ │ │ │ │ ├── RegionServiceImpl.java │ │ │ │ │ ├── SourceDownloadServiceForGbImpl.java │ │ │ │ │ ├── SourcePTZServiceForGbImpl.java │ │ │ │ │ ├── SourcePlayServiceForGbImpl.java │ │ │ │ │ └── SourcePlaybackServiceForGbImpl.java │ │ │ │ ├── session/ │ │ │ │ │ ├── AudioBroadcastManager.java │ │ │ │ │ ├── CatalogDataManager.java │ │ │ │ │ ├── CommonSessionManager.java │ │ │ │ │ ├── SSRCFactory.java │ │ │ │ │ ├── SipInviteSessionManager.java │ │ │ │ │ └── SseSessionManager.java │ │ │ │ ├── task/ │ │ │ │ │ ├── deviceStatus/ │ │ │ │ │ │ ├── DeviceStatusTask.java │ │ │ │ │ │ ├── DeviceStatusTaskInfo.java │ │ │ │ │ │ └── DeviceStatusTaskRunner.java │ │ │ │ │ ├── deviceSubscribe/ │ │ │ │ │ │ ├── SubscribeTask.java │ │ │ │ │ │ ├── SubscribeTaskInfo.java │ │ │ │ │ │ ├── SubscribeTaskRunner.java │ │ │ │ │ │ └── impl/ │ │ │ │ │ │ ├── SubscribeTaskForCatalog.java │ │ │ │ │ │ └── SubscribeTaskForMobilPosition.java │ │ │ │ │ └── platformStatus/ │ │ │ │ │ ├── PlatformKeepaliveTask.java │ │ │ │ │ ├── PlatformRegisterTask.java │ │ │ │ │ ├── PlatformRegisterTaskInfo.java │ │ │ │ │ └── PlatformStatusTaskRunner.java │ │ │ │ ├── transmit/ │ │ │ │ │ ├── ISIPProcessorObserver.java │ │ │ │ │ ├── SIPProcessorObserver.java │ │ │ │ │ ├── SIPSender.java │ │ │ │ │ ├── callback/ │ │ │ │ │ │ ├── DeferredResultHolder.java │ │ │ │ │ │ └── RequestMessage.java │ │ │ │ │ ├── cmd/ │ │ │ │ │ │ ├── ISIPCommander.java │ │ │ │ │ │ ├── ISIPCommanderForPlatform.java │ │ │ │ │ │ ├── SIPRequestHeaderPlarformProvider.java │ │ │ │ │ │ ├── SIPRequestHeaderProvider.java │ │ │ │ │ │ └── impl/ │ │ │ │ │ │ ├── SIPCommander.java │ │ │ │ │ │ └── SIPCommanderForPlatform.java │ │ │ │ │ └── event/ │ │ │ │ │ ├── request/ │ │ │ │ │ │ ├── ISIPRequestProcessor.java │ │ │ │ │ │ ├── SIPRequestProcessorParent.java │ │ │ │ │ │ └── impl/ │ │ │ │ │ │ ├── AckRequestProcessor.java │ │ │ │ │ │ ├── ByeRequestProcessor.java │ │ │ │ │ │ ├── CancelRequestProcessor.java │ │ │ │ │ │ ├── InviteRequestProcessor.java │ │ │ │ │ │ ├── NotifyRequestForCatalogProcessor.java │ │ │ │ │ │ ├── NotifyRequestForMobilePositionProcessor.java │ │ │ │ │ │ ├── NotifyRequestProcessor.java │ │ │ │ │ │ ├── RegisterRequestProcessor.java │ │ │ │ │ │ ├── SubscribeRequestProcessor.java │ │ │ │ │ │ ├── info/ │ │ │ │ │ │ │ └── InfoRequestProcessor.java │ │ │ │ │ │ └── message/ │ │ │ │ │ │ ├── IMessageHandler.java │ │ │ │ │ │ ├── MessageHandlerAbstract.java │ │ │ │ │ │ ├── MessageRequestProcessor.java │ │ │ │ │ │ ├── control/ │ │ │ │ │ │ │ ├── ControlMessageHandler.java │ │ │ │ │ │ │ └── cmd/ │ │ │ │ │ │ │ └── DeviceControlQueryMessageHandler.java │ │ │ │ │ │ ├── notify/ │ │ │ │ │ │ │ ├── NotifyMessageHandler.java │ │ │ │ │ │ │ └── cmd/ │ │ │ │ │ │ │ ├── AlarmNotifyMessageHandler.java │ │ │ │ │ │ │ ├── BroadcastNotifyMessageHandler.java │ │ │ │ │ │ │ ├── KeepaliveNotifyMessageHandler.java │ │ │ │ │ │ │ ├── MediaStatusNotifyMessageHandler.java │ │ │ │ │ │ │ └── MobilePositionNotifyMessageHandler.java │ │ │ │ │ │ ├── query/ │ │ │ │ │ │ │ ├── QueryMessageHandler.java │ │ │ │ │ │ │ └── cmd/ │ │ │ │ │ │ │ ├── AlarmQueryMessageHandler.java │ │ │ │ │ │ │ ├── CatalogQueryMessageHandler.java │ │ │ │ │ │ │ ├── DeviceInfoQueryMessageHandler.java │ │ │ │ │ │ │ ├── DeviceStatusQueryMessageHandler.java │ │ │ │ │ │ │ └── RecordInfoQueryMessageHandler.java │ │ │ │ │ │ └── response/ │ │ │ │ │ │ ├── ResponseMessageHandler.java │ │ │ │ │ │ └── cmd/ │ │ │ │ │ │ ├── AlarmResponseMessageHandler.java │ │ │ │ │ │ ├── BroadcastResponseMessageHandler.java │ │ │ │ │ │ ├── CatalogResponseMessageHandler.java │ │ │ │ │ │ ├── ConfigDownloadResponseMessageHandler.java │ │ │ │ │ │ ├── DeviceInfoResponseMessageHandler.java │ │ │ │ │ │ ├── DeviceStatusResponseMessageHandler.java │ │ │ │ │ │ ├── MobilePositionResponseMessageHandler.java │ │ │ │ │ │ ├── PresetQueryResponseMessageHandler.java │ │ │ │ │ │ └── RecordInfoResponseMessageHandler.java │ │ │ │ │ └── response/ │ │ │ │ │ ├── ISIPResponseProcessor.java │ │ │ │ │ ├── SIPResponseProcessorAbstract.java │ │ │ │ │ └── impl/ │ │ │ │ │ ├── ByeResponseProcessor.java │ │ │ │ │ ├── CancelResponseProcessor.java │ │ │ │ │ ├── InviteResponseProcessor.java │ │ │ │ │ └── RegisterResponseProcessor.java │ │ │ │ └── utils/ │ │ │ │ ├── Coordtransform.java │ │ │ │ ├── MessageElement.java │ │ │ │ ├── MessageElementForCatalog.java │ │ │ │ ├── NumericUtil.java │ │ │ │ ├── SipUtils.java │ │ │ │ ├── VectorTileCatch.java │ │ │ │ └── XmlUtil.java │ │ │ ├── jt1078/ │ │ │ │ ├── annotation/ │ │ │ │ │ └── MsgId.java │ │ │ │ ├── bean/ │ │ │ │ │ ├── JTAlarmSign.java │ │ │ │ │ ├── JTAreaAttribute.java │ │ │ │ │ ├── JTAreaOrRoute.java │ │ │ │ │ ├── JTChannel.java │ │ │ │ │ ├── JTCircleArea.java │ │ │ │ │ ├── JTCommunicationModuleAttribute.java │ │ │ │ │ ├── JTConfirmationAlarmMessageType.java │ │ │ │ │ ├── JTDevice.java │ │ │ │ │ ├── JTDeviceAttribute.java │ │ │ │ │ ├── JTDeviceConfig.java │ │ │ │ │ ├── JTDeviceConnectionControl.java │ │ │ │ │ ├── JTDeviceType.java │ │ │ │ │ ├── JTDriverInformation.java │ │ │ │ │ ├── JTGnssAttribute.java │ │ │ │ │ ├── JTMediaAttribute.java │ │ │ │ │ ├── JTMediaDataInfo.java │ │ │ │ │ ├── JTMediaEventInfo.java │ │ │ │ │ ├── JTMediaStreamType.java │ │ │ │ │ ├── JTPassengerNum.java │ │ │ │ │ ├── JTPhoneBookContact.java │ │ │ │ │ ├── JTPolygonArea.java │ │ │ │ │ ├── JTPolygonPoint.java │ │ │ │ │ ├── JTPositionAdditionalInfo.java │ │ │ │ │ ├── JTPositionBaseInfo.java │ │ │ │ │ ├── JTPositionInfo.java │ │ │ │ │ ├── JTQueryMediaDataCommand.java │ │ │ │ │ ├── JTRecordDownloadCatch.java │ │ │ │ │ ├── JTRectangleArea.java │ │ │ │ │ ├── JTRoute.java │ │ │ │ │ ├── JTRouteAttribute.java │ │ │ │ │ ├── JTRoutePoint.java │ │ │ │ │ ├── JTRouteSectionAttribute.java │ │ │ │ │ ├── JTShootingCommand.java │ │ │ │ │ ├── JTStatus.java │ │ │ │ │ ├── JTTextSign.java │ │ │ │ │ ├── JTVehicleControl.java │ │ │ │ │ ├── JTVideoAlarm.java │ │ │ │ │ ├── common/ │ │ │ │ │ │ └── ConfigAttribute.java │ │ │ │ │ └── config/ │ │ │ │ │ ├── JTAlarmRecordingParam.java │ │ │ │ │ ├── JTAloneChanel.java │ │ │ │ │ ├── JTAnalyzeAlarmParam.java │ │ │ │ │ ├── JTAwakenParam.java │ │ │ │ │ ├── JTCameraTimer.java │ │ │ │ │ ├── JTChanelConfig.java │ │ │ │ │ ├── JTChannelListParam.java │ │ │ │ │ ├── JTChannelParam.java │ │ │ │ │ ├── JTCollisionAlarmParams.java │ │ │ │ │ ├── JTDeviceSubConfig.java │ │ │ │ │ ├── JTGnssPositioningMode.java │ │ │ │ │ ├── JTIllegalDrivingPeriods.java │ │ │ │ │ ├── JTOSDConfig.java │ │ │ │ │ ├── JTVideoAlarmBit.java │ │ │ │ │ └── JTVideoParam.java │ │ │ │ ├── cmd/ │ │ │ │ │ └── JT1078Template.java │ │ │ │ ├── codec/ │ │ │ │ │ ├── decode/ │ │ │ │ │ │ ├── Jt808Decoder.java │ │ │ │ │ │ └── MultiPacketManager.java │ │ │ │ │ ├── encode/ │ │ │ │ │ │ ├── Jt808Encoder.java │ │ │ │ │ │ └── Jt808EncoderCmd.java │ │ │ │ │ └── netty/ │ │ │ │ │ ├── Jt808Handler.java │ │ │ │ │ └── TcpServer.java │ │ │ │ ├── config/ │ │ │ │ │ ├── JT1078AutoConfiguration.java │ │ │ │ │ └── JT1078Config.java │ │ │ │ ├── controller/ │ │ │ │ │ ├── JT1078Controller.java │ │ │ │ │ ├── JT1078TerminalController.java │ │ │ │ │ └── bean/ │ │ │ │ │ ├── ConfirmationAlarmMessageParam.java │ │ │ │ │ ├── ConnectionControlParam.java │ │ │ │ │ ├── QueryMediaDataParam.java │ │ │ │ │ ├── SetAreaParam.java │ │ │ │ │ ├── SetConfigParam.java │ │ │ │ │ ├── SetPhoneBookParam.java │ │ │ │ │ ├── ShootingParam.java │ │ │ │ │ └── TextMessageParam.java │ │ │ │ ├── dao/ │ │ │ │ │ ├── JTChannelMapper.java │ │ │ │ │ ├── JTTerminalMapper.java │ │ │ │ │ └── provider/ │ │ │ │ │ └── JTChannelProvider.java │ │ │ │ ├── event/ │ │ │ │ │ ├── ConnectChangeEvent.java │ │ │ │ │ ├── DeviceUpdateEvent.java │ │ │ │ │ ├── FtpUploadEvent.java │ │ │ │ │ ├── JTPositionEvent.java │ │ │ │ │ └── eventListener/ │ │ │ │ │ └── ConnectChangeEventListener.java │ │ │ │ ├── proc/ │ │ │ │ │ ├── Header.java │ │ │ │ │ ├── entity/ │ │ │ │ │ │ └── Cmd.java │ │ │ │ │ ├── factory/ │ │ │ │ │ │ └── CodecFactory.java │ │ │ │ │ ├── request/ │ │ │ │ │ │ ├── J0001.java │ │ │ │ │ │ ├── J0002.java │ │ │ │ │ │ ├── J0003.java │ │ │ │ │ │ ├── J0004.java │ │ │ │ │ │ ├── J0100.java │ │ │ │ │ │ ├── J0102.java │ │ │ │ │ │ ├── J0104.java │ │ │ │ │ │ ├── J0107.java │ │ │ │ │ │ ├── J0200.java │ │ │ │ │ │ ├── J0201.java │ │ │ │ │ │ ├── J0500.java │ │ │ │ │ │ ├── J0608.java │ │ │ │ │ │ ├── J0702.java │ │ │ │ │ │ ├── J0704.java │ │ │ │ │ │ ├── J0800.java │ │ │ │ │ │ ├── J0801.java │ │ │ │ │ │ ├── J0802.java │ │ │ │ │ │ ├── J0805.java │ │ │ │ │ │ ├── J0900.java │ │ │ │ │ │ ├── J0901.java │ │ │ │ │ │ ├── J0A00.java │ │ │ │ │ │ ├── J1003.java │ │ │ │ │ │ ├── J1005.java │ │ │ │ │ │ ├── J1205.java │ │ │ │ │ │ ├── J1206.java │ │ │ │ │ │ └── Re.java │ │ │ │ │ └── response/ │ │ │ │ │ ├── J8001.java │ │ │ │ │ ├── J8100.java │ │ │ │ │ ├── J8103.java │ │ │ │ │ ├── J8104.java │ │ │ │ │ ├── J8105.java │ │ │ │ │ ├── J8106.java │ │ │ │ │ ├── J8107.java │ │ │ │ │ ├── J8201.java │ │ │ │ │ ├── J8202.java │ │ │ │ │ ├── J8203.java │ │ │ │ │ ├── J8204.java │ │ │ │ │ ├── J8300.java │ │ │ │ │ ├── J8400.java │ │ │ │ │ ├── J8401.java │ │ │ │ │ ├── J8500.java │ │ │ │ │ ├── J8600.java │ │ │ │ │ ├── J8601.java │ │ │ │ │ ├── J8602.java │ │ │ │ │ ├── J8603.java │ │ │ │ │ ├── J8604.java │ │ │ │ │ ├── J8605.java │ │ │ │ │ ├── J8606.java │ │ │ │ │ ├── J8607.java │ │ │ │ │ ├── J8608.java │ │ │ │ │ ├── J8702.java │ │ │ │ │ ├── J8801.java │ │ │ │ │ ├── J8802.java │ │ │ │ │ ├── J8803.java │ │ │ │ │ ├── J8804.java │ │ │ │ │ ├── J8805.java │ │ │ │ │ ├── J8900.java │ │ │ │ │ ├── J8A00.java │ │ │ │ │ ├── J9003.java │ │ │ │ │ ├── J9101.java │ │ │ │ │ ├── J9102.java │ │ │ │ │ ├── J9201.java │ │ │ │ │ ├── J9202.java │ │ │ │ │ ├── J9205.java │ │ │ │ │ ├── J9206.java │ │ │ │ │ ├── J9207.java │ │ │ │ │ ├── J9301.java │ │ │ │ │ ├── J9302.java │ │ │ │ │ ├── J9303.java │ │ │ │ │ ├── J9304.java │ │ │ │ │ ├── J9305.java │ │ │ │ │ ├── J9306.java │ │ │ │ │ └── Rs.java │ │ │ │ ├── service/ │ │ │ │ │ ├── Ijt1078PlayService.java │ │ │ │ │ ├── Ijt1078Service.java │ │ │ │ │ └── impl/ │ │ │ │ │ ├── SourcePTZServiceForJTImpl.java │ │ │ │ │ ├── SourcePlayServiceForJTImpl.java │ │ │ │ │ ├── SourcePlaybackServiceForJTImpl.java │ │ │ │ │ ├── jt1078PlayServiceImpl.java │ │ │ │ │ └── jt1078ServiceImpl.java │ │ │ │ ├── session/ │ │ │ │ │ ├── FtpDownloadManager.java │ │ │ │ │ ├── Session.java │ │ │ │ │ └── SessionManager.java │ │ │ │ └── util/ │ │ │ │ ├── BCDUtil.java │ │ │ │ ├── Bin.java │ │ │ │ └── ClassUtil.java │ │ │ ├── media/ │ │ │ │ ├── MediaServerConfig.java │ │ │ │ ├── abl/ │ │ │ │ │ ├── ABLHttpHookListener.java │ │ │ │ │ ├── ABLMediaNodeServerService.java │ │ │ │ │ ├── ABLMediaServerStatusManger.java │ │ │ │ │ ├── ABLRESTfulUtils.java │ │ │ │ │ ├── bean/ │ │ │ │ │ │ ├── ABLMedia.java │ │ │ │ │ │ ├── ABLRecordFile.java │ │ │ │ │ │ ├── ABLResult.java │ │ │ │ │ │ ├── ABLUrls.java │ │ │ │ │ │ ├── AblServerConfig.java │ │ │ │ │ │ ├── ConfigKeyId.java │ │ │ │ │ │ └── hook/ │ │ │ │ │ │ ├── ABLHookParam.java │ │ │ │ │ │ ├── OnPlayABLHookParam.java │ │ │ │ │ │ ├── OnPublishABLHookParam.java │ │ │ │ │ │ ├── OnRecordMp4ABLHookParam.java │ │ │ │ │ │ ├── OnRecordProgressABLHookParam.java │ │ │ │ │ │ ├── OnServerKeepaliveABLHookParam.java │ │ │ │ │ │ ├── OnServerStaredABLHookParam.java │ │ │ │ │ │ └── OnStreamArriveABLHookParam.java │ │ │ │ │ └── event/ │ │ │ │ │ ├── HookAblServerKeepaliveEvent.java │ │ │ │ │ └── HookAblServerStartEvent.java │ │ │ │ ├── bean/ │ │ │ │ │ ├── MediaInfo.java │ │ │ │ │ ├── MediaServer.java │ │ │ │ │ ├── RecordInfo.java │ │ │ │ │ └── ResultForOnPublish.java │ │ │ │ ├── event/ │ │ │ │ │ ├── hook/ │ │ │ │ │ │ ├── Hook.java │ │ │ │ │ │ ├── HookData.java │ │ │ │ │ │ ├── HookSubscribe.java │ │ │ │ │ │ └── HookType.java │ │ │ │ │ ├── media/ │ │ │ │ │ │ ├── MediaArrivalEvent.java │ │ │ │ │ │ ├── MediaDepartureEvent.java │ │ │ │ │ │ ├── MediaEvent.java │ │ │ │ │ │ ├── MediaNotFoundEvent.java │ │ │ │ │ │ ├── MediaPublishEvent.java │ │ │ │ │ │ ├── MediaRecordMp4Event.java │ │ │ │ │ │ ├── MediaRecordProcessEvent.java │ │ │ │ │ │ └── MediaRtpServerTimeoutEvent.java │ │ │ │ │ └── mediaServer/ │ │ │ │ │ ├── MediaSendRtpStoppedEvent.java │ │ │ │ │ ├── MediaServerChangeEvent.java │ │ │ │ │ ├── MediaServerDeleteEvent.java │ │ │ │ │ ├── MediaServerEventAbstract.java │ │ │ │ │ ├── MediaServerOfflineEvent.java │ │ │ │ │ ├── MediaServerOnlineEvent.java │ │ │ │ │ └── MediaServerStatusEventListener.java │ │ │ │ ├── service/ │ │ │ │ │ ├── IMediaNodeServerService.java │ │ │ │ │ ├── IMediaServerService.java │ │ │ │ │ └── impl/ │ │ │ │ │ └── MediaServerServiceImpl.java │ │ │ │ └── zlm/ │ │ │ │ ├── AssistRESTfulUtils.java │ │ │ │ ├── ZLMHttpHookListener.java │ │ │ │ ├── ZLMMediaNodeServerService.java │ │ │ │ ├── ZLMMediaServerStatusManager.java │ │ │ │ ├── ZLMRESTfulUtils.java │ │ │ │ ├── ZLMServerFactory.java │ │ │ │ ├── dto/ │ │ │ │ │ ├── ChannelOnlineEvent.java │ │ │ │ │ ├── FlagData.java │ │ │ │ │ ├── RtpServerResult.java │ │ │ │ │ ├── ServerKeepaliveData.java │ │ │ │ │ ├── SessionData.java │ │ │ │ │ ├── StreamAuthorityInfo.java │ │ │ │ │ ├── StreamProxyResult.java │ │ │ │ │ ├── ZLMResult.java │ │ │ │ │ ├── ZLMRunInfo.java │ │ │ │ │ ├── ZLMServerConfig.java │ │ │ │ │ └── hook/ │ │ │ │ │ ├── HookParam.java │ │ │ │ │ ├── HookResult.java │ │ │ │ │ ├── HookResultForOnPublish.java │ │ │ │ │ ├── OnPlayHookParam.java │ │ │ │ │ ├── OnPublishHookParam.java │ │ │ │ │ ├── OnRecordMp4HookParam.java │ │ │ │ │ ├── OnRtpServerTimeoutHookParam.java │ │ │ │ │ ├── OnSendRtpStoppedHookParam.java │ │ │ │ │ ├── OnServerKeepaliveHookParam.java │ │ │ │ │ ├── OnStreamChangedHookParam.java │ │ │ │ │ ├── OnStreamNoneReaderHookParam.java │ │ │ │ │ ├── OnStreamNotFoundHookParam.java │ │ │ │ │ └── OriginType.java │ │ │ │ └── event/ │ │ │ │ ├── HookZlmServerKeepaliveEvent.java │ │ │ │ └── HookZlmServerStartEvent.java │ │ │ ├── service/ │ │ │ │ ├── ICloudRecordService.java │ │ │ │ ├── ILogService.java │ │ │ │ ├── IMapService.java │ │ │ │ ├── IMediaService.java │ │ │ │ ├── IMobilePositionService.java │ │ │ │ ├── IReceiveRtpServerService.java │ │ │ │ ├── IRecordPlanService.java │ │ │ │ ├── IRoleService.java │ │ │ │ ├── ISendRtpServerService.java │ │ │ │ ├── IUserApiKeyService.java │ │ │ │ ├── IUserService.java │ │ │ │ ├── bean/ │ │ │ │ │ ├── CloudRecordItem.java │ │ │ │ │ ├── DownloadFileInfo.java │ │ │ │ │ ├── ErrorCallback.java │ │ │ │ │ ├── GPSMsgInfo.java │ │ │ │ │ ├── InviteErrorCode.java │ │ │ │ │ ├── InviteTimeOutCallback.java │ │ │ │ │ ├── LogFileInfo.java │ │ │ │ │ ├── MediaServerLoad.java │ │ │ │ │ ├── MessageForPushChannel.java │ │ │ │ │ ├── MessageForPushChannelResponse.java │ │ │ │ │ ├── PlayBackCallback.java │ │ │ │ │ ├── PlayBackResult.java │ │ │ │ │ ├── PushStreamStatusChangeFromRedisDto.java │ │ │ │ │ ├── RTPServerParam.java │ │ │ │ │ ├── RecordPlan.java │ │ │ │ │ ├── RecordPlanItem.java │ │ │ │ │ ├── RequestPushStreamMsg.java │ │ │ │ │ ├── RequestSendItemMsg.java │ │ │ │ │ ├── RequestStopPushStreamMsg.java │ │ │ │ │ ├── ResponseSendItemMsg.java │ │ │ │ │ ├── SSRCInfo.java │ │ │ │ │ ├── StreamPushItemFromRedis.java │ │ │ │ │ ├── ThirdPartyGB.java │ │ │ │ │ ├── WvpRedisMsg.java │ │ │ │ │ └── WvpRedisMsgCmd.java │ │ │ │ ├── impl/ │ │ │ │ │ ├── CloudRecordServiceImpl.java │ │ │ │ │ ├── LogServiceImpl.java │ │ │ │ │ ├── MediaServiceImpl.java │ │ │ │ │ ├── MobilePositionServiceImpl.java │ │ │ │ │ ├── RecordPlanServiceImpl.java │ │ │ │ │ ├── RoleServerImpl.java │ │ │ │ │ ├── RtpServerServiceImpl.java │ │ │ │ │ ├── SendRtpServerServiceImpl.java │ │ │ │ │ ├── UserApiKeyServiceImpl.java │ │ │ │ │ └── UserServiceImpl.java │ │ │ │ └── redisMsg/ │ │ │ │ ├── IRedisRpcPlayService.java │ │ │ │ ├── IRedisRpcService.java │ │ │ │ ├── RedisAlarmMsgListener.java │ │ │ │ ├── RedisCloseStreamMsgListener.java │ │ │ │ ├── RedisGpsMsgListener.java │ │ │ │ ├── RedisGroupChangeListener.java │ │ │ │ ├── RedisGroupMsgListener.java │ │ │ │ ├── RedisPushStreamListMsgListener.java │ │ │ │ ├── RedisPushStreamResponseListener.java │ │ │ │ ├── RedisPushStreamStatusMsgListener.java │ │ │ │ ├── control/ │ │ │ │ │ ├── RedisRpcChannelPlayController.java │ │ │ │ │ ├── RedisRpcCloudRecordController.java │ │ │ │ │ ├── RedisRpcDeviceController.java │ │ │ │ │ ├── RedisRpcDevicePlayController.java │ │ │ │ │ ├── RedisRpcGbDeviceController.java │ │ │ │ │ ├── RedisRpcPlatformController.java │ │ │ │ │ ├── RedisRpcSendRtpController.java │ │ │ │ │ ├── RedisRpcStreamProxyController.java │ │ │ │ │ └── RedisRpcStreamPushController.java │ │ │ │ ├── dto/ │ │ │ │ │ ├── RedisRpcController.java │ │ │ │ │ ├── RedisRpcMapping.java │ │ │ │ │ └── RpcController.java │ │ │ │ └── service/ │ │ │ │ ├── RedisRpcPlayServiceImpl.java │ │ │ │ └── RedisRpcServiceImpl.java │ │ │ ├── storager/ │ │ │ │ ├── IRedisCatchStorage.java │ │ │ │ ├── dao/ │ │ │ │ │ ├── CloudRecordServiceMapper.java │ │ │ │ │ ├── MediaServerMapper.java │ │ │ │ │ ├── RecordPlanMapper.java │ │ │ │ │ ├── RoleMapper.java │ │ │ │ │ ├── UserApiKeyMapper.java │ │ │ │ │ ├── UserMapper.java │ │ │ │ │ └── dto/ │ │ │ │ │ ├── ChannelSourceInfo.java │ │ │ │ │ ├── LogDto.java │ │ │ │ │ ├── PlatformRegisterInfo.java │ │ │ │ │ ├── RecordInfo.java │ │ │ │ │ ├── Role.java │ │ │ │ │ ├── User.java │ │ │ │ │ └── UserApiKey.java │ │ │ │ └── impl/ │ │ │ │ └── RedisCatchStorageImpl.java │ │ │ ├── streamProxy/ │ │ │ │ ├── bean/ │ │ │ │ │ ├── StreamProxy.java │ │ │ │ │ └── StreamProxyParam.java │ │ │ │ ├── controller/ │ │ │ │ │ └── StreamProxyController.java │ │ │ │ ├── dao/ │ │ │ │ │ ├── StreamProxyMapper.java │ │ │ │ │ └── provider/ │ │ │ │ │ └── StreamProxyProvider.java │ │ │ │ └── service/ │ │ │ │ ├── IStreamProxyPlayService.java │ │ │ │ ├── IStreamProxyService.java │ │ │ │ └── impl/ │ │ │ │ ├── SourcePlayServiceForStreamProxyImpl.java │ │ │ │ ├── StreamProxyPlayServiceImpl.java │ │ │ │ └── StreamProxyServiceImpl.java │ │ │ ├── streamPush/ │ │ │ │ ├── bean/ │ │ │ │ │ ├── BatchRemoveParam.java │ │ │ │ │ ├── RedisPushStreamMessage.java │ │ │ │ │ ├── StreamPush.java │ │ │ │ │ └── StreamPushExcelDto.java │ │ │ │ ├── controller/ │ │ │ │ │ └── StreamPushController.java │ │ │ │ ├── dao/ │ │ │ │ │ └── StreamPushMapper.java │ │ │ │ ├── enent/ │ │ │ │ │ └── StreamPushUploadFileHandler.java │ │ │ │ └── service/ │ │ │ │ ├── IStreamPushPlayService.java │ │ │ │ ├── IStreamPushService.java │ │ │ │ └── impl/ │ │ │ │ ├── SourcePlayServiceForStreamPushImpl.java │ │ │ │ ├── StreamPushPlayServiceImpl.java │ │ │ │ └── StreamPushServiceImpl.java │ │ │ ├── utils/ │ │ │ │ ├── CivilCodeUtil.java │ │ │ │ ├── Coordtransform.java │ │ │ │ ├── DateUtil.java │ │ │ │ ├── GitUtil.java │ │ │ │ ├── GpsUtil.java │ │ │ │ ├── HttpUtils.java │ │ │ │ ├── IpPortUtil.java │ │ │ │ ├── JsonUtil.java │ │ │ │ ├── MediaServerUtils.java │ │ │ │ ├── SSLSocketClientUtil.java │ │ │ │ ├── SpringBeanFactory.java │ │ │ │ ├── SystemInfoUtils.java │ │ │ │ ├── TileUtils.java │ │ │ │ ├── UJson.java │ │ │ │ └── redis/ │ │ │ │ ├── FastJsonRedisSerializer.java │ │ │ │ ├── RedisUtil.java │ │ │ │ └── RedisUtil2.java │ │ │ ├── vmanager/ │ │ │ │ ├── TestController.java │ │ │ │ ├── bean/ │ │ │ │ │ ├── AudioBroadcastResult.java │ │ │ │ │ ├── BatchGBStreamParam.java │ │ │ │ │ ├── DeferredResultEx.java │ │ │ │ │ ├── DeferredResultFilter.java │ │ │ │ │ ├── ErrorCode.java │ │ │ │ │ ├── MapConfig.java │ │ │ │ │ ├── MapModelIcon.java │ │ │ │ │ ├── OtherPsSendInfo.java │ │ │ │ │ ├── OtherRtpSendInfo.java │ │ │ │ │ ├── PlayTypeEnum.java │ │ │ │ │ ├── RecordFile.java │ │ │ │ │ ├── ResourceBaseInfo.java │ │ │ │ │ ├── ResourceInfo.java │ │ │ │ │ ├── SnapPath.java │ │ │ │ │ ├── StreamContent.java │ │ │ │ │ ├── SystemConfigInfo.java │ │ │ │ │ ├── TablePageInfo.java │ │ │ │ │ └── WVPResult.java │ │ │ │ ├── cloudRecord/ │ │ │ │ │ ├── CloudRecordController.java │ │ │ │ │ └── bean/ │ │ │ │ │ └── CloudRecordUrl.java │ │ │ │ ├── log/ │ │ │ │ │ └── LogController.java │ │ │ │ ├── ps/ │ │ │ │ │ └── PsController.java │ │ │ │ ├── recordPlan/ │ │ │ │ │ ├── RecordPlanController.java │ │ │ │ │ └── bean/ │ │ │ │ │ └── RecordPlanParam.java │ │ │ │ ├── rtp/ │ │ │ │ │ └── RtpController.java │ │ │ │ ├── server/ │ │ │ │ │ └── ServerController.java │ │ │ │ └── user/ │ │ │ │ ├── RoleController.java │ │ │ │ ├── UserApiKeyController.java │ │ │ │ └── UserController.java │ │ │ └── web/ │ │ │ ├── custom/ │ │ │ │ ├── CameraChannelController.java │ │ │ │ ├── bean/ │ │ │ │ │ ├── CameraChannel.java │ │ │ │ │ ├── CameraCount.java │ │ │ │ │ ├── CameraGroup.java │ │ │ │ │ ├── CameraStreamContent.java │ │ │ │ │ ├── CameraStreamInfo.java │ │ │ │ │ ├── ChannelParam.java │ │ │ │ │ ├── IdsQueryParam.java │ │ │ │ │ ├── Point.java │ │ │ │ │ ├── PolygonQueryParam.java │ │ │ │ │ └── SYMember.java │ │ │ │ ├── conf/ │ │ │ │ │ ├── CachedBodyHttpServletRequest.java │ │ │ │ │ ├── SignAuthenticationFilter.java │ │ │ │ │ └── SyTokenManager.java │ │ │ │ └── service/ │ │ │ │ ├── CameraChannelService.java │ │ │ │ └── SyServiceImpl.java │ │ │ └── gb28181/ │ │ │ ├── ApiControlController.java │ │ │ ├── ApiController.java │ │ │ ├── ApiDeviceController.java │ │ │ ├── ApiStreamController.java │ │ │ ├── AuthController.java │ │ │ └── dto/ │ │ │ └── DeviceChannelExtend.java │ │ └── resources/ │ │ ├── application.yml │ │ ├── banner.txt │ │ ├── civilCode.csv │ │ ├── index.html │ │ ├── install.sh │ │ ├── jwk.json │ │ ├── local.jks │ │ ├── logback-spring.xml │ │ └── 配置详情.yml │ └── test/ │ └── java/ │ └── com/ │ └── genersoft/ │ └── iot/ │ └── vmp/ │ └── jt1078/ │ └── JT1078ServerTest.java ├── web/ │ ├── .editorconfig │ ├── .eslintignore │ ├── .eslintrc.js │ ├── .gitignore │ ├── .travis.yml │ ├── LICENSE │ ├── README-zh.md │ ├── README.md │ ├── babel.config.js │ ├── build/ │ │ └── index.js │ ├── jest.config.js │ ├── jsconfig.json │ ├── mock/ │ │ ├── index.js │ │ ├── mock-server.js │ │ ├── table.js │ │ ├── user.js │ │ └── utils.js │ ├── package.json │ ├── postcss.config.js │ ├── public/ │ │ ├── index.html │ │ ├── libDecoder.wasm │ │ └── static/ │ │ ├── file/ │ │ │ └── 设置电话本模板.xlsx │ │ └── js/ │ │ ├── ZLMRTCClient.js │ │ ├── config.js │ │ ├── h265web/ │ │ │ ├── h265webjs-v20221106.js │ │ │ ├── index.d.ts │ │ │ ├── index.js │ │ │ ├── missile-v20221120.wasm │ │ │ └── missile.js │ │ └── jessibuca/ │ │ ├── decoder.js │ │ ├── decoder.wasm │ │ ├── jessibuca.d.ts │ │ └── jessibuca.js │ ├── src/ │ │ ├── App.vue │ │ ├── api/ │ │ │ ├── cloudRecord.js │ │ │ ├── commonChannel.js │ │ │ ├── device.js │ │ │ ├── frontEnd.js │ │ │ ├── gbRecord.js │ │ │ ├── group.js │ │ │ ├── jtDevice.js │ │ │ ├── log.js │ │ │ ├── platform.js │ │ │ ├── play.js │ │ │ ├── playback.js │ │ │ ├── recordPlan.js │ │ │ ├── region.js │ │ │ ├── role.js │ │ │ ├── server.js │ │ │ ├── streamProxy.js │ │ │ ├── streamPush.js │ │ │ ├── table.js │ │ │ ├── user.js │ │ │ └── userApiKey.js │ │ ├── components/ │ │ │ ├── Breadcrumb/ │ │ │ │ └── index.vue │ │ │ ├── Hamburger/ │ │ │ │ └── index.vue │ │ │ └── SvgIcon/ │ │ │ └── index.vue │ │ ├── directive/ │ │ │ └── el-drag-dialog/ │ │ │ ├── drag.js │ │ │ └── index.js │ │ ├── icons/ │ │ │ ├── index.js │ │ │ └── svgo.yml │ │ ├── layout/ │ │ │ ├── components/ │ │ │ │ ├── AppMain.vue │ │ │ │ ├── Navbar.vue │ │ │ │ ├── Sidebar/ │ │ │ │ │ ├── FixiOSBug.js │ │ │ │ │ ├── Item.vue │ │ │ │ │ ├── Link.vue │ │ │ │ │ ├── Logo.vue │ │ │ │ │ ├── SidebarItem.vue │ │ │ │ │ └── index.vue │ │ │ │ ├── TagsView/ │ │ │ │ │ ├── ScrollPane.vue │ │ │ │ │ └── index.vue │ │ │ │ ├── dialog/ │ │ │ │ │ └── changePassword.vue │ │ │ │ └── index.js │ │ │ ├── index.vue │ │ │ └── mixin/ │ │ │ └── ResizeHandler.js │ │ ├── main.js │ │ ├── permission.js │ │ ├── router/ │ │ │ └── index.js │ │ ├── settings.js │ │ ├── store/ │ │ │ ├── getters.js │ │ │ ├── index.js │ │ │ └── modules/ │ │ │ ├── app.js │ │ │ ├── cloudRecord.js │ │ │ ├── commonChanel.js │ │ │ ├── device.js │ │ │ ├── frontEnd.js │ │ │ ├── gbRecord.js │ │ │ ├── group.js │ │ │ ├── jtDevice.js │ │ │ ├── log.js │ │ │ ├── platform.js │ │ │ ├── play.js │ │ │ ├── playback.js │ │ │ ├── recordPlan.js │ │ │ ├── region.js │ │ │ ├── role.js │ │ │ ├── server.js │ │ │ ├── settings.js │ │ │ ├── streamProxy.js │ │ │ ├── streamPush.js │ │ │ ├── tagsView.js │ │ │ ├── user.js │ │ │ └── userApiKeys.js │ │ ├── styles/ │ │ │ ├── element-ui.scss │ │ │ ├── iconfont.scss │ │ │ ├── index.scss │ │ │ ├── mixin.scss │ │ │ ├── sidebar.scss │ │ │ ├── transition.scss │ │ │ └── variables.scss │ │ ├── utils/ │ │ │ ├── auth.js │ │ │ ├── diff.js │ │ │ ├── get-page-title.js │ │ │ ├── index.js │ │ │ ├── request.js │ │ │ └── validate.js │ │ └── views/ │ │ ├── 404.vue │ │ ├── channel/ │ │ │ ├── edit.vue │ │ │ ├── group/ │ │ │ │ └── index.vue │ │ │ ├── index.vue │ │ │ ├── record.vue │ │ │ └── region/ │ │ │ └── index.vue │ │ ├── cloudRecord/ │ │ │ ├── cloudRecordPlayer.vue │ │ │ ├── detail.vue │ │ │ ├── index.vue │ │ │ └── playerDialog.vue │ │ ├── common/ │ │ │ ├── CommonChannelEdit.vue │ │ │ ├── DeviceTree.vue │ │ │ ├── GroupTree.vue │ │ │ ├── MapComponent.vue │ │ │ ├── MapComponent_bak.vue │ │ │ ├── RegionTree.vue │ │ │ ├── VideoTimeLine/ │ │ │ │ ├── WindowListItem.vue │ │ │ │ ├── constant.js │ │ │ │ └── index.vue │ │ │ ├── channelPlayer/ │ │ │ │ ├── chooseChannelForJt.vue │ │ │ │ ├── index.vue │ │ │ │ ├── jtDeviceEdit.vue │ │ │ │ ├── jtDevicePlayer.vue │ │ │ │ ├── ptzCruising.vue │ │ │ │ ├── ptzPreset.vue │ │ │ │ ├── ptzScan.vue │ │ │ │ ├── ptzSwitch.vue │ │ │ │ └── ptzWiper.vue │ │ │ ├── h265web.vue │ │ │ ├── jessibuca.vue │ │ │ ├── map/ │ │ │ │ ├── DragInteraction.js │ │ │ │ └── TransformLonLat.js │ │ │ ├── mediaInfo.vue │ │ │ ├── ptzCruising.vue │ │ │ ├── ptzPreset.vue │ │ │ ├── ptzScan.vue │ │ │ ├── ptzSwitch.vue │ │ │ ├── ptzWiper.vue │ │ │ ├── rtcPlayer.vue │ │ │ └── weekTimePicker.vue │ │ ├── dashboard/ │ │ │ ├── console/ │ │ │ │ ├── ConsoleCPU.vue │ │ │ │ ├── ConsoleDisk.vue │ │ │ │ ├── ConsoleMEM.vue │ │ │ │ ├── ConsoleMediaServer.vue │ │ │ │ ├── ConsoleNet.vue │ │ │ │ ├── ConsoleNodeLoad.vue │ │ │ │ └── ConsoleResource.vue │ │ │ └── index.vue │ │ ├── device/ │ │ │ ├── channel/ │ │ │ │ ├── edit.vue │ │ │ │ ├── index.vue │ │ │ │ └── record.vue │ │ │ ├── edit.vue │ │ │ ├── index.vue │ │ │ └── list.vue │ │ ├── dialog/ │ │ │ ├── GbChannelSelect.vue │ │ │ ├── GbDeviceSelect.vue │ │ │ ├── MediaServerEdit.vue │ │ │ ├── SyncChannelProgress.vue │ │ │ ├── UnusualGroupChannelSelect.vue │ │ │ ├── UnusualRegionChannelSelect.vue │ │ │ ├── addUser.vue │ │ │ ├── addUserApiKey.vue │ │ │ ├── catalogEdit.vue │ │ │ ├── changePasswordForAdmin.vue │ │ │ ├── changePushKey.vue │ │ │ ├── channelCode.vue │ │ │ ├── channelMapInfobox.vue │ │ │ ├── chooseCivilCode.vue │ │ │ ├── chooseGroup.vue │ │ │ ├── chooseTimeRange.vue │ │ │ ├── commonChannelEditDialog.vue │ │ │ ├── configInfo.vue │ │ │ ├── devicePlayer.vue │ │ │ ├── editRecordPlan.vue │ │ │ ├── groupEdit.vue │ │ │ ├── hasStreamChannel.vue │ │ │ ├── importChannel.vue │ │ │ ├── importChannelShowErrorData.vue │ │ │ ├── linkChannelRecord.vue │ │ │ ├── pushStreamEdit.vue │ │ │ ├── queryTrace.vue │ │ │ ├── recordDownload.vue │ │ │ ├── regionCode.vue │ │ │ ├── regionEdit.vue │ │ │ ├── remarkUserApiKey.vue │ │ │ ├── resetChannel.vue │ │ │ ├── shareChannel.vue │ │ │ └── shareChannelAdd.vue │ │ ├── form/ │ │ │ └── index.vue │ │ ├── jtDevice/ │ │ │ ├── channel/ │ │ │ │ ├── edit.vue │ │ │ │ ├── index.vue │ │ │ │ └── record.vue │ │ │ ├── deviceParam/ │ │ │ │ ├── alarm.vue │ │ │ │ ├── alarmSign.vue │ │ │ │ ├── awakenParam.vue │ │ │ │ ├── cameraTimer.vue │ │ │ │ ├── canCollectionParam.vue │ │ │ │ ├── carInfo.vue │ │ │ │ ├── communication.vue │ │ │ │ ├── driving.vue │ │ │ │ ├── gnssParam.vue │ │ │ │ ├── imageConfig.vue │ │ │ │ ├── index.vue │ │ │ │ ├── phoneNumber.vue │ │ │ │ ├── position.vue │ │ │ │ ├── server.vue │ │ │ │ ├── videoAlarmSign.vue │ │ │ │ └── videoParam.vue │ │ │ ├── dialog/ │ │ │ │ ├── attribute.vue │ │ │ │ ├── connectionServer.vue │ │ │ │ ├── controlDoor.vue │ │ │ │ ├── driverInfo.vue │ │ │ │ ├── jtDevicePlayer.vue │ │ │ │ ├── mediaAttribute.vue │ │ │ │ ├── phoneBook.vue │ │ │ │ ├── position.vue │ │ │ │ ├── queryMediaList.vue │ │ │ │ ├── queryMediaListDialog.vue │ │ │ │ ├── shootingNow.vue │ │ │ │ ├── telephoneCallback.vue │ │ │ │ └── textMsg.vue │ │ │ ├── edit.vue │ │ │ ├── index.vue │ │ │ └── list.vue │ │ ├── live/ │ │ │ └── index.vue │ │ ├── login/ │ │ │ └── index.vue │ │ ├── map/ │ │ │ ├── dialog/ │ │ │ │ └── drawThinProgress.vue │ │ │ ├── index.vue │ │ │ └── queryTrace.vue │ │ ├── mediaServer/ │ │ │ └── index.vue │ │ ├── operations/ │ │ │ ├── historyLog.vue │ │ │ ├── realLog.vue │ │ │ ├── showLog.vue │ │ │ └── systemInfo.vue │ │ ├── platform/ │ │ │ ├── edit.vue │ │ │ └── index.vue │ │ ├── recordPlan/ │ │ │ └── index.vue │ │ ├── streamProxy/ │ │ │ ├── edit.vue │ │ │ └── index.vue │ │ ├── streamPush/ │ │ │ ├── buildPushStreamUrl.vue │ │ │ ├── edit.vue │ │ │ └── index.vue │ │ └── user/ │ │ ├── apiKeyManager.vue │ │ └── index.vue │ ├── tests/ │ │ └── unit/ │ │ ├── .eslintrc.js │ │ ├── components/ │ │ │ ├── Breadcrumb.spec.js │ │ │ ├── Hamburger.spec.js │ │ │ └── SvgIcon.spec.js │ │ └── utils/ │ │ ├── formatTime.spec.js │ │ ├── param2Obj.spec.js │ │ ├── parseTime.spec.js │ │ └── validate.spec.js │ └── vue.config.js ├── 打包/ │ └── config/ │ └── config.ini └── 数据库/ ├── 2.6.9/ │ ├── 初始化-mysql-2.6.9.sql │ ├── 初始化-postgresql-kingbase-2.6.9.sql │ ├── 更新-mysql-2.6.9.sql │ └── 更新-postgresql-kingbase-2.6.9.sql ├── 2.7.0/ │ ├── 初始化-mysql-2.7.0.sql │ ├── 初始化-postgresql-kingbase-2.7.0.sql │ ├── 更新-mysql-2.7.0.sql │ └── 更新-postgresql-kingbase-2.7.0.sql ├── 2.7.1/ │ ├── 初始化-mysql-2.7.1.sql │ ├── 初始化-postgresql-kingbase-2.7.1.sql │ ├── 更新-mysql-2.7.1.sql │ └── 更新-postgresql-kingbase-2.7.1.sql ├── 2.7.3/ │ ├── 初始化-mysql-2.7.3.sql │ ├── 初始化-postgresql-kingbase-2.7.3.sql │ ├── 更新-mysql-2.7.1升级到2.7.3.sql │ ├── 更新-mysql-2.7.3.sql │ ├── 更新-postgresql-kingbase-2.7.1升级到2.7.3.sql │ └── 更新-postgresql-kingbase-2.7.3.sql ├── 2.7.4/ │ ├── 初始化-mysql-2.7.4.sql │ ├── 初始化-postgresql-kingbase-2.7.4.sql │ ├── 更新-mysql-2.7.4.sql │ └── 更新-postgresql-kingbase-2.7.4.sql ├── 2.7.4-h2/ │ ├── h2-data.sql │ └── h2-schema.sql └── old/ ├── 2.6.6-2.6.7更新.sql ├── 2.6.8升级2.6.9.sql ├── 2.6.8补丁更新.sql └── clean.sql