From ab318fcf70c3c6df325e328fdcba4a905c198ede Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期二, 09 四月 2024 14:53:11 +0800
Subject: [PATCH] 修复点播错误时关闭rtpserver
---
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/InviteRequestProcessor.java | 15 ++++++---------
src/main/java/com/genersoft/iot/vmp/service/impl/PlatformServiceImpl.java | 1 -
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java | 1 -
src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMMediaNodeServerService.java | 2 +-
src/main/java/com/genersoft/iot/vmp/service/impl/PlayServiceImpl.java | 3 +--
src/main/java/com/genersoft/iot/vmp/storager/impl/RedisCatchStorageImpl.java | 11 ++++++-----
src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMRESTfulUtils.java | 2 --
src/main/java/com/genersoft/iot/vmp/storager/IRedisCatchStorage.java | 3 ++-
8 files changed, 16 insertions(+), 22 deletions(-)
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 0099aaf..dab039f 100755
--- 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
@@ -278,7 +278,6 @@
logger.info("{} 鍒嗛厤鐨刏LM涓�: {} [{}:{}]", stream, mediaServerItem.getId(), mediaServerItem.getSdpIp(), ssrcInfo.getPort());
Hook rtpHook = Hook.getInstance(HookType.on_media_arrival, "rtp", stream, mediaServerItem.getId());
- System.out.println("rtpHook: " + rtpHook.toString());
subscribe.addSubscribe(rtpHook, (hookData) -> {
if (event != null) {
event.response(hookData);
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 b1a6611..7303594 100755
--- 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
@@ -27,7 +27,6 @@
import com.genersoft.iot.vmp.media.zlm.ZLMServerFactory;
import com.genersoft.iot.vmp.media.zlm.dto.StreamProxyItem;
import com.genersoft.iot.vmp.media.zlm.dto.StreamPushItem;
-import com.genersoft.iot.vmp.media.zlm.dto.hook.OnStreamChangedHookParam;
import com.genersoft.iot.vmp.service.IInviteStreamService;
import com.genersoft.iot.vmp.service.IPlayService;
import com.genersoft.iot.vmp.service.IStreamProxyService;
@@ -493,12 +492,11 @@
}
};
ErrorCallback<Object> errorEvent = ((statusCode, msg, data) -> {
+ logger.info("[涓婄骇Invite] {}, 澶辫触, 骞冲彴锛歿}锛� 閫氶亾锛歿}, code锛� {}锛� msg锛泏}", sessionName, username, channelId, statusCode, msg);
// 鏈煡閿欒銆傜洿鎺ヨ浆鍙戣澶囩偣鎾殑閿欒
try {
- if (statusCode > 0) {
- Response response = getMessageFactory().createResponse(statusCode, evt.getRequest());
- sipSender.transmitRequest(request.getLocalAddress().getHostAddress(), response);
- }
+ Response response = getMessageFactory().createResponse(statusCode, evt.getRequest());
+ sipSender.transmitRequest(request.getLocalAddress().getHostAddress(), response);
} catch (ParseException | SipException e) {
logger.error("鏈鐞嗙殑寮傚父 ", e);
}
@@ -589,12 +587,11 @@
if ("push".equals(gbStream.getStreamType())) {
if (streamPushItem != null) {
// 浠巖edis鏌ヨ鏄惁姝e湪鎺ユ敹杩欎釜鎺ㄦ祦
- OnStreamChangedHookParam pushListItem = redisCatchStorage.getPushListItem(gbStream.getApp(), gbStream.getStream());
+ StreamPushItem pushListItem = redisCatchStorage.getPushListItem(gbStream.getApp(), gbStream.getStream());
if (pushListItem != null) {
- StreamPushItem transform = streamPushService.transform(pushListItem);
- transform.setSelf(userSetting.getServerId().equals(pushListItem.getSeverId()));
+ pushListItem.setSelf(userSetting.getServerId().equals(pushListItem.getServerId()));
// 鎺ㄦ祦鐘舵��
- pushStream(evt, request, gbStream, transform, platform, callIdHeader, mediaServerItem, port, tcpActive,
+ pushStream(evt, request, gbStream, pushListItem, platform, callIdHeader, mediaServerItem, port, tcpActive,
mediaTransmissionTCP, channelId, addressStr, ssrc, requesterId);
}else {
// 鏈帹娴� 鎷夎捣
diff --git a/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMMediaNodeServerService.java b/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMMediaNodeServerService.java
index 8fbe530..72f3ba1 100644
--- a/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMMediaNodeServerService.java
+++ b/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMMediaNodeServerService.java
@@ -45,7 +45,7 @@
@Override
public void closeRtpServer(MediaServer mediaServer, String streamId) {
- zlmresTfulUtils.closeStreams(mediaServer, "rtp", streamId);
+ zlmServerFactory.closeRtpServer(mediaServer, streamId);
}
@Override
diff --git a/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMRESTfulUtils.java b/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMRESTfulUtils.java
index e06eb42..285b9e6 100755
--- a/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMRESTfulUtils.java
+++ b/src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMRESTfulUtils.java
@@ -104,8 +104,6 @@
responseJSON = JSON.parseObject(responseStr);
}
}else {
- System.out.println( 2222);
- System.out.println( response.code());
response.close();
Objects.requireNonNull(response.body()).close();
}
diff --git a/src/main/java/com/genersoft/iot/vmp/service/impl/PlatformServiceImpl.java b/src/main/java/com/genersoft/iot/vmp/service/impl/PlatformServiceImpl.java
index e4ddb12..822b54e 100755
--- a/src/main/java/com/genersoft/iot/vmp/service/impl/PlatformServiceImpl.java
+++ b/src/main/java/com/genersoft/iot/vmp/service/impl/PlatformServiceImpl.java
@@ -646,7 +646,6 @@
inviteInfo.setStatus(InviteSessionStatus.ok);
ResponseEvent responseEvent = (ResponseEvent) eventResult.event;
String contentString = new String(responseEvent.getResponse().getRawContent());
- System.out.println(1111);
System.out.println(contentString);
String ssrcInResponse = SipUtils.getSsrcFromSdp(contentString);
// 鍏煎鍥炲鐨勬秷鎭腑缂哄皯ssrc(y瀛楁)鐨勬儏鍐�
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 f537522..816f17f 100755
--- a/src/main/java/com/genersoft/iot/vmp/service/impl/PlayServiceImpl.java
+++ b/src/main/java/com/genersoft/iot/vmp/service/impl/PlayServiceImpl.java
@@ -581,8 +581,7 @@
streamSession.remove(device.getDeviceId(), channel.getChannelId(), ssrcInfo.getStream());
- callback.run(InviteErrorCode.ERROR_FOR_SIGNALLING_ERROR.getCode(),
- String.format("鐐规挱澶辫触锛� 閿欒鐮侊細 %s, %s", event.statusCode, event.msg), null);
+ callback.run(event.statusCode, event.msg, null);
inviteStreamService.call(InviteSessionType.PLAY, device.getDeviceId(), channel.getChannelId(), null,
InviteErrorCode.ERROR_FOR_RESET_SSRC.getCode(),
String.format("鐐规挱澶辫触锛� 閿欒鐮侊細 %s, %s", event.statusCode, event.msg), null);
diff --git a/src/main/java/com/genersoft/iot/vmp/storager/IRedisCatchStorage.java b/src/main/java/com/genersoft/iot/vmp/storager/IRedisCatchStorage.java
index 3f6a526..c483db6 100755
--- a/src/main/java/com/genersoft/iot/vmp/storager/IRedisCatchStorage.java
+++ b/src/main/java/com/genersoft/iot/vmp/storager/IRedisCatchStorage.java
@@ -9,6 +9,7 @@
import com.genersoft.iot.vmp.media.event.media.MediaArrivalEvent;
import com.genersoft.iot.vmp.media.bean.MediaServer;
import com.genersoft.iot.vmp.media.zlm.dto.StreamAuthorityInfo;
+import com.genersoft.iot.vmp.media.zlm.dto.StreamPushItem;
import com.genersoft.iot.vmp.media.zlm.dto.hook.OnStreamChangedHookParam;
import com.genersoft.iot.vmp.service.bean.GPSMsgInfo;
import com.genersoft.iot.vmp.service.bean.MessageForPushChannel;
@@ -212,7 +213,7 @@
void addPushListItem(String app, String stream, MediaArrivalEvent param);
- OnStreamChangedHookParam getPushListItem(String app, String stream);
+ StreamPushItem getPushListItem(String app, String stream);
void removePushListItem(String app, String stream, String mediaServerId);
diff --git a/src/main/java/com/genersoft/iot/vmp/storager/impl/RedisCatchStorageImpl.java b/src/main/java/com/genersoft/iot/vmp/storager/impl/RedisCatchStorageImpl.java
index 033a204..b17b4d7 100755
--- a/src/main/java/com/genersoft/iot/vmp/storager/impl/RedisCatchStorageImpl.java
+++ b/src/main/java/com/genersoft/iot/vmp/storager/impl/RedisCatchStorageImpl.java
@@ -12,6 +12,7 @@
import com.genersoft.iot.vmp.media.event.media.MediaArrivalEvent;
import com.genersoft.iot.vmp.media.bean.MediaServer;
import com.genersoft.iot.vmp.media.zlm.dto.StreamAuthorityInfo;
+import com.genersoft.iot.vmp.media.zlm.dto.StreamPushItem;
import com.genersoft.iot.vmp.media.zlm.dto.hook.OnStreamChangedHookParam;
import com.genersoft.iot.vmp.service.bean.GPSMsgInfo;
import com.genersoft.iot.vmp.service.bean.MessageForPushChannel;
@@ -447,7 +448,6 @@
@Override
public StreamAuthorityInfo getStreamAuthorityInfo(String app, String stream) {
String key = VideoManagerConstants.MEDIA_STREAM_AUTHORITY + userSetting.getServerId() + "_" + app+ "_" + stream ;
- System.out.println(key);
return JsonUtil.redisJsonToObject(redisTemplate, key, StreamAuthorityInfo.class);
}
@@ -655,19 +655,20 @@
@Override
public void addPushListItem(String app, String stream, MediaArrivalEvent event) {
String key = VideoManagerConstants.PUSH_STREAM_LIST + app + "_" + stream;
- redisTemplate.opsForValue().set(key, event);
+ StreamPushItem streamPushItem = StreamPushItem.getInstance(event, userSetting.getServerId());
+ redisTemplate.opsForValue().set(key, streamPushItem);
}
@Override
- public OnStreamChangedHookParam getPushListItem(String app, String stream) {
+ public StreamPushItem getPushListItem(String app, String stream) {
String key = VideoManagerConstants.PUSH_STREAM_LIST + app + "_" + stream;
- return (OnStreamChangedHookParam)redisTemplate.opsForValue().get(key);
+ return (StreamPushItem)redisTemplate.opsForValue().get(key);
}
@Override
public void removePushListItem(String app, String stream, String mediaServerId) {
String key = VideoManagerConstants.PUSH_STREAM_LIST + app + "_" + stream;
- OnStreamChangedHookParam param = (OnStreamChangedHookParam)redisTemplate.opsForValue().get(key);
+ StreamPushItem param = (StreamPushItem)redisTemplate.opsForValue().get(key);
if (param != null && param.getMediaServerId().equalsIgnoreCase(mediaServerId)) {
redisTemplate.delete(key);
}
--
Gitblit v1.8.0