SubscribeEventCap capability message in XML format
<SubscribeEventCap version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema"> <heartbeat min="" max="" /> <!--optional, heartbeat time interval, unit: second--> <format opt="xml,json"/><!--req, supported message format--> <channelMode opt="all,list" /> <!--required, channel subscription mode: "all"-subscribe events/alarms of all channels, "list"-subscribe events/alarms of specific channels--> <eventMode opt="all,list" /> <!--required, event subscription mode: "all"-subscribe all event types (must be supported), "list"-subscribe specific event types, if "list" is returned, "all" will also be returned--> <!--if both the channelMode and eventMode returns "all", it indicates that the device does not support subscribing event/alarm by event type or channel--> <EventList><!--required, dependent, upload mode of specified alarms/events, it is valid only when eventMode is "list"--> <Event><!--required--> <type><!--required, xs:string, refer to Supported Alarm/Event Types for details--></type> <minorAlarm opt="0x400,0x401,0x402,0x403"> <!--opt, xs:string, minor alarm type, see details in Access Control Event Type. This node is required when type is "AccessControllerEvent"--> </minorAlarm> <minorException opt="0x400,0x401,0x402,0x403"> <!--opt, xs:string, minor exception type, see details in Access Control Event Type. This node is required when type is "AccessControllerEvent"--> </minorException> <minorOperation opt="0x400,0x401,0x402,0x403"> <!--opt, xs:string, minor operation type, see details in Access Control Event Type. This node is required when type is "AccessControllerEvent"--> </minorOperation> <minorEvent opt="0x01,0x02,0x03,0x04"> <!--opt, xs:string, minor event type, see details in Access Control Event Type. This node is required when type is "AccessControllerEvent"--> </minorEvent> <pictureURLType opt="binary,localURL,cloudStorageURL" def=""/> <!--opt, xs:string, alarm picture format: "binary"-binary, "localURL"-device local URL, "cloudStorageURL"-cloud storage URL, and the def is followed by the default format--> </Event> </EventList> <pictureURLType opt="binary,localURL,cloudStorageURL" def=""/> <!--opt, xs:string, alarm picture format: "binary"-binary picture, "localURL"-device local URL, "cloudStorageURL"-cloud storage URL. This node is the method of uploading all pictures related to the event. If this node is applied, <pictureURLType> in <Event> is invalid; otherwise, pictures will be uploaded using the default method returned by the device capability. For front-end devices, the default method is uploading binary pictures; for back-end devices, the default method is by device local URL--> <ChangedUploadSub><!--message subscription--> <interval/><!--opt, xs:integer, lifecycle of arming GUID, the default value is 5 minutes, unit: second. The device will generate new GUID for the arming connection after it is disconnected for the set lifecycle--> <StatusSub> <all/><!-- opt, xs:boolean, whether to subscribe all events--> <channel/><!--opt, xs:boolean, whether to subscribe channel status. This node is not required when <all> is "true"--> <hd/><!--opt, xs:boolean, whether to subscribe disk status. This node is not required when <all> is "true"--> <capability/><!--opt, xs:boolean, whether to subscribe capability change status. This node is not required when <all> is "true"--> </StatusSub> </ChangedUploadSub> <identityKey max="64"/> <!--opt, xs: string, interaction command of subscription, supports subscribing comparison results of face picture library (importing with this command), the maximum length is 64--> </SubscribeEventCap>