|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import com.genersoft.iot.vmp.common.StreamInfo; | 
|---|
|  |  |  | import com.genersoft.iot.vmp.conf.exception.SsrcTransactionNotFoundException; | 
|---|
|  |  |  | import com.genersoft.iot.vmp.gb28181.bean.*; | 
|---|
|  |  |  | import com.genersoft.iot.vmp.gb28181.bean.Device; | 
|---|
|  |  |  | import com.genersoft.iot.vmp.gb28181.bean.DeviceAlarm; | 
|---|
|  |  |  | import com.genersoft.iot.vmp.gb28181.bean.InviteStreamCallback; | 
|---|
|  |  |  | 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.SSRCInfo; | 
|---|
|  |  |  | import gov.nist.javax.sip.message.SIPRequest; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import javax.sip.Dialog; | 
|---|
|  |  |  | import javax.sip.InvalidArgumentException; | 
|---|
|  |  |  | import javax.sip.PeerUnavailableException; | 
|---|
|  |  |  | import javax.sip.SipException; | 
|---|
|  |  |  | import javax.sip.message.Request; | 
|---|
|  |  |  | import java.text.ParseException; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | void downloadStreamCmd(MediaServerItem mediaServerItem, SSRCInfo ssrcInfo, Device device, String channelId, | 
|---|
|  |  |  | String startTime, String endTime, int downloadSpeed, InviteStreamCallback inviteStreamCallback, InviteStreamCallback hookEvent, | 
|---|
|  |  |  | SipSubscribe.Event errorEvent) throws InvalidArgumentException, SipException, ParseException; | 
|---|
|  |  |  | SipSubscribe.Event errorEvent,SipSubscribe.Event okEvent) throws InvalidArgumentException, SipException, ParseException; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 视频流停止 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | void streamByeCmd(Device device, String channelId, String stream, String callId, SipSubscribe.Event okEvent) throws InvalidArgumentException, SipException, ParseException, SsrcTransactionNotFoundException; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | void streamByeCmd(Device device, String channelId, String stream, String callId) throws InvalidArgumentException, ParseException, SipException, SsrcTransactionNotFoundException; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | 
|---|
|  |  |  | * @param channelId     预览通道 | 
|---|
|  |  |  | * @param recordCmdStr   录像命令:Record / StopRecord | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | void recordCmd(Device device, String channelId, String recordCmdStr, SipSubscribe.Event errorEvent) throws InvalidArgumentException, SipException, ParseException; | 
|---|
|  |  |  | void recordCmd(Device device, String channelId, String recordCmdStr, SipSubscribe.Event errorEvent, SipSubscribe.Event okEvent) throws InvalidArgumentException, SipException, ParseException; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 远程启动控制命令 | 
|---|
|  |  |  | 
|---|
|  |  |  | * | 
|---|
|  |  |  | * @param device     视频设备 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | void guardCmd(Device device, String guardCmdStr, SipSubscribe.Event errorEvent) throws InvalidArgumentException, SipException, ParseException; | 
|---|
|  |  |  | void guardCmd(Device device, String guardCmdStr, SipSubscribe.Event errorEvent, SipSubscribe.Event okEvent) throws InvalidArgumentException, SipException, ParseException; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 报警复位命令 | 
|---|
|  |  |  | 
|---|
|  |  |  | * @param alarmMethod   报警方式(可选) | 
|---|
|  |  |  | * @param alarmType      报警类型(可选) | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | void alarmCmd(Device device, String alarmMethod, String alarmType, SipSubscribe.Event errorEvent) throws InvalidArgumentException, SipException, ParseException; | 
|---|
|  |  |  | void alarmCmd(Device device, String alarmMethod, String alarmType, SipSubscribe.Event errorEvent, SipSubscribe.Event okEvent) throws InvalidArgumentException, SipException, ParseException; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 强制关键帧命令,设备收到此命令应立刻发送一个IDR帧 | 
|---|
|  |  |  | 
|---|
|  |  |  | * @param channelId  预览通道 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | void iFrameCmd(Device device, String channelId) throws InvalidArgumentException, SipException, ParseException; | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 看守位控制命令 | 
|---|
|  |  |  | * | 
|---|
|  |  |  | * @param device      视频设备 | 
|---|
|  |  |  | * @param enabled      看守位使能:1 = 开启,0 = 关闭 | 
|---|
|  |  |  | * @param resetTime      自动归位时间间隔,开启看守位时使用,单位:秒(s) | 
|---|
|  |  |  | * @param presetIndex   调用预置位编号,开启看守位时使用,取值范围0~255 | 
|---|
|  |  |  | * | 
|---|
|  |  |  | * @param device      视频设备 | 
|---|
|  |  |  | * @param channelId      通道id,非通道则是设备本身 | 
|---|
|  |  |  | * @param enabled     看守位使能:1 = 开启,0 = 关闭 | 
|---|
|  |  |  | * @param resetTime   自动归位时间间隔,开启看守位时使用,单位:秒(s) | 
|---|
|  |  |  | * @param presetIndex 调用预置位编号,开启看守位时使用,取值范围0~255 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | void homePositionCmd(Device device, String channelId, String enabled, String resetTime, String presetIndex, SipSubscribe.Event errorEvent) throws InvalidArgumentException, SipException, ParseException; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | void homePositionCmd(Device device, String channelId, String enabled, String resetTime, String presetIndex, SipSubscribe.Event errorEvent,SipSubscribe.Event okEvent) throws InvalidArgumentException, SipException, ParseException; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 设备配置命令 | 
|---|
|  |  |  | * | 
|---|
|  |  |  | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | void deviceConfigCmd(Device device); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 设备配置命令:basicParam | 
|---|
|  |  |  | * | 
|---|
|  |  |  | * @param device           视频设备 | 
|---|
|  |  |  | 
|---|
|  |  |  | * @param heartBeatCount   心跳超时次数(可选) | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | void deviceBasicConfigCmd(Device device, String channelId, String name, String expiration, String heartBeatInterval, String heartBeatCount, SipSubscribe.Event errorEvent) throws InvalidArgumentException, SipException, ParseException; | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 查询设备状态 | 
|---|
|  |  |  | * | 
|---|
|  |  |  | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | void sendAlarmMessage(Device device, DeviceAlarm deviceAlarm) throws InvalidArgumentException, SipException, ParseException; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | void transmitRequest(String transport, Request request) throws SipException, ParseException ; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | void transmitRequest(String transport, Request request, SipSubscribe.Event errorEvent) throws SipException, ParseException; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | void transmitRequest(String transport, Request request, SipSubscribe.Event errorEvent , SipSubscribe.Event okEvent) throws SipException, ParseException; | 
|---|
|  |  |  | } | 
|---|