From 381c3bdc2079ece5147cf4cee004e9071edadf7a Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期四, 04 五月 2023 16:04:44 +0800
Subject: [PATCH] 修复国标点播下级平台,ssrc更新的时单端口错误更新rtpserver的问题

---
 src/main/java/com/genersoft/iot/vmp/service/impl/PlayServiceImpl.java |   36 +++++++-----------------------------
 1 files changed, 7 insertions(+), 29 deletions(-)

diff --git a/src/main/java/com/genersoft/iot/vmp/service/impl/PlayServiceImpl.java b/src/main/java/com/genersoft/iot/vmp/service/impl/PlayServiceImpl.java
index 0347611..96e4098 100644
--- a/src/main/java/com/genersoft/iot/vmp/service/impl/PlayServiceImpl.java
+++ b/src/main/java/com/genersoft/iot/vmp/service/impl/PlayServiceImpl.java
@@ -326,9 +326,9 @@
                     logger.info("[鐐规挱娑堟伅] 鏀跺埌invite 200, 鍙戠幇涓嬬骇鑷畾涔変簡ssrc: {}", ssrcInResponse);
                     if (!mediaServerItem.isRtpEnable() || device.isSsrcCheck()) {
                         logger.info("[鐐规挱娑堟伅] SSRC淇 {}->{}", ssrcInfo.getSsrc(), ssrcInResponse);
-
                         if (!ssrcFactory.checkSsrc(mediaServerItem.getId(),ssrcInResponse)) {
                             // ssrc 涓嶅彲鐢�
+                            logger.info("[鐐规挱娑堟伅] SSRC淇鏃跺彂鐜皊src涓嶅彲浣跨敤 {}->{}", ssrcInfo.getSsrc(), ssrcInResponse);
                             // 閲婃斁ssrc
                             ssrcFactory.releaseSsrc(mediaServerItem.getId(), ssrcInfo.getSsrc());
                             streamSession.remove(device.getDeviceId(), channelId, ssrcInfo.getStream());
@@ -337,8 +337,7 @@
                             errorEvent.response(event);
                             return;
                         }
-
-                        // 鍗曠鍙fā寮弒treamId涔熸湁鍙樺寲锛岄渶瑕侀噸鏂拌缃洃鍚�
+                        // 鍗曠鍙fā寮弒treamId涔熸湁鍙樺寲锛岄噸鏂拌缃洃鍚嵆鍙�
                         if (!mediaServerItem.isRtpEnable()) {
                             // 娣诲姞璁㈤槄
                             HookSubscribeForStreamChange hookSubscribe = HookSubscribeFactory.on_stream_changed("rtp", ssrcInfo.getStream(), true, "rtsp", mediaServerItem.getId());
@@ -351,8 +350,11 @@
                                 onPublishHandlerForPlay(mediaServerItemInUse, response, device.getDeviceId(), channelId);
                                 hookEvent.response(mediaServerItemInUse, response);
                             });
+                            return;
                         }
 
+
+                        // 鏇存柊ssrc
                         Boolean result = mediaServerService.updateRtpServerSSRC(mediaServerItem, ssrcInfo.getStream(), ssrcInResponse);
                         if (!result) {
                             try {
@@ -372,32 +374,8 @@
                             event.statusCode = 500;
                             errorEvent.response(event);
                         }
-//                        // 鍏抽棴rtp server
-//                        mediaServerService.closeRTPServer(mediaServerItem, ssrcInfo.getStream(), result->{
-//                            if (result) {
-//                                // 閲嶆柊寮�鍚痵src server
-//                                mediaServerService.openRTPServer(mediaServerItem, ssrcInfo.getStream(), ssrcInResponse, device.isSsrcCheck(), false, ssrcInfo.getPort(), true, device.getStreamModeForParam());
-//                            }else {
-//                                try {
-//                                    logger.warn("[鍋滄鐐规挱] {}/{}", device.getDeviceId(), channelId);
-//                                    cmder.streamByeCmd(device, channelId, ssrcInfo.getStream(), null, null);
-//                                } catch (InvalidArgumentException | SipException | ParseException | SsrcTransactionNotFoundException e) {
-//                                    logger.error("[鍛戒护鍙戦�佸け璐 鍋滄鐐规挱锛� 鍙戦�丅YE: {}", e.getMessage());
-//                                    throw new ControllerException(ErrorCode.ERROR100.getCode(), "鍛戒护鍙戦�佸け璐�: " + e.getMessage());
-//                                }
-//
-//                                dynamicTask.stop(timeOutTaskKey);
-//                                // 閲婃斁ssrc
-//                                mediaServerService.releaseSsrc(mediaServerItem.getId(), ssrcInfo.getSsrc());
-//
-//                                streamSession.remove(device.getDeviceId(), channelId, ssrcInfo.getStream());
-//                                event.msg = "涓嬬骇鑷畾涔変簡ssrc,閲嶆柊璁剧疆鏀舵祦淇℃伅澶辫触";
-//                                event.statusCode = 500;
-//                                errorEvent.response(event);
-//                            }
-//                        });
-
-
+                    }else {
+                        logger.info("[鐐规挱娑堟伅] 鏀跺埌invite 200, 涓嬬骇鑷畾涔変簡ssrc, 浣嗘槸褰撳墠妯″紡鏃犻渶淇");
                     }
                 }
             }, (event) -> {

--
Gitblit v1.8.0