Commit d176b5231b41ea6a875970f4a8e72402718099ff

Authored by 648540858
Committed by GitHub
2 parents d7355a67 fc7f1b34

Merge pull request #620 from xu-bin-bin/wvp-28181-2.0

处理上级平台发送的invite请求不携带“y=”sdp信息时,使用默认“y=0000000000”视频无法播放的问题。
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/InviteRequestProcessor.java
@@ -332,14 +332,14 @@ public class InviteRequestProcessor extends SIPRequestProcessorParent implements @@ -332,14 +332,14 @@ public class InviteRequestProcessor extends SIPRequestProcessorParent implements
332 content.append("m=video " + sendRtpItem.getLocalPort() + " RTP/AVP 96\r\n"); 332 content.append("m=video " + sendRtpItem.getLocalPort() + " RTP/AVP 96\r\n");
333 content.append("a=sendonly\r\n"); 333 content.append("a=sendonly\r\n");
334 content.append("a=rtpmap:96 PS/90000\r\n"); 334 content.append("a=rtpmap:96 PS/90000\r\n");
335 - content.append("y=" + ssrc + "\r\n"); 335 + content.append("y=" + sendRtpItem.getSsrc() + "\r\n");
336 content.append("f=\r\n"); 336 content.append("f=\r\n");
337 337
338 try { 338 try {
339 // 超时未收到Ack应该回复bye,当前等待时间为10秒 339 // 超时未收到Ack应该回复bye,当前等待时间为10秒
340 dynamicTask.startDelay(callIdHeader.getCallId(), () -> { 340 dynamicTask.startDelay(callIdHeader.getCallId(), () -> {
341 logger.info("Ack 等待超时"); 341 logger.info("Ack 等待超时");
342 - mediaServerService.releaseSsrc(mediaServerItemInUSe.getId(), ssrc); 342 + mediaServerService.releaseSsrc(mediaServerItemInUSe.getId(), sendRtpItem.getSsrc());
343 // 回复bye 343 // 回复bye
344 try { 344 try {
345 cmderFroPlatform.streamByeCmd(platform, callIdHeader.getCallId()); 345 cmderFroPlatform.streamByeCmd(platform, callIdHeader.getCallId());
@@ -425,6 +425,7 @@ public class InviteRequestProcessor extends SIPRequestProcessorParent implements @@ -425,6 +425,7 @@ public class InviteRequestProcessor extends SIPRequestProcessorParent implements
425 SSRCInfo ssrcInfo = mediaServerService.openRTPServer(mediaServerItem, streamId, null, device.isSsrcCheck(), false); 425 SSRCInfo ssrcInfo = mediaServerService.openRTPServer(mediaServerItem, streamId, null, device.isSsrcCheck(), false);
426 logger.info(JSONObject.toJSONString(ssrcInfo)); 426 logger.info(JSONObject.toJSONString(ssrcInfo));
427 sendRtpItem.setStreamId(ssrcInfo.getStream()); 427 sendRtpItem.setStreamId(ssrcInfo.getStream());
  428 + sendRtpItem.setSsrc(ssrc.equals(ssrcDefault) ? ssrcInfo.getSsrc() : ssrc);
428 429
429 // 写入redis, 超时时回复 430 // 写入redis, 超时时回复
430 redisCatchStorage.updateSendRTPSever(sendRtpItem); 431 redisCatchStorage.updateSendRTPSever(sendRtpItem);