package com.genersoft.iot.vmp.gb28181.transmit.cmd;
|
|
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
|
*/
|
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
|
*/
|
void unregister(ParentPlatform parentPlatform, SipTransactionInfo sipTransactionInfo, SipSubscribe.Event errorEvent , SipSubscribe.Event okEvent) throws InvalidArgumentException, ParseException, SipException;
|
|
|
/**
|
* 向上级平发送心跳信息
|
*
|
* @param parentPlatform
|
* @return callId(作为接受回复的判定)
|
*/
|
String keepalive(ParentPlatform parentPlatform, SipSubscribe.Event errorEvent, SipSubscribe.Event okEvent)
|
throws SipException, InvalidArgumentException, ParseException;
|
|
|
/**
|
* 向上级回复通道信息
|
*
|
* @param channel 通道信息
|
* @param parentPlatform 平台信息
|
* @param sn
|
* @param fromTag
|
* @param size
|
* @return
|
*/
|
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;
|
|
/**
|
* 向上级回复DeviceInfo查询信息
|
*
|
* @param parentPlatform 平台信息
|
* @param sn SN
|
* @param fromTag FROM头的tag信息
|
* @return
|
*/
|
void deviceInfoResponse(ParentPlatform parentPlatform,Device device, String sn, String fromTag) throws SipException, InvalidArgumentException, ParseException;
|
|
/**
|
* 向上级回复DeviceStatus查询信息
|
*
|
* @param parentPlatform 平台信息
|
* @param sn
|
* @param fromTag
|
* @return
|
*/
|
void deviceStatusResponse(ParentPlatform parentPlatform,String channelId, String sn, String fromTag,int status) throws SipException, InvalidArgumentException, ParseException ;
|
|
/**
|
* 向上级回复移动位置订阅消息
|
*
|
* @param parentPlatform 平台信息
|
* @param gpsMsgInfo GPS信息
|
* @param subscribeInfo 订阅相关的信息
|
* @return
|
*/
|
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
|
*/
|
void sendNotifyForCatalogAddOrUpdate(String type, ParentPlatform parentPlatform, List<DeviceChannel> deviceChannels, SubscribeInfo subscribeInfo, Integer index) throws InvalidArgumentException, ParseException, NoSuchFieldException, SipException, IllegalAccessException;
|
|
/**
|
* 回复catalog事件-删除
|
*
|
* @param parentPlatform
|
* @param deviceChannels
|
*/
|
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;
|
|
/**
|
* 录像播放推送完成时发送MediaStatus消息
|
*
|
* @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;
|
}
|