|
|
@@ -18,7 +18,6 @@ import com.genersoft.iot.vmp.service.IMediaServerService;
|
|
|
import com.genersoft.iot.vmp.service.bean.SSRCInfo;
|
|
|
import com.genersoft.iot.vmp.storager.IRedisCatchStorage;
|
|
|
import com.genersoft.iot.vmp.storager.IVideoManagerStorager;
|
|
|
-import com.genersoft.iot.vmp.vmanager.gb28181.session.InfoCseqCache;
|
|
|
import gov.nist.javax.sip.SipProviderImpl;
|
|
|
import gov.nist.javax.sip.SipStackImpl;
|
|
|
import gov.nist.javax.sip.message.SIPRequest;
|
|
|
@@ -1553,12 +1552,12 @@ public class SIPCommander implements ISIPCommander {
|
|
|
@Override
|
|
|
public void playPauseCmd(Device device, StreamInfo streamInfo) {
|
|
|
try {
|
|
|
-
|
|
|
+ Long cseq = redisCatchStorage.getCSEQ(Request.INFO);
|
|
|
StringBuffer content = new StringBuffer(200);
|
|
|
content.append("PAUSE RTSP/1.0\r\n");
|
|
|
- content.append("CSeq: " + InfoCseqCache.CSEQCACHE.get(streamInfo.getStreamId()) + "\r\n");
|
|
|
+ content.append("CSeq: " + cseq + "\r\n");
|
|
|
content.append("PauseTime: now\r\n");
|
|
|
- Request request = headerProvider.createInfoRequest(device, streamInfo, content.toString());
|
|
|
+ Request request = headerProvider.createInfoRequest(device, streamInfo, content.toString(), cseq);
|
|
|
logger.info(request.toString());
|
|
|
ClientTransaction clientTransaction = null;
|
|
|
if ("TCP".equals(device.getTransport())) {
|
|
|
@@ -1581,11 +1580,12 @@ public class SIPCommander implements ISIPCommander {
|
|
|
@Override
|
|
|
public void playResumeCmd(Device device, StreamInfo streamInfo) {
|
|
|
try {
|
|
|
+ Long cseq = redisCatchStorage.getCSEQ(Request.INFO);
|
|
|
StringBuffer content = new StringBuffer(200);
|
|
|
content.append("PLAY RTSP/1.0\r\n");
|
|
|
- content.append("CSeq: " + InfoCseqCache.CSEQCACHE.get(streamInfo.getStreamId()) + "\r\n");
|
|
|
+ content.append("CSeq: " + cseq + "\r\n");
|
|
|
content.append("Range: npt=now-\r\n");
|
|
|
- Request request = headerProvider.createInfoRequest(device, streamInfo, content.toString());
|
|
|
+ Request request = headerProvider.createInfoRequest(device, streamInfo, content.toString(), cseq);
|
|
|
logger.info(request.toString());
|
|
|
ClientTransaction clientTransaction = null;
|
|
|
if ("TCP".equals(device.getTransport())) {
|
|
|
@@ -1607,12 +1607,13 @@ public class SIPCommander implements ISIPCommander {
|
|
|
@Override
|
|
|
public void playSeekCmd(Device device, StreamInfo streamInfo, long seekTime) {
|
|
|
try {
|
|
|
+ Long cseq = redisCatchStorage.getCSEQ(Request.INFO);
|
|
|
StringBuffer content = new StringBuffer(200);
|
|
|
content.append("PLAY RTSP/1.0\r\n");
|
|
|
- content.append("CSeq: " + InfoCseqCache.CSEQCACHE.get(streamInfo.getStreamId()) + "\r\n");
|
|
|
+ content.append("CSeq: " + cseq + "\r\n");
|
|
|
content.append("Range: npt=" + Math.abs(seekTime) + "-\r\n");
|
|
|
|
|
|
- Request request = headerProvider.createInfoRequest(device, streamInfo, content.toString());
|
|
|
+ Request request = headerProvider.createInfoRequest(device, streamInfo, content.toString(), cseq);
|
|
|
logger.info(request.toString());
|
|
|
ClientTransaction clientTransaction = null;
|
|
|
if ("TCP".equals(device.getTransport())) {
|
|
|
@@ -1634,11 +1635,12 @@ public class SIPCommander implements ISIPCommander {
|
|
|
@Override
|
|
|
public void playSpeedCmd(Device device, StreamInfo streamInfo, Double speed) {
|
|
|
try {
|
|
|
+ Long cseq = redisCatchStorage.getCSEQ(Request.INFO);
|
|
|
StringBuffer content = new StringBuffer(200);
|
|
|
content.append("PLAY RTSP/1.0\r\n");
|
|
|
- content.append("CSeq: " + InfoCseqCache.CSEQCACHE.get(streamInfo.getStreamId()) + "\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());
|
|
|
+ Request request = headerProvider.createInfoRequest(device, streamInfo, content.toString(), cseq);
|
|
|
logger.info(request.toString());
|
|
|
ClientTransaction clientTransaction = null;
|
|
|
if ("TCP".equals(device.getTransport())) {
|