From 82adc0cb23f3ee47322e78889cdaba57e9309000 Mon Sep 17 00:00:00 2001 From: 648540858 <648540858@qq.com> Date: 星期二, 21 三月 2023 15:55:24 +0800 Subject: [PATCH] 完善语音对讲级联 --- src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/ISIPCommanderForPlatform.java | 109 +++++++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 91 insertions(+), 18 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 index d6294fa..9d5425b 100644 --- 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,90 +1,163 @@ 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.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.zlm.ZlmHttpHookSubscribe; +import com.genersoft.iot.vmp.media.zlm.dto.MediaServerItem; 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, boolean registerAgain); + void register(ParentPlatform parentPlatform, SipSubscribe.Event errorEvent, SipSubscribe.Event okEvent) + throws InvalidArgumentException, ParseException, SipException; + + void register(ParentPlatform parentPlatform, String callId, WWWAuthenticateHeader www, + SipSubscribe.Event errorEvent, SipSubscribe.Event okEvent, boolean registerAgain, boolean isRegister) + throws SipException, InvalidArgumentException, ParseException; /** * 鍚戜笂绾у钩鍙版敞閿� + * * @param parentPlatform * @return */ - boolean unregister(ParentPlatform parentPlatform, SipSubscribe.Event errorEvent , SipSubscribe.Event okEvent); + void unregister(ParentPlatform parentPlatform, 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,int 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 parentPlatform 骞冲彴淇℃伅 + * @param fromTag fromTag + * @param 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, MediaServerItem mediaServerItem, + SSRCInfo ssrcInfo, ZlmHttpHookSubscribe.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