From 764d04b497356ba6bcbb75fd42b51eca750f7223 Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期三, 29 五月 2024 15:02:51 +0800
Subject: [PATCH] 调整上级观看消息的发送

---
 src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/ISIPCommanderForPlatform.java |  109 +++++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 86 insertions(+), 23 deletions(-)

diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/ISIPCommanderForPlatform.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/ISIPCommanderForPlatform.java
old mode 100644
new mode 100755
index e41db8b..bc999f0
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/ISIPCommanderForPlatform.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/ISIPCommanderForPlatform.java
@@ -1,99 +1,162 @@
 package com.genersoft.iot.vmp.gb28181.transmit.cmd;
 
-import com.genersoft.iot.vmp.gb28181.bean.DeviceChannel;
-import com.genersoft.iot.vmp.gb28181.bean.ParentPlatform;
-import com.genersoft.iot.vmp.gb28181.bean.RecordInfo;
-import com.genersoft.iot.vmp.gb28181.bean.SubscribeInfo;
+import com.genersoft.iot.vmp.conf.exception.SsrcTransactionNotFoundException;
+import com.genersoft.iot.vmp.gb28181.bean.*;
 import com.genersoft.iot.vmp.gb28181.event.SipSubscribe;
+import com.genersoft.iot.vmp.media.event.hook.HookSubscribe;
+import com.genersoft.iot.vmp.media.bean.MediaServer;
 import com.genersoft.iot.vmp.service.bean.GPSMsgInfo;
+import com.genersoft.iot.vmp.service.bean.SSRCInfo;
 
+import javax.sip.InvalidArgumentException;
+import javax.sip.SipException;
 import javax.sip.header.WWWAuthenticateHeader;
+import java.text.ParseException;
 import java.util.List;
 
 public interface ISIPCommanderForPlatform {
 
     /**
      * 鍚戜笂绾у钩鍙版敞鍐�
+     *
      * @param parentPlatform
      * @return
      */
-    boolean register(ParentPlatform parentPlatform, SipSubscribe.Event errorEvent , SipSubscribe.Event okEvent);
-    boolean register(ParentPlatform parentPlatform, String callId, WWWAuthenticateHeader www, SipSubscribe.Event errorEvent , SipSubscribe.Event okEvent);
+    void register(ParentPlatform parentPlatform, SipSubscribe.Event errorEvent , SipSubscribe.Event okEvent) throws InvalidArgumentException, ParseException, SipException;
+
+    void register(ParentPlatform parentPlatform, SipTransactionInfo sipTransactionInfo, SipSubscribe.Event errorEvent , SipSubscribe.Event okEvent) throws InvalidArgumentException, ParseException, SipException;
+
+
+    void register(ParentPlatform parentPlatform, SipTransactionInfo sipTransactionInfo, WWWAuthenticateHeader www, SipSubscribe.Event errorEvent , SipSubscribe.Event okEvent, boolean isRegister) throws SipException, InvalidArgumentException, ParseException;
 
     /**
      * 鍚戜笂绾у钩鍙版敞閿�
+     *
      * @param parentPlatform
      * @return
      */
-    boolean unregister(ParentPlatform parentPlatform, SipSubscribe.Event errorEvent , SipSubscribe.Event okEvent);
+    void unregister(ParentPlatform parentPlatform, SipTransactionInfo sipTransactionInfo, SipSubscribe.Event errorEvent , SipSubscribe.Event okEvent) throws InvalidArgumentException, ParseException, SipException;
 
 
     /**
      * 鍚戜笂绾у钩鍙戦�佸績璺充俊鎭�
+     *
      * @param parentPlatform
      * @return callId(浣滀负鎺ュ彈鍥炲鐨勫垽瀹�)
      */
-    String keepalive(ParentPlatform parentPlatform);
+    String keepalive(ParentPlatform parentPlatform, SipSubscribe.Event errorEvent, SipSubscribe.Event okEvent)
+            throws SipException, InvalidArgumentException, ParseException;
 
 
     /**
      * 鍚戜笂绾у洖澶嶉�氶亾淇℃伅
-     * @param channel 閫氶亾淇℃伅
+     *
+     * @param channel        閫氶亾淇℃伅
      * @param parentPlatform 骞冲彴淇℃伅
      * @param sn
      * @param fromTag
      * @param size
      * @return
      */
-    boolean catalogQuery(DeviceChannel channel, ParentPlatform parentPlatform, String sn, String fromTag, int size);
+    void catalogQuery(DeviceChannel channel, ParentPlatform parentPlatform, String sn, String fromTag, int size)
+            throws SipException, InvalidArgumentException, ParseException;
+
+    void catalogQuery(List<DeviceChannel> channels, ParentPlatform parentPlatform, String sn, String fromTag)
+            throws InvalidArgumentException, ParseException, SipException;
 
     /**
      * 鍚戜笂绾у洖澶岲eviceInfo鏌ヨ淇℃伅
+     *
      * @param parentPlatform 骞冲彴淇℃伅
-     * @param sn
-     * @param fromTag
+     * @param sn SN
+     * @param fromTag FROM澶寸殑tag淇℃伅
      * @return
      */
-    boolean deviceInfoResponse(ParentPlatform parentPlatform, String sn, String fromTag);
+    void deviceInfoResponse(ParentPlatform parentPlatform,Device device, String sn, String fromTag) throws SipException, InvalidArgumentException, ParseException;
 
     /**
      * 鍚戜笂绾у洖澶岲eviceStatus鏌ヨ淇℃伅
+     *
      * @param parentPlatform 骞冲彴淇℃伅
      * @param sn
      * @param fromTag
      * @return
      */
-    boolean deviceStatusResponse(ParentPlatform parentPlatform, String sn, String fromTag);
+    void deviceStatusResponse(ParentPlatform parentPlatform,String channelId, String sn, String fromTag,boolean status) throws SipException, InvalidArgumentException, ParseException;
 
     /**
      * 鍚戜笂绾у洖澶嶇Щ鍔ㄤ綅缃闃呮秷鎭�
+     *
      * @param parentPlatform 骞冲彴淇℃伅
-     * @param gpsMsgInfo GPS淇℃伅
-     * @param subscribeInfo 璁㈤槄鐩稿叧鐨勪俊鎭�
+     * @param gpsMsgInfo     GPS淇℃伅
+     * @param subscribeInfo  璁㈤槄鐩稿叧鐨勪俊鎭�
      * @return
      */
-    boolean sendNotifyMobilePosition(ParentPlatform parentPlatform, GPSMsgInfo gpsMsgInfo, SubscribeInfo subscribeInfo);
+    void sendNotifyMobilePosition(ParentPlatform parentPlatform, GPSMsgInfo gpsMsgInfo, SubscribeInfo subscribeInfo)
+            throws InvalidArgumentException, ParseException, NoSuchFieldException, SipException, IllegalAccessException;
+
+    /**
+     * 鍚戜笂绾у洖澶嶆姤璀︽秷鎭�
+     *
+     * @param parentPlatform 骞冲彴淇℃伅
+     * @param deviceAlarm    鎶ヨ淇℃伅淇℃伅
+     * @return
+     */
+    void sendAlarmMessage(ParentPlatform parentPlatform, DeviceAlarm deviceAlarm) throws SipException, InvalidArgumentException, ParseException;
 
     /**
      * 鍥炲catalog浜嬩欢-澧炲姞/鏇存柊
+     *
      * @param parentPlatform
      * @param deviceChannels
      */
-    boolean sendNotifyForCatalogAddOrUpdate(String type, ParentPlatform parentPlatform, List<DeviceChannel> deviceChannels, SubscribeInfo subscribeInfo, Integer index);
+    void sendNotifyForCatalogAddOrUpdate(String type, ParentPlatform parentPlatform, List<DeviceChannel> deviceChannels, SubscribeInfo subscribeInfo, Integer index) throws InvalidArgumentException, ParseException, NoSuchFieldException, SipException, IllegalAccessException;
 
     /**
      * 鍥炲catalog浜嬩欢-鍒犻櫎
+     *
      * @param parentPlatform
      * @param deviceChannels
      */
-    boolean sendNotifyForCatalogOther(String type, ParentPlatform parentPlatform, List<DeviceChannel> deviceChannels, SubscribeInfo subscribeInfo, Integer index);
+    void sendNotifyForCatalogOther(String type, ParentPlatform parentPlatform, List<DeviceChannel> deviceChannels,
+                                   SubscribeInfo subscribeInfo, Integer index) throws InvalidArgumentException,
+            ParseException, NoSuchFieldException, SipException, IllegalAccessException;
 
     /**
      * 鍥炲recordInfo
-     * @param deviceChannel 閫氶亾淇℃伅
+     *
+     * @param deviceChannel  閫氶亾淇℃伅
      * @param parentPlatform 骞冲彴淇℃伅
-     * @param fromTag fromTag
-     * @param recordInfo 褰曞儚淇℃伅
+     * @param fromTag        fromTag
+     * @param recordInfo     褰曞儚淇℃伅
      */
-    boolean recordInfo(DeviceChannel deviceChannel, ParentPlatform parentPlatform, String fromTag, RecordInfo recordInfo);
+    void recordInfo(DeviceChannel deviceChannel, ParentPlatform parentPlatform, String fromTag, RecordInfo recordInfo)
+            throws SipException, InvalidArgumentException, ParseException;
+
+    /**
+     * 褰曞儚鎾斁鎺ㄩ�佸畬鎴愭椂鍙戦�丮ediaStatus娑堟伅
+     *
+     * @param platform
+     * @param sendRtpItem
+     * @return
+     */
+    void sendMediaStatusNotify(ParentPlatform platform, SendRtpItem sendRtpItem) throws SipException, InvalidArgumentException, ParseException;
+
+    /**
+     * 鍚戝彂璧风偣鎾殑涓婄骇鍥炲bye
+     *
+     * @param platform 骞冲彴淇℃伅
+     * @param callId   callId
+     */
+    void streamByeCmd(ParentPlatform platform, String callId) throws SipException, InvalidArgumentException, ParseException;
+
+    void streamByeCmd(ParentPlatform platform, SendRtpItem sendRtpItem) throws SipException, InvalidArgumentException, ParseException;
+
+    void streamByeCmd(ParentPlatform platform, String channelId, String stream, String callId, SipSubscribe.Event okEvent) throws InvalidArgumentException, SipException, ParseException, SsrcTransactionNotFoundException;
+
+    void broadcastInviteCmd(ParentPlatform platform, String channelId, MediaServer mediaServerItem,
+                            SSRCInfo ssrcInfo, HookSubscribe.Event event, SipSubscribe.Event okEvent,
+                            SipSubscribe.Event errorEvent) throws ParseException, SipException, InvalidArgumentException;
+
+    void broadcastResultCmd(ParentPlatform platform, DeviceChannel deviceChannel, String sn, boolean result, SipSubscribe.Event errorEvent,  SipSubscribe.Event okEvent) throws InvalidArgumentException, SipException, ParseException;
 }

--
Gitblit v1.8.0