From 142efdd9159678a6cbd734e07952fdee9fbf0c3e Mon Sep 17 00:00:00 2001 From: 648540858 <648540858@qq.com> Date: 星期五, 05 八月 2022 09:48:13 +0800 Subject: [PATCH] 修复单个添加的推流级联国标的问题 --- src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/InviteRequestProcessor.java | 2 +- src/main/java/com/genersoft/iot/vmp/service/impl/StreamPushServiceImpl.java | 1 + src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/MessageRequestProcessor.java | 10 ++++++---- src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMHttpHookListener.java | 1 - src/main/java/com/genersoft/iot/vmp/gb28181/utils/SipUtils.java | 3 ++- src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMMediaListManager.java | 1 + src/main/java/com/genersoft/iot/vmp/storager/dao/GbStreamMapper.java | 5 +++++ src/main/resources/all-application.yml | 2 +- 8 files changed, 17 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/InviteRequestProcessor.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/InviteRequestProcessor.java index fda3bff..feab109 100644 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/InviteRequestProcessor.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/InviteRequestProcessor.java @@ -123,7 +123,7 @@ SipURI sipUri = (SipURI) request.getRequestURI(); //浠巗ubject璇诲彇channelId,涓嶅啀浠巖equest-line璇诲彇銆� 鏈変簺骞冲彴request-line鏄钩鍙板浗鏍囩紪鐮侊紝涓嶆槸璁惧鍥芥爣缂栫爜銆� //String channelId = sipURI.getUser(); - String channelId = SipUtils.getChannelIdFromHeader(request); + String channelId = SipUtils.getChannelIdFromRequest(request); String requesterId = SipUtils.getUserIdFromFromHeader(request); CallIdHeader callIdHeader = (CallIdHeader) request.getHeader(CallIdHeader.NAME); if (requesterId == null || channelId == null) { diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/MessageRequestProcessor.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/MessageRequestProcessor.java index cd85889..e004b89 100644 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/MessageRequestProcessor.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/MessageRequestProcessor.java @@ -27,6 +27,7 @@ import javax.sip.address.SipURI; import javax.sip.header.CSeqHeader; import javax.sip.header.CallIdHeader; +import javax.sip.message.Request; import javax.sip.message.Response; import java.text.ParseException; import java.util.Map; @@ -68,22 +69,23 @@ @Override public void process(RequestEvent evt) { + SIPRequest sipRequest = (SIPRequest)evt.getRequest(); logger.debug("鎺ユ敹鍒版秷鎭細" + evt.getRequest()); String deviceId = SipUtils.getUserIdFromFromHeader(evt.getRequest()); - CallIdHeader callIdHeader = (CallIdHeader)evt.getRequest().getHeader(CallIdHeader.NAME); + CallIdHeader callIdHeader = sipRequest.getCallIdHeader(); // 鍏堜粠浼氳瘽鍐呮煡鎵� SsrcTransaction ssrcTransaction = sessionManager.getSsrcTransaction(null, null, callIdHeader.getCallId(), null); - if (ssrcTransaction != null) { // 鍏煎娴峰悍 濯掍綋閫氱煡 娑堟伅from瀛楁涓嶆槸璁惧ID鐨勯棶棰� + // 鍏煎娴峰悍 濯掍綋閫氱煡 娑堟伅from瀛楁涓嶆槸璁惧ID鐨勯棶棰� + if (ssrcTransaction != null) { deviceId = ssrcTransaction.getDeviceId(); } // 鏌ヨ璁惧鏄惁瀛樺湪 - CSeqHeader cseqHeader = (CSeqHeader) evt.getRequest().getHeader(CSeqHeader.NAME); - String method = cseqHeader.getMethod(); Device device = redisCatchStorage.getDevice(deviceId); // 鏌ヨ涓婄骇骞冲彴鏄惁瀛樺湪 ParentPlatform parentPlatform = storage.queryParentPlatByServerGBId(deviceId); try { if (device != null && parentPlatform != null) { + logger.warn("[閲嶅]骞冲彴涓庤澶囩紪鍙烽噸澶嶏細{}", deviceId); SIPRequest request = (SIPRequest) evt.getRequest(); String hostAddress = request.getRemoteAddress().getHostAddress(); diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/utils/SipUtils.java b/src/main/java/com/genersoft/iot/vmp/gb28181/utils/SipUtils.java index 35ec640..44e1337 100644 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/utils/SipUtils.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/utils/SipUtils.java @@ -23,9 +23,10 @@ /** * 浠巗ubject璇诲彇channelId * */ - public static String getChannelIdFromHeader(Request request) { + public static String getChannelIdFromRequest(Request request) { Header subject = request.getHeader("subject"); if (subject == null) { + // 濡傛灉缂哄けsubject return null; } return ((Subject) subject).getSubject().split(":")[0]; diff --git a/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMHttpHookListener.java b/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMHttpHookListener.java index 18654dd..0dc6bd3 100644 --- a/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMHttpHookListener.java +++ b/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMHttpHookListener.java @@ -451,7 +451,6 @@ redisCatchStorage.stopPlayback(streamInfo.getDeviceID(), streamInfo.getChannelId(), streamInfo.getStream(), null); } - } }else { if (!"rtp".equals(app)){ diff --git a/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMMediaListManager.java b/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMMediaListManager.java index f78ca4a..a8b4a8d 100644 --- a/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMMediaListManager.java +++ b/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMMediaListManager.java @@ -85,6 +85,7 @@ streamPushMapper.add(transform); }else { streamPushMapper.update(transform); + gbStreamMapper.updateMediaServer(mediaItem.getApp(), mediaItem.getStream(), mediaItem.getMediaServerId()); } if (transform != null) { if (getChannelOnlineEventLister(transform.getApp(), transform.getStream()) != null) { diff --git a/src/main/java/com/genersoft/iot/vmp/service/impl/StreamPushServiceImpl.java b/src/main/java/com/genersoft/iot/vmp/service/impl/StreamPushServiceImpl.java index 8fa0409..5fa83f5 100644 --- a/src/main/java/com/genersoft/iot/vmp/service/impl/StreamPushServiceImpl.java +++ b/src/main/java/com/genersoft/iot/vmp/service/impl/StreamPushServiceImpl.java @@ -485,6 +485,7 @@ try { int addStreamResult = streamPushMapper.add(stream); if (!StringUtils.isEmpty(stream.getGbId())) { + stream.setStreamType("push"); gbStreamMapper.add(stream); } dataSourceTransactionManager.commit(transactionStatus); diff --git a/src/main/java/com/genersoft/iot/vmp/storager/dao/GbStreamMapper.java b/src/main/java/com/genersoft/iot/vmp/storager/dao/GbStreamMapper.java index 73fff57..7ed6b5a 100644 --- a/src/main/java/com/genersoft/iot/vmp/storager/dao/GbStreamMapper.java +++ b/src/main/java/com/genersoft/iot/vmp/storager/dao/GbStreamMapper.java @@ -143,4 +143,9 @@ "</foreach>" + "</script>") List<GbStream> selectAllForAppAndStream(List<StreamPushItem> streamPushItems); + + @Update("UPDATE gb_stream " + + "SET mediaServerId=#{mediaServerId}" + + "WHERE app=#{app} AND stream=#{stream}") + void updateMediaServer(String app, String stream, String mediaServerId); } diff --git a/src/main/resources/all-application.yml b/src/main/resources/all-application.yml index ef14c24..b4ec9ef 100644 --- a/src/main/resources/all-application.yml +++ b/src/main/resources/all-application.yml @@ -149,7 +149,7 @@ enable: true # [鍙�塢 鍦ㄦ鑼冨洿鍐呴�夋嫨绔彛鐢ㄤ簬濯掍綋娴佷紶杈�, 蹇呴』鎻愬墠鍦▃lm涓婇厤缃灞炴�э紝涓嶇劧鑷姩閰嶇疆姝ゅ睘鎬у彲鑳戒笉鎴愬姛 port-range: 30000,30500 # 绔彛鑼冨洿 - # [鍙�塢 鍥芥爣绾ц仈鍦ㄦ鑼冨洿鍐呴�夋嫨绔彛鍙戦�佸獟浣撴祦, + # [鍙�塢 鍥芥爣绾ц仈鍦ㄦ鑼冨洿鍐呴�夋嫨绔彛鍙戦�佸獟浣撴祦 send-port-range: 30000,30500 # 绔彛鑼冨洿 # 褰曞儚杈呭姪鏈嶅姟锛� 閮ㄧ讲姝ゆ湇鍔″彲浠ュ疄鐜皕lm褰曞儚鐨勭鐞嗕笌涓嬭浇锛� 0 琛ㄧず涓嶄娇鐢� record-assist-port: 0 -- Gitblit v1.8.0