|
|
@@ -16,16 +16,19 @@ import org.jetlinks.community.media.entity.MediaDevice;
|
|
|
import org.jetlinks.community.media.bean.SipServerConfig;
|
|
|
import org.jetlinks.community.media.gb28181.event.SipSubscribe;
|
|
|
import org.jetlinks.community.media.message.MediaMessageReply;
|
|
|
+import org.jetlinks.community.media.service.LocalMediaDeviceService;
|
|
|
import org.jetlinks.community.media.service.LocalMediaServerItemService;
|
|
|
import org.jetlinks.community.media.session.VideoStreamSessionManager;
|
|
|
import org.jetlinks.community.media.sip.SipContext;
|
|
|
import org.jetlinks.community.media.storage.impl.RedisCacheStorageImpl;
|
|
|
import org.jetlinks.community.media.transmit.SIPRequestHeaderProvider;
|
|
|
+import org.jetlinks.community.media.transmit.callback.DeferredResultHolder;
|
|
|
import org.jetlinks.community.media.zlm.ZLMHttpHookSubscribe;
|
|
|
import org.jetlinks.community.media.zlm.dto.MediaItem;
|
|
|
import org.jetlinks.community.media.zlm.entity.MediaServerItem;
|
|
|
import org.jetlinks.community.utils.ZLMKeyGenerate;
|
|
|
import org.jetlinks.core.device.StandaloneDeviceMessageBroker;
|
|
|
+import org.jetlinks.core.exception.DeviceOperationException;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import reactor.core.publisher.*;
|
|
|
import javax.sip.*;
|
|
|
@@ -58,6 +61,7 @@ public class SipCommander {
|
|
|
private final RedisCacheStorageImpl redisCacheStorage;
|
|
|
private final DeviceGatewayMonitor gatewayMonitor;
|
|
|
private final StandaloneDeviceMessageBroker messageBroker;
|
|
|
+// private final LocalMediaDeviceService mediaDeviceService;
|
|
|
|
|
|
public SipCommander(SIPRequestHeaderProvider headerProvider,
|
|
|
ZLMHttpHookSubscribe subscribe,
|
|
|
@@ -441,6 +445,14 @@ public class SipCommander {
|
|
|
CallIdHeader callIdHeader = SipContext.getSipProvider().getNewCallId();
|
|
|
|
|
|
Request request = headerProvider.createMessageRequest(device, ptzXml.toString(), "z9hG4bK-ViaPtz-" + tm, "FromPtz" + tm, null, callIdHeader);
|
|
|
+// String key = DeferredResultHolder.CALLBACK_RESPONSE + callIdHeader.getCallId();
|
|
|
+// messageBroker.handleReply(device.getId(),key,Duration.ofSeconds(30))
|
|
|
+// .onErrorResume(DeviceOperationException.class, error-> {
|
|
|
+// //设备下线
|
|
|
+// mediaDeviceService.deviceOffline(device);
|
|
|
+// return Mono.error(new BusinessException("设备响应超时"));
|
|
|
+// })
|
|
|
+
|
|
|
return transmitRequest(SipContext.getSipProvider(), request);
|
|
|
} catch (SipException | ParseException | InvalidArgumentException e) {
|
|
|
log.error("发送cmd命令失败,",e);
|