package com.genersoft.iot.vmp.service; import com.genersoft.iot.vmp.conf.exception.SsrcTransactionNotFoundException; import com.genersoft.iot.vmp.gb28181.bean.ParentPlatform; 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.InviteTimeOutCallback; import com.github.pagehelper.PageInfo; import javax.sip.InvalidArgumentException; import javax.sip.SipException; import java.text.ParseException; /** * 国标平台的业务类 * @author lin */ public interface IPlatformService { ParentPlatform queryPlatformByServerGBId(String platformGbId); /** * 分页获取上级平台 * @param page * @param count * @return */ PageInfo queryParentPlatformList(int page, int count); /** * 添加级联平台 * @param parentPlatform 级联平台 */ boolean add(ParentPlatform parentPlatform); /** * 平台上线 * @param parentPlatform 平台信息 */ void online(ParentPlatform parentPlatform); /** * 平台离线 * @param parentPlatform 平台信息 */ void offline(ParentPlatform parentPlatform, boolean stopRegisterTask); /** * 向上级平台发起注册 * @param parentPlatform */ void login(ParentPlatform parentPlatform); /** * 向上级平台发送位置订阅 * @param platformId 平台 */ void sendNotifyMobilePosition(String platformId); /** * 向上级发送语音喊话的消息 * @param platform 平台 * @param channelId 通道 * @param hookEvent hook事件 * @param errorEvent 信令错误事件 * @param timeoutCallback 超时事件 */ void broadcastInvite(ParentPlatform platform, String channelId, MediaServerItem mediaServerItem, ZlmHttpHookSubscribe.Event hookEvent, SipSubscribe.Event errorEvent, InviteTimeOutCallback timeoutCallback) throws InvalidArgumentException, ParseException, SipException; /** * 语音喊话回复BYE * @param platform 平台 * @param channelId 通道 * @param stream 流信息 */ void stopBroadcast(ParentPlatform platform, String channelId, String stream )throws InvalidArgumentException, ParseException, SsrcTransactionNotFoundException, SipException; }