Commit 428c045aab76965a33df46b3c1d3212d9e0db1d7

Authored by panlinlin
1 parent a0b54681

添加系统设置界面,未完成

src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/RegisterRequestProcessor.java
@@ -105,12 +105,11 @@ public class RegisterRequestProcessor extends SIPRequestAbstractProcessor { @@ -105,12 +105,11 @@ public class RegisterRequestProcessor extends SIPRequestAbstractProcessor {
105 // 添加Expires头 105 // 添加Expires头
106 response.addHeader(request.getExpires()); 106 response.addHeader(request.getExpires());
107 107
108 - // 1.获取到通信地址等信息,保存到Redis 108 + // 获取到通信地址等信息
109 FromHeader fromHeader = (FromHeader) request.getHeader(FromHeader.NAME); 109 FromHeader fromHeader = (FromHeader) request.getHeader(FromHeader.NAME);
110 ViaHeader viaHeader = (ViaHeader) request.getHeader(ViaHeader.NAME); 110 ViaHeader viaHeader = (ViaHeader) request.getHeader(ViaHeader.NAME);
111 String received = viaHeader.getReceived(); 111 String received = viaHeader.getReceived();
112 int rPort = viaHeader.getRPort(); 112 int rPort = viaHeader.getRPort();
113 - // 本地模拟设备 received 为空 rPort 为 -1  
114 // 解析本地地址替代 113 // 解析本地地址替代
115 if (StringUtils.isEmpty(received) || rPort == -1) { 114 if (StringUtils.isEmpty(received) || rPort == -1) {
116 received = viaHeader.getHost(); 115 received = viaHeader.getHost();
@@ -152,15 +151,12 @@ public class RegisterRequestProcessor extends SIPRequestAbstractProcessor { @@ -152,15 +151,12 @@ public class RegisterRequestProcessor extends SIPRequestAbstractProcessor {
152 // 下发catelog查询目录 151 // 下发catelog查询目录
153 if (registerFlag == 1 ) { 152 if (registerFlag == 1 ) {
154 logger.info("[{}] 注册成功! deviceId:" + device.getDeviceId(), requestAddress); 153 logger.info("[{}] 注册成功! deviceId:" + device.getDeviceId(), requestAddress);
155 - // boolean exists = storager.exists(device.getDeviceId());  
156 device.setRegisterTimeMillis(System.currentTimeMillis()); 154 device.setRegisterTimeMillis(System.currentTimeMillis());
157 storager.updateDevice(device); 155 storager.updateDevice(device);
158 publisher.onlineEventPublish(device.getDeviceId(), VideoManagerConstants.EVENT_ONLINE_REGISTER); 156 publisher.onlineEventPublish(device.getDeviceId(), VideoManagerConstants.EVENT_ONLINE_REGISTER);
159 157
160 // 重新注册更新设备和通道,以免设备替换或更新后信息无法更新 158 // 重新注册更新设备和通道,以免设备替换或更新后信息无法更新
161 - //if (!exists) {  
162 - handler.onRegister(device);  
163 - //} 159 + handler.onRegister(device);
164 } else if (registerFlag == 2) { 160 } else if (registerFlag == 2) {
165 logger.info("[{}] 注销成功! deviceId:" + device.getDeviceId(), requestAddress); 161 logger.info("[{}] 注销成功! deviceId:" + device.getDeviceId(), requestAddress);
166 publisher.outlineEventPublish(device.getDeviceId(), VideoManagerConstants.EVENT_OUTLINE_UNREGISTER); 162 publisher.outlineEventPublish(device.getDeviceId(), VideoManagerConstants.EVENT_OUTLINE_UNREGISTER);
web_src/src/components/UiHeader.vue
@@ -7,6 +7,12 @@ @@ -7,6 +7,12 @@
7 <el-menu-item index="/streamProxyList">拉流代理</el-menu-item> 7 <el-menu-item index="/streamProxyList">拉流代理</el-menu-item>
8 <el-menu-item index="/parentPlatformList/15/1">国标级联</el-menu-item> 8 <el-menu-item index="/parentPlatformList/15/1">国标级联</el-menu-item>
9 <el-menu-item @click="openDoc">在线文档</el-menu-item> 9 <el-menu-item @click="openDoc">在线文档</el-menu-item>
  10 +<!-- <el-submenu index="/setting">-->
  11 +<!-- <template slot="title">系统设置</template>-->
  12 +<!-- <el-menu-item index="/setting/web">WEB服务</el-menu-item>-->
  13 +<!-- <el-menu-item index="/setting/sip">国标服务</el-menu-item>-->
  14 +<!-- <el-menu-item index="/setting/media">媒体服务</el-menu-item>-->
  15 +<!-- </el-submenu>-->
10 <el-switch v-model="alarmNotify" active-text="报警信息推送" style="display: block float: right" @change="sseControl"></el-switch> 16 <el-switch v-model="alarmNotify" active-text="报警信息推送" style="display: block float: right" @change="sseControl"></el-switch>
11 <!-- <el-menu-item style="float: right;" @click="loginout">退出</el-menu-item>--> 17 <!-- <el-menu-item style="float: right;" @click="loginout">退出</el-menu-item>-->
12 <el-submenu index="" style="float: right;" > 18 <el-submenu index="" style="float: right;" >
web_src/src/components/setting/Media.vue 0 → 100644
  1 +<template>
  2 + <div id="SettingForMedia">
  3 + <el-container>
  4 + <el-header>
  5 + <uiHeader></uiHeader>
  6 + </el-header>
  7 + <el-main>
  8 + <div style="background-color: #FFFFFF; margin-bottom: 1rem; position: relative; padding: 0.5rem; text-align: left;">
  9 + <span style="font-size: 1rem; font-weight: bold;">媒体服务</span>
  10 + </div>
  11 + <div style="width: 60%; margin:0 auto; background-color: #FFFFFF; position: relative; padding: 5rem 6.5rem; text-align: left;font-size: 14px; max-width: 400px">
  12 + <el-form ref="form" :rules="rules" :model="form" label-width="140px">
  13 + <el-form-item label="IP" prop="IP">
  14 + <el-input v-model="form.IP" clearable></el-input>
  15 + </el-form-item>
  16 + <el-form-item label="公网IP" prop="wanIp">
  17 + <el-input v-model="form.wanIp" clearable></el-input>
  18 + </el-form-item>
  19 + <el-form-item label="HOOK IP" prop="hookIp">
  20 + <el-input v-model="form.hookIp" clearable></el-input>
  21 + </el-form-item>
  22 + <el-form-item label="HTTP端口" >
  23 + <el-input v-model.number="form.httpPort" clearable></el-input>
  24 + </el-form-item>
  25 + <el-form-item label="HTTP SSL端口" >
  26 + <el-input v-model.number="form.httpSSlPort" clearable></el-input>
  27 + </el-form-item>
  28 + <el-form-item label="RTMP端口" >
  29 + <el-input v-model.number="form.rtmpPort" clearable></el-input>
  30 + </el-form-item>
  31 + <el-form-item label="RTMP SSL端口" >
  32 + <el-input v-model.number="form.rtmpSSlPort" clearable></el-input>
  33 + </el-form-item>
  34 + <el-form-item label="RTSP端口" >
  35 + <el-input v-model.number="form.rtspPort" clearable></el-input>
  36 + </el-form-item>
  37 + <el-form-item label="RTSP SSL端口" >
  38 + <el-input v-model.number="form.rtspSSLPort" clearable></el-input>
  39 + </el-form-item>
  40 + <el-form-item label="RTP端口" >
  41 + <el-input v-model.number="form.rtpProxyPort" clearable></el-input>
  42 + </el-form-item>
  43 + <el-form-item label="自动点播" >
  44 + <el-switch v-model="form.autoApplyPlay"></el-switch>
  45 + </el-form-item>
  46 + <el-form-item label="接口密钥" prop="secret">
  47 + <el-input v-model="form.secret" clearable></el-input>
  48 + </el-form-item>
  49 + <el-form-item label="无人观看触发时长" >
  50 + <el-input v-model.number="form.streamNoneReaderDelayMS" clearable></el-input>
  51 + </el-form-item>
  52 + <el-form-item label="自动配置" >
  53 + <el-switch v-model="form.autoConfig"></el-switch>
  54 + </el-form-item>
  55 + <el-form-item label="使用多端口" >
  56 + <el-switch v-model="form.rtp.enable"></el-switch>
  57 + </el-form-item>
  58 + <el-form-item label="端口范围" >
  59 + <el-input v-model.number="form.rtp.portRange" clearable></el-input>
  60 + </el-form-item>
  61 + <el-form-item label="DOCKER智能识别">
  62 + <el-input type="textarea" v-model="dockerStr"></el-input>
  63 + </el-form-item>
  64 +
  65 + <el-form-item>
  66 + <div style="float: right;">
  67 + <el-button type="primary" @click="onSubmit">保存</el-button>
  68 +<!-- <el-button @click="close">取消</el-button>-->
  69 + </div>
  70 +
  71 + </el-form-item>
  72 + </el-form>
  73 + </div>
  74 +
  75 +
  76 + </el-main>
  77 + </el-container>
  78 + </div>
  79 +</template>
  80 +
  81 +<script>
  82 +import uiHeader from '../UiHeader.vue'
  83 +export default {
  84 + name: "SettingForMedia",
  85 + components: {
  86 + uiHeader
  87 + },
  88 + data() {
  89 + return {
  90 + dockerStr: null,
  91 + form: {
  92 + ip: null,
  93 + wanIp: null,
  94 + hookIp: null,
  95 + httpPort: null,
  96 + httpSSlPort: null,
  97 + rtmpPort: null,
  98 + rtpProxyPort: null,
  99 + rtspPort: null,
  100 + rtspSSLPort: null,
  101 + autoConfig: true,
  102 + secret: "035c73f7-bb6b-4889-a715-d9eb2d1925cc",
  103 + rtp: {
  104 + enable: false,
  105 + portRange: null
  106 + },
  107 + },
  108 +
  109 + rules: {
  110 + IP: [{ required: true, message: "请输入名称", trigger: "blur" }],
  111 + wanIp: [{ required: false, message: "请输入应用名", trigger: "blur" }],
  112 + hookIp: [{ required: false, message: "请输入流ID", trigger: "blur" }],
  113 + },
  114 + }
  115 + }
  116 +}
  117 +</script>
  118 +
  119 +<style scoped>
  120 +
  121 +</style>
web_src/src/components/setting/Sip.vue 0 → 100644
  1 +<template>
  2 + <div id="SettingForSip">
  3 + <el-container>
  4 + <el-header>
  5 + <uiHeader></uiHeader>
  6 + </el-header>
  7 + <el-main>
  8 + <div style="background-color: #FFFFFF; margin-bottom: 1rem; position: relative; padding: 0.5rem; text-align: left;">
  9 + <span style="font-size: 1rem; font-weight: bold;">国标服务</span>
  10 + </div>
  11 + <div style="width: 60%; margin:0 auto; background-color: #FFFFFF; position: relative; padding: 5rem 6.5rem; text-align: left;font-size: 14px; max-width: 400px">
  12 + <el-form ref="form" :rules="rules" :model="form" label-width="140px">
  13 + <el-form-item label="HTTP端口" prop="port">
  14 + <el-input v-model.number="form.port" clearable></el-input>
  15 + </el-form-item>
  16 + <el-form-item label="点播超时" >
  17 + <el-input v-model.number="form.playTimeout" clearable></el-input>
  18 + </el-form-item>
  19 + <el-form-item label="自动点播" >
  20 + <el-switch v-model="form.autoApplyPlay"></el-switch>
  21 + </el-form-item>
  22 + <el-form-item label="扩展SDP" >
  23 + <el-switch v-model="form.seniorSdp"></el-switch>
  24 + </el-form-item>
  25 + <el-form-item label="保存轨迹" >
  26 + <el-switch v-model="form.savePositionHistory"></el-switch>
  27 + </el-form-item>
  28 + <el-form-item label="等待音视频编码信息">
  29 + <el-switch v-model="form.waitTrack"></el-switch>
  30 + </el-form-item>
  31 + <el-form-item label="开启接口鉴权">
  32 + <el-switch v-model="form.interfaceAuthentication"></el-switch>
  33 + </el-form-item>
  34 +
  35 + <el-form-item>
  36 + <div style="float: right;">
  37 + <el-button type="primary" @click="onSubmit">保存</el-button>
  38 +<!-- <el-button @click="close">取消</el-button>-->
  39 + </div>
  40 +
  41 + </el-form-item>
  42 + </el-form>
  43 + </div>
  44 +
  45 +
  46 + </el-main>
  47 + </el-container>
  48 + </div>
  49 +</template>
  50 +
  51 +<script>
  52 +import uiHeader from '../UiHeader.vue'
  53 +export default {
  54 + name: "SettingForSip",
  55 + components: {
  56 + uiHeader
  57 + },
  58 + data() {
  59 + return {
  60 + form: {
  61 + port: null,
  62 + autoApplyPlay: null,
  63 + seniorSdp: null,
  64 + savePositionHistory: null,
  65 + playTimeout: null,
  66 + waitTrack: null,
  67 + interfaceAuthentication: null,
  68 + },
  69 +
  70 + rules: {
  71 + name: [{ required: true, message: "请输入名称", trigger: "blur" }],
  72 + app: [{ required: true, message: "请输入应用名", trigger: "blur" }],
  73 + stream: [{ required: true, message: "请输入流ID", trigger: "blur" }],
  74 + gbId: [{ required: true, message: "请输入国标编码", trigger: "blur" }],
  75 + },
  76 + }
  77 + }
  78 +}
  79 +</script>
  80 +
  81 +<style scoped>
  82 +
  83 +</style>
web_src/src/components/setting/Web.vue 0 → 100644
  1 +<template>
  2 + <div id="SettingForWeb">
  3 + <el-container>
  4 + <el-header>
  5 + <uiHeader></uiHeader>
  6 + </el-header>
  7 + <el-main>
  8 + <div style="background-color: #FFFFFF; margin-bottom: 1rem; position: relative; padding: 0.5rem; text-align: left;">
  9 + <span style="font-size: 1rem; font-weight: bold;">WEB服务</span>
  10 + </div>
  11 + <div style="width: 60%; margin:0 auto; background-color: #FFFFFF; position: relative; padding: 5rem 6.5rem; text-align: left;font-size: 14px; max-width: 400px">
  12 + <el-form ref="form" :rules="rules" :model="form" label-width="140px">
  13 + <el-form-item label="HTTP端口" prop="port">
  14 + <el-input v-model.number="form.port" clearable></el-input>
  15 + </el-form-item>
  16 + <el-form-item label="点播超时" >
  17 + <el-input v-model.number="form.playTimeout" clearable></el-input>
  18 + </el-form-item>
  19 + <el-form-item label="自动点播" >
  20 + <el-switch v-model="form.autoApplyPlay"></el-switch>
  21 + </el-form-item>
  22 + <el-form-item label="扩展SDP" >
  23 + <el-switch v-model="form.seniorSdp"></el-switch>
  24 + </el-form-item>
  25 + <el-form-item label="保存轨迹" >
  26 + <el-switch v-model="form.savePositionHistory"></el-switch>
  27 + </el-form-item>
  28 + <el-form-item label="等待音视频编码信息">
  29 + <el-switch v-model="form.waitTrack"></el-switch>
  30 + </el-form-item>
  31 + <el-form-item label="开启接口鉴权">
  32 + <el-switch v-model="form.interfaceAuthentication"></el-switch>
  33 + </el-form-item>
  34 +
  35 + <el-form-item>
  36 + <div style="float: right;">
  37 + <el-button type="primary" @click="onSubmit">保存</el-button>
  38 +<!-- <el-button @click="close">取消</el-button>-->
  39 + </div>
  40 +
  41 + </el-form-item>
  42 + </el-form>
  43 + </div>
  44 +
  45 +
  46 + </el-main>
  47 + </el-container>
  48 + </div>
  49 +</template>
  50 +
  51 +<script>
  52 +import uiHeader from '../UiHeader.vue'
  53 +export default {
  54 + name: "SettingForWeb",
  55 + components: {
  56 + uiHeader
  57 + },
  58 + data() {
  59 + return {
  60 + form: {
  61 + port: null,
  62 + autoApplyPlay: null,
  63 + seniorSdp: null,
  64 + savePositionHistory: null,
  65 + playTimeout: null,
  66 + waitTrack: null,
  67 + interfaceAuthentication: null,
  68 + },
  69 +
  70 + rules: {
  71 + name: [{ required: true, message: "请输入名称", trigger: "blur" }],
  72 + app: [{ required: true, message: "请输入应用名", trigger: "blur" }],
  73 + stream: [{ required: true, message: "请输入流ID", trigger: "blur" }],
  74 + gbId: [{ required: true, message: "请输入国标编码", trigger: "blur" }],
  75 + },
  76 + }
  77 + }
  78 +}
  79 +</script>
  80 +
  81 +<style scoped>
  82 +
  83 +</style>
web_src/src/router/index.js
@@ -10,6 +10,9 @@ import devicePosition from &#39;../components/devicePosition.vue&#39; @@ -10,6 +10,9 @@ import devicePosition from &#39;../components/devicePosition.vue&#39;
10 import login from '../components/Login.vue' 10 import login from '../components/Login.vue'
11 import parentPlatformList from '../components/ParentPlatformList.vue' 11 import parentPlatformList from '../components/ParentPlatformList.vue'
12 import test from '../components/test.vue' 12 import test from '../components/test.vue'
  13 +import web from '../components/setting/Web.vue'
  14 +import sip from '../components/setting/Sip.vue'
  15 +import media from '../components/setting/Media.vue'
13 16
14 const originalPush = VueRouter.prototype.push 17 const originalPush = VueRouter.prototype.push
15 VueRouter.prototype.push = function push(location) { 18 VueRouter.prototype.push = function push(location) {
@@ -57,7 +60,22 @@ export default new VueRouter({ @@ -57,7 +60,22 @@ export default new VueRouter({
57 path: '/devicePosition/:deviceId/:parentChannelId/:count/:page', 60 path: '/devicePosition/:deviceId/:parentChannelId/:count/:page',
58 name: 'devicePosition', 61 name: 'devicePosition',
59 component: devicePosition, 62 component: devicePosition,
60 - },, 63 + },
  64 + {
  65 + path: '/setting/web',
  66 + name: 'web',
  67 + component: web,
  68 + },
  69 + {
  70 + path: '/setting/sip',
  71 + name: 'sip',
  72 + component: sip,
  73 + },
  74 + {
  75 + path: '/setting/media',
  76 + name: 'media',
  77 + component: media,
  78 + },
61 { 79 {
62 path: '/test', 80 path: '/test',
63 name: 'test', 81 name: 'test',