diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/SIPRequestHeaderProvider.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/SIPRequestHeaderProvider.java index 1c368bf6..6c24b208 100644 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/SIPRequestHeaderProvider.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/SIPRequestHeaderProvider.java @@ -225,7 +225,7 @@ public class SIPRequestHeaderProvider { return request; } - public Request createInfoRequest(Device device, StreamInfo streamInfo, String content, Long cseq) + public Request createInfoRequest(Device device, StreamInfo streamInfo, String content) throws PeerUnavailableException, ParseException, InvalidArgumentException { Request request = null; if (streamInfo == null) return null; @@ -255,9 +255,8 @@ public class SIPRequestHeaderProvider { // Forwards MaxForwardsHeader maxForwards = sipFactory.createHeaderFactory().createMaxForwardsHeader(70); - if (cseq == null) { - cseq = redisCatchStorage.getCSEQ(Request.INFO); - } + + cseq = redisCatchStorage.getCSEQ(Request.INVITE); // ceq CSeqHeader cSeqHeader = sipFactory.createHeaderFactory() .createCSeqHeader(cseq, Request.INFO); diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java index d2ef5edd..7a385f50 100644 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java @@ -1620,7 +1620,7 @@ public class SIPCommander implements ISIPCommander { content.append("PAUSE RTSP/1.0\r\n"); content.append("CSeq: " + cseq + "\r\n"); content.append("PauseTime: now\r\n"); - Request request = headerProvider.createInfoRequest(device, streamInfo, content.toString(), cseq); + Request request = headerProvider.createInfoRequest(device, streamInfo, content.toString()); if (request == null) { return; } @@ -1651,7 +1651,7 @@ public class SIPCommander implements ISIPCommander { content.append("PLAY RTSP/1.0\r\n"); content.append("CSeq: " + cseq + "\r\n"); content.append("Range: npt=now-\r\n"); - Request request = headerProvider.createInfoRequest(device, streamInfo, content.toString(), cseq); + Request request = headerProvider.createInfoRequest(device, streamInfo, content.toString()); if (request == null) return; logger.info(request.toString()); ClientTransaction clientTransaction = null; @@ -1680,7 +1680,7 @@ public class SIPCommander implements ISIPCommander { content.append("CSeq: " + cseq + "\r\n"); content.append("Range: npt=" + Math.abs(seekTime) + "-\r\n"); - Request request = headerProvider.createInfoRequest(device, streamInfo, content.toString(), cseq); + Request request = headerProvider.createInfoRequest(device, streamInfo, content.toString()); if (request == null) return; logger.info(request.toString()); ClientTransaction clientTransaction = null; @@ -1708,7 +1708,7 @@ public class SIPCommander implements ISIPCommander { content.append("PLAY RTSP/1.0\r\n"); content.append("CSeq: " + cseq + "\r\n"); content.append("Scale: " + String.format("%.1f",speed) + "\r\n"); - Request request = headerProvider.createInfoRequest(device, streamInfo, content.toString(), cseq); + Request request = headerProvider.createInfoRequest(device, streamInfo, content.toString()); if (request == null) return; logger.info(request.toString()); ClientTransaction clientTransaction = null; diff --git a/src/main/java/com/genersoft/iot/vmp/utils/node/BaseNode.java b/src/main/java/com/genersoft/iot/vmp/utils/node/BaseNode.java index 7835feba..89e35a54 100644 --- a/src/main/java/com/genersoft/iot/vmp/utils/node/BaseNode.java +++ b/src/main/java/com/genersoft/iot/vmp/utils/node/BaseNode.java @@ -16,7 +16,7 @@ public class BaseNode implements INode { /** * 主键ID */ - protected int id; + protected String channelId; /** * 父节点ID @@ -50,12 +50,8 @@ public class BaseNode implements INode { } @Override - public int getId() { - return id; - } - - public void setId(int id) { - this.id = id; + public String getChannelId() { + return channelId; } @Override @@ -63,10 +59,6 @@ public class BaseNode implements INode { return parentId; } - public void setParentId(String parentId) { - this.parentId = parentId; - } - @Override public List getChildren() { return children; diff --git a/src/main/java/com/genersoft/iot/vmp/utils/node/ForestNode.java b/src/main/java/com/genersoft/iot/vmp/utils/node/ForestNode.java index 21a48df3..d983c56b 100644 --- a/src/main/java/com/genersoft/iot/vmp/utils/node/ForestNode.java +++ b/src/main/java/com/genersoft/iot/vmp/utils/node/ForestNode.java @@ -15,8 +15,8 @@ public class ForestNode extends BaseNode { */ private Object content; - public ForestNode(int id, String parentId, Object content) { - this.id = id; + public ForestNode(String id, String parentId, Object content) { + this.channelId = id; this.parentId = parentId; this.content = content; } diff --git a/src/main/java/com/genersoft/iot/vmp/utils/node/ForestNodeManager.java b/src/main/java/com/genersoft/iot/vmp/utils/node/ForestNodeManager.java index 895e6de0..affce9d1 100644 --- a/src/main/java/com/genersoft/iot/vmp/utils/node/ForestNodeManager.java +++ b/src/main/java/com/genersoft/iot/vmp/utils/node/ForestNodeManager.java @@ -17,15 +17,15 @@ public class ForestNodeManager> { /** * 森林的所有节点 */ - private final ImmutableMap nodeMap; + private final ImmutableMap nodeMap; /** * 森林的父节点ID */ - private final Map parentIdMap = Maps.newHashMap(); + private final Map parentIdMap = Maps.newHashMap(); public ForestNodeManager(List nodes) { - nodeMap = Maps.uniqueIndex(nodes, INode::getId); + nodeMap = Maps.uniqueIndex(nodes, INode::getChannelId); } /** @@ -46,7 +46,7 @@ public class ForestNodeManager> { * * @param parentId 父节点ID */ - public void addParentId(int parentId) { + public void addParentId(String parentId) { parentIdMap.put(parentId, ""); } @@ -58,7 +58,7 @@ public class ForestNodeManager> { public List getRoot() { List roots = new ArrayList<>(); nodeMap.forEach((key, node) -> { - if (node.getParentId() == null || parentIdMap.containsKey(node.getId())) { + if (node.getParentId() == null || parentIdMap.containsKey(node.getChannelId())) { roots.add(node); } }); diff --git a/src/main/java/com/genersoft/iot/vmp/utils/node/ForestNodeMerger.java b/src/main/java/com/genersoft/iot/vmp/utils/node/ForestNodeMerger.java index 062d4cd9..8df6f503 100644 --- a/src/main/java/com/genersoft/iot/vmp/utils/node/ForestNodeMerger.java +++ b/src/main/java/com/genersoft/iot/vmp/utils/node/ForestNodeMerger.java @@ -25,7 +25,7 @@ public class ForestNodeMerger { if (node != null) { node.getChildren().add(forestNode); } else { - forestNodeManager.addParentId(forestNode.getId()); + forestNodeManager.addParentId(forestNode.getChannelId()); } } }); @@ -37,8 +37,8 @@ public class ForestNodeMerger { items.forEach(forestNode -> { if (forestNode.getParentId() != null) { INode node = forestNodeManager.getTreeNodeAt(forestNode.getParentId()); - if (CollectionUtil.contains(parentIds, forestNode.getId())){ - forestNodeManager.addParentId(forestNode.getId()); + if (CollectionUtil.contains(parentIds, forestNode.getChannelId())){ + forestNodeManager.addParentId(forestNode.getChannelId()); } else { if (node != null){ node.getChildren().add(forestNode); diff --git a/src/main/java/com/genersoft/iot/vmp/utils/node/INode.java b/src/main/java/com/genersoft/iot/vmp/utils/node/INode.java index c82d6f76..27727470 100644 --- a/src/main/java/com/genersoft/iot/vmp/utils/node/INode.java +++ b/src/main/java/com/genersoft/iot/vmp/utils/node/INode.java @@ -14,7 +14,7 @@ public interface INode extends Serializable { * * @return String */ - int getId(); + String getChannelId(); /** * 父主键