From 48351c875e37a5e2edd9645c52050894b66984b1 Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期一, 08 四月 2024 18:13:15 +0800
Subject: [PATCH] 国标级联支持制定200OK中sdp的IP
---
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/InviteRequestProcessor.java | 18 +++++++++++++-----
web_src/src/components/dialog/platformEdit.vue | 12 +++++++++---
数据库/2.7.0/更新-mysql-2.7.0.sql | 5 ++++-
src/main/java/com/genersoft/iot/vmp/gb28181/bean/ParentPlatform.java | 11 +++++++++++
数据库/2.7.0/初始化-mysql-2.7.0.sql | 1 +
数据库/2.7.0/初始化-postgresql-kingbase-2.7.0.sql | 1 +
src/main/java/com/genersoft/iot/vmp/storager/dao/ParentPlatformMapper.java | 5 +++--
数据库/2.7.0/更新-postgresql-kingbase-2.7.0.sql | 5 ++++-
8 files changed, 46 insertions(+), 12 deletions(-)
diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/bean/ParentPlatform.java b/src/main/java/com/genersoft/iot/vmp/gb28181/bean/ParentPlatform.java
index 7de5098..5de9761 100755
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/bean/ParentPlatform.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/bean/ParentPlatform.java
@@ -189,6 +189,9 @@
@Schema(description = "鏄惁浣滀负娑堟伅閫氶亾")
private boolean autoPushChannel;
+ @Schema(description = "鐐规挱鍥炲200OK浣跨敤娆P")
+ private String sendStreamIp;
+
public Integer getId() {
return id;
}
@@ -436,4 +439,12 @@
public void setAutoPushChannel(boolean autoPushChannel) {
this.autoPushChannel = autoPushChannel;
}
+
+ public String getSendStreamIp() {
+ return sendStreamIp;
+ }
+
+ public void setSendStreamIp(String sendStreamIp) {
+ this.sendStreamIp = sendStreamIp;
+ }
}
diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/InviteRequestProcessor.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/InviteRequestProcessor.java
index 74fad54..96b8b11 100755
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/InviteRequestProcessor.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/InviteRequestProcessor.java
@@ -38,6 +38,7 @@
import gov.nist.javax.sdp.fields.URIField;
import gov.nist.javax.sip.message.SIPRequest;
import gov.nist.javax.sip.message.SIPResponse;
+import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -404,12 +405,15 @@
// * 2 鎺ㄦ祦涓�
sendRtpItem.setStatus(1);
redisCatchStorage.updateSendRTPSever(sendRtpItem);
-
+ String sdpIp = mediaServerItemInUSe.getSdpIp();
+ if (!ObjectUtils.isEmpty(platform.getSendStreamIp())) {
+ sdpIp = platform.getSendStreamIp();
+ }
StringBuffer content = new StringBuffer(200);
content.append("v=0\r\n");
- content.append("o=" + channelId + " 0 0 IN IP4 " + mediaServerItemInUSe.getSdpIp() + "\r\n");
+ content.append("o=" + channelId + " 0 0 IN IP4 " + sdpIp + "\r\n");
content.append("s=" + sessionName + "\r\n");
- content.append("c=IN IP4 " + mediaServerItemInUSe.getSdpIp() + "\r\n");
+ content.append("c=IN IP4 " + sdpIp + "\r\n");
if ("Playback".equalsIgnoreCase(sessionName)) {
content.append("t=" + finalStartTime + " " + finalStopTime + "\r\n");
} else {
@@ -907,11 +911,15 @@
public SIPResponse sendStreamAck(MediaServerItem mediaServerItem, SIPRequest request, SendRtpItem sendRtpItem, ParentPlatform platform, RequestEvent evt) {
+ String sdpIp = mediaServerItem.getSdpIp();
+ if (!ObjectUtils.isEmpty(platform.getSendStreamIp())) {
+ sdpIp = platform.getSendStreamIp();
+ }
StringBuffer content = new StringBuffer(200);
content.append("v=0\r\n");
- content.append("o=" + sendRtpItem.getChannelId() + " 0 0 IN IP4 " + mediaServerItem.getSdpIp() + "\r\n");
+ content.append("o=" + sendRtpItem.getChannelId() + " 0 0 IN IP4 " + sdpIp + "\r\n");
content.append("s=Play\r\n");
- content.append("c=IN IP4 " + mediaServerItem.getSdpIp() + "\r\n");
+ content.append("c=IN IP4 " + sdpIp + "\r\n");
content.append("t=0 0\r\n");
// 闈炰弗鏍兼ā寮忕鍙d笉缁熶竴, 澧炲姞鍏煎鎬э紝淇敼涓轰竴涓笉涓�0鐨勭鍙�
int localPort = sendRtpItem.getLocalPort();
diff --git a/src/main/java/com/genersoft/iot/vmp/storager/dao/ParentPlatformMapper.java b/src/main/java/com/genersoft/iot/vmp/storager/dao/ParentPlatformMapper.java
index 9dc0503..63b19bb 100755
--- a/src/main/java/com/genersoft/iot/vmp/storager/dao/ParentPlatformMapper.java
+++ b/src/main/java/com/genersoft/iot/vmp/storager/dao/ParentPlatformMapper.java
@@ -17,10 +17,10 @@
@Insert("INSERT INTO wvp_platform (enable, name, server_gb_id, server_gb_domain, server_ip, server_port,device_gb_id,device_ip,"+
"device_port,username,password,expires,keep_timeout,transport,character_set,ptz,rtcp,as_message_channel,auto_push_channel,"+
- "status,start_offline_push,catalog_id,administrative_division,catalog_group,create_time,update_time) " +
+ "status,start_offline_push,catalog_id,administrative_division,catalog_group,create_time,update_time,send_stream_ip) " +
" VALUES (#{enable}, #{name}, #{serverGBId}, #{serverGBDomain}, #{serverIP}, #{serverPort}, #{deviceGBId}, #{deviceIp}, " +
" #{devicePort}, #{username}, #{password}, #{expires}, #{keepTimeout}, #{transport}, #{characterSet}, #{ptz}, #{rtcp}, #{asMessageChannel}, #{autoPushChannel}, " +
- " #{status}, #{startOfflinePush}, #{catalogId}, #{administrativeDivision}, #{catalogGroup}, #{createTime}, #{updateTime})")
+ " #{status}, #{startOfflinePush}, #{catalogId}, #{administrativeDivision}, #{catalogGroup}, #{createTime}, #{updateTime}, #{sendStreamIp})")
int addParentPlatform(ParentPlatform parentPlatform);
@Update("UPDATE wvp_platform " +
@@ -49,6 +49,7 @@
"administrative_division=#{administrativeDivision}, " +
"create_time=#{createTime}, " +
"update_time=#{updateTime}, " +
+ "send_stream_ip=#{sendStreamIp}, " +
"catalog_id=#{catalogId} " +
"WHERE id=#{id}")
int updateParentPlatform(ParentPlatform parentPlatform);
diff --git a/web_src/src/components/dialog/platformEdit.vue b/web_src/src/components/dialog/platformEdit.vue
index f3f4255..4c02dfc 100755
--- a/web_src/src/components/dialog/platformEdit.vue
+++ b/web_src/src/components/dialog/platformEdit.vue
@@ -37,8 +37,8 @@
<el-form-item label="鏈湴绔彛" prop="devicePort">
<el-input v-model="platform.devicePort" :disabled="true" type="number"></el-input>
</el-form-item>
- <el-form-item label="SIP璁よ瘉鐢ㄦ埛鍚�" prop="username">
- <el-input v-model="platform.username"></el-input>
+ <el-form-item label="SDP鍙戞祦IP" prop="sendStreamIp">
+ <el-input v-model="platform.sendStreamIp"></el-input>
</el-form-item>
</el-form>
</el-col>
@@ -46,6 +46,9 @@
<el-form ref="platform2" :rules="rules" :model="platform" label-width="160px">
<el-form-item label="琛屾斂鍖哄垝" prop="administrativeDivision">
<el-input v-model="platform.administrativeDivision" clearable></el-input>
+ </el-form-item>
+ <el-form-item label="SIP璁よ瘉鐢ㄦ埛鍚�" prop="username">
+ <el-input v-model="platform.username"></el-input>
</el-form-item>
<el-form-item label="SIP璁よ瘉瀵嗙爜" prop="password">
<el-input v-model="platform.password" ></el-input>
@@ -159,7 +162,8 @@
characterSet: "GB2312",
startOfflinePush: false,
catalogGroup: 1,
- administrativeDivision: null,
+ administrativeDivision: "",
+ sendStreamIp: null,
},
rules: {
name: [{ required: true, message: "璇疯緭鍏ュ钩鍙板悕绉�", trigger: "blur" }],
@@ -198,6 +202,7 @@
that.platform.devicePort = res.data.data.devicePort;
that.platform.username = res.data.data.username;
that.platform.password = res.data.data.password;
+ that.platform.sendStreamIp = res.data.data.sendStreamIp;
that.platform.administrativeDivision = res.data.data.username.substr(0, 6);
}
@@ -228,6 +233,7 @@
this.platform.catalogId = platform.catalogId;
this.platform.startOfflinePush = platform.startOfflinePush;
this.platform.catalogGroup = platform.catalogGroup;
+ this.platform.sendStreamIp = platform.sendStreamIp;
this.platform.administrativeDivision = platform.administrativeDivision;
this.onSubmit_text = "淇濆瓨";
this.saveUrl = "/api/platform/save";
diff --git "a/\346\225\260\346\215\256\345\272\223/2.7.0/\345\210\235\345\247\213\345\214\226-mysql-2.7.0.sql" "b/\346\225\260\346\215\256\345\272\223/2.7.0/\345\210\235\345\247\213\345\214\226-mysql-2.7.0.sql"
index a3f4a1d..2cd88e7 100644
--- "a/\346\225\260\346\215\256\345\272\223/2.7.0/\345\210\235\345\247\213\345\214\226-mysql-2.7.0.sql"
+++ "b/\346\225\260\346\215\256\345\272\223/2.7.0/\345\210\235\345\247\213\345\214\226-mysql-2.7.0.sql"
@@ -198,6 +198,7 @@
update_time character varying(50),
as_message_channel bool default false,
auto_push_channel bool default false,
+ send_stream_ip character varying(50),
constraint uk_platform_unique_server_gb_id unique (server_gb_id)
);
diff --git "a/\346\225\260\346\215\256\345\272\223/2.7.0/\345\210\235\345\247\213\345\214\226-postgresql-kingbase-2.7.0.sql" "b/\346\225\260\346\215\256\345\272\223/2.7.0/\345\210\235\345\247\213\345\214\226-postgresql-kingbase-2.7.0.sql"
index 9f41667..5cda945 100644
--- "a/\346\225\260\346\215\256\345\272\223/2.7.0/\345\210\235\345\247\213\345\214\226-postgresql-kingbase-2.7.0.sql"
+++ "b/\346\225\260\346\215\256\345\272\223/2.7.0/\345\210\235\345\247\213\345\214\226-postgresql-kingbase-2.7.0.sql"
@@ -198,6 +198,7 @@
update_time character varying(50),
as_message_channel bool default false,
auto_push_channel bool default false,
+ send_stream_ip character varying(50),
constraint uk_platform_unique_server_gb_id unique (server_gb_id)
);
diff --git "a/\346\225\260\346\215\256\345\272\223/2.7.0/\346\233\264\346\226\260-mysql-2.7.0.sql" "b/\346\225\260\346\215\256\345\272\223/2.7.0/\346\233\264\346\226\260-mysql-2.7.0.sql"
index 141c26e..c229fb1 100644
--- "a/\346\225\260\346\215\256\345\272\223/2.7.0/\346\233\264\346\226\260-mysql-2.7.0.sql"
+++ "b/\346\225\260\346\215\256\345\272\223/2.7.0/\346\233\264\346\226\260-mysql-2.7.0.sql"
@@ -2,4 +2,7 @@
add stream_identification character varying(50);
alter table wvp_device
- drop switch_primary_sub_stream;
\ No newline at end of file
+ drop switch_primary_sub_stream;
+
+alter table wvp_platform
+ add send_stream_ip character varying(50);
\ No newline at end of file
diff --git "a/\346\225\260\346\215\256\345\272\223/2.7.0/\346\233\264\346\226\260-postgresql-kingbase-2.7.0.sql" "b/\346\225\260\346\215\256\345\272\223/2.7.0/\346\233\264\346\226\260-postgresql-kingbase-2.7.0.sql"
index 141c26e..c229fb1 100644
--- "a/\346\225\260\346\215\256\345\272\223/2.7.0/\346\233\264\346\226\260-postgresql-kingbase-2.7.0.sql"
+++ "b/\346\225\260\346\215\256\345\272\223/2.7.0/\346\233\264\346\226\260-postgresql-kingbase-2.7.0.sql"
@@ -2,4 +2,7 @@
add stream_identification character varying(50);
alter table wvp_device
- drop switch_primary_sub_stream;
\ No newline at end of file
+ drop switch_primary_sub_stream;
+
+alter table wvp_platform
+ add send_stream_ip character varying(50);
\ No newline at end of file
--
Gitblit v1.8.0