From be5dbc9a21bd0af63f2ae8fc96b7fe9e1bbbc780 Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期二, 12 七月 2022 17:33:32 +0800
Subject: [PATCH] 支持从redis消息更新推流设备状态
---
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java | 17 ++++++++++++++++-
1 files changed, 16 insertions(+), 1 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 a505d5a..0097ce0 100644
--- 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
@@ -1830,7 +1830,7 @@
}
@Override
- public void playbackControlCmd(Device device, StreamInfo streamInfo, String content) {
+ public void playbackControlCmd(Device device, StreamInfo streamInfo, String content,SipSubscribe.Event errorEvent, SipSubscribe.Event okEvent) {
try {
Request request = headerProvider.createInfoRequest(device, streamInfo, content);
if (request == null) {
@@ -1843,7 +1843,22 @@
} else if ("UDP".equals(device.getTransport())) {
clientTransaction = udpSipProvider.getNewClientTransaction(request);
}
+ CallIdHeader callIdHeader = (CallIdHeader)request.getHeader(CallIdHeader.NAME);
+ if(errorEvent != null) {
+ sipSubscribe.addErrorSubscribe(callIdHeader.getCallId(), (eventResult -> {
+ errorEvent.response(eventResult);
+ sipSubscribe.removeErrorSubscribe(eventResult.callId);
+ sipSubscribe.removeOkSubscribe(eventResult.callId);
+ }));
+ }
+ if(okEvent != null) {
+ sipSubscribe.addOkSubscribe(callIdHeader.getCallId(), eventResult -> {
+ okEvent.response(eventResult);
+ sipSubscribe.removeOkSubscribe(eventResult.callId);
+ sipSubscribe.removeErrorSubscribe(eventResult.callId);
+ });
+ }
clientTransaction.sendRequest();
} catch (SipException | ParseException | InvalidArgumentException e) {
--
Gitblit v1.8.0