648540858
2024-04-08 a890b62fa1bbacd1a6156cbccf59def8b7cfe262
Merge branch '2.7.0'
8个文件已修改
54 ■■■■ 已修改文件
src/main/java/com/genersoft/iot/vmp/gb28181/bean/ParentPlatform.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/InviteRequestProcessor.java 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/genersoft/iot/vmp/storager/dao/ParentPlatformMapper.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
web_src/src/components/dialog/platformEdit.vue 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
数据库/2.7.0/初始化-mysql-2.7.0.sql 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
数据库/2.7.0/初始化-postgresql-kingbase-2.7.0.sql 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
数据库/2.7.0/更新-mysql-2.7.0.sql 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
数据库/2.7.0/更新-postgresql-kingbase-2.7.0.sql 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/genersoft/iot/vmp/gb28181/bean/ParentPlatform.java
@@ -189,6 +189,9 @@
    @Schema(description = "是否作为消息通道")
    private boolean autoPushChannel;
    @Schema(description = "点播回复200OK使用次IP")
    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;
    }
}
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");
        // éžä¸¥æ ¼æ¨¡å¼ç«¯å£ä¸ç»Ÿä¸€, å¢žåŠ å…¼å®¹æ€§ï¼Œä¿®æ”¹ä¸ºä¸€ä¸ªä¸ä¸º0的端口
        int localPort = sendRtpItem.getLocalPort();
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);
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";
Êý¾Ý¿â/2.7.0/³õʼ»¯-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)
);
Êý¾Ý¿â/2.7.0/³õʼ»¯-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)
);
Êý¾Ý¿â/2.7.0/¸üÐÂ-mysql-2.7.0.sql
@@ -3,3 +3,6 @@
alter table wvp_device
    drop switch_primary_sub_stream;
alter table wvp_platform
    add send_stream_ip character varying(50);
Êý¾Ý¿â/2.7.0/¸üÐÂ-postgresql-kingbase-2.7.0.sql
@@ -3,3 +3,6 @@
alter table wvp_device
    drop switch_primary_sub_stream;
alter table wvp_platform
    add send_stream_ip character varying(50);