ISAPI - General
ISAPI - General
Developer Guide
Intelligent Security API (General) Developer Guide
Legal Information
TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THE DOCUMENT IS PROVIDED "AS IS"
AND “WITH ALL FAULTS AND ERRORS”. OUR COMPANY MAKES NO REPRESENTATIONS OR
WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO, WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. IN NO EVENT
WILL OUR COMPANY BE LIABLE FOR ANY SPECIAL, CONSEQUENTIAL, INCIDENTAL, OR INDIRECT
DAMAGES, INCLUDING, AMONG OTHERS, DAMAGES FOR LOSS OF BUSINESS PROFITS, BUSINESS
INTERRUPTION OR LOSS OF DATA, CORRUPTION OF SYSTEMS, OR LOSS OF DOCUMENTATION,
WHETHER BASED ON BREACH OF CONTRACT, TORT (INCLUDING NEGLIGENCE), OR OTHERWISE, IN
CONNECTION WITH THE USE OF THE DOCUMENT, EVEN IF OUR COMPANY HAS BEEN ADVISED OF
THE POSSIBILITY OF SUCH DAMAGES OR LOSS.
i
Intelligent Security API (General) Developer Guide
Contents
Chapter 1 Overview .................................................................................................................... 1
1.1 Introduction ........................................................................................................................... 1
1.2 Update History ....................................................................................................................... 2
1.2.1 Version 20.10-Version 20.12 ......................................................................................... 2
1.2.2 Version 20.07-Version 20.09 ......................................................................................... 5
1.2.3 Version 20.04-Version 20.06 ....................................................................................... 10
1.2.4 Version 20.01-Version 20.03 ....................................................................................... 15
Chapter 2 ISAPI Description ...................................................................................................... 19
2.1 Operation Method ............................................................................................................... 19
2.2 URL Format .......................................................................................................................... 22
2.3 Message Format .................................................................................................................. 23
2.4 Others .................................................................................................................................. 25
Chapter 3 Security .................................................................................................................... 26
3.1 Authentication ..................................................................................................................... 26
3.2 User Permission ................................................................................................................... 27
3.3 Encryption ............................................................................................................................ 27
3.3.1 Encrypt Stream ........................................................................................................... 29
3.3.2 Encrypt Sensitive Information ..................................................................................... 31
3.3.3 Encrypt Stream Based on RTSP/SRTP .......................................................................... 41
3.4 Security Service .................................................................................................................... 53
Chapter 4 Login ........................................................................................................................ 56
Chapter 5 Device Management ................................................................................................. 57
5.1 Device Activation ................................................................................................................. 57
5.1.1 Directly Activate Device .............................................................................................. 57
5.1.2 Activate Network Camera via NVR .............................................................................. 58
5.2 Reset Password by Setting Recovery Email .......................................................................... 59
ii
Intelligent Security API (General) Developer Guide
iii
Intelligent Security API (General) Developer Guide
iv
Intelligent Security API (General) Developer Guide
v
Intelligent Security API (General) Developer Guide
vi
Intelligent Security API (General) Developer Guide
vii
Intelligent Security API (General) Developer Guide
viii
Intelligent Security API (General) Developer Guide
ix
Intelligent Security API (General) Developer Guide
A.2.120 /ISAPI/ContentMgmt/StreamingProxy/channels/<ID>/PictureByUrl/capabilities?
format=json ....................................................................................................................... 220
A.2.121 /ISAPI/ContentMgmt/StreamingProxy/channels/<ID>/PictureByUrl?format=json
............................................................................................................................................ 220
A.2.122 /ISAPI/ContentMgmt/time/search/capabilities?format=json .............................. 221
A.2.123 /ISAPI/ContentMgmt/time/search?format=json .................................................. 221
A.3 /ISAPI/Event ....................................................................................................................... 222
A.3.1 /ISAPI/Event/capabilities .......................................................................................... 222
A.3.2 /ISAPI/Event/channels/<ID>/capabilities .................................................................. 222
A.3.3 /ISAPI/Event/channels/capabilities .......................................................................... 222
A.3.4 /ISAPI/Event/notification/alertStream ..................................................................... 223
A.3.5 /ISAPI/Event/notification/httpHosts ......................................................................... 224
A.3.6 /ISAPI/Event/notification/httpHosts/<ID> ................................................................ 225
A.3.7 /ISAPI/Event/notification/httpHosts/<ID>/test ........................................................ 226
A.3.8 /ISAPI/Event/notification/httpHosts/capabilities ..................................................... 227
A.3.9 /ISAPI/Event/notification/subscribeEvent ................................................................ 227
A.3.10 /ISAPI/Event/notification/subscribeEvent/<ID> ..................................................... 228
A.3.11 /ISAPI/Event/notification/subscribeEventCap ........................................................ 228
A.3.12 /ISAPI/Event/notification/unSubscribeEvent .......................................................... 229
A.3.13 /ISAPI/Event/schedules/motionDetections ............................................................ 229
A.3.14 /ISAPI/Event/schedules/motionDetections/<ID> ................................................... 230
A.3.15 /ISAPI/Event/schedules/vibrationDetection/<ID> .................................................. 230
A.3.16 /ISAPI/Event/schedules/<EventType>/<ID> ........................................................... 231
A.3.17 /ISAPI/Event/triggers/hdBadBlock .......................................................................... 232
A.3.18 /ISAPI/Event/triggers/hdImpact ............................................................................. 232
A.3.19 /ISAPI/Event/triggers/highHDTemperature ............................................................ 233
A.3.20 /ISAPI/Event/triggers/lowHDTemperature ............................................................. 234
A.3.21 /ISAPI/Event/triggers/severeHDFailure .................................................................. 234
A.3.22 /ISAPI/Event/triggers/<eventType>-<ID> ............................................................... 235
x
Intelligent Security API (General) Developer Guide
xi
Intelligent Security API (General) Developer Guide
xii
Intelligent Security API (General) Developer Guide
xiii
Intelligent Security API (General) Developer Guide
xiv
Intelligent Security API (General) Developer Guide
xv
Intelligent Security API (General) Developer Guide
xvi
Intelligent Security API (General) Developer Guide
xvii
Intelligent Security API (General) Developer Guide
xviii
Intelligent Security API (General) Developer Guide
xix
Intelligent Security API (General) Developer Guide
xx
Intelligent Security API (General) Developer Guide
xxi
Intelligent Security API (General) Developer Guide
xxii
Intelligent Security API (General) Developer Guide
A.12.124 /ISAPI/System/Network/interfaces/<ID>/dynamicHostName/capabilities?
format=json ....................................................................................................................... 422
A.12.125 /ISAPI/System/Network/interfaces/<ID>/ieee802.1x ........................................ 422
A.12.126 /ISAPI/System/Network/interfaces/<ID>/ieee802.1x/capabilities ..................... 423
A.12.127 /ISAPI/System/Network/interfaces/<ID>/ipAddress .......................................... 423
A.12.128 /ISAPI/System/Network/interfaces/<ID>/ipAddress/capabilities ....................... 425
A.12.129 /ISAPI/System/Network/interfaces/<ID>/link .................................................... 425
A.12.130 /ISAPI/System/Network/interfaces/<ID>/link/capabilities ................................. 426
A.12.131 /ISAPI/System/Network/interfaces/<ID>/NetworkMode ................................... 426
A.12.132 /ISAPI/System/Network/interfaces/<ID>/wireless ............................................. 427
A.12.133 /ISAPI/System/Network/interfaces/<ID>/wireless/accessDeviceList/<ID> ........ 428
A.12.134 /ISAPI/System/Network/interfaces/<ID>/wireless/accessDeviceList/capabilities
............................................................................................................................................ 428
A.12.135 /ISAPI/System/Network/interfaces/<ID>/wireless/accessPointList ................... 429
A.12.136 /ISAPI/System/Network/interfaces/<ID>/wireless/accessPointList/<ID> .......... 429
A.12.137 /ISAPI/System/Network/interfaces/<ID>/wireless/capabilities ......................... 429
A.12.138 /ISAPI/System/Network/interfaces/<ID>/wireless/connectStatus ..................... 430
A.12.139 /ISAPI/System/Network/interfaces/<ID>/wirelessServer ................................... 430
A.12.140 /ISAPI/System/Network/interfaces/<ID>/wirelessServer/accessDeviceList ....... 431
A.12.141 /ISAPI/System/Network/interfaces/<ID>/wirelessServer/capabilities ............... 432
A.12.142 /ISAPI/System/Network/interfaces/<ID>/wirelessServerStatus ......................... 432
A.12.143 /ISAPI/System/Network/interfaces/<ID>/wirelessServerStatus/capabilities ..... 433
A.12.144 /ISAPI/System/Network/interfaces/<ID>/wirelessStatus ................................... 433
A.12.145 /ISAPI/System/Network/interfaces/<ID>/wirelessStatus/capabilities ............... 434
A.12.146 /ISAPI/System/Network/interfaces/<ID>/WPS ................................................... 434
A.12.147 /ISAPI/System/Network/interfaces/<ID>/WPS/ApPinCode ............................... 435
A.12.148 /ISAPI/System/Network/interfaces/<ID>/WPS/AutoConnect ............................ 436
A.12.149 /ISAPI/System/Network/interfaces/<ID>/WPS/devicePinCode ......................... 436
A.12.150 /ISAPI/System/Network/interfaces/<ID>/WPS/devicePinCodeUpdate .............. 437
xxiii
Intelligent Security API (General) Developer Guide
xxiv
Intelligent Security API (General) Developer Guide
xxv
Intelligent Security API (General) Developer Guide
A.12.203 /ISAPI/System/Network/WirelessDial/Interfaces/<ID>/trafficMonitor/capabilities?
format=json ....................................................................................................................... 467
A.12.204 /ISAPI/System/Network/WirelessDial/Interfaces/<ID>/trafficMonitor/status?
format=json ....................................................................................................................... 467
A.12.205 /ISAPI/System/Network/WirelessDial/Interfaces/<ID>/trafficMonitor?format=json
............................................................................................................................................ 467
A.12.206 /ISAPI/System/Network/WPS/capabilities ......................................................... 468
A.12.207 /ISAPI/System/onlineUpgrade/capabilities ........................................................ 469
A.12.208 /ISAPI/System/onlineUpgrade/deviceParameter?format=json .......................... 469
A.12.209 /ISAPI/System/onlineUpgrade/downloadPackage/pause?format=json ............. 469
A.12.210 /ISAPI/System/onlineUpgrade/downloadPackage/resume?format=json .......... 470
A.12.211 /ISAPI/System/onlineUpgrade/downloadPackage/status?format=json ............. 470
A.12.212 /ISAPI/System/onlineUpgrade/downloadPackage?format=json ........................ 471
A.12.213 /ISAPI/System/onlineUpgrade/ignoreCurrentVersion?format=json ................... 471
A.12.214 /ISAPI/System/onlineUpgrade/server ................................................................ 472
A.12.215 /ISAPI/System/onlineUpgrade/status ................................................................. 472
A.12.216 /ISAPI/System/onlineUpgrade/upgradeWithoutDownload?format=json .......... 472
A.12.217 /ISAPI/System/onlineUpgrade/version ............................................................... 473
A.12.218 /ISAPI/System/PictureServer/capabilities?format=json ..................................... 473
A.12.219 /ISAPI/System/PictureServer?format=json ......................................................... 473
A.12.220 /ISAPI/System/reboot ......................................................................................... 474
A.12.221 /ISAPI/System/Serial/authentication/capabilities?format=json ......................... 475
A.12.222 /ISAPI/System/Serial/authentication?format=json ............................................ 475
A.12.223 /ISAPI/System/Serial/capabilities ....................................................................... 476
A.12.224 /ISAPI/System/Serial/ports ................................................................................. 476
A.12.225 /ISAPI/System/Serial/ports/<ID> ........................................................................ 477
A.12.226 /ISAPI/System/Serial/ports/<ID>/capabilities .................................................... 477
A.12.227 /ISAPI/System/Serial/ports/capabilities ............................................................. 478
A.12.228 /ISAPI/System/Serial/ports/command ............................................................... 478
xxvi
Intelligent Security API (General) Developer Guide
xxvii
Intelligent Security API (General) Developer Guide
xxviii
Intelligent Security API (General) Developer Guide
A.12.284 /ISAPI/System/Video/inputs/channels/<ID>/motionDetection/layout/capabilities
............................................................................................................................................ 510
A.12.285 /ISAPI/System/Video/inputs/channels/<ID>/motionDetection/layout/gridLayout
............................................................................................................................................ 510
A.12.286 /ISAPI/System/Video/inputs/channels/<ID>/overlays ....................................... 511
A.12.287 /ISAPI/System/Video/inputs/channels/<ID>/overlays/BatteryPowerOverlay .... 513
A.12.288 /ISAPI/System/Video/inputs/channels/<ID>/overlays/BatteryPowerOverlay/
capabilities ......................................................................................................................... 514
A.12.289 /ISAPI/System/Video/inputs/channels/<ID>/overlays/capabilities .................... 514
A.12.290 /ISAPI/System/Video/inputs/channels/<ID>/overlays/channelNameOverlay ... 514
A.12.291 /ISAPI/System/Video/inputs/channels/<ID>/overlays/dateTimeOverlay ........... 515
A.12.292 /ISAPI/System/Video/inputs/channels/<ID>/overlays/dateTimeOverlay/
capabilities ......................................................................................................................... 516
A.12.293 /ISAPI/System/Video/inputs/channels/<ID>/overlays/text ................................ 516
A.12.294 /ISAPI/System/Video/inputs/channels/<ID>/overlays/text/<ID> ....................... 518
A.12.295 /ISAPI/System/Video/inputs/channels/<ID>/privacyMask ................................. 518
A.12.296 /ISAPI/System/Video/inputs/channels/<ID>/privacyMask/privacyMaskCap ..... 519
A.12.297 /ISAPI/System/Video/inputs/channels/<ID>/privacyMask/regions ................... 519
A.12.298 /ISAPI/System/Video/inputs/channels/<ID>/privacyMask/regions/<ID> .......... 521
A.12.299 /ISAPI/System/Video/inputs/channels/<ID>/VCAResource ............................... 521
A.12.300 /ISAPI/System/Video/inputs/channels/<ID>/VCAResource/capabilities ............ 522
A.12.301 /ISAPI/System/Video/inputs/channels/capabilities ............................................ 523
A.12.302 /ISAPI/System/Video/inputs/channels/counting/collection/capabilities?
format=json ....................................................................................................................... 523
A.12.303 /ISAPI/System/Video/inputs/channels/counting/collection?format=json ......... 524
A.12.304 /ISAPI/System/Video/inputs/channels/heatMap/collection/capabilities?
format=json ....................................................................................................................... 524
A.12.305 /ISAPI/System/Video/inputs/channels/heatMap/collection?format=json ........ 524
A.12.306 /ISAPI/System/Video/inputs/OSDLanguage ....................................................... 525
A.12.307 /ISAPI/System/Video/outputs ............................................................................ 525
xxix
Intelligent Security API (General) Developer Guide
xxx
Intelligent Security API (General) Developer Guide
xxxi
Intelligent Security API (General) Developer Guide
Chapter 1 Overview
1.1 Introduction
The OPEN Intelligent Security Application Programming Interface (ISAPI) is a text protocol in
RESTful style based on HTTP for communicating between security devices/servers (e.g., cameras,
DVR, NVR, etc.) and client software/system. It defines the communication standard between
device/server and client software/system via the Internet Protocol (IP), see the network topology
and communication protocol layer framework in the figures below.
Note
REST (REpresentational State Transfer) is a protocol design method which abstracts all information
as the resources. The abstracted resources are marked by the uniform identifies, i.e., URI (Uniform
Resource Identifiers) for simple and extendable management.
1
Intelligent Security API (General) Developer Guide
2
Intelligent Security API (General) Developer Guide
3
Intelligent Security API (General) Developer Guide
4
Intelligent Security API (General) Developer Guide
5
Intelligent Security API (General) Developer Guide
6
Intelligent Security API (General) Developer Guide
added two nodes <focusStatus> (focus status) and <motorMovementType> (motor movement
type).
3. Added one URI for getting focus status: GET /ISAPI/Image/channels/<ID>/focusConfiguration/
status?format=json .
7
Intelligent Security API (General) Developer Guide
added a node <bindStatus> (Hik-Connect account binding status of the current device).
3. Added a URI of getting the Hik-Connect QR code of the device: GET /ISAPI/System/Network/
EZVIZ/QRCode .
8
Intelligent Security API (General) Developer Guide
added four minor operation log types: "localSSDOperateStart" (Local SSD operation (firmware
operations) started), "localSSDOperateStop" (Local SSD operation (firmware operations)
ended), "remoteSSDOperateStart" (Remote SSD operation (firmware operations) started),
"remoteSSDOperateStop" (Remote SSD operation (firmware operations) ended).
9
Intelligent Security API (General) Developer Guide
10
Intelligent Security API (General) Developer Guide
11
Intelligent Security API (General) Developer Guide
12
Intelligent Security API (General) Developer Guide
13
Intelligent Security API (General) Developer Guide
14
Intelligent Security API (General) Developer Guide
15
Intelligent Security API (General) Developer Guide
16
Intelligent Security API (General) Developer Guide
17
Intelligent Security API (General) Developer Guide
18
Intelligent Security API (General) Developer Guide
Note
The RTSP operation methods are mainly used to get the real-time stream for live view, two-way
audio, and playback in this manual. For details about HTTP and RTSP, please refer to https://
tools.ietf.org/html/rfc2612 and https://tools.ietf.org/html/rfc2326 .
/*Succeeded*/
RTSP/1.0 200 OK\r\n
CSeq: %u\r\n //Command No.
19
Intelligent Security API (General) Developer Guide
Method Description
Public: %s\r\n //Supported operation methods
Date:%s\r\n //Date and time
\r\n
/*Failed*/
RTSP/1.0 4XX/5XX %s\r\n
CSeq: %u\r\n //Command No.
Date:%s\r\n //Date and time
\r\n
DESCRIBE Transfer basic information by SDP (Session Description Protocol, see https://
tools.ietf.org/html/rfc2327 ) files, such as URL with SETUP command and so
on. See the request and response message format below when interacting
between client software and server.
DESCRIBE %s RTSP/1.0\r\n //URL
CSeq:%u\r\n //Command No.
Accept: application/sdp\r\n //The SDP description is accepted
Authorization:%s\r\n //Authentication information
User-Agent:%s\r\n //Client software name
\r\n
/*Succeeded*/
RTSP/1.0 200 OK\r\n
CSeq: %u\r\n //Command No.
Content-Type: application/sdp\r\n //The SDP description exists behind the command
Content-Base:%s\r\n //URL
Content-Length: %d\r\n //The length of contents behind the command
\r\n
[content] //SDP description
/*Failed*/
RTSP/1.0 4XX/5XX %s\r\n
CSeq: %u\r\n //Command No.
\r\n
SETUP Interact the session information, such as transmission mode, port number,
and so on. See the request and response message format below when
interacting between client software and server.
SETUP %s RTSP/1.0\r\n //URL
CSeq:%u\r\n //Command No.
Authorization:%s\r\n //Authentication information
Session:%s\r\n //Session ID is only returned at the even number of times
Transport: %s\r\n //Transmission protocol
User-Agent:%s\r\nv //Client software name
\r\n
/*Succeeded*/
RTSP/1.0 200 OK \r\n
20
Intelligent Security API (General) Developer Guide
Method Description
CSeq: %u\r\n
Session:%s\r\n //Session ID
Transport: s% //Transmission method
Date: s% //Date and time
/*Failed*/
RTSP/1.0 4XX/5XX %s\r\n
CSeq: %u\r\n //Command No.
\r\n
PLAY Start the stream transmission. See the request and response message format
below when interacting between client software and server.
PLAY %s RTSP/1.0\r\n //URL
CSeq:%u\r\n //Command No.
Authorization:%s\r\n //Authentication information
Session:%s\r\n //Session ID
Range: npt=%f-%f\r\n //Determine the play range
User-Agent:%s\r\n //Client software name
\r\n
/*Succeeded*/
RTSP/1.0 200 OK \r\n
CSeq: %u\r\n
Session:%s\r\n
RTP-Info:%s
Date: %s
/*Failed*/
RTSP/1.0 4XX/5XX %s\r\n
CSeq: %u\r\n //Command No.
Session:%s\r\n
\r\n
/*Succeeded*/
RTSP/1.0 200 OK \r\n
CSeq: %u\r\n
Session:%s\r\n
21
Intelligent Security API (General) Developer Guide
Method Description
Date:%s\r\n
\r\n
/*Failed*/
RTSP/1.0 4XX/5XX %s\r\n
CSeq: %u\r\n //Command No.
Session:%s\r\n
\r\n
22
Intelligent Security API (General) Developer Guide
Strings for describing resources information, including related parameters. The parameter
names and values must be listed as the following format in this field: ?p1=v1&p2=v2&…&pn=vn.
Note
• To locate the connected device, when operating lower-level device via the URL, the query
field should be filled as ?devIndex=uuid&p1=v1&p2=v2&…&pn=vn. The uuid (or guid) is a 32-
byte (128 bits) random number, which is unique and generated by operating system when
adding device, and its format is "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx".
• For message in JSON format, the query field should be filled as ?
format=json&p1=v1&p2=v2&…&pn=vn. For details about message format, refer to the next
section below. E.g.,http://10.17.132.22/ISAPI/System/time?
foramt=json&devIndex=550e8400e29b41d4a716446655440000.
Note
The message format here is only available for URLs based on HTTP.
XML Format
• For the previous integration, XML is a common format which may only cause a little changes in
the later integration.
• Generally, for configuration information, the Content-Type in the XML format message is
"application/xml; charset='UTF-8'", see details below.
//Request Message
GET /ISAPI/System/status HTTP/1.1
…
//Response Message
HTTP/1.1 200 OK
…
Content-Type: application/xml; charset="UTF-8"
…
<?xml version="1.0" encoding="UTF-8"?>
<DeviceStatus version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
…
</DeviceStatus>
For data (e.g., firmware, configuration files), the Content-Type in the XML format message is
"application/octet-stream", see details below.
//Request Message
PUT /ISAPI/System/configurationData HTTP/1.1
23
Intelligent Security API (General) Developer Guide
…
Content-Type: application/octet-stream
…
[proprietary configuration file data content]
//Response Message
HTTP/1.1 200 OK
…
Note
JSON is a lightweight data format which is a subset of JavaScript language and is small, fast, and
easy to be parsed.
• Generally, for configuration information, the Content-Type of message is "application/json", see
the example below:
//Request message
GET /ISAPI/System/status HTTP/1.1
…
//Response message
HTTP/1.1 200 OK
…
Content-Type: application/json
…
"DeviceStatus":""
…
For data (e.g., firmware, configuration files), the Content-Type of message is "application/octet-
stream", see the example below:
//Request message
PUT /ISAPI/System/configurationData HTTP/1.1
…
Content-Type: application/octet-stream
…
[proprietary configuration file data content]
24
Intelligent Security API (General) Developer Guide
//Response message
HTTP/1.1 200 OK
…
Content-Type: application/json
…
"ResponseStatus":""
…
2.4 Others
Time Format
The time format during ISAPI integration adopts ISO8601 standard (see details in http://
www.w3.org/TR/NOTE-datetime-970915 ), that is, YYY-MM-DDThh:mm:ss.sTZD (e.g.,
2017-08-16T20:17:06+08:00).
Namespace
For message in XML format, namespace is required. The following namespaces are available:
• xmlns=http://www.isapi.org/ver20/XMLSchema
• xmlns:xs="http://www.w3.org/2001/XMLSchema"
• xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
• xmlns:xlink="http://www.w3.org/1999/xlink"
Error Processing
During the integration applications of ISAPI protocol, when the error of URL based on HTTP
occurred, the ResponseStatus message (in XML or JSON format) which contains error code will be
returned. If the error of URL based on RTSP occurs, the corresponding status code will directly be
returned, for details, refer to https://tools.ietf.org/html/rfc2326 .
25
Intelligent Security API (General) Developer Guide
Chapter 3 Security
This part mainly introduces the authentication, user permission, and encryption in the integration
applications of ISAPI.
3.1 Authentication
When communicating via ISAPI protocol, the digest of the session must be authenticated.
Note
• The authentication must based on HTTP Authentication: Basic and Digest Access Authentication,
see https://tools.ietf.org/html/rfc2617 for details.
• The request session must contain authentication information, otherwise, device will return 401
error code.
The message digest, which contains user name, password, specific nonce value, HTTP or RTSP
operation methods, and request URL, is generated by the MD5 algorithm, see the calculation rules
below.
qop=Undefined
Digest=MD5(MD5(A1):<nonce>:MD5(A2))
qop="auth:"
Digest=MD5(MD5(A1):<nonce>:<nc>:<cnonce>:<qop>:MD5(A2))
qop="auth-int:"
Digest=MD5(MD5(A1):<nonce>:<nc>:<cnonce>:<qop>:MD5(A2))
Note
• The qop is a value for determining whether the authentication is required.
• A1 and A2 are two data blocks required for digest calculation.
A1: Data block about security, which contains user name, password, security domain, random
number, and so on. If the digest calculation algorithm is MD5, A1=<user>:<realm>:<password>;
if the algorithm is MD5-sess, A1=MD5(<user>:<realm>:<password>):<nonce>:<cnonce>.
A2: Data block about message, such as URL, repeated requests, message body, and so on, it
helps to prevent repeated, and realize the resource/message tamper-proof. If the qop is not
defined or it is "auth:", A2=<request-method>:<uri-directive-value>; if the qop is "auth-int:",
A2=<request-method>:<uri-directive-value>:MD5(<request-entity-body>).
• The nonce is the random number generated by service, the following generation formula is
suggested: nonce = BASE64(time-stamp MD5(time-stamp ":" ETag ":" private-key)). The time-
stamp in the formula is the time stamp generated by service or the unique serial No.; the ETag is
26
Intelligent Security API (General) Developer Guide
the value of HTTP ETag header in the request message; the priviate-key is the data that only
known by service.
3.3 Encryption
Two encryption modes are available, including all information encryption (based on HTTPs) and
sensitive information (e.g., user name, password, card No. and so on) encryption.
Note
• The sensitive information varies with different applications, see details in the description of
protocol messages.
• Encryption will not affect the escape behavior of contents in XML format, which means that the
contents should be escaped before encrypting.
Encryption Capability
Before encrypting the information, the encryption capability of devices or client software should
be obtained via the URI: GET /ISAPI/Security/capabilities to know the available encryption
algorithm. The encryption algorithm information is returned by the securityVersion node in
response message XML_SecurityCap .
27
Intelligent Security API (General) Developer Guide
Note
Different values of securityVersion node correspond to different encrypted contents and
encryption modes. If node value is 1, it indicates that the encryption mode is AES128 CBC, and
only the password will be encrypted; if the node value is 2, the AES256 CBC mode is adopted, and
both the user name and password will be encrypted.
Encryption Flow
Flow of encrypting source data: Source Data → Encode by Base64 Method → Encrypt in AES128/
AEC256 CBC Mode .
Note
Encoding data by Base64 method is to be compatible with binary data and get the data size
before encrypting by AES128/AEC256 CBC mode (the data size is not real after encrypting as 0 will
be supplied).
Encryption Key
The key used for encryption is generated by iteratively encrypting the (Password
+"AaBbCcDd1234!@#$") according to SHA256 algorithm. E.g., if the device password is
abcd1234, then the key is SHA(SHA(SHA("abcd1234AaBbCcDd1234!@#$"))…).
Note
• The number of iterations is determined by device capability, see the node keyIterateNum in
XML_SecurityCap message.
• If the password is changed when generating the key, the previous password will be used.
• The device gets the key when it is authenticated, and the client software/system calculates the
key after logging in.
Note
• The parameter security is the version No. of encryption scheme. When security does not exist,
it indicates that the data is not encrypted; when security=1, it indicates that the nodes of
sensitive information in the message are encrypted in AES128 CBC mode; when security=2, it
indicates that the nodes of sensitive information in the message are encrypted in AES256 CBC
mode.
• The parameter iv is the initialization vector, and it is required when security=1 or 2. The 16-
byte hexadecimal iv of AES128/AES256 CBC mode is generated by client software or system,
and it will be transformed to 32-byte characters when transmitting it to devices via URI. When
encrypting in AES128/AES256 CBC mode, loop encryption by data block size is not required,
28
Intelligent Security API (General) Developer Guide
and after encrypting for once, the iv will be changed, so if there are two or more nodes to be
encrypted, you should copy the iv during encoding to make sure the iv is same for encrypting
each node.
• When you want to determine the value of security in the URI, you must compare the
encryption scheme version No. of client software and device. If the supported versions are
different, you should adopt the lower version. E.g., if the client software supports security=2,
the device supports security=1, then security=1 will be adopted.
29
Intelligent Security API (General) Developer Guide
Steps
Note
• For devices with Hisilicon chips, up to 16 channels' stream can be encrypted. If the number of
channels is larger than 16, the error "insufficient resources" will be returned when starting live
view or playback.
• For Sky series devices, all channels' stream can be encrypted.
• The PlayCtrl library will not check if the stream is encrypted. If the stream is encrypted, but the
decryption key is not configured or incorrect decryption key is configured, the display image will
be black.
• If the encryption algorithm of the external stream is known, you can decrypt and play the stream
without the PlayCtrl library.
30
Intelligent Security API (General) Developer Guide
Note
If the node <isSupportEZVIZ> is returned in the capability message XML_NetworkCap and
its value is "true", it indicates that encrypting EZVIZ stream is supported. Otherwise,
please end this task.
b. Call /ISAPI/System/Network/EZVIZ by PUT method to log in to Hik-Connect and set
encryption key to enable EZVIZ stream encryption.
- The node <isSupportEncryption> is returned in the capability message XML_DeviceCap and
its value is "true" or the value of node <enable> in the capability message
JSON_EncryptionCap is "true": the device or channel supports stream encryption, and
continue to perform the steps below.
a. Set encryption key: PUT /ISAPI/Streaming/encryption/secretKey?format=json .
b. Enable stream encryption: PUT /ISAPI/Streaming/encryption?format=json .
2. Get real-time or history stream, refer to Live View and Playback for details.
3. Call /ISAPI/System/Network/verificationCodeCheck by POST method to verify the encryption
key.
Note
To check if verifying verification code is supported, you can call /ISAPI/System/Network/
capabilities by GET method to get the device network capability ( XML_NetworkCap ). If
supports, the node <isSupportVerificationCodeCheck> is returned in the capability and its value
is "true".
4. Receive the encrypted stream by calling encrypted stream callback function
(PlayM4_SetEncryptTypeCallBack) of PlayCtrl Library SDK and decrypt the stream by the
encryption key.
Note
Refer to Cross-Platform PlayCtrl Library SDK User Manual for details of the encrypted stream
callback function and playing of the decrypted stream.
31
Intelligent Security API (General) Developer Guide
Steps
Note
Values of the following parameters in query parameters, XML messages, and JSON messages are
sensitive information that needs to be encrypted.
32
Intelligent Security API (General) Developer Guide
Format Parameters
password), <passWord> (password), <key> (key), <tokenKey> (token
key), <oldPwd> (old password), <newPwd> (new password), and
<terminalPwd> (terminal password)
JSON "userName" (user name), "password" (password), "loginPassword"
(login password), "snmpAuthenticationPassword" (SNMP authentication
password), "snmpPrivacyPassword" (SNMP encryption password),
"accountName" (account name), "encryptionKey" (encryption key),
"sharedKey" (shared key), "Username" (user name), "passwd"
(password), "authPasswd" (authentication password), "passWord"
(password), "key" (key), "tokenKey" (token key), "randomCode" (random
code), "AK" (access key), "SK" (encryption key), "Card" (card No.),
"Password" (password), "FingerPrint" (fingerprint),
"TemporaryPassword" (temporary password), "RemoteControl" (remote
control), and "WirelessInfo" (wireless information)
1. Call /ISAPI/Security/capabilities by GET method to get the device security capability to know
the encryption parameters.
The security capability is returned in the message XML_SecurityCap . Nodes of encryption
parameters include <securityVersion> (encryption scheme version), <keyIterateNum> (iteration
times), <isIrreversible> (whether the password is irreversible), and <salt> (salt value).
Note
The salt value will be returned only when the request URL contains the query parameter
username.
2. Calculate and generate the key for encryption and decryption according to the encryption
parameters.
- If <isIrreversible> is "true" and <salt> is also configured, the key is calculated and generated
by iteratively encrypting the value of (user name+salt+password) with SHA256 algorithm.
Note
• The value of <salt> should be different for different users.
• The password encrypted by this method is irreversible.
- If <isIrreversible> is "false" or does not exist, and <salt> is null, the key is calculated and
generated by iteratively encrypting the password with SHA256 algorithm.
Note
The password encrypted by this method is reversible.
3. Generate a byte array containing 16 elements randomly as the initialization vector (iv) and
covert the byte array to character array.
4. Encrypt the data.
1) Convert iv from character array to byte array.
33
Intelligent Security API (General) Developer Guide
Note
Currently, only AES-128 encryption is supported, which indicates that the securityVersion is
1.
4) Encrypt the data by using iv and AES key in AES-CBC mode.
5) Convert the encrypted data to character array.
5. Decrypt the encrypted data.
1) Convert iv from character array to byte array.
2) Convert the encrypted data from character array to byte array.
3) Set the AES key based on the encryption key and the encryption version.
Note
Currently, only AES-128 encryption is supported, which indicates that the securityVersion is
1.
4) Decrypt the encrypted data by using iv and AES key in AES-CBC mode.
5) Decode the decrypted data by using base64.
Example
Sample Code of Encrypting Sensitive Information
using System;
using System.Collections.Generic;
using System.Linq;
using System.Security.Cryptography;
using System.Text;
using System.Threading.Tasks;
namespace SystemManagement.InformationEncryption
{
class InfoEncryption
{
/// <summary>
/// Generate initialization vector (iv)
/// </summary>
/// <param name="strInitVector"></param>
/// <returns></returns>
public static void GetInitVector(out string strInitVector)
{
byte[] szInitVector = new byte[16];
Random ra = new Random();
ra.NextBytes(szInitVector);
byte[] byHexAes = AESEncryption.converByteArrayToCharArray(szInitVector, szInitVector.Length);
strInitVector = Encoding.UTF8.GetString(byHexAes).ToLower();//This must be in lowercase.
}
/// <summary>
/// Encrypt data with SHA256 algorithm. The data encrypted by this algorithm is reversible.
34
Intelligent Security API (General) Developer Guide
/// </summary>
/// <param name="strData"></param>
/// <returns></returns>
public static string sha256(string strData)
{
byte[] szData = Encoding.UTF8.GetBytes(strData);
byte[] szHash = SHA256Managed.Create().ComputeHash(szData);
byte[] szSha256 = AESEncryption.converByteArrayToCharArray(szHash, 32);//The standard algorithm is Hash. The
length 32 is set according to the sample document.
return Encoding.UTF8.GetString(szSha256);
}
/// <summary>
/// Encrypt (user name+salt+password) with SHA256 algorithm. The password encrypted by this algorithm is
irreversible.
/// </summary>
/// <param name="strUser"></param>
/// <param name="szSalt"></param>
/// <param name="strPassword"></param>
/// <returns></returns>
public static string calcSha256(string strUser, byte[] szSalt, string strPassword)
{
string strSrcData = strUser;
byte[] szRealSalt = new byte[64];//The size of the salt value is 64 bits.
if (szSalt.Length > 64)
{
return null;
}
Array.Copy(szSalt, szRealSalt, szSalt.Length);
strSrcData = strSrcData + Encoding.UTF8.GetString(szRealSalt) + strPassword;
return sha256(strSrcData);
}
/// <summary>
/// Generate encryption key
/// </summary>
/// <param name="strUserName"></param>
/// <param name="strSalt"></param>
/// <param name="strPassword"></param>
/// <param name="szOut"></param>
/// <param name="iKeyIterateNum"></param>
/// <param name="bIrreversible"></param>
/// <returns></returns>
public static void getEncryptKey(string strUserName, string strSalt, string strPassword, out byte[] szOut, int
iKeyIterateNum, bool bIrreversible)
{
byte[] szSalt = null;
if (strSalt != null)
{
szSalt = Encoding.UTF8.GetBytes(strSalt);
}
string strSrcData = string.Empty;
35
Intelligent Security API (General) Developer Guide
//For the SHA256 iteration, iKeyIterateNum represents the number of iterations returned by the capability set.
for (int i = 0; i < iKeyIterateNum; i++)
{
strSrcData = sha256(strSrcData);
}
byte[] szSHA256 = Encoding.UTF8.GetBytes(strSrcData);
//The result calculated with SHA256 algorithm is converted to a byte array for the last time.
byte[] szByteArray = AESEncryption.convertCharArrayToByteArray(szSHA256, szSHA256.Length);
/// <summary>
36
Intelligent Security API (General) Developer Guide
//Convert to UTF-8
byte[] szInitVextor = Encoding.UTF8.GetBytes(strInitVextor);
byte[] szInitVextorByteArray = AESEncryption.convertCharArrayToByteArray(szInitVextor, szInitVextor.Length);
byte[] szSrcBytes = Encoding.UTF8.GetBytes(strSrcContent);
string strSrcBase64 = Convert.ToBase64String(szSrcBytes);
//AES encryption
byte[] szAesData = AESEncryption.AesEncrypt(strSrcBase64, szAESKey, szInitVextorByteArray);
byte[] szOut = AESEncryption.converByteArrayToCharArray(szAesData, szAesData.Length);
strOut = Encoding.UTF8.GetString(szOut);
}
/// <summary>
/// Decrypt content (sensitive information)
/// </summary>
/// <param name="strInitVextor"></param>
/// <param name="szAESKey"></param>
/// <param name="strSrcContent"></param>
/// <param name="strOut"></param>
/// <param name="iSecurityVersion"></param>
/// <returns></returns>
public static void getDecryptContent(string strInitVextor, byte[] szAESKey, string strSrcContent, out string strOut, int
iSecurityVersion)
{
if (iSecurityVersion != 1)//1 refers to the AES-128 algorithm. Currently only 1 is supported.
{
strOut = strSrcContent;
return;
}
//Convert to UTF-8
byte[] szInitVextor = Encoding.UTF8.GetBytes(strInitVextor);
byte[] szInitVextorByteArray = AESEncryption.convertCharArrayToByteArray(szInitVextor, szInitVextor.Length);
byte[] szSrcBytes = Encoding.UTF8.GetBytes(strSrcContent);
byte[] szSrcByteArray = AESEncryption.convertCharArrayToByteArray(szSrcBytes, szSrcBytes.Length);
37
Intelligent Security API (General) Developer Guide
Note
The sample code of the class AESEncryption is as shown below.
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Security.Cryptography;
using System.Text;
using System.Threading.Tasks;
namespace SystemManagement.InformationEncryption
{
class AESEncryption
{
/// <summary>
/// Convert hexadecimal to binary
/// </summary>
/// <param name="chstr"></param>
/// <returns></returns>
public static byte hexToBinary(byte chstr)
{
char crtn = '\0';
if (('0' <= chstr) && ('9' >= chstr))
{
crtn = (char)(chstr & 0x0F);
}
else if (('A' <= chstr) && ('F' >= chstr))
{
crtn = (char)(chstr - 'A' + 10);
}
else if (('a' <= chstr) && ('f' >= chstr))
{
crtn = (char)(chstr - 'a' + 10);
}
return (byte)crtn;
}
/// <summary>
/// Convert a character array to a byte array
/// </summary>
/// <param name="pSrc"></param>
/// <param name="nSrcLen"></param>
38
Intelligent Security API (General) Developer Guide
/// <returns></returns>
public static byte[] convertCharArrayToByteArray(byte[] pSrc, int nSrcLen)
{
byte[] byChallengeDst2 = new byte[nSrcLen / 2];
for (int i = 0; i < nSrcLen; i = i + 2)
{
byChallengeDst2[i / 2] = (byte)(hexToBinary(pSrc[i]) << 4);
byChallengeDst2[i / 2] += (byte)hexToBinary(pSrc[i + 1]);
}
return byChallengeDst2;
}
/// <summary>
/// Convert a byte array to a character array
/// </summary>
/// <param name="pSrc"></param>
/// <param name="nSrcLen"></param>
/// <returns></returns>
public static byte[] converByteArrayToCharArray(byte[] pSrc, int nSrcLen)
{
StringBuilder strB = new StringBuilder();
for (int i = 0; i < nSrcLen; i++)
{
strB.Append(pSrc[i].ToString("x2"));//Here x must be in lowercase, which means converting to a lowercase
hexadecimal character.
}
return Encoding.UTF8.GetBytes(strB.ToString());
}
/// <summary>
/// Encrypt in AES-CBC mode
/// </summary>
/// <param name="strSrcContent"></param>
/// <param name="szAESKey"></param>
/// <param name="iv"></param>
/// <returns></returns>
public static byte[] AesEncrypt(string strSrcContent, byte[] szAESKey, byte[] iv)
{
RijndaelManaged rijndaelCipher = new RijndaelManaged();
rijndaelCipher.Mode = CipherMode.CBC;
rijndaelCipher.Padding = PaddingMode.Zeros;//The end is all-zero padding
rijndaelCipher.KeySize = 128;
rijndaelCipher.BlockSize = 128;
byte[] keyBytes = new byte[16];
int len = szAESKey.Length;
if (len > keyBytes.Length)
{
len = keyBytes.Length;
}
System.Array.Copy(szAESKey, keyBytes, len);
39
Intelligent Security API (General) Developer Guide
rijndaelCipher.Key = keyBytes;
rijndaelCipher.IV = iv;
ICryptoTransform transform = rijndaelCipher.CreateEncryptor();
byte[] szSrcContent = Encoding.UTF8.GetBytes(strSrcContent);
byte[] szDstContent = transform.TransformFinalBlock(szSrcContent, 0, szSrcContent.Length);
return szDstContent;
}
/// <summary>
/// Decrypt in AES-CBC mode
/// </summary>
/// <param name="szSrcContent"></param>
/// <param name="szAESKey"></param>
/// <param name="iv"></param>
/// <returns></returns>
public static string AesDecrypt(byte[] szSrcContent, byte[] szAESKey, byte[] iv)
{
RijndaelManaged rijndaelCipher = new RijndaelManaged();
rijndaelCipher.Mode = CipherMode.CBC;
rijndaelCipher.Padding = PaddingMode.Zeros;//The end is all-zero padding
rijndaelCipher.KeySize = 128;
rijndaelCipher.BlockSize = 128;
byte[] keyBytes = new byte[16];
int len = szAESKey.Length;
if (len > keyBytes.Length)
{
len = keyBytes.Length;
}
System.Array.Copy(szAESKey, keyBytes, len);
rijndaelCipher.Key = keyBytes;
rijndaelCipher.IV = iv;
ICryptoTransform transform = rijndaelCipher.CreateDecryptor();
byte[] szDstContent = transform.TransformFinalBlock(szSrcContent, 0, szSrcContent.Length);
//After decrypting the last 16 bytes of the ciphertext, the decrypted data of the last 16 bytes will be checked.
//If the value of the last byte is 16, the 16-byte string data will be discarded.
//If the value of the last byte is smaller than 16, it indicates that the original text was padded during encryption.
The padding will be discarded.
for (int i = 0; i < szDstContent.Length; i++)
{
if (szDstContent[i] <= 16)
{
szDstContent[i] = 0;
}
}
//The \0 at the end needs to be removed.
return Encoding.UTF8.GetString(szDstContent).Replace("\0", "");
}
}
}
40
Intelligent Security API (General) Developer Guide
41
Intelligent Security API (General) Developer Guide
42
Intelligent Security API (General) Developer Guide
Note
For details about the URL format and operation methods of RTSP, refer to URL Format and
Operation Method .
Request Message
Request-Line
RTSP-Header(1)
…
RTSP-Header(n)
CRLF
[content]
Request-Line
Start line of request message, it is in the format of "[Method] SP [Request-URI] SP RTSP/
[Version] CRLF".
[Method]
RTSP operation method, including DESCRIBE, SETUP, PLAY, PAUSE, TEARDOWN, HEARTBEAT,
and PRIVATETRANS.
[Request-URI]
Resource address in URL format, for example, rtsp://10.21.81.22:554/ISAPI/streaming/
channels/101.
[RTSP-Version]
RTSP version No., in this manual, it should be set to "RTSP/1.0".
RTSP-Header
Multiple header lines are allowed after the start line, and each line should be ended with
"CRLF".
[content]
Additional binary data, its length is determined by the value of Content-Length in header lines.
Response Message
Status-Line
RTSP-Header(1)
…
RTSP-Header(n)
CRLF
[content]
43
Intelligent Security API (General) Developer Guide
Status-Line
Start line of response message, it is in the format of "[RTSP-Version] SP [Status-Code] SP
[Reason-Phrase] CRLF".
[RTSP-Version]
RTSP version No., in this manual, it should be set to "RTSP/1.0".
[Status-Code]
Communication status codes, which are classified as five types, i.e., Informational (code
starts with "1"), Success (code starts with "2"), Redirection (code starts with "3"), Client Error
(code starts with "4"), and Server Error (code starts from "5"). Each type contains multiple
sub types, refer to RTSP Status Code for details.
[Reason-Phrase]
Description of status code, refer to RTSP Status Code for details.
RTSP-Header
Multiple header lines are allowed after the start line, and each line should be ended with
"CRLF".
[content]
Additional binary data, its length is determined by the value of Content-Length in header lines.
Authentication
During the integration based on RTSP, the information transmission between third-party platform
and device adopts digest authentication. That is, when the third-party platform request for
resources, the nonce, realm, user name, password, operation method, request URL, and so on,
which obtained from device, will be encrypted by MD5 (Message-Digest) algorithm or SHA256
(Secure Hash Algorithm 256). And then, the information will be sent back to device for
authentication.
Steps
44
Intelligent Security API (General) Developer Guide
Note
If both the digest and basic authentication modes are supported, the digest authentication
mode is in high priority.
3. The third-party platform sends request with digest or basic authentication information
according to the supported authentication mode by different operation methods to device.
Note
The information sent by third-party platform to device for digest authentication is in the
following format:
Authorization:Digest username=%s,realm=%s,nonce=%s,uri=%s,response=%s \r\n;
• The values of realm and nonce fields are returned in the first DESCRIBE operation.
• The response field should be calculated by third-party platform and device for each
operation, and MD5 algorithm is suggested. The value of this field equals to
"md5(md5(username:realm:password):nonce:md5(public_method:url))", in which, the
public_method is the current operation method, e.g., DESCRIBE, SETUP.
Encryption
RTSP consists of two modules, i.e., signaling and stream. The signaling is transmitted via the link
encrypted by TLS (Transport Layer Security) in TCP (Transmission Control Protocol) mode. The
stream can be transmitted in TCP, UDP (User Datagram Protocol), or multicast mode. If the stream
is transmitted in TCP mode, the signaling and the stream are transmitted via the same link which is
encrypted by TLS. If the stream is transmitted in UDP or multicast mode, the signaling and the
stream are transmitted via different links, and the stream is encrypted by SRTP.
45
Intelligent Security API (General) Developer Guide
Encrypt Signaling
The signaling is transmitted via the link encrypted by TLS in TCP mode. That is, the third-party
platform establishes TLS connection with the device. The default signaling port of the device is 322,
and it can be obtained and configured by calling the URI /ISAPI/Security/adminAccesses with GET
and PUT method.
Note
For details about the URI of getting or setting the signaling port, refer to ISAPI (General) Developer
Guide.
Encrypt Stream
The default encryption algorithm is the Advanced Encryption Standard (AES). There are two
encryption modes for AES, and two modes are defined for running AES to convert the original AES
block ciphertext into the stream ciphertext:
• Counter Mode (Segmented Integer Counter Mode): AES in Counter Mode 128-bit
• F8 Mode: AES in F8 Mode 128-bit
46
Intelligent Security API (General) Developer Guide
Note
• In this manual, the mode for running AES is Counter Mode.
• The RTP package authentication algorithm is HMAC-SHA-1.
The third-party platform and the device negotiate the stream encryption key during the DESCRIBE
operation. For different transmission modes, the stream will be encrypted by different mechanism
as described below.
In TCP Mode
In TCP mode, the stream and the signaling are transmitted via the same link. This link is
encrypted by TLS, so the stream encryption key is determined by TLS. The request URL to be
called is: DESCRIBE rtsps://[host][:port]/SRTP/ISAPI/streaming/channels/<ID>.
Note
Encrypting stream in TCP mode is only available for RTSP.
In UDP Mode
In UDP mode, the third-party platform negotiates with the device by the request URL: DESCRIBE
rtsps://[host][:port]/SRTP/ISAPI/streaming/channels/<ID>?SRTP=. After receiving the DESCRIBE
request, the device will initialize the video encryption parameters, generate a random key, create
a MIKEY message, configure the media level attribute "a=key-mgmt" in SDP file, and respond to
the platform by the SDP file. The platform will parse the MIKEY message and get the video stream
decryption parameters after receiving the response from the device.
In Multicast Mode
In multicast mode, the third-party platform negotiates with the device by the request URL:
DESCRIBE rtsps://[host][:port]/SRTP/ISAPI/streaming/channels/<ID>?MULTI=?SRTP=.
Note
• The device will check whether the request from the third-party is unicast or multicast by the
request URL. If it is a multicast request, the device will reuse the master key and SSRC for the
same multicast group when generating a MIKEY message, and send the response message by
SDP file (it contains the MIKEY message) to the platform after receiving the DESCRIBE request.
For the unicast request, the master key and SSRC will not be reused.
• The query parameters MULTI and SRTP are not strongly related. If there is no encryption,
MULTI can also be set to 1.
Encrypt Metadata
When uploading metadata is enabled, you can get the metadata information from the stream
during live view via RTSP. Then the intelligent structured information in the metadata can be
selectively overlaid on the video for display. In TCP mode, the metadata is transmitted via the same
link as the signaling and stream, and the metadata will be encrypted by TLS. In UDP or multicast
mode, the metadata will not be encrypted, which means that the SDP response file of the
47
Intelligent Security API (General) Developer Guide
DESCRIBE request does not contain the MIKEY message for metadata and the SETUP request does
not contain the parameter "SRTP=1".
Negotiate Transmission Method
For transmitting encrypted stream, the third-party platform and the device negotiate the
transmission method during the SETUP operation. The requests and responses are as shown
below.
Third-Party Platform to Device
Transport: RTP/AVP/TCP;unicast;interleaved=%u1-%u2\r\n //RTP/RTSP
Transport: RTP/SAVP;unicast;client_port=%u-(%u+1)\r\n //SRTP/UDP
Transport: RTP/SAVP;multicast\r\n //SRTP/multicast
Device to Third-Party Platform
Transport: RTP/AVP/TCP;unicast;interleaved=%u1-%u2;ssrc=%u\r\n //RTP/RTSP
Transport: RTP/SAVP;unicast;client_port=%u-(%u +1);server_port=%u-(%u +1) ssrc=%u\r\n //SRTP/UDP
Transport: RTP/SAVP;multicast;destination=%s;port=%u-(%u +1);ssrc=%u\r\n //SRTP/multicast
Note
The interleaved refers to the channel ID of the RTP or RTCP package.
Example
Interaction Message of DESCRIBE Method in UDP Mode
DESCRIBE rtsps://10.8.97.31:322/test?SRTP=1 RTSP/1.0
CSeq: 3
User-Agent: GStreamer/1.14.0
Accept: application/sdp
Authorization: Basic dXNlcjpwYXNzd29yZA==
Date: Tue, 25 Dec 2018 08:59:48 GMT
RTSP/1.0 200 OK
CSeq: 3
Content-Type: application/sdp
Content-Base: rtsps://10.8.97.31:322/test?SRTP=1
Server: GStreamer RTSP server
Date: Tue, 25 Dec 2018 08:59:49 GMT
Content-Length: 909
v=0
o=- 17656709277245289819 1 IN IP4 127.0.0.1
s=Session streamed with GStreamer
t=0 0
a=range:npt=0-
m=video 0 RTP/SAVP 96
a=rtpmap:96 H264/90000
a=fmtp:96 packetization-mode=1;profile-level-id=42c015;sprop-parameter-
sets=Z0LAFdkBYJbAWoMAgtKAAAADAIAAAA9Hixck,aMuMsg==
a=control:stream=0
a=key-mgmt:mikey AQAFAMXXL3YBAABNaET
48
Intelligent Security API (General) Developer Guide
+AAAAAAsA38xwBPpfUnUKEKU9oYIscAkHWtm7D6PsJ9kBAAAAFQABAQEBEAIBAQMBCgcBAQgBAQoBAQAAACIAIAAeh
biETsBmk3jdc0p0PS5epwF6VglTO/+Yx0FcDvMGAA==
Live View
• Transmit basic information (e.g., URL, etc.) via SDP file for live view
Request URL with Method: DESCRIBE rtsp://[host][:port]/ISAPI/Streaming/channels/<ID>
• Transmit session information (e.g., transmission type, port No., etc.) for live view
Request URL with Method: SETUP rtsp://[host][:port]/ISAPI/Streaming/channels/<ID>/
trackID=
• Start stream transmission for live view
Request URL with Method: PLAY rtsp://[host][:port]/ISAPI/Streaming/channels/<ID>
• Stop stream transmission for live view
Request URL with Method: TEARDOW rtsp://[host][:port]/ISAPI/Streaming/channels/<ID>
Playback
• Get basic parameters for playback
Request URL with Method: DESCRIBE rtsp://<host>[:port]/ISAPI/Streaming/tracks/<ID>?
starttime=&endtime=
• Get session information for playback
Request URL with Method: SETUP rtsp://<host>[:port]/ISAPI/Streaming/tracks/<ID>/trackID=?
starttime=&endtime=
• Start playback
Request URL with Method: PLAY rtsp://<host>[:port]/ISAPI/Streaming/tracks/<ID>?
starttime=&endtime=
• Pause playback
Request URL with Method: PAUSE rtsp://<host>[:port]/ISAPI/Streaming/tracks/<ID>?
starttime=&endtime=
• Stop playback
Request URL with Method: TEARDOW rtsp://<host>[:port]/ISAPI/Streaming/tracks/<ID>?
starttime=&endtime=
49
Intelligent Security API (General) Developer Guide
Remarks
• The <ID> in the request URL refers to the value of (channel No. × 100 + value of stream type),
while, the value of stream type can be "1" (main stream), "2" (sub stream), and "3" (third
stream).
• trackID: the value of stream data type, for video stream data, the value is "1", and for audio
stream data, the value is "2".
• startime/endtime: Start time or end time of video to be played back, and the time format is
based on ISO 8601 standard, i.e., YYYYMMDD"T"HHmmSS.fraction"Z" (YYYY-year, MM-month,
DD-day, T-separator, HH-hour, mm-miniute, SS-second, Z-Zulu (GMT) time (optional)). For
example, "20130526T134258Z" means May 26th, 2013 at 1:42:58 PM GMT.
• When starting live view, the stream data is transmitted by RTP packet, and the platform can
check the stream data type (video or audio) according to the value of payload type (obtained
during the interaction of DESCRIBE method) in the RTP packet header. Refer to RTP Packet
Format for details.
Example
Interaction Message of DESCRIBE Method
DESCRIBE rtsp://10.17.133.46:554/ISAPI/streaming/channels/101 RTSP/1.0
CSeq: 0
Accept:application/sdp
User-Agent:NKPlayer-1.00.00.081112
RTSP/1.0 200 OK
CSeq: 1
Content-Type: application/sdp
Content-Length: 604
v=0
o=- 1489488155469547 1489488155469547 IN IP4 10.17.133.46
s=Media Presentation
e=NONE
b=AS:5100
t=0 0
50
Intelligent Security API (General) Developer Guide
a=control:*
m=video 0 RTP/AVP 96
c=IN IP4 0.0.0.0
b=AS:5000
a=recvonly
a=x-dimensions:1280,720
a=control:trackID=1 //Return video stream for SETUP
a=rtpmap:96 H264/90000
a=fmtp:96 profile-level-id=420029;
packetization-mode=1;
sprop-parameter-sets=Z2QAH6wXKgFAFuhAAAHCAABX5CE=,
aP44sA==
m=audio 0 RTP/AVP 8
c=IN IP4 0.0.0.0
b=AS:50
a=recvonly
a=control:trackID=2 //Return audio stream for SETUP
a=rtpmap:8 PCMA/8000
a=Media_header:MEDIAINFO=494D4B48010200000400000111710110401F000000FA00000000000000000000000000
0000000000;
a=appversion:1.0
Example
Interaction Message Example of SETUP Method
SETUP rtsp://10.17.133.46:554/ISAPI/streaming/channels/101/trackID=1 RTSP/1.0 //Video stream data
CSeq:2
Authorization: Digest username="admin", realm="4419b66d2485",
nonce="47f172cffa4ce6e6942bbdcfa5931d0f",
uri="rtsp://10.17.133.46:554/ISAPI/streaming/channels/101",
response="db78bce6e6883ed2a7fb3adbd1631b1d"
Transport:RTP/AVP/UDP;unicast;client_port=20044-20045;ssrc=0
User-Agent:NKPlayer-1.00.00.081112
RTSP/1.0 200 OK
CSeq: 2
Session: 846509115;timeout=60
Transport: RTP/AVP/UDP;unicast;client_port=20044-20045;ssrc=2933ec5a;server_port=8372-8373;mode="play"
Date: Tue, Mar 14 2017 10:42:35 GMT
RTSP/1.0 200 OK
CSeq: 3
51
Intelligent Security API (General) Developer Guide
Session: 846509115;timeout=60
Transport: RTP/AVP/UDP;unicast;client_port=20046-20047;ssrc=439bd478;server_port=8374-8375;mode="play"
Date: Tue, Mar 14 2017 10:42:35 GMT
Example
Interaction Message Example of PLAY Method
PLAY rtsp://10.17.133.46:554/ISAPI/streaming/channels/101 RTSP/1.0
CSeq:4
Authorization: Digest username="admin",
realm="4419b66d2485",
nonce="47f172cffa4ce6e6942bbdcfa5931d0f",
uri="rtsp://10.17.133.46:554/ISAPI/streaming/channels/101",
response="66fcea1521a99fba336fd0c4e444a732"
Session:846509115;timeout=60
Rate-Control:yes
Scale:1.000
User-Agent:NKPlayer-1.00.00.081112
RTSP/1.0 200 OK
CSeq: 4
Session: 846509115
Scale: 1.0
RTP-Info: url=trackID=1;seq=55143,url=trackID=2;seq=38217
Date: Tue, Mar 14 2017 10:42:35 GMT
Example
Interaction Message Example of TEARDOWN Method
TEARDOWN rtsp://10.17.133.46:554/ISAPI/streaming/channels/101 RTSP/1.0
CSeq: 5
Authorization: Digest username="admin",
realm="4419b66d2485",
nonce="47f172cffa4ce6e6942bbdcfa5931d0f",
uri="rtsp://10.17.133.46:554/ISAPI/streaming/channels/101",
response="31d5e172b87db528aa5b1dc07af3f530"
Session:846509115;timeout=60
User-Agent: NKPlayer-1.00.00.081112
RTSP/1.0 200 OK
CSeq: 5
Session: 846509115
Date: Tue, Mar 14 2017 10:42:36 GMT
Example
Interaction Message Example of PAUSE Method (Available for Playback Only)
PAUSE rtsp://10.16.98.88:554/ISAPI/streaming/tracks/101?
starttime=20190624T000000Z&endtime=20190625T235959Z RTSP/1.0
CSeq: 4
Authorization: Digest username="admin",
realm="IP Camera(C0581)",
nonce="86acaaf68f568dff4441eed8b8d26de4",
52
Intelligent Security API (General) Developer Guide
uri="rtsp://10.21.81.22:554/ISAPI/streaming/channels/101",
response="6fe52386f619bfce0dbf3d62a58123ba"
Session:180661110;timeout=60
Rate-Control:yes
Scale:1.000
User-Agent:NKPlayer-1.00.00.081112
RTSP/1.0 200 OK
CSeq: 4
Session: 180661110
Range: clock=20190624T000004Z-20190625T165416Z
Date: Mon, 24 Jun 2019 12:08:39 GMT
53
Intelligent Security API (General) Developer Guide
Network Certificate
Authentication Certificate
54
Intelligent Security API (General) Developer Guide
Client/Server Certificate
55
Intelligent Security API (General) Developer Guide
Chapter 4 Login
56
Intelligent Security API (General) Developer Guide
57
Intelligent Security API (General) Developer Guide
Note
The size of public key is 1024 bits (128 bytes). When transforming to the hexadecimal string,
each byte corresponds to two characters (e.g., 127 → FF ), so the public key is transformed to a
256-byte string finally.
2. Client software encodes the public key (a 256-byte string) by Base64 method and sends it to
device.
3. Device decodes the encoded public key by Base64 method and generates random strings.
4. Device encrypts the random strings based on RSA algorithm and encodes the encrypted strings
by Base64 method.
5. Call /ISAPI/Security/challenge by POST method to get the encrypted and encoded random
strings .
6. Client software decodes the obtained random strings by Base64 method and decrypts the
random strings by using private key.
7. Client software encrypts the activation password with the random strings in AES128 CBC mode
and encodes the password by Base64 method.
8. Call /ISAPI/System/activate by PUT method to send the activation password strings to device.
Note
The sent activation password strings consist of first 16 characters of random strings and actual
password.
Example
If the first 16 characters of random strings is "aaaabbbbccccdddd", and the actual password is
"Abc12345", the encrypted activation password strings is "aaaabbbbccccddddAbc12345".
9. Device decodes the activation password by Base64 method and decrypts the password with the
random string in AES128 CBC mode for verification.
10. Device starts activating and sends the activation result to client software.
58
Intelligent Security API (General) Developer Guide
Note
You can reset password by other methods, such as answering security question, importing GUID
files, and so on. But all methods should be supported by device, so you should call /ISAPI/
Security/extern/capabilities by GET method to get the other security capability
( XML_externSecurityCap ) before choosing method to reset password.
1. Call /ISAPI/Security/capabilities by GET method to check if the device supports setting recovery
email.
59
Intelligent Security API (General) Developer Guide
60
Intelligent Security API (General) Developer Guide
Steps
Note
Only when the node <connectStatus> is returned and values "true", you can go on for next step.
Otherwise, you should end this task.
The upgrade server connection status is returned in XML_OnlineUpgradeServer .
3. Optional: Call /ISAPI/System/onlineUpgrade/deviceParameter?format=json by PUT method to
set the device online upgrade parameters.
61
Intelligent Security API (General) Developer Guide
Note
Before setting the device online upgrade parameters, you can get these parameters by calling /
ISAPI/System/onlineUpgrade/deviceParameter?format=json via GET method.
4. Call /ISAPI/System/onlineUpgrade/version by GET method to get the new upgrade package
information.
5. Call /ISAPI/System/onlineUpgrade/downloadPackage?format=json by PUT method to
download the upgrade package.
6. Optional: During downloading the upgrade package, you can perform the following operations.
Pause Download PUT /ISAPI/System/onlineUpgrade/downloadPackage/pause?
format=json
Resume Download PUT /ISAPI/System/onlineUpgrade/downloadPackage/resume?
format=json
Cancel Download DELETE /ISAPI/System/onlineUpgrade/downloadPackage?
format=json
7. Call /ISAPI/System/onlineUpgrade/downloadPackage/status?format=json by GET method to
get the upgrade package download progress.
8. Call /ISAPI/System/onlineUpgrade/upgradeWithoutDownload?format=json by PUT method to
start upgrade when the upgrade package is downloaded.
9. Call /ISAPI/System/onlineUpgrade/status by GET method to get the upgrade status.
62
Intelligent Security API (General) Developer Guide
6.1 Basic
Upgrade
Configuration File
63
Intelligent Security API (General) Developer Guide
Note
To check if exporting files from device is supported by the
device, you can call GET /ISAPI/System/capabilities to get the
device capability ( XML_DeviceCap ). If supports, the node
<isSptFileExport> will be returned.
Algorithm
Note
To check whether the device support attribute code, you can
call GET /ISAPI/System/capabilities to get the device capability
( XML_DeviceCap ). If supports, the node <isSupportServer>
will be returned.
64
Intelligent Security API (General) Developer Guide
Steps
Figure 6-1 Programming Flow of Securely Exporting and Importing Configuration Files
1. Call /ISAPI/Security/capabilities by GET method to get the device security capability for
checking whether the device supports securely exporting configuration files.
The device security capability is returned in the message XML_SecurityCap .
If this function is supported by the device, the node <isSupportConfigFileExport> will be
returned and its value is "true", then you can perform the following steps.
Otherwise, please end this task.
2. Call /ISAPI/System/configurationData?secretkey= by GET method to export the configuration
file from the device securely.
Note
The query parameter secretKey is the sensitive information that should be encrypted for
transmission, and the parameter range to be encrypted is determined by the attributes "min"
and "max" of the node <cfgFileSecretKeyLenLimit> in message XML_SecurityCap . For details
about encrypting sensitive information, refer to Encrypt Sensitive Information .
3. Call /ISAPI/Security/capabilities by GET method to get the device security capability for
checking whether the device supports securely importing configuration files.
The device security capability is returned in the message XML_SecurityCap .
65
Intelligent Security API (General) Developer Guide
Note
• The query parameter secretKey is the sensitive information that should be encrypted for
transmission, and the parameter range to be encrypted is determined by the attributes "min"
and "max" of the field <cfgFileSecretKeyLenLimit> in the message XML_SecurityCap . For
details about encrypting sensitive information, refer to Encrypt Sensitive Information .
• The value of secretKey for importing the configuration file should be the same as that for
exporting the file. Otherwise, importing will fail.
6.2 Log
Log Settings
6.3 Status
66
Intelligent Security API (General) Developer Guide
Device Status
Channel Status
Note
To check if getting channel status by condition is supported by device, you can call GET /ISAPI/
System/capabilities to get the device capability ( XML_DeviceCap ). If supports, the node
<isSupportFlexible> will be returned.
Others
67
Intelligent Security API (General) Developer Guide
Note
To check if getting device status and uploading status changes are supported by device, you can
call /ISAPI/System/capabilities by GET method to get the device capability ( XML_DeviceCap ). If
supports, the nodes <isSupportSimpleDevStatus>, <isSupportSimpleDevStatus>, and
<isSupportChangedUpload> will be returned and their values are "true".
6.4 Calibration
68
Intelligent Security API (General) Developer Guide
6.6 Advanced
Automatic Maintenance
Note
To check if the device supports automatic maintenance, you can call the GET /ISAPI/System/
capabilities to get the device capability ( XML_DeviceCap ). If supports, the node
<isSupportAutoMaintenance> will be returned.
69
Intelligent Security API (General) Developer Guide
Device Diagnosis
Note
To check if configuring device diagnosis is supported by the device, you can call GET /ISAPI/
System/capabilities to get the device capability ( XML_DeviceCap ). If supports, the node
<isSptDiagnosis> will be returned.
Diagnostic Server
Note
To check if the device supports diagnostic server configuration, you can call GET /ISAPI/System/
diagnosedData/parameter/capabilities to get the capability
( XML_Cap_DiagnosedDataParameter ). If device supports the function, the node
<isSupportServer> is returned and its value is true.
70
Intelligent Security API (General) Developer Guide
Device Anti-Theft
Note
To check if the anti-theft configuration is supported by the device, you can call GET /ISAPI/System/
capabilities to get the device capability ( XML_DeviceCap ). If this function is supported, the node
<isSupportGuardAgainstTheft> will be returned and its value is "true".
Device Discovery
71
Intelligent Security API (General) Developer Guide
Note
The function of managing users cannot be integrated via EZVIZ Open Platform.
72
Intelligent Security API (General) Developer Guide
73
Intelligent Security API (General) Developer Guide
74
Intelligent Security API (General) Developer Guide
Steps
75
Intelligent Security API (General) Developer Guide
Note
• Only the admin can configure double verification.
• The admin is not required for double verification.
• The double verification user name and password is only for double verification, and cannot be
used for login.
1. Optional: Call /ISAPI/Security/capabilities by GET method to get the device security capability
to check whether the double verification function is supported.
The security capability XML_SecurityCap is returned.
2. Call /ISAPI/Security/doubleVerification?format=json by PUT method to enable double
verification
Note
Before enabling double verification, you can check whether double verification is enabled by
calling /ISAPI/Security/doubleVerification?format=json via GET method.
3. Optional: Call /ISAPI/Security/doubleVerification/users/capabilities?format=json by GET
method to get the capability of double verification user configuration.
4. Call /ISAPI/Security/doubleVerification/users?format=json by POST method to add a double
verification user.
Note
Before adding a double verification user, you can get all verification users by calling /ISAPI/
Security/doubleVerification/users?format=json via GET method.
The ID of added double verification user is returned in JSON_id .
5. Call /ISAPI/Security/doubleVerification/users/<ID>?format=json by PUT method to edit a
specified double verification user.
Note
Before editing the double verification user, you can get the user information by calling /ISAPI/
Security/doubleVerification/users/<ID>?format=json via GET method.
6. Optional: Call /ISAPI/Security/doubleVerification/users/<ID>?format=json by DELETE method
to delete a specified double verification user.
7. Optional: Call /ISAPI/Security/doubleVerification/UsersPermission/capabilities?format=json
by GET method to get the capability of permission configuration for double verification users.
8. Call /ISAPI/Security/doubleVerification/UsersPermission/<ID>?format=json by PUT method to
set the permission of a specified double verification user.
76
Intelligent Security API (General) Developer Guide
Note
Before setting the permission of a double verification user, you can get the permission
parameters by calling /ISAPI/Security/doubleVerification/UsersPermission/<ID>?format=json
via GET method.
What to do next
Configure the user permission, determine whether double verification are required for them
during playback and download.
77
Intelligent Security API (General) Developer Guide
Figure 8-1 API Calling Flow of Searching for Recording Start and End Time by Channel
1. Call /ISAPI/ContentMgmt/capabilities by GET method to get the device's storage capability to
check whether it supports searching for recording start and end time.
The device's storage capability is returned in the message XML_RacmCap .
78
Intelligent Security API (General) Developer Guide
If the node <isSupportTimeSearch> is returned in the message and its value is "true", it
indicates that searching for recording start and end time is supported and you can continue to
perform the following steps.
Otherwise, searching for recording start and end time is not supported, please end this task.
2. Optional: Call /ISAPI/ContentMgmt/time/search/capabilities?format=json by GET method to
get the capability of searching for the recording start and end time for reference.
The capability is returned in the message JSON_Cap_TimeSearchCond .
3. Call /ISAPI/ContentMgmt/time/search?format=json by POST method to set the parameters to
search for the recording start and end time.
Live View
Table 8-1 Normal Operation
Function Request URI
Start or stop live view PLAY or TEARDOW
Table 8-2 Auto-Switch in Live View
Function Request URI
Get configuration capability of GET /ISAPI/System/Video/outputs/PreviewSwitch/capabilities
live view auto-switch
Get configuration capability of GET /ISAPI/System/Video/outputs/PreviewSwitch/capabilities?
live view auto-switch by video videoOutType=
output
Get or set parameters of live GET or PUT /ISAPI/System/Video/outputs/PreviewSwitch?
view auto-switch groupID=&videoOutType=
GET /ISAPI/System/Video/outputs/PreviewSwitch?
groupID=&videoOutType=&previewFrameNo=
Table 8-3 Control in Live View
Function Request URI
Perform manual focus PUT /ISAPI/System/Video/inputs/channels/<ID>/focus
Manually adjust iris PUT /ISAPI/System/Video/inputs/channels/<ID>/iris
79
Intelligent Security API (General) Developer Guide
Playback
Example
Sample Code for Starting and Stopping Live View
Start Live View:
DESCRIBE rtsp://10.17.133.46:554/ISAPI/streaming/channels/101 RTSP/1.0
CSeq: 0
Accept:application/sdp
User-Agent:NKPlayer-1.00.00.081112
RTSP/1.0 200 OK
CSeq: 1
Content-Type: application/sdp
Content-Length: 604
v=0
o=- 1489488155469547 1489488155469547 IN IP4 10.17.133.46
s=Media Presentation
e=NONE
b=AS:5100
t=0 0
a=control:*
m=video 0 RTP/AVP 96
c=IN IP4 0.0.0.0
b=AS:5000
a=recvonly
a=x-dimensions:1280,720
a=control:trackID=1
80
Intelligent Security API (General) Developer Guide
a=rtpmap:96 H264/90000
a=fmtp:96 profile-level-id=420029;
packetization-mode=1;
sprop-parameter-sets=Z2QAH6wXKgFAFuhAAAHCAABX5CE=,
aP44sA==
m=audio 0 RTP/AVP 8
c=IN IP4 0.0.0.0
b=AS:50
a=recvonly
a=control:trackID=2
a=rtpmap:8 PCMA/8000
a=Media_header:MEDIAINFO=494D4B48010200000400000111710110401F000000FA00000000000000000000000000
0000000000;
a=appversion:1.0
SETUP rtsp://10.17.133.46:554/ISAPI/streaming/channels/101/trackID=1 RTSP/1.0
CSeq:2
Authorization: Digest username="admin", realm="4419b66d2485",
nonce="47f172cffa4ce6e6942bbdcfa5931d0f",
uri="rtsp://10.17.133.46:554/ISAPI/streaming/channels/101",
response="db78bce6e6883ed2a7fb3adbd1631b1d"
Transport:RTP/AVP/UDP;unicast;client_port=20044-20045;ssrc=0
User-Agent:NKPlayer-1.00.00.081112
RTSP/1.0 200 OK
CSeq: 2
Session: 846509115;timeout=60
Transport: RTP/AVP/UDP;unicast;client_port=20044-20045;ssrc=2933ec5a;server_port=8372-8373;mode="play"
Date: Tue, Mar 14 2017 10:42:35 GMT
RTSP/1.0 200 OK
CSeq: 3
Session: 846509115;timeout=60
Transport: RTP/AVP/UDP;unicast;client_port=20046-20047;ssrc=439bd478;server_port=8374-8375;mode="play"
Date: Tue, Mar 14 2017 10:42:35 GMT
81
Intelligent Security API (General) Developer Guide
Session:846509115;timeout=60
Rate-Control:yes
Scale:1.000
User-Agent:NKPlayer-1.00.00.081112
RTSP/1.0 200 OK
CSeq: 4
Session: 846509115
Scale: 1.0
RTP-Info: url=trackID=1;seq=55143,url=trackID=2;seq=38217
Date: Tue, Mar 14 2017 10:42:35 GMT
RTSP/1.0 200 OK
CSeq: 5
Session: 846509115
Date: Tue, Mar 14 2017 10:42:36 GMT
Example
Sample Code for Starting and Stopping Playback
Enable:
DESCRIBE rtsp://10.17.133.46:554/ISAPI/streaming/tracks/101?
starttime=20170313T230652Z&endtime=20170314T025706Z RTSP/1.0
CSeq:0
Accept:application/sdp
User-Agent:NKPlayer-1.00.00.081112
DESCRIBE rtsp://10.17.133.46:554/ISAPI/streaming/tracks/101?
starttime=20170313T230652Z&endtime=20170314T025706Z RTSP/1.0
CSeq:1
Accept:application/sdp
Authorization: Digest username="admin",
realm="4419b66d2485",
nonce="a0ecd9b1586ff9461f02f910035d0486",
82
Intelligent Security API (General) Developer Guide
uri="rtsp://10.17.133.46:554/ISAPI/streaming/tracks/101?
starttime=20170313T230652Z&endtime=20170314T025706Z",
response="1ebae505abbafd431fb433cec6e85189"
User-Agent:NKPlayer-1.00.00.081112
RTSP/1.0 200 OK
CSeq: 1
Content-Type: application/sdp
Content-Length: 604
v=0
o=- 1489489043122939 1489489043122939 IN IP4 10.17.133.46
s=Media Presentation
e=NONE
b=AS:5100
t=0 0
a=control:*
m=video 0 RTP/AVP 96
c=IN IP4 0.0.0.0
b=AS:5000
a=recvonly
a=x-dimensions:1280,720
a=control:trackID=1
a=rtpmap:96 H264/90000
a=fmtp:96 profile-level-id=420029; packetization-mode=1; sprop-parameter-
sets=Z2QAH6wXKgFAFuhAAAHCAABX5CE=,aP44sA==
m=audio 0 RTP/AVP 8
c=IN IP4 0.0.0.0
b=AS:50
a=recvonly
a=control:trackID=2
a=rtpmap:8 PCMA/8000
a=Media_header:MEDIAINFO=494D4B48010200000400000111710110401F000000FA00000000000000000000000000
0000000000;
a=appversion:1.0
SETUP rtsp://10.17.133.46:554/ISAPI/streaming/tracks/101?
starttime=20170313T230652Z&endtime=20170314T025706Z/trackID=1 RTSP/1.0
CSeq:2
Authorization: Digest username="admin",
realm="4419b66d2485",
nonce="a0ecd9b1586ff9461f02f910035d0486",
uri="rtsp://10.17.133.46:554/ISAPI/streaming/tracks/101?
starttime=20170313T230652Z&endtime=20170314T025706Z",
response="6a7a733b41908bd9549a4ac07c498509"
Transport:RTP/AVP/UDP;unicast;client_port=20056-20057;ssrc=0
User-Agent:NKPlayer-1.00.00.081112
RTSP/1.0 200 OK
CSeq: 2
Session: 2049381566;timeout=60
Transport: RTP/AVP/UDP;unicast;client_port=20056-20057;ssrc=7d3c07bc;server_port=8220-8221;mode="play"
83
Intelligent Security API (General) Developer Guide
SETUP rtsp://10.17.133.46:554/ISAPI/streaming/tracks/101?
starttime=20170313T230652Z&endtime=20170314T025706Z/trackID=2 RTSP/1.0
CSeq:3
Authorization: Digest username="admin",
realm="4419b66d2485",
nonce="a0ecd9b1586ff9461f02f910035d0486",
uri="rtsp://10.17.133.46:554/ISAPI/streaming/tracks/101?
starttime=20170313T230652Z&endtime=20170314T025706Z",
response="6a7a733b41908bd9549a4ac07c498509"
Session:2049381566;timeout=60
Transport:RTP/AVP/UDP;unicast;client_port=20058-20059;ssrc=0
User-Agent:NKPlayer-1.00.00.081112
RTSP/1.0 200 OK
CSeq: 3
Session: 2049381566;timeout=60
Transport: RTP/AVP/UDP;unicast;client_port=20058-20059;ssrc=06557745;server_port=8226-8227;mode="play"
Date: Tue, Mar 14 2017 10:57:23 GMT
PLAY rtsp://10.17.133.46:554/ISAPI/streaming/tracks/101?
starttime=20170313T230652Z&endtime=20170314T025706Z RTSP/1.0
CSeq:4
Authorization: Digest username="admin",
realm="4419b66d2485",
nonce="a0ecd9b1586ff9461f02f910035d0486",
uri="rtsp://10.17.133.46:554/ISAPI/streaming/tracks/101?
starttime=20170313T230652Z&endtime=20170314T025706Z",
response="fb986d385a7d839052ec4f0b2b70c631"
Session:2049381566;timeout=60
Range:clock=20170313T230652Z-20170314T025706Z
Rate-Control:yes
Scale:1.000
User-Agent:NKPlayer-1.00.00.081112
RTSP/1.0 200 OK
CSeq: 4
Session: 2049381566
Scale: 1.000
RTP-Info: url=trackID=1;seq=1,url=trackID=2;seq=1
Date: Tue, Mar 14 2017 10:57:23 GMT
Pause:
PAUSE rtsp://10.17.133.46:554/ISAPI/streaming/tracks/101?
starttime=20170313T230652Z&endtime=20170314T025706Z RTSP/1.0
CSeq: 5
Authorization: Digest username="admin",
realm="4419b66d2485",
nonce="a0ecd9b1586ff9461f02f910035d0486",
uri="rtsp://10.17.133.46:554/ISAPI/streaming/tracks/101?
starttime=20170313T230652Z&endtime=20170314T025706Z",
84
Intelligent Security API (General) Developer Guide
response="d229c4d2419df553212bc7d74bbfd432"
Session:2049381566;timeout=60
User-Agent: NKPlayer-1.00.00.081112
RTSP/1.0 200 OK
CSeq: 5
Session: 2049381566
Date: Tue, Mar 14 2017 10:57:24 GMT
Play in 2× Speed:
PLAY rtsp://10.17.133.46:554/ISAPI/streaming/tracks/101?
starttime=20170313T230652Z&endtime=20170314T025706Z RTSP/1.0
CSeq:6
Authorization: Digest username="admin",
realm="4419b66d2485",
nonce="a0ecd9b1586ff9461f02f910035d0486",
uri="rtsp://10.17.133.46:554/ISAPI/streaming/tracks/101?
starttime=20170313T230652Z&endtime=20170314T025706Z",
response="fb986d385a7d839052ec4f0b2b70c631"
Session:2049381566;timeout=60
Scale:2.000
User-Agent:NKPlayer-1.00.00.081112
RTSP/1.0 200 OK
CSeq: 6
Session: 2049381566
Scale: 2.000
RTP-Info: url=trackID=1;seq=1,url=trackID=2;seq=1
Date: Tue, Mar 14 2017 10:57:24 GMT
Pause:
PAUSE rtsp://10.17.133.46:554/ISAPI/streaming/tracks/101?
starttime=20170313T230652Z&endtime=20170314T025706Z RTSP/1.0
CSeq: 7
Authorization: Digest username="admin",
realm="4419b66d2485",
nonce="a0ecd9b1586ff9461f02f910035d0486",
uri="rtsp://10.17.133.46:554/ISAPI/streaming/tracks/101?
starttime=20170313T230652Z&endtime=20170314T025706Z",
response="d229c4d2419df553212bc7d74bbfd432"
Session:2049381566;timeout=60
User-Agent: NKPlayer-1.00.00.081112
RTSP/1.0 200 OK
CSeq: 7
Session: 2049381566
Date: Tue, Mar 14 2017 10:57:25 GMT
Play in 4× Speed:
PLAY rtsp://10.17.133.46:554/ISAPI/streaming/tracks/101?
starttime=20170313T230652Z&endtime=20170314T025706Z RTSP/1.0
CSeq:8
85
Intelligent Security API (General) Developer Guide
RTSP/1.0 200 OK
CSeq: 8
Session: 2049381566
Scale: 4.000
RTP-Info: url=trackID=1;seq=1,url=trackID=2;seq=1
Date: Tue, Mar 14 2017 10:57:25 GMT
Disable:
TEARDOWN rtsp://10.17.133.46:554/ISAPI/streaming/tracks/101?
starttime=20170313T230652Z&endtime=20170314T025706Z RTSP/1.0
CSeq: 9
Authorization: Digest username="admin",
realm="4419b66d2485",
nonce="a0ecd9b1586ff9461f02f910035d0486",
uri="rtsp://10.17.133.46:554/ISAPI/streaming/tracks/101?
starttime=20170313T230652Z&endtime=20170314T025706Z",
response="50c86f44780a497ee07622b70c050bcd"
Session:2049381566;timeout=60
User-Agent: NKPlayer-1.00.00.081112
RTSP/1.0 200 OK
CSeq: 9
Session: 2049381566
Date: Tue, Mar 14 2017 10:57:28 GMT
86
Intelligent Security API (General) Developer Guide
Steps
Note
You can call /ISAPI/System/TwoWayAudio/channels/capabilities by GET method to get the
audio configuration capability of all two-way audio channels for knowing the configuration
details and notices.
2. Call /ISAPI/System/TwoWayAudio/channels/<ID>/open by PUT method to specify a channel of
device to start the two-way audio.
3. Perform the following operations to transmit the audio data between platform and device.
Send Audio Data to Device PUT /ISAPI/System/TwoWayAudio/channels/<ID>/
audioData
Receive Audio Data from Device
GET /ISAPI/System/TwoWayAudio/channels/<ID>/
audioData
4. Call /ISAPI/System/TwoWayAudio/channels/<ID>/close by PUT method to stop two-way audio
of the specific channel.
87
Intelligent Security API (General) Developer Guide
88
Intelligent Security API (General) Developer Guide
Capture
Recording
Table 9-1 Normal Operation
Function Request URI
Get video track type GET /ISAPI/ContentMgmt/record/profile
Set storage for recorded files PUT /ISAPI/ContentMgmt/record/storageMounts
89
Intelligent Security API (General) Developer Guide
Note
To check if setting recording storage is supported, you can call
the GET /ISAPI/ContentMgmt/capabilities to get the device
storage management capability ( XML_RacmCap ).
90
Intelligent Security API (General) Developer Guide
91
Intelligent Security API (General) Developer Guide
Note
To check if the lens correction is supported by device, you can
call the GET /ISAPI/PTZCtrl/channels/<ID>/capabilities to
get the PTZ control capability ( XML_PTZChanelCap ). If
supports, the node <isSupportLensCorrection> will be
returned.
92
Intelligent Security API (General) Developer Guide
93
Intelligent Security API (General) Developer Guide
94
Intelligent Security API (General) Developer Guide
95
Intelligent Security API (General) Developer Guide
96
Intelligent Security API (General) Developer Guide
Steps
97
Intelligent Security API (General) Developer Guide
98
Intelligent Security API (General) Developer Guide
99
Intelligent Security API (General) Developer Guide
HDD Configuration
HDD Formatting
100
Intelligent Security API (General) Developer Guide
HDD Clearing
HDD Checking
101
Intelligent Security API (General) Developer Guide
102
Intelligent Security API (General) Developer Guide
103
Intelligent Security API (General) Developer Guide
SSD Configuration
104
Intelligent Security API (General) Developer Guide
11.7 Others
Table 11-4 APIs about Additional Information
Function API
Get storage capability of GET /ISAPI/ContentMgmt/Storage/ExtraInfo/capabilities
additional information
Get or set storage parameters GET or PUT /ISAPI/ContentMgmt/Storage/ExtraInfo
of additional information
105
Intelligent Security API (General) Developer Guide
Note
This URI is not only used to search video files, it can also be
used to search any resources stored in the device.
106
Intelligent Security API (General) Developer Guide
Note
To check whether the device supports adding remarks to the video files, you can call /ISAPI/
ContentMgmt/capabilities by GET method to get the device storage capability ( XML_RacmCap ).
If it supports, the node <isSupportRemark> will be returned and its value is "true".
107
Intelligent Security API (General) Developer Guide
Audio Test
108
Intelligent Security API (General) Developer Guide
Note
To check whether the device supports exporting log files, you
can call /ISAPI/ContentMgmt/capabilities by GET method to
get the storage capability ( XML_RacmCap ). If it supports, the
node <isSupportLogDataPackage> is returned in the capability
message and its value is "true".
109
Intelligent Security API (General) Developer Guide
110
Intelligent Security API (General) Developer Guide
Chapter 13 Alarm/Event
When the alarm is triggered or the event occurred, if you have configured alarm/event uploading
parameters, you can receive and process the alarm/event information in the third-party platform
or system by calling the request URLs of ISAPI. Two modes are available for receiving alarms,
including arming mode and listening mode.
Arming Mode
When the alarm is triggered or event occurred, the third-party platform or system can send the
request URL to the device for getting the alarm/event stream, and then the device uploads the
response message with alarm/event information.
Listening Mode
When alarm is triggered or event occurred, the device uploads the alarm information
automatically, and then the third-party platform or system can receives the alarm/event by
configuring listening port of HTTP host server.
111
Intelligent Security API (General) Developer Guide
Steps
112
Intelligent Security API (General) Developer Guide
1. Call /ISAPI/Smart/capabilities by GET method to get the smart device capability and check
whether the device supports audio detection.
The smart device capability is returned in the message XML_SmartCap .
If the node <isSupportAudioDetection> will be returned in the message and its value is true, it
indicates that the audio detection is supported by the device, and then you can continue to
perform the following operations. Otherwise, it indicates that the audio detection is not
supported, please end this task.
2. Optional: Call /ISAPI/Smart/AudioDetection/channels/<ID>/capabilities by GET method to get
the configuration capability of the audio detection of a specific channel for knowing about the
configuration details or notices.
3. Optional: Call /ISAPI/Smart/AudioDetection/channels/<ID> by GET method to get the audio
detection parameters of a specific channel for reference.
4. Call /ISAPI/Smart/AudioDetection/channels/<ID> by PUT method to set the audio detection
parameters of a specific channel.
5. Optional: Call /ISAPI/Event/schedules/<EventType>/<ID> by GET method to get the default of
configured arming schedule parameters of a specific channel for reference.
Note
The <EventType> in the request URI should be set to <audioDetections> and the <ID> in the
request URI should be set in the format of <audioexception_<channelID>, e.g., /ISAPI/Event/
schedules/audioDetections/audioexception_101.
6. Call /ISAPI/Event/schedules/<EventType>/<ID> by PUT method to set the arming schedule of a
specific channel for audio detection.
Note
The <EventType> in the request URI should be set to <audioDetections> and the <ID> in the
request URI should be set in the format of <audioexception_<channelID>, e.g., /ISAPI/Event/
schedules/audioDetections/audioexception_101.
7. Optional: Call /ISAPI/Event/triggers/<eventType>-<ID> by GET method to get the default or
configured alarm linkage actions of a specific channel for reference.
Note
The <eventType> in the request URI should be set to <audioexception>, e.g., /ISAPI/Event/
triggers/audioexception-101.
8. Call /ISAPI/Event/triggers/<eventType>-<ID> by PUT method to set alarm linkage actions of a
specific channel for audio detection.
Note
The <eventType> in the request URI should be set to <audioexception>, e.g., /ISAPI/Event/
triggers/audioexception-101.
113
Intelligent Security API (General) Developer Guide
9. Receive the audio detection alarm in arming mode (refer to Receive Alarm/Event in Arming
Mode for details) or in listening mode (refer to Receive Alarm/Event in Listening Mode for
details) when the alarm is triggered.
Note
The audio detection alarm details are uploaded in the message
XML_EventNotificationAlert_AudioExceptionAlarmMsg and the corresponding alarm type
(eventType) is "audioexception".
10. Optional: Call /ISAPI/Smart/AudioDetection/channels/<ID>/status by GET method to get the
audio strength.
Note
To check if the device supports supply voltage exception alarm, you can call /ISAPI/Event/
capabilities by GET method to get the device event capability ( XML_EventCap ). If supports, the
node <isSupportVoltageInstable> will be returned.
114
Intelligent Security API (General) Developer Guide
Steps
115
Intelligent Security API (General) Developer Guide
1. Call /ISAPI/Event/capabilities by GET method to get the event capability of the device for
checking whether the device supports certificate expiry alarm.
The event capability of the device is returned in the message XML_EventCap . If the certificate
expiry alarm is supported, the node <isSupportCertificateRevocation> will be returned and its
value is "true", then you can perform the following steps. Otherwise, please end this task.
2. Call /ISAPI/Event/channels/<ID>/capabilities by GET method to get the event capability of the
channel for checking whether the certificate expiry alarm is supported by the channel.
The event capability supported by the channel is returned in the message
XML_ChannelEventCap . If the certificate expiry alarm is supported, the node <eventType> will
be returned and it contains "certificateRevocation".
3. Call /ISAPI/Security/deviceCertificate/certificateRevocation/capabilities?format=json by GET
method to get the configuration capability of certificate expiry alarm to know the supported
parameters of certificate expiry alarm that can be configured.
4. Optional: Call /ISAPI/Security/deviceCertificate/certificateRevocation?format=json by GET
method to get the parameters of certificate expiry alarm to get the existing or configured
parameters for reference.
5. Call /ISAPI/Security/deviceCertificate/certificateRevocation?format=json byPUT method to set
the parameters of certificate expiry alarm .
6. Optional: Call /ISAPI/Event/triggers/<eventType>-<ID> or /ISAPI/Event/triggers/<ID>/
notifications by GET method to get the linkage parameters of certificate expiry alarm to get the
existing or configured parameters for reference.
Note
The <ID> in the request URI refers to the channel No., and it should be set to the format
"certificateRevocation-<channelID>".
7. Call /ISAPI/Event/triggers/<eventType>-<ID> or /ISAPI/Event/triggers/<ID>/notifications by
PUT method to Set the linkage parameters of certificate expiry alarm.
Note
The <ID> in the request URI refers to the channel No., and it should be set to the format
"certificateRevocation-<channelID>".
8. Optional: Receive the uploaded certificate expiry alarm in arming mode (see details in Receive
Alarm/Event in Arming Mode ) or in listening mode (see details in Receive Alarm/Event in
Listening Mode ) when the certificate is expired.
The certificate expiry alarm details are returned in the message
JSON_EventNotificationAlert_CertificateExpiryAlarmMsg , and the corresponding alarm type
(eventType) is "certificateRevocation".
116
Intelligent Security API (General) Developer Guide
117
Intelligent Security API (General) Developer Guide
Note
The traffic pre-alarm only supports the default linkage action (upload to center) and arming
schedule (all-day schedule).
The network traffic alarm details are returned in the message
JSON_EventNotificationAlert_NetworkTrafficPrealarmMsg , and the corresponding alarm type
(eventType) is "dataPrealarm".
118
Intelligent Security API (General) Developer Guide
Steps
119
Intelligent Security API (General) Developer Guide
120
Intelligent Security API (General) Developer Guide
Steps
121
Intelligent Security API (General) Developer Guide
1. Call /ISAPI/System/capabilities by GET method to get the device capability and check whether
vibration detection is supported by the device.
The device capability is returned in the message XML_DeviceCap .
If the node <isSupportVibrationDetection> is returned in the message and its value is "true", it
indicates that the vibration detection is supported, and then you can continue to perform the
following steps.
Otherwise, the vibration detection is not supported, please end this task.
2. Optional: Call /ISAPI/System/channels/<ID>/vibrationDetection/capabilities?format=json by
GET method to get configuration capability of vibration detection.
3. Call /ISAPI/System/channels/<ID>/vibrationDetection?format=json by PUT method to set
parameters of vibration detection.
4. Optional: Call /ISAPI/Event/channels/capabilities or /ISAPI/Event/channels/<ID>/capabilities
by GET method to get event configuration capability of all channels or a single channel for
knowing the configuration details or notices.
5. Call /ISAPI/Event/schedules/vibrationDetection/<ID> by PUT method and set the <ID> in the
format of "vibrationDetection-<channelID>", e.g., /ISAPI/Event/schedules/vibrationDetection/
vibrationDetection-1, to set arming schedule of a specific channel for vibration detection alarm.
6. Optional: Call /ISAPI/Event/triggersCap by GET method to get alarm linkage configuration
capability of vibration detection.
The alarm linkage capability is returned in the message XML_EventTriggersCap .
7. Call /ISAPI/Event/triggers/<eventType>-<ID> by PUT method and set the <ID> in the format of
"vibrationDetection-<channelID>", e.g., /ISAPI/Event/triggers/vibrationDetection-1, to set the
alarm linkages.
8. Optional: Receive vibration detection alarm in arming mode (refer to Receive Alarm/Event in
Arming Mode for details) or in listening mode (refer to Receive Alarm/Event in Listening Mode
for details) when alarm is triggered.
Note
Note
To check whether searching for video or picture information of vibration detection events is
supported, you can call /ISAPI/ContentMgmt/capabilities by GET method to get the storage
capability message XML_RacmCap and check whether the event type "vibrationDetection"
exists in the nodes recordSearchType and pictureSearchType.
122
Intelligent Security API (General) Developer Guide
123
Intelligent Security API (General) Developer Guide
Server:
Content-Length: 178
Content-Type: text/html
Connection: keep-alive
Keep-Alive: timeout=10, max=99
WWW-Authenticate: Digest qop="auth",
realm="IP Camera(C2183)",
nonce="4e5468694e7a42694e7a4d364f4449354d7a6b354d54513d",
stale="FALSE"
HTTP/1.1 200 OK
MIME-Version: 1.0
Connection: close
Content-Type: multipart/mixed; boundary=<frontier>
--<frontier>
Content-Type: application/xml; charset="UTF-8"
Content-Length: text_length
<EventNotificationAlert/>
--<frontier>
Note
Some alarm data is in JSON format, so the Content-Type may be "application/xml" or "application/
json".
124
Intelligent Security API (General) Developer Guide
Steps
Note
Before setting the listening server, you'd better call the URI by GET method to get the default or
configured parameters for reference.
3. Call /ISAPI/Event/notification/httpHosts/<ID>/test by POST method to check if the listening
server is working normally.
4. Receive the alarm/event information from the listening server.
Example
Sample Code of Receiving Alarm/Event in Listening Mode
• with Binary Picture Data
//Request
POST requestUrl HTTP/1.1
125
Intelligent Security API (General) Developer Guide
Host: data_gateway_ip:port
Accept-Language: en-US
Date: YourDate
Content-Type: multipart/form-data;boundary=<frontier>
Content-Length: body_length
Connection: keep-alive
--<frontier>
Content-Disposition: form-data; name="Event_Type"
Content-Type: text/xml
Content-Length: xml_length
<EventNotificationAlert/>
--<frontier>
Content-Disposition: form-data; name="Picture_Name"
Content-Length: image_length
Content-Type: image/pjpeg
//Response
HTTP/1.1 HTTP statusCode
Date: YourDate
Connection: close
• without Binary Picture Data
//Request
POST requestUrl HTTP/1.1
Host: data_gateway_ip:port
Accept-Language: en-US
Date: YourDate
Content-Type: text/xml;
Content-Length: text_length
Connection: keep-alive
<EventNotificationAlert/>
//Response
HTTP/1.1 HTTP statusCode
Date: YourDate
Connection: close
Note
• The Host is the HTTP server domain name or IP address and port No.
• Some alarm data is in JSON format, so the Content-Type may be "text/xml" or "text/json".
126
Intelligent Security API (General) Developer Guide
127
Intelligent Security API (General) Developer Guide
If the node <isSupportSubscribeEvent> is also returned in the message and its value is "true", it
indicates that alarm/event subscription is supported by device, and you can continue to
perform the following steps;
Otherwise, alarm/event subscription is not supported, please end the task.
2. Call /ISAPI/Event/notification/subscribeEventCap by GET method to get subscription capability
to get supported alarm/event types.
The alarm/event subscription capability is returned in the message XML_SubscribeEventCap .
3. Call /ISAPI/Event/notification/subscribeEvent by POST method to enable alarm/event
uploading.
Note
The sub node <type> of event type list (EventList) in the request message XML_SubscribeEvent
can be set to different values (refer to Supported Alarm/Event Types for details) to subscribe
different types of alarm/event information.
4. Optional: Call /ISAPI/Event/notification/subscribeEvent/<ID> by GET method to get subscribed
alarm/event types for reference.
5. Call /ISAPI/Event/notification/subscribeEvent/<ID> by PUT to set alarm/event type to
subscribe.
Note
The sub node <type> of event type list (EventList) in the request message XML_SubscribeEvent
can be set to different values (refer to Supported Alarm/Event Types for details) to subscribe
different types of alarm/event information.
6. Call /ISAPI/Event/notification/alertStream by GET method to receive the alarm/event
information.
7. Check if the heartbeat receiving timed out or network disconnected.
- If the heartbeat keeps alive and the network still connected, perform the following step to
continue.
- If the heartbeat receiving timed out or network disconnected, perform the above step
repeatedly until reconnected.
8. Call /ISAPI/Event/notification/unSubscribeEvent by PUT method to cancel subscribing alarm/
event.
128
Intelligent Security API (General) Developer Guide
Alarm Input
129
Intelligent Security API (General) Developer Guide
Alarm Output
130
Intelligent Security API (General) Developer Guide
Note
The alarm details are uploaded by the message
XML_EventNotificationAlert_AlarmInputAlarmMsg .
131
Intelligent Security API (General) Developer Guide
132
Intelligent Security API (General) Developer Guide
133
Intelligent Security API (General) Developer Guide
Note
To check if the regional focus is supported by device, you can call the
GET to get the image capability ( XML_ImageCap ). If supports, the
node <isSupportRegionalFocus> will be returned in the capability.
Note
To check if the OSD language configuration is supported by device,
you can call the GET / to get the video capability ( XML_VideoCap ).
If supports, the node <OSDLanguage> will be returned.
134
Intelligent Security API (General) Developer Guide
Table 14-6 Stream Configuration for Displaying VCA Rules of Smart Events
Function Request URI
Get capability of GET /ISAPI/Streaming/channels/<ID>/smartOverlap/capabilities?
configuring stream for format=json
displaying VCA rules of
smart events Note
To check if the stream configuration for displaying VCA rules of smart
events is supported by the device, you can call the GET /ISAPI/
System/capabilities to get the device capability ( XML_DeviceCap ).
If this function is supported, the node
<supportSmartOverlapChannles> will be returned and its value is
"true".
135
Intelligent Security API (General) Developer Guide
136
Intelligent Security API (General) Developer Guide
137
Intelligent Security API (General) Developer Guide
Digital Channel
Note
To check if the digital channel management or configuration is supported, you can call the GET /
ISAPI/ContentMgmt/capabilities to get the device storage management capability
( XML_RacmCap ).
138
Intelligent Security API (General) Developer Guide
139
Intelligent Security API (General) Developer Guide
140
Intelligent Security API (General) Developer Guide
141
Intelligent Security API (General) Developer Guide
Note
To check if network self-adaptive configuration is supported,
you can get the network capability XML_NetworkCap by
the /ISAPI/System/Network/capabilities . If supports, the
node <Adaption> will be returned in the capability message.
15.2.1 Email
Protocol Access
142
Intelligent Security API (General) Developer Guide
Hik-Connect Access
143
Intelligent Security API (General) Developer Guide
Note
To check if the device supports accessing to EHome server, you can call the request URI: GET /
ISAPI/System/Network/capabilities to get the network capability ( XML_NetworkCap ). If
supports, the node <isSupportEZVIZ> will be returned in the capability and its value is "true".
Note
To check if the device supports accessing to SSH server, you can call the request URI: GET /ISAPI/
System/Network/capabilities to get the network capability ( XML_NetworkCap ). If supports, the
node <isSupportSSH> will be returned in the capability and its value is "true".
SNMP Access
144
Intelligent Security API (General) Developer Guide
Network Interface
145
Intelligent Security API (General) Developer Guide
PoE
UPnP
Wi-Fi
146
Intelligent Security API (General) Developer Guide
Wireless Hotspot
147
Intelligent Security API (General) Developer Guide
Wireless Dial
Network Keepalive
148
Intelligent Security API (General) Developer Guide
SMS Configuration
Software Service
149
Intelligent Security API (General) Developer Guide
Note
To check if setting dynamic domain name is supported, you can call the GET /ISAPI/System/
Network/capabilities to get the network capability ( XML_NetworkCap ). If supports, the node
<isSupportDynamicHostName> is returned and its value is "true".
150
Intelligent Security API (General) Developer Guide
Log Server
Static Routing
151
Intelligent Security API (General) Developer Guide
Note
Before getting people counting data replenishment capability,
you should call /ISAPI/System/Video/capabilities by GET
method to check whether this function is supported by the
152
Intelligent Security API (General) Developer Guide
Note
Before getting people counting data replenishment capability,
you should call /ISAPI/System/Video/capabilities by GET
method to check whether this function is supported by the
device via the node <isSupportHeatmapCollection> in
XML_VideoCap .
Note
Before getting temperature data replenishment capability, you
should call /ISAPI/Thermal/capabilities by GET method to
check whether this function is supported by the device via the
node <isSupportTemperatureCollection> in XML_ThermalCap .
153
Intelligent Security API (General) Developer Guide
154
Intelligent Security API (General) Developer Guide
A.1 /ISAPI/AUXInfo
A.1.1 /ISAPI/AUXInfo/attributes/Channels
Get the attributes of channels.
A.1.2 /ISAPI/AUXInfo/attributes/Channels/<ID>
Get the attributes of a specific channel according to channel ID.
Remarks
The <ID> in the request URI is the channel ID.
155
Intelligent Security API (General) Developer Guide
A.2 /ISAPI/ContentMgmt
A.2.1 /ISAPI/ContentMgmt/capabilities
Get storage capability.
A.2.2 /ISAPI/ContentMgmt/download
Download the file via plug-in.
A.2.3 /ISAPI/ContentMgmt/download/capabilities
Get the downloading capability sets.
156
Intelligent Security API (General) Developer Guide
A.2.4 /ISAPI/ContentMgmt/download/toUSB/<taskId>/progress?format=json
Get the progress of exporting files to devices via USB.
Remarks
The <taskId> in the request URI refers to the task ID, and it is returned in the message
JSON_ExporttoUSB_TaskInfo after calling the request URI: POST /ISAPI/ContentMgmt/download/
toUSB?format=json .
A.2.5 /ISAPI/ContentMgmt/download/toUSB/capabilities?format=json
Get the capability of exporting files to devices via USB.
157
Intelligent Security API (General) Developer Guide
A.2.6 /ISAPI/ContentMgmt/download/toUSB?format=json
Export files to devices via USB.
A.2.7 /ISAPI/ContentMgmt/InputProxy/channels
Operations about management of all digital channels.
158
Intelligent Security API (General) Developer Guide
Request None.
Response XML_InputProxyChannelList
Table A-10 PUT /ISAPI/ContentMgmt/InputProxy/channels
Method PUT
Description Set parameters of all digital channels.
Query None.
Request XML_InputProxyChannelList
Response XML_ResponseStatus
Table A-11 POST /ISAPI/ContentMgmt/InputProxy/channels
Method POST
Description Add a digital channel.
Query None.
Request XML_InputProxyChannel
Response XML_ResponseStatus
A.2.8 /ISAPI/ContentMgmt/InputProxy/channels/<ID>
Operations about management of a specific digital channel.
159
Intelligent Security API (General) Developer Guide
Request XML_InputProxyChannel
Response XML_ResponseStatus
Table A-14 DELETE /ISAPI/ContentMgmt/InputProxy/channels/<ID>
Method DELETE
Description Delete a specific digital channel.
Query None.
Request None.
Response XML_ResponseStatus
Remarks
The <ID> in the request URI refers to the digital channel ID.
A.2.9 /ISAPI/ContentMgmt/InputProxy/channels/<ID>/capabilities
Get management capability of a specific digital channel.
Remarks
The <ID> in the request URI refers to the digital channel ID.
A.2.10 /ISAPI/ContentMgmt/InputProxy/channels/<ID>/chanCtrl
Get or set control parameters of a specific channel.
160
Intelligent Security API (General) Developer Guide
Remarks
The <ID> in the request URI refers to the channel ID.
A.2.11 /ISAPI/ContentMgmt/InputProxy/channels/<ID>/deviceInfo
Get or set the device parameters of a digital channel.
161
Intelligent Security API (General) Developer Guide
Remarks
The <ID> in the request URI refers to channel ID.
A.2.12 /ISAPI/ContentMgmt/InputProxy/channels/<ID>/portMapParam
Check if port mapping is required for connecting to camera.
Remarks
The <ID> in the request URI refers to the channel ID.
A.2.13 /ISAPI/ContentMgmt/InputProxy/channels/<ID>/reboot
Reboot a specific channel.
162
Intelligent Security API (General) Developer Guide
Query None.
Request None.
Response XML_ResponseStatus
Remarks
The <ID> in the request URI refers to the channel ID.
A.2.14 /ISAPI/ContentMgmt/InputProxy/channels/<ID>/status
Get status of a specific digital channel.
Remarks
The <ID> in the request URI refers to the digital channel ID.
A.2.15 /ISAPI/ContentMgmt/InputProxy/channels/<ID>/video/overlays
Get or set text overlay parameters of a specific video digital input channel.
163
Intelligent Security API (General) Developer Guide
Remarks
The <ID> in the request URI refers to the channel No.
A.2.16 /ISAPI/ContentMgmt/InputProxy/channels/<ID>/video/overlays/
capabilities
Get the text overlay configuration capability of a specific video digital input channel.
Remarks
The <ID> in the request URI refers to the channel No.
A.2.17 /ISAPI/ContentMgmt/InputProxy/channels/activate
Activate the network devices.
164
Intelligent Security API (General) Developer Guide
A.2.18 /ISAPI/ContentMgmt/InputProxy/channels/activate/capabilities
Get capability of activating network devices.
A.2.19 /ISAPI/ContentMgmt/InputProxy/channels/capabilities
Get management capability of all digital channels.
165
Intelligent Security API (General) Developer Guide
A.2.20 /ISAPI/ContentMgmt/InputProxy/channels/status
Get status of all digital channels.
A.2.21 /ISAPI/ContentMgmt/InputProxy/deviceInfo
Get device parameters of all digital channels.
A.2.22 /ISAPI/ContentMgmt/InputProxy/search
Search for network cameras in the LAN (Local Area Network) that can be connected.
166
Intelligent Security API (General) Developer Guide
Query None.
Request None.
Response Succeeded: XML_VideoSourceList
Failed: XML_ResponseStatus
A.2.23 /ISAPI/ContentMgmt/InputProxy/sourceCapability
Get supported number of digital channels.
A.2.24 /ISAPI/ContentMgmt/IOProxy/inputs
Operations about the alarm input configuration of all digital channels.
167
Intelligent Security API (General) Developer Guide
Request XML_IOProxyInputPortList
Response XML_ResponseStatus
Table A-35 POST /ISAPI/ContentMgmt/IOProxy/inputs
Method POST
Description Add the alarm input configuration of a specific digital channel.
Query None.
Request XML_IOProxyInputPort
Response XML_ResponseStatus
A.2.25 /ISAPI/ContentMgmt/IOProxy/inputs/<ID>
Operations about the alarm input configuration of a specific digital channel.
168
Intelligent Security API (General) Developer Guide
Request None.
Response XML_ResponseStatus
Remarks
The <ID> in the request URI refers to the digital channel No.
A.2.26 /ISAPI/ContentMgmt/IOProxy/inputs/<ID>/status
Get the alarm input status of a specific digital channel.
Remarks
The <ID> in the request URI refers to the digital channel No.
A.2.27 /ISAPI/ContentMgmt/IOProxy/outputs
Operations about the alarm output configuration of all digital channels.
169
Intelligent Security API (General) Developer Guide
A.2.28 /ISAPI/ContentMgmt/IOProxy/outputs/<ID>
Operations about the alarm output configuration of a specific digital channel.
170
Intelligent Security API (General) Developer Guide
Remarks
The <ID> in the request URI refers to the digital channel No.
A.2.29 /ISAPI/ContentMgmt/IOProxy/outputs/<ID>/status
Get the alarm output status of a specific digital channel.
Remarks
The <ID> in the request URI refers to the digital channel No.
A.2.30 /ISAPI/ContentMgmt/IOProxy/outputs/<ID>/trigger
Trigger alarm output of a specific digital channel.
171
Intelligent Security API (General) Developer Guide
Request XML_IOPortData
Response XML_ResponseStatus
Remarks
The <ID> in the request URI refers to the digital channel No.
A.2.31 /ISAPI/ContentMgmt/logConfig
Get or set log parameters.
A.2.32 /ISAPI/ContentMgmt/logConfig/capabilities
Get log configuration capability.
172
Intelligent Security API (General) Developer Guide
Request None.
Response Succeeded: XML_Cap_LogConfig
Failed: XML_ResponseStatus
A.2.33 /ISAPI/ContentMgmt/logSearch
Search for log files.
A.2.34 /ISAPI/ContentMgmt/logSearch?format=json
Search log information.
A.2.35 /ISAPI/ContentMgmt/logSearch/dataPackage
Export device log files.
173
Intelligent Security API (General) Developer Guide
A.2.36 /ISAPI/ContentMgmt/PTZCtrlProxy/capabilities
Get PTZ control capability of digital channels.
A.2.37 /ISAPI/ContentMgmt/PTZCtrlProxy/channels
Get or set parameters of all digital PTZ channels.
174
Intelligent Security API (General) Developer Guide
Request None
Response Succeeded: XML_PTZChannelList
Failed: XML_ResponseStatus
Table A-56 PUT /ISAPI/ContentMgmt/PTZCtrlProxy/channels
Method PUT
Description Set parameters of all digital PTZ channels.
Query None
Request XML_PTZChannelList
Response XML_ResponseStatus
A.2.38 /ISAPI/ContentMgmt/PTZCtrlProxy/channels/<ID>
Get or set parameters of a digital PTZ channel.
Remarks
The <ID> in the request URI refers to the digital PTZ channel ID.
175
Intelligent Security API (General) Developer Guide
A.2.39 /ISAPI/ContentMgmt/PTZCtrlProxy/channels/<ID>/autoPan
Control the fans.
Remarks
The <ID> in the request URI refers to the digital channel No.
A.2.40 /ISAPI/ContentMgmt/PTZCtrlProxy/channels/<ID>/capabilities
Get the capability of a digital PTZ channel.
Remarks
The <ID> in the request URI refers to the digital channel No.
A.2.41 /ISAPI/ContentMgmt/PTZCtrlProxy/channels/<ID>/continuous
Manually control PTZ.
176
Intelligent Security API (General) Developer Guide
Remarks
The <ID> in the request URI refers to the channel No.
A.2.42 /ISAPI/ContentMgmt/PTZCtrlProxy/channels/<ID>/momentary
Perform scheduled PTZ control via digital channel.
Remarks
The <ID> in the request URI refers to the digital channel No.
A.2.43 /ISAPI/ContentMgmt/PTZCtrlProxy/channels/<ID>/onepushfoucs/start
Perform one-touch focus via a digital PTZ channel.
177
Intelligent Security API (General) Developer Guide
Query None
Request None
Response XML_ResponseStatus
Remarks
The <ID> in the request URI refers to the digital channel No.
A.2.44 /ISAPI/ContentMgmt/PTZCtrlProxy/channels/<ID>/patrols
Get, set, or delete all patrols of a digital PTZ channel, or add a patrol.
178
Intelligent Security API (General) Developer Guide
Remarks
The <ID> in the request URI refers to the digital channel No.
A.2.45 /ISAPI/ContentMgmt/PTZCtrlProxy/channels/<ID>/patrols/<ID>
Get, set, or delete a patrol of a digital PTZ channel.
179
Intelligent Security API (General) Developer Guide
Request None
Response XML_ResponseStatus
Remarks
The first <ID> in the request URI refers to the digital channel No., and the second <ID> is the patrol
No.
A.2.46 /ISAPI/ContentMgmt/PTZCtrlProxy/channels/<ID>/patrols/<ID>/pause
Pause calling a patrol of a digital PTZ channel.
Remarks
The first <ID> in the request URI refers to the digital channel No., and the second <ID> is the patrol
No.
A.2.47 /ISAPI/ContentMgmt/PTZCtrlProxy/channels/<ID>/patrols/<ID>/start
Start calling a patrol of a digital PTZ channel.
180
Intelligent Security API (General) Developer Guide
Remarks
The first <ID> in the request URI refers to the digital channel No., and the second <ID> is the patrol
No.
A.2.48 /ISAPI/ContentMgmt/PTZCtrlProxy/channels/<ID>/patrols/<ID>/status
Get a patrol's status of a digital PTZ channel.
Remarks
The first <ID> in the request URI refers to the digital channel No., and the second <ID> is the patrol
No.
A.2.49 /ISAPI/ContentMgmt/PTZCtrlProxy/channels/<ID>/patrols/<ID>/stop
Stop calling a patrol of a digital PTZ channel.
Remarks
The first <ID> in the request URI refers to the digital channel No., and the second <ID> is the patrol
No.
181
Intelligent Security API (General) Developer Guide
A.2.50 /ISAPI/ContentMgmt/PTZCtrlProxy/channels/<ID>/position3D
Perform 3D positioning.
Remarks
The <ID> in the request URI refers to the digital channel No.
A.2.51 /ISAPI/ContentMgmt/PTZCtrlProxy/channels/<ID>/presets
Get, set or delete presets of a digital PTZ channel, or add a preset.
182
Intelligent Security API (General) Developer Guide
Remarks
The <ID> in the request URI refers to the digital channel No.
A.2.52 /ISAPI/ContentMgmt/PTZCtrlProxy/channels/<ID>/presets/<ID>
Get, set, or delete a preset of a digital PTZ channel.
183
Intelligent Security API (General) Developer Guide
Request XML_PTZPreset
Response XML_ResponseStatus
Table A-82 DELETE /ISAPI/ContentMgmt/PTZCtrlProxy/channels/<ID>/presets/<ID>
Method DELETE
Description Delete a preset of a digital PTZ channel.
Query None
Request None
Response XML_ResponseStatus
Remarks
The first <ID> in the request URI refers to the digital channel No., and the second <ID> indicates
the preset No.
A.2.53 /ISAPI/ContentMgmt/PTZCtrlProxy/channels/<ID>/presets/<ID>/goto
Call a preset of a digital PTZ channel.
Remarks
The first <ID> in the request URI refers to the digital channel No., and the second <ID> indicates
the preset No.
A.2.54 /ISAPI/ContentMgmt/record/control/cleanUp/capabilities?format=json
Get the capability of deleting saved files in a batch.
184
Intelligent Security API (General) Developer Guide
A.2.55 /ISAPI/ContentMgmt/record/control/cleanUp?format=json
Delete saved files in a batch.
A.2.56 /ISAPI/ContentMgmt/record/control/locks/capabilities
Get video locking or unlocking capability.
185
Intelligent Security API (General) Developer Guide
A.2.57 /ISAPI/ContentMgmt/record/control/locks/name
Lock or unlock videos by file name.
A.2.58 /ISAPI/ContentMgmt/record/control/manual/start/tracks/<ID>
Start manual recording.
186
Intelligent Security API (General) Developer Guide
Request None.
Response XML_ResponseStatus
Remarks
The <ID> in the request URI refers to the recording channel ID.
A.2.59 /ISAPI/ContentMgmt/record/control/manual/stop/tracks/<ID>
Stop manual recording of a specific channel.
Remarks
The <ID> in the request URI refers to the recording channel ID.
A.2.60 /ISAPI/ContentMgmt/record/control/manualRefresh/channels/<ID>
Refresh the video mode manually before playback.
Remarks
The <ID> in the request URI refers to the channel No.
187
Intelligent Security API (General) Developer Guide
A.2.61 /ISAPI/ContentMgmt/record/control/remark/capabilities?format=json
Get capability of adding remarks for videos by video ID.
A.2.62 /ISAPI/ContentMgmt/record/control/remark?format=json
Add remarks for videos by video ID.
A.2.63 /ISAPI/ContentMgmt/record/profile
Get video track type.
188
Intelligent Security API (General) Developer Guide
Request None.
Response Succeeded: XML_CMSRecordProfile
Failed: XML_ResponseStatus
A.2.64 /ISAPI/ContentMgmt/record/storageMounts
Set recording storage parameters.
A.2.65 /ISAPI/ContentMgmt/record/tracks
Operations about recording schedule configuration.
189
Intelligent Security API (General) Developer Guide
Request XML_TrackList
Response XML_ResponseStatus
Table A-97 POST /ISAPI/ContentMgmt/record/tracks
Method POST
Description Add a recording schedule.
Query None.
Request XML_Track
Response XML_ResponseStatus
A.2.66 /ISAPI/ContentMgmt/record/tracks/<ID>
Operations about a recording schedule.
190
Intelligent Security API (General) Developer Guide
Request None.
Response XML_ResponseStatus
Remarks
The <ID> in the request URI refers to the recording schedule ID.
A.2.67 /ISAPI/ContentMgmt/record/tracks/<ID>/capabilities
Get the configuration capability of the recording schedule.
Remarks
The <ID> in the request URI refers to the recording schedule ID.
A.2.68 /ISAPI/ContentMgmt/record/tracks/<ID>/dailyDistribution
Search recorded video files by date.
Remarks
The <ID> in the request URI refers to the recording channel ID.
191
Intelligent Security API (General) Developer Guide
A.2.69 /ISAPI/ContentMgmt/search
Search for specified resources.
Example
Sample Code for Searching Video Files Stored in Device
POST /ISAPI/ContentMgmt/search HTTP/1.1
Host: 10.17.132.49
Content-Length: 493
Connection: Keep-Alive
Authorization: Digest username="admin",
realm="DS-2CD2F12FWD-IWS",
nonce="4e7a46474e305a454d5445365a4445314e6a51345a54413d",
uri="/ISAPI/ContentMgmt/search",
cnonce="ce22590094d2f2bb352fc3c4cd2a1ca3",
nc=00000019,
response="ad6f2c23636f25c6db5911a113375ea9",
qop="auth"
192
Intelligent Security API (General) Developer Guide
</CMSearchDescription>
HTTP/1.1 200 OK
Date: Wed, 15 Mar 2017 09:40:02 GMT
Connection: close
Content-Length: 1649
Content-Type: application/xml
193
Intelligent Security API (General) Developer Guide
</matchList>
</CMSearchResult>
A.2.70 /ISAPI/ContentMgmt/search/profile
Get video search conditions.
A.2.71 /ISAPI/ContentMgmt/security/logSearch
Search for security logs.
A.2.72 /ISAPI/ContentMgmt/SmartSearch
Search for video files by VCA event.
194
Intelligent Security API (General) Developer Guide
A.2.73 /ISAPI/ContentMgmt/SmartSearch/capabilities
Get capability of searching videos by VCA event.
A.2.74 /ISAPI/ContentMgmt/spare/backup/<ID>?format=json
Edit the hot spare device information, delete a specified hot spare device.
195
Intelligent Security API (General) Developer Guide
Remarks
The <ID> in the request URI refers to hot spare device ID.
A.2.75 /ISAPI/ContentMgmt/spare/backup?format=json
Get the hot spare device list or add a hot spare device.
196
Intelligent Security API (General) Developer Guide
A.2.76 /ISAPI/ContentMgmt/spare/capabilities?format=json
Get the hot spare capability.
197
Intelligent Security API (General) Developer Guide
A.2.77 /ISAPI/ContentMgmt/spare/master/<ID>?format=json
Edit the working device information or delete a specified working device.
Remarks
The <ID> in the request URI refers to working device ID.
198
Intelligent Security API (General) Developer Guide
A.2.78 /ISAPI/ContentMgmt/spare/master?format=json
Get the working device list or add a working device.
199
Intelligent Security API (General) Developer Guide
A.2.79 /ISAPI/ContentMgmt/spare?format=json
Get or set the hot spare working mode.
A.2.80 /ISAPI/ContentMgmt/storage
Get or set the current working mode of storage.
200
Intelligent Security API (General) Developer Guide
A.2.81 /ISAPI/ContentMgmt/Storage/capabilities
Get the configuration capability of current storage working mode.
A.2.82 /ISAPI/ContentMgmt/Storage/dataReconstruction/progress?format=json
Get the disk data reconstruction progress.
201
Intelligent Security API (General) Developer Guide
A.2.83 /ISAPI/ContentMgmt/Storage/dataReconstruction?format=json
Start disk data reconstruction.
A.2.84 /ISAPI/ContentMgmt/Storage/extension
Get or set parameters of storage strategy.
202
Intelligent Security API (General) Developer Guide
A.2.85 /ISAPI/ContentMgmt/Storage/extension/capabilities
Get configuration capability of log storage.
A.2.86 /ISAPI/ContentMgmt/Storage/ExtraInfo
Operations about the configuration for storing additional information.
203
Intelligent Security API (General) Developer Guide
A.2.87 /ISAPI/ContentMgmt/Storage/ExtraInfo/capabilities
Get the capability of storing additional information.
A.2.88 /ISAPI/ContentMgmt/Storage/hdd
Get configuration parameters of all HDDs.
A.2.89 /ISAPI/ContentMgmt/Storage/hdd/<ID>
Get and set parameters for a specific HDD.
204
Intelligent Security API (General) Developer Guide
Query None.
Request None.
Response Succeeded: XML_hdd
Failed: XML_ResponseStatus
Table A-132 PUT /ISAPI/ContentMgmt/Storage/hdd/<ID>
Method PUT
Description Set parameters for a specific HDD.
Query None.
Request XML_hdd
Response XML_ResponseStatus
Remarks
The <ID> in the request URI refers to the HDD ID.
A.2.90 /ISAPI/ContentMgmt/Storage/hdd/<ID>/BadSectorsTest/pause
Pause checking bad sectors of a HDD.
Remarks
The <ID> in the request URI refers to the HDD No.
A.2.91 /ISAPI/ContentMgmt/Storage/hdd/<ID>/BadSectorsTest/resume
Resume checking dad sectors of a HDD.
205
Intelligent Security API (General) Developer Guide
Remarks
The <ID> in the request URI refers to the HDD No.
A.2.92 /ISAPI/ContentMgmt/Storage/hdd/<ID>/BadSectorsTest/start
Start checking bad sectors of a HDD.
Remarks
The <ID> in the request URI refers to the HDD No.
A.2.93 /ISAPI/ContentMgmt/Storage/hdd/<ID>/BadSectorsTest/status
Get bad sector checking status of a HDD.
206
Intelligent Security API (General) Developer Guide
Query None.
Request None.
Response Succeeded: XML_BadSectorsTestStatus
Failed: XML_ResponseStatus
Remarks
The <ID> in the request URI refers to the HDD No.
A.2.94 /ISAPI/ContentMgmt/Storage/hdd/<ID>/BadSectorsTest/stop
Stop checking bad sectors of a HDD.
Remarks
The <ID> in the request URI refers to the HDD No.
A.2.95 /ISAPI/ContentMgmt/Storage/hdd/<ID>/encryptFormat?format=json
Format an encrypted HDD.
207
Intelligent Security API (General) Developer Guide
Remarks
The <ID> in the request URI refers to the HDD ID.
A.2.96 /ISAPI/ContentMgmt/Storage/hdd/<ID>/encryptVerfy?format=json
Verify the HDD encryption password.
Remarks
The <ID> in the request URI refers to the HDD ID.
A.2.97 /ISAPI/ContentMgmt/Storage/hdd/<ID>/formatStatus
Get the formatting status of a specific HDD.
208
Intelligent Security API (General) Developer Guide
Remarks
The <ID> in the request URI refers to the HDD ID.
A.2.98 /ISAPI/ContentMgmt/Storage/hdd/<ID>/format?formatType=
Format a specific HDD according to the specified formatting type. This URI is only available for SD
card.
Remarks
The <ID> in the request URI refers to the HDD ID.
A.2.99 /ISAPI/ContentMgmt/Storage/hdd/<ID>/logProTest?format=json
Configure preverification for log HDDs.
209
Intelligent Security API (General) Developer Guide
Remarks
The <ID> in the request URI refers to the HDD No.
A.2.100 /ISAPI/ContentMgmt/Storage/hdd/<ID>/SMARTTest/start
Start checking HDD status.
Remarks
The <ID> in the request URI refers to the HDD No.
A.2.101 /ISAPI/ContentMgmt/Storage/hdd/<ID>/SMARTTest/status
Get HDD checking status.
210
Intelligent Security API (General) Developer Guide
Remarks
The <ID> in the request URI refers to the HDD No.
A.2.102 /ISAPI/ContentMgmt/Storage/hdd/capabilities
Get HDD management capability.
A.2.103 /ISAPI/ContentMgmt/storage/hdd/clearingSpace/capabilities?format=json
Get configuration capability of clearing HDD.
211
Intelligent Security API (General) Developer Guide
A.2.104 /ISAPI/ContentMgmt/storage/hdd/clearingSpace?format=json
Get or set parameters of clearing HDD.
A.2.105 /ISAPI/ContentMgmt/Storage/hdd/format
Format all HDDs.
212
Intelligent Security API (General) Developer Guide
Request None.
Response XML_ResponseStatus
A.2.106 /ISAPI/ContentMgmt/Storage/hdd/SMARTTest/config
Operations about the configuration of HDD SMART status detection.
A.2.107 /ISAPI/ContentMgmt/Storage/hdd/<ID>/syncStatus?format=json
Get the HDD data sync status. Now only supports data sync from HDD to SSD.
213
Intelligent Security API (General) Developer Guide
Failed: JSON_ResponseStatus
Remarks
• The <ID> in the request URI refers to the HDD ID.
• You can call this URI only when the value of sub node status (hddList> hdd>status) in
XML_storage is "synching" (related URI: /ISAPI/ContentMgmt/Storage).
A.2.108 /ISAPI/ContentMgmt/Storage/hdd/specifyHddFormat?format=json
Specify multiple HDDs to be formatted.
A.2.109 /ISAPI/ContentMgmt/Storage/quota
Get parameters of all HDD quotas.
A.2.110 /ISAPI/ContentMgmt/Storage/quota/<ID>
Get parameters of an HDD quota.
214
Intelligent Security API (General) Developer Guide
A.2.111 /ISAPI/ContentMgmt/Storage/ssd
Get the information of all SSDs.
A.2.112 /ISAPI/ContentMgmt/Storage/ssd/<ID>
Get the specified SSD information.
215
Intelligent Security API (General) Developer Guide
Remarks
The <ID> in the request URI refers to the SSD ID.
A.2.113 /ISAPI/ContentMgmt/Storage/ssd/<ID>/capabilities?format=json
Get the SSD management capability.
Remarks
• The <ID> in the request URI refers to the SSD ID.
• If the node isSupportSSDManagement is returned in the message XML_Cap_storage (related
URI: /ISAPI/ContentMgmt/Storage/capabilities ) and its value is true, it indicates that the
device supports this function.
A.2.114 /ISAPI/ContentMgmt/Storage/ssd/<ID>/SMARTTest/status
Get the SSD S.M.A.R.T (self-monitoring, analysis, and reporting technology) detection status.
216
Intelligent Security API (General) Developer Guide
Remarks
The <ID> in the request URI refers to the SSD ID.
A.2.115 /ISAPI/ContentMgmt/Storage/ssd/<ID>/SMARTTest/start
Run SSD S.M.A.R.T (self-monitoring, analysis, and reporting technology) detection.
Remarks
• The <ID> in the request URI refers to the SSD ID.
• If the node isSupportSSDSMARTTest is returned in the message XML_RacmCap (related URI: /
ISAPI/ContentMgmt/capabilities ) and its value is true, it indicates that the device supports this
function.
A.2.116 /ISAPI/ContentMgmt/Storage/ssd/<ID>/upgrade/status?format=json
Get the SSD firmware upgrade progress.
217
Intelligent Security API (General) Developer Guide
Remarks
The <ID> in the request URI refers to the SSD ID.
A.2.117 /ISAPI/ContentMgmt/Storage/ssd/<ID>/upgrade?format=json
Upgrade the SSD firmware.
Remarks
• The <ID> in the request URI refers to the SSD ID.
• If the node isSupportSSDUpgrade is returned in the message JSON_Cap_SSD (related URI: /
ISAPI/ContentMgmt/Storage/ssd/<ID>/capabilities?format=json ) and its value is true, it
indicates that the device supports this function.
A.2.118 /ISAPI/ContentMgmt/StreamingProxy/channels/<ID>/Picture
Capture pictures via digital channel.
218
Intelligent Security API (General) Developer Guide
Remarks
• The <ID> in the request URI refers to the digital channel ID.
• The supported picture resolutions include QCIF (176 × 144), CIF (352 × 288) , and D1 (704 × 576).
A.2.119 /ISAPI/ContentMgmt/StreamingProxy/channels/<ID>/capabilities
Get the capability of digital video channel proxy.
Remarks
The <ID> in the request URI refers to streaming channel ID, which is equal to (channel No. × 100 +
stream type), the stream type can be: 1 (main stream), 2 (sub-stream), and so on. For example,
when ID is 101, it indicates the main stream of channel 1, when ID is 302, it indicates the sub-
stream of channel 3.
219
Intelligent Security API (General) Developer Guide
A.2.120 /ISAPI/ContentMgmt/StreamingProxy/channels/<ID>/PictureByUrl/
capabilities?format=json
Get the capability of capturing picture in URL format
Remarks
The <ID> in the request URI refers to streaming channel ID, which is equal to (channel No. × 100 +
stream type), the stream type can be: 1 (main stream), 2 (sub-stream), and so on. For example,
when ID is 101, it indicates the main stream of channel 1, when ID is 302, it indicates the sub-
stream of channel 3.
A.2.121 /ISAPI/ContentMgmt/StreamingProxy/channels/<ID>/PictureByUrl?
format=json
Capture the picture in URL format.
220
Intelligent Security API (General) Developer Guide
Remarks
• The <ID> in the request URI refers to streaming channel ID, which is equal to (channel No. × 100
+ stream type), the stream type can be: 1 (main stream), 2 (sub-stream), and so on. For example,
when ID is 101, it indicates the main stream of channel 1, when ID is 302, it indicates the sub-
stream of channel 3.
• If the node isSupportPictureByUrl is returned in the message XML_Cap_StreamingChannel
(related URI: /ISAPI/ContentMgmt/StreamingProxy/channels/<ID>/capabilities ) and its value
is true, it indicates that the device supports this function.
A.2.122 /ISAPI/ContentMgmt/time/search/capabilities?format=json
Get the capability of searching for recording start and end time.
A.2.123 /ISAPI/ContentMgmt/time/search?format=json
Search for the recording start and end time.
221
Intelligent Security API (General) Developer Guide
A.3 /ISAPI/Event
A.3.1 /ISAPI/Event/capabilities
Get the device event capability.
A.3.2 /ISAPI/Event/channels/<ID>/capabilities
Get event capabilities supported by the channel.
Remarks
The <ID> in the URI refers to the channel ID.
A.3.3 /ISAPI/Event/channels/capabilities
Get the event capability of all channels.
222
Intelligent Security API (General) Developer Guide
A.3.4 /ISAPI/Event/notification/alertStream
Get the uploaded heartbeat or alarm/event information.
Note
The messages here only show the format of alarm/event
information to be uploaded. For details, refer to the corresponding
alarm/event configuration chapters.
Remarks
• After calling this URI, a persistent connection is set up between the device and the platform, and
the alarm or event information will be uploaded from device continuously once the alarm is
triggered or event occurred.
• You can check if the XML response message is the heartbeat information according to the nodes
<eventType> and <eventState>. If the values of these two node are "videoloss" and "inactive",
respectively, the returned message is the heartbeat information.
223
Intelligent Security API (General) Developer Guide
A.3.5 /ISAPI/Event/notification/httpHosts
Get or set parameters of all HTTP listening servers, add a HTTP listening server, and delete all HTTP
listening servers.
224
Intelligent Security API (General) Developer Guide
A.3.6 /ISAPI/Event/notification/httpHosts/<ID>
Get or set the parameters of a HTTP listening server, and delete a HTTP listening server.
225
Intelligent Security API (General) Developer Guide
Query security: the version No. of encryption scheme. When security does
not exist, it indicates that the data is not encrypted; when security is
1, it indicates that the nodes of sensitive information in the message
are encrypted in AES128 CBC mode; when security is 2, it indicates
that the nodes of sensitive information in the message are encrypted
in AES256 CBC mode.
Request XML_HttpHostNotification
Response XML_ResponseStatus
Table A-180 DELETE /ISAPI/Event/notification/httpHosts/<ID>
Method DELETE
Description Delete a HTTP listening server.
Query security: the version No. of encryption scheme. When security does
not exist, it indicates that the data is not encrypted; when security is
1, it indicates that the nodes of sensitive information in the message
are encrypted in AES128 CBC mode; when security is 2, it indicates
that the nodes of sensitive information in the message are encrypted
in AES256 CBC mode.
Request None
Response XML_ResponseStatus
Remarks
The <ID> in the request URI refers to the HTTP listening server No.
A.3.7 /ISAPI/Event/notification/httpHosts/<ID>/test
Check whether the HTTP listening server is working normally.
226
Intelligent Security API (General) Developer Guide
Remarks
The <ID> in the request URI refers to the HTTP listening server ID.
A.3.8 /ISAPI/Event/notification/httpHosts/capabilities
Get the configuration capabilities of all HTTP listening servers.
A.3.9 /ISAPI/Event/notification/subscribeEvent
Subscribe events/alarms in arming mode.
Remarks
The XML_EventNotificationAlert_SubscriptionHeartbeat and alarm/event details message is
uploaded repeatedly. The default time interval of uploading heartbeat information is 30s.
227
Intelligent Security API (General) Developer Guide
A.3.10 /ISAPI/Event/notification/subscribeEvent/<ID>
Get or set alarm/event subscription parameters.
Remarks
The <ID> in the request URI refers to the subscription No. which is returned by the device. After
the persistent connection for receiving events or alarms in arming mode is closed, the device will
release the resource used by the <ID>.
A.3.11 /ISAPI/Event/notification/subscribeEventCap
Get event/alarm subscription capability.
228
Intelligent Security API (General) Developer Guide
Request None.
Response Succeeded: XML_SubscribeEventCap
Failed: XML_ResponseStatus
A.3.12 /ISAPI/Event/notification/unSubscribeEvent
Cancel subscribing alarm/event.
A.3.13 /ISAPI/Event/schedules/motionDetections
Get or set arming schedule of motion detection of all channels.
229
Intelligent Security API (General) Developer Guide
Request XML_MotionDetectionScheduleList
Response XML_ResponseStatus
A.3.14 /ISAPI/Event/schedules/motionDetections/<ID>
Get or set the arming schedule of motion detection by channel.
Remarks
The <ID> in the request URI refers to the ID of channel that triggered motion detection alarm. It
consists of alarm type name ("VMD") and channel ID, its format is "VMD-<channelID>", e.g.,
"VMD-101".
A.3.15 /ISAPI/Event/schedules/vibrationDetection/<ID>
Get or set arming schedule of vibration detection by channel.
230
Intelligent Security API (General) Developer Guide
Remarks
The <ID> in the request URI should be set in the format of "vibrationDetection-<channelID>",
e.g., /ISAPI/Event/schedules/vibrationDetection/vibrationDetection-101.
A.3.16 /ISAPI/Event/schedules/<EventType>/<ID>
Operations about arming schedule of specified event type.
231
Intelligent Security API (General) Developer Guide
Remarks
The <EventType> in the URI refers to the specified event type.
The <ID> in the URI refers to the ID of channel, which is triggered by alarm.
A.3.17 /ISAPI/Event/triggers/hdBadBlock
Operations about the linkage configuration of the HDD bad sector detection.
A.3.18 /ISAPI/Event/triggers/hdImpact
Operations about the linkage configuration of the HDD impact detection.
232
Intelligent Security API (General) Developer Guide
A.3.19 /ISAPI/Event/triggers/highHDTemperature
Operations about the linkage configuration of the HDD high temperature detection.
233
Intelligent Security API (General) Developer Guide
Request XML_EventTrigger
Response XML_ResponseStatus
A.3.20 /ISAPI/Event/triggers/lowHDTemperature
Operations about the linkage configuration of the HDD low temperature detection.
A.3.21 /ISAPI/Event/triggers/severeHDFailure
Operations about the linkage configuration of the HDD severe fault detection.
234
Intelligent Security API (General) Developer Guide
Failed: XML_ResponseStatus
Table A-205 PUT /ISAPI/Event/triggers/severeHDFailure
Method PUT
Description Set the linkage parameters of the HDD severe fault detection.
Query None.
Request XML_EventTrigger
Response XML_ResponseStatus
A.3.22 /ISAPI/Event/triggers/<eventType>-<ID>
Get, set, or delete the alarm linkage action by channel.
235
Intelligent Security API (General) Developer Guide
Request None
Response XML_ResponseStatus
Remarks
The <eventType> in the request URI refers to the predefined event or alarm type name, and the
<ID> is the No. of the event detection channel. For example, if the No. of the face capture channel
is 101, the "<eventType>-<ID>" is "faceSnap-101".
A.3.23 /ISAPI/Event/triggers/<ID>/notifications
Operations about configurations of alarm/event linkage actions.
236
Intelligent Security API (General) Developer Guide
Remarks
The <ID> in the request URI refers to No. of alarm triggered channel.
A.3.24 /ISAPI/Event/triggers/notifications/AudioAlarm/<audioID>/test?
format=json
Audio test.
Remarks
The <audioID> in the URI refers to audio ID.
A.3.25 /ISAPI/Event/triggers/notifications/AudioAlarm/capabilities?format=json
Get audible warning configuration capability.
237
Intelligent Security API (General) Developer Guide
A.3.26 /ISAPI/Event/triggers/notifications/AudioAlarm/customAudio/
<customAudioID>?format=json
Download or delete custom alarm audio file.
Remarks
<customAudioID> in the URI refers to custom alarm audio ID and the value can be 1 to 3.
A.3.27 /ISAPI/Event/triggers/notifications/AudioAlarm/customAudioInfo/
channels/<channelID>?format=json
Get the information about custom alarm sound file of a specified channel.
238
Intelligent Security API (General) Developer Guide
Remarks
The <ID> in the request URI refers to the channel ID.
A.3.28 /ISAPI/Event/triggers/notifications/AudioAlarm/customAudio?format=json
Import custom alarm audio file.
A.3.29 /ISAPI/Event/triggers/notifications/AudioAlarm/customAudioInfo/
<customAudioID>?format=json
Get or edit custom alarm audio file information.
239
Intelligent Security API (General) Developer Guide
Remarks
The <customAudioID> in the URI refers to custom alarm audio ID and the value can be 1 to 3.
A.3.30 /ISAPI/Event/triggers/notifications/AudioAlarm/customAudioInfo?
format=json
Get the custom alarm audio file.
240
Intelligent Security API (General) Developer Guide
A.3.31 /ISAPI/Event/triggers/notifications/AudioAlarm/customAudioTypeInfo/
channels?format=json
Get encoding format information of custom audio file in a batch.
A.3.32 /ISAPI/Event/triggers/notifications/AudioAlarm?format=json
Get or set audible warning parameters.
Note
For example, if you want to get the audible warning parameters of thermometry, the request URI
is: GET /ISAPI/Event/triggers/notifications/AudioAlarm?format=json&alarmType=thermometry
241
Intelligent Security API (General) Developer Guide
A.3.33 /ISAPI/Event/triggers/notifications/channels/<ID>/AudioAlarm/
capabilities?format=json
Get the audible warning configuration capability of a specified channel.
Remarks
The <ID> in the request URI refers to the channel ID.
A.3.34 /ISAPI/Event/triggers/notifications/whiteLightAlarm?format=json
Operations about configuration of supplement light alarm linkage.
242
Intelligent Security API (General) Developer Guide
A.3.35 /ISAPI/Event/triggers/notifications/whiteLightAlarm/capabilities?
format=json
Get the configuration capability of supplement light alarm linkage.
A.3.36 /ISAPI/Event/triggersCap
Get alarm linkage capability.
243
Intelligent Security API (General) Developer Guide
Request None
Response Succeeded: XML_EventTriggersCap
Failed: XML_ResponseStatus
A.3.37 http://<ipAddress>:<portNo>/<url>
HTTP listening sever sends alarm information to alarm center.
Remarks
• The <ipAddress> in the request URL refers to the IP address or domain name of HTTP listening
server, the <portNo> is the port No. of HTTP listening server, and the <url> represents the
streaming URL, which is configured via the HTTP listening server.
• The default port No. is 80, so the request URL without port No. is also valid.
A.4 /ISAPI/Image
A.4.1 /ISAPI/Image/channels
Operations about image configuration of all channels.
244
Intelligent Security API (General) Developer Guide
Request None.
Response Succeeded: XML_ImageChannellist
Failed: XML_ResponseStatus
Table A-231 PUT /ISAPI/Image/channels
Method GET
Description Set image parameters of all channels.
Query None.
Request XML_ImageChannellist
Response XML_ResponseStatus
A.4.2 /ISAPI/Image/channels/<ID>
Operations about image configuration of a specific channel.
Remarks
The <ID> in the request URI refers to the channel ID.
245
Intelligent Security API (General) Developer Guide
A.4.3 /ISAPI/Image/channels/<ID>/BLC
Operations about BLC (Backlight Compensation) configuration of a specific channel.
Remarks
The <ID> in the request URI refers to the channel ID.
A.4.4 /ISAPI/Image/channels/<ID>/capabilities
Get image configuration capability of a specific channel.
246
Intelligent Security API (General) Developer Guide
Failed: XML_ResponseStatus
Remarks
The <ID> in the request URI refers to the channel No.
A.4.5 /ISAPI/Image/channels/<ID>/capturemode
Operations about video input mode configuration of a specific channel.
Remarks
The <ID> in the request URI refers to the channel ID.
A.4.6 /ISAPI/Image/channels/<ID>/color
Operations about the image adjustment parameters of a specific channel.
247
Intelligent Security API (General) Developer Guide
Query None.
Request None.
Response Succeeded: XML_Color
Failed: XML_ResponseStatus
Table A-240 PUT /ISAPI/Image/channels/<ID>/color
Method PUT
Description Set the image adjustment parameters of a specific channel.
Query None.
Request XML_Color
Response XML_ResponseStatus
Remarks
The <ID> in the request URI refers to the channel No.
A.4.7 /ISAPI/Image/channels/<ID>/color/capabilities
Get the image adjustment capability of a specified channel.
Remarks
The <ID> in the request URI refers to the channel No.
A.4.8 /ISAPI/Image/channels/<ID>/corridor
Operations about image rotate mode configuration of a specific channel.
248
Intelligent Security API (General) Developer Guide
Remarks
The <ID> in the request URI refers to the channel ID.
A.4.9 /ISAPI/Image/channels/<ID>/dehaze
Operations about defog mode configuration of a specific channel.
249
Intelligent Security API (General) Developer Guide
Remarks
The <ID> in the request URI refers to the channel ID.
A.4.10 /ISAPI/Image/channels/<ID>/EPTZ
Get or set the e-PTZ configuration.
Remarks
The <ID> in the request URI refers to the channel No.
250
Intelligent Security API (General) Developer Guide
A.4.11 /ISAPI/Image/channels/<ID>/EPTZ/mode/capabilities?format=json
Get the capability of switching e-PTZ mode.
Remarks
The <ID> in the request URI refers to the channel No.
A.4.12 /ISAPI/Image/channels/<ID>/EPTZ/mode?format=json
Get or set the configuration for switching e-PTZ mode.
251
Intelligent Security API (General) Developer Guide
Request JSON_EPTZMode
Response JSON_ResponseStatus
Remarks
The <ID> in the request URI refers to the channel No.
A.4.13 /ISAPI/Image/channels/<ID>/exposure
Operations about exposure mode configuration of a specific channel.
Remarks
The <ID> in the request URI refers to the channel ID.
A.4.14 /ISAPI/Image/channels/<ID>/focusConfiguration
Get or set the focus parameters of a specified channel.
252
Intelligent Security API (General) Developer Guide
A.4.15 /ISAPI/Image/channels/<ID>/focusConfiguration/capabilities
Get the focus configuration capability.
Remarks
The <ID> in the request URI refers to the channel No.
A.4.16 /ISAPI/Image/channels/<ID>/focusConfiguration/status?format=json
Get the focus status.
253
Intelligent Security API (General) Developer Guide
A.4.17 /ISAPI/Image/channels/<ID>/gain
Operations about gain configuration in exposure of a specific channel.
Remarks
• The <ID> in the request URI refers to the channel ID.
• PUT method is only valid when the node <ExposureType> in the message XML_Exposure is set
to "GainFirst".
254
Intelligent Security API (General) Developer Guide
A.4.18 /ISAPI/Image/channels/<ID>/imageCap
Get the image capability of a specific channel.
A.4.19 /ISAPI/Image/channels/<ID>/ImageFlip
Operations about the image flipping status of a specific channel.
Remarks
The <ID> in the request URI refers to the channel No.
255
Intelligent Security API (General) Developer Guide
A.4.20 /ISAPI/Image/channels/<ID>/imageMode/<ID>
Get the default configuration parameters of a specific image mode of a specific channel.
Remarks
This function is not supported by the traffic camera.
A.4.21 /ISAPI/Image/channels/<ID>/imageModes
Get the default image mode parameters of a specific channel.
Remarks
• This API is used to get default image mode configuration parameters. For different scenes, you
are recommended to set different image mode parameters for the device.
• The image mode is not supported by the traffic camera.
A.4.22 /ISAPI/Image/channels/<ID>/IrcutFilter
Operations about day/night auto switch configuration of a specific channel.
256
Intelligent Security API (General) Developer Guide
Remarks
The <ID> in the request URI refers to the channel ID.
A.4.23 /ISAPI/Image/channels/<ID>/ISPMode
Operations about the day/night mode configuration of a specific channel.
257
Intelligent Security API (General) Developer Guide
Remarks
The <ID> in the request URI refers to the channel No.
A.4.24 /ISAPI/Image/channels/<ID>/lensDistortionCorrection
Get or set parameters of image distortion correction.
Remarks
The <ID> in the request URI refers to the video input channel ID.
258
Intelligent Security API (General) Developer Guide
A.4.25 /ISAPI/Image/channels/<ID>/lensDistortionCorrection/capabilities
Get capability of image distortion correction.
Remarks
The <ID> in the request URI refers to the video input channel ID.
A.4.26 /ISAPI/Image/channels/<ID>/mountingScenario
Operations about the mounting scenario mode of a camera.
259
Intelligent Security API (General) Developer Guide
Remarks
• The <ID> in the request URI refers to channel ID.
• The image parameters should be obtained again when mounting scenario mode changes.
A.4.27 /ISAPI/Image/channels/<ID>/mountingScenario/capabilities
Get the capability of configurations of mounting scenario mode.
Remarks
The <ID> in the request URI refers to channel ID.
A.4.28 /ISAPI/Image/channels/<ID>/noiseReduce
Operations about 3D DNR (Digital Noise Reduction) configuration in auto mode of a specific
channel.
260
Intelligent Security API (General) Developer Guide
Remarks
The <ID> in the request URI refers to the channel ID.
A.4.29 /ISAPI/Image/channels/<ID>/Palettes
Get or set the palettes parameters.
A.4.30 /ISAPI/Image/channels/<ID>/powerLineFrequency
Operations about image standard configuration of a specific channel.
261
Intelligent Security API (General) Developer Guide
Remarks
The <ID> in the request URI refers to the channel ID.
A.4.31 /ISAPI/Image/channels/<ID>/regionalFocus
Focus on a specific region during live view.
Remarks
The <ID> in the URI is the channel ID.
262
Intelligent Security API (General) Developer Guide
A.4.32 /ISAPI/Image/channels/<ID>/reset
Reset the image parameters of a specific channel.
Remarks
The <ID> in the request URI refers to the channel ID.
A.4.33 /ISAPI/Image/channels/<ID>/restore
Restore the image parameters of a specific channel to default settings.
Remarks
The <ID> in the request URI refers to the channel ID.
A.4.34 /ISAPI/Image/channels/<ID>/sharpness
Operations about the sharpness parameters of s specific channel.
263
Intelligent Security API (General) Developer Guide
Remarks
The <ID> in the request URI refers to the channel ID.
A.4.35 /ISAPI/Image/channels/<ID>/shutter
Operations about shutter configuration in exposure of a specific channel.
264
Intelligent Security API (General) Developer Guide
Remarks
• The <ID> in the request URI refers to the channel ID.
• PUT method is only valid when the node <ExposureType> in the message XML_Exposure is set
to "ShutterFirst".
A.4.36 /ISAPI/Image/channels/<ID>/supplementLight
Get or set supplement light parameters by channel.
Remarks
The <ID> in the request URI refers to the channel ID.
265
Intelligent Security API (General) Developer Guide
A.4.37 /ISAPI/Image/channels/<ID>/supplementLight/capabilities
Get supplement light configuration capability by channel.
Remarks
The <ID> in the request URI refers to the channel ID.
A.4.38 /ISAPI/Image/channels/<ID>/targetEnhancement
Get or set the target enhancement parameters.
266
Intelligent Security API (General) Developer Guide
Request XML_TargetEnhancement
Response XML_ResponseStatus
Remarks
• This URI is used in combination with URI /ISAPI/Image/channels/<ID> .
• The <ID> in the request URI refers to the channel No.
A.4.39 /ISAPI/Image/channels/<ID>/targetEnhancement/capabilities
Get the target enhancement capability.
Remarks
The <ID> in the request URI refers to the channel No.
A.4.40 /ISAPI/Image/channels/<ID>/tempRange
Operation about temperature range parameters of the specified channel.
267
Intelligent Security API (General) Developer Guide
Remarks
The <ID> in the request URI refers to the channel No.
A.4.41 /ISAPI/Image/channels/<ID>/tempRange/capabilities
Get the temperature range configuration capability of a specified channel.
Remarks
The <ID> in the request URI refers to the channel No.
A.4.42 /ISAPI/Image/channels/<ID>/WDR
Operations about the WDR (Wide Dynamic Range) configuration of a specific channel.
268
Intelligent Security API (General) Developer Guide
Remarks
The <ID> in the request URI refers to the channel ID.
A.4.43 /ISAPI/Image/channels/<ID>/whiteBalance
Operations about the white balance parameters of s specific channel.
269
Intelligent Security API (General) Developer Guide
Remarks
The <ID> in the request URI refers to the channel No.
A.4.44 /ISAPI/Image/channels/capabilities
Get the complete video and image configuration capability of all channels.
A.4.45 /ISAPI/Image/channels/imageModes
Get the configuration parameters of all image modes of all channels.
270
Intelligent Security API (General) Developer Guide
Request None.
Response Succeeded: XML_ImageModeList
Failed: XML_ResponseStatus
A.4.46 /ISAPI/Image/channels/imageModes/<ID>
Get the configuration parameters of all image modes of a specific channel.
Remarks
The <ID> in the request URI refers to the channel No. which is of type int.
A.5 /ISAPI/MasterSlaveTracking
A.5.1 /ISAPI/MasterSlaveTracking/capabilities
Get the master-slave tracking capability.
271
Intelligent Security API (General) Developer Guide
A.5.2 /ISAPI/MasterSlaveTracking/channels/<ID>/slaveCamera/<ID>
Operations about the basic configuration of the PTZ camera.
Remarks
The first <ID> in the request URI refers to the channel No. The second <ID> in the request URI
refers to the PTZ camera ID which ranges from 1 to 4.
A.5.3 /ISAPI/MasterSlaveTracking/channels/<ID>/slaveCamera/<ID>/tracking
Operations about the tracking configuration of the PTZ camera.
272
Intelligent Security API (General) Developer Guide
Remarks
The first <ID> in the request URI refers to the channel No. The second <ID> in the request URI
refers to the PTZ camera ID.
A.5.4 /ISAPI/MasterSlaveTracking/channels/<ID>/slaveCamera/<ID>/trackingRatio
Set the tracking zoom ratio for the PTZ camera.
A.5.5 /ISAPI/MasterSlaveTracking/channels/<ID>/slaveCamera/capabilities
Get the configuration capability of basic parameters for the PTZ camera.
273
Intelligent Security API (General) Developer Guide
Request None.
Response XML_Cap_SalveCamera
Remarks
The <ID> in the request URI refers to the channel No.
A.5.6 /ISAPI/MasterSlaveTracking/channels/<ID>/slaveCameraStatus
Get the connection status of the PTZ camera.
Remarks
The <ID> in the request URI refers to the PTZ camera ID.
A.5.7 /ISAPI/MasterSlaveTracking/channels/<ID>/tracking/capabilities
Get the tracking configuration capability of the PTZ camera.
274
Intelligent Security API (General) Developer Guide
A.5.8 /ISAPI/MasterSlaveTracking/linkedTracking/capabilities?format=json
Get capability of configuring advanced parameters of linked tracking capture.
A.5.9 /ISAPI/MasterSlaveTracking/linkedTracking?format=json
Get or set the advanced parameters of linked tracking capture.
275
Intelligent Security API (General) Developer Guide
A.6 /ISAPI/SDT
A.6.1 /ISAPI/SDT/Management/capabilities?format=json
Get the intelligent management capability of the device.
A.6.2 /ISAPI/SDT/Management/IntelligentSearch/capabilities?format=json
Get intelligent search capability.
A.6.3 /ISAPI/SDT/Management/IntelligentSearch?format=json
Start intelligent search.
276
Intelligent Security API (General) Developer Guide
A.7 /ISAPI/PTZCtrl
A.7.1 /ISAPI/PTZCtrl/channels/<ID>
Get or set the single PTZ control parameters.
Remarks
The <ID> in the URI refers to the channel No.
277
Intelligent Security API (General) Developer Guide
A.7.2 /ISAPI/PTZCtrl/channels/<ID>/auxcontrols
Get or set all PTZ auxiliaries status.
Remarks
The <ID> in the URI refers to the channel No.
A.7.3 /ISAPI/PTZCtrl/channels/<ID>/auxcontrols/<ID>
Get or set the specified PTZ auxiliary status.
278
Intelligent Security API (General) Developer Guide
Failed: XML_ResponseStatus
Table A-323 PUT /ISAPI/PTZCtrl/channels/<ID>/auxcontrols/<ID>
Method PUT
Description Set the specified PTZ auxiliary status.
Query None.
Request XML_PTZAux
Response XML_ResponseStatus
Remarks
• The first <ID> in the URI refers to the channel number.
• The second <ID> in refers to the auxiliary number, e.g., when there is only one wiper, the second
<ID> is "1", when there are multiple wipers, the second <ID> varies according to the
requirement.
A.7.4 /ISAPI/PTZCtrl/channels/<ID>/capabilities
Get the PTZ control capabilities.
A.7.5 /ISAPI/PTZCtrl/channels/<ID>/EagleFocusing/auto/capabilities?format=json
Get the capability of rapid focus automatic calibration.
279
Intelligent Security API (General) Developer Guide
Remarks
The <ID> in the URI refers to the channel ID.
A.7.6 /ISAPI/PTZCtrl/channels/<ID>/EagleFocusing/auto?format=json
Automatically calibrate for rapid focus.
Remarks
The <ID> in the URI refers to the channel ID.
A.7.7 /ISAPI/PTZCtrl/channels/<ID>/EagleFocusing/capabilities
Get the rapid focus capability.
280
Intelligent Security API (General) Developer Guide
Remarks
The <ID> in the URI refers to the channel ID.
A.7.8 /ISAPI/PTZCtrl/channels/<ID>/GPS?format=json
Control the device turn to corresponding place according to applied GPS information.
Remarks
The <ID> in the URI refers to channel No.
A.7.9 /ISAPI/PTZCtrl/channels/<ID>/gyroVerify/capabilities?format=json
Get the gyroscope calibration capability.
281
Intelligent Security API (General) Developer Guide
Remarks
The <ID> in the URI refers to channel No.
A.7.10 /ISAPI/PTZCtrl/channels/<ID>/gyroVerify?format=json
Set the gyroscope calibration parameters.
Remarks
The <ID> in the URI refers to channel No.
A.7.11 /ISAPI/PTZCtrl/channels/<ID>/lensCorrection/capabilities?format=json
Get the lens correction capability.
282
Intelligent Security API (General) Developer Guide
A.7.12 /ISAPI/PTZCtrl/channels/<ID>/lensCorrection?format=json
Get or set the configuration parameters of lens correction.
A.7.13 /ISAPI/PTZCtrl/channels/<ID>/lockPTZ
Operations about locking PTZ of a specific channel.
283
Intelligent Security API (General) Developer Guide
A.7.14 /ISAPI/PTZCtrl/channels/<ID>/maxelevation
Get or set the max. tilt-angle parameters.
284
Intelligent Security API (General) Developer Guide
Remarks
The <ID> in the URI indicates the channel ID.
A.7.15 /ISAPI/PTZCtrl/channels/<ID>/maxelevation/capabilities
Get the max. tilt-angle capability.
Remarks
The <ID> in the URI indicates the channel ID.
A.7.16 /ISAPI/PTZCtrl/channels/<ID>/moveAutoTracking?format=json
Get or set moving object tracking status.
285
Intelligent Security API (General) Developer Guide
Request JSON_MoveAutoTracking
Response JSON_ResponseStatus
Remarks
The <ID> in the request URI refers to the PTZ channel ID.
A.7.17 /ISAPI/PTZCtrl/channels/<ID>/onepushfoucs/reset
Initialize the lens.
Remarks
The <ID> in the request URI refers to the channel No.
A.7.18 /ISAPI/PTZCtrl/channels/<ID>/parkaction
Get or set the parking parameters.
286
Intelligent Security API (General) Developer Guide
A.7.19 /ISAPI/PTZCtrl/channels/<ID>/parkaction/capabilities
Get the parking configuration capability.
A.7.20 /ISAPI/PTZCtrl/Channels/<ID>/position3D
Control 3D positioning.
Remarks
The <ID> in the request URI refers to channel ID.
287
Intelligent Security API (General) Developer Guide
A.7.21 /ISAPI/PTZCtrl/channels/<ID>/presets
Operations about all presets' configurations.
Remarks
The <ID> in the URI is the camera ID.
A.7.22 /ISAPI/PTZCtrl/channels/<ID>/presets/<ID>
Get or set the a preset's parameters, or delete a preset.
288
Intelligent Security API (General) Developer Guide
A.7.23 /ISAPI/PTZCtrl/channels/<ID>/PTZOSDDisplay
Get or set the on-screen display parameters of the PTZ status.
289
Intelligent Security API (General) Developer Guide
Request None.
Response Succeeded: XML_PTZOSDDisplay
Failed: XML_ResponseStatus
Table A-353 PUT /ISAPI/PTZCtrl/channels/<ID>/PTZOSDDisplay
Method PUT
Description Set the on-screen display parameters of the PTZ status.
Query None.
Request XML_PTZOSDDisplay
Response XML_ResponseStatus
Remarks
The <ID> in the request URI refers to the PTZ channel No.
A.7.24 /ISAPI/PTZCtrl/channels/<ID>/save
Get and save the PTZ position information of the current channel.
A.7.25 /ISAPI/PTZCtrl/channels/<ID>/save?format=json
Save the PTZ position information of the current channel.
290
Intelligent Security API (General) Developer Guide
Remarks
The <ID> in the request URI refers to the PTZ channel No.
A.7.26 /ISAPI/PTZCtrl/channels/<ID>/saveptzpoweroff
Get or set parameters of power-off memory.
291
Intelligent Security API (General) Developer Guide
A.7.27 /ISAPI/PTZCtrl/channels/<ID>/status
Get the PTZ status of a specific channel of the device.
A.7.28 /ISAPI/PTZCtrl/channels/<ID>/trackingRatio/capabilities?format=json
Get the configuration capability of tracking parameters.
A.7.29 /ISAPI/PTZCtrl/channels/<ID>/trackingRatio?format=json
Get or set the tracking parameters.
292
Intelligent Security API (General) Developer Guide
A.7.30 /ISAPI/PTZCtrl/channels/<ID>/zoomFocus
Operations about zoom and focus coordinates configuration for zoom camera module.
Remarks
The <ID> in the request URI refers to the channel ID.
293
Intelligent Security API (General) Developer Guide
A.8 /ISAPI/Security
A.8.1 /ISAPI/Security/adminAccesses
Get or set parameters of all protocols supported by device.
A.8.2 /ISAPI/Security/adminAccesses/<ID>
Get or set the parameters of a specific protocol that supported by device.
294
Intelligent Security API (General) Developer Guide
Failed: XML_ResponseStatus
Table A-367 PUT /ISAPI/Security/adminAccesses/<ID>
Method PUT
Description Set the parameters of a specific protocol that supported by device.
Query None.
Request XML_AdminAccessProtocol
Response XML_ResponseStatus
Remarks
The <ID> in the request URI refers to the protocol ID.
A.8.3 /ISAPI/Security/adminAccesses/capabilities
Get device protocol capability.
A.8.4 /ISAPI/Security/advanced?format=json
Get or set advacned parameters of security.
295
Intelligent Security API (General) Developer Guide
Request None.
Response Succeeded: JSON_SecurityAdvanced
Failed: JSON_ResponseStatus
Table A-370 PUT /ISAPI/Security/advanced?format=json
Method PUT
Description Set advanced parameters of security.
Query format: determine the format of request or response message.
Request JSON_SecurityAdvanced
Response JSON_ResponseStatus
A.8.5 /ISAPI/Security/capabilities
Get the security capability of the device.
A.8.6 /ISAPI/Security/certificate/select/<functinName>?format=json
Get or set the parameters of selecting the certificate.
296
Intelligent Security API (General) Developer Guide
Request None.
Response Succeeded: JSON_CertificateSelect
Failed: JSON_ResponseStatus
Table A-373 PUT /ISAPI/Security/certificate/select/<functinName>?format=json
Method PUT
Description Set the parameters of selecting the certificate.
Query format: determine the format of request or response message.
Request JSON_CertificateSelect
Response JSON_ResponseStatus
Remarks
The <functinName> in the request URI refers to the function name.
A.8.7 /ISAPI/Security/certificate/select/capabilities?format=json
Get the capability of selecting the certificate.
A.8.8 /ISAPI/Security/challenge
Get the random challenge strings.
297
Intelligent Security API (General) Developer Guide
Query None.
Request XML_PublicKey
Response XML_Challenge
A.8.9 /ISAPI/Security/CommuMode/capabilities?format=json
Get the configuration capability of the security mode level of the private protocol.
A.8.10 /ISAPI/Security/CommuMode?format=json
Operations about the configuration of the security mode level of the private protocol.
298
Intelligent Security API (General) Developer Guide
A.8.11 /ISAPI/Security/deviceCertificate
Import network certificate to device.
Remarks
The imported certificate type is determined by "Content-type" in binary certificate data, which
contains "x-x509-ca-cert", "x-x509-client-cert", and "x-x509-client-key".
A.8.12 /ISAPI/Security/deviceCertificate/capabilities?format=json
Get the CA (Certificate Authority) certificate capability.
299
Intelligent Security API (General) Developer Guide
A.8.13 /ISAPI/Security/deviceCertificate/certificateRevocation/capabilities?
format=json
Get the configuration capability of the certificate expiry alarm.
A.8.14 /ISAPI/Security/deviceCertificate/certificateRevocation?format=json
Get or set the configuration of certificate expiry alarm.
300
Intelligent Security API (General) Developer Guide
A.8.15 /ISAPI/Security/deviceCertificate/certificates/<customID>?format=json
Get or delete the information of a specific device certificate.
Remarks
The <customID> in the request URI refers to the custom certificate ID.
A.8.16 /ISAPI/Security/deviceCertificate/certificates/<ID>
Delete the certificate of a specific device.
301
Intelligent Security API (General) Developer Guide
Remarks
The <ID> in the request URI is the device ID returned when searching certificate information.
A.8.17 /ISAPI/Security/deviceCertificate/certificates/<ID>/recreate?format=json
Regenerate a specific abnormal certificate.
Remarks
• The <ID> in the request URI refers to the certificate ID.
• This URI is only supported by HTTPS certificate, and it is available when the certificate exception
is detected.
A.8.18 /ISAPI/Security/deviceCertificate/certificates/<ID>/status?format=json
Get the status of a specific certificate.
302
Intelligent Security API (General) Developer Guide
Remarks
The <ID> in the request URI is the certificate ID, which is generated and returned by device.
A.8.19 /ISAPI/Security/deviceCertificate/certificates/capabilities?format=json
Get certificate search capability.
A.8.20 /ISAPI/Security/deviceCertificate/certificates/recreate?format=json
Regenerate all abnormal certificates.
303
Intelligent Security API (General) Developer Guide
Remarks
This URI is only supported by HTTPS certificate, and it is available when the certificate exception is
detected.
A.8.21 /ISAPI/Security/deviceCertificate/certificates/status?format=json
Get status of all certificates.
A.8.22 /ISAPI/Security/deviceCertificate/certificates?format=json
Get device certificate information in a batch.
304
Intelligent Security API (General) Developer Guide
Request None.
Response Succeeded: JSON_DeviceCertificates
Failed: JSON_ResponseStatus
A.8.23 /ISAPI/Security/deviceCertificate/selfSignCert
Export the device's self-signed certificate.
A.8.24 /ISAPI/Security/deviceCertificate?customID=
Import a CA (Certificate Authority) certificate to the device.
305
Intelligent Security API (General) Developer Guide
Remarks
• When importing CA certificate by calling this URI, the function of CA certificate will not be
distinguished. The CA certificate and its function will be bound together afterward.
• The imported certificate type is determined by "Content-type" in the certificate data, which
contains "x-x509-ca-cert" (CA certificate (root certificate)), "x-x509-client-cert" (client certificate),
and "x-x509-client-key" (client password).
A.8.25 /ISAPI/Security/doubleVerification/users/<ID>?format=json
Operations about a specified double verification user.
306
Intelligent Security API (General) Developer Guide
Request JSON_User
Response JSON_ResponseStatus
Table A-397 DELETE /ISAPI/Security/doubleVerification/users/<ID>?format=json
Method DELETE
Description Delete a double verification user.
Query format: determine the format of request or response message.
security: the version No. of encryption scheme. When security does
not exist, it indicates that the data is not encrypted; when security is
1, it indicates that the nodes of sensitive information in the message
are encrypted in AES128 CBC mode; when security is 2, it indicates
that the nodes of sensitive information in the message are encrypted
in AES256 CBC mode.
iv: the initialization vector, and it is required when security is 1 or 2.
Request None.
Response JSON_ResponseStatus
Remarks
The <ID> in the URI indicates the user ID.
A.8.26 /ISAPI/Security/doubleVerification/users/capabilities?format=json
Get the double verification configuration capability.
A.8.27 /ISAPI/Security/doubleVerification/users?format=json
Get all double verification users and add a double verification user.
307
Intelligent Security API (General) Developer Guide
A.8.28 /ISAPI/Security/doubleVerification/UsersPermission/<ID>?format=json
Get and set the permission of double verification user.
308
Intelligent Security API (General) Developer Guide
Remarks
The <ID> in the URI indicates the user ID.
A.8.29 /ISAPI/Security/doubleVerification/UsersPermission/capabilities?
format=json
Get the capability of permission configuration for double verification user.
309
Intelligent Security API (General) Developer Guide
A.8.30 /ISAPI/Security/doubleVerification?format=json
Get the capability of double verification enabling configuration.
A.8.31 /ISAPI/Security/email/parameter/capabilities?format=json
Get recovery email configuration capability (only available in LAN and for admin user).
310
Intelligent Security API (General) Developer Guide
Request None.
Response JSON_SecurityEmailCap
A.8.32 /ISAPI/Security/email/parameter?format=json
Operations about recovery email configuration (only available for LAN and for admin user).
311
Intelligent Security API (General) Developer Guide
A.8.33 /ISAPI/Security/email/qrCode?format=json
Get the QR code of the configured recovery email (only available for LAN and for admin user).
A.8.34 /ISAPI/Security/emailCertification?format=json
Reset password by the verification code via recovery email (only available for LAN and for admin
user).
Remarks
For the encryption of passwords and security answers, first transform them by UTF8, and then
transcode them by BASE64, finally, encrypt them by AES128CB.
312
Intelligent Security API (General) Developer Guide
A.8.35 /ISAPI/Security/extern/capabilities
Get capability of other security configuration.
A.8.36 /ISAPI/Security/illegalLoginLock
Get or set locking parameters of illegal login.
313
Intelligent Security API (General) Developer Guide
A.8.37 /ISAPI/Security/loginLinkNum?format=json
Get or set maximum number of logged in accounts.
A.8.38 /ISAPI/Security/onlineUser
Get the information of online users.
314
Intelligent Security API (General) Developer Guide
Request None.
Response Succeeded: XML_OnlineUserList
Failed: XML_ResponseStatus
A.8.39 /ISAPI/Security/questionConfiguration
Get or set device security questions.
A.8.40 /ISAPI/Security/RTSPCertificate
Get or set parameters of devices' RTSP authentication mode.
315
Intelligent Security API (General) Developer Guide
A.8.41 /ISAPI/Security/RTSPCertificate/capabilities
Get the capability of devices' RTSP authentication mode.
A.8.42 /ISAPI/Security/serverCertificate/capabilities?format=json
Get the client/server certificate capability.
316
Intelligent Security API (General) Developer Guide
A.8.43 /ISAPI/Security/serverCertificate/certificate
Get, upload, and delete device certificate information.
317
Intelligent Security API (General) Developer Guide
A.8.44 /ISAPI/Security/serverCertificate/certificate?customID=
Import the client/server certificate to the device.
Remarks
• When the node <certificateMode> in the request message XML_CertificateReq_ImportCert is
set to "signingRequest", it means importing a self-signed certificate to the device.
• When the node <certificateMode> in the request message XML_CertificateReq_ImportCert is
set to "privateKey", it means importing the certificate along with the private key by the following
two steps.
1. Import the message XML_CertificateReq_ImportCert and the certificate file.
318
Intelligent Security API (General) Developer Guide
Note
The node <dataType> in the message XML_CertificateReq_ImportCert should be set to
"certificate".
2. Import the message XML_CertificateReq_ImportCert and the private key.
Note
- The node <dataType> in the message XML_CertificateReq_ImportCert should be set to
"privateKey".
- This step depends on the first step. If exception occurs, the device will return error.
A.8.45 /ISAPI/Security/serverCertificate/certificates?format=json
Get the information of multiple client/server certificates in a batch.
A.8.46 /ISAPI/Security/serverCertificate/certificates/<customID>?format=json
Get or delete the information of a specific client/server certificate.
319
Intelligent Security API (General) Developer Guide
Remarks
The <customID> in the request URI refers to the custom certificate ID.
A.8.47 /ISAPI/Security/serverCertificate/certSignReq
Get signature request information, generate, and delete signature request of device certificate.
320
Intelligent Security API (General) Developer Guide
A.8.48 /ISAPI/Security/serverCertificate/certSignReq?customID=
Create a PKCS#10 signature request of the client/server certificate.
A.8.49 /ISAPI/Security/serverCertificate/downloadCertSignReq
Download the certificate of authentication client.
321
Intelligent Security API (General) Developer Guide
A.8.50 /ISAPI/Security/serverCertificate/downloadCertSignReq?customID=
Export the client/server certificate.
Remarks
The returned certificate data should be either formatted exactly according to PKCS#10 standard or
a PKCS#10 file encoded in PEM format.
A.8.51 /ISAPI/Security/serverCertificate/selfSignCert?customID=
Get or generate the PKCS#10 signature request of the client/server self-signed certificate.
322
Intelligent Security API (General) Developer Guide
Failed: XML_ResponseStatus
Table A-437 PUT /ISAPI/Security/serverCertificate/selfSignCert?customID=
Method PUT
Description Generate the PKCS#10 signature request of the client/server self-
signed certificate.
Query customID: custom certificate ID, string, it consists of digits and
characters.
Request XML_CertificateReq
Response XML_ResponseStatus
A.8.52 /ISAPI/Security/userCheck
Log in to the device by digest.
A.8.53 /ISAPI/Security/UserPermission
Operations about the user permission of the device.
323
Intelligent Security API (General) Developer Guide
Request None.
Response Succeeded: XML_UserPermissionList
Failed: XML_ResponseStatus
Table A-440 PUT /ISAPI/Security/UserPermission
Method PUT
Description Set the user permission of the device.
Query None.
Request XML_UserPermissionList
Response XML_ResponseStatus
A.8.54 /ISAPI/Security/UserPermission/<ID>
Operations about a specific user's permission.
A.8.55 /ISAPI/Security/UserPermission/<ID>/localPermission
Get and set the local permission of a specified user.
324
Intelligent Security API (General) Developer Guide
A.8.56 /ISAPI/Security/UserPermission/<ID>/remotePermission
Get and set the remote permission of a specified user.
325
Intelligent Security API (General) Developer Guide
A.8.57 /ISAPI/Security/UserPermission/adminCap
Get the user permission capability of the administrator.
Remarks
Only permissions that can be configured by the admin user should be returned.
A.8.58 /ISAPI/Security/UserPermission/anonymouslogin
Get or assign permission of the anonymous user.
326
Intelligent Security API (General) Developer Guide
Request XML_anonymouslogin
Response XML_ResponseStatus
A.8.59 /ISAPI/Security/UserPermission/capabilities
Get the configuration capability of all users' permissions.
A.8.60 /ISAPI/Security/UserPermission/operatorCap
Get the user permission capability of the operator.
Remarks
Only permissions that can be configured by the operator should be returned.
327
Intelligent Security API (General) Developer Guide
A.8.61 /ISAPI/Security/UserPermission/viewerCap
Get the user permission capability of the viewer.
A.8.62 /ISAPI/Security/users
Get, set, or delete information of all users; add a new user.
328
Intelligent Security API (General) Developer Guide
Query security: the version No. of encryption scheme. When security does
not exist, it indicates that the data is not encrypted; when security is
1, it indicates that the nodes of sensitive information in the message
are encrypted in AES128 CBC mode; when security is 2, it indicates
that the nodes of sensitive information in the message are encrypted
in AES256 CBC mode.
iv: the initialization vector, and it is required when security is 1 or 2.
Request XML_UserList
Response XML_ResponseStatus
Table A-455 DELETE /ISAPI/Security/users
Method DELETE
Description Delete information of all users.
Query None
Request None
Response XML_ResponseStatus
Table A-456 POST /ISAPI/Security/users
Method POST
Description Add a user。
Query security: the version No. of encryption scheme. When security does
not exist, it indicates that the data is not encrypted; when security is
1, it indicates that the nodes of sensitive information in the message
are encrypted in AES128 CBC mode; when security is 2, it indicates
that the nodes of sensitive information in the message are encrypted
in AES256 CBC mode.
iv: the initialization vector, and it is required when security is 1 or 2.
Request XML_User
Response XML_ResponseStatus
Remarks
• A default account "admin" must be provided with the administrator permission and it cannot be
deleted.
• Passwords can only be uploaded and cannot be displayed when getting the user list of the
device.
• The user ID should be returned when adding users to the user list.
Example
Sample Code for Adding User
329
Intelligent Security API (General) Developer Guide
HTTP/1.1 200 OK
Date: Tue, 14 Mar 2017 20:24:31 GMT
Server: App-webs/
Connection: close
Content-Length: 288
Content-Type: application/xml
Example
Sample Code for Setting User Permission
330
Intelligent Security API (General) Developer Guide
HTTP/1.1 200 OK
Date: Tue, 14 Mar 2017 20:24:31 GMT
Server: App-webs/
Connection: close
331
Intelligent Security API (General) Developer Guide
Content-Length: 288
Content-Type: application/xml
A.8.63 /ISAPI/Security/users/<ID>
Get, set, or delete information of a specific user.
332
Intelligent Security API (General) Developer Guide
Request XML_User
Response XML_ResponseStatus
Table A-459 DELETE /ISAPI/Security/users/<ID>
Method DELETE
Description Delete information of a specific user.
Query security: the version No. of encryption scheme. When security does
not exist, it indicates that the data is not encrypted; when security is
1, it indicates that the nodes of sensitive information in the message
are encrypted in AES128 CBC mode; when security is 2, it indicates
that the nodes of sensitive information in the message are encrypted
in AES256 CBC mode.
iv: the initialization vector, and it is required when security is 1 or 2.
loginPassword: encrypted administrator password.
Request None
Response XML_ResponseStatus
Remarks
• The <ID> in the request URI refer to user ID.
• The administrator account cannot be deleted.
A.8.64 /ISAPI/Security/users/<ID>/capabilities
Get the configuration capability of a specific user.
333
Intelligent Security API (General) Developer Guide
Request None.
Response Succeeded: XML_Cap_User
Failed: XML_ResponseStatus
Remarks
The <ID> in the request URI refers to the user ID.
A.8.65 /ISAPI/Security/webCertificate
Get or set the certificate type parameters of web service.
A.8.66 /ISAPI/SecurityCP/ReportCenterCfg/capabilities?format=json
Get the configuration capability of the report uploading method.
334
Intelligent Security API (General) Developer Guide
A.8.67 /ISAPI/SecurityCP/ReportCenterCfg/<ID>?format=json
Operations about the configuration of the report uploading method.
Remarks
The <ID> in the request URI refers to the center group No.
A.9 /ISAPI/Smart
A.9.1 /ISAPI/Smart/capabilities
Get the capability of smart devices.
335
Intelligent Security API (General) Developer Guide
A.9.2 /ISAPI/Smart/AudioDetection/channels/<ID>
Get or set the audio detection parameters of a specific channel.
A.9.3 /ISAPI/Smart/AudioDetection/channels/<ID>/capabilities
Get the configuration capability of audio detection of a specific channel.
336
Intelligent Security API (General) Developer Guide
A.9.4 /ISAPI/Smart/AudioDetection/channels/<ID>/status
Get the audio strength.
A.9.5 /ISAPI/Smart/storageDetection/rwlock
Get or set the read & write lock parameters of storage health detection.
337
Intelligent Security API (General) Developer Guide
Request None.
Response Succeeded: XML_RWLock
Failed: XML_ResponseStatus
Table A-472 PUT /ISAPI/Smart/storageDetection/rwlock
Method PUT
Description Set the read & write lock parameters of storage health detection.
Query None.
Request XML_RWLock
Response XML_ResponseStatus
A.9.6 /ISAPI/Smart/storageDetection/rwlock/capabilities
Get the configuration capability of read & write lock of storage health detection.
A.9.7 /ISAPI/Smart/storageDetection
Get the storage health detection parameters.
338
Intelligent Security API (General) Developer Guide
Request None.
Response Succeeded: XML_StorageDetection
Failed: XML_ResponseStatus
A.10 /ISAPI/Snapshot
A.10.1 /ISAPI/Snapshot/channels
Get or set the parameters of multiple channels for capturing pictures by schedule.
A.10.2 /ISAPI/Snapshot/channels/<ID>
Get or set the parameters of a specific channel for capturing pictures by schedule.
339
Intelligent Security API (General) Developer Guide
Remarks
The <ID> in the request URL refers to the channel No.
A.10.3 /ISAPI/Snapshot/channels/<ID>/capabilities
Get the configuration capability of capturing pictures by schedule.
340
Intelligent Security API (General) Developer Guide
A.11 /ISAPI/Streaming
A.11.1 /ISAPI/Streaming/channels
Operations about the encoding configuration of multiple channels.
341
Intelligent Security API (General) Developer Guide
Request None.
Response XML_ResponseStatus
A.11.2 /ISAPI/Streaming/channels/<ID>
Operations about the encoding configurations of a specific channel.
Remarks
The <ID> in the URI refers to the channel ID.
Example
Interaction Example of Getting Encoding Parameters of A Specific Channel
342
Intelligent Security API (General) Developer Guide
343
Intelligent Security API (General) Developer Guide
A.11.3 /ISAPI/Streaming/channels/<ID>/capabilities
Get encoding capability of a specific channel.
Remarks
The <ID> in the URI refers to the channel ID.
Example
Interaction Example of Getting Encoding Capability of A Specific Channel
GET /ISAPI/Streaming/channels/444/capabilities HTTP/1.1
…
HTTP/1.1 200 OK
Content-Type: application/xml; charset="UTF-8"
Content-Length: ISAPI
344
Intelligent Security API (General) Developer Guide
</ControlProtocolList>
<Unicast>
<enabled opt="true,false" def="false"/>
<rtpTransportType opt="RTP/UDP,RTP/TCP"/>
</Unicast>
<Multicast>
<enabled opt="true,false" def="false"/>
<userTriggerThreshold/>
<videoDestPortNo min="0" max="65535"/>
<audioDestPortNo min="0" max="65535"/>
<destIPAddress min="8" max="16"/>
<destIPv6Address min="15" max="39"/>
<ttl min="0" max="127" def="1"/>
</Multicast>
<Security>
<enabled opt="true,false" def="false"/>
</Security>
</Transport>
<Video>
<enabled opt="true,false">true</enabled>
<videoInputChannelID opt="1,2,3,4">2</videoInputChannelID>
<videoCodecType opt="MJPEG,MPEG4">MPEG4</videoCodecType>
<videoScanType opt="interlaced,progressive">progressive</videoScanType>
<videoResolutionWidth min="0" max="640">640</videoResolutionWidth>
<videoResolutionHeight min="0" max="480">480</videoResolutionHeight>
<videoPositionX min="0" max="640">0</videoPositionX>
<videoPositionY min="0" max="480">0</videoPositionY>
<videoQualityControlType opt="CBR,VBR">CBR</videoQualityControlType>
<constantBitRate min="50" max="4000" dynamic="true">2000</constantBitRate>
<maxFrameRate opt="2500,1250,625,312,156,78,830" dynamic="true">2500</maxFrameRate>
<keyFrameInterval min="0", max="10000">1000</keyFrameInterval>
<rotationDegree opt="0,90,180,270" def="0">0</rotationDegree>
<mirrorEnabled opt="true,false" def="false">false</mirrorEnabled>
<snapShotImageType opt="JPEG" def="JPEG">JPEG</snapShotImageType>
</Video>
<Audio>
<enabled opt="true,false" def="false">false</enabled>
<audioInputChannelID opt="1,2,3,4">2</audioInputChannelID>
<audioCompressionType opt="G.726,G.711ulaw" def="G.726">G.726</audioCompressionType>
<audioBitRate opt="16,24,32,40" def="32" dynamic="true">24</audioBitRate>
<audioSamplingRate opt="8" dynamic="true">8</audioSamplingRate>
<audioResolution opt="3,4,5,6" dynamic="true"/>
</Audio>
</StreamingChannel>
A.11.4 /ISAPI/Streaming/channels/<ID>/dynamicCap
Get the dynamic encoding capability of a specific channel.
345
Intelligent Security API (General) Developer Guide
Remarks
The <ID> in the URI refers to the channel ID.
A.11.5 /ISAPI/Streaming/channels/<ID>/picture
Manually capture picture in the video stream of a specific channel.
Remarks
• The <ID> in the request URI refers to the streaming channel ID, which is equal to (channel No. ×
100 + 1). For example, if a camera only has one channel, its ID is 101.
• This URI only supports capturing picture in main stream, and only JPEG format is supported.
Example
Sample Code for Manually Capturing Picture
GET /ISAPI/Streaming/channels/1/picture HTTP/1.1
Host: 10.17.132.49
346
Intelligent Security API (General) Developer Guide
Connection: Keep-Alive
Authorization: Digest username="admin",
realm="DS-2CD2F12FWD-IWS",
nonce="4d305134517a55344d6a55365a4445324f544130597a453d",
uri="/ISAPI/Streaming/channels/1/picture",
cnonce="481bb1afa48b24e512778b084bfe4977",
nc=00000001,
response="e5670d5d9d40c522afabb11b5fa35268",
qop="auth"
HTTP/1.1 200 OK
Content-Type: image/jpeg; charset="UTF-8"
Content-Length:19991
......JFIF.............C.
.
...
.. .....'... .)10.)-,3:J>36F7,- (Binary picture data)
A.11.6 /ISAPI/Streaming/channels/<ID>/regionClip
Get or set target cropping parameters by streaming channel.
Remarks
The <ID> in the request URI refers to streaming channel ID.
347
Intelligent Security API (General) Developer Guide
A.11.7 /ISAPI/Streaming/channels/<ID>/regionClip/capabilities
Get configuration capability of target cropping by streaming channel.
Remarks
The <ID> in the request URI refers to streaming channel ID.
A.11.8 /ISAPI/Streaming/channels/<ID>/smartOverlap/capabilities?format=json
Get the capability of configuring the stream for displaying VCA rules of smart events.
Remarks
The <ID> in the request URI refers to the channel No.
348
Intelligent Security API (General) Developer Guide
A.11.9 /ISAPI/Streaming/channels/<ID>/smartOverlap?format=json
Get or set the stream parameters for displaying VCA rules of smart events.
Remarks
The <ID> in the request URI refers to the channel No.
A.11.10 /ISAPI/Streaming/channels/<ID>/status
Get the streaming or encoding status of a specific channel.
349
Intelligent Security API (General) Developer Guide
Failed: XML_ResponseStatus
Remarks
The <ID> in the request URI refers to the streaming channel ID.
A.11.11 /ISAPI/Streaming/encryption/capabilities?format=json
Get stream encryption capability.
A.11.12 /ISAPI/Streaming/encryption/secretKey?format=json
Operations about the configuration of stream encryption key.
350
Intelligent Security API (General) Developer Guide
A.11.13 /ISAPI/Streaming/encryption?format=json
Operations about the configuration of stream encryption.
351
Intelligent Security API (General) Developer Guide
A.11.14 /ISAPI/Streaming/status
Get the streaming or encoding status of all channels.
A.11.15 rtsp://<host>[:port]/ISAPI/Streaming/channels/<ID>
Get basic parameter or session information for live view, or start and stop live view.
352
Intelligent Security API (General) Developer Guide
Remarks
The <ID> in the URL is defined as (channel No.)*100+(stream type value).
channel No.
For analog channel, the No. starts from 1, and for digital channel, the No. starts from the last
analog channel No.
E.g., if the device has 16 analog channels and 16 digital channels, the analog channel No. is
between 1 and 16, and the digital channel No. is between 17 and 32.
stream type value
The stream type values contain 1, 2, and 3. 1-main stream, 2-sub-stream, 3-third stream.
E.g., if ID is 101, it indicates the main stream of channel No.1; if ID is 102, it indicates the sub-
stream of channel No. 2; if ID is 1601, it indicates the main stream of channel 16;...
A.11.16 rtsp://<host>[:port]/ISAPI/Streaming/channels/<ID>?npq=
Operations about multicast based on network protocol quality (NPQ).
353
Intelligent Security API (General) Developer Guide
Query npq: Network Protocol Quality (NPQ), this query parameter is used
to enable streaming according to NPQ and by FEC (Forward Error
Correction) method if its value is set to "fec".
Request None.
Response None.
Table A-508 SETUP rtsp://<host>[:port]/ISAPI/Streaming/channels/<ID>?npq=
Method SETUP
Description Request for getting session information for multicast based on NPQ.
Query npq: Network Protocol Quality (NPQ), this query parameter is used
to enable streaming according to NPQ and by FEC (Forward Error
Correction) method if its value is set to "fec".
Request None.
Response None.
Table A-509 PLAY rtsp://<host>[:port]/ISAPI/Streaming/channels/<ID>?npq=
Method PLAY
Description Start multicast based on NPQ.
Query npq: Network Protocol Quality (NPQ), this query parameter is used
to enable streaming according to NPQ and by FEC (Forward Error
Correction) method if its value is set to "fec".
Request None.
Response None.
Table A-510 TEARDOW rtsp://<host>[:port]/ISAPI/Streaming/channels/<ID>?npq=
Method TEARDOW
Description Stop multicast based on NPQ.
Query npq: Network Protocol Quality (NPQ), this query parameter is used
to enable streaming according to NPQ and by FEC (Forward Error
Correction) method if its value is set to "fec".
Request None.
Response None.
Remarks
The <ID> in the request URL is the value of (channel No. × 100 + stream type value), e.g., if the
channel No. is 1, and the stream type value is 1, the ID equals to 101.
354
Intelligent Security API (General) Developer Guide
• For channel No., if the device contains analog and digital channels, the analog channel No. starts
from 1, and the digital channel No. starts from the next No. of the end analog channel. For
example, if the device contains 16 analog channels and 16 digital channels, the analog channel
No. is between 1 and 16, while the digital channel No. is between 17 and 32.
• For stream type, only two values are available, that is, 1 (main stream) and 2 (sub-stream).
A.11.17 rtsp://<host>[:port]/ISAPI/Streaming/tracks/<ID>?starttime=&endtime=
Operations about playback of a specific channel.
355
Intelligent Security API (General) Developer Guide
Remarks
The <ID> in the URL is defined as (channel No.)*100+(stream type value).
channel No.
For analog channel, the No. starts from 1, and for digital channel, the No. starts from the last
analog channel No.
E.g., if the device has 16 analog channels and 16 digital channels, the analog channel No. is
between 1 and 16, and the digital channel No. is between 17 and 32.
stream type value
The stream type values contain 1, 2, and 3. 1-main stream, 2-sub-stream, 3-third stream.
E.g., if ID is 101, it indicates the main stream of channel No.1; if ID is 102, it indicates the sub-
stream of channel No. 2; if ID is 1601, it indicates the main stream of channel 16;...
356
Intelligent Security API (General) Developer Guide
A.12 /ISAPI/System
A.12.1 /ISAPI/System/AcsUpdate/capabilities
Get the capability of upgrading device (slave access control device, peripheral module, etc.).
A.12.2 /ISAPI/System/activate
Device activation.
A.12.3 /ISAPI/System/algorithmsInfo/capabilities?format=json
Get the capability of getting the algorithm library information.
357
Intelligent Security API (General) Developer Guide
A.12.4 /ISAPI/System/algorithmsInfo?format=json
Get the algorithm library information.
A.12.5 /ISAPI/System/algorithmsVersion
Get the version information of algorithm library.
358
Intelligent Security API (General) Developer Guide
Request None
Response Succeeded: XML_AlgorithmsVersion
Failed: XML_ResponseStatus
A.12.6 /ISAPI/System/Audio/AudioIn
Get or set audio input parameters of all channels.
A.12.7 /ISAPI/System/Audio/AudioIn/capabilities
Get the audio input configuration capability of all channels.
359
Intelligent Security API (General) Developer Guide
Request None.
Response Succeeded: XML_AudioInConfigCap
Failed: XML_ResponseStatus
A.12.8 /ISAPI/System/Audio/AudioIn/channels/<ID>
Get or set audio input parameters of a specific channel.
Remarks
The <ID> in the request URI refers to the channel No.
A.12.9 /ISAPI/System/Audio/AudioIn/channels/<ID>/capabilities
Get the audio input capability of a specific channel.
360
Intelligent Security API (General) Developer Guide
Query None.
Request None.
Response Succeeded: XML_AudioInCap
Failed: XML_ResponseStatus
Remarks
The <ID> in the request URI refers to the channel No.
A.12.10 /ISAPI/System/Audio/AudioOut/channels/<ID>
Get or set audio output parameters of a specific channel.
Remarks
The <ID> in the request URI refers to the channel No.
A.12.11 /ISAPI/System/Audio/AudioOut/channels/<ID>/capabilities
Get the audio output capability of a specific channel.
361
Intelligent Security API (General) Developer Guide
Remarks
The <ID> in the request URI refers to the channel No.
A.12.12 /ISAPI/System/Audio/capabilities
Get the audio capability.
A.12.13 /ISAPI/System/Audio/channels
Get the configuration of all audio channels of the device.
362
Intelligent Security API (General) Developer Guide
Query None.
Request None.
Response Succeeded: XML_AudioChannelList
Failed: XML_ResponseStatus
A.12.14 /ISAPI/System/Audio/channels/<ID>
Get the configuration of a specific audio channel of the device.
A.12.15 /ISAPI/System/Audio/channels/<ID>/dynamicCap
Get dynamic audio capability by channel.
Remarks
The <ID> in the request URI refers to the audio input channel ID.
363
Intelligent Security API (General) Developer Guide
A.12.16 /ISAPI/System/autoMaintenance/capabilities?format=json
Get the capability of automatic maintenance configuration.
A.12.17 /ISAPI/System/autoMaintenance?format=json
Get automatic maintenance configuration parameters.
A.12.18 /ISAPI/System/autoSwitch/capabilities?format=json
Get configuration capability of auto power on or off.
364
Intelligent Security API (General) Developer Guide
A.12.19 /ISAPI/System/autoSwitch?format=json
Get or set parameters of auto power on or off.
A.12.20 /ISAPI/System/Bluetooth/capabilities
Get the bluetooth configuration capability.
365
Intelligent Security API (General) Developer Guide
A.12.21 /ISAPI/System/Bluetooth/ibeaconParam
Operations about the ibeacon bluetooth configuration.
A.12.22 /ISAPI/System/Bluetooth/ibeaconParam/capabilities
Get the ibeacon bluetooth configuration capability.
366
Intelligent Security API (General) Developer Guide
A.12.23 /ISAPI/System/capabilities
Get device capability.
A.12.24 /ISAPI/System/channels/<ID>/vibrationDetection/capabilities?
format=json
Get the capability of vibration detection.
367
Intelligent Security API (General) Developer Guide
Request None.
Response Succeeded: JSON_VibrationDetectionCap
Failed: JSON_ResponseStatus
Remarks
The <ID> in the URI refers to the channel ID.
A.12.25 /ISAPI/System/channels/<ID>/vibrationDetection?format=json
Get or set the vibration detection parameters.
Remarks
The <ID> in the URI refers to the channel ID.
A.12.26 /ISAPI/System/configurationData?secretkey=
Import or export configuration files securely.
368
Intelligent Security API (General) Developer Guide
Remarks
The device may reboot after importing the configuration file.
369
Intelligent Security API (General) Developer Guide
A.12.27 /ISAPI/System/configurationData?type=
Import or export device configuration files safely.
370
Intelligent Security API (General) Developer Guide
Remarks
• This URI will import or export all configuration parameters by default.
• The device needs to reboot for the imported parameters to take effect.
A.12.28 /ISAPI/System/deviceInfo
Operations about the device information.
371
Intelligent Security API (General) Developer Guide
A.12.29 /ISAPI/System/deviceInfo/capabilities
Get the device information configuration capability.
A.12.30 /ISAPI/System/deviceInfo/characteristicCode?format=json
Get the device attribute code.
372
Intelligent Security API (General) Developer Guide
A.12.31 /ISAPI/System/DeviceLanguage
Operations about device language configuration.
A.12.32 /ISAPI/System/DeviceLanguage/capabilities
Get the capability of device language configuration.
373
Intelligent Security API (General) Developer Guide
A.12.33 /ISAPI/System/diagnosedData
Get device diagnosis information.
Remarks
Before getting the device diagnosis information, you should get the information export status via
URI GET /ISAPI/System/diagnosedData/exportStatus , only when the node <status> in
XML_ExportStatus is "unexport", you can call this URI to get the device diagnosis information.
A.12.34 /ISAPI/System/diagnosedData/exportStatus
Get the export status of device diagnosis information.
374
Intelligent Security API (General) Developer Guide
Query None.
Request None.
Response XML_ExportStatus
A.12.35 /ISAPI/System/diagnosedData/parameter
Get or set the parameters of exporting device diagnose information.
Remarks
The speed dome does not support getting parameters of exporting diagnose information.
A.12.36 /ISAPI/System/diagnosedData/parameter/capabilities
Get the capability of exporting device diagnose information.
375
Intelligent Security API (General) Developer Guide
Query None.
Request None.
Response Succeeded: XML_Cap_DiagnosedDataParameter
Failed: XML_ResponseStatus
A.12.37 /ISAPI/System/diagnosedData/server/capabilities?format=json
Get the diagnostic server capability.
A.12.38 /ISAPI/System/diagnosedData/server?format=json
Get or set the diagnostic server parameters.
376
Intelligent Security API (General) Developer Guide
Request None.
Response Succeeded: JSON_DiagnosedDataServerList
Failed: JSON_ResponseStatus
Table A-565 PUT /ISAPI/System/diagnosedData/server?format=json
Method PUT
Description Set the diagnostic server parameters.
Query format: determine the format of request or response message.
security: the version No. of encryption scheme. When security does
not exist, it indicates that the data is not encrypted; when security is
1, it indicates that the nodes of sensitive information in the message
are encrypted in AES128 CBC mode; when security is 2, it indicates
that the nodes of sensitive information in the message are encrypted
in AES256 CBC mode.
iv: the initialization vector, and it is required when security is 1 or 2.
Request JSON_DiagnosedDataServerList
Response JSON_ResponseStatus
Remarks
The following nodes in the message JSON_DiagnosedDataServerList should be encrypted:
password, userName, consoleCommand, and compressionKey.
A.12.39 /ISAPI/System/diagnosedData/server/test?format=json
Test the diagnostic server.
377
Intelligent Security API (General) Developer Guide
Remarks
The two nodes password and userName in the message JSON_DiagnosedDataServerList should
be encrypted.
A.12.40 /ISAPI/System/diagnosis/capabilities?format=json
Get the device diagnosis capability.
A.12.41 /ISAPI/System/diagnosis?format=json
Diagnose the device.
378
Intelligent Security API (General) Developer Guide
A.12.42 /ISAPI/System/discoveryMode
Get or set the device discovery mode.
A.12.43 /ISAPI/System/discoveryMode/capabilities
Get the configuration capability of device discovery mode.
379
Intelligent Security API (General) Developer Guide
A.12.44 /ISAPI/System/doubleLensParking/capabilities
Get the capability of dual-lens parking space camera.
A.12.45 /ISAPI/System/dumpData
Get the dump file data of the device.
Remarks
The dump file data of the device may be in binary format or other format.
A.12.46 /ISAPI/System/exportLogToUSB/capabilities?format=json
Get the configuration capability of exporting log to USB flash drive.
380
Intelligent Security API (General) Developer Guide
A.12.47 /ISAPI/System/exportLogToUSB/mode?format=json
Set parameters of exporting logs to USB flash drive.
A.12.48 /ISAPI/System/exportLogToUSB/status?format=json
Get the status of exporting logs to USB flash drive.
Table A-576 GET /ISAPI/System/exportLogToUSB/status?format=json
Method GET
Description Get the status of exporting logs to USB flash drive.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_ExportLogToUSBStatus
Failed: JSON_ResponseStatus
381
Intelligent Security API (General) Developer Guide
A.12.49 /ISAPI/System/exportUSBLog/capabilities?format=json
Get the configuration capability of exporting logs to PC.
A.12.50 /ISAPI/System/exportUSBLog/status?format=json
Get the status of exporting logs to PC.
A.12.51 /ISAPI/System/exportUSBLog?format=json
Export logs from USB flash drive to PC.
Table A-579 PUT /ISAPI/System/exportUSBLog?format=json
Method PUT
Description Export logs from USB flash drive to PC.
Query format: determine the format of request or response message.
382
Intelligent Security API (General) Developer Guide
Request JSON_ExportUSBLog
Response JSON_ResponseStatus
A.12.52 /ISAPI/System/externalDevice/capabilities
Get peripherals configuration capability.
A.12.53 /ISAPI/System/factoryReset?mode=
Restore the device to default settings.
383
Intelligent Security API (General) Developer Guide
Remarks
• For access control devices, this URI is only supported by facial recognition terminal, and the
"full" and "basic" recovery modes are not supported by passthrough method.
• For facial recognition terminal, if the recovery mode is set to "part", i.e., /ISAPI/System/
factoryReset?mode=part, the settings of card, face, event, fingerprint, schedule template,
network, user name, and password will be reserved without being restored.
A.12.54 /ISAPI/System/fileExport/capabilities?format=json
Get the capability of exporting files from the device.
A.12.55 /ISAPI/System/fileExport?format=json
Export files from the device.
384
Intelligent Security API (General) Developer Guide
A.12.56 /ISAPI/System/firmwareCodeV2
Get firmware code list.
A.12.57 /ISAPI/System/GPSCalibratation/channels/<ID>/capabilities?format=json
Get GPS calibration configuration capability.
Remarks
The <ID> in the request URI refers to the video channel ID.
A.12.58 /ISAPI/System/GPSCalibratation/channels/<ID>/points/<PID>?
format=json
Get, set or delete configuration parameters of a single GPS calibration point.
385
Intelligent Security API (General) Developer Guide
Remarks
The first <ID> in the request URI refers to the video channel ID and the second <ID> refers to
calibration point ID.
A.12.59 /ISAPI/System/GPSCalibratation/channels/<ID>/points/status?
format=json
Get GPS calibration status.
386
Intelligent Security API (General) Developer Guide
Remarks
The <ID> in the request URI refers to the video channel ID.
A.12.60 /ISAPI/System/GPSCalibratation/channels/<ID>/points?format=json
Get, set or delete configuration parameters of multiple GPS calibration points in a batch.
387
Intelligent Security API (General) Developer Guide
Remarks
The <ID> in the request URI refers to the video channel ID.
A.12.61 /ISAPI/System/GPSPTZCalibratation/channels/<ID>/calibratation?
format=json
Enable GPS calibration.
Remarks
The <ID> in the request URI refers to the video channel ID.
A.12.62 /ISAPI/System/GPSVerification/channels/<ID>/display?format=json
Get or set the parameters of displaying GPS calibration verification result.
388
Intelligent Security API (General) Developer Guide
Remarks
The <ID> in the URI refers to channel No.
A.12.63 /ISAPI/System/GPSVerification/channels/<ID>/points/<ID>?format=json
Get, set, or delete a specified verification point.
389
Intelligent Security API (General) Developer Guide
Remarks
The first <ID> in the URI refers to channel No., and second <ID> refers to verification point No.
A.12.64 /ISAPI/System/GPSVerification/channels/<ID>/points/capabilities?
format=json
Get the capability of verifying GPS calibration.
Remarks
The <ID> in the URI refers to channel No.
A.12.65 /ISAPI/System/GPSVerification/channels/<ID>/points/resultInfo?
format=json
Get the verification results of GPS calibration in a batch according to channel No.
390
Intelligent Security API (General) Developer Guide
Remarks
The <ID> in the URI refers to channel No.
A.12.66 /ISAPI/System/GPSVerification/channels/<ID>/points?format=json
Get, set, or delete multiple verification points in a batch, or add a verification point.
391
Intelligent Security API (General) Developer Guide
Remarks
The <ID> in the URI refers to channel No.
A.12.67 /ISAPI/System/guardAgainstTheft
Get or set device anti-theft parameters.
392
Intelligent Security API (General) Developer Guide
Query None.
Request XML_GuardAgainstTheft
Response XML_ResponseStatus
A.12.68 /ISAPI/System/guardAgainstTheft/capabilities
Get the device anti-theft configuration capability.
A.12.69 /ISAPI/System/guideConfig/<guideEvent>/capabilities?format=json
Get the capability of quick setup instruction for specified event.
Remarks
The <guideEvent> in the URI refers to the event, which supports quick setup, and now only
"linkageCapture" (capture by linkage) is supported, i.e., the URI is: /ISAPI/System/guideConfig/
linkageCapture/capabilities?format=json
393
Intelligent Security API (General) Developer Guide
A.12.70 /ISAPI/System/guideConfig/<guideEvent>?format=json
Get the parameters of quick setup instruction for specified event.
Remarks
The <guideEvent> in the URI refers to the event, which supports quick setup, and now only
"linkageCapture" (capture by linkage) is supported, i.e., the URI is: /ISAPI/System/guideConfig/
linkageCapture?format=json
A.12.71 /ISAPI/System/Hardware
Operations about the device hardware configuration.
394
Intelligent Security API (General) Developer Guide
Request XML_HardwareService
Response XML_ResponseStatus
A.12.72 /ISAPI/System/Hardware/defog
Operations about the defogging control configuration.
A.12.73 /ISAPI/System/installationAngleCalibration/channels/<ID>/capabilities?
format=json
Get the capability of installation angle calibration.
395
Intelligent Security API (General) Developer Guide
Request None.
Response Succeeded: JSON_Cap_CalibrationStatus
Failed: JSON_ResponseStatus
Remarks
The <ID> in the request URI refers to the channel No.
A.12.74 /ISAPI/System/installationAngleCalibration/channels/<ID>?format=json
Get the installation angle calibration status or calibrate the installation angle.
Remarks
The <ID> in the request URI refers to the channel No.
A.12.75 /ISAPI/System/IO
Get the alarm input and output information.
396
Intelligent Security API (General) Developer Guide
A.12.76 /ISAPI/System/IO/capabilities
Get alarm input and output configuration capability.
A.12.77 /ISAPI/System/IO/inputs
Get the information of all alarm input ports.
397
Intelligent Security API (General) Developer Guide
A.12.78 /ISAPI/System/IO/inputs/<ID>
Get or set an alarm input port.
A.12.79 /ISAPI/System/IO/inputs/<ID>/status
Get the status of a specific alarm input.
Remarks
The <ID> in the request URI refers to the alarm input ID.
398
Intelligent Security API (General) Developer Guide
A.12.80 /ISAPI/System/IO/inputs/capabilities
Get alarm input configuration capability.
A.12.81 /ISAPI/System/IO/outputs
Get the information of all I/O output ports.
A.12.82 /ISAPI/System/IO/outputs/capabilities
Get the I/O output capability.
399
Intelligent Security API (General) Developer Guide
Request None.
Response XML_Cap_IOOutputPortList
A.12.83 /ISAPI/System/IO/outputs/<ID>
Get or set the information of specified I/O output port.
Table A-626 GET /ISAPI/System/IO/outputs/<ID>
Method GET
Description Get the information of specified I/O output port.
Query None.
Request None.
Response XML_IOOutputPort
Table A-627 PUT /ISAPI/System/IO/outputs/<ID>
Method PUT
Description Set the information of specified alarm output port.
Query XML_IOOutputPort
Request None.
Response XML_ResponseStatus
A.12.84 /ISAPI/System/IO/outputs/<ID>/status
Get status of a specific alarm output.
400
Intelligent Security API (General) Developer Guide
Remarks
The <ID> in the request URI refers to the alarm output ID.
A.12.85 /ISAPI/System/IO/outputs/<ID>/trigger
Manually trigger a specific alarm output.
Remarks
The <ID> in the request URI refers to the alarm output ID.
A.12.86 /ISAPI/System/IO/softInputs/<ID>?format=json
Get or set parameters of a single soft I/O.
401
Intelligent Security API (General) Developer Guide
Request JSON_singleSoftIO
Response JSON_ResponseStatus
A.12.87 /ISAPI/System/IO/softInputs?format=json
Get all soft I/O parameters.
A.12.88 /ISAPI/System/IO/status
Get alarm input and output status.
A.12.89 /ISAPI/System/laserOpticalAxis/capabilities?format=json
Get the configuration capability of laser optical axis.
402
Intelligent Security API (General) Developer Guide
A.12.90 /ISAPI/System/laserOpticalAxis/goto?format=json
Adjust the laser optical axis.
A.12.91 /ISAPI/System/laserOpticalAxis?format=json
Get or set laser optical axis parameters.
403
Intelligent Security API (General) Developer Guide
Failed: JSON_ResponseStatus
Table A-637 PUT /ISAPI/System/laserOpticalAxis?format=json
Method PUT
Description Configure the laser optical axis.
Query format: determine the format of request or response message.
Request JSON_LaserOpticalAxis
Response JSON_ResponseStatus
A.12.92 /ISAPI/System/logServer
Get or set log server parameters.
A.12.93 /ISAPI/System/logServer/capabilities
Get log server configuration capability.
404
Intelligent Security API (General) Developer Guide
A.12.94 /ISAPI/System/logServer/test
Perform security log server test.
A.12.95 /ISAPI/System/Network/adaption/capabilities?format=json
Get network self-adaptive configuration capability.
405
Intelligent Security API (General) Developer Guide
Failed: JSON_ResponseStatus
A.12.96 /ISAPI/System/Network/adaption?format=json&streamType=
Operations about network self-adaptive configuration.
A.12.97 /ISAPI/System/Network/Bond
Get all network bonding configuration parameters.
406
Intelligent Security API (General) Developer Guide
A.12.98 /ISAPI/System/Network/Bond/<ID>
Operations about the bonding configuration of a specific network interface.
A.12.99 /ISAPI/System/Network/capabilities
Get the network capability.
407
Intelligent Security API (General) Developer Guide
A.12.100 /ISAPI/System/Network/channels/<ID>/buletooth/status
Operations about the bluetooth status configuration of a specific channel.
Remarks
The <ID> in the request URI refers to the channel No.
408
Intelligent Security API (General) Developer Guide
A.12.101 /ISAPI/System/Network/DDNS
Operations about all DDNS configuration parameters.
A.12.102 /ISAPI/System/Network/DDNS/capabilities
Get DDNS (Dynamic Domain Name Server) configuration capability.
409
Intelligent Security API (General) Developer Guide
A.12.103 /ISAPI/System/Network/DDNS/<ID>
Operations about the configuration of a specific DDNS.
A.12.104 /ISAPI/System/Network/DDNS/<ID>/capabilities
Get the configuration capability of a specific DDNS.
410
Intelligent Security API (General) Developer Guide
A.12.105 /ISAPI/System/Network/Ehome
Operations about the EHome server access configuration.
A.12.106 /ISAPI/System/Network/Ehome/capabilities
Get the configuration capability of EHome server access.
411
Intelligent Security API (General) Developer Guide
A.12.107 /ISAPI/System/Network/Ehome?centerID=
Operations about the EHome server access configuration.
412
Intelligent Security API (General) Developer Guide
A.12.108 /ISAPI/System/Network/EZVIZ
Operations about Hik-Connect access configurations.
A.12.109 /ISAPI/System/Network/EZVIZ/QRCode
Get the Guarding Vision QR code of the device.
413
Intelligent Security API (General) Developer Guide
A.12.110 /ISAPI/System/Network/EZVIZ/QRCode?format=json
Get the Hik-Connect QR code.
Remarks
• You can use smart phone to scan the QR code to download Hik-Connect app or use Hik-Connect
to scan the QR code to bind the device.
• If the node isSupportEZVIZQRCode is returned in the message XML_Cap_EZVIZ (related URI: /
ISAPI/System/Network/EZVIZ/capabilities ) and the value is true, it indicates that the device
supports this function.
414
Intelligent Security API (General) Developer Guide
A.12.111 /ISAPI/System/Network/EZVIZ/capabilities
Get the Hik-Connect access configuration capability.
A.12.112 /ISAPI/System/Network/EZVIZ/secretKey?format=json
Edit the verification code for Hik-Connect.
A.12.113 /ISAPI/System/Network/EZVIZ/unbind?format=json
Unbind devices from Hik-Connect account.
415
Intelligent Security API (General) Developer Guide
Remarks
This URI can only be used in the same network segment in a LAN by admin users.
A.12.114 /ISAPI/System/Network/ftp
Operations about all FTP configurations.
416
Intelligent Security API (General) Developer Guide
Request XML_FTPNotificationList
Response XML_ResponseStatus
A.12.115 /ISAPI/System/Network/ftp/<ID>
Operations about the configuration of a specific FTP.
A.12.116 /ISAPI/System/Network/ftp/capabilities
Get the FTP capability.
417
Intelligent Security API (General) Developer Guide
Failed: XML_ResponseStatus
A.12.117 /ISAPI/System/Network/ftp/test
Perform test to check if the FTP server is available.
A.12.118 /ISAPI/System/Network/interfaces
Get the information of multiple network interfaces.
Example
Sample Code of Getting Information of Multiple Network Interfaces
GET /ISAPI/System/Network/interfaces HTTP/1.1
…
HTTP/1.1 200 OK
Content-Type: application/xml; charset="UTF-8"
Content-Length: xxx
418
Intelligent Security API (General) Developer Guide
A.12.119 /ISAPI/System/Network/interfaces/<ID>
Operations about the configuration of a specific network interface.
419
Intelligent Security API (General) Developer Guide
PUT /ISAPI/System/Network/interfaces/<ID>
Method PUT
Description Set a specific network interface.
Query None.
Request XML_NetworkInterface
Response XML_ResponseStatus
A.12.120 /ISAPI/System/Network/interfaces/<ID>/capabilities
Get the capability of a specific network interface.
A.12.121 /ISAPI/System/Network/interfaces/<ID>/discovery
Operations about the network discovery configuration.
420
Intelligent Security API (General) Developer Guide
A.12.122 /ISAPI/System/Network/interfaces/<ID>/discovery/capabilities
Get the configuration capability of network discovery.
A.12.123 /ISAPI/System/Network/interfaces/<ID>/dynamicHostName?
format=json
Get or set dynamic domain name.
421
Intelligent Security API (General) Developer Guide
Remarks
The <ID> in the request URI refers to the network interface ID.
A.12.124 /ISAPI/System/Network/interfaces/<ID>/dynamicHostName/
capabilities?format=json
Get configuration capability of dynamic domain name.
Remarks
The <ID> in the request URI refers to the network interface ID.
A.12.125 /ISAPI/System/Network/interfaces/<ID>/ieee802.1x
Operations about configuration of IEEE 802.1x protocol access.
422
Intelligent Security API (General) Developer Guide
Remarks
The <ID> in the request URI refers to the network interface ID.
A.12.126 /ISAPI/System/Network/interfaces/<ID>/ieee802.1x/capabilities
Get configuration capability of IEEE802.1x protocol access.
A.12.127 /ISAPI/System/Network/interfaces/<ID>/ipAddress
Operations about IP address configuration of a specific network interface.
423
Intelligent Security API (General) Developer Guide
Example
Sample Code of Setting IP Address of A Specific Network Interface
PUT /ISAPI/System/Network/interfaces/1/ipAddress HTTP/1.1
…
Content-Type: application/xml; charset="UTF-8"
Content-Length: xxx
HTTP/1.1 200 OK
…
Content-Type: application/xml; charset="UTF-8"
Content-Length:xxx
424
Intelligent Security API (General) Developer Guide
A.12.128 /ISAPI/System/Network/interfaces/<ID>/ipAddress/capabilities
Get the IP address configuration capability of a specific network interface.
A.12.129 /ISAPI/System/Network/interfaces/<ID>/link
Operations about the connection configuration of a specific network interface.
425
Intelligent Security API (General) Developer Guide
A.12.130 /ISAPI/System/Network/interfaces/<ID>/link/capabilities
Get the connection configuration capability of a specific network interface.
A.12.131 /ISAPI/System/Network/interfaces/<ID>/NetworkMode
Operations about the working mode configuration of the network connection.
426
Intelligent Security API (General) Developer Guide
Remarks
The <ID> in the request URI refers to the network interface ID.
A.12.132 /ISAPI/System/Network/interfaces/<ID>/wireless
Operations about Wi-Fi configuration of a specific network interface.
427
Intelligent Security API (General) Developer Guide
A.12.133 /ISAPI/System/Network/interfaces/<ID>/wireless/accessDeviceList/<ID>
Get the information of a specific device connected to the hotspot.
Remarks
The first <ID> in the URI refers to the network interface ID, and the second <ID> refers to the
device ID.
A.12.134 /ISAPI/System/Network/interfaces/<ID>/wireless/accessDeviceList/
capabilities
Get the capability set of the device connected to the hotspot.
428
Intelligent Security API (General) Developer Guide
Failed: XML_ResponseStatus
Remarks
The <ID> in the URI refers to the network interface ID.
A.12.135 /ISAPI/System/Network/interfaces/<ID>/wireless/accessPointList
Get Wi-Fi hotspot list.
A.12.136 /ISAPI/System/Network/interfaces/<ID>/wireless/accessPointList/<ID>
Get a specific Wi-Fi hotspot.
A.12.137 /ISAPI/System/Network/interfaces/<ID>/wireless/capabilities
Get the Wi-Fi configuration capability.
429
Intelligent Security API (General) Developer Guide
Method GET
Description Get the Wi-Fi configuration capability.
Query security: the version No. of encryption scheme. When security does
not exist, it indicates that the data is not encrypted; when security is
1, it indicates that the nodes of sensitive information in the message
are encrypted in AES128 CBC mode; when security is 2, it indicates
that the nodes of sensitive information in the message are encrypted
in AES256 CBC mode.
iv: the initialization vector, and it is required when security is 1 or 2.
Request None.
Response Succeeded: XML_Cap_Wireless
Failed: XML_ResponseStatus
A.12.138 /ISAPI/System/Network/interfaces/<ID>/wireless/connectStatus
Get the wireless connection status.
A.12.139 /ISAPI/System/Network/interfaces/<ID>/wirelessServer
Operations about wireless hotspot configuration.
430
Intelligent Security API (General) Developer Guide
Remarks
The <ID> in the URI refers to the network interface ID.
A.12.140 /ISAPI/System/Network/interfaces/<ID>/wirelessServer/accessDeviceList
Get list of devices that are connected to the hotspot.
Remarks
The <ID> in the URI refers to the network interface ID.
431
Intelligent Security API (General) Developer Guide
A.12.141 /ISAPI/System/Network/interfaces/<ID>/wirelessServer/capabilities
Get configuration capability of wireless hotspot.
A.12.142 /ISAPI/System/Network/interfaces/<ID>/wirelessServerStatus
Operations about the wireless hotspot status configuration.
Remarks
The <ID> in the request URI refers to the network interface ID.
432
Intelligent Security API (General) Developer Guide
A.12.143 /ISAPI/System/Network/interfaces/<ID>/wirelessServerStatus/
capabilities
Get the wireless hotspot status capability.
Remarks
The <ID> in the request URI refers to the network interface ID.
A.12.144 /ISAPI/System/Network/interfaces/<ID>/wirelessStatus
Operations about the configuration of wireless network connection status.
433
Intelligent Security API (General) Developer Guide
Request XML_WirelessStatus
Response XML_ResponseStatus
Remarks
The <ID> in the request URI refers to the network interface ID.
A.12.145 /ISAPI/System/Network/interfaces/<ID>/wirelessStatus/capabilities
Get the configuration capability of wireless network connection status.
Remarks
The <ID> in the request URI refers to the network interface ID.
A.12.146 /ISAPI/System/Network/interfaces/<ID>/WPS
Get or set the WPS (Wi-Fi Protected Setup) parameters of a specific network interface.
434
Intelligent Security API (General) Developer Guide
Failed: XML_ResponseStatus
Table A-713 PUT /ISAPI/System/Network/interfaces/<ID>/WPS
Method PUT
Description Set the WPS (Wi-Fi Protected Setup) parameters of a specific network
interface.
Query None.
Request XML_WPS
Response XML_ResponseStatus
Remarks
The <ID> in the request URI refers to the network interface ID.
A.12.147 /ISAPI/System/Network/interfaces/<ID>/WPS/ApPinCode
Operations about the configuration of PIN (Personal Identification Number) code of the wireless
access point.
435
Intelligent Security API (General) Developer Guide
Remarks
The <ID> in the request URI refers to the network interface ID, and it is set to 2 by default.
A.12.148 /ISAPI/System/Network/interfaces/<ID>/WPS/AutoConnect
Set the configuration of PBC (Push Button Configuration) automatic connection of WPS (Wi-Fi
Protected Setup).
Remarks
The <ID> in the request URI refers to the network interface ID, and it is set to 2 by default.
A.12.149 /ISAPI/System/Network/interfaces/<ID>/WPS/devicePinCode
Get the PIN (Personal Identification Number) code of WPS (Wi-Fi Protected Setup) of the device.
436
Intelligent Security API (General) Developer Guide
A.12.150 /ISAPI/System/Network/interfaces/<ID>/WPS/devicePinCodeUpdate
Update the PIN (Personal Identification Number) code of WPS (Wi-Fi Protected Setup) of the
device.
Remarks
The <ID> in the request URI refers to the network interface ID, and it is set to 2 by default.
A.12.151 /ISAPI/System/Network/interfaces/capabilities
Get the configuration capability of multiple network interfaces.
A.12.152 /ISAPI/System/Network/ipFilter
Operations about IP address filter configuration.
437
Intelligent Security API (General) Developer Guide
A.12.153 /ISAPI/System/Network/ipFilter/capabilities
Get IP address filter configuration capability.
A.12.154 /ISAPI/System/Network/MACFilter
Operations about MAC address filter configuration.
438
Intelligent Security API (General) Developer Guide
A.12.155 /ISAPI/System/Network/MACFilter/capabilities
Get the MAC address filter configuration capability.
A.12.156 /ISAPI/System/Network/mailing
Operations about email configuration.
439
Intelligent Security API (General) Developer Guide
A.12.157 /ISAPI/System/Network/mailing/<ID>
Operations about the configuration of a specific email.
440
Intelligent Security API (General) Developer Guide
Remarks
The <ID> in the URI refers to the email ID.
A.12.158 /ISAPI/System/Network/mailing/capabilities
Get email configuration capability.
A.12.159 /ISAPI/System/Network/mailing/test
Execute the email test to check if the email server and address are available.
A.12.160 /ISAPI/System/Network/pingtest
Start a ping test and get the test result.
441
Intelligent Security API (General) Developer Guide
A.12.161 /ISAPI/System/Network/POE/capabilities?format=json
Get capability of PoE port parameters configuration.
A.12.162 /ISAPI/System/Network/POE?format=json
Get or set the PoE port configuration parameters.
442
Intelligent Security API (General) Developer Guide
A.12.163 /ISAPI/System/Network/resourceStatistics?format=json
Get the information of network resource statistics.
A.12.164 /ISAPI/System/Network/SIP
Operations about the configuration of a specific SIP (Session Initiation Protocol) server.
443
Intelligent Security API (General) Developer Guide
A.12.165 /ISAPI/System/Network/SIP/<ID>
Operations about the configuration of a specific SIP (Session Initiation Protocol) server.
A.12.166 /ISAPI/System/Network/SIP/<ID>/capabilities
Get the configuration capability of a specific SIP (Session Initiation Protocol) server.
444
Intelligent Security API (General) Developer Guide
A.12.167 /ISAPI/System/Network/SIP/<ID>/SIPInfo
Operations about the configuration of a piece of SIP (Session Initiation Protocol) information.
445
Intelligent Security API (General) Developer Guide
A.12.168 /ISAPI/System/Network/SIP/<ID>/SIPInfo/capabilities
Get the configuration capability of a specific piece of SIP (Session Initiation Protocol) information.
A.12.169 /ISAPI/System/Network/SIP/<ID>/SIPInfo/multiInfo
Get or set the information list of SIP servers.
446
Intelligent Security API (General) Developer Guide
Remarks
The <ID> in the request URI refers to the SIP server ID.
A.12.170 /ISAPI/System/Network/SIP/capabilities
Get the configuration capability of all SIP (Session Initiation Protocol) servers.
A.12.171 /ISAPI/System/Network/SIP/voiceTalkCtrl/<ID>?format=json
Get or set SIP (Session Initiation Protocol) intercom parameters.
447
Intelligent Security API (General) Developer Guide
Request JSON_voiceTalkCtrl
Response JSON_ResponseStatus
Remarks
The <ID> in the request URI is 1 by default.
A.12.172 /ISAPI/System/Network/SIP/voiceTalkCtrl/capabilities?format=json
Get the configuration capability of SIP (Session Initiation Protocol) intercom.
A.12.173 /ISAPI/System/Network/SNMP
Get or set batch configuration parameters of SNMP (Simple Network Management Protocol).
448
Intelligent Security API (General) Developer Guide
Request None.
Response Succeeded: XML_SNMP
Failed: XML_ResponseStatus
Table A-752 PUT /ISAPI/System/Network/SNMP
Method PUT
Description Set batch configuration parameters of SNMP.
Query security: the version No. of encryption scheme. When security does
not exist, it indicates that the data is not encrypted; when security is
1, it indicates that the nodes of sensitive information in the message
are encrypted in AES128 CBC mode; when security is 2, it indicates
that the nodes of sensitive information in the message are encrypted
in AES256 CBC mode.
iv: the initialization vector, and it is required when security is 1 or 2.
Request XML_SNMP
Response XML_ResponseStatus
A.12.174 /ISAPI/System/Network/SNMP/advanced
Get or set advanced parameters of SNMP (Simple Network Management Protocol).
449
Intelligent Security API (General) Developer Guide
Request XML_SNMPAdvanced
Response XML_ResponseStatus
A.12.175 /ISAPI/System/Network/SNMP/advanced/trapReceivers
Get, set, delete parameters of all trap address, or add a new trap address of SNMP in version 3.
450
Intelligent Security API (General) Developer Guide
Request XML_SNMPTrapReceiver
Response XML_ResponseStatus
A.12.176 /ISAPI/System/Network/SNMP/advanced/trapReceivers/<ID>
Get, set or delete parameters for a single trap address.
A.12.177 /ISAPI/System/Network/socketIP
Get the socket IP of current connection.
451
Intelligent Security API (General) Developer Guide
A.12.178 /ISAPI/System/Network/ssh
Operations about SSH server configurations.
A.12.179 /ISAPI/System/Network/ssh/capabilities
Get the SSH parameters configuration capability.
452
Intelligent Security API (General) Developer Guide
A.12.180 /ISAPI/System/Network/StaticRoute
Get, set, or delete the parameters of static route.
453
Intelligent Security API (General) Developer Guide
Request None.
Response XML_ResponseStatus
A.12.181 /ISAPI/System/Network/telnetd
Operations about the telnetd service configuration.
A.12.182 /ISAPI/System/Network/telnetd/capabilities
Get the telnetd service capability.
454
Intelligent Security API (General) Developer Guide
Failed: XML_ResponseStatus
A.12.183 /ISAPI/System/Network/UPnP
Operations about UPnP configuration.
A.12.184 /ISAPI/System/Network/UPnP/capabilities
Get the UPnP configuration capability.
455
Intelligent Security API (General) Developer Guide
A.12.185 /ISAPI/System/Network/UPnP/ports
Operations about configuration of all UPnP ports.
A.12.186 /ISAPI/System/Network/UPnP/ports/status
Get the mapping statuses of all UPnP ports.
A.12.187 /ISAPI/System/Network/UPnP/ports/<ID>
Operations about configuration of a specific UPnP port.
456
Intelligent Security API (General) Developer Guide
Remarks
The <ID> in the request URI refers to UPnP port ID.
A.12.188 /ISAPI/System/Network/UPnP/ports/<ID>/status
Get mapping status of a specific UPnP port.
Remarks
The <ID> in the request URI refers to UPnP port ID.
457
Intelligent Security API (General) Developer Guide
A.12.189 /ISAPI/System/Network/verificationCodeCheck
Verify the encryption key or verification code.
A.12.190 /ISAPI/System/Network/WirelessDial/Interfaces
Get or set parameters for all dial network cards.
458
Intelligent Security API (General) Developer Guide
A.12.191 /ISAPI/System/Network/WirelessDial/Interfaces/<ID>
Get or set parameters for a single dial network card.
Remarks
The <ID> in the request URI refers to the network interface ID.
A.12.192 /ISAPI/System/Network/WirelessDial/Interfaces/<ID>/dial
Operations about the wireless dial-up configuration.
459
Intelligent Security API (General) Developer Guide
A.12.193 /ISAPI/System/Network/WirelessDial/Interfaces/<ID>/dial/capabilities
Get the wireless dial-up capability.
460
Intelligent Security API (General) Developer Guide
Request None.
Response Succeeded: XML_Cap_Dial
Failed: XML_ResponseStatus
A.12.194 /ISAPI/System/Network/WirelessDial/Interfaces/<ID>/dialstatus
Operations about the configuration of wireless dial-up connection status.
Remarks
The <ID> in the request URI refers to the network interface ID.
A.12.195 /ISAPI/System/Network/WirelessDial/Interfaces/<ID>/keepAlive/
capabilities?format=json
Get the configuration capability of network keepalive.
461
Intelligent Security API (General) Developer Guide
Remarks
The <ID> in the request URI refers to the network interface ID.
A.12.196 /ISAPI/System/Network/WirelessDial/Interfaces/<ID>/keepAlive/test?
format=json
Test network keepalive configuration.
Remarks
The <ID> in the request URI refers to the network interface ID.
A.12.197 /ISAPI/System/Network/WirelessDial/Interfaces/<ID>/keepAlive?
format=json
Set network keepalive parameters.
462
Intelligent Security API (General) Developer Guide
Remarks
The <ID> in the request URI refers to the network interface ID.
A.12.198 /ISAPI/System/Network/WirelessDial/Interfaces/<ID>/messageConfig
Get or set dial-up information parameters.
Remarks
The <ID> in the request URI refers to the network interface ID.
463
Intelligent Security API (General) Developer Guide
A.12.199 /ISAPI/System/Network/WirelessDial/Interfaces/<ID>/messageConfig/
messageConfigCap
Get dial-up information capability.
Remarks
The <ID> in the request URI refers to the network interface ID.
A.12.200 /ISAPI/System/Network/WirelessDial/Interfaces/<ID>/messageConfig/
WhiteList
Get or set all allowlist configuration.
464
Intelligent Security API (General) Developer Guide
Remarks
The <ID> in the request URI refers to the network interface ID.
A.12.201 /ISAPI/System/Network/WirelessDial/Interfaces/<ID>/messageConfig/
WhiteList/<ID>
Get or set specific allowlist configuration.
465
Intelligent Security API (General) Developer Guide
Query security: the version No. of encryption scheme. When security does
not exist, it indicates that the data is not encrypted; when security is
1, it indicates that the nodes of sensitive information in the message
are encrypted in AES128 CBC mode; when security is 2, it indicates
that the nodes of sensitive information in the message are encrypted
in AES256 CBC mode.None.
iv: the initialization vector, and it is required when security is 1 or 2.
Request XML_ListMember
Response XML_ResponseStatus
Remarks
The <ID> in the request URI refers to the network interface ID.
A.12.202 /ISAPI/System/Network/WirelessDial/Interfaces/<ID>/schedule
Get or set dial-up schedule parameters.
Remarks
The <ID> in the request URI refers to the network interface ID.
466
Intelligent Security API (General) Developer Guide
A.12.203 /ISAPI/System/Network/WirelessDial/Interfaces/<ID>/trafficMonitor/
capabilities?format=json
Get traffic monitoring configuration capability.
A.12.204 /ISAPI/System/Network/WirelessDial/Interfaces/<ID>/trafficMonitor/
status?format=json
Get traffic monitoring status.
A.12.205 /ISAPI/System/Network/WirelessDial/Interfaces/<ID>/trafficMonitor?
format=json
Get traffic monitoring parameters.
467
Intelligent Security API (General) Developer Guide
Remarks
The <ID> in the request URI refers to the network interface ID.
A.12.206 /ISAPI/System/Network/WPS/capabilities
Get the WPS (Wi-Fi Protected Setup) configuration capability.
468
Intelligent Security API (General) Developer Guide
A.12.207 /ISAPI/System/onlineUpgrade/capabilities
Get the device online upgrade capability.
A.12.208 /ISAPI/System/onlineUpgrade/deviceParameter?format=json
Get and set the device online upgrade parameters.
A.12.209 /ISAPI/System/onlineUpgrade/downloadPackage/pause?format=json
Pause the upgrade package download.
469
Intelligent Security API (General) Developer Guide
A.12.210 /ISAPI/System/onlineUpgrade/downloadPackage/resume?format=json
Resume the upgrade package download.
A.12.211 /ISAPI/System/onlineUpgrade/downloadPackage/status?format=json
Get the upgrade package download progress.
470
Intelligent Security API (General) Developer Guide
A.12.212 /ISAPI/System/onlineUpgrade/downloadPackage?format=json
Start or cancel downloading upgrade package to device.
A.12.213 /ISAPI/System/onlineUpgrade/ignoreCurrentVersion?format=json
Ignore the current upgrade package version.
Remarks
If the current upgrade package version is ignored, it will not be found in further detection.
471
Intelligent Security API (General) Developer Guide
A.12.214 /ISAPI/System/onlineUpgrade/server
Get the online upgrade server status.
A.12.215 /ISAPI/System/onlineUpgrade/status
Get the online upgrade progress of device.
A.12.216 /ISAPI/System/onlineUpgrade/upgradeWithoutDownload?format=json
Start device upgrade with existed upgrade package.
472
Intelligent Security API (General) Developer Guide
Request None.
Response JSON_ResponseStatus
A.12.217 /ISAPI/System/onlineUpgrade/version
Get the information of new upgrade package.
A.12.218 /ISAPI/System/PictureServer/capabilities?format=json
Get the picture storage server capability.
A.12.219 /ISAPI/System/PictureServer?format=json
Operations about the picture storage server configuration parameters.
473
Intelligent Security API (General) Developer Guide
A.12.220 /ISAPI/System/reboot
Reboot device.
474
Intelligent Security API (General) Developer Guide
A.12.221 /ISAPI/System/Serial/authentication/capabilities?format=json
Get capability of serial authentication service.
A.12.222 /ISAPI/System/Serial/authentication?format=json
Get or set parameters of serial authentication service.
475
Intelligent Security API (General) Developer Guide
Failed: JSON_ResponseStatus
Table A-827 PUT /ISAPI/System/Serial/authentication?format=json
Method PUT
Description Set parameters of serial authentication service.
Query format: determine the format of request or response message.
Request JSON_Authentication
Response JSON_ResponseStatus
A.12.223 /ISAPI/System/Serial/capabilities
Get the serial port capability of the device.
A.12.224 /ISAPI/System/Serial/ports
Get the list of serial ports supported by the device.
476
Intelligent Security API (General) Developer Guide
A.12.225 /ISAPI/System/Serial/ports/<ID>
Operations about the configuration of a specific serial port supported by the device.
A.12.226 /ISAPI/System/Serial/ports/<ID>/capabilities
Get the capability of a specific serial port.
477
Intelligent Security API (General) Developer Guide
A.12.227 /ISAPI/System/Serial/ports/capabilities
Get the capability of all serial ports.
A.12.228 /ISAPI/System/Serial/ports/command
Send a command to a serial port.
Remarks
• If the device is an encoder that converts analog signals to digital signals and it is connected to
analog cameras with PTZ enabled, the encoder will forward the command to the appropriate
serial port according to the <chainNo> node of the XML message or the query string of the HTTP
request.
• If the device is a digital camera with PTZ enabled, the camera will forward the PTZ command to
the corresponding serial port.
• The serial port command can be encapsulated in the <command> node of the XML message,
and the command should be encoded in hexadecimal notation; or the serial port command can
478
Intelligent Security API (General) Developer Guide
be directly uploaded as payload of the HTTP request, and in this case the Content-Type should
be set to "application/octet-stream", and the query string chainNo should be set.
Example
Sample Code of Command in XML Format
PUT /ISAPI/System/Serial/ports/999/command HTTP/1.1
Content-Type: application/xml; charset=”UTF-8”
Content-Length: xxx
Example
Sample Code of Command Using Query String
/ISAPI/System/Serial/ports/999/command?chainNo=1 HTTP/1.1
Content-Type: application/octet-stream
Content-Length: xxx
(...Raw data of the command should be inserted here...)
A.12.229 /ISAPI/System/Serial/ports/command/capabilities
Get the serial port command capability.
A.12.230 /ISAPI/System/serialLogCfg/capabilities?format=json
Get the configuration capability of serial port log redirection.
479
Intelligent Security API (General) Developer Guide
A.12.231 /ISAPI/System/serialLogCfg?format=json
Operations about the redirection configuration of serial port log.
A.12.232 /ISAPI/System/shutdown?format=json
Shut down the device.
480
Intelligent Security API (General) Developer Guide
A.12.233 /ISAPI/System/Software/channels/<ID>
Operation about software service configuration.
Remarks
The <ID> in the request URI refers to the channel No.
A.12.234 /ISAPI/System/Software/channels/<ID>/capabilities
Get the configuration capability of software service.
481
Intelligent Security API (General) Developer Guide
Remarks
The <ID> in the request URI refers to the channel No.
A.12.235 /ISAPI/System/SSDFileSystem/capacity?format=json
Search for SSD storage quotas.
Remarks
If the node isSupportSSDFileSystemCapacity is returned in the message XML_DeviceCap (related
URI: /ISAPI/System/capabilities ) and its value is true, it indicates that the device supports this
function.
A.12.236 /ISAPI/System/SSDFileSystem/format?format=json
Format SSD file system.
482
Intelligent Security API (General) Developer Guide
Remarks
Formatting SSD will erase its data, including those in face picture library, and cancel the alarms
linked to the library. The device will restart after formatting.
A.12.237 /ISAPI/System/SSDFileSystem/format/status?format=json
Search for the progress of SSD file system formatting.
A.12.238 /ISAPI/System/SSDFileSystem/upgrade?format=json
Get the upgrade status of SSD file system or upgrade the SSD file system. The device will
automatically reboot after upgrade.
483
Intelligent Security API (General) Developer Guide
A.12.239 /ISAPI/System/SSDFileSystem/upgrade/status?format=json
Search for the upgrade progress of SSD file system.
A.12.240 /ISAPI/System/status
Get device status, e.g., CPU, memory, and so on.
484
Intelligent Security API (General) Developer Guide
Request None.
Response Succeeded: XML_DeviceStatus
Failed: XML_ResponseStatus
A.12.241 /ISAPI/System/syncSignalOutput/<ID>
Operations about the configuration of synchronous signal output.
A.12.242 /ISAPI/System/syncSignalOutput/<ID>/capabilities
Get the configuration capability of synchronous signal output.
485
Intelligent Security API (General) Developer Guide
Request None.
Response Succeeded: XML_Cap_SyncSignalOutputList
Failed: XML_ResponseStatus
A.12.243 /ISAPI/System/time
Get or set device time parameters.
A.12.244 /ISAPI/System/time/capabilities
Get the time capability of the device.
486
Intelligent Security API (General) Developer Guide
Request None.
Response Succeeded: XML_Cap_Time
Failed: XML_ResponseStatus
A.12.245 /ISAPI/System/time/localTime
Operations about the configuration of device local time.
A.12.246 /ISAPI/System/time/ntpServers
Get or set parameters of all NTP servers, add a NTP server, or delete all NTP servers.
487
Intelligent Security API (General) Developer Guide
Request None
Response Succeeded: XML_NTPServerList
Failed: XML_ResponseStatus
Table A-859 PUT /ISAPI/System/time/ntpServers
Method PUT
Description Set parameters of all NTP servers.
Query None
Request XML_NTPServerList
Response XML_ResponseStatus
Table A-860 POST /ISAPI/System/time/ntpServers
Method POST
Description Add a NTP server.
Query None
Request XML_NTPServer
Response XML_ResponseStatus
Table A-861 DELETE /ISAPI/System/time/ntpServers
Method DELETE
Description Delete all NTP servers.
Query None
Request None
Response XML_ResponseStatus
A.12.247 /ISAPI/System/time/ntpServers/<ID>
Get or set parameters of a NTP server, or delete a NTP server.
488
Intelligent Security API (General) Developer Guide
Request None
Response Succeeded: XML_NTPServer
Failed: XML_ResponseStatus
Table A-863 PUT /ISAPI/System/time/ntpServers/<ID>
Method PUT
Description Set the parameters of a NTP server.
Query None
Request XML_NTPServer
Response XML_ResponseStatus
Table A-864 DELETE /ISAPI/System/time/ntpServers/<ID>
Method DELETE
Description Delete a NTP server.
Query None
Request None
Response XML_ResponseStatus
A.12.248 /ISAPI/System/time/ntpServers/<ID>/capabilities
Get the configuration capability of a specific NTP server.
A.12.249 /ISAPI/System/time/ntpServers/capabilities
Get the configuration capability of all NTP servers.
489
Intelligent Security API (General) Developer Guide
A.12.250 /ISAPI/System/time/ntpServers/test
Execute a test to check if the NTP server is available.
A.12.251 /ISAPI/System/time/timeType?format=json
Operations about device time type configuration.
490
Intelligent Security API (General) Developer Guide
Request None.
Response JSON_TimeType
Table A-869 PUT /ISAPI/System/time/timeType?format=json
Method PUT
Description Set the device time type.
Query format: determine the format of request or response message.
Request JSON_TimeType
Response JSON_ResponseStatus
A.12.252 /ISAPI/System/time/timeZone
Operations about the configuration of device time zone.
A.12.253 /ISAPI/System/TwoWayAudio/channels
Get audio parameters of all two-way audio channels.
491
Intelligent Security API (General) Developer Guide
Example
Sample Code for Getting Parameters of All Two-Way Audio Channels
GET /ISAPI/System/TwoWayAudio/channels HTTP/1.1
Host: 10.17.132.49
Connection: Keep-Alive
Authorization: Digest username="admin",
realm="DS-2CD2F12FWD-IWS",
nonce="4e4446464e6a6333516a63365a4445304f47526a4e32553d",
uri="/ISAPI/System/TwoWayAudio/channels",
cnonce="145ef1bc3ab456be09918d39b77e78ae",
nc=00000021,
response="d10bab23689c60e95241230fff3181b0",
qop="auth"
HTTP/1.1 200 OK
Date: Wed, 15 Mar 2017 09:25:29 GMT
Server: App-webs/
Connection: close
Content-Length: 467
Content-Type: application/xml
492
Intelligent Security API (General) Developer Guide
A.12.254 /ISAPI/System/TwoWayAudio/channels/<ID>
Operations about the configuration of a specific two-way audio channel.
A.12.255 /ISAPI/System/TwoWayAudio/channels/<ID>/audioData
Receive or send audio data from or to a specific two-way audio channel.
493
Intelligent Security API (General) Developer Guide
Remarks
The <ID> in the request URI refers to the two-way audio channel ID.
Example
Sample Code for Sending Audio Data to Device
PUT /ISAPI/System/TwoWayAudio/channels/1/audioData HTTP/1.1
HOST: 10.17.132.49
Authorization: Digest username="admin",
realm="DS-2CD2F12FWD-IWS",
nonce="4e3055314e6a64434e7a59365a4445304f545668596a6b3d",
uri="/ISAPI/System/TwoWayAudio/channels/1/audioData",
response="6a03c7e85c17a35bae9ee6f3cfcd254b"
Connection: keep-alive
Content-Length: 0
Content-Type: application/octet-stream
HTTP/1.1 200 OK
Example
Sample Code for Receiving Audio Data from Device
GET /ISAPI/System/TwoWayAudio/channels/1/audioData HTTP/1.1
HOST: 10.17.132.49
Authorization: Digest username="admin",
realm="DS-2CD2F12FWD-IWS",
nonce="4e3055314e6a64434e7a59365a4445304f5456685a44673d",
uri="/ISAPI/System/TwoWayAudio/channels/1/audioData",
response="7ea0ec7bd102b3c4cb225cbf33adb8f8"
Connection: keep-alive
HTTP/1.1 200 OK
Content-Type: audio/basic
494
Intelligent Security API (General) Developer Guide
A.12.256 /ISAPI/System/TwoWayAudio/channels/<ID>/capabilities
Get the capability of a specific two-way audio channel.
A.12.257 /ISAPI/System/TwoWayAudio/channels/<ID>/close
Stop two-way audio of a specific channel.
Remarks
The <ID> in the request URI refers to the two-way audio channel ID.
Example
Sample Code for Stopping Two-Way Audio
PUT /ISAPI/System/TwoWayAudio/channels/1/close HTTP/1.1
HOST: 10.17.132.49
Authorization: Digest username="admin",
realm="DS-2CD2F12FWD-IWS",
nonce="4e54457a4d7a67354d6a6b365a4445304f5463794d32553d",
uri="/ISAPI/System/TwoWayAudio/channels/1/close",
response="7d5acdc3ccf7c080400802800d7471e3"
Content-Length: 0
495
Intelligent Security API (General) Developer Guide
HTTP/1.1 200 OK
Date: Wed, 15 Mar 2017 09:25:35 GMT
Server: App-webs/
Connection: close
Content-Length: 298
Content-Type: application/xml
A.12.258 /ISAPI/System/TwoWayAudio/channels/<ID>/open
Start two-way audio of a specific channel.
Remarks
The <ID> in the request URI refers to the two-way audio channel ID.
Example
Sample Code for Start Two-Way Audio
PUT /ISAPI/System/TwoWayAudio/channels/1/open HTTP/1.1
HOST: 10.17.132.49
Authorization: Digest username="admin",
realm="DS-2CD2F12FWD-IWS",
nonce="4e3055314e6a64434e7a59365a4445304f5456685957453d",
uri="/ISAPI/System/TwoWayAudio/channels/1/open",
response="368dda22535b9783bdccafc3b2ded29a"
Content-Length: 0
HTTP/1.1 200 OK
496
Intelligent Security API (General) Developer Guide
A.12.259 /ISAPI/System/TwoWayAudio/channels/capabilities
Get the audio configuration capability of all two-way audio channels.
A.12.260 /ISAPI/System/unitConfig/capabilities?format=json
Get the capability of unit unified configuration.
497
Intelligent Security API (General) Developer Guide
A.12.261 /ISAPI/System/unitConfig?format=json
Get and set the unit unified configuration parameters.
A.12.262 /ISAPI/System/updateFirmware
Upgrade the device firmware.
498
Intelligent Security API (General) Developer Guide
Remarks
After upgrading the device firmware, the device will automatically reboot according to the
response message. If upgrading failed, the following reasons may be returned: "upgrading"-the
device is upgrading, "badFlash"-flash error, "badLanguage"-language mismatches.
Example
The URL Interaction in Form Format
/ISAPI/System/updateFirmware
Accept: text/html, application/xhtml+xml,
Accept-Language: zh-CN
Content-Type: multipart/form-data; boundary=---------------------------7e13971310878
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)
Accept-Encoding: gzip, deflate
Host: 10.10.36.29:8080
Content-Length: 9907
Connection: Keep-Alive
Cache-Control: no-cache
-----------------------------7e13971310878
Content-Disposition: form-data; name="updateFile";
Content-Type: application/octet-stream
Content-Length: 9907
..........`.`.....C........... .
..
................. $.' ",#..(7),01444.'9=82<.342...C. ....
-----------------------------7e13971310878--
A.12.263 /ISAPI/System/updateFirmware?type=&id=
Upgrade the slave device's firmware.
499
Intelligent Security API (General) Developer Guide
Query type: device or module type, string type, it can be set to one of the
following values: "cardReader"-card reader, "FPModule"-fingerprint
module, "securityModule"-secure door control unit,
"extendModule"- (IO) extension module, "channelController"-lane
controller, "IRModule"-IR module, "lampModule"-indicator module,
"elevatorController"-slave elevator controller, and
"FPAlgorithmProgram"-fingerprint algorithm program of the card
reader, "uboot", "ZigBee"-ZigBee module, "R3"-R3 module, "Rx"-Rx
module, "sirenIndoor"-siren indoor, "sirenOutdoor"-siren outdoor,
"repeater"-repeater, "automation"-automation.
id: slave device No., e.g., /ISAPI/System/updateFirmware?
type=cardReader&id=1 refers to upgrading firmware of card reader 1.
Request Opaque data (binary data for PUT method, data in form format for
POST method).
Response XML_ResponseStatus
Remarks
After upgrading the slave device's firmware, the device will automatically reboot according to the
response message. If upgrading failed, the following reasons may be returned: "upgrading"-the
device is upgrading, "badFlash"-flash error, "badLanguage"-language mismatches.
A.12.264 /ISAPI/System/updateFirmware?type=&moduleAddress=
Upgrade the peripheral module's firmware.
500
Intelligent Security API (General) Developer Guide
Request Opaque data (binary data for PUT method, data in form format for
POST method).
Response XML_ResponseStatus
Remarks
After upgrading the peripheral module's firmware, the device will automatically reboot according
to the response message. If upgrading failed, the following reasons may be returned: "upgrading"-
the device is upgrading, "badFlash"-flash error, "badLanguage"-language mismatches.
A.12.265 /ISAPI/System/upgradeStatus
Get the device upgrading status and progress.
A.12.266 /ISAPI/System/usb/capabilities?format=json
Get the USB parameters configuration capability.
501
Intelligent Security API (General) Developer Guide
A.12.267 /ISAPI/System/usb?format=json
Get or set the USB parameters.
A.12.268 /ISAPI/System/userLock/config/capabilities?format=json
Get the configuration capability of locking IP address.
502
Intelligent Security API (General) Developer Guide
A.12.269 /ISAPI/System/userLock/config?format=json
Operations about IP address locking configuration.
A.12.270 /ISAPI/System/userLock/lockedUsers?format=json
Get all locked IP addresses.
503
Intelligent Security API (General) Developer Guide
A.12.271 /ISAPI/System/userLock/unlockUser?format=json
Unlock the IP address.
A.12.272 /ISAPI/System/Video/capabilities
Get video channel capability.
A.12.273 /ISAPI/System/Video/inputs
Get the video input configuration of the device.
504
Intelligent Security API (General) Developer Guide
Request None.
Response Succeeded: XML_VideoInput
Failed: XML_ResponseStatus
A.12.274 /ISAPI/System/Video/inputs/channels
Get the configuration of all video input channels of the device.
A.12.275 /ISAPI/System/Video/inputs/channels/<ID>
Operations about the configuration of a specific video input channel of the device.
505
Intelligent Security API (General) Developer Guide
Query None.
Request XML_VideoInputChannel
Response XML_ResponseStatus
See Also
The <ID> in the request URI refers to the channel No.
A.12.276 /ISAPI/System/Video/inputs/channels?format=json
Get the information of all channels according to the request message.
A.12.277 /ISAPI/System/Video/inputs/channels/<ID>/focus
Perform manual focus on a specific channel.
Remarks
The <ID> in the request URI refers to video input channel ID.
506
Intelligent Security API (General) Developer Guide
A.12.278 /ISAPI/System/Video/inputs/channels/<ID>?format=json
Get the information of a channel according to the request message.
Remarks
The <ID> in the request URI refers to the channel No.
A.12.279 /ISAPI/System/Video/inputs/channels/<ID>/capabilities
Get the configuration capability of a video input channel.
Remarks
The <ID> in the request URI refers to video input channel ID.
A.12.280 /ISAPI/System/Video/inputs/channels/<ID>/iris
Manually adjust the iris of a specific video input channel.
507
Intelligent Security API (General) Developer Guide
Remarks
The <ID> in the request URI refers to video input channel ID.
A.12.281 /ISAPI/System/Video/inputs/channels/<ID>/motionDetection
Get or set the motion detection parameters of a specified video input channel.
Remarks
The <ID> in the request URI refers to the video input channel No.
508
Intelligent Security API (General) Developer Guide
A.12.282 /ISAPI/System/Video/inputs/channels/<ID>/motionDetection/
capabilities
Get the motion detection capability of a specified video input channel.
Remarks
The <ID> in the request URI refers to the video input channel No.
A.12.283 /ISAPI/System/Video/inputs/channels/<ID>/motionDetection/layout
Get or set rule region parameters of motion detection.
509
Intelligent Security API (General) Developer Guide
Remarks
The <ID> in the URI refers to the video input channel ID.
A.12.284 /ISAPI/System/Video/inputs/channels/<ID>/motionDetection/layout/
capabilities
Get rule region configuration capability of motion detection.
Remarks
The <ID> in the URI refers to the video input channel ID.
A.12.285 /ISAPI/System/Video/inputs/channels/<ID>/motionDetection/layout/
gridLayout
Get or set grid layout parameters of motion detection.
510
Intelligent Security API (General) Developer Guide
Remarks
The <ID> in the URI refers to the video input channel ID.
A.12.286 /ISAPI/System/Video/inputs/channels/<ID>/overlays
Operations about OSD configuration of a specific video input channel.
511
Intelligent Security API (General) Developer Guide
Request XML_VideoOverlay
Response XML_ResponseStatus
Remarks
The <ID> in the request URI refers to the video input channel ID.
Example
Sample Code for Getting OSD Parameters
GET /ISAPI/System/Video/inputs/channels/1/overlays HTTP/1.1
Host: 10.17.132.49
Connection: Keep-Alive
Authorization: Digest username="admin",
realm="DS-2CD2F12FWD-IWS",
nonce="4d3046464f454e425254633659325534595749784f546b3d",
uri="/ISAPI/System/Video/inputs/channels/1/overlays",
cnonce="03e455047789a833deaae75e44381653",
nc=00000017,
response="ae141a01b415c1b9ab50ddea7ff467c3",
qop="auth"
HTTP/1.1 200 OK
Date: Tue, 14 Mar 2017 20:38:40 GMT
Server: App-webs/
Connection: close
Content-Length: 1087
Content-Type: application/xml
512
Intelligent Security API (General) Developer Guide
<positionY>544</positionY>
<dateStyle>MM-DD-YYYY</dateStyle>
<timeStyle>24hour</timeStyle>
<displayWeek>true</displayWeek>
</DateTimeOverlay>
<channelNameOverlay version="2.0" xmlns="http://www.isapi.com/ver20/XMLSchema">
<enabled>true</enabled>
<positionX>512</positionX>
<positionY>64</positionY>
</channelNameOverlay>
<frontColorMode>auto</frontColorMode>
<frontColor>000000</frontColor>
</VideoOverlay>
A.12.287 /ISAPI/System/Video/inputs/channels/<ID>/overlays/
BatteryPowerOverlay
Operations about the battery overlay configuration of a specific video input channel.
Remarks
The <ID> in the request URI refers to the video input channel No.
513
Intelligent Security API (General) Developer Guide
A.12.288 /ISAPI/System/Video/inputs/channels/<ID>/overlays/
BatteryPowerOverlay/capabilities
Get the configuration capability of battery overlay of a specific video input channel.
A.12.289 /ISAPI/System/Video/inputs/channels/<ID>/overlays/capabilities
Get the OSD capability of a specific video input channel.
A.12.290 /ISAPI/System/Video/inputs/channels/<ID>/overlays/
channelNameOverlay
Operations about the configuration of channel name overlay of a specific video input channel.
514
Intelligent Security API (General) Developer Guide
Remarks
The <ID> in the request URI refers to the video input channel No.
A.12.291 /ISAPI/System/Video/inputs/channels/<ID>/overlays/dateTimeOverlay
Operations about the configuration of date and time information overlay of a specific video input
channel.
515
Intelligent Security API (General) Developer Guide
Failed: XML_ResponseStatus
Table A-923 PUT /ISAPI/System/Video/inputs/channels/<ID>/overlays/dateTimeOverlay
Method PUT
Description Set the parameters of date and time information overlay of a specific
video input channel.
Query None.
Request
Response XML_ResponseStatus
Remarks
The <ID> in the request URI refers to the video input channel No.
A.12.292 /ISAPI/System/Video/inputs/channels/<ID>/overlays/dateTimeOverlay/
capabilities
Get the capability of date and time information overlay of a specific video input channel.
Remarks
The <ID> in the request URI refers to the video input channel No.
A.12.293 /ISAPI/System/Video/inputs/channels/<ID>/overlays/text
Operations about the text overlay configuration of a specific video input channel.
516
Intelligent Security API (General) Developer Guide
517
Intelligent Security API (General) Developer Guide
A.12.294 /ISAPI/System/Video/inputs/channels/<ID>/overlays/text/<ID>
Operations about the configuration of a specific piece of text overlay information of a specific
video input channel.
A.12.295 /ISAPI/System/Video/inputs/channels/<ID>/privacyMask
Get or set privacy mask parameters.
518
Intelligent Security API (General) Developer Guide
Remarks
The <ID> in the request URI refers to the video input channel ID.
A.12.296 /ISAPI/System/Video/inputs/channels/<ID>/privacyMask/
privacyMaskCap
Get configuration capability of privacy mask.
Remarks
The <ID> in the request URI refers to the video input channel ID.
A.12.297 /ISAPI/System/Video/inputs/channels/<ID>/privacyMask/regions
Get, set, or delete parameters of privacy mask regions, and add a region.
519
Intelligent Security API (General) Developer Guide
Remarks
The <ID> in the request URI refers to the video input channel ID.
520
Intelligent Security API (General) Developer Guide
A.12.298 /ISAPI/System/Video/inputs/channels/<ID>/privacyMask/regions/<ID>
Get, set, or delete parameters of a privacy mask region.
Remarks
The first <ID> in the request URI refers to the video input channel ID; and second <ID> is the
privacy mask region ID.
A.12.299 /ISAPI/System/Video/inputs/channels/<ID>/VCAResource
Operation about configuration of intelligent resources switch.
521
Intelligent Security API (General) Developer Guide
Remarks
• The <ID> in the request URI refers to the video input channel ID.
• The intelligent resources switch supports three capture mode, i.e., target capture, face capture,
and perimeter capture.
• For target capture mode, the panoramic camera captures the human body and vehicle
pictures, the speed dome tracks and capture the human body for human body or face
recognition and comparison. If matched, the thumbnails and original pictures of human body
and face will be uploaded; otherwise, only the thumbnail and original picture of face will be
uploaded.
• For face capture mode, the panoramic camera transmits the videos without any intelligent
analysis, the speed dome captures face picture in up to 4 scenes.
• For perimeter capture, the panoramic camera captures vehicle pictures and performs HMS
+DGS detection, and it supports detecting and tracking the small target within 40 m; while the
speed dome tracks and captures the detected target, and outputs thumbnails and original
pictures of human body and face.
A.12.300 /ISAPI/System/Video/inputs/channels/<ID>/VCAResource/capabilities
Get capability of intelligent resources switch.
522
Intelligent Security API (General) Developer Guide
A.12.301 /ISAPI/System/Video/inputs/channels/capabilities
Get the capability of configuring video input channels in a batch.
A.12.302 /ISAPI/System/Video/inputs/channels/counting/collection/capabilities?
format=json
Get the capability of people counting data replenishment.
523
Intelligent Security API (General) Developer Guide
Request None.
Response JSON_PeopleCounting_CollectionDescriptionCap
A.12.303 /ISAPI/System/Video/inputs/channels/counting/collection?format=json
Perform people counting replenishment.
A.12.304 /ISAPI/System/Video/inputs/channels/heatMap/collection/capabilities?
format=json
Get the capability of heat map data replenishment.
A.12.305 /ISAPI/System/Video/inputs/channels/heatMap/collection?format=json
Perform heat map data replenishment.
524
Intelligent Security API (General) Developer Guide
A.12.306 /ISAPI/System/Video/inputs/OSDLanguage
Operations about OSD language configuration.
A.12.307 /ISAPI/System/Video/outputs
Get configuration parameters of video outputs.
525
Intelligent Security API (General) Developer Guide
A.12.308 /ISAPI/System/Video/outputs/channels
Get configuration parameters of multiple video outputs.
A.12.309 /ISAPI/System/Video/outputs/channels/<ID>
Get or set parameters of a video output.
526
Intelligent Security API (General) Developer Guide
Request None.
Response Succeeded: XML_VideoOutputChannel
Failed: XML_ResponseStatus
Table A-954 PUT /ISAPI/System/Video/outputs/channels/<ID>
Method PUT
Description Set parameters of a video output.
Query None.
Request XML_VideoOutputChannel
Response XML_ResponseStatus
Remarks
The <ID> in the request URI refers to the video output ID.
A.12.310 /ISAPI/System/Video/outputs/channels/<ID>/capabilities
Get video output configuration capability.
Remarks
The <ID> in the request URI refers to the video output ID.
A.12.311 /ISAPI/System/Video/outputs/PreviewSwitch/capabilities
Get capability of auto-switch configuration during live view.
527
Intelligent Security API (General) Developer Guide
A.12.312 /ISAPI/System/Video/outputs/PreviewSwitch/capabilities?
videoOutType=
Get capability of auto-switch configuration during live view by video output.
A.12.313 /ISAPI/System/Video/outputs/PreviewSwitch?groupID=&videoOutType=
Operations about auto-switch configuration in live view.
528
Intelligent Security API (General) Developer Guide
529
Intelligent Security API (General) Developer Guide
A.12.314 /ISAPI/System/Video/outputs/PreviewSwitch?
groupID=&videoOutType=&previewFrameNo=
Get configuration parameters of auto-switch in live view.
A.12.315 /ISAPI/System/wiresharkToUSB/capabilities?format=json
Get the configuration capability of exporting captured packets to USB flash drive.
530
Intelligent Security API (General) Developer Guide
A.12.316 /ISAPI/System/wiresharkToUSB/mode?format=json
Set parameters of exporting captured packets to USB flash drive.
A.12.317 /ISAPI/System/wiresharkToUSB/status?format=json
Get the status of exporting captured packets to USB flash drive.
531
Intelligent Security API (General) Developer Guide
Failed: JSON_ResponseStatus
A.12.318 /ISAPI/System/workingstatus/hdStatus?format=json
Get HDD status.
A.12.319 /ISAPI/System/workingstatus/chanStatus?format=json
Get channel status.
532
Intelligent Security API (General) Developer Guide
Failed: JSON_ResponseStatus
Table A-967 POST /ISAPI/System/workingstatus/chanStatus?format=json
Method POST
Description Get a specified channel's status.
Query format: determine the format of request or response message.
Request JSON_ChanCond
Response Succeeded: JSON_ChanStatus
Failed: JSON_ResponseStatus
A.12.320 /ISAPI/System/workingstatus/capabilities?format=json
Get capability of getting all statuses of device.
A.12.321 /ISAPI/System/workingstatus?format=json
Get device working status.
533
Intelligent Security API (General) Developer Guide
Failed: JSON_ResponseStatus
Remarks
Up to 20 bytes are allowed for a device's working status; up to 100 bytes are allowed for a
channel's status, a HDD's status, and an IO's status; up to 30 bytes are allowed for a two-way audio
channel's status.
A.12.322 /ISAPI/System/workingstatus/IOStatus?format=json
Get device IO status.
A.12.323 /ISAPI/System/zeroBiasCalibration/channels/<ID>?format=json
Calibrate the accelerometer bias.
Remarks
The <ID> in the request URI refers to the channel No.
534
Intelligent Security API (General) Developer Guide
A.13 /ISAPI/Thermal
A.13.1 /ISAPI/Thermal/capabilities
Get thermal capability.
A.13.2 /ISAPI/Thermal/temperature/collection/capabilities?format=json
Get the capability of temperature data replenishment.
A.13.3 /ISAPI/Thermal/temperature/collection?format=json
Perform the temperature data replenishment.
535
Intelligent Security API (General) Developer Guide
536
Intelligent Security API (General) Developer Guide
Appendix B. Appendixes
JSON_Adaption
Adaption message in JSON format
{
"Adaption": {
"enable": ,
/*required, boolean type, whether to enable network self-adaptive function: true-no, false-yes; this function is bound
with IntraRefresh encoding strategy*/
"policy": ,
/*required,self-adaptive strategy, 0-self-adaptive (adjust the resolution and bit rate, the resolution value should be
smaller than or equal to the configured value, but the frame rate is constant), 1-resolution in priority (adjust bit rate,
resolution and frame rate are constant), 2-error correction and retransmission (resolution and frame rate are
constant)*/
"percentage":
/*this node is required when policy is "2", error correction percentage, unit: %, which is between 0 and 100; lager
percentage represents more corrected data, more higher requirement for bandwidth, and better effect*/
}
}
JSON_AdaptionCap
AdaptionCap message in JSON format
{
"AdaptionCap": {
"enable": "true,false",
/*required, boolean type, whether to enable network self-adaptive function: true-no, false-yes; this function is bound
with IntraRefresh encoding strategy*/
"policy": {
/*required,self-adaptive strategy, 0-self-adaptive (adjust the resolution and bit rate, the resolution value should be
smaller than or equal to the configured value, but the frame rate is constant), 1-resolution in priority (adjust bit rate,
resolution and frame rate are constant), 2-error correction and retransmission (resolution and frame rate are
constant)*/
"@opt": "0,1,2"
},
"percentage": {
/*this node is required when policy is "2", error correction percentage, unit: %, which is between 0 and 100; lager
percentage represents more corrected data, more higher requirement for bandwidth, and better effect*/
537
Intelligent Security API (General) Developer Guide
"@min": 0,
"@max": 100,
}
}
}
JSON_AlgorithmsInfo
AlgorithmsInfo message in JSON format
{
"AlgorithmsInfo":[{
"type":"",
/*required, string, algorithm library type, e.g, "face"*/
"name":"",
/*required, string, algorithm library name which is used to distinguish different algorithms, the maximum size is 256
bytes*/
"versionInfo":{
/*required, algorithm library version information*/
"major": ,
/*required, integer, major version of the algorithm library*/
"minor": ,
/*required, integer, minor version of the algorithm library*/
"revision":
/*required, integer, revision version of the algorithm library*/
},
"platform":"",
/*required, string, platform where the algorithm library runs*/
"os":"",
/*required, string, operating system adaptive to the algorithm library*/
"accuracy":"",
/*optional, string, computational accuracy of the algorithm library*/
"encryption":"",
/*required, string, encryption method*/
"buildTime":"",
/*required, string, compiling date in the format "buildyyyymmdd"*/
"versionProperties":""
/*required, string, version attribute: "alpha", "beta", "release", "custom"*/
}]
}
JSON_AlgorithmsInfoCap
AlgorithmsInfoCap capability message in JSON format
{
"AlgorithmsInfoCap":{
"type":{
/*required, string, algorithm library type, e.g., "face"*/
538
Intelligent Security API (General) Developer Guide
"@opt":["face"]
},
"maxSize": ,
/*required, integer, supported number of algorithm libraries*/
"name":{
/*required, string, algorithm library name which is used to distinguish different algorithms, the maximum size is 256
bytes*/
"@min": ,
"@max":
},
"versionInfo":{
/*required, algorithm library version information*/
"major":{
/*required, integer, major version of the algorithm library*/
"@min": ,
"@max":
},
"minor":{
/*required, integer, minor version of the algorithm library*/
"@min": ,
"@max":
},
"revision":{
/*required, integer, revision version of the algorithm library*/
"@min": ,
"@max":
}
},
"platform":{
/*required, string, platform where the algorithm library runs*/
"@min": ,
"@max":
},
"accuracy":{
/*optional, string, computational accuracy of the algorithm library*/
"@min": ,
"@max":
},
"os":{
/*required, string, operating system adaptive to the algorithm library*/
"@min": ,
"@max":
},
"encryption":{
/*required, string, encryption method*/
"@min": ,
"@max":
},
"buildTime":{
/*required, string, compiling date in the format "buildyyyymmdd"*/
"@min": ,
"@max":
539
Intelligent Security API (General) Developer Guide
},
"versionProperties":{
/*required, string, version attribute: "alpha", "beta", "release", "custom"*/
"@min": ,
"@max":
}
}
}
JSON_AudioAlarm
AudioAlarm message in JSON format
{
"AudioAlarm":{
"audioID": ,
/*required, alarm sound types, 1-siren, 2-"Warning, this is a restricted area", 3-"Waring, this is a restricted area,
please keep away", 4-"Warning, this is a no-parking zone", 5-"Warning, this is a no-parking zone, please keep away",
6-"Attention please. The area is under surveillance", 7-"Welcome,Please notice that the area is under surveillance",
8-"Welcome", 9-"Danger! Please keep away", 10-siren + "Danger, please keep away", 11-Audio Warning, 12-Beep
Sound, 13-custom alarm sound 1, 14-custom alarm sound 2, 15-custom alarm sound 3*/
"audioVolume": ,
/*required, int, volume, which is between 1 and 100*/
"alarmTimes": ,
/*required, int, times of alarm, which is between 1 and 50*/
"TimeRangeList":[{
/*optional, alarm output schedule list*/
"week": ,
"TimeRange":[{
"id": ,
/*required, int, ID of time period for each day*/
"beginTime":"",
/*required, string, start time in ISO8601 format*/
"endTime":""
/*required, string, end time in ISO8601 format*/
}]
}]
"audioClass": "",
/*optional, string, read-only, sound type, "alertAudio"-alarm sound (get the supported alarm sound types from the
node AlertAudioTypeListCap), "promptAudio"-prompt sound, "customAudio"-custom sound (configure it according to
customAudioID); if this node is not returned, you should get the supported sound types from the node
audioTypeListCap*/
"alertAudioID": ,
/*dependent, int, read-only, alarm sound ID, this node is valid only when audioClass is alertAudio, 1-"Siren",
2-"Warning, this is a restricted area", 3-"Waring,this is a restricted area,please keep away", 4-"Warning, this is a no-
parking zone", 5-"Warning,this is a no-parking zone,please keep away", 6-"Attention please. The area is under
surveillance", 7-"Welcome,Please notice that the area is under surveillance", 8-"Welcome", 9-"Danger! Please keep
away", 10-"(Siren)&Danger,please keep away, 11-Audio Warning"*/
"customAudioID": ,
/*dependent, int, read-only, custom sound ID, this node will be returned when audioClass is "customAudio". The
alarm sound file can only be uploaded via Guarding Vision in specified format. If there is no value returned in this
540
Intelligent Security API (General) Developer Guide
Remarks
1. The user can configure the sound file via the node audioID only, and when the audioID is
specified, its value will be automatically synchronized to the nodes of audioClass, alertAudioID,
and customAudioID, which are read-only.
2. When the value of audioID is from 1 to 11, the corresponding value of audioClass is
"alertAudio", and the value of alertAudioID is also from 1 to 11; when the value of audioID is
12, the corresponding value of audioClass is "promptAudio"; when the value of audioID is from
13 to 15, the corresponding value of audioClass is "customAudio", and the value of
customAudioID is from 1 to 3.
JSON_AudioAlarmCap
JSON message about audible warning configuration capability
{
"AudioAlarmCap":{
"audioTypeListCap":[{
/*required, alarm sound types, 1-siren, 2-"Warning, this is a restricted area", 3-"Waring, this is a restricted area,
please keep away", 4-"Warning, this is a no-parking zone", 5-"Warning, this is a no-parking zone, please keep away",
6-"Attention please. The area is under surveillance", 7-"Welcome,Please notice that the area is under surveillance",
8-"Welcome", 9-"Danger! Please keep away", 10-siren + "Danger, please keep away", 11-Audio Warning, 12-Beep
Sound, 13-custom alarm sound 1, 14-custom alarm sound 2, 15-custom alarm sound 3, 16-AI custom audio file*/
"audioID": 1,
"audioDescription":"siren"
},
{
"audioID": 2,
"audioDescription":"Warning, this is a restricted area"
},
{
"audioID": 3,
"audioDescription":"Waring, this is a restricted area,please keep away"
}],
"audioVolume":{
/*required, int, volume, which is between 1 ad 100*/
"@min": 1,
"@max": 100,
"@def": 100
},
"alarmTimes":{
/*required, int, times of audible warning, which is between 1 and 50*/
"@min": 1,
541
Intelligent Security API (General) Developer Guide
"@max": 50,
"@def": 5
},
"TimeRangeCap":{
/*optional, audible warning schedule capability*/
"week":{
/*required, int, days of the week: 1-Monday, 2-Tuesday, 3-Wednesday, 4-Thursday, 5-Friday,6-Saturday, 7-Sunday*/
"@opt":"1, 2, 3, 4, 5, 6, 7"
},
"id":{
/*required, int, ID of time period for each day*/
"@maxSize": 8
},
"beginTime":{
/*required, string, start time in ISO8601 format*/
"@min":"00:00",
"@max":"24:00"
},
"endTime":{
/*required, string, end time in ISO8601 format*/
"@min":"00:00",
"@max":"24:00"
}
}
"audioClass": {
/*optional, string, read-only, sound type, "alertAudio"-alarm sound (get the supported alarm sound types from the
node AlertAudioTypeListCap), "promptAudio"-prompt sound, "customAudio"-custom sound (configure it according to
customAudioID); if this node is not returned, you should get the supported sound types from the node
audioTypeListCap*/
"@opt": "alertAudio, promptAudio, customAudio",
"@def": "alertAudio"
},
"AlertAudioTypeListCap": [{
/*dependent, read-only, list of supported alarm sound types, this node will be returned when audioClass is
"alertAudio": 1-"Siren", 2-"Warning, this is a restricted area", 3-"Waring,this is a restricted area,please keep away",
4-"Warning, this is a no-parking zone", 5-"Warning,this is a no-parking zone,please keep away", 6-"Attention please.
The area is under surveillance", 7-"Welcome,Please notice that the area is under surveillance", 8-"Welcome",
9-"Danger! Please keep away", 10-"(Siren)&Danger,please keep away, 11-Audio Warning"*/
"alertAudioID": 1,
"alertAudioDescription": "Siren"
}, {
"alertAudioID": 2,
"alertAudioDescription": "Warning, this is a restricted area"
}, {
"alertAudioID": 3,
"alertAudioDescription": "Waring,this is a restricted area,please keep away"
}
],
"customAudioID": {
/*dependent, int, read-only, custom sound ID, this node will be returned when audioClass is "customAudio". The
alarm sound file can only be uploaded via Guarding Vision in specified format. If there is no value returned in this
node, the custom sound (customAudio) will not be returned,either*/
542
Intelligent Security API (General) Developer Guide
"@min": 1,
"@max": 3,
"@def": 1
},
"alarmType":{
/*optional, string, alarm type: "behavior"-behavior analysis, "thermometry"-thermometry, "dynamicFire"-fire
detection, "smokingMode"-smoke detection*/
"@opt":"behavior,thermometry,dynamicFire,smokingMode",
"@def":"thermometry"
}
"AlarmBindAudioList":[{
/*optional, alarm type and the list of audio related to alarm type*/
"alarmType":"behavior",
/*optional, string, alarm type: "behavior"-behavior analysis, "thermometry"-temperature measurement,
"dynamicFire"-fire detection, "smokingMode"-smoke detection, "noMaskDetection"-no wearing mask detection*/
"audioID":{
/*optional, string, the audible warning type ID corresponding to alarm type, behavior analysis corresponds to 1-12,
thermometry corresponds to 13,fire detection corresponds to 14,smoke detection corresponds to 15*/
"@opt":"1,2,3,4,5,6,7,8,9,10,11,12"
}
}]
"isSupportCustomAudio": true,
/*optional, boolean, whether the device supports uploading, downloading, and editing custom alarm sound file*/
"isSupportAudioTest": true,
/*optional, boolean, whether the device supports sound file test*/
"customAudioName": {
/*optional, string, name of custom sound file, the maximum size is 24 bytes*/
"@min": 1,
"@max": 24
}
"isSupportCustomAudioFormatInfo":true,
/*optional, boolean, whether the device supports getting the custom audio file format*/
"isSupportCustomAudioURL":true,
/*optional, boolean, whether the device supports importing the custom audio file in URL format; if this node is not
returned, the device dose not support the function*/
"isSupportCustomAudioFiles":true
/*optional, boolean, whether the device supports importing the custom audio files in a batch; if this node is not
returned, the device dose not support the function*/
}
}
Remarks
1. The user can configure the sound file via the node audioID only, and when the audioID is
specified, its value will be automatically synchronized to the nodes of audioClass, alertAudioID,
and customAudioID, which are read-only.
2. When the value of audioID is from 1 to 11, the corresponding value of audioClass is
"alertAudio", and the value of alertAudioID is also from 1 to 11; when the value of audioID is
12, the corresponding value of audioClass is "promptAudio"; when the value of audioID is from
13 to 15, the corresponding value of audioClass is "customAudio", and the value of
customAudioID is from 1 to 3.
543
Intelligent Security API (General) Developer Guide
JSON_Authentication
JSON message about parameters of serial authentication service
{
"Authentication":{
"enabled":,
/*required, boolean, whether to enable serial authentication service*/
"serviceClosurePeriod":
/*dependent, integer, service life,unit: day; it is required when enabled is "false"*/
}
}
JSON_AuthenticationCap
JSON message about serial authentication service
{
"AuthenticationCap":{
"enabled":{
/*required, boolean, whether to enable serial authentication service*/
"@opt":[
true,
false
]
},
"serviceClosurePeriod":{
/*dependent, integer, service life,unit: day; it is required when enabled is "false"*/
"@min":1,
"@max":30,
"@def":7
}
}
}
JSON_AutoEagleFocusing
AutoEagleFocusing message in JSON format
{
"AutoEagleFocusing": {
/*required, auto calibration of rapid focus*/
"EagleFocusingRegion": [{
/*optional, string, rapid focus region*/
"sid": "",
/*optional, string, scene ID*/
"spotNum": ,
/*optional, integer, the number of calibration points*/
544
Intelligent Security API (General) Developer Guide
"type": "",
/*optional, string, region type now only supports "line"*/
"Region": [{
/*optional, region list*/
"x": ,
"y":
}],
"AbsoluteHigh": {
/*optional, PTZ position*/
"elevation": ,
/*optional, xs:integer, tilt angle, range: [-900,2700]*/
"azimuth": ,
/*optional, xs:integer, azimuth, range: [0,3600]*/
"absoluteZoom": 33
/*optional, xs:integer, zoom, range: [1,1000]*/
}
}]
}
}
JSON_AutoEagleFocusingCap
AutoEagleFocusingCap message in JSON format
{
"AutoEagleFocusingCap": {
/*required, auto calibration capability of rapid focus*/
"EagleFocusingRegion": {
"sid": {
/*optional, string, scene ID*/
"@min": 1,
"@max": 2
},
"spotNum": {
/*optional, integer, the number of calibration points*/
"@min": 1,
"@max": 64
},
"type": {
/*optional, string, region type now only supports "line"*/
"@opt": "line"
},
"RegionCap": {
"minSize": 3,
/*required, integer, the minimum number of region edges*/
"maxSize": 10,
/*required, integer, the maximum number of region edges*/
"x": {
/*required, float, X-coordinate, value range: 0.000 to 1*/
"@min": 0.000,
"@max": 1.000,
545
Intelligent Security API (General) Developer Guide
"#text": 0.120
},
"y": {
/*required, float, Y-coordinate, value range: 0.000 to 1*/
"@min": 0.000,
"@max": 1.000,
"#text": 0.120
}
},
"AbsoluteHighCap": {
"elevation": {
/*optional, xs:integer, tilt angle, range: [-900,2700]*/
"@min": -900,
"@max": 2700
},
"azimuth": {
/*optional, xs:integer, azimuth, range: [0,3600]*/
"@min": 0,
"@max": 3600
},
"absoluteZoom": {
/*optional, xs:integer, zoom, range: [1,1000]*/
"@min": 1,
"@max": 1000
}
}
}
}
}
JSON_AutoGotoCfg
AutoGotoCfg message in JSON format
{
"AutoGotoCfg":{
"enable": ,
/*optional, boolean type, whether to enable*/
"autoRecoveryTime":
/*optional, integer type, automatically restored time after the PTZ control is disabled, unit: second*/
}
}
JSON_AutoGotoCfgCap
AutoGotoCfgCap message in JSON format
{
"AutoGotoCfgCap":{
546
Intelligent Security API (General) Developer Guide
"enable":"true,false",
/*optional, whether to enable*/
"autoRecoveryTime":{
/*optional, automatically restored time after the PTZ control is disabled, unit: second*/
"@min": ,
"@max":
}
}
}
JSON_AutoMaintenance
AutoMaintenance message in JSON format
{
"AutoMaintenance":{
"enabled": true,
/*required, boolean, enable or not*/
"dayOfWeek": "",
/*required, integer, day of the week, ranges from 1 to 7, 1-Monday, 2-Tuesday, and so on*/
"rebootTime": "",
/*required, reboot time, corrects to minute, it is 0 by default, ISO8601 format, string*/
}
}
JSON_AutoMaintenanceCap
AutoMaintenanceCap message in JSON format
{
"AutoMaintenanceCap":{
"enabled": "true,false",
/*required, boolean, enable or not*/
"dayOfWeek":{
/*required, integer, day of the week, ranges from 1 to 7, 1-Monday, 2-Tuesday, and so on*/
"@min": 1,
"@max": 7,
"#text": 1
},
}
}
JSON_AutoSwitch
AutoSwitch message in JSON format
547
Intelligent Security API (General) Developer Guide
{
"AutoSwitch":{
"enabled":true,
/*required, boolean, whether to enable power on or off*/
"openTime":"10:00:00",
/*required, string, power on time, which is accurate to minute with the time format of ISO8601*/
"closeTime":"10:00:00"
}
}
JSON_AutoSwitchCap
AutoSwitchCap message in JSON format
{
"AutoSwitchCap":{
"enabled":"true,false"
/*required, boolean, whether to enable auto power on or off*/
}
}
JSON_Backup
JSON message about hot spare device information
{
"Backup":{
/*hot spare device information*/
"addressingFormatType": "ipaddress",
/*required, string, hot spare address type: "ipaddress" (IP address), "hostname"-domain name; the maximum length
is 32 bytes*/
"ipAddress": "ipv4",
/*dependent, string, IP address type: "ipv4", "ipv6"; the maximum length is 32 bytes. It is valid when the value of
addressingFormatType is "ipaddres"*/
"ipv6Address": "",
/*dependent, string, IPv6 address; the maximum length is 128 bytes. It is valid when the value of
addressingFormatType is "ipaddres"*/
"portNo": 10001,
/*optional, integer32, port No., default value: 10001*/
"hostName":"",
/*dependent, string, domain name; the maximum length is 128 bytes. It is valid when the value of
addressingFormatType is "hostname"*/
"admin":"",
/*required, write-only, string, user name; the maximum length is 16 bytes; the sensitive information is encrypted*/
"password":""
/*required, write-only, string, user password; the maximum length is 16 bytes; the sensitive information is encrypted*/
}
}
548
Intelligent Security API (General) Developer Guide
JSON_BackupID
JSON message about added hot spare device information
{
"backupID":
/*required, int, hot spare device ID, which is managed by the device; value range: [1,32]*/
}
JSON_BackupList
JSON message about hot spare device list
{
"Backup":[{
/*hot spare device information*/
"id":1,
/*required, int, hot spare device ID*/
"addressingFormatType": "ipaddress",
/*required, string, hot spare address type: "ipaddress" (IP address), "hostname"-domain name; the maximum length
is 32 bytes*/
"ipAddress": "ipv4",
/*dependent, string, IP address of hot spare device: "ipv4", "ipv6"; the maximum length is 32 bytes; it is valid when
the value of addressingFormatType is "ipaddres"*/
"ipv6Address": "",
/*dependent, string, IPv6 address of hot spare device; the maximum length is 128 bytes; it is valid when the value of
addressingFormatType is "ipaddres"*/
"portNo": 7200,
/*optional, integer32, port No., default value: 10001*/
"hostName":"",
/*dependent, string, domain name; the maximum length is 128 bytes; it is valid when the value of
addressingFormatType is "hostname"*/
}]
}
JSON_CalibrationStatus
CalibrationStatus message in JSON format
{
"CalibrationStatus":{
/*required, string type, installation angle calibration status: "Calibrated"-calibrated, "Uncalibrated"-uncalibrated*/
}
}
549
Intelligent Security API (General) Developer Guide
JSON_Cap_CalibrationStatus
CalibrationStatus message in JSON format
{
"CalibrationStatus":{
/*required, string type, installation angle calibration status: "Calibrated"-calibrated, "Uncalibrated"-uncalibrated*/
"@opt":"Calibrated,Uncalibrated"
}
}
JSON_Cap_CaputreDescription
JSON message about capability of capturing picture in URL format
{
"CaputreDescription":{
"imageType":{
/*required, string, picture type: "JEPG"*/
"@opt":["JPEG"]
},
"URLType":{
/*required, string, URL type: "cloudURL"*/
"@opt":["cloudURL"]
}
}
}
JSON_Cap_CertificateSelect
CertificateSelect capability message in JSON format
{
"CertificateSelect":{
"Function":[{
/*required, function list*/
"functionName":"HTTPS",
/*required, function name, it should be set to one of the following values:
"HTTPS","WebSocketS","SDK_OVER_TLS","SRTP","securityLog","ieee802.1x"*/
"certificateType":["client", "server", "CA"]
/*required, certificate type required by this function, it should be set to one or multiple values of the following
options: "client","server","CA"*/
}],
"clientCertificate":{
/*optional, optional client certificate types*/
"@opt":["name1"]
},
"serverCertificate":{
550
Intelligent Security API (General) Developer Guide
JSON_Cap_CleanUpFileList
Message about getting the capability of deleting saved files in a batch in JSON format
{
"CleanUpFileList": {
"@size": ,
/*required, int, the maximum number of files that can be deleted in a single time*/
"trackId":
/*required, boolean, No. of supported files, read-only*/
}
}
JSON_Cap_ClearingSpaceConfig
JSON message about configuration capability of HDD clearing
{
"ClearingSpaceConfig":{
/*when the free space of HDD reaches the configured value of insufficientSpace, and if the value of
clearingOriginalData is true, the configured HDD space size will be cleared*/
"insufficientSpace":{
/*required, int, HDD free space, which is used as the threshold to start clearing*/
"@min":0,
/*minimum value of the range*/
"@max":100
/*maximum value of the range*/
},
"clearingOriginalData":{
/*required, boolean, whether to enable clearing the original data*/
"opt":"true,false"
},
"clearingSpace":{
/*required, int, space size to clear*/
551
Intelligent Security API (General) Developer Guide
"@min":0,
/*minimum value of the range*/
"@max":100
/*maximum value of the range*/
}
}
}
JSON_Cap_CommuMode
CommuMode capability message in JSON format
{
"CommuMode":{
"mode":{
/*required, string type, security mode level of the private protocol: "compatibilityMode"-compatibility mode,
"safeMode"-security mode*/
"@opt":"compatibilityMode,safeMode"
}
}
}
JSON_Cap_ExportInfo
ExportInfo capability message in JSON format
{
"ExportInfo":{
"mediaType":{
/*required, string, exported data type: "video", "audio", "metadata", "text", "mixed", "other". It should be the same
as the search type. For pictures, this node should be set to "metadata"*/
"@opt":["video", "audio", "metadata", "text", "mixed", "other"]
},
"playbackURIList":{
/*required, array, file path*/
"@size":1
/*supported list size to be exported*/
}
}
}
JSON_Cap_IntelliManagement
JSON message about capability of intelligent management
{
"requestURL":"",
552
Intelligent Security API (General) Developer Guide
"statusCode": ,
"statusString":"",
"subStatusCode":"",
"errorCode": ,
"errorMsg":"",
/*see the description of this node and the above nodes in the message of JSON_ResponseStatus*/
"isSuportTask":true,
/*optional, boolean type, whether it supports task: "true"-yes, "false"-no*/
"isSupportCtrlCenter":true,
/*optional, boolean type, whether it supports control center: "true"-yes, "false"-no*/
"isSuportIntelligentSearch":true,
/*optional, boolean type, whether it supports intelligent search: "true"-yes, "false"-no*/
"isSuportExecuteControl":true,
/*optional, boolean type, whether it supports arming: "true"-yes, "false"-no*/
"isSuportDataStatistics":true,
/*optional, boolean type, whether it supports statistics: "true"-yes, "false"-no*/
"isSupportIntelligentStorage":true,
/*optional, boolean type, whether it supports intelligent storage: "true"-yes, "false"-no*/
"isSupportServer":true,
/*optional, boolean type, whether it supports service configuration: "true"-yes, "false"-no*/
"isSuportAlgorithmModel":true,
/*optional, boolean type, whether it supports algorithm model configuration: "true"-yes, "false"-no*/
"isSupportCluster":true,
/*optional, boolean type, whether it supports cluster: "true"-yes, "false"-no*/
"isSupportSearchResultDisplay":true,
/*optional, boolean type, whether it supports display configuration: "true"-yes, "false"-no*/
"isSuportTranscodeAnalysisUnit":true,
/*optional, boolean type, whether it supports transcoding analysis unit: "true"-yes, "false"-no*/
"isSuportFactoryReset":true,
/*optional, boolean type, whether it supports restoring to factory settings: "true"-yes, "false"-no*/
"isSupportUPS":true,
/*optional, boolean type, whether it supports UPS: "true"-yes, "false"-no*/
"isSuportCity":true,
/*optional, boolean type, whether it supports city: "true"-yes, "false"-no*/
"isSuportClusterEnableStatus":true,
/*optional, boolean type, whether it supports enabling cluster status: "true"-yes, "false"-no*/
"isSupportSensitivity":true,
/*optional, boolean type, whether it supports sensitivity configuration: "true"-yes, "false"-no*/
"isSupportConfidence":true,
/*optional, boolean type, whether it supports confidence configuration: "true"-yes, "false"-no*/
"isSuportEventSearch":true,
/*optional, boolean, whether it supports event search: "true"-yes, "false"-no*/
"isSupportAudioFileUpload":true,
/*optional, boolean type, whether it supports importing audio file: "true"-yes, "false"-no*/
"isSupportIntelligentMode":true,
/*optional, boolean type, whether it supports intelligent mode configuration: "true"-yes, "false"-no*/
"saveCapturedDataMaxDays":90,
/*optional, int*, the captured pictures can be saved in local HDD up to 90 days by default, when the number of days
reaches the limit, the records will be overwritten by day.*/
"isSupportAlgorithmTraining": true,
/*optional, boolean, whether it supports algorithm training, "true"-yes, "false"-no*/
"isSupportDataResync":true,
553
Intelligent Security API (General) Developer Guide
554
Intelligent Security API (General) Developer Guide
format=json*/
"isSupportAlgTrainResourceInfo": ,
/*optional, boolean, whether it supports getting the source information of the algorithm training platform, related
URI: /ISAPI/SDT/algorithmTraining/ResourceInfo?format=json*/
"isSupportAlgTrainAuthInfo": ,
/*optional, boolean, whether it supports getting the authorization information of the algorithm training platform,
related URI: /ISAPI/SDT/algorithmTraining/SoftLock/AuthInfo?format=json*/
"isSupportAlgTrainNodeList": ,
/*optional, boolean, whether it supports getting the node information of the algorithm training platform, related
URI: /ISAPI/SDT/algorithmTraining/NodeList?format=json*/
"isSupportHumanSelectStrategy":
/*optional, boolean, whether it supports configuring the strategy of selecting the human body analysis target*/
}
See Also
JSON_ResponseStatus
JSON_Cap_PictureServerInformation
PictureServerInformation capability message in JSON format
{
"PictureServerInformation":{
"pictureServerType":{
/*required, string type, picture storage server type: "tomact", "VRB", "cloudStorage"-cloud storage, "KMS"*/
"@opt":"tomact,VRB,cloudStorage,KMS",
"#text":""
},
"addressingFormatType":{
/*required, string type, format type of the picture storage server address: "ipaddress"-IP address (default),
"hostname"-host name*/
"@opt":"ipaddress,hostname",
"#text":""
},
"hostName":{
/*string type, domain name of the picture storage server, the string length is between 0 and 64. This field is valid
when addressingFormatType is "hostname"*/
"@min":0,
"@max":64,
"#text":""
},
"ipv4Address":{
/*string type, IPv4 address of the picture storage server, the string length is between 0 and 64. This field is valid when
addressingFormatType is "ipaddress"*/
"@min":0,
"@max":64,
"#text":""
},
"ipv6Address":{
/*string type, IPv6 address of the picture storage server, the string length is between 0 and 128. This field is valid
555
Intelligent Security API (General) Developer Guide
556
Intelligent Security API (General) Developer Guide
"@max":32,
"#text":""
},
"cloudPassword":{
/*required, string type, password of the cloud storage server, the string length is between 0 and 32*/
"@min":0,
"@max":32,
"#text":""
},
"cloudPoolId":{
/*required, integer type, cloud storage pool ID, which is between 1 and 4294967295. If this field is not configured by
the upper-level, this field will be set to 1 by default*/
"@min":1,
"@max":4294967295,
"#text":
},
"cloudPoolIdEx":{
/*optional, string, cloud storage pool ID, this node is valid when cloud storage pool ID of type string is supported*/
"@min":0,
"@max":0,
"#text":""
},
"clouldProtocolVersion":{
/*required, string type, protocol version of the cloud storage server, the string length is between 0 and 32*/
"@min":0,
"@max":32,
"#text":""
},
"clouldAccessKey":{
/*string type, cloud storage server access_key, the string length is between 0 and 64. This field is valid when
clouldProtocolVersion is "V2.0"*/
"@min":0,
"@max":64
},
"clouldSecretKey":{
/*string type, cloud storage server secret_key, the string length is between 0 and 64. This field is valid when
clouldProtocolVersion is "V2.0"*/
"@min":0,
"@max":64
}
}
}
}
JSON_Cap_POE
POE capability message in JSON format
{
"POE": {
"ipVersion": {
557
Intelligent Security API (General) Developer Guide
JSON_Cap_RemarkList
JSON message about capability of adding remarks for videos by video ID
{
"RemarkList": {
"@size": 100,
/*maximum number of remarks can be added for once, the default value is 100*/
"trackId": ,
/*whether it supports file No.*/
"remarks": ,
/*whether it supports adding remarks for file*/
"recordName":{
/*optional, string, file name of video, audio, or picture*/
"@min":1,
"@max":100
},
"recorderCode":{
/*optional, string, ID of device that collects data, which should be encrypted*/
"@min":1,
"@max":100
},
"policeCode":{
/*optional, string, ID of police that collects the data, which should be encrypted*/
"@min":1,
"@max":100
}
}
}
JSON_Cap_ReportCenterCfg
ReportCenterCfg capability message in JSON format
{
"ReportCenterCfg":{
"CenterID":{
/*center group No.*/
"@min": ,
"@max":
},
"enable":"true,false",
558
Intelligent Security API (General) Developer Guide
JSON_Cap_SSD
JSON message about SSD management capability
{
"SSD":{
"isSupportSSDUpgrade":true
/*optional, boolean, whether the device supports SSD firmware upgrade (related URI: /ISAPI/ContentMgmt/
storage/ssd/<ID>/upgrade?format=json)*/
}
}
JSON_Cap_TimeSearchCond
Capability message about searching for recording start and end time in JSON format
{
"TimeSearchCond": {
"@size": 1024,
/*the maximum number of search conditions that can be set*/
"channelID": {
/*required, int, channel No.*/
"@min": 1,
"@max": 256
/*value range of the channel No.*/
},
"streamType": {
/*optional, string, stream type, "main,sub,adaptive"*/
"@opt": [
"main",
"sub",
559
Intelligent Security API (General) Developer Guide
"adaptive"
]
}
},
"TimeSearchResult": {
"@size": 1024,
/*the maximum number of results that can be returned*/
"channelID": {
/*required, int, channel No.*/
"@min": 1,
"@max": 256
/*value range of the channel No.*/
},
"streamType": {
/*optional, string, stream type, "main,sub,adaptive"*/
"@opt": [
"main",
"sub",
"adaptive"
]
},
"hasRecord": {
/*required, boolean, whether the video exists, startTime and endTime are valid only when the value of hasRecord is
"true"*/
"@opt": [
true,
false
]
},
"startTime": {
/*optional, string, recording start time, e.g., 2010-01-01T00:00:00+08:00, this field is required when the value of
hasRecord is "true"*/
"@min": 0,
"@max": 64
},
"endTime": {
/*optional, string, recording end time, e.g., 2010-01-01T00:00:00+08:00, this field is required when the value of
hasRecord is "true"*/
"@min": 0,
"@max": 64
}
}
}
JSON_Cap_WiresharkToUSB
JSON message about configuration capability of exporting captured packets to USB flash drive
{
"WiresharkToUSB": {
"switch": "",
560
Intelligent Security API (General) Developer Guide
"operateCmd": "",
"DeviceCondList": [
{
"DeviceCond": {
"id": ,
"devType": "",
"devID": ,
"subSys": ,
}
}
]
}
}
JSON_Cap_WorkingStatus
WorkingStatus capability message in JSON format
{
"WorkingStatusCap":{
"devStatus":{
"@opt": "0,1,2"
/*required, integer type, value of device status: 0-normal, 1-CPU usage, higher than 85%, 2-hardware error (e.g., serial
port exception)*/
},
"ChanStatus":{
"chanNo": "",
/*required, integer type, channel No., which starts from 1*/
"enable": "",
/*integer type, it is valid for analog channel only, 0-disable, 1-enable*/
"online": "",
/*required, integer type, online status: 0-offline, 1-online*/
"record":{
"@opt": "0,1,2",
/*integer type, recording status: 0-recording, 1-recording exception (HDD exception), 2-recording exception (network
camera offline), 3-recording exception (other reason)*/
},
"signal": "",
/*required, integer type, signal status: 0-normal, 1-signal loss*/
"linkNum": "",
/*required, integer type, number of software clients connected to this channel*/
"bitRate": ""
/*required, integer type, channel bit rate, unit: Kpbs*/
},
"HDStatus":{
"hdNo": "",
/*required, integer type, HDD No., which starts from 1*/
"enable": "",
"status":{
"@opt": "0,1,2",
/*required, integer type, HDD status: 0-activate, 1-sleep, 2-exception, 3-sleepy HDD error, 4-unformated, 5-
561
Intelligent Security API (General) Developer Guide
JSON_CaputreDescription
JSON message about parameters of capturing picture in URL format
{
"CaputreDescription":{
"imageType":"JPEG",
/*required, string, picture type: "JEPG"*/
"URLType":"cloudURL",
/*required, string, URL type: "cloudURL"-cloud storage or third party storage, "localURL"-device local storage*/
/*When the message is transmitted via ISUP protocol, the "URLType" should be "cloudURL"*/
}
}
JSON_CaputreResult
JSON message about picture capture result
{
"CaputreResult":{
"URLType":"cloudURL",
/*required, string, URL type: "cloudURL"-cloud storage or third party storage, "localURL"-device local storage*/
"imageURL":""
/*required, string, picture URL*/
}
}
JSON_CertificateRevocation
CertificateRevocation message in JSON format
{
"CertificateRevocation":{
"enabled": ,
/*required, boolean, whether to enable certificate expiry alarm*/
562
Intelligent Security API (General) Developer Guide
"expireAlarmTime": ,
/*required, integer, number of days to prompt in advance before the certificate is expired*/
"detecteTime":"",
/*required, time, detection time of certificate expiry alarm*/
"intervalTime":
/*required, integer, alarm interval, unit: day*/
}
}
JSON_CertificateRevocationCap
CertificateRevocationCap capability message in JSON format
{
"CertificateRevocationCap":{
"enabled":{
/*required, boolean, whether to enable certificate expiry alarm*/
"@opt":[true, false]
},
"expireAlarmTime":{
/*required, integer, number of days to prompt in advance before the certificate is expired*/
"@min":1,
"@max":30,
"@def":7
},
"detecteTime":{
/*required, time, detection time of certificate expiry alarm*/
"@min":"00:00",
"@max":"24:00",
"@def":"10:00"
},
"intervalTime":{
/*required, integer, alarm interval, unit: day*/
"@min":1,
"@max":30,
"@def":1
}
}
}
JSON_CertificateSelect
CertificateSelect message in JSON format
{
"CertificateSelect":{
/*you can choose one field among clientCertificate, serverCertificate, and CACertificate to configure as needed*/
"clientCertificate":"",
/*optional, string, client certificate type*/
563
Intelligent Security API (General) Developer Guide
"serverCertificate":"",
/*optional, string, server certificate type*/
"CACertificate":"",
/*optional, string, CA certificate type*/
"SRTPSecurityAlgorithm":""
/*optional, string, encryption algorithm*/
}
}
JSON_ChanCond
ChanCond message in JSON format
{
"ChanCond":{
"chanNo": […,…]
/*specify channel No. to get the status*/
}
}
JSON_ChanStatus
ChanStatus message in JSON format
{
"ChanStatus":[{
"chanNo": ,
/*required, integer type, channel No., which starts from 1*/
"enable": ,
/*integer type, it is valid for analog channel only, 0-disable, 1-enable*/
"online": ,
/*required, integer type, online status: 0-offline, 1-online*/
"record": ,
/*required, whether the device is recording, 0-no, 1-yes*/
"recordStatus ": ,
/*integer type, recording status: 0-recording, 1-recording exception (HDD exception), 2-recording exception (network
camera offline), 3-recording exception (other reason)*/
"signal": ,
/*required, integer type, signal status: 0-normal, 1-signal loss*/
"linkNum": ,
/*required, integer type, number of software clients connected to this channel*/
"bitRate":
/*required, integer type, channel bit rate, unit: Kpbs*/
},
{
"chanNo": ,
/*required, integer type, channel No., which starts from 1*/
"enable": ,
/*integer type, it is valid for analog channel only, 0-disable, 1-enable*/
564
Intelligent Security API (General) Developer Guide
"online": ,
/*required, integer type, online status: 0-offline, 1-online*/
"record": ,
/*required, whether the device is recording, 0-no, 1-yes*/
"recordStatus ": ,
/*integer type, recording status: 0-recording, 1-recording exception (HDD exception), 2-recording exception (network
camera offline), 3-recording exception (other reason)*/
"signal": ,
/*required, integer type, signal status: 0-normal, 1-signal loss*/
"linkNum": ,
/*required, integer type, number of software clients connected to this channel*/
"bitRate":
/*required, integer type, channel bit rate, unit: Kpbs*/
}]
}
JSON_Channel_CustomAudioInfo
JSON message about custom alarm sound file of a channel
{
"CustomAudioInfo": {
"CustomAudioList":[{
/*required, information list about custom alarm sound file*/
"customAudioID": ,
/*required, int, custom alarm sound file ID, value range: [1,3]*/
"customAudioName": ""
/*required, string, name of custom sound file; the maximum size is 24 bytes*/
}]
}
}
JSON_ChannelAudioAlarmCap
JSON message about the audible warning configuration capability of a channel
{
"AudioAlarmCap":{
"audioTypeListCap":[{
/*required, alarm sound types, 1-siren, 2-"Warning, this is a restricted area", 3-"Waring, this is a restricted area,
please keep away", 4-"Warning, this is a no-parking zone", 5-"Warning, this is a no-parking zone, please keep away",
6-"Attention please. The area is under surveillance", 7-"Welcome,Please notice that the area is under surveillance",
8-"Welcome", 9-"Danger! Please keep away", 10-siren + "Danger, please keep away", 11-Audio Warning, 12-Beep
Sound, 13-custom alarm sound 1, 14-custom alarm sound 2, 15-custom alarm sound 3, 16-AI custom audio file*/
"audioID": 1,
"audioDescription":"siren"
},
{
"audioID": 2,
565
Intelligent Security API (General) Developer Guide
566
Intelligent Security API (General) Developer Guide
567
Intelligent Security API (General) Developer Guide
}
}
}
JSON_ChannelInfoList
ChannelInfoList message in JSON format
{
"ChannelInfoList":{
"ChannelInfo":[{
"chanNo": ,
/*required, integer type, channel No.*/
"enable": ,
/*integer type, it is valid for analog channel only, 0-disable, 1-enable*/
"name":"",
/*string type, channel name*/
"online": ,
/*integer type, online status: 0-offline, 1-online*/
"linknum":
}]
}
}
JSON_ChannelInfo
ChannelInfo message in JSON format
{
"ChannelInfo": [{
"chanNo": ,
/*required, integer type, channel No.*/
"enable": ,
/*integer type, it is valid for analog channel only, 0-disable, 1-enable*/
"name": "",
/*string type, channel name*/
"online": ,
/*integer type, online status: 0-offline, 1-online*/
"linknum": ,
/*number of live view channels*/
}]
}
JSON_ChangedStatus
ChangedStatus message in JSON format
568
Intelligent Security API (General) Developer Guide
{
ChangedStatus: {
"seq": ,
/*32-byte integer type, alarm No., for alarm acknowladge*/
"devStatus": ,
/*integer type, value of device status: 0-normal, 1-CPU usage, higher than 85%, 2-hardware error (e.g., serial port
exception)*/
"devCapHash": "";
/*global Hash value of device capability, which is generated by MD5, and encrypted by Base64; for NVR, the Hash
value of network camera should be the calculation source*
"zeroChanEnable": ,
/*boolean type, whether the channel-zero is enabled: true-yes, false-no*/
"cycleRecordEnable": true,
/*boolean type, whether to enable recoridng, true-yes, false-no*/
"chanChanged": […,…,…]
/*integer type, channel status changes, e.g., delete, edit, add, the Hash value of this channel changed*/
"hdChanged": […,…,…]
/*integer type, HDD status changes, e.g., delete, edit, add*/
"ChanStatus": [{
"chanNo": ,
/*integer type, channel No., read-only*/
"enable": 1,
/*integer type, it is valid for analog channel only, 0-disable, 1-enable*/
"online": ,
/*required, integer type, online status: 0-offline, 1-online*/
"recordStatus ": ,
/*integer type, recording status: 0-recording, 1-recording exception (HDD exception), 2-recording exception (network
camera offline), 3-recording exception (other reason)*/
"signal": ,
/*required, integer type, signal status: 0-normal, 1-signal loss*/
"arming": ,
/*integer type, network camera arming status: 0-armed, 1-arming failed*/
}],
"HDStatus":[{
"hdNo": ,
/*required, integer type, HDD No., which starts from 1*/
"status": ,
/*required, integer type, HDD status: 0-activate, 1-sleep, 2-exception, 3-sleepy HDD error, 4-unformated, 5-
disconnected (for network HDD), 6-formatting*/
}],
"CapChanged": [{
"name": "",
/*required, root node of changed capability set*/
"chan": ,
/*channel No., it is required when transmitting channel capability; it is optional when transmitting device capability*/
"url": "/ISAPI/Thermal/channels/1/fireDetection/capabilities",
/*capability set URL, it is required for capability set based on ISAPI protocol*/
},
{
"name": "",
/*required, capability set name, which is usually the root node*/
"chan": 1,
569
Intelligent Security API (General) Developer Guide
/*channel No., it is required when transmitting channel capability; it is optional when transmitting device capability*/
"abilityType": 0x700,
/*capability type, it is required if the capability is not based on ISAPI protocol*/
}]
}
}
JSON_Characteristic
JSON message about device attribute code
{
"Characteristic": {
/*required, attribute code*/
"code": "+/"
/*required, string, device attribute code, value range: [1,128]; following characters in the quotes are supported:
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"*/
}
}
JSON_CleanUpFileList
Message about deleting saved files in a batch in JSON format
{
"CleanUpFileList": [{
"trackId ": ""
/*required, string, file No.*/
}
]
}
JSON_ClearingSpaceConfig
JSON message about HDD clearing parameters
{
"ClearingSpaceConfig":{
/*when the free space of HDD reaches the configured value of insufficientSpace, and if the value of
clearingOriginalData is true, the configured HDD space size will be cleared*/
"insufficientSpace": ,
/*required, int, HDD free space, which is used as the threshold to start clearing*/
"clearingOriginalData": ,
/*required, boolean, whether to enable clearing the original data*/
"clearingSpace":
/*required, int, space size to clear*/
570
Intelligent Security API (General) Developer Guide
}
}
JSON_CommuMode
CommuMode message in JSON format
{
"CommuMode":{
"mode":""
/*required, string type, security mode level of the private protocol: "compatibilityMode"-compatibility mode,
"safeMode"-security mode*/
}
}
JSON_CustomAudioID
JSON message about custom alarm sound ID
{
"customAudioID":
/*required, string, custom alarm sound ID, the value can be 1 to 3*/
}
JSON_CustomAudioInfo
JSON message about custom alarm sound file information
{
"CustomAudioInfo": {
/*required, related information about custom alarm sound file*/
"customAudioID": ,
/*required, int, custom alarm sound file ID, the value can be 1 to 3*/
"customAudioName": ""
/*required, string, name of custom sound file, the maximum size is 24 bytes*/
}
}
JSON_CustomAudioTypeInfoList
JSON message about encoding format of custom audio file
{
"CustomAudioTypeInfoList":[{
/*encoding format list of custom audio file*/
"CustomAudioTypeInfo":{
571
Intelligent Security API (General) Developer Guide
JSON_DataReconstruction
JSON message about disk data reconstruction parameters
{
"DataReconstruction":{
"dataType": "record",
/*required, string, reconstruction data type: "all", "record"*/
"diskID": [1,2],
/*optional, array of integers, disk ID for single disk mode*/
"IRAID": [1,2]
/*optional, array of integers, RAID ID for RAID mode*/
}
}
JSON_DeviceCertificate
DeviceCertificate message in JSON format
{
"DeviceCertificate":{
"CertificateInfo":{
"issuerDN":"",
/*required, string, read-only, name of the authority that issued the certificate*/
"subjectDN":"",
/*required, string, read-only, certificate holder name*/
"startDate":"",
/*required, date, read-only, start date of the certificate validity period, it is accurate to day*/
"endDate":"",
/*required, date, read-only, end date of the certificate validity period, it is accurate to day*/
572
Intelligent Security API (General) Developer Guide
"type":"",
/*optional, string, read-only, certificate type: "https", "websockets", "SDKoverTLS", "SRTP", "securityLog",
"ieee802.1x". Multiple types should be separated by commas*/
"status":"",
/*optional, string, read-only, certificate status: "normal", "expired", "exceptional"*/
"customID":""
/*optional, string, read-only, custom certificate ID, it is created when the user imports the certificate and it consists of
digits and characters*/
}
}
}
JSON_DeviceCertificateCap
DeviceCertificateCap capability message in JSON format
{
"DeviceCertificateCap":{
"customID":{
/*required, string, custom certificate ID, it is created when the user imports the certificate and it consists of digits and
characters*/
"@min":1,
"@max":64,
"status":{
/*optional, string, certificate status: "normal", "expired", "exceptional"*/
"@opt":["normal", "expired", "exceptional"]
}
}
}
}
JSON_DeviceCertificates
DeviceCertificates message in JSON format
{
"DeviceCertificates":{
"CertificateInfoList":{
"CertificateInfo": [{
"id": ,
/*required, integer32, read-only, certificate ID, which starts from 1*/
"issuerDN": "",
/*required, string, read-only, name of the authority that issued the certificate*/
"subjectDN": "",
/*required, string, read-only, certificate holder name*/
"startDate": "",
/*required, read-only, start date of certificate expiry period, it is accurate to day*/
"endDate": "",
/*required, read-only, end date of certificate expiry period, it is accurate to day*/
573
Intelligent Security API (General) Developer Guide
"type": "",
/*optional, read-only, certificate type: "wpa", "securityLog", "ieee802.1x", "HTTPS", "WebSocketS", "SDK_OVER_TLS",
"SRTP". Multiple types can be separated by commas*/
"status": "",
/*optional, string, read-only, certificate status: "normal", "expired", "exceptional"*/
"customID": ""
/*optional, string, read-only, custom certificate ID, it is created when the user imports the certificate and it consists of
digits and characters*/
}]
}
}
}
JSON_DeviceCertificatesCap
DeviceCertificatesCap message in JSON format
{
"DeviceCertificatesCap":{
"CertificateInfoList":{
"@size": 64,
/*required, integer32 type, read-only*/
"CertificateInfo": [{
"id": {
/*required, integer32 type, read-only, certificate ID, which starts from 1*/
"@min":1,
"@max":64,
"#text":
}
"issuerDN": "",
/*required, string type, read-only, certificate issue*/
"subjectDN": "",
/*required, string type, read-only, certificate holder name*/
"startDate": "",
/*required, read-only, start date of certificate expiry period, it accurate to day*/
"endDate": ""
/*required, read-only, end date of certificate expiry period, it accurate to day*/
"type": {
/*optional, read-only, certificate type*/
"@opt":"wpa, securityLog, ieee802.1x"
}
}]
}
}
}
574
Intelligent Security API (General) Developer Guide
JSON_DeviceCertificateStatus
DeviceCertificateStatus message in JSON format
{
"DeviceCertificateStatus": {
/*required, status of device certificate*/
"id": "",
/*required, read-only, string type, certificate ID, which is generated and returned by device*/
"status": ""
/*required, string type, certificate status: normal, abnormal*/
}
}
JSON_DeviceCertificateStatusList
DeviceCertificateStatusList message in JSON format
{
"DeviceCertificateStatusList": [{
"DeviceCertificateStatus": {
/*required, status of device certificate*/
"id": "",
/*required, read-only, string type, certificate ID, which is generated and returned by device*/
"status": ""
/*required, string type, certificate status: normal, abnormal*/
}
}]
}
JSON_DiagnosedDataServerCap
JSON message about diagnostic server capability
{
"DiagnosedDataServerCap":{
/*required, diagnostic server capability*/
"id":{
"@min":1,
"@max":1
},
"protocol":{
/*required, string, transmission protocol: "FTP,SFTP"*/
"@opt":["FTP", "SFTP"]
},
"enabled":{
/*required, boolean, whether to enable*/
"@opt":[true, false]
575
Intelligent Security API (General) Developer Guide
},
"addressingFormatType":{
/*optional, string, address type: "ipaddress" (IP address), "hostname" (host name)*/
"@opt":["ipaddress", "hostname"]
},
"hostName":{
/*dependent, string, host name, the maximum length is 64 bytes; it is valid when the value of addressingFormatType
is "hostname"*/
"@min":1,
"@max":64
},
"ipVersion":{
/*dependent, string, IP version: "ipv4", "ipv6"; it is valid when the value of addressingFormatType is "ipaddress"*/
"@opt":["ipv4", "ipv6"]
},
"portNo":{
/*optional, int, port No., value range: [1,65535]*/
"@min":1,
"@max":65535
},
"userName":{
/*required, string, user name, the maximum length is 32 bytes*/
"@min":0,
"@max":32
},
"password":{
/*string, write-only, password, the maximum length is 16 bytes*/
"@min":0,
"@max":16
},
"isSupportStartTime":true,
/*required, boolean, whether the device supports start time, i.e., uploads the diagnosis information and running logs
of device from the start time; the time is in ISO 8601 format*/
"isSupportEndTime":true,
/*required, boolean, whether the device supports end time., i.e., no longer uploads the diagnosis information and
running logs of device after end time; the time is in ISO 8601 format*/
"isSupportTest":true,
/*required, boolean, whether the device supports server test (related URI: /ISAPI/System/diagnosedData/server/test?
format=json)*/
"isSupportUpload":true,
/*required, boolean, whether the device supports uploading diagnosis information (such as running logs, 4G network,
MCU, and SOC information)*/
"consoleCommand":{
/*required, string, console command, the length is between 1 to 512 bytes*/
"@min":1,
"@max":512
},
"compressionKey":{
/*optional, string, the decompression password of uploaded diagnosis information in compression file; the length is
between 8 to 16 bytes; digits and letters are supported*/
"@min":8,
"@max":16
576
Intelligent Security API (General) Developer Guide
}
}
}
JSON_DiagnosedDataServerList
JSON message about diagnostic server configuration parameters.
{
"DiagnosedDataServerList":[{
/*required, diagnostic server parameters*/
"id":1,
/*required, string, index*/
"protocol":"FTP",
/*required, string, transmission protocol: "FTP,SFTP"*/
"enabled":true,
/*required, boolean, whether to enable*/
"addressingFormatType":"ipaddress",
/*optional, string, address type: "ipaddress" (IP address), "hostname" (host name)*/
"hostName":"www.baidu.com",
/*dependent, string, host name, the maximum length is 64 bytes; it is valid when the value of addressingFormatType
is "hostname"*/
"ipVersion":"ipv4",
/*dependent, string, IP version: "ipv4", "ipv6"; it is valid when the value of addressingFormatType is "ipaddress"*/
"ipV4Address":"10.17.132.254",
/*dependent, string, IPv4 address; it is valid when the value of ipVersion is "ipv4", and addressingFormatType is
"ipaddress"*/
"ipv6Address":"fe80::884a:67cb:9b67:b3a0%15",
/*dependent, string, IPv6 address; it is valid when the value of ipVersion is "ipv6", and addressingFormatType is
"ipaddress"*/
"portNo":20,
/*optional, int, port No., value range: [1,65535]*/
"userName":"admin",
/*required, string, user name, the maximum length is 32 bytes; this node should be encrypted*/
"password":"admin",
/*string, write-only, password, the maximum length is 16 bytes; this node should be encrypted*/
"DiagnosedDataUpload":{
"consoleCommand":"qwertyuiopasdfghj",
/*required, string, write-only, console command, the length is between 1 to 512 bytes; this node should be
encrypted*/
"compressionKey":"qwertyuiopasdfghj",
/*required, string, the decompression password of uploaded diagnosis information in compression file; the length is
between 8 to 16 bytes; digits and letters are supported; this node should be encrypted*/
"startTime":"2017-06-10T13:30:00+08:00",
/*dependent, datetime, start time in ISO 8601 format, e.g., "2017-06-10T13:30:00+08:00"; device uploads the
diagnosis information and running logs of device from the start time*/
"endTime":"2017-06-10T13:30:00+08:00"
/*dependent, datetime, time in ISO 8601 format, e.g., "2017-06-10T13:30:00+08:00"; device no longer uploads the
diagnosis information and running logs of device after end time*/
}
577
Intelligent Security API (General) Developer Guide
}]
}
JSON_DiagnosisCond
DiagnosisCond message in JSON format
{
"DiagnosisCond":{
"command":"",
/*required, string type, diagnosis command*/
"selfdefineCmd":""
/*string type, custom diagnosis command, it is valid when command is set to "selfdefine"*/
}
}
JSON_DiagnosisCondCap
DiagnosisCondCap capability message in JSON format
{
"DiagnosisCondCap":{
/*diagnosis condition capability*/
"command":{
/*required, supported diagnosis command*/
"@opt":[
"system",
/*diagnose system*/
"alarm",
/*diagnose alarm*/
"peripheral",
/*diagnose peripheral*/
"wifi",
/*diagnose Wi-Fi network*/
"cloud",
/*diagnose cloud*/
"GPRS/3G/4G",
/*diagnose mobile network*/
"IPC",
/*diagnose network camera*/
"ARC",
/*diagnose alarm center*/
"selfdefine"
/*custom diagnosis command*/
]
},
"selfdefineCmd":{
/*length range of the custom diagnosis command, it is valid when "selfdefine" is included in command*/
"@min": ,
578
Intelligent Security API (General) Developer Guide
/*required, integer type, the minimum length of the custom diagnosis command*/
"@max":
/*required, integer type, the maximum length of the custom diagnosis command*/
}
}
}
JSON_DiagnosisResult
DiagnosisResult message in JSON format
{
"DiagnosisResult":{
"result":""
/*required, string type, diagnosis result*/
}
}
JSON_DoubleVerification
DoubleVerification message in JSON format
{
"DoubleVerification":{
"enable": ""
/*optional, whether enables double verification, boolean*/
}
}
JSON_DownloadPackageStatus
JSON message about upgrade package upload status
{
"DownloadPackageStatus":{
/*required, upgrade package download status*/
"status": "notDownload,downloading,downloadFailed,pause,finish,incorrectPackage,hdOperationFailed",
/*required, string, download status: "notDownload"-not download, "downloading"-downloading, "downloadFailed"-
downloading failed, "pause"-paused, "finish"-completed, "incorrectPackage"-incorrect upgrade package format,
"hdOperationFailed"-HD operation failed*/
"total": "",
/*optional, float, upgrade package total size, unit: MB, corrects to one decimal place*/
"remain": "",
/*optional, float, remaining space, unit: MB, corrects to one decimal place*/
"speed": ""
/*optional, float, download speed, unit: KB/s, corrects to two decimal places*/
"remainTime": "",
579
Intelligent Security API (General) Developer Guide
JSON_DynamicHostName
DynamicHostName message in JSON format
{
"DynamicHostName": {
/*required, configuration parameters of dynamic domain name*/
"enabled": ,
/*required, boolean type, whether to enable dynamic domain name*/
"hostName": ""
/*required, string type, domain name*/
}
}
JSON_DynamicHostNameCap
DynamicHostNameCap message in JSON format
{
"DynamicHostNameCap": {
/*required, configuration capability of dynamic domain name*/
"enabled": "true,false",
/*required, boolean type, whether to enable dynamic domain name*/
"hostName": {
/*required, string type, domain name*/
"@min": 0,
"@max": 64
}
}
}
JSON_EmailCertification
Enter a short description of your reference here (optional).
Enter the syntax information of your reference here (optional).
Enter the actual information in this section (optional).
Example
Enter an example to illustrate your reference here (optional).
580
Intelligent Security API (General) Developer Guide
JSON_EnableEncryption
EnableEncryption message in JSON format
{
"enable": true,
/*required, boolean type, whether to enable stream encryption, true-yes, false-no*/
}
JSON_EncryptFormat
EncryptFormat message in JSON format
{
"EncryptFormat":{
"password":"",
/*required, string, password, it will be encrypted according to the encryption vector*/
"encryptFormatType":""
/*optional, string, HDD formatting type: "FAT32", "EXT4"*/
}
}
JSON_EncryptionCap
Stream encryption capability in JSON format.
{
"enable": "true,false",
/*required, boolean type, whether to enable stream encryption, true-yes, false-no*/*/
"secretKey":{
/*required, string type, encryption key*/
"@min": 6,
"@max": 12,
"#text": "user"
}
}
JSON_EncryptVerfy
EncryptVerfy message in JSON format
{
"EncryptVerfy":{
"password":""
/*required, string, password, it will be encrypted according to the encryption vector*/
581
Intelligent Security API (General) Developer Guide
}
}
JSON_EPTZMode
EPTZMode message in JSON format
{
"EPTZMode":{
"mode":"",
/*required, modes supported by e-PTZ: "cruise"-patrol (PTZ supports preset, patrol, zoom, and eight directions),
"autoTrack"-automatic tracking*/
"AutoTrack":{
/*dependency, auto-tracking mode configuration*/
"sensitivity": ,
/*optional, integer, sensitivity*/
"detectionTarget":["human", "vehicle"],
/*detection target*/
"ReginonList":[{
"id": ,
/*required, rule ID*/
"Region":[{
/*required, rule area, the number of edges is between 3 and 10*/
"x": ,
/*required, float, X-coordinate, range: [0.000,1]*/
"y":
/*required, float, Y-coordinate, range: [0.000,1]*/
}]
}],
"FilterSize":{
/*optional, size filter of rectangle*/
"MaxTargetRect":{
"height": ,
/*required, float, height, range: [0.000,1.000], the value is accurate to three decimal places*/
"width": ,
/*required, float, width, range: [0.000,1.000], the value is accurate to three decimal places*/
"x": ,
/*required, float, X-coordinate, range: [0.000,1.000], the value is accurate to three decimal places. The upper-left
corner is the origin*/
"y":
/*required, float, Y-coordinate, range: [0.000,1.000], the value is accurate to three decimal places. The upper-left
corner is the origin*/
},
"MinTargetRect":{
"height": ,
/*required, float, height, range: [0.000,1.000], the value is accurate to three decimal places*/
"width": ,
/*required, float, width, range: [0.000,1.000], the value is accurate to three decimal places*/
"x": ,
/*required, float, X-coordinate, range: [0.000,1.000], the value is accurate to three decimal places. The upper-left
corner is the origin*/
582
Intelligent Security API (General) Developer Guide
"y":
/*required, float, Y-coordinate, range: [0.000,1.000], the value is accurate to three decimal places. The upper-left
corner is the origin*/
}
}
}
}
}
JSON_EPTZModeCap
EPTZModeCap capability message in JSON format
{
"EPTZModeCap":{
"mode":{
/*required, modes supported by e-PTZ: "cruise"-patrol (PTZ supports preset, patrol, zoom, and eight directions),
"autoTrack"-automatic tracking*/
"@opt":["cruise", "autoTrack"]
},
"AutoTrackCap":{
/*optional, this node is returned when mode contains "autoTrack"*/
"sensitivity":{
/*optional, integer, sensitivity*/
"@min":0,
"@max":100
},
"detectionTarget":{
/*detection target*/
"@opt":["human", "vehicle", "all"]
},
"ReginonList":{
"id":{
/*required, rule ID*/
"@min":1,
"@max":4
},
"Region":{
/*required, rule area, the number of edges is between 3 and 10*/
"number":{
/*required, supported number of edges*/
"@min":3,
"@max":10
},
"x":{
/*required, float, X-coordinate, range: [0.000,1]*/
"@min":0,
"@max":1
},
"y":{
/*required, float, Y-coordinate, range: [0.000,1]*/
583
Intelligent Security API (General) Developer Guide
"@min":0,
"@max":1
}
}
},
"FilterSize":{
/*optional, size filter of rectangle*/
"MaxTargetRect":{
"height":{
/*required, float, height, range: [0.000,1.000], the value is accurate to three decimal places*/
"@min":0,
"@max":1
},
"width":{
/*required, float, width, range: [0.000,1.000], the value is accurate to three decimal places*/
"@min":0,
"@max":1
},
"x":{
/*required, float, X-coordinate, range: [0.000,1.000], the value is accurate to three decimal places. The upper-left
corner is the origin*/
"@min":0,
"@max":1
},
"y":{
/*required, float, Y-coordinate, range: [0.000,1.000], the value is accurate to three decimal places. The upper-left
corner is the origin*/
"@min":0,
"@max":1
}
},
"MinTargetRect":{
"height":{
/*required, float, height, range: [0.000,1.000], the value is accurate to three decimal places*/
"@min":0,
"@max":1
},
"width":{
/*required, float, width, range: [0.000,1.000], the value is accurate to three decimal places*/
"@min":0,
"@max":1
},
"x":{
/*required, float, X-coordinate, range: [0.000,1.000], the value is accurate to three decimal places. The upper-left
corner is the origin*/
"@min":0,
"@max":1
},
"y":{
/*required, float, Y-coordinate, range: [0.000,1.000], the value is accurate to three decimal places. The upper-left
corner is the origin*/
"@min":0,
584
Intelligent Security API (General) Developer Guide
"@max":1
}
}
}
}
}
}
JSON_EventNotificationAlert_Alarm/EventInfo
EventNotificationAlert message with alarm or event information in JSON format.
{
"ipAddress": "",
/*required, device IPv4 address , string, the maximum size is 32 bytes*/
"ipv6Address": "",
/*optional, device IPv6 address, string, the maximum size is 128 bytes*/
"portNo": ,
/*optional, device port No., integer32*/
"protocol": "",
/*optional, protocol type, "HTTP, HTTPS", string, the maximum size is 32 bytes*/
"macAddress": "",
/*optional, MAC address, string, the maximum size is 32 bytes, e.g., 01:17:24:45:D9:F4*/
"channelID": "",
/*optional, device channel No., integer32*/
"dateTime": "",
/*optional, string, alarm/event triggered or occurred time based on ISO8601, the maximum size is 32 bytes, e.g.,
2009-11-14T15:27Z*/
"activePostCount": "",
/*required, alarm/event frequency, integer32*/
"eventType": "",
/*required, alarm/event type, "captureResult, faceCapture,...", string, the maximum size is 128 bytes*/
"eventState": "",
/*required, string, the maximum size is 32 bytes, durative alarm/event status: "active"-valid, "inactive"-invalid*/
"eventDescription": "",
/*required, event description, string, the maximum size is 128 bytes*/
"deviceID":"",
/*string type, device ID*/
"uuid":"",
/*string type, event UUID, which is used to uniquely identify an event, the standard UUID format is xxxxxxxx-xxxx-xxxx-
xxxx-xxxxxxxxxxxx*/
...
/*optional, for different alarm/event types, the nodes are different, see the message examples in different
applications*/
}
585
Intelligent Security API (General) Developer Guide
JSON_EventNotificationAlert_BatteryStatusMsg
JSON message about battery status details
{
"ipAddress":"172.6.64.7",
/*required, string, IPv4 address of security control device, the maximum size is 32 bytes*/
"ipv6Address": "",
/*required, string, IPv6 address of security control device, the maximum size is 128 bytes*/
"portNo": ,
/*optional, integer32, port No. of security control device*/
"protocol": "",
/*optional, string, protocol types: "HTTP,HTTPS,Ehome", the maximum size is 32 bytes*/
"macAddress": "01:17:24:45:D9:F4",
/*optional, string, MAC address, the maximum size is 32 bytes*/
"channelID": ,
/*optional, integer32, device channel No. of the device that triggers alarm*/
"dateTime": "2004-05-03T17:30:08+08:00",
/*required, string, alarm trigger time in ISO 8601 format, the maximum size is 32 bytes*/
"activePostCount": ,
/*required, integer32, number of times that an alarm has been uploaded*/
"eventType": "",
/*required, string, event type, here it should be set to "batteryStatus"*/
"eventState": "",
/*required, string, event status: "active"-triggered alarm, "inactive"-not triggered alarm, the maximum size is 32
bytes*/
"eventDescription": "",
/*required, string, event description, the maximum size is 128 bytes*/
"deviceID": "",
/*optional, string, PUID; this node is required for ISUP SDK*/
"batteryPercentage": ,
/*optional, int, remaining battery percentage, value range: [0,100]*/
"batteryType":
/*required, int, battery type: 0 (dry battery), 1(storage battery)*/
"remainingBattery": 10,
/*optional, int, remaining battery, unit: mA*/
"totalVoltage": 30,
/*optional, int, total voltage, unit: mV*/
"cellVoltage": 30,
/*optional, int, single cell voltage, unit: mV*/
"current": 30
/*optional, int, current, unit: mA*/
}
JSON_EventNotificationAlert_CertificateExpiryAlarmMsg
The certificate expiry alarm details are uploaded in JSON format of EventNotificationAlert message,
here shows an example.
586
Intelligent Security API (General) Developer Guide
{
"ipAddress":172.6.64.7,
"ipv6Address":"",
"portNo":80,
"protocol":"HTTP",
"macAddress":"01:17:24:45:D9:F4",
"channelID":1,
"dateTime":"2018-11-29T15:32:55+08:00",
"activePostCount":1,
"eventType":"certificateRevocation",
"eventState":"active",
"eventDescription":"Certificate Revocation Detection",
/*refer to the message JSON_EventNotificationAlert_Alarm/EventInfo for description details of the above nodes*/
"channelName":"ABC",
/*required, channel name (camera name)*/
"deviceID":"test0123",
/*optional, device ID, it is also the PUID and it must be returned when passing through ISAPI event by ISUP*/
"Result":[{
"customID":"",
/*required, string, custom certificate ID*/
"certificateType":"CA",
/*required, string, certificate type: "CA"-CA certificate, "client/server"-client or server certificate*/
"type":["securityLog"],
/*optional, function type: "HTTPS", "WebSocketS", "SDK_OVER_TLS", "SRTP", "securityLog", "ieee802.1x"*/
"status":"expiring",
/*optional, certificate status: "expiring"-expiring, "expired"-expired, "exceptional"-exceptional*/
"startDate":"2010-04-17",
/*required, date, start date of the certificate expiry date, it is accurate to day*/
"endDate":"2010-04-17"
/*required, date, end date of the certificate expiry date, it is accurate to day*/
}]
}
--MIME_boundary--
See Also
JSON_EventNotificationAlert_Alarm/EventInfo
JSON_EventNotificationAlert_HDDBadSectorEventMsg
The event details of the HDD bad sector detection are uploaded in JSON format of
EventNotificationAlert message, here shows an example.
{
"ipAddress":"",
/*required, string type, IPv4 address of the alarm device, the maximum length is 32 bytes*/
587
Intelligent Security API (General) Developer Guide
"ipv6Address":"",
/*optional, string type, IPv6 address of the alarm device, the maximum length is 128 bytes*/
"portNo": ,
/*optional, integer32 type, port No. of the alarm device*/
"protocolType":"",
/*optional, string type, protocol type: "HTTP", "HTTPS", the maximum length is 32 bytes*/
"macAddress":"",
/*optional, string type, MAC address, the maximum length is 32 bytes*/
"channelID": ,
/*optional, integer32 type, device channel No. that triggers alarms*/
"dateTime":"",
/*required, string type, alarm triggering time in ISO8601 time format, e.g., 2018-03-13T19:42:27+08:00, the maximum
length is 32 bytes*/
"activePostCount": ,
/*required, integer32 type, times that the same alarm has been uploaded*/
"eventType":"",
/*required, triggered event type: "hdBadBlock"-HDD bad sector detection event*/
"eventState":"",
/*required, string type, event triggering status: "active"-triggered, "inactive"-not triggered (heartbeat data), the
maximum length is 32 bytes*/
"eventDescription":"",
/*required, string type, event description: "HDD bad sector detection event", the maximum length is 128 bytes*/
"deviceID":"",
/*optional, device ID, which is the PUID and should be returned for ISUP alarms, e.g., "test0123"*/
"HDBadBlock":{
"diskNo":
/*required, integer32 type, HDD No.*/
}
}
JSON_EventNotificationAlert_HDDHighTemperatureEventMsg
The event details of the HDD high temperature detection are uploaded in JSON format of
EventNotificationAlert message, here shows an example.
{
"ipAddress":"",
/*required, string type, IPv4 address of the alarm device, the maximum length is 32 bytes*/
"ipv6Address":"",
/*optional, string type, IPv6 address of the alarm device, the maximum length is 128 bytes*/
"portNo": ,
/*optional, integer32 type, port No. of the alarm device*/
"protocolType":"",
/*optional, string type, protocol type: "HTTP", "HTTPS", the maximum length is 32 bytes*/
"macAddress":"",
/*optional, string type, MAC address, the maximum length is 32 bytes*/
"channelID": ,
/*optional, integer32 type, device channel No. that triggers alarms*/
"dateTime":"",
/*required, string type, alarm triggering time in ISO8601 time format, e.g., 2018-03-13T19:42:27+08:00, the maximum
588
Intelligent Security API (General) Developer Guide
length is 32 bytes*/
"activePostCount": ,
/*required, integer32 type, times that the same alarm has been uploaded*/
"eventType":"",
/*required, triggered event type: "highHDTemperature"-HDD high temperature detection event*/
"eventState":"",
/*required, string type, event triggering status: "active"-triggered, "inactive"-not triggered (heartbeat data), the
maximum length is 32 bytes*/
"eventDescription":"",
/*required, string type, event description: "HDD high temperature detection event", the maximum length is 128
bytes*/
"deviceID":"",
/*optional, device ID, which is the PUID and should be returned for ISUP alarms, e.g., "test0123"*/
"HighHDTemperature":{
"diskNo":
/*required, integer32 type, HDD No.*/
}
}
JSON_EventNotificationAlert_HDDImpactEventMsg
The event details of the HDD impact detection are uploaded in JSON format of
EventNotificationAlert message, here shows an example.
{
"ipAddress":"",
/*required, string type, IPv4 address of the alarm device, the maximum length is 32 bytes*/
"ipv6Address":"",
/*optional, string type, IPv6 address of the alarm device, the maximum length is 128 bytes*/
"portNo": ,
/*optional, integer32 type, port No. of the alarm device*/
"protocolType":"",
/*optional, string type, protocol type: "HTTP", "HTTPS", the maximum length is 32 bytes*/
"macAddress":"",
/*optional, string type, MAC address, the maximum length is 32 bytes*/
"channelID": ,
/*optional, integer32 type, device channel No. that triggers alarms*/
"dateTime":"",
/*required, string type, alarm triggering time in ISO8601 time format, e.g., 2018-03-13T19:42:27+08:00, the maximum
length is 32 bytes*/
"activePostCount": ,
/*required, integer32 type, times that the same alarm has been uploaded*/
"eventType":"",
/*required, triggered event type: "hdImpact"-HDD impact detection event*/
"eventState":"",
/*required, string type, event triggering status: "active"-triggered, "inactive"-not triggered (heartbeat data), the
maximum length is 32 bytes*/
"eventDescription":"",
/*required, string type, event description: "HDD impact detection event", the maximum length is 128 bytes*/
"deviceID":"",
589
Intelligent Security API (General) Developer Guide
/*optional, device ID, which is the PUID and should be returned for ISUP alarms, e.g., "test0123"*/
"HDImpact":{
"diskNo":
/*required, integer32 type, HDD No.*/
}
}
JSON_EventNotificationAlert_HDDLowTemperatureEventMsg
The event details of the HDD low temperature detection are uploaded in JSON format of
EventNotificationAlert message, here shows an example.
{
"ipAddress":"",
/*required, string type, IPv4 address of the alarm device, the maximum length is 32 bytes*/
"ipv6Address":"",
/*optional, string type, IPv6 address of the alarm device, the maximum length is 128 bytes*/
"portNo": ,
/*optional, integer32 type, port No. of the alarm device*/
"protocolType":"",
/*optional, string type, protocol type: "HTTP", "HTTPS", the maximum length is 32 bytes*/
"macAddress":"",
/*optional, string type, MAC address, the maximum length is 32 bytes*/
"channelID": ,
/*optional, integer32 type, device channel No. that triggers alarms*/
"dateTime":"",
/*required, string type, alarm triggering time in ISO8601 time format, e.g., 2018-03-13T19:42:27+08:00, the maximum
length is 32 bytes*/
"activePostCount": ,
/*required, integer32 type, times that the same alarm has been uploaded*/
"eventType":"",
/*required, triggered event type: "lowHDTemperature"-HDD low temperature detection event*/
"eventState":"",
/*required, string type, event triggering status: "active"-triggered, "inactive"-not triggered (heartbeat data), the
maximum length is 32 bytes*/
"eventDescription":"",
/*required, string type, event description: "HDD low temperature detection event", the maximum length is 128
bytes*/
"deviceID":"",
/*optional, device ID, which is the PUID and should be returned for ISUP alarms, e.g., "test0123"*/
"LowHDTemperature":{
"diskNo":
/*required, integer32 type, HDD No.*/
}
}
590
Intelligent Security API (General) Developer Guide
JSON_EventNotificationAlert_HDDSevereFaultEventMsg
The event details of the HDD severe fault detection are uploaded in JSON format of
EventNotificationAlert message, here shows an example.
{
"ipAddress":"",
/*required, string type, IPv4 address of the alarm device, the maximum length is 32 bytes*/
"ipv6Address":"",
/*optional, string type, IPv6 address of the alarm device, the maximum length is 128 bytes*/
"portNo": ,
/*optional, integer32 type, port No. of the alarm device*/
"protocolType":"",
/*optional, string type, protocol type: "HTTP", "HTTPS", the maximum length is 32 bytes*/
"macAddress":"",
/*optional, string type, MAC address, the maximum length is 32 bytes*/
"channelID": ,
/*optional, integer32 type, device channel No. that triggers alarms*/
"dateTime":"",
/*required, string type, alarm triggering time in ISO8601 time format, e.g., 2018-03-13T19:42:27+08:00, the maximum
length is 32 bytes*/
"activePostCount": ,
/*required, integer32 type, times that the same alarm has been uploaded*/
"eventType":"",
/*required, triggered event type: "severeHDFailure"-HDD severe fault detection event*/
"eventState":"",
/*required, string type, event triggering status: "active"-triggered, "inactive"-not triggered (heartbeat data), the
maximum length is 32 bytes*/
"eventDescription":"",
/*required, string type, event description: "HDD severe fault detection event", the maximum length is 128 bytes*/
"deviceID":"",
/*optional, device ID, which is the PUID and should be returned for ISUP alarms, e.g., "test0123"*/
"SevereHDFailure":{
"diskNo":
/*required, integer32 type, HDD No.*/
}
}
JSON_EventNotificationAlert_NetworkTrafficPrealarmMsg
JSON message about details of network traffic pre-alarm.
{
"ipAddress": "",
/*required, string, IPv4 address of security control device, the maximum size is 32 bytes*/
"ipv6Address": "",
/*optional, string, IPv6 address of security control device, the maximum size is 128 bytes*/
"portNo": ,
/*optional, integer32, port No. of security control device*/
591
Intelligent Security API (General) Developer Guide
"protocolType": "",
/*optional, string, protocol types: "HTTP,HTTPS,Ehome", the maximum size is 32 bytes*/
"macAddress": "",
/*optional, string, MAC address, the maximum size is 32 bytes*/
"channelID": ,
/*optional, integer32, device channel No. of the device that triggers alarm*/
"dateTime": "",
/*required, string, time of alarm trigger with the format of ISO8601, the maximum size is 32 bytes*/
"activePostCount": ,
/*required, integer32, number of times that an alarm has been uploaded*/
"eventType": "",
/*required, string, event type, here it should be set to "dataPrealarm"; the maximum size is 128 bytes*/
"eventState": "",
/*required, event status: "active"-triggered alarm, "inactive"-not triggered alarm, the maximum size is 32 bytes*/
"eventDescription": "",
/*required, string, event description*/
"deviceID": "",
/*optional, PUID, e.g., test0123*/
"DataPrealarm":{
/*req, traffic pre-alalrm event*/
"interfaceType":"",
/*required, string, network card type: "4g,wiredAndWireless"*/
"interfaceID":,
/*required, integer, network card ID*/
"packageType": "",
/*required, string, data plan type: "day"-daily plan, "month"-monthly plan, "year"-annual plan*/
"trafficValue": ,
/*required, float, data value in the plan, which should be accurate to three decimal places, unit: MB*/
"usedTrafficValue":
/*required, float, data usage, which should be accurate to three decimal places, unit: MB*/
}
}
JSON_EventNotificationAlert_vibrationDetection
Message about alarm details of vibration detection in JSON format
{
"ipAddress": "",
/*required, string, IPv4 address of alarm device, the maximum size is 32 bytes*/
"ipv6Address": "",
/*optional, string, IPv6 address of alarm device, the maximum size is 128 bytes*/
"portNo": ,
/*optional, integer32, port No. of alarm device*/
"protocol": "",
/*optional, string, protocol type: "HTTP, HTTPS, EHome", it should be the same as the protocolType in /ISAPI/Event/
notification/httpHosts/<ID>, and the maximum size is 32 bytes. This node should be set to "HTTP" when the JSON
message is transmitted by SDK; it should be set to "EHome" when the JSON message is transmitted by ISUP; it should
be set to "HTTPS" when the transmission protocol is HTTPS*/
"macAddress": "",
/*optional, string, MAC address, the maximum size is 32 bytes*/
592
Intelligent Security API (General) Developer Guide
"channelID": ,
/*optional, integer32, channel ID of the device that triggers alarm*/
"dateTime": "",
/*required, string, alarm triggering time in ISO8601 format, the maximum size is 32 bytes*/
"activePostCount": ,
/*required, integer32, times of the same alarm being uploaded*/
"eventType": "",
/*required, string, event type that triggers alarm, here it should be set to "vibrationDetection" (vibration detection),
the maximum size is 128 bytes*/
"eventState": "",
/*required, string, event triggering status: "active"-triggered, "inactive"-not triggered (heartbeat data), the maximum
size is 32 bytes*/
"eventDescription": "",
/*required, string, event description (e.g., vibration detection), the maximum size is 128 bytes*/
"channelName": " ",
/*optional, string, channel name (camera name), which should be the same as the channelName in /ISAPI/Streaming/
channels/<ID>*/
"deviceID": " ",
/*optional, device ID which is also the PUID, which should be returned in ISUP alarm and should be the same as the
deviceID in /ISAPI/System/Network/Ehome*/
"VibrationDetection": {
"sensitivity":
/*optional, int, sensitivity, value range: [0-100]*/
}
}
JSON_EventNotificationAlert_voltageinstable
The supply voltage exception alarm is uploaded in the JSON format of EventNotificationAlert
message.
{
"ipAddress": "",
/*required, device IPv4 address , string, the maximum size is 32 bytes*/
"ipv6Address": "",
/*optional, device IPv6 address, string, the maximum size is 128 bytes*/
"portNo":,
/*optional, device port No., integer32*/
"protocol": "",
/*optional, protocol type, "HTTP, HTTPS", string, the maximum size is 32 bytes*/
"macAddress": "",
/*optional, MAC address, string, the maximum size is 32 bytes, e.g., 01:17:24:45:D9:F4*/
"channelID": "",
/*optional, device channel No., integer32*/
"dateTime": "",
/optional, string, alarm/event triggered or occurred time based on ISO8601, the maximum size is 32 bytes, e.g.,
2009-11-14T15:27Z*/
"activePostCount":,
/*required, alarm/event frequency, integer32*/
"eventType": "voltageinstable",
593
Intelligent Security API (General) Developer Guide
JSON_ExportInfo
ExportInfo message in JSON format
{
"ExportInfo":{
"mediaType":"",
/*required, string, exported data type: "video", "audio", "metadata", "text", "mixed", "other". It should be the same
as the search type. For pictures, this node should be set to "metadata"*/
"playbackURIList":
/*required, array, file path*/
}
}
JSON_ExportLogToUSB
JSON message about parameters of exporting logs to USB flash drive
{
"ExportLogToUSB": {
"switch": "",
"DeviceCondList": [
{
"DeviceCond": {
"id": ,
"devType": "",
"devID": ,
"subSys": ,
}
}
]
}
}
JSON_ExportLogToUSBCap
JSON message about capability of exporting logs to USB flash drive
594
Intelligent Security API (General) Developer Guide
{
"ExportLogToUSBCap": {
"switch": {
"@opt": [
"stop",
"start"
]
},
"DeviceCondList": [
{
"DeviceCond": {
"id": {
"@min": 1,
"@max": ,
},
"devType": {
"@opt": [
"mainDev",
"subDev"
]
},
"devID": {
"@min": ,
"@max":
},
"subSys": {
"@min": ,
"@max":
},
}
}
]
}
}
JSON_ExportLogToUSBStatus
JSON message about status of exporting logs to USB flash drive
{
"ExportLogToUSBStatus":{
"DeviceLogExportList":[{
"DeviceLogExport":{
"devType":"",
"devID": ,
"subSys": ,
"switch":"",
"exportStatus":"",
"exceptionMsg":""
}
595
Intelligent Security API (General) Developer Guide
}]
}
}
JSON_ExporttoUSB_TaskInfo
TaskInfo message in JSON format
{
"TaskInfo":{
"taskId":""
/*required, string, task ID*/
}
}
JSON_ExportUSBLog
JSON message exporting logs from USB flash drive to PC
{
"ExportUSBLog": {
"switch": "",
/*required, string, exporting switch: "start"-start exporting, "stop"-stop exporting*/
"exportType":"",
/*required, string, exporting mode: "byTime"-by time, "byAll"-all files*/
"startTime": "",
/*optional, string, start time in ISO 8601 format, which should be accurate to millisecond, value range: [25,29], e.g.,
"1970-01-01T00:00:00.000+08:00"*/
"stopTime": ""
/*optional, string, end time in ISO 8601 format, which should be accurate to millisecond, value range: [25,29], e.g.,
"1970-01-01T00:00:00.000+08:0*/
}
}
JSON_ExportUSBLogCap
JSON message about configuration capability of exporting logs to PC.
{
"ExportUSBLogCap": {
"switch": {
"@opt": ["stop","start"]
},/*required, string, export switch, start-start exporting, stop-stop exporting*/
"exportType":{
"@opt":["byTime","byAll"]
},/*required,string, exporting mode: "byTime"-by time, "byAll"-all files*/
"startTime":{
596
Intelligent Security API (General) Developer Guide
"@min": ,
"@max":
}, /*optional, string, start time in ISO 8601 format, which should accurate to millisecond, range: [25,29], e,g,:
"1970-01-01T00:00:00.000+08:00"*/
"stopTime":{
"@min": ,
"@max":
}/*optional, string, end time in ISO 8601 format, which should accurate to millisecond, range: [25,29], e,g,:
"1970-01-01T00:00:00.000+08:00"*/
}
}
JSON_ExportUSBLogStatus
JSON message about status of exporting logs to PC
{
"ExportUSBLogStatus":{
"percent":, /*required, integer,exporting progress, range: [0-100]*/
"filePath":"" /*optional, string, exporting path of log files, which is valid only when percent is "100"*/
}
}
JSON_EZVIZQRCode
JSON message about Hik-Connect QR code
{
"EZVIZQRCode":{
"QRCode":""
/*required, string, Hik-Connect QR code string, the maximum length is 1024 bytes*/
}
}
JSON_EZVIZSecretKey
EZVIZSecretKey message in JSON format
{
"EZVIZSecretKey":{
/*required, verificaiton code for Hik-Connect, string, sensitive information should be encrypted, the string length
ranges from 0 to 64. E.g., 34020000002000000001*/
"secretKey": ""
}
}
597
Intelligent Security API (General) Developer Guide
JSON_EZVIZUnbind
JSON message about parameters for unbinding devices from Hik-Connect account
{
"EZVIZUnbind":{
/*required, condition parameters for unbinding devices from Hik-Connect account*/
"password":""
/*required, string, write-only, login password of the admin user. This node is sensitive information that needs to be
encrypted*/
}
}
JSON_FileExport
JSON message about the configuration parameters of exporting files from the device
{
"FileExport":{
"fileType":"",
/*required, string, file type: "serialLog"-serial port log, "coreDump"-core dump log, "debug"-debug log, "selfDefine"-
custom file type to be exported, "errorInfo"-error information*/
"selfDefineCmd":"",
/*string, custom file type to be exported, it is valid when fileType is set to "selfDefine"*/
"devType":"",
/*optional, string, device type: "mainDev" -main device(default), "subDev"-partition*/
"subSys":""
/*optional, string, partition No., this node is valid when the value of devType is "subDev"*/
}
}
JSON_FileExportCap
JSON message about the capability of exporting files from the device
{
"FileExportCap":{
"fileType":{
"@opt":["serialLog","coreDump","debug","selfDefine"]
/*required, string, file type: "serialLog"-serial port log, "coreDump"-core dump log, "debug"-debug log, "selfDefine"-
custom file type to be exported, "errorInfo"-error information*/
},
"selfDefineCmd":{
/*string, custom file type to be exported, it is valid when fileType is set to "selfDefine"*/
"@min": ,
/*required, int, the minimum length of the custom file type to be exported*/
"@max":
/*required, int, the maximum length of the custom file type to be exported*/
598
Intelligent Security API (General) Developer Guide
}
}
}
JSON_FileExportResult
FileExportResult message in JSON format
{
"FileExportResult":{
"url":""
/*required, string type, file URL, e.g., "http://ip:port//ISAPI/ContentMgmt/logSearch/dataPackage/data?identifier"*/
}
}
JSON_FocusStatus
JSON message about focus status
{
"focusStatus":"success",
/*required, string, focus status: "success", "failed", "working" (focusing)*/
"motorMovementType":"manual"
/*optional, string, motor movement type: "manual", "auto" (automatic), "armingLocation" (arming location)*/
}
JSON_GetCustomAudio
JSON Message about getting the custom alarm audio file
{
"CustomAudioInfo": {
"CustomAudioList":[{
/*required, the file list of custom alarm sound*/
"customAudioID": ,
/*required, int, custom alarm sound ID, the value can be 1 to 3*/
"customAudioName": ""
/*required, string, name of the custom alarm sound, the maximum size is 24 bytes*/
"AudioType":"AI"
/*optional, string, audio file type: AI-AI audio file*/
}]
}
}
599
Intelligent Security API (General) Developer Guide
JSON_GPSCalibratation
Message about configuration parameters of a single GPS calibration point in JSON format
{
"GPSCalibratation":{
"id": ,
/*optional, int, calibration point ID, which is used for parsing in upper layer and cannot be configured*/
"calibratated":,
/*optional, boolean, calibration status*/
"longitude":,
/*required, float, longitude, accurate to 6 decimal places*/
"latitude":,
/*required, float, latitude, accurate to 6 decimal places*/
"x":,
/*required, float, x-coordinate, accurate to 6 decimal places*/
"y":
/*required, float, y-coordinate, accurate to 6 decimal places*/
}
}
JSON_GPSCalibratationCap
Message about GPS calibration capability in JSON format
{
"GPSCalibratationCap":{
/*required, GPS calibration configuration capability*/
"enabled": "true,false",
/*required, boolean, whether the channel supports GPS calibration configuration*/
"id": {
/*required, int, calibration No.*/
"@min":1,
"@max":64,
"@text":1
},
"Longitude":{
/*required, float, longitude, accurate to 6 decimal places*/
"@min":-180.000000,
"@max":180.000000,
"@text":56.000000
},
"Latitude":{
/*required, float, latitude, accurate to 6 decimal places*/
"@min":-90.000000,
"@max":90.000000,
"@text":32.000000
},
"x":{
600
Intelligent Security API (General) Developer Guide
JSON_GPSCalibratationList
Message about configuration parameters of multiple GPS calibration points in JSON format
{
"GPSCalibratationList":[{
"id": ,
/*required, int, calibration point ID*/
"calibratated":,
/*optional, boolean, calibration status*/
"longitude":,
/*required, float, longitude, accurate to 6 decimal places*/
"latitude":,
/*required, float, latitude, accurate to 6 decimal places*/
"x":,
/*required, float, x-coordinate, accurate to 6 decimal places*/
"y":
/*required, float, y-coordinate, accurate to 6 decimal places*/
}]
}
JSON_GPSCalibratationStatus
Message about GPS calibration status in JSON format
{
"GPSCalibratationStatus": {
601
Intelligent Security API (General) Developer Guide
JSON_GuideConfig
GuideConfig message in JSON format
{
"GuideConfig": {
"GuideStep": [{
/*required, configuration steps of quick setup instruction*/
"stepIndex": ,
/*required, integer, the maximum supported index*/
"StepFunction": {
/*required, string, instruction functions*/
"channelID": ,
/*optional, integer, channel number*/
"type": ""
/*required, "masterSlaveTracking" (linkage calibration, corresponding URL: /ISAPI/MasterSlaveTracking/channels/<ID>/
slaveCameraCalibrating/capabilities), "mixedTargetDetection" (multi-target type detection, corresponding URL:/ISAPI/
Intelligent/channels/<ID>/mixedTargetDetection/capabilities?format=json), eagleFocusing (rapid focus, corresponding
URL: /ISAPI/PTZCtrl/channels/<ID>/EagleFocusing/capabilities)*/
},
"status": "unfinished"
/*required, string, instruction status, whether the single configuration has completed*/
}],
"guideStatus": "unfinished"
/*required, string, instruction overall status, whether all configurations have completed*/
}
}
JSON_GuideConfigCap
GuideConfigCap message in JSON format
{
"GuideConfigCap": {
"GuideStep": {
/*required, configuration steps of quick setup instruction*/
"stepIndexNum": ,
/*required, integer, the maximum supported index*/
"StepFunction": {
/*required, string, instruction functions*/
"channels": ,
/*optional, integer, channel number*/
"type": {
602
Intelligent Security API (General) Developer Guide
603
Intelligent Security API (General) Developer Guide
"y": {
/*required, float, Y-coordinate, range: from 0.000 to 1*/
"@min": 0.000,
"@max": 1.000,
"#text": 0.120
}
}
}
},
"EagleFocusingCap": {
/*optional, dep:StepFunction, rapid focus capability*/
"focusMode": {
/*required, string, focus mode*/
"@opt": "auto",
"@def": "auto"
},
"controlEnabled": {
/*required, boolean, whether to enable rapid focus, corresponding URL: /ISAPI/PTZCtrl/channels/<ID>/EagleFocusing/
control/capabilities*/
"@opt": "true,false",
"@def": "true"
}
}
}
}
}
JSON_HeatMap_CollectionDescription
CollectionDescription message in JSON format
{
"CollectionDescription":{
"searchID": "",
/*required,string,unique search ID, the content of searchID remains unchanged when search condition remains
unchanged.*/
"searchResultPosition": "",
/*required, initial position of search result list, integer type. When there are multiple records, and cannot get all
records in one time searching, you can search the records followed specified position for next search*/
"maxResults": "",
/*required, number of matched records per search, integer type*/
"timeSpanList": [{
/*required, time interval list*/
"startTime": "",
/*required, start time, ISO8601_time, string*/
"endTime": "",
/*required, end time, ISO8601_time, string*/
}],
"channels": "",
/*optional, sub type, array, integer32, related channel No., array. If the channel information is not specified, it
indicates searching all channels*/
604
Intelligent Security API (General) Developer Guide
"statisticsType": "PDC",
/*required, string, statistic type: OLD-heat map, PDC-people counting, DURATION-people dwell time, INTERSECTION-
people counting of intersection*/
}
}
JSON_HeatMap_CollectionDescriptionCap
CollectionDescriptionCap message in JSON format
{
"CollectionDescriptionCap":{
"timeRange": "",
/*required, supported time range for replenishment, unit: day, integer*/
"timeSpanMaxNum": "",
/*required, the maximum number of time buckets supported for one time searching, integer*/
"resultMaxNum": "",
/*required, the maximum number of items can be searched, integer*/
"channelMaxNum": "",
/*required, the maximum number of channels supported for one time search, integer*/
"statisticsType":{
/*required, string,statistics type: OLD-heat map, PDC-people counting statistics, DURATION-people staying time
duration, INTERSECTION-people counting of intersection*/
"@opt": "OLD,PDC,DURATION,INTERSECTION"
}
}
}
JSON_HeatMap_CollectionResult
CollectionResult message in JSON format
{
"CollectionResult":{
"responseStatusStrg": "",
/*required, searching status: OK- Searching ended, NO MATCHES-No matched data found, MORE-Search again for
more results, string, the max. length is 32, {dep if errcode == 1 && errMsg == ok}*/
"numOfMatches": "",
/*required, returned number of results for current search, integer32, {dep if errcode == 1 && errMsg == ok}*/
"totalMatches": "",
/*required, total number of matched results, integer32, {dep if errcode == 1 && errMsg == ok}*/
"targets": [{
/*optional, people gathering result*/
"startTime": "",
/*required, start time*/
"endTime": "",
/*required, end time*/
"channel": "",
/*required, integer, channel No.*/
605
Intelligent Security API (General) Developer Guide
"statisticsType": "",
/*required, string, statistic type: OLD-heat map, PDC-people counting, DURATION-people staying time, INTERSECTION-
people counting of intersection*/
"HeatMapValue": [{
"heatmapDataType": "",
/*optional, string,heat map data type, it is valid only when statisticsType values "PDC". "PDC_stayNum"-the number
of people dwell in the image, "PDC_leaveNum"-the number of exiting people in the image*/
"maxHeatMapValue": ,
/*required, integer, the max. heat value, 4-byte*/
"minHeatMapValue": ,
/*required, integer,the min. heat value, 4-byte*/
"timeHeatMapValue": ,
/*required, integer,the average heat value, 4-byte*/
"lineValue": ,
/*required, integer,row value, 4-byte*/
"columnValue": ,
/*required, integer,column value, 4-byte*/
"curNumber": ,
/*optional, integer,the number of current people, it is valid only when statisticsType values "PDC"*/
"leaveNumber": ,
/*optional, integer,the number of exiting people, it is valid only when statisticsType values "PDC"*/
"totalTime": ,
/*optional, integer,total dwell time, it is valid only when statisticsType values "DURATION"*/
}],
"heatmapURL": "",
/*optional, string,URL of pixel data for heat map image, it is valid when statisticsType values "OLD", "DURATION" or
"INTERSECTION"*/
"PDC_stayURL": "",
/*optional, string,URL of pixel data for dwell people in heat map image, it is valid when statisticsType values "PDC"*/
"PDC_leaveURL": "",
/*optional, string,URL of pixel data for exiting people, it is valid when statisticsType values "PDC"*/
"arrayUnitType": ""
/*optional, string,matrix unit data type (each pixel data type of matrix information): "byte"-a byte, "short"-2 bytes,
"int"–four bytes*/
}]
}
}
JSON_HDCond
HDCond message in JSON format
{
"HDCond":{
"hdNo": […,…]
/*specify the channel No. to get the corresponding HDD status*/
}
}
606
Intelligent Security API (General) Developer Guide
JSON_HddFormatList
HddFormatList message in JSON format
{
"HddFormatList": [{
/*required, HDD list to be formatted*/
"HddFormat": {
/*required, initialization parameter of a HDD*/
"id": ,
/*required, string type, ID of HDDs that specified to be formatted*/
"formatType": ""
/*optional, string type, formatting type: FAT32, EXT4; this node is only available for SD card; if this node does not exist,
the formatting type is the default type "FAT32"*/
}
}]
}
JSON_HDStatus
HDStatus message in JSON format
{
"HDStatus": [{
"hdNo": ,
/*required, integer type, HDD No., which starts from 1*/
"status": ,
/*required, integer type, HDD status: 0-activate, 1-sleep, 2-exception, 3-sleepy HDD error, 4-unformated, 5-
disconnected (for network HDD), 6-formatting*/
"volume": ,
/*required, integer type, HDD capacity, unit: MB*/
"freeSpace":
/*required, integer type, free space, unit: MD*/
}]
}
JSON_id
id message in JSON format
{
"id": "",
/*optional, integer, user ID, it returns when double verification user is added*/
}
607
Intelligent Security API (General) Developer Guide
JSON_ImportCustomAudio
JSON message about information of custom alarm audio file to be imported
{
"CustomAudioInfo": {
/*required, related information about custom alarm audio file*/
"customAudioName": "",
/*required, string, custom alarm audio file name, the maximum size is 24 bytes*/
"AudioType":"AI",
/*optional, string, audio file type: AI-AI audio file*/
"isCover":false
/*optional, boolean, whether to cover the audio file with same name: true-yes, false-no (default)*/
}
}
----------------------------7e13971310878
Content-Disposition: form-data; name="audioData";
Content-Type: audio/wav
JSON_InputParam
InputParam message in JSON format
608
Intelligent Security API (General) Developer Guide
{
"InputParam":{
"condType": ["name", "enable", "online", "linknum"]
/*enter channel name, enable or disable channel, online status, and number of connections*/
}
}
JSON_IntelligentSearchCap
JSON message about intelligent search capability
{
"requestURL":"",
/*optional, string, request URL*/
"statusCode":1,
/*required, int, status code*/
"statusString":"",
/*required, string, status description*/
"subStatusCode":"",
/*required, string, sub status code*/
"errorCode":1,
/*optional, int, error code, this node is required when statusCode is not 1 and it corresponds to subStatusCode*/
"errorMsg":"ok",
/*optional, string, error details, this node is required, when statusCode is not 1 and it can be error details about a
specific parameter*/
"startTime":"2004-05-03T17:30:08+08:00",
/*required, string, start time in ISO8601 time format. This node only indicates that the device supports this field*/
"endTime":"2004-05-03T17:30:08+08:00",
/*required, string, end time in ISO8601 time format. This node only indicates that the device supports this field*/
"resultMaxNum":100,
/*required, int, supported maximum number of results that can be searched*/
"channelIDLen":{
/*optional, camera ID length*/
"min":1,
"max":32
},
"channelNameLen":{
/*optional, camera name length*/
"min":1,
"max":32
},
"streamType": "realtime,historyvideo,localvideo",
/*optional, string, streaming type, "realtime,historyvideo,localvideo"*/
"targetRect":{
/*required, target frame*/
"height":{
"min":1,
"max":100
},
"width":{
609
Intelligent Security API (General) Developer Guide
"min":1,
"max":100
},
"x":{
"min":1,
"max":100
},
"y":{
"min":1,
"max":100
}
},
"picUrlLen":{
/*required, URL length of the large picture*/
"min":1,
"max":128
},
"subPicUrlLen": {
/*required, length of the thumbnail URL*/
"min": 1,
"max": 1
},
"targetID": {
/*optional, string, linkage ID between face and human body*/
"min": 1,
"max": 1
},
"targetType":"vehicle",
/*string, search object type*/
"targetSize": "",
/*optional, string, target size*/
"direction": "",
/*optional, string, target direction*/
"speed": "",
/*optional, string, target speed*/
"ageGroup":"",
/*optional, string, age*/
"gender":"",
/*optional, string, gender, string, gender*/
"glass":"",
/*optional, string, wear glasses or not*/
"bag":"",
/*optional, string, whether with bag or not*/
"hat":"",
/*optional, string, whether with hat or not*/
"mask":"",
/*optional, string, whether with mask or not*/
"jacket": "",
/*optional, string, jacket type*/
"trousersType":"",
/*optional, string, trousers type*/
"hairStyle":"",
610
Intelligent Security API (General) Developer Guide
"vehicleColor":"white,silver,gray,black,red,deepBlue,blue,yellow,green,brown,pink,purple,deepGray,cyan,orange,unkn
own",
/*optional, string, vehicle color: "unknown", "white", "silver"-silvery, "gray", "black", "red", "deepBlue"-dark blue,
"blue", "yellow", "green", "brown", "pink", "purple", "deepGray"-dark gray, "cyan", "orange". Multiple colors should
be separated by commas*/
"plateColor":"white,yellow,blue,black,green,civilAviationBlack,civilAviationGreen,other",
/*optional, string, license plate color: "white", "yellow", "blue", "black", "green", "civilAviationBlack"-civil aviation
black, "civilAviationGreen"-civil aviation green, "0xff" or "other"-other color, "unknown"-unrecognized. Multiple colors
should be separated by commas*/
"vehicleType":"largeBus,truck,vehicle,van,buggy,pedestrian,twoWheelVehicle,threeWheelVehicle,SUVMPV,mediumBus
,motorVehicle,nonmotorVehicle,smallCar,miniCar,pickupTruck,unknown",
/*optional, string, vehicle type: "largeBus"-large-sized bus, "truck"-truck, "vehicle"-salon car, "van"-minivan, "buggy"-
light truck, "pedestrian", "twoWheelVehicle"-two wheeler, "threeWheelVehicle"-tricycle, "SUVMPV"-SUV/MPV,
"mediumBus"-middle-sized bus, "motorVehicle"-motor vehicle (it will be transformed to "vehicle" (salon car) in the
platform), "nonmotorVehicle"-non-motor vehicle (it will be transformed to "threeWheelVehicle" (tricycle) in the
platform), "smallCar"-small sedan (it will be transformed to "vehicle" (salon car) in the platform), "miniCar"-mini
sedan (it will be transformed to "vehicle" (salon car) in the platform), "pickupTruck"-pick-up truck, "unknown".
Multiple types should be separated by commas*/
"isSupportVehicleLogo":true,
/*optional, boolean type, whether it supports vehicle parent brand*/
611
Intelligent Security API (General) Developer Guide
"isSupportvehicleSubLogo":true,
/*optional, boolean type, whether it supports vehicle sub brand*/
"isSupportVehicleModel":true,
/*optional, boolean type, whether it supports vehicle model year*/
"pilotSafebelt":"",
/*optional, string type, whether the driver buckled up*/
"pilotSunvisor":"",
/*optional, string type, whether the driver's sun visor is pulled down*/
"vicePilotSafebelt":"",
/*optional, string type, whether the front passenger buckled up*/
"vicePilotSunvisor":"",
/*optional, string type, whether the front passenger's sun visor is pulled down*/
"uphone":"",
/*optional, string type, whether the person is making a call*/
"dangmark": "",
/*optional, string, whether it is dangerous goods vehicle*/
"envprosign": "",
/*optional, string, whether to display yellow label vehicle*/
"muckTruck": "",
/*optional, string, whether it is a dump truck*/
"vehicleState": "",
/*optional, string, license plate status*/
"pdvs": "",
/*optional, string, whether there are people sticking out of the sunroof*/
"vehicleHead": "",
/*optional, string, license plate recognition direction*/
"pendant": "",
/*optional, string, whether there is window hangings detected*/
"temporaryLicense": "",
/*optional, string, whether it is a temporary license plate*/
"tricycleCanopy": "",
/*optional, string, whether there is a hood on the tricycle*/
"decoration": "",
/*optional, string, whether there is decoration detected*/
"tissueBox": "",
/*optional, string, whether there is tissue box detected*/
"card": "",
/*optional, string, whether it is with cards*/
"cardType": "",
/*optional, string, card type*/
"copilot": "",
/*optional, string, whether there is a person in the co-driver room*/
"frontChild": "",
/*optional, string, whether the co-driver is with baby in arm*/
"sunroof": "",
/*optional, string, whether it is with a sunroof*/
"luggageRack": "",
/*optional, string, whether it is with a luggage rack*/
"vehicleSprayPainted": "",
/*optional, string, whether the vehicle is painted*/
"spareTire": "",
/*optional, string, whether it is with a spare tire*/
612
Intelligent Security API (General) Developer Guide
"coverPlate": "",
/*optional, string, whether the heavy truck is covered with back cover*/
"label": "",
/*optional, string, whether there is inspection label detected*/
"plateRecogRegionIDNum":
/*optional, number of IDs of the license plate recognition region*/ {
"min": 1,
"max": 1
},
"discuss": {
/*optional, discussion*/
"confidence": 99.99990,
/*optional, float, confidence*/
"value": ""
/*optional, discussion type, "unknown", "no", "yes"*/
},
"channelMaxNum":1,
/*required, integer type, maximum number of channels that support simultaneous search*/
"supportSearchByUTC":true
/*optional, boolean type, whether it supports searching by UTC*/
"linkFaceBodyId": {
"@min": 0,
"@max": 64
},
/*optional, linkage ID between human face and body, the maximum length is 64 bytes*/
"sortType": {
/*optional, string, sorting type: similarity-by similarity(by default), time-by time, the maximum length is 32 bytes*/
"@opt":["similarity", "time"]
},
"plateCategory": {
/*optional, additional information of license plate*/
"@min": 0,
"@max": 0
},
"taskID":[{
/*optional, string, video analysis task ID, which is the taskID returned by APIs such as /ISAPI/SDT/Management/Task/
Video/monitorPort?format=json, /ISAPI/SDT/Management/Task/Video/monitorPort/batch?format=json, etc.*/
"@size":
}],
"minTaskCreateTime":"",
/*optional, string, the creation time of the task with the minimum task ID in the taskIDs. The time is in ISO 8601 time
format. If this node is returned, it only indicates that the device supports this node*/
"maxTaskFinishTime ":"",
/*optional, string, the end time of the task with the maximum task ID in the taskIDs. The time is in ISO 8601 time
format. If this node is returned, it only indicates that the device supports this node*/
/*The node minTaskCreateTime and maxTaskFinishTime are used to speed up searching. The task creation time
(taskCreateTime) and end time (taskFinishTime) can be obtained by calling the URI: /ISAPI/SDT/Management/Task/
Video/monitorPort/search?format=json*/
"fuzzyMatch":{
/*optional, boolean, whether it supports fuzzy match of license plates. If this node is returned, it indicates that fuzzy
matching of license plates is supported*/
"@opt":
613
Intelligent Security API (General) Developer Guide
}
}
JSON_IntelligentSearchCondition
JSON message about intelligent search conditions
{
"searchID":"",
/*required, string, search ID. The content of searchID remains unchanged if the search conditions remain unchanged.
This node is used to check the same search. When the device performance is limited, you can search asynchronously
by applying conditions with the same searchID several times and getting the search progress*/
"searchResultPosition": ,
/*required, int, the start position of the search result in the result list. When there are multiple records and you
cannot get all search results at a time, you can search for the records after the specified position next time*/
"maxResults": ,
/*required, int, maximum number of search results obtained this time*/
"startTime":"",
/*required, string, start time in ISO8601 time format*/
"endTime":"",
/*required, string, end time in ISO8601 time format*/
"choiceChannel":[{
/*optional*/
"channelID":"",
/*optional, string, camera No.*/
"plateRecogRegionID":
/*optional, int, license plate recognition area No. If this node is not configured, it refers to all areas*/
}],
"targetType":"",
/*optional, string, search object type. If this node is not returned, it indicates no limit*/
"targetSize": "",
/*optional, string, target size*/
"direction": "",
/*optional, string, target direction*/
"speed": "",
/*optional, string, target speed*/
"sortType": "",
/*optional, string, sorting type: "similarity"-by similarity(by default), "time"-by time, the maximum length is 32 bytes*/
"humanInfo":{
/*dependent, this node is valid only when the value of targetType is human*/
"ageGroup":"",
/*optional, string, age*/
"gender":"",
/*optional, string, gender, string, gender*/
"glass":"",
/*optional, string, wear glasses or not*/
"bag":"",
/*optional, string, whether with bag or not*/
"hat":"",
/*optional, string, whether with hat or not*/
"mask":"",
614
Intelligent Security API (General) Developer Guide
615
Intelligent Security API (General) Developer Guide
"vehicleLogo": ,
/*optional, int, vehicle parent brand. If this node is not returned, it indicates no limit*/
"vehicleSubLogo": ,
/*optional, int, vehicle sub brand. If this node is not returned, it indicates no limit*/
"vehicleModel": ,
/*optional, int, vehicle model year. If this node is not returned, it indicates no limit*/
"plateColor":"",
/*optional, string, license plate color: "white", "yellow", "blue", "black", "green", "civilAviationBlack"-civil aviation
black, "civilAviationGreen"-civil aviation green, "0xff" or "other"-other color. If this node is not returned, it indicates no
limit*/
"pilotSafebelt":"",
/*optional, string, whether the driver buckled up. If this node is not returned, it indicates no limit*/
"pilotSunvisor":"",
/*optional, string, whether the driver's sun visor is pulled down. If this node is not returned, it indicates no limit*/
"vicePilotSafebelt":"",
/*optional, string, whether the front passenger buckled up*/
"vicePilotSunvisor":"",
/*optional, string, whether the front passenger's sun visor is pulled down*/
"uphone":""
/*optional, string, whether the person is making a call*/
"dangmark": "",
/*optional, string, whether it is dangerous goods vehicle*/
"envprosign":"",
/*optional, string, whether it is a yellow-label vehicle*/
"vehicleState": "",
/*optional, string, license plate status*/
"pdvs": "",
/*optional, string, whether there are people sticking out of the sunroof*/
"vehicleHead": "",
/*optional, string, license plate recognition direction*/
"pendant": "",
/*optional, string, whether there is window hangings detected*/
"temporaryLicense": "",
/*optional, string, whether it is a temporary license plate*/
"tricycleCanopy": "",
/*optional, string, whether there is a hood on the tricycle*/
"decoration": "",
/*optional, string, whether there is decoration detected*/
"tissueBox": "",
/*optional, string, whether there is tissue box detected*/
"card": "",
/*optional, string, whether it is with cards*/
"cardType": "",
/*optional, string, card type*/
"copilot": "",
/*optional, string, whether there is a person in the co-driver room*/
"frontChild": "",
/*optional, string, whether the co-driver is with baby in arm*/
"muckTruck": "",
/*optional, string, whether it is a dump truck*/
"sunroof": "",
/*optional, string, whether it is with a sunroof*/
616
Intelligent Security API (General) Developer Guide
"luggageRack": "",
/*optional, string, whether it is with a luggage rack*/
"vehicleSprayPainted": "",
/*optional, string, whether the vehicle is painted*/
"spareTire": "",
/*optional, string, whether it is with a spare tire*/
"coverPlate": "",
/*optional, string, whether the heavy truck is covered with back cover*/
"label": "",
/*optional, string, whether there is inspection label detected*/
"fuzzyMatch":true
/*optional, boolean, whether it supports fuzzy match of license plates: true, false (default). If fuzzy matching is
disabled, you need to input the complete license plate number to search. Fuzzy matching is time-consuming*/
},
"twoWheelVehicle": {
/*dependent, this node is valid only when the value of targetType is "twoWheelVehicle"*/
"ageGroup": "",
/*optional, string, whether to display age group*/
"gender": "",
/*optiona, string, whether to display gender*/
"glass": "",
/*optional, string, whether to display glasses*/
"bag": "",
/*optional, string, whether to display back bag*/
"hat": "",
/*optional, string, whether to display hat*/
"mask": "",
/*optional, string, whether to display mask*/
"jacketType": "",
/*optional, string, whether to display jacket type*/
"hairStyle": "",
/*optional, string, whether to display hairstyle*/
"jacketColor": "",
/*optional, string, whether to display jacket color*/
"cyclingType": "",
/*optional, string, whether to display cycling type*/
"cyclingPersonNumber": ""
/*optional, string, whether to display number of people cycling*/
},
"threeWheelVehicle": {
/*dependent, this node is valid only when the value of targetType is "threeWheelVehicle"*/
"ageGroup": "",
/*optional, string, whether to display age group*/
"gender": "",
/*optional, string, whether to display gender*/
"glass": "",
/*optional, string, whether to display glasses*/
"bag": "",
/*optional, string, whether to display back bag*/
"hat": "",
/*optional, string, whether to display hat*/
"mask": "",
617
Intelligent Security API (General) Developer Guide
JSON_IntelligentSearchResult
JSON message about intelligent search results
{
"requestURL":"",
/*required, string type, request URL*/
"statusCode": ,
/*required, int type, status code*/
"statusString":"",
/*required, string type,status description*/
"subStatusCode":"",
/*required, string type, sub status code*/
"errorCode": ,
/*optional, int type, error code, this node is required when statusCode is not 1 and it corresponds to subStatusCode*/
"errorMsg":"",
/*optional, string type, error details, this node is required, when statusCode is not 1 and it can be error details about a
specific parameter*/
"responseStatusStrg":"",
/*required, string type, searching status: "OK"-searching completed, "NO MATCH"-no matched results, "MORE"-
searching for more results. The maximum length is 32 bytes. This node is valid when errorCode is 1 and errorMsg is
"ok"*/
"numOfMatches": ,
/*required, integer32, number of results returned this time. This node is valid when errorCode is 1 and errorMsg is
"ok"*/
"totalMatches": ,
/*required, integer32, total number of matched results. This node is valid when errorCode is 1 and errorMsg is "ok"*/
"progress": ,
618
Intelligent Security API (General) Developer Guide
619
Intelligent Security API (General) Developer Guide
"bag":"",
/*optional, string, whether with bag or not*/
"hat":"",
/*optional, string, whether with hat or not*/
"mask":"",
/*optional, string, whether with mask or not*/
"jacketType":"",
/*optional, string, jacket type*/
"trousersType":"",
/*optional, string, trousers type*/
"hairStyle":"",
/*optional, string, hair style*/
"jacketColor":"",
/*optional, string, jacket color*/
"trousersColor":"",
/*optional, string, trousers coloe*/
"ride":"",
/*optional, string, ride a bike or not*/
"things":"",
/*optional, string, whether with handbag or not*/
"cyclingType":"",
/*optional, string, vehicle type*/
"cyclingPersonNumber":"",
/*optional, string, number of passengers*/
"posture":{
/*optional, posture*/
"confidence":,
/*optional, float, confidence*/
"value":""
/*optional, string, posture type*/
},
"listening":{
/*optional, listening*/
"confidence":,
/*optional, float, listening*/
"value":""
/*optional, string, listening type*/
},
"reading":{
/*optional, reading*/
"confidence":,
/*optional, float, confidence*/
"value":""
/*optional, string, reading type*/
},
"writing":{
/*optional, writing*/
"confidence":,
/*optional, float, confidence*/
"value":""
/*optional, string, writing type*/
},
620
Intelligent Security API (General) Developer Guide
"raiseHand":{
/*optional, raise hand*/
"confidence":,
/*optional, float, confidence*/
"value":""
/*optional, string, hand raising type*/
},
"lyingOnTable":{
/*optional, lying on the table*/
"confidence":,
/*optional, float, confidence*/
"value":""
/*optional, string, types of lying on the table*/
},
"playPhone":{
/*optional, playing phone*/
"confidence":,
/*optional, float, confidence*/
"value":""
/*optional, string , types of playing phone*/
},
"orientation":{
/*optional, orientation*/
"confidence":,
/*optional, float, confidence*/
"value":""
/*optional, string, types of orientation*/
},
"discuss":{
/*optional, discussion*/
"confidence":,
/*optional, float, confidence*/
"value":""
/*optional, string, types of discussion: unknown, no discussion, have discussion*/
},
"studentScene": "",
/*optional, string, school scene: "takeLesson", "answer", "discuss"*/
"studentNum": ,
/*optional, int, number of students*/
"linkFaceBodyId":""
/*optional, linkage ID between human body and face, the maximum length is 64 bytes*/
},
"vehicleInfo":{
/*this node is valid when targetType is "vehicle"*/
"license":"",
/*optional, string type, license plate number*/
"plateCategory": "",
/*optional, additional information of license plate*/
"plateType":"",
/*optional, string type, license plate type: license plate type: "unknown", "92TypeCivil"-92-style civil vehicle, "arm"-
police vehicle, "upDownMilitay"-military vehicle (top-bottom type), "92TypeArm"-92-style police vehicle,
"leftRightMilitay"-military vehicle (left-right type), "02TypePersonalized"-02-style customized vehicle, "yellowTwoLine"-
621
Intelligent Security API (General) Developer Guide
yellow two-line rear license plate, "04NewMilitay"-04-style new military vehicle, "embassy"-embassy vehicle,
"oneLineArm"-new armed police vehicle (one-line), "twoLineArm"-new armed police vehicle (two-line),
"yellow1225FarmVehicle"-yellow agricultural vehicle with 1225 structure, "green1325FarmVehicle"-green agricultural
vehicle with 1325 structure, "yellow1325FarmVehicle"-yellow agricultural vehicle with 1325 structure, "motorola"-
motorcycle, "coach"-driver-training vehicle, "tempTravl"-vehicle with temporary license plate, "trailer"-trailer,
"consulate"-consular vehicle, "hongKongMacao"-vehicle entering and leaving Hong Kong/Macao, "tempEntry"-
temporary entry vehicle, "civilAviation"-civil aviation license plate, "newEnergy"-new energy license plate*/
"vehicleColor":"",
/*optional, string type, vehicle color: "unknown", "white", "silver"-silvery, "gray", "black", "red", "deepBlue"-dark
blue, "blue", "yellow", "green", "brown", "pink", "purple", "deepGray"-dark gray, "cyan", "orange". Multiple colors
should be separated by commas*/
"vehicleType":"",
/*optional, string type, vehicle type: "largeBus"-large-sized bus, "truck"-truck, "vehicle"-salon car, "van"-minivan,
"buggy"-light truck, "pedestrian", "twoWheelVehicle"-two wheeler, "threeWheelVehicle"-tricycle, "SUVMPV"-SUV/
MPV, "mediumBus"-middle-sized bus, "unknown"*/
"vehicleLogo": ,
/*optional, int type, vehicle parent brand*/
"vehicleSubLogo": ,
/*optional, int type, vehicle sub brand*/
"vehicleModel": ,
/*optional, int type, vehicle model year*/
"plateColor":"",
/*optional, string type, license plate color: "white", "yellow", "blue", "black", "green", "civilAviationBlack"-civil
aviation black, "civilAviationGreen"-civil aviation green, "0xff" or "other"-other color.*/
"pilotSafebelt":"",
/*optional, string type, whether the driver buckled up*/
"pilotSunvisor":"",
/*optional, string type, whether the driver's sun visor is pulled down*/
"vicePilotSafebelt":"",
/*optional, string type, whether the front passenger buckled up*/
"vicePilotSunvisor":"",
/*optional, string type, whether the front passenger's sun visor is pulled down*/
"uphone":"",
/*optional, string type, whether the person is making a call*/
"dangmark": "",
/*optional, string, whether it is dangerous goods vehicle*/
"envprosign": "",
/*optioal, string, whether it is a yellow-label vehicle*/
"vehicleState": "",
/*optional, string, license plate status*/
"pdvs": "",
/*optional, string, whether there are people sticking out of the sunroof*/
"vehicleHead": "",
/*optional, string, license plate recognition direction*/
"pendant": "",
/*optional, string, whether there is window hangings detected*/
"temporaryLicense": "",
/*optional, string, whether it is a temporary license plate*/
"tricycleCanopy": "",
/*optional, string, whether there is a hood on the tricycle*/
"decoration": "",
/*optional, string, whether there is decoration detected*/
622
Intelligent Security API (General) Developer Guide
"tissueBox": "",
/*optional, string, whether there is tissue box detected*/
"card": "",
/*optional, string, whether it is with cards*/
"cardNum": ,
/*optional, int, number of cards*/
"cardType": [{
/*optional, array, card type*/
"value": ""
/*optional, string, value of different card types*/
}],
"copilot": "",
/*optional, string, whether there is a person in the co-driver room*/
"frontChild": "",
/*optional, string, whether the co-driver is with baby in arm*/
"muckTruck": "",
/*optional, string, whether it is a dump truck*/
"sunroof": "",
/*optional, string, whether it is with a sunroof*/
"luggageRack": "",
/*optional, string, whether it is with a luggage rack*/
"vehicleSprayPainted": "",
/*optional, string, whether the vehicle is painted*/
"spareTire": "",
/*optional, string type, whether it is with a spare tire*/
"coverPlate": "",
/*optional, string, whether the heavy truck is covered with back cover*/
"label": "",
/*optional, string, whether there is inspection label detected*/
"labelNum": ,
/*optional, int, number of labels*/
"labelPosition": [{
/*optional, label position*/
"height": ,
/*required, float, height*/
"width": ,
/*required, float, width*/
"x": ,
/*required, float, X-coordinate*/
"y":
/*required, float, Y-coordinate*/
}],
"region":"",
/*optional, string type, region that the license plate belongs to: "EU"-Europe, "ER"-Russian region, "EUandCIS"-Europe
and Russia, "ME"-the Middle East, "All"-all regions, "other"*/
"country":""
/*optional, string type, country that the license plate belongs to: "EU"-Europe, "ER"-Russian region, "EUandCIS"-
Europe and Russia, "ME"-the Middle East, "All"-all regions, "other"*/
},
"twoWheelVehicle": {
/*dependent, this node is valid only when the value of targetType is "twoWheelVehicle"*/
"ageGroup": "",
623
Intelligent Security API (General) Developer Guide
624
Intelligent Security API (General) Developer Guide
JSON_IOStatus
JSON message about alarm input and output status
{
"IOStatus": {
"IOInTrig": […,…,…,…],
/*required, int, triggered alarm input No., e.g., 3201-alarm input No.1 of digital channel No.32*/
"IOOutTrig": […,…,…,…]
/*required, int, triggered alarm output No., e.g., 3201-alarm output No.1 of digital channel No.32*/
}
}
JSON_GPSInfo
JSON message about GPS information
{
"GPSInfo":{
/*required, actual GPS information*/
"longitude": ,
/*required, float, longitude, range: [-180.000000,180.000000], corrects to 6 decimal places*/
"latitude":
/*required, float latitude, range: [-90.000000,90.000000], corrects to 6 decimal places*/
}
}
JSON_GPSVerification_ResultInfo
JSON message about calibration verification result information
{
"ResultInfo":{
/*required, calibration verification result information*/
"id": ,
/*required, int, verification point ID; PanoVu series camera supports up to 16 points, and speed dome supports up to
625
Intelligent Security API (General) Developer Guide
64 points*/
"longitude": ,
/*required, float, longitude, corrects to 6 decimal places, range:[-180.000000,180.000000]*/
"latitude":
/*required, float, latitude, corrects to 6 decimal places, range: [-90.000000,90.000000]*/
}
}
JSON_GPSVerification_ResultInfoList
JSON message about calibration verification results
{
"ResultInfoList":[{
/*required, verification results information*/
"id": ,
/*required, int, verification point ID; PanoVu series camera supports up to 16 points, and speed dome supports up to
64 points*/
"longitude": ,
/*required, float, longitude which is calculated based on the pan and tilt, corrects to 6 decimal places, range:
[-180.000000,180.000000]*/
"latitude":
/*required, float, latitude which is calculated based on the pan and tilt, corrects to 6 decimal places, range:
[-90.000000,90.000000]*/
}]
}
JSON_GyroVerify
JSON message about gyroscope calibration parameters
{
"GyroVerify": {
/*required, gyroscope calibration*/
"enabled":
/*required, whether to enable gyroscope calibration: true-yes, false-no*/
}
}
JSON_GyroVerifyCap
JSON message about gyroscope calibration capability.
{
" GyroVerifyCap":{
"enabled":{
/*required, whether to enable gyroscope calibration*/
626
Intelligent Security API (General) Developer Guide
"@opt": [true,false],
"@def":false
}
}
}
JSON_KeepAlive
KeepAlive message in JSON format
{
"KeepAlive":{
"enabled":"",
/*required, boolean, whether to enable network keepalive*/
"interval":"",
/*required, integer, heartbeat interval,unit: second*/
"addressingFormatType":"",
/*required, string, address types: "ipaddress"-IP address, "hostname"-host name, the max. length is 32*/
"hostName": "",
/*optional, string, host name, which is required when addressingFormatType is "hostname", the max. length is
64*/
"ipAddress": "",
/*optional, string, IPv4 address, which is required when addressingFormatType is "ipaddress", the max. length is
32*/
"ipv6Address": "",
/*optional, string, IPv6 address, which is valid when addressingFormatType is "ipaddress", the max. length is 128*/
}
}
JSON_KeepAliveCap
KeepAliveCap message in JSON format
{
"KeepAliveCap":{
"enabled": "true,false",
/*required, boolean, whether to enable network keepalive*/
"interval":{
"@min": 60,
"@max": 300,
"@def": 300
},
/*required, integer, heart beat interval which is 300s by default,unit: second*/
"addressingFormatType":{
"@opt": ["ipaddress", "hostname"],
},
/*required, string, address types: "ipaddress"-IP address, "hostname"-host name, the max. length is 32*/
"supportServerTest": true,
/*optional, boolean, whether to support server test*/
627
Intelligent Security API (General) Developer Guide
}
}
JSON_LaserOpticalAxis
JSON message about laser optical axis parameters.
{
"LaserOpticalAxis": {
"adjustmentEnabled": ,
/*required, boolean, whether it enables adjusting laser optical axis*/
"sensitivity":
/*required, int, sensitivity*/
}
}
JSON_LaserOpticalAxis_direction
JSON message about direction of adjusting laser optical axis
{
"direction": ""
/*required, string, direction of adjusting laser optical axis: "up"-up, "down"-down, "left"-left, "right"-right*/
}
JSON_LaserOpticalAxisCap
JSON message about capability of configuring laser optical axis
{
"LaserOpticalAxisCap": {
"adjustmentEnabled": {
/*required, boolean, whether it enables adjusting laser optical axis*/
"@opt":[true,false]
},
"sensitivity": {
/*required, int, sensitivity*/
"@min": 1,
"@max": 100
}
"direction": {
/*required, string, direction of adjusting laser optical axis: "up"-up, "down"-down, "left"-left, "right"-right*/
"@opt":["up","down","left","right"],
"#text":"up"
}
}
}
628
Intelligent Security API (General) Developer Guide
JSON_LensCorrection
LensCorrection in JSON format
{
"LensCorrection":{
"enabled": "",
/*required, enable or not*/
"TimeTaskList": [{
"TimeTaskBlock":{
"dayOfWeek": "",
/*required, integer32,ISO8601 weekday number, 1=Monday*/
"TimeTaskRange": [{
"taskID": "",
/*required, integer32, task ID, starts from 1*/
"beginTime": "",
/*required, begin time, accurate to second, string type*/
"endTime": ""
/*required, end time, accurate to second, string type*/
}]
}
}]
}
}
JSON_LensCorrectionCap
LensCorrectionCap message in JSON format
{
"LensCorrectionCap":{
"enabled": "true,false",
/*required, enable or not*/
"TimeTaskList":{
"maxSize": ,
"TimeTaskBlock":{
"dayOfWeek": {
/*required, integer32,ISO8601 weekday number, 1=Monday*/
"@min": "",
"@max": "",
},
"TimeTaskRange": {
"maxSize": ,
"taskID": {
/*required, integer32,task ID, starts from 1*/
"@min": ,
"@max": ,
},
"beginTime": "01:00:00",
629
Intelligent Security API (General) Developer Guide
JSON_LinkedTracking
JSON message about advanced parameters of linked tracking capture
{
"LinkedTracking":{
/*required, advanced parameters of linked tracking capture*/
"trackingTakeoverEnabled": ,
/*optional, boolean, whether to enable tracking takeover, it is disabled by default; the function is supported only
when you select VCA resource as Smart Event*/
"linkedTrackingCaptureEnabled": ,
/*optional, boolean, whether to enable linked tracking capture, it is disabled by default; the function is supported only
when you select VCA resource as Smart Event*/
"captureThreshold": ,
/*optional, int, capture threshold, it refers for the quality of face to trigger capture and alarm, range: [0,100], default
value: 20*/
"Exposure":{
/*optional, face exposure*/
"exposureEnabled": ,
/*optional, boolean, whether to enable face exposure, it is disabled by default*/
"brightRef": ,
/*optional, int, reference brightness of a face in the face exposure mode, range: [0,100]*/
"expDurationTime":
/*optional, int, minimum duration, it is the extra time the device keeps the face exposure lever after the face
disappears from the scene; range: [0,60], unit: minute, default value: 5m*/
},
"RemoveDuplicate":{
/*optional, remove duplicates of captured face pictures*/
"enabled": ,
/*optional, whether to enable removing duplicates of captured face pictures*/
"threshold": ,
/*optional, int, threshold of removing duplicates, when the picture similarity is larger than the value, the picture is
duplicated*/
"faceScore": ,
/*optional, int, the face grading threshold for removing duplicates, only when the face grading is larger than the
configured threshold, the face picture will be compared for removing duplicates, in case that low quality face pictures
influence the comparison effect*/
"updateTime":
/*optional, int, face modal data updating time interval (the time interval between the modal data being added into
the library and being deleted)*/
}
630
Intelligent Security API (General) Developer Guide
}
}
JSON_LinkedTrackingCap
JSON message about configuration capability of advanced parameters of linked tracking capture
{
"LinkedTrackingCap":{
/*required, advanced parameters capability of linked tracking capture*/
"trackingTakeoverEnabled":{
/*optional, boolean, whether to enable tracking takeover, it is disabled by default; the function is supported only
when you select VCA resource as Smart Event*/
"@opt": [true, false],
"@def": false
},
"linkedTrackingCaptureEnabled":{
/*optional, boolean, whether to enable linked tracking capture, it is disabled by default; the function is supported only
when you select VCA resource as Smart Event*/
"@opt": [true, false],
"@def":false
},
"captureThreshold":{
/*optional, int, capture threshold, it refers for the quality of face to trigger capture and alarm, range: [0,100], default
value: 20*/
"@min":0,
"@max":100,
"@def":20
},
"ExposureCap":{
/*optional, face exposure capability*/
"exposureEnabled":{
/*optional, boolean, whether to enable face exposure, it is disabled by default*/
"@opt": [true, false],
"@def":false
},
"brightRef":{
/*optional, int, reference brightness of a face in the face exposure mode, range: [0,100]*/
"@min":0,
"@max":100,
"@def":50
},
"expDurationTime":{
/*optional, int, minimum duration, it is the extra time the device keeps the face exposure lever after the face
disappears from the scene; range: [0,60], unit: minute, default value: 5m*/
"@min":1,
"@max":60,
"@def":5
}
},
"RemoveDuplicateCap":{
631
Intelligent Security API (General) Developer Guide
Remarks
Tracking takeover and linked tracking capture are two mutually exclusive modes for panorama
tracking, they cannot be enabled at the same time.
JSON_List_IPAddress
List_IPAddress message in JSON format
{
"List":[{
"IPAddress":{
"ipVersion":"",
/*required, string type, version information of IP address: "v4"-IPv4, "v6"-IPv6*/
"ipAddress":""
/*required, string type, IP address*/
}
}]
}
632
Intelligent Security API (General) Developer Guide
JSON_LockCfg
LockCfg message in JSON format
{
"LockCfg":{
"maxTryTimes": ,
/*optional, integer, the maximum attempts of logging in by the IP address*/
"lockedTime":
/*optional, integer, time range of locking the IP address, unit: second*/
}
}
JSON_LockCfgCap
LockCfgCap capability message in JSON format
{
"LockCfgCap":{
"maxTryTimes":{
/*optional, the maximum attempts of logging in by the IP address*/
"@opt":"5,..."
},
"lockedTime":{
/*optional, time range of locking the IP address, unit: second*/
"@min": ,
"@max":
}
}
}
JSON_LoginLinkNum
LoginLinkNum message in JSON format
{
"LoginLinkNum": {
"maxLinkNum": ,
/*required, integer type, maximum number of logged in accounts*/
"adminPassword":""
/*required, string type, confirm the password of admin user, this node is valid only when setting maximum number
(PUT), otherwise, this node does not exits*/
}
}
633
Intelligent Security API (General) Developer Guide
JSON_logProTestResult
JSON message about preverification results of logging HDD.
{
"requestURL":"",
/*optional, string type, request URL*/
"statusCode": ,
/*required, integer type, status code*/
"statusString":"",
/*required, string type, status description*/
"subStatusCode":"",
/*required, string type, sub status code*/
"errorCode": ,
/*optional, integer type, error code, which corresponds to subStatusCode, this field is required when statusCode is
not 1. The returned value is the transformed decimal number*/
"errorMsg":"",
/*optional, string type, error details, this field is required when statusCode is not 1*/
"logProTestResult":{
/*preverification results*/
"enough": ,
/*required, boolean, whether there is enough storage space in the HDD: "true"-enough, "false"-not enough*/
"CoverDate":{
/*dependent, it is returned when the field enough is "false"*/
"beginTime":"",
/*required, string, start time of HDD coverage, which should in ISO 8601 format,the maximum size is 32 bytes*/
"endTime":"",
/*required, string, end time of HDD coverage, which should in ISO 8601 format,the maximum size is 32 bytes*/
"coverSpace":
/**required, integer, size of the covered HDD, unit: GB*/
}
}
}
JSON_Master
JSON message about working device information
{
"Master":{
/*working device information list*/
"addressingFormatType": "ipaddress",
/*required, string, address type: "ipaddress" (IP address), "hostname"-domain name; the maximum length is 32
bytes*/
"ipAddress": "ipv4",
/*dependent, string, working device IP address type: "ipv4", "ipv6"; the maximum length is 32 bytes. It is valid when
the value of addressingFormatType is "ipaddres"*/
"ipv6Address": "",
/*dependent, string, working device IPv6 address; the maximum length is 128 bytes. It is valid when the value of
634
Intelligent Security API (General) Developer Guide
addressingFormatType is "ipaddres"*/
"portNo": 7200,
/*required, integer32, port No., default value: 10001*/
"hostName":"",
/*dependent, string, working device domain name; the maximum length is 128 bytes. It is valid when the value of
addressingFormatType is "hostname"*/
"admin":"",
/*required, string, user name; the maximum length is 16 bytes; the sensitive information is encrypted*/
"password":""
/*required, write-only, user password; the maximum length is 16 bytes; the sensitive information is encrypted*/
}
}
JSON_MasterList
JSON message about working device information list
{
"MasterList":[{
/*working device information list*/
"id":1,
/*required, int, working device ID*/
"addressingFormatType": "ipaddress",
/*required, string, address type: "ipaddress" (IP address), "hostname"-domain name; the maximum length is 32
bytes*/
"ipAddress": "ipv4",
/*dependent, string, working device IP address type: "ipv4", "ipv6"; the maximum length is 32 bytes. It is valid when
the value of addressingFormatType is "ipaddres"*/
"ipv6Address": "",
/*dependent, string, working device IPv6 address; the maximum length is 128 bytes. It is valid when the value of
addressingFormatType is "ipaddres"*/
"portNo": 7200,
/*required, integer32, port No.*/
"hostName":"",
/*dependent, string, working device domain name; the maximum length is 128 bytes. It is valid when the value of
addressingFormatType is "hostname"*/
"connectStatus":"online",
/*optional, read-only, string, connection status: "online", "offline"*/
"onlineWorkStatus":1,
/*optional, dependent, read-only, int, online working status: 1-no hot spare recording (normal status), 2-
synchronizing, 3-waiting for synchronization, 4-synchronization completed*/
"offlineWorkStatus":1,
/*optional, dependent, read-only, int, offline working status: 1-backing up, 2-stop backup, 3-waiting for backup, 4-no
need to back up*/
"synchronizationProgress":100
/*dependent, read-only, int, synchronization progress, value range: [0,100]. It is valid when the value of
onlineWorkStatusis 2*/
}]
}
635
Intelligent Security API (General) Developer Guide
JSON_MasterList
JSON message about working device information list
{
"MasterList":[{
/*working device information list*/
"id":1,
/*required, int, working device ID*/
"addressingFormatType": "ipaddress",
/*required, string, address type: "ipaddress" (IP address), "hostname"-domain name; the maximum length is 32
bytes*/
"ipAddress": "ipv4",
/*dependent, string, working device IP address type: "ipv4", "ipv6"; the maximum length is 32 bytes. It is valid when
the value of addressingFormatType is "ipaddres"*/
"ipv6Address": "",
/*dependent, string, working device IPv6 address; the maximum length is 128 bytes. It is valid when the value of
addressingFormatType is "ipaddres"*/
"portNo": 7200,
/*required, integer32, port No.*/
"hostName":"",
/*dependent, string, working device domain name; the maximum length is 128 bytes. It is valid when the value of
addressingFormatType is "hostname"*/
"connectStatus":"online",
/*optional, read-only, string, connection status: "online", "offline"*/
"onlineWorkStatus":1,
/*optional, dependent, read-only, int, online working status: 1-no hot spare recording (normal status), 2-
synchronizing, 3-waiting for synchronization, 4-synchronization completed*/
"offlineWorkStatus":1,
/*optional, dependent, read-only, int, offline working status: 1-backing up, 2-stop backup, 3-waiting for backup, 4-no
need to back up*/
"synchronizationProgress":100
/*dependent, read-only, int, synchronization progress, value range: [0,100]. It is valid when the value of
onlineWorkStatusis 2*/
}]
}
JSON_MatchList
JSON Message about log search results
{
"requestURL": "",
/*optional, string, request URL*/
"statusCode": ,
/*required, int, status code*/
"statusString": "",
/*required, string, status description*/
"subStatusCode": "",
636
Intelligent Security API (General) Developer Guide
637
Intelligent Security API (General) Developer Guide
JSON_MoveAutoTracking
JSON message about status of moving object tracking
{
"MoveAutoTracking":{
"enabled":
/*required, boolean, whether to enable moving object tracking*/
}
}
JSON_OnlineUpgradeParameter
OnlineUpgradeParameter message in JSON format
{
"OnlineUpgradeParameter":{
/*required, online upgrade parameters*/
"autoDownloadPackage": "",
/*required, whether enables automatic download of upgrade package, boolean, it values "false" by default*/
"timingUpgrade": "",
/*optional, whether enable scheduled upgrade, boolean, it values "false" by default*/
"upgradeTime": "",
/*optional, upgrade time, corrects to minute, and second is 0 by default, ISO8601 format, string type, it is valid when
timingUpgrade values "true"*/
}
}
JSON_operType
operType message in JSON format
{
"operType":"",
/*required, string type, operation type: "unlock"-unlock one or multiple IP addresses, "unlockAll"-unlock all IP
addresses*/
"List":[{
"IPAddress":{
"ipVersion":"",
/*required, string, IP address version information: "v4"-IPv4, "v6"-IPv6. This node is valid only when openType is
"unlock"*/
"ipAddress":""
/*required, string, IP address, this node is valid only when openType is "unlock"*/
}
}]
}
638
Intelligent Security API (General) Developer Guide
JSON_PeopleCounting_CollectionDescription
CollectionDescription message in JSON format
{
"CollectionDescription":{
"searchID": "",
/*required,string,unique search ID, the content of searchID remains unchanged when search condition remains
unchanged.*/
"searchResultPosition": "",
/*required, initial position of search result list, integer type. When there are multiple records, and cannot get all
records in one time searching, you can search the records followed specified position for next search*/
"maxResults": "",
/*required, number of matched records per search, integer type*/
"timeSpanList": [{
/*required, time interval list*/
"startTime": "",
/*required, start time, ISO8601_time, string*/
"endTime": "",
/*required, end time, ISO8601_time, string*/
}],
"channels": "",
/*optional, sub type, array, integer32, related channel No., array. If the channel information is not specified, it
indicates searching all channels*/
}
}
JSON_PeopleCounting_CollectionDescriptionCap
CollectionDescriptionCap message in JSON format.
{
"CollectionDescriptionCap":{
"timeRange": "",
/*required, supported time range for people counting replenishment, unit: day, integer*/
"timeSpanMaxNum": "",
/*required, the maximum number of time buckets supported for one time search integer*/
"resultMaxNum": "",
/*required, the maximum number of items can be searched, integer*/
"channelMaxNum": ""
/*required, the maximum number of channels supported for one time search, integer*/
}
}
JSON_PeopleCounting_CollectionResult
CollectionResult message in JSON format
639
Intelligent Security API (General) Developer Guide
{
"CollectionResult":{
"responseStatusStrg": "",
/*required, searching status: OK- Searching ended, NO MATCHES-No matched data found, MORE-Search again for
more results, string, the max. length is 32, {dep if errcode == 1 && errMsg == ok}*/
"numOfMatches": "",
/*required, returned number of results for current search, integer32, {dep if errcode == 1 && errMsg == ok}*/
"totalMatches": "",
/*required, total number of matched results, integer32, {dep if errcode == 1 && errMsg == ok}*/
"targets": [{
/*optional, people gathering result*/
"startTime": "",
/*required, start time of people gathering*/
"endTime": "",
/*required, end time of people gathering*/
"channel": "",
/*required, integer, channel No.*/
"enter": "",
/*required, integer,the number of people entered*/
"exit": "",
/*required, integer,the number of people exited*/
"pass": "",
/*required, integer,the number of people passed by*/
}]
}
}
JSON_PictureServerInformation
PictureServerInformation message in JSON format
{
"PictureServerInformation":{
"pictureServerType":"",
/*required, string type, picture storage server type: "tomact,VRB,cloudStorage,KMS"*/
"addressingFormatType":"",
/*required, string type, format type of the picture storage server address: "ipaddress"-IP address (default),
"hostname"-host name*/
"hostName":"",
/*string type, domain name of the picture storage server, the string length is between 0 and 64. This field is valid
when addressingFormatType is "hostname"*/
"ipv4Address":"",
/*string type, IPv4 address of the picture storage server, the string length is between 0 and 64. This field is valid when
addressingFormatType is "ipaddress"*/
"ipv6Address":"",
/*string type, IPv6 address of the picture storage server, the string length is between 0 and 128. This field is valid
when addressingFormatType is "ipaddress"*/
"portNo": ,
/*required, integer type, port No. of the picture storage server, which is between 1024 and 65535*/
"underlyingProtocol":"",
640
Intelligent Security API (General) Developer Guide
/*optional, string, bottom-level protocol of the picture storage server: "HTTP", "HTTPS". This field is valid when
pictureServerType contains "cloudStorage". If this field does not exist, the default bottom-level protocol is HTTP*/
"cloudStorage":{
/*parameters of the clould storage server, which is valid when pictureServerType is "cloudStorage"*/
"cloudManageHttpPort": ,
/*required, integer type, HTTP port No. for central management of the cloud storage server, which is between 1024
and 65535*/
"cloudTransDataPort": ,
/*required, integer type, data transmission port No. of the cloud storage server, which is between 1024 and 65535.
This field is not supported by access control devices*/
"cloudCmdPort": ,
/*required, integer type, signaling port No. of the cloud storage server, which is between 1024 and 65535*/
"cloudHeartBeatPort": ,
/*required, integer type, heartbeat port No. of the cloud storage server, which is between 1024 and 65535. This field
is not supported by access control devices*/
"cloudStorageHttpPort": ,
/*required, integer type, HTTP port No. of the cloud storage server, which is between 1024 and 65535. This field is not
supported by access control devices*/
"cloudUsername":"",
/*required, string type, user name of the cloud storage server, the string length is between 0 and 32. This field is not
supported by access control devices*/
"cloudPassword":"",
/*required, string type, password of the cloud storage server, the string length is between 0 and 32. This field is not
supported by access control devices*/
"cloudPoolId": ,
/*required, integer type, cloud storage pool ID, which is between 1 and 4294967295. If this field is not configured by
the upper-level, this field will be set to 1 by default*/
"cloudPoolIdEx":"",
/*optional, string type, cloud storage pool ID, this node is valid when cloud storage pool ID of type string (cloud
storage protocol in version 3.0) is supported*/
"clouldProtocolVersion":"",
/*required, string type, protocol version of the cloud storage server, the string length is between 0 and 32*/
"clouldAccessKey":"",
/*string type, cloud storage server access_key, the string length is between 0 and 64. This field is valid when
clouldProtocolVersion is "V2.0"*/
"clouldSecretKey":""
/*string type, cloud storage server secret_key, the string length is between 0 and 64. This field is valid when
clouldProtocolVersion is "V2.0"*/
}
}
}
JSON_POE
POE message in JSON format
{
"POE": {
"@opt": "ipV4,ipV6",
/*optional, IPv4 address, string type, the max. length is 32 bytes*/
"#text": "ipV4"
641
Intelligent Security API (General) Developer Guide
JSON_ProgressInfo
ProgressInfo message in JSON format
{
"ProgressInfo":{
/*required, progress information*/
"status":"",
/*required, string, exporting status: "exporting", "failed", "success"*/
"progress":""
/*required, string, exporting progress, format example: 2/101 (there are 101 files in total to be exported, and 2 files
have been exported)*/
}
}
JSON_Reconstruction_ProgressLists
JSON message about disk data reconstruction progress
{
"ProgressLists": [{
"diskID": 1,
/*required, int, disk ID*/
"progress": 100,
/*required, int, disk data reconstruction progress*/
"status": 1
/*required, int, status: 0-reconstructing, 1-device exception (applying for memory failed/opening files failed/deleting
files failed), 2-abnormal disconnection, 3-reconstructed*/
}]
}
JSON_RemarkList
JSON message about remark information list of videos
{
"RemarkList": [{
"trackId": "",
/*required, file No.*/
"remarks": "",
/*required, string, file remarks, which should be encrypted*/
"recordName":"",
642
Intelligent Security API (General) Developer Guide
JSON_ReportCenterCfg
ReportCenterCfg message in JSON format
{
"ReportCenterCfg":{
"enable": ,
/*optional, boolean type, whether to enable uploading report*/
"ChanAlarmMode":[{
/*alarm channel of the center group*/
"id": ,
/*optional, integer type, channel ID: 1-main channel, 2-backup channel 1, 3-backup channel 2, 4-backup channel 3*/
"chanAlarmMode":""
/*optional, string type, alarm channel mode: "T1"-T1 channel, "T2"-T2 channel, "N1"-N1 channel, "N2"-N2 channel,
"G1"-G1 channel, "G2"-G2 channel, "N3"-N3 channel, "N4"-N4 channel*/
}]
}
}
JSON_ResponseStatus
JSON message about response status
{
"requestURL":"",
/*optional, string, request URL*/
"statusCode": ,
/*optional, int, status code*/
"statusString":"",
/*optional, string, status description*/
"subStatusCode":"",
/*optional, string, sub status code*/
"errorCode": ,
/*required, int, error code, which corresponds to subStatusCode, this field is required when statusCode is not 1. The
returned value is the transformed decimal number*/
"errorMsg":"",
/*required, string, error details, this field is required when statusCode is not 1*/
"MErrCode": "0xFFFFFFFF",
/*optional, string, error code categorized by functional modules*/
"MErrDevSelfEx": "0xFFFFFFFF"
/*optional, string, extension of MErrCode. It is used to define the custom error code, which is categorized by
643
Intelligent Security API (General) Developer Guide
functional modules*/
}
Note
• See Response Codes of Text Protocol for details about the status codes, sub status codes, error
codes, and error descriptions.
• See Error Codes Categorized by Functional Modules for details about the error codes, error
descriptions, and debugging suggestions.
JSON_resourceStatistics
resourceStatistics message in JSON format
{
"inputBandwidth": ,
/*required, input bandwidth, unit: kbps, float type, corrects to one decimal*/
"outputBandwidth": ,
/*required, output bandwidth, unit: kbps, float type, corrects to one decimal*/
"StreamingInformation": [{
/*optional, stream information, array*/
"moduleType": "",
/*required, module type: "remoteStreaming"-remote streaming, "remotePlayBack"-remote playback, string type, the
maximum length is 32 bits*/
"ipAddress": "",
/*required, device IPv4 address, string type, the maximum length is 32 bits*/
"ipv6Address": "",
/*optional, device IPv6 address, string type, the maximum length is 128 bits*/
"bandwidth":
/*required, bandwidth, unit: kbps, float type, corrects to one decimal*/
}],
"inputPictureBandwidth": ,
/*optional, picture input bandwidth (including all interfaces of inputting binary picture data), unit: kbps, float type,
corrects to one decimal*/
"outputPictureBandwidth": ,
/*optional, picture output bandwidth (including all interfaces of returning binary picture data), unit: kbps, float type,
corrects to one decimal*/
}
JSON_SSD_UpgradeStatus
JSON message about SSD firmware upgrade progress
{
"UpgradeStatus": {
"upgrading": false,
/*required, read-only, boolean, whether the SSD firmware is upgrading*/
"percent":100
644
Intelligent Security API (General) Developer Guide
/*required, read-only, int, SSD firmware upgrade progress, range: [0,100]; this node is valid only when the value of
upgrading is true*/
}
}
JSON_SearchCondition
JSON message about condition information of log search
{
"searchID": "",
/*required, string, Search ID, which is used to check whether the current search requester is the same as the previous
one. If they are the same, the search record will be stored in the device to speed up the next search, the maximum
length is 32 bytes*/
"timeSpanList": {
/*required, list of time periods*/
"timeSpan": {
/*required, time periods*/
"startTime": "",
/*required, string, start time of search, ISO8601 time format, the maximum length is 32 bytes*/
"endTime": ""
/*required, string, end time of search, ISO8601 time format, the maximum length is 32 bytes*/
}
},
"metaID": "",
/*required, string, log type string, log type includes "Alarm"-alarm log, "Exception"-exception log, "Operation"-
operation log, and "Information"-additional information; e.g.,"log.std-cgi.com/Alarm", the maximum length is 64
bytes*/
"searchResultPostion": ,
/*required, integer32, the start position of search result in result list*/
"maxResults": ,
/*required, integer32, the maximum number of records supported in this search*/
"wildcard ": "",
/*optional, string, wildcard, which is used for fuzzy search, the maximum length is 48 bytes*/
"operationType": ,
/*optional, operation type, it is valid only when metaID is set to "Operation": 0-all, 1-software started, 2-software
stopped, 3-configuration page entered, 4-parameters edited, 5-file search, 6-device connected, 7-information
collection started, 8-information collection ended, 9-devices disconnected, 10-password changed, 11-disk space
checked, 12-network status checked*/
}
JSON_secretKey
secretKey message in JSON format
{
"secretKey":"",
645
Intelligent Security API (General) Developer Guide
JSON_SecurityAdvanced
SecurityAdvanced message in JSON format
{
"SecurityAdvanced ": {
"securityEnhanced": ,
/*optional, boolean type, whether to enable security reinforcement: true*/
"noOperationEnabled": ,
/*optional, boolean type, whether to enable control timeout: true*/
"noOperationTime": ,
/*optional, integer type, control timeout, value range: [1,60], default value: 15, unit: minute*/
"digestStatus":"SHA256"
/*read-only, string type, digest algorithm: SHA256, MD5*/
}
}
JSON_SecurityEmail
SecurityEmail message in JSON format
{
"SecurityEmail":{
"SecurityInformation": [{
/*required, recovery email information*/
"emailAddress": "",
/*required, string type, email address, the sensitive information should be encrypted*/
}],
},
}
JSON_SecurityEmailCap
SecurityEmailCap message in JSON format
{
"SecurityEmailCap":
/*required, recovery email configuration capability*/
{
"emailAddressNum": ,
/*required, number of recovery emails*/
"emailAddress":
/*required, string type, recovery email information*/
{
646
Intelligent Security API (General) Developer Guide
"@min": 1,
"@max": 128,
},
}
}
JSON_SecurityEmailQrCode
SecurityEmailQrCode message in JSON format
{
"SecurityEmailQrCode":
/*optional, QR code of recovery email*/
{
"SecurityInformation": [{
/*required, security information, the sensitive information should be encrypted*/
"emailAddress": "",
/*required, string type, email address, the sensitive information should be encrypted*/
"qrCode": "",
/*required, string type, QR code, the maximum size is 1024 bytes, the sensitive information should be encrypted*/
}],
"serverEmailAddress": "",
/*optional, string type, manufacturer service email address, the sensitive information should be encrypted*
"isDisclaimerDisplay":
/*optional, boolean type, whether to display disclaimer*/
},
}
JSON_SerialLogCfg
SerialLogCfg message in JSON format
{
"SerialLogCfg":{
"enabled":
/*required, boolean type, whether to enable serial port log redirection: "true"-yes, "false"-no*/
}
}
JSON_SerialLogCfgCap
SerialLogCfgCap capability message in JSON format
{
"SerialLogCfgCap":{
"enabled":"true, false"
/*required, boolean type, whether to enable serial port log redirection: "true"-yes, "false"-no*/
647
Intelligent Security API (General) Developer Guide
}
}
JSON_ServerCertificateCap
ServerCertificateCap capability message in JSON format
{
"ServerCertificateCap":{
"customID":{
/*required, string, custom certificate ID, it is created when the user imports the certificate and it consists of digits and
characters*/
"@min":1,
"@max":64
},
"status":{
/*optional, string, certificate status: "normal", "expired", "exceptional"*/
"@opt":["normal", "expired", "exceptional"]
},
"RSAKeyLength":{
/*optional, integer, RSA key length*/
"@opt":[1024, 2048]
},
"countryName":{
/*optional, string, country*/
"@min":1,
"@max":32
},
"commonName":{
/*optional, string, domain name or IP address*/
"@min":1,
"@max":32
},
"validity":{
/*optional, integer, valid days*/
"@min":1
},
"passwd":{
/*optional, string, password*/
"@min":1,
"@max":64
},
"stateOrProvinceName":{
/*optional, string, province or state*/
"@min":1,
"@max":32
},
"localityName":{
/*optional, string, region*/
"@min":1,
"@max":32
648
Intelligent Security API (General) Developer Guide
},
"organizationName":{
/*optional, string, organization*/
"@min":1,
"@max":32
},
"organizationUnitName":{
/*optional, string, organization unit*/
"@min":1,
"@max":32
},
"email":{
/*optional, string, email*/
"@min":1,
"@max":32
}
}
}
JSON_ServerCertificates
ServerCertificates message in JSON format
{
"ServerCertificates":{
"CertificateInfo":[{
"issuerDN":"",
/*required, string, read-only, name of the authority that issued the certificate*/
"subjectDN":"",
/*required, string, read-only, certificate holder name*/
"startDate":"",
/*required, date, read-only, start date of the certificate validity period, it is accurate to day*/
"endDate":"",
/*required, date, read-only, end date of the certificate validity period, it is accurate to day*/
"type":"",
/*optional, string, read-only, certificate type: "HTTPS", "WebSocketS", "SDK_OVER_TLS", "SRTP", "securityLog",
"ieee802.1x". Multiple types should be separated by commas*/
"status":"",
/*optional, string, read-only, certificate status: "normal", "expired", "exceptional"*/
"customID":""
/*optional, string, read-only, custom certificate ID, it is created when the user imports the certificate and it consists of
digits and characters*/
}]
}
}
649
Intelligent Security API (General) Developer Guide
JSON_singleSoftIO
JSON message about parameters of a single I/O
{
"singleSoftIO":{
"enabled": true,
/*required, boolean, whether to enable soft I/O*/
"name": "Soft IO name"
/*optional, string, name of the soft I/O*/
}
}
JSON_SmartOverlap
SmartOverlap message in JSON format
{
"SmartOverlap":{
"enabled": ,
/*required, boolean, whether to enable the stream*/
"streamType": ,
/*required, integer, stream type: 1-main stream, 2-sub-stream, 3-third stream*/
"bkgImageOverlapEnabled":
/*required, boolean, whether to overlay rule frame and target frame on the background picture*/
}
}
JSON_SmartOverlapCap
SmartOverlapCap capability message in JSON format
{
"SmartOverlapCap":{
"enabled":{
/*required, boolean, whether to enable the stream*/
"@opt":[ true, false]
},
"streamType":{
/*required, integer, stream type: 0-disable, 1-main stream, 2-sub-stream, 3-third stream*/
"@opt":[2]
},
"bkgImageOverlapEnabled":{
/*required, boolean, whether to overlay rule frame and target frame on the background picture*/
"@opt":[true, false]
},
"supportEventType":{
/*required, string, supported event type: "fieldDetection"-intrusion, "attendedBaggage"-object removal,
650
Intelligent Security API (General) Developer Guide
JSON_SoftIO
JSON message about soft I/O parameters
{
"SoftIO":[{
"id":1,
/*required, integer32, ID of the soft I/O*/
"enabled":true,
/*required, boolean, whether to enable soft I/O*/
"name":"Soft IO name",
/*optional, string,name of the soft I/O*/
}]
}
JSON_Spare
JSON message about hot spare working mode
{
"Spare":{
"mode":"normal",
/*required, string, working mode supported by hot spare device: "normal"-normal mode (you can get only one hot
spare device address in this mode), "spare"-hot spare mode (you can configure the relation of hot spare devices).
Device will reboot when this node is edited*/
"spareIP":"",
/*dependent, read-only, string, hot spare device address (IPv4 format); the maximum length is 128 bytes. It is valid
when the value of mode is "normal"*/
"status":1
/*optional, read-only, int, working status: 1-connected, 2-synchronizing, 3-not connected, 4-video synchronizing
failed, 5-registering failed, 6-network exception*/
"synchronizationProgress":100
/*dependent, read-only, int, synchronization progress, value range: [0,100]. It is valid when the value of workStatus is
2*/
}
}
651
Intelligent Security API (General) Developer Guide
JSON_SpareCap
JSON message about hot spare capability
{
"SpareCap":{
"mode":["normal","spare"],
/*required, array of strings, working mode supported by hot spare device: "normal"-normal mode (you can get only
one hot spare device address in this mode), "spare"-hot spare mode (you can configure the relation of hot spare
devices). Device will reboot when this node is edited*/
"spareIP":{
/*dependent, read-only, string, hot spare device address (IPv4 format); the maximum length is 128 bytes. It is valid
when the value of mode is "normal"*/
"@min":0,
"@max":128
},
"status":{
/*optional, read-only, array of integers, working status: 1-connected, 2-synchronizing, 3-not connected, 4-video
synchronizing failed, 5-registering failed, 6-network exception*/
"@opt":[1,2,3,4,5,6]
},
"synchronizationProgress":{
/*dependent, read-only, int, synchronization progress, value range: [0,100]. It is valid when the value of workStatus is
2*/
"@min":0,
"@max":100
},
"isSupportMaster":true,
/*optional, boolean, whether the device supports working device configuration*/
"isSupportSpare":true,
/*optional, boolean, whether the device supports hot spare configuration. If hot spare configuration is supported,
before configuring hot spare, you should switch the working mode to hot spare mode*/
"masterMaxNum":32,
/*dependent, int, maximum number of devices that can be added. It is valid when the value of isSupportMasteris
true*/
"spareMaxNum":32
/*dependent, int, maximum number of hot spare devices that can be added. It is valid when the value of
isSupportSpareis true*/
}
}
JSON_SSDCapacity
JSON message about SSD storage quotas
{
"SSDCapacity":{
"total":70.5,
/*required, float, SSD total capacity, unit: GB*/
652
Intelligent Security API (General) Developer Guide
"systemReserved":10.5,
/*required, float, reserved capacity, unit: GB*/
"free":10.5,
/*required, float, remained capacity, unit: GB*/
"faceLib":10.5,
/*optional, float, face picture library capacity, unit: GB*/
"strangerLib":10.5,
/*optional, float, strangers library capacity, unit: GB*/
"faceFrequencyLib":10.5,
/*optional, float, capacity of people frequency statistics library, unit: GB*/
"alarmCache":10.5,
/*optional, float, alarm cache capacity, unit: GB*/
"faceIndex":10.5,
/*optional, float, face picture index capacity, unit: GB*/
}
}
JSON_SSDFormatStatus
JSON message about progress of SSD file system formatting
{
"SSDFormatStatus": {
"formatting": "false",
/*required, read-only, boolean, whether the device is formatting*/
"percent":100
/*required, read-only, int, device formatting progress, range: [0,100]*/
}
}
JSON_SSDUpgrade
JSON message about upgrade status of SSD file system
{
"SSDUpgrade": {
"upgrading": "false"
/*required, read-only, boolean, whether the device has been upgraded*/
}
}
JSON_SSDUpgradeStatus
JSON message about progress of SSD file system upgrade
{
"SSDUpgradeStatus": {
653
Intelligent Security API (General) Developer Guide
"upgrading": "false",
/*required, read-only, boolean, whether the SSD file system is upgrading*/
"percent":100
/*required, read-only, int, device upgrade progress, range: [0,100]*/
}
}
JSON_SyncStatus
JSON message about HDD data sync status
{
"SyncStatus":{
"synching":true,
/*required, boolean, whether the HDD is in sync*/
"percent":90
/*optional, int, sync progress, range: [0,100]%*/
}
}
JSON_CollectionDescription
CollectionDescription message in JSON format
{
"CollectionDescription":{
"searchID": "",
/*required,string,unique search ID, the content of searchID remains unchanged when search condition remains
unchanged.*/
"searchResultPosition": "",
/*required, initial position of search result list, integer type. When there are multiple records, and cannot get all
records in one time searching, you can search the records followed specified position for next search*/
"maxResults": "",
/*required, number of matched records per search, integer type*/
"timeSpanList": [{
/*required, time interval list*/
"startTime": "",
/*required, start time, ISO8601_time, string*/
"endTime": "",
/*required, end time, ISO8601_time, string*/
}],
"channels": "",
/*optional, sub type, array, integer32, related channel No., array. If the channel information is not specified, it
indicates searching all channels*/
"alarmLevel": "TMA",
/*required, string, alarm level: TMA–thermometry alarm, TMPA-thermometry pre-alarm*/
}
}
654
Intelligent Security API (General) Developer Guide
JSON_Temperature_CollectionDescriptionCap
CollectionDescriptionCap message in JSON format
{
"CollectionDescriptionCap":{
"timeRange": 15,
/*required, supported time range for replenishment, unit: day, integer */
"timeSpanMaxNum": 1,
/*required, the maximum number of time buckets supported for one time search, integer*/
"resultMaxNum": 100,
/*required, the maximum number of items can be searched, integer*/
"channelMaxNum": 1,
/*required, the maximum number of channels supported for one time search, integer*/
"alarmLevel":{
/*required, string, alarm level: TMA–thermometry alarm, TMPA-thermometry pre-alarm*/
"@opt": "TMA,TMPA"
}
}
}
JSON_CollectionResult
CollectionResult message in JSON format
{
"CollectionResult":{
"responseStatusStrg": "",
/*required, searching status: OK- Searching ended, NO MATCHES-No matched data found, MORE-Search again for
more results, string, the max. length is 32, {dep if errcode == 1 && errMsg == ok}*/
"numOfMatches": "",
/*required, returned number of results for current search, integer32, {dep if errcode == 1 && errMsg == ok}*/
"totalMatches": "",
/*required, total number of matched results, integer32, {dep if errcode == 1 && errMsg == ok}*/
"targets": [{
/*optional, statistics result*/
"time": "2017-08-25T11:34:59+08:00",
/*required, statistic time*/
"channel": "",
/*required, integer,channel No.*/
"Region": [{
/*required, float, X-coordinate, ranges from 0.000 to 1*/
"x": "",
/*required, float, Y-coordinate, ranges from 0.000 to 1*/
"y": ""
}],
"thermometryUnit": "",
/*required, string, temperature unit: celsius, fahrenheit, kelvin*/
"ruleTemperature": ,
655
Intelligent Security API (General) Developer Guide
JSON_TestDescription
JSON message about diagnostic server test parameters
"TestDescription": {
/*required, diagnostic server test parameters*/
"protocol": "FTP",
/*required, string, transmission protocol: "FTP,SFTP"*/
656
Intelligent Security API (General) Developer Guide
"addressingFormatType": "ipaddress",
/*optional, string, address type: "ipaddress" (IP address), "hostname" (host name)*/
"hostName": "www.baidu.com",
/*dependent, string, host name, the maximum length is 64 bytes; it is valid when the value of addressingFormatType
is "hostname"*/
"ipVersion": "ipv4",
/*dependent, string, IP version: "ipv4", "ipv6"; it is valid when the value of addressingFormatType is "ipaddress"*/
"ipV4Address": "10.17.132.254",
/*dependent, string, IPv4 address; it is valid when the value of ipVersion is "ipv4", and addressingFormatType is
"ipaddress"*/
"ipv6Address": "fe80::884a:67cb:9b67:b3a0%15",
/*dependent, string, IPv6 address; it is valid when the value of ipVersion is "ipv6", and addressingFormatType is
"ipaddress"*/
"portNo": 20,
/*optional, int, port No., value range: [1,65535]*/
"userName": "admin",
/*string, write-only, user name, the maximum length is 32 bytes*/
"password": "admin"
/*string, write-only, password, the maximum length is 16 bytes*/
}
}
JSON_TestResult
TestResult message in JSON format
{
"TestResult":{
"status":"ok",
/required, string, server status: "ok"-normal, "connectServerFail"-server connection failed
}
}
JSON_TimeSearchCond
Message about recording time search condition in JSON format
{
"TimeSearchCond": {
"channelID": ,
/*required, int, channel No.*/
"streamType": ""
/*required, string, stream type, "main,sub,adaptive"*/
}
}
657
Intelligent Security API (General) Developer Guide
JSON_TimeSearchResult
Message about recording time search result in JSON format
{
"TimeSearchResult": {
"channelID": ,
/*required, int, channel No.*/
"streamType": "",
/*required, string, stream type, "main,sub,adaptive"*/
"hasRecord": ,
/*required, boolean, whether video exists, startTime and endTime are valid only when the value of hasRecord is
"true"*/
"startTime": "",
/*optional, string, recording start time, e.g., 2010-01-01T00:00:00+08:00, this field is required when the value of
hasRecord is "true"*/
"endTime": "",
/*optional, string, recording end time, e.g., 2010-01-01T00:00:00+08:00, this field is required when the value of
hasRecord is "true"*/
}
}
JSON_TimeType
TimeType message in JSON format
{
"TimeType":{
"type": ""
/*required, value: local, UTC*/
}
}
JSON_TrackingRatio
JSON message about tracking parameters
{
"TrackingRatio":{
/*required, tracking parameters of the speed dome*/
"coefficient": ,
/*required, int, tracking zoom ratio, it is between 1 and 100 and the default value is 50. The tracking zoom ratio is the
ratio of the target to the image (unit: percentage). The radar will send the target's distance to the application during
tracking. For human bodies, the ratio of a person's height to the image will be calculated assuming that the person is
1.7 meters tall; for vehicles, the ratio of the vehicle's width to the image will be calculated assuming that the vehicle is
2 meters wide*/
"durationTime": ,
/*required, int, tracking duration, it is between 5 and 60 and the default value is 20, unit: second*/
658
Intelligent Security API (General) Developer Guide
"whiteLight":
/*optional, boolean, whether to support the flashing light*/
"trackingTakeoverEnabled":
/*required, boolean, whether to enable tracking takeover*/
}
}
JSON_TrackingRatioCap
JSON message about the configuration capability of tracking parameters
{
"TrackingRatioCap":{
/*required, configuration capability of the speed dome's tracking parameters*/
"coefficient":{
/*required, int, tracking zoom ratio, it is between 1 and 100 and the default value is 50. The tracking zoom ratio is the
ratio of the target to the image (unit: percentage). The radar will send the target's distance to the application during
tracking. For a human body, the ratio of its height to the image will be calculated assuming that the person is 1.7
meters tall; for a vehicle, the ratio of its width to the image will be calculated assuming that the vehicle is 2 meters
wide*/
"@min":1,
"@max":100,
"@def":50
},
"durationTime":{
/*required, int, tracking duration, it is between 5 and 60 and the default value is 20, unit: second*/
"@min":5,
"@max":60,
"@def":20
},
"whiteLight":{
/*optional, boolean, whether to support the flashing light*/
"@opt":[true, false]
}
"trackingTakeoverEnabled": {
/*optional, boolean, whether to enable tracking takeover; by default, it is false*/
"@opt": [true, false]
}
}
}
JSON_TrafficMonitor
TrafficMonitor message in JSON format
{
"TrafficMonitor":{
"enabled":,
/*required, boolean, whether to enable traffic monitoring*/
659
Intelligent Security API (General) Developer Guide
"packageType":"",
/*required, string, data plan types: "day"-daily plan, "month"-monthly plan, "year"-annual plan */
"trafficValue":,
/*required, float, data value, which should be accurate to three decimal places, unit:MB */
"overrunOperation":"",
/*optional, string, operations when the data exceeds: "brokenNetworkAndAlert"-turn off the cellular network and
alert users, "alert"-notify users */
"alertType":[
"beep",
"email",
"SMS"
],
/*required, string, notification methods: "beep"-audio warning, "email"-send email, "SMS"-send message, "center"-
upload to center*/
"alertValue":,
/*required, integer, alarm value(%)*/
"startDay":
/*optional, integer, the start day of the monthly plan, which is valid only when packageTypeis "month"*/
}
}
JSON_TrafficMonitorCap
TrafficMonitorCap message in JSON format
{
"TrafficMonitorCap":{
"enabled":"",
/*required, boolean, whether to enable traffic monitoring*/
"packageType":{
"@opt":[
"day",
"month",
"year"
]
},
/*required, string, data plan types: "day"-daily plan, "month"-monthly plan, "year"-annual plan*/
"overrunOperation":{
"@opt":[
"brokenNetworkAndAlert",
"alert"
]
/*optional, string, operations after the data exceeds: "brokenNetworkAndAlert"-turn off the cellular network and alert
users, "alert"-notify users */
},
"alertType":{
"@opt":[
"beep",
"email",
"SMS",
"center"
660
Intelligent Security API (General) Developer Guide
]
},
/*required, string, notification methods: "beep"-audio warning, "email"-send email, "SMS"-send message, "center"-
upload to center*/
"alertValue":{
"@min":,
"@max":
},
/*required, integer, alarm value(%)*/
"supportTrafficMonitorStatus":
/*optional, boolean, whether it supports getting the current network data usage*/
}
}
JSON_TrafficMonitorStatus
TrafficMonitorStatus message in JSON format
{
"TrafficMonitorStatus":{
"remainTrafficValue":,
/*required, float, remaining data, which should be accurate to three decimal places, unit:MB*/
"trafficValue":,
/*required, float, data value, which should be accurate to three decimal places, unit:MB*/
"todayUsedTrafficValue":
/*required, float, today's data usage, which should be accurate to three decimal places, unit:MB*/
"todayUsedUpstreamTrafficValue":,
/*optional, float, today's upstream data usage, which should be accurate to three decimal places, unit:MB*/
"todayUsedDownstreamTrafficValue": ,
/*optional, float, today's downstream data usage, which should be accurate to three decimal places, unit:MB*/
"monthUsedTrafficValue": ,
/*optional, float, data usage of this month, which should be accurate to three decimal places, unit:MB*/
"monthUsedUpstreamTrafficValue": ,
/*optional, float, upstream data usage of this month, which should be accurate to three decimal places, unit:MB*/
"monthUsedDownstreamTrafficValue": ,
/*optional, float, downstream data usage of this month, which should be accurate to three decimal places, unit:MB*/
"yearUsedTrafficValue": ,
/*optional, float, data usage of this year, which should be accurate to three decimal places, unit:MB*/
"yearUsedUpstreamTrafficValue": ,
/*optional, float, upstream data usage of this year, which should be accurate to three decimal places, unit:MB*/
"yearUsedDownstreamTrafficValue": ,
/*optional,float, downstream data usage of this year, which should be accurate to three decimal places, unit:MB*/
"enabled": ,
/*optional, boolean, whether traffic monitoring is enabled*/
"packageType": "",
/*optional, string, data plan types: "day"-daily plan, "month"-monthly plan, "year"-annual plan*/
"alertValue":
/*optional, integer, alarm value(%)*/
}
}
661
Intelligent Security API (General) Developer Guide
JSON_unitConfig
unitConfig message in JSON format
{
"enabled": "",
/*required, enable unit unifying configuration or not, boolean type*/
"temperatureRange": "",
/*optional, string type, temperature unit: degreeCentigrade-Centigrade (°C), degreeFahrenheit-Fahrenheit (°F),
degreeKelvin-Kelvin (K), the default value is "degreeCentigrade"*/
"distanceUnit": ""
/*optional, string type, distance unit: centimeter, meter, feet,the default value is "centimeter"*/
}
Remarks
• When the enabled values "false", it indicates the unit unifying function is disabled, the unit can
be configured in thermomery basic settings, and the configured unit has no influence on the unit
in system settings.
• When the enabled values "false", the thermomery unit configuration in applied URL remains
unchanged and takes effect; while when the enabled values "true" and the thermometry unit is
different with the system unit, the thermometry unit configuration in applied URL takes no effect
and the error code will be returned.
JSON_unitConfigCap
unitConfigCap message in JSON format
{
"enabled":"true,false",
/*required, enable unit unified configuration or not, boolean type*/
"temperatureRange":{
/*optional, string type, temperature unit: degreeCentigrade-Centigrade (°C), degreeFahrenheit-Fahrenheit (°F),
degreeKelvin-Kelvin (K), the default value is "degreeCentigrade"*/
"@opt":"degreeCentigrade,degreeFahrenheit,degreeKelvin"
},
"distanceUnit":{
/*optional, string type, distance unit: centimeter, meter, feet,the default value is "centimeter"*/
"@opt":"centimeter,meter,feet"
}
}
JSON_USB
JSON message about USB parameters
662
Intelligent Security API (General) Developer Guide
{
"USB": {
"usbMode": ""
/*optional, string, USB mode: "UVC", "NCM"*/
}
}
JSON_USBCap
JSON message about USB parameters configuration capability
{
"USBCap": {
"usbMode": {
/*optional, string, USB mode: "UVC", "NCM"*/
"@opt":["UVC","NCM"],
"#text":"UVC"
}
}
}
JSON_User
User message in JSON format
{
"User":{
"userName": "",
/*required, string, double verification user name*/
"password": ""
/*required, string, double verification password*/
}
}
JSON_UserCap
UserCap message in JSON format
{
"UserCap":{
"userMaxNumber": "",
/*required, the maximum number of supported double verification users*/
"userNameLen":{
/*required, the length of double verification user name*/
"@min": "",
"@max": "",
},
663
Intelligent Security API (General) Developer Guide
"passwordLen":{
/*required, the length of double verification user password*/
"@min": ,
"@max": ,
}
}
}
JSON_UserList
UserList message in JSON format
{
"UserList": [{
"id": ,
/*required, integer, user ID*/
"userName":"",
/*required, string, double verification user name*/
}]
}
JSON_UserPermission
UserPermission message in JSON format
{
"UserPermission":{
"localPlayback":{
/*optional, local playback permission*/
"enable": "",
/*required, enables permission or not, boolean*/
"channelPermission": [{
/*optional, channel permission*/
"channelID": ,
/*required, channel ID, integer*/
"enable": ""
/*required, enables permission or not, boolean*/
}]
},
"localBackup":{
/*optional, local backup permission*/
"enable": "",
/*required, enables permission or not, boolean*/
"channelPermission": [{
/*optional, channel permission*/
"channelID": ,
/*required, channel ID, integer*/
"enable": ""
/*required, enables permission or not, boolean*/
664
Intelligent Security API (General) Developer Guide
}]
},
"remotePlayback":{
/*optional, remote playback and download permission*/
"enable": "",
/*required, enables permission or not, boolean*/
"channelPermission": [{
/*optional, channel permission*/
"channelID": ,
/*required, channel ID, integer*/
"enable": ""
/*required, enables permission or not, boolean*/
}]
}
}
}
JSON_UserPermissionCap
UserPermissionCap message in JSON format
{
"UserPermissionCap":{
"localPlayback":{
/*required, local playback permission*/
"channelID":{
/*required, the channel which supports configuring local playback permission*/
"@min": "",
"@max": ,
},
"enable": "true,false"
/*required, enables permission or not, boolean*/
},
"localBackup":{
/*required, local backup permission*/
"channelID":{
/*required, the channel which supports configuring local backup permission*/
"@min": "",
"@max": ,
},
"enable": "true,false"
/*required, enables permission or not, boolean*/
},
"remotePlayback":{
/*required, remote playback permission*/
"channelID":{
/*required, the channel which supports configuring remote playback permission*/
"@min": "",
"@max": "",
"#text": ""
},
665
Intelligent Security API (General) Developer Guide
"enable": "true,false"
/*required, enables permission or not, boolean*/
}
}
}
JSON_VerificationDisplay
JSON message about parameters of calibration verification result display
{
"VerificationDisplay": {
/*required, display calibration verification result*/
"enabled":
/*required, boolean, whether to display the calculated point position and verification point position on video: true-
yes*/
}
}
JSON_VerificationPoint
JSON message about calibration verification point information
{
"VerificationPoint":[
/*required, calibration verification point*/
"pan": ,
/*optional, float, pan, range: [0.00,360.00]*/
"tilt": ,
/*optional, float, tilt, range: [-90.00,90.00]*/
"zoom": ,
/*optional, float, zoom, range: [0.00,90.00]*/
"longitude": ,
/*required, float, longitude which is calculated based on the pan and tilt, corrects to 6 decimal places, range:
[-180.000000,180.000000]*/
"latitude": ,
/*required, float, latitude which is calculated based on the pan and tilt, corrects to 6 decimal places, range:
[-90.000000,90.000000]*/
"x": ,
/*optional, float, x-coordinate, [0.000,1.000]*/
"y":
/*optional, float, y-coordinate, [0.000,1.000]*/
}]
}
666
Intelligent Security API (General) Developer Guide
JSON_VerificationPointList
JSON message about verification points information
{
"VerificationPointList":[{
/*required, calibration verification points*/
"id": ,
/*required, int, verification point ID; PanoVu series camera supports up to 16 points, and speed dome supports up to
64 points*/
"pan": ,
/*optional, float, pan, range: [0.00,360.00]*/
"tilt": ,
/*optional, float, tilt, range: [-90.00,90.00]*/
"zoom": ,
/*optional, float, zoom, range: [0.00,90.00]*/
"longitude": ,
/*required, float, longitude, corrects to 6 decimal places, range:[-180.000000,180.000000]*/
"latitude": ,
/*required, float, latitude, corrects to 6 decimal places, range: [-90.000000,90.000000]*/
"x": ,
/*optional, float, x-coordinate, [0.000,1.000]*/
"y":
/*optional, float, y-coordinate, [0.000,1.000]*/
}]
}
JSON_VerificationPointsCap
JSON message about capability of verify calibration
{
"VerificationPointsCap":{
/*required, calibration verification capability*/
"id":{
/*required, int, verification point ID; PanoVu series camera supports up to 16 points, and speed dome supports up to
64 points*/
"@min":1,
"@max":64
},
"pan":{
/*optional, float, pan*/
"@min":0,
"@max":360
},
"tilt":{
/*optional, float, tilt*/
"@min":-90,
"@max":90
667
Intelligent Security API (General) Developer Guide
},
"zoom":{
/*optional, float, zoom*/
"@min":0,
"@max":90
},
"longitude":{
/*required, float, longitude, corrects to 6 decimal places*/
"@min":-180,
"@max":180
},
"latitude":{
/*required, float, latitude, corrects to 6 decimal places*/
"@min":-90,
"@max":90
},
"x":{
/*optional, float, x-coordinate*/
"@min":0,
"@max":1
},
"y":{
/*optional, float, y-coordinate*/
"@min":0,
"@max":1
},
"isSupportDisplay":
/*optional, boolean, whether device supports display the verification result (related URI: /ISAPI/System/
GPSVerification/channels/<ID>/display?format=json)*/
}
}
JSON_VibrationDetection
Vibration detection message in JSON format
{
"VibrationDetection": {
/*vibration detection*/
"enabled": ,
/*required, boolean, whether to enable vibration detection, "true"-enable, "false"-disable*/
"sensitivity":
/*required, int, sensitivity, value range: [0-100], by default: 50*/
}
}
668
Intelligent Security API (General) Developer Guide
JSON_VibrationDetectionCap
Message about vibration detection capability in JSON format
{
"VibrationDetectionCap": {
/*vibration detection capability*/
"enabled": {
/*required, boolean, whether to enable vibration detection,"true"-enable, "false"-disable*/
"@opt": [true, false]
},
"sensitivity": {
/*required, int, sensitivity, value range: [0-100]*/
"@min": 0,
"@max": 100,
"@def": 50
}
}
}
JSON_voiceTalkCtrl
JSON message about SIP (Session Initiation Protocol) intercom parameters
{
"voiceTalkCtrl":{
"enable":true
/*required, boolean, whether to enable SIP intercom: true-yes, false-no*/
}
}
JSON_voiceTalkCtrlCap
JSON message about the configuration capability of SIP (Session Initiation Protocol) intercom
{
"voiceTalkCtrlCap":{
"enable":[true,false]
/*required, boolean, whether to enable SIP intercom: true-yes, false-no*/
}
}
JSON_WhiteLightAlarm
WhiteLightAlarm message in JSON format
669
Intelligent Security API (General) Developer Guide
{
"WhiteLightAlarm":{
"durationTime": ,
/*required, int, flashing duration of supplement light, which is between 1 and 60 s*/
"frequency":"",
/*required, string, flashing frequency of supplement light: "high"-flashing 0.5s per second, "medium"-flashing 0.8s per
1.6s, "low"-flashing 1s per 2s*/
"brightness": ,
/*optional, int, supplement light brightness, which is between 1 and 100*/
"TimeRangeList":[{
/*optional, alarm output schedule list*/
"week": ,
/*required, int, days of the week: 1-Monday, 2-Tuesday, 3-Wednesday, 4-Thursday, 5-Friday,6-Saturday, 7-Sunday*/
"TimeRange":[{
"id": ,
/*required, int, ID of time period for each day*/
"beginTime":"",
/*required, string, start time in ISO8601 format*/
"endTime":""
/*required, string, end time in ISO8601 format*/
}]
}]
}
}
JSON_WhiteLightAlarmCap
WhiteLightAlarmCap message in JSON format
{
"WhiteLightAlarmCap":{
"durationTime":{
/*required, int, flashing duration of supplement light, which is between 1 and 60 s*/
"@min": 1,
"@max": 60,
"@def": 15
},
"frequency":{
/*required, string, flashing frequency of supplement light: "high"-flashing 0.5s per second, "medium"-flashing 0.8s per
1.6s, "low"-flashing 1s per 2s*/
"@opt":"high,medium,low,normallyOn",
"@def":"high"
},
"brightness":{
/*optional, int, supplement light brightness, which is between 1 and 100*/
"@min": 1,
"@max": 100,
"@def": 50
},
"TimeRangeCap":{
670
Intelligent Security API (General) Developer Guide
JSON_WiresharkToUSB
JSON message about parameters of exporting captured packets to USB flash drive
{
"WiresharkToUSB": {
"switch": "",
"operateCmd": "",
"DeviceCondList": [
{
"DeviceCond": {
"id": ,
"devType": "",
"devID": ,
"subSys": ,
}
}
]
}
}
671
Intelligent Security API (General) Developer Guide
JSON_WiresharkToUSBStatus
JSON message about status of exporting captured packets to USB flash drive
{
"WiresharkToUSBStatus":{
"WiresharkExportList":[{
"WiresharkExport":{
"devType":"",
"devID":,
"subSys":,
"switch":"",
"operateCmd":"",
"exportStatus":"",
"exceptionMsg":""
}
}]
}
}
JSON_WorkingStatus
WorkingStatus message in JSON format
{
"WorkingStatus":{
"devStatus": ,
/*required, integer type, value of device status: 0-normal, 1-CPU usage, higher than 85%, 2-hardware error (e.g., serial
port exception)*/
"ChanStatus":[{
"chanNo": ,
/*required, integer type, channel No., which starts from 1*/
"enable": ,
/*integer type, it is valid for analog channel only, 0-disable, 1-enable*/
"online": ,
/*required, integer type, online status: 0-offline, 1-online*/
"record": ,
/*required, whether the device is recording, 0-no, 1-yes*/
"recordStatus ": ,
/*integer type, recording status: 0-recording, 1-recording exception (HDD exception), 2-recording exception (network
camera offline), 3-recording exception (other reason)*/
"signal": ,
/*required, integer type, signal status: 0-normal, 1-signal loss*/
"linkNum": ,
/*required, integer type, number of software clients connected to this channel*/
"bitRate":
/*required, integer type, channel bit rate, unit: Kpbs*/
}],
"HDStatus":[{
672
Intelligent Security API (General) Developer Guide
"hdNo": ,
/*required, integer type, HDD No., which starts from 1*/
"status": ,
/*required, integer type, HDD status: 0-activate, 1-sleep, 2-exception, 3-sleepy HDD error, 4-unformated, 5-
disconnected (for network HDD), 6-formatting*/
"volume": ,
/*required, integer type, HDD capacity, unit: MB*/
"freeSpace":
/*required, integer type, free space, unit: MD*/
}],
"IOStatus":{
"IOInTrig":[…,…,…,…],
/*integer type, triggered alarm input No., two places and below: analog alarm input No., two places and above: digital
alarm input No.; and the low 2-bit is the alarm input No., the 3-bit or above is the digital channel No., e.g., 3201-alarm
input No.1 of digital channel No.32*/
"IOOutTrig":[…,…,…,…]
/*integer type, triggered alarm output No., two places and below: analog alarm output No., two places and above:
digital alarm output No.; and the lower 2 bits are the alarm output No., the 3-bit or above is the digital channel No.,
e.g., 3201-alarm output No.1 of digital channel No.32*/
}
}
}
XML_accessDevice
accessDevice message in XML format
<accessDevice version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<id><!--req, xs:integer--></id>
<MACAddress><!--opt, xs:string--></MACAddress>
<ipV4Address><!--dep, xs:string--></ipV4Address>
<accessTime><!--req, xs:time, ISO8601 data--></accessTime>
</accessDevice>
XML_accessDeviceList
accessDeviceList message in XML format
<accessDeviceList version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<accessDevice/><!--see details in the message of XML_accessDevice-->
</accessDeviceList>
See Also
XML_accessDevice
673
Intelligent Security API (General) Developer Guide
XML_accessPoint
accessPoint message in XML format
<accessPoint version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<id><!--req, xs:integer--></id>
<networkMode>
<!--opt, xs:string, "infrastructure, adhoc"-->
</networkMode>
<channel><!--opt, xs:string, "1 to 14, auto"--></channel>
<ssid><!--req, xs:string--></ssid>
<speed><!--opt, xs:integer, unit: Mbps--></speed>
<signalStrength><!--opt, xs:integer, signal strength, which is between 0 and 100--></signalStrength>
<securityMode>
<!--req, xs:string, "disable,WEP,WPA-personal,WPA2-personal,WPA-RADIUS,WPA-enterprise,WPA2-enterprise"-->
</securityMode>
<connected><!--opt, xs:boolean--></connected>
<connecting><!--opt, xs:boolean, whether the device is connecting to the Wi-Fi--></connecting>
</accessPoint>
XML_accessPointList
accessPointList message in XML format
<accessPointList version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<accessPoint/><!--see details in the message of XML_accessPoint>
</accessPointList>
See Also
XML_accessPoint
XML_ActivateInfo
ActivateInfo message in XML format.
<ActivateInfo version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<password><!--req, xs:string--></password>
</ActivateInfo>
XML_AdminAccessProtocol
AdminAccessProtocol message in XML format
<AdminAccessProtocol version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<id><!--required, xs:string, ID--></id>
<enabled><!--optional, xs:boolean, "true,false"--></enabled>
674
Intelligent Security API (General) Developer Guide
Remarks
"TLS1_1Enable" and "TLS1_2Enable" are not available for port configuration.
XML_AdminAccessProtocolList
AdminAccessProtocolList message in XML format
<AdminAccessProtocolList version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<AdminAccessProtocol/><!--see details in the message of XML_AdminAccessProtocol-->
</AdminAccessProtocolList>
See Also
XML_AdminAccessProtocol
XML_AlgorithmsVersion
Message about version information of algorithm library in XML format
<AlgorithmsVersion version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<AlgorithmsVersionInfoList><!--optional-->
<AlgorithmsVersionInfo>
<majorVersion><!--required, xs:integer, major version No.--></majorVersion>
<minorVersion><!--required, xs:integer, minor version No.--></minorVersion>
<revisionNumber><!--required, xs:integer, revision No.--></revisionNumber>
<buildNumber><!--required, xs:integer, build No.--></buildNumber>
<versionYear><!--required, xs:integer, date: year--></versionYear>
<versionMonth><!--required, xs:integer, date: month--></versionMonth>
<versionDay><!--required, xs:integer, date: day--></versionDay>
<name>
<!--required, xs:string, algorithm library name, "faceProperties"-face attributes, "behaviorAnalysis"-behavior
analysis, "humanAttribute"-human body attributes, "faceSnap"-face capture, "faceRecognition"-face recognition,
"faceContrast"-face picture comparison, "peopleCounting"-people counting, "faceScore"-face picture score,
"personQueueDetection"-queue management, "depthMap"-depth map, "safetyHelmetDetection"-hard hat detection,
675
Intelligent Security API (General) Developer Guide
Example
AlgorithmsVersion Message Example
<AlgorithmsVersion version="2.0" xmlns="http://www.isapi.com/ver20/XMLSchema">
<AlgorithmsVersionInfoList>
<AlgorithmsVersionInfo>
<majorVersion>1</majorVersion>
<minorVersion>0</minorVersion>
<revisionNumber>1</revisionNumber>
<versionYear>17</versionYear>
<versionMonth>12</versionMonth>
<versionDay>12</versionDay>
<name>faceSnap</name>
</AlgorithmsVersionInfo>
<AlgorithmsVersionInfo>
<majorVersion>1</majorVersion>
<minorVersion>0</minorVersion>
<revisionNumber>0</revisionNumber>
<versionYear>17</versionYear>
<versionMonth>10</versionMonth>
<versionDay>31</versionDay>
<name>faceScore</name>
</AlgorithmsVersionInfo>
<AlgorithmsVersionInfo>
<majorVersion>3</majorVersion>
<minorVersion>4</minorVersion>
<revisionNumber>1</revisionNumber>
<versionYear>17</versionYear>
<versionMonth>12</versionMonth>
<versionDay>25</versionDay>
<name>faceContrast</name>
</AlgorithmsVersionInfo>
</AlgorithmsVersionInfoList>
</AlgorithmsVersion>
XML_anonymouslogin
XML message about parameters of managing anonymous user permission
<?xml version="1.0" encoding="utf-8"?>
<anonymouslogin version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<enabled><!--required, xs:boolean--></enabled>
</anonymouslogin>
676
Intelligent Security API (General) Developer Guide
XML_AudioCap
AudioCap capability message in XML format
<AudioCap version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<audioInputNums><!--req, xs:integer--></audioInputNums>
<audioOutputNums><!--req, xs:integer--></audioOutputNums>
</AudioCap>
XML_AudioChannel
AudioChannel message in XML format
<AudioChannel version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<id><!--required, xs:string, audio channel index--></id>
<enabled><!--required, xs:boolean, whether to enable the audio channel--></enabled>
<type opt="audioIn,audioOut"><!--optional, xs:string, audio channel type: "audioIn"-audio input, "audioOut"-audio
output--></type>
<name><!--optional, xs:string, audio channel name--></name>
</AudioChannel>
XML_AudioChannelList
AudioChannelList message in XML format
<AudioChannelList version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<AudioChannel/><!--opt, see details in the message of XML_AudioChannel-->
</AudioChannelList>
See Also
XML_AudioChannel
XML_AudioDetection
XML message about audio detection parameters
<AudioDetection version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<id><!--required, xs:string, ID--></id>
<audioInputException>
<enabled><!--required, xs:boolean--></enabled>
</audioInputException>
<soundIntensityMutation><!--optional-->
<enabled><!--required, xs:boolean--></enabled>
<sensitivityLevel><!--required, xs:integer--></sensitivityLevel>
<mutationThreshold><!--required, xs:integer--></mutationThreshold>
</soundIntensityMutation>
677
Intelligent Security API (General) Developer Guide
<SteepFall><!--optional-->
<enabled><!--required, xs:boolean--></enabled>
<sensitivityLevel><!--required, xs:integer--></sensitivityLevel>
</SteepFall>
<AudioLoss><!--optional-->
<enabled><!--required, xs:boolean--></enabled>
<sensitivityLevel><!--optional, xs:integer, sensitivity, it is between 1 and 100 and the default value is 50--></
sensitivityLevel>
</AudioLoss>
</AudioDetection>
XML_AudioDscriptor
AudioDscriptor message in XML format
<AudioDscriptor version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<audioCompressionType>
<!--opt, xs: string,audio encoding type: "G.711alaw,G.711ulaw,G.726,G.729,G.729a,G.
729b,PCM,MP3,AC3,AAC,ADPCM,MP2L2"-->
</audioCompressionType>
<audioSamplingRate><!--opt, xs: float, kHz--></audioSamplingRate>
</AudioDscriptor>
XML_AudioIn
AudioIn message in XML format
<AudioIn version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<id>
<!--req, xs:string-->
</id>
<MixAudioIn>
<!--req, ro-->
<enabled>
<!--req, xs:Boolean-->
</enabled>
<audioInputType>
<!--opt, xs:string-->
</audioInputType>
<highPassFilter>
<!--req, xs:integer, unit: Hz-->
</highPassFilter>
<noiseMargin>
<!--req, xs:integer, unit: dB-->
</noiseMargin>
<AutoLimitWave>
<!--dep-->
<FBCEnable>
<!--req, xs:Boolean-->
678
Intelligent Security API (General) Developer Guide
</FBCEnable>
<mode>
<!--req, xs:string-->
</mode>
<filterQValue>
<!--req, xs:string-->
</filterQValue>
<staticFilterNum>
<!--req, xs:integer-->
</staticFilterNum>
</AutoLimitWave>
</MixAudioIn>
<AudioInVolumelist>
<AudioInVlome>
<type>
<!--req, xs:string, "audioInput,audioEncode"-->
</type>
<volume>
<!--req, xs:integer-->
</volume>
</AudioInVlome>
</AudioInVolumelist>
</AudioIn>
XML_AudioInCap
AudioInCap capability message in XML format
<AudioInCap version="2.0" xmlns="http://wwwisapiorg/ver20/XMLSchema">
<id>
<!--req, xs:string-->
</id>
<MixAudioIn>
<!--req, ro-->
<enabled opt="true,false">
<!--req, xs:Boolean-->
</enabled>
<audioInputType opt="micIn, lineIn">
<!--opt, xs:string-->
</audioInputType>
<highPassFilter
opt="0,8,16,24,31,39,47,55,63,71,79,87,94,102,110,118,126,134,142,150,157,165,173,181,189,197,205,213,220,228,
236,244,252,260,268,276,283,291,299,307,315,323,331,339,346,354,362,370,378,386,394,402,409,417,425,433,441,
449,457,465,472,480,488,496,504,512,520,528,535,543,551,559,567,575,583,591,598,606,614,622,630,638,646,654,
661,669,677,685,693,701,709,717,724,732,740,748,756,764,772,780,787,795,803,811,819,827,835,843,850,858,866,
874,882,890,898,906,913,921,929,937,945,953,961,969,976,984,992,1000" default="30">
<!--req, xs:integer, unit: Hz-->
</highPassFilter>
<noiseMargin
opt="1000,660,657,653,650,647,643,640,637,633,-630,627,623,620,617,613,610,607,603,600,597,593,590,587,583,5
80,577,573,570,567,563,560,557,553,550,547,543,540,537,533,530,527,523,520,517,513,510,507,503,500,497,493,4
679
Intelligent Security API (General) Developer Guide
90,487,483,480,477,473,470,467,463,460,457,453,450,447,443,440,437,433,430,427,423,420,417,413,410,407,403,4
00,397,393,390,387,383,380,377,373,370,367,363,360,357,353,350,347,343,340,337,333,330,327,323,320,317,313,3
10,307,303,300,297,293,290,287,283,280,277,273,270,267,263,260,257,253,250,247,243,240" default="30">
<!--req, xs:integer, unit: dB-->
</noiseMargin>
<AutoLimitWave>
<!--dep, audioInputType-->
<FBCEnable opt="true,false">
<!--req, xs:Boolean-->
</FBCEnable>
<mode opt="fast,general,slow" default="general">
<!--req, xs:string-->
</mode>
<filterQValue opt="40,10" default="40">
<!--req, xs:integer-->
</filterQValue>
<staticFilterNum min="0" max="12" default="0">
<!--req, xs:integer-->
</staticFilterNum>
</AutoLimitWave>
</MixAudioIn>
<AudioInVolumelist>
<AudioInVlome>
<type>
<!--req, xs:string, "audioOutput,audioEncode"-->
</type>
<volume min="0" max="127" defalut="50">
<!--req, xs:integer-->
</volume>
</AudioInVlome>
</AudioInVolumelist>
</AudioInCap>
XML_AudioInConfig
XML message about audio input parameters of all channels
<AudioInConfig version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<FBCEnable><!--required, xs:boolean, whether to enable FBC: true, false--></FBCEnable>
<AECEnable><!--optional, xs:boolean, whether to enable AEC (Acoustic Echo Cancellation): true, false--></
AECEnable>
</AudioInConfig>
XML_AudioInConfigCap
XML message about the audio input configuration capability of all channels
<AudioInConfigCap version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<FBCEnable opt="true,false"><!--required, xs:boolean--></FBCEnable>
680
Intelligent Security API (General) Developer Guide
<AECEnable opt="true,false"><!--optional, xs:boolean, whether it supports AEC (Acoustic Echo Cancellation): true,
false--></AECEnable>
</AudioInConfigCap>
XML_AudioOut
AudioOut message in XML format
<AudioOut version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<id><!--req, xs:string--></id>
<MixAudioOut>
<enabled><!--req, xs:Boolean--></enabled>
<modulatorEnbale><!--req, xs:Boolean--></modulatorEnbale>
<postFilter><!--req, xs:Boolean--></postFilter>
<limitPressure><!--req, xs:Boolean--></limitPressure>
<modulatorValue><!--req, xs:integer--></modulatorValue>
<triggerTime><!--req, xs:integer, unit: ms--></triggerTime>
<freeTime><!--req, xs:integer, unit: ms--></freeTime>
<compressThreshold><!--req, xs:integer--></compressThreshold>
<compressMode><!--req, xs:string--></compressMode>
<compressRate><!--req, xs:integer--></compressRate>
<recoveryGain><!--req, xs:integer--></recoveryGain>
<outputGain><!--req, xs:integer --></outputGain>
</MixAudioOut>
<AudioOutVolumelist>
<AudioOutVlome>
<type><!--req, xs:string, "audioOutput,audioDecode"--></type>
<volume><!--req, xs:integer--></volume>
</AudioOutVlome>
</AudioOutVolumelist>
</AudioOut>
XML_AudioOutCap
AudioOutCap capability message in XML format
<AudioOutCap xmlns="http://wwwisapiorg/ver20/XMLSchema" version="2.0" >
<id>
<!--req, xs:string-->
</id>
<MixAudioOut>
<enabled opt="true,false" >
<!--req, xs:Boolean-->
</enabled>
<modulatorEnbale opt="true,false" >
<!--req, xs:Boolean-->
</modulatorEnbale>
<postFilter opt="false,true" default="true" >
<!--req, xs:Boolean-->
681
Intelligent Security API (General) Developer Guide
</postFilter>
<limitPressure opt="false,true" default="true" >
<!--req, xs:Boolean-->
</limitPressure>
<modulatorValue min="0" max="127" default="10" >
<!--req, xs:integer-->
</modulatorValue>
<triggerTime
opt="1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,4,4,4,4,4,4,5,5,5,5,6,6,6,7,7,7,8,8,8,9,9,10,
10,11,11,12,12,13,14,15,15,16,17,18,19,20,21,23,24,25,27,29,30,32,34,36,38,41,43,46,49,52,55,59,63,67,72,76,82,87,
93,10,17,114,123,132,141,152,163,175,188,23,218,235,254,274,296,320,347,375,47,441,479,520,566,616,671,731,79
8,872" default="4" >
<!--req, xs:integer, unit: ms-->
</triggerTime>
<freeTime
opt="98,11,15,18,112,116,120,124,129,133,138,143,148,154,159,165,171,177,184,191,198,26,213,222,230,239,248,2
58,268,278,289,31,313,325,338,352,366,381,397,413,430,448,467,486,57,528,551,575,60,626,653,682,712,743,776,8
11,848,887,927,970,1014,1062,1111,1163,1218,1276,1337,142,1470,1541,1617,1697,1781,1870,1964,2063,2168,227
9,2397,2521,2653,2792,2940,3097,3263,3439,3626,3825,4035,4259,4497,4750,5020,536,5611,5936,6282,6651,7045,
7465,7914,8393,895,9452,10037,10664,11335,12053,12824,13650,14537,15489,16511,17610,18793,20065,21435,22
911,2452,26219,28073,30075,32239,34580,37114,39859,42834,46062" default="42" >
<!--req, xs:integer, unit: ms-->
</freeTime>
<compressThreshold opt="1,2,4,8" defalut="2" >
<!--req, xs:integer-->
</compressThreshold>
<compressMode opt="soft,hard" default="soft" >
<!--req, xs:string-->
</compressMode>
<compressRate min="0" max="127" >
<!--req, xs:integer-->
</compressRate>
<recoveryGain opt="1,2,4,8" defalut="2" >
<!--req, xs:integer-->
</recoveryGain>
<outputGain
opt="100,421,361,325,30,281,265,252,240,230,221,212,25,198,192,186,180,175,170,165,161,156,152,148,145,141,1
38,134,131,128,125,122,120,117,114,112,110,17,15,13,10,98,96,94,92,90,88,86,85,83,81,79,78,76,74,73,71,70,68,67,
65,64,62,61,60,58,57,56,54,53,52,51,49,48,47,46,45,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,
23,22,21,20,19,18,17,17,16,15,14,13,12,12,11,10,9,9,8,7,6,6,5,4,3,3,2,1,1,0" >
<!--req, xs:integer-->
</outputGain>
</MixAudioOut>
<AudioOutVolumelist>
<AudioOutVlome>
<type>
<!--req, xs:string, "audioOutput,audioEncode"-->
</type>
<volume min="0" max="127" defalut="50" >
<!--req, xs:integer-->
</volume>
</AudioOutVlome>
682
Intelligent Security API (General) Developer Guide
</AudioOutVolumelist>
</AudioOutCap>
XML_AudioStrengthStatus
XML message about the audio strength parameters
<AudioStrengthStatus version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<id><!--required, xs:string--></id>
<audioStrength><!--read-only, required, xs:integer--></audioStrength>
</AudioStrengthStatus>
XML_autoPanData
XML message about fan control parameters
<?xml version="1.0" encoding="utf-8"?>
<autoPanData version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<autoPan><!--required, xs:integer, range: [0,100]--></autoPan>
</autoPanData>
XML_BadSectorsTest
BadSectorsTest message in XML format
<BadSectorsTest version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<testType><!--opt, xs: string, "full,metadata"--></testType>
</BadSectorsTest>
XML_BadSectorsTestStatus
BadSectorsTestStatus message in XML format
<BadSectorsTestStatus version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<diskID><!--req, xs: string--></diskID>
<MaskAreaList><!--req-->
<MaskArea><!--list-->
<maskAreaID><!--req, xs: integer--></maskAreaID>
<startLBA><!--opt,xs:integer--></startLBA>
<endLBA><!--opt, xs: integer--></endLBA>
</MaskArea>
</MaskAreaList>
<BlockAreaTestStatus><!--opt-->
<testType><!--opt, xs: string, "full,metadata"--></testType>
<testStatus><!--req, xs: string, "none,running,pause,complete,exceed,abort"--></testStatus>
<fistBlock><!--opt, xs: integer--></fistBlock>
683
Intelligent Security API (General) Developer Guide
XML_BatteryPowerOverlay
BatteryPowerOverlay message in XML format
<BatteryPowerOverlay version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<enabled><!--req, xs:boolean--></enabled>
<positionX><!--req, xs:integer, X-coordinate--></positionX>
<positionY><!--req, xs:integer, Y-coordinate--></positionY>
</BatteryPowerOverlay>
XML_BLC
BLC message in XML format
<BLC version="2.0" xmlns="http://www.isapi.com/ver20/XMLSchema">
<enabled/><!--req, xs: boolean-->
<BLCMode/><!--opt, xs: string, BLC mode: "UP, DOWN, LEFT, RIGHT, CENTER, MULTI-AREA, Region"-->
<BLCLevel><!--opt, xs: integer--></BLCLevel>
<BLCRegionList><!--dep-->
<BLCRegion>
<id><!--req, xs: integer--></id>
<RegionCoordinatesList/>
</BLCRegion>
</BLCRegionList>
</BLC>
XML_BluetoothCap
BluetoothCap capability message in XML format
<BluetoothCap version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<isSupportIbeacon>
<!--opt, xs:boolean, whether to support configuring ibeacon bluetooth parameters-->
</isSupportIbeacon>
</BluetoothCap>
684
Intelligent Security API (General) Developer Guide
XML_BluetoothStatus
BluetoothStatus message in XML format
<BluetoothStatus version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<connectStatus><!--opt, xs:boolean--></connectStatus>
<connectDeviceName><!--opt, xs:string--></connectDeviceName>
</BluetoothStatus>
XML_Bond
Bond message in XML format
<Bond version="2.0" xmlns="urn:selfextension:ISAPIext-ver10-xsd">
<id>
<!--req, xs:integer-->
</id>
<enabled>
<!--req, xs:boolean-->
</enabled>
<workMode>
<!--req, xs:string, working mode: "balance-rr"-round-robin, "active-backup"-->
</workMode>
<primaryIf>
<!--req, xs:string, default route ID-->
</primaryIf>
<slaveIfList>
<!--req-->
<ethernetIfId>
<!--req, xs:string, ID-->
</ethernetIfId>
</slaveIfList>
<IPAddress>
<ipVersion>
<!--req, xs:string, "v4,v6,dual"-->
</ipVersion>
<addressingType>
<!--req, xs:string, "static,dynamic,apipa"-->
</addressingType>
<ipAddress>
<!--dep, xs:string-->
</ipAddress>
<subnetMask>
<!--dep, xs:string, subnet mask for IPv4 address-->
</subnetMask>
<ipv6Address>
<!--dep, xs:string-->
</ipv6Address>
<bitMask>
685
Intelligent Security API (General) Developer Guide
XML_BondList
BondList message in XML format
<BondList version="2.0" xmlns="urn:selfextension:ISAPIext-ver10-xsd">
<Bond/><!--see details in the message of XML_Bond-->
</BondList>
See Also
XML_Bond
XML_Cap_accessDeviceList
accessDeviceList capability message in XML format
<accessDeviceList version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<accessDevice size="4">
686
Intelligent Security API (General) Developer Guide
<id><!--req, xs:integer--></id>
<MACAddress><!--opt, xs:string--></MACAddress>
<ipV4Address><!--opt, xs:string--></ipV4Address>
<accessTime><!--req, xs:time, ISO8601 data--></accessTime>
</accessDevice>
</accessDeviceList>
XML_Cap_AcsUpdate
XML message about the capability of upgrading device
<AcsUpdate version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<type
opt="cardReader,FPModule,securityModule,extendModule,channelController,IRModule,lampModule,elevatorControll
er,FPAlgorithmProgram,uboot,keypad,wirelessRecv,wiredZone,ZigBee,R3,Rx">
<!--optional, upgrading type: "cardReader"-card reader, "FPModule"-fingerprint module, "securityModule"-secure
door control unit, "extendModule"-(IO) extension module, "channelController"-lane controller, "IRModule"-IR
module, "lampModule"-indicator module, "elevatorController"-slave elevator controller, "FPAlgorithmProgram"-
fingerprint algorithm program of the card reader, "uboot", "keypad", "wirelessRecv"-wireless receiving module,
"wiredZone"-wired zone module, "ZigBee"-ZigBee module,"R3"-R3 module,"Rx"-Rx module, "sirenIndoor"-siren
indoor, "sirenOutdoor"-siren outdoor, "repeater"-repeater, "automation"-automation-->
</type>
<cardReaderNo min="" max="">
<!--optional, range of No. of the card reader, this node is valid only when <type> contains "cardReader"-->
</cardReaderNo>
<FPModuleNo min="" max="">
<!--optional, range of No. of the fingerprint module, this node is valid only when <type> contains "FPModule"-->
</FPModuleNo>
<securityModuleNo min="" max="">
<!--optional, range of No. of the secure door control module, this node is valid only when <type> contains
"securityModule"-->
</securityModuleNo>
<extendModuleNo min="" max="">
<!--optional, range of No. of the (IO) extension module, this node is valid only when <type> contains
"extendModule"-->
</extendModuleNo>
<channelControllerNo min="" max="">
<!--optional, range of No. of the lane controller, this node is valid only when <type> contains "channelController"-->
</channelControllerNo>
<IRModuleNo min="" max="">
<!--optional, range of No. of the IR module, this node is valid only when <type> contains "IRModule"-->
</IRModuleNo>
<lampModuleNo min="" max="">
<!--optional, range of No. of the indicator module, this node is valid only when <type> contains "lampModule"-->
</lampModuleNo>
<elevatorControllerNo min="" max="">
<!--optional,range of No. of the slave elevator controller, this node is valid only when <type> contains
"elevatorController"-->
</elevatorControllerNo>
<FPAlgorithmProgramNo min="" max="">
<!--optional, range of No. of the fingerprint algorithm program of the card reader, this node is valid only when
687
Intelligent Security API (General) Developer Guide
XML_Cap_AdminAccessProtocolList
AdminAccessProtocol capability message in XML format
<AdminAccessProtocolList version="2.0" xmlns="http://www.isapi.com/ver20/XMLSchema">
<AdminAccessProtocol><!--multiple <AdminAccessProtocol> nodes are allowed-->
<id><!--req, xs: string, ID--></id>
<enabled opt="true,false"><!--opt, xs: boolean--></enabled>
<protocol
opt="HTTP,HTTPS,SDK,RTSP,DEV_MANAGE,WebSocket,WebSocketS,SDK_OVER_TLS,SRTP,MATRIX_GATEWAY,IOT,Bonjou
r">
<!--req, xs: string-->
</protocol>
<portNo min="2000" max="65535" default="8443"><!--req, xs:integer --></portNo>
<redirectToHttps opt="true,false">
<!--opt, xs: boolean, whether to automatically go to HTTPS when connecting to HTTP port and HTTPS is enabled.
This node is valid when protocol is "HTTPS"-->
</redirectToHttps>
<streamOverTls opt="true,false">
<!--opt, xs: boolean, whether to enable TLS link encryption when the streaming mode is SDK_OVER_TLS, true-yes,
false-no-->
</streamOverTls>
<TLS1_1Enable opt="true,false"><!--dep, xs: boolean, whether to enable TLS version 1.1, it is valid when protocol is
"HTTPS", "true"-yes, "false"-no--></TLS1_1Enable>
<TLS1_2Enable opt="true,false"><!--dep, xs: boolean, whether to enable TLS version 1.2, it is valid when protocol is
"HTTPS", "true"-yes, "false"-no--></TLS1_2Enable>
</AdminAccessProtocol>
<TLS1_0Enable opt="true,false">
<!--dep, xs: boolean, whether to enable TLS version 1.0, it is valid when protocol is "HTTPS", "true"-yes, "false"-no-->
</TLS1_0Enable>
<TLS1_1Enable opt="true,false">
<!--dep, xs: boolean, whether to enable TLS version 1.1, it is valid when protocol is "HTTPS", "true"-yes, "false"-no-->
</TLS1_1Enable>
<TLS1_2Enable opt="true,false">
<!--dep, xs: boolean, whether to enable TLS version 1.2, it is valid when protocol is "HTTPS", "true"-yes, "false"-no-->
</TLS1_2Enable>
</AdminAccessProtocolList>
688
Intelligent Security API (General) Developer Guide
XML_Cap_AudioDetection
XML message about the configuration capability of audio detection
<AudioDetection version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<id><!--required, xs:string, ID--></id>
<audioInputException>
<enabled opt="true,false"><!--required, xs:boolean--></enabled>
</audioInputException>
<soundIntensityMutation>
<enabled opt="true,false"><!--required, xs:boolean--></enabled>
<sensitivityLevel min="1" max="100"><!--required, xs:integer--></sensitivityLevel>
<mutationThreshold min="1" max="100"><!--required, xs:integer--></mutationThreshold>
</soundIntensityMutation>
<SteepFall><!--optional-->
<enabled opt="true,false"><!--required, xs:boolean--></enabled>
<sensitivityLevel min="1" max="100"><!--required, xs:integer--></sensitivityLevel>
</SteepFall>
<mutexAbility opt="PDC"/><!--optional, read-only, xs:string, "PDC"-->
<isSupportMultiScene><!--optional, xs:boolean--></isSupportMultiScene>
<AudioLoss><!--opt-->
<enabled opt="true,false"><!--required, xs:boolean--></enabled>
<sensitivityLevel min="" max="" def=""><!--optional, xs:integer, sensitivity, it is between 1 and 100 and its default
value is 50--></sensitivityLevel>
</AudioLoss>
</AudioDetection>
XML_Cap_BatteryPowerOverlay
BatteryPowerOverlay capability message in XML format
<BatteryPowerOverlay version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<enabled>
<!--req, xs:boolean-->
</enabled>
<positionX>
<!--req, xs:integer, X-coordinate-->
</positionX>
<positionY>
<!--req, xs:integer, Y-coordinate-->
</positionY>
</BatteryPowerOverlay>
XML_Cap_Color
Color capability message in XML format
689
Intelligent Security API (General) Developer Guide
XML_Cap_DatetimeOverlay
DatetimeOverlay capability message in XML format
<DateTimeOverlay version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<enabled>
<!--req, xs:boolean, whether to enable date and time overlay-->
</enabled>
<positionX min="0" max="1000">
<!--req, xs:integer, X-coordinate-->
</positionX>
<positionY min="0" max="1000">
<!--req, xs:integer, Y-coordinate-->
</positionY>
<dateStyle>
<!--opt, xs:string, date format: "YYYY-MM-DD, MM-DD-YYYY, DD-MM-YYYY, CHR-YYYY-MM-DD, CHR-MM-DD-YYYY,
CHR-DD-MM-YYYY"-->
</dateStyle>
<timeStyle>
<!--opt, xs:string, "12hour, 24hour"-->
</timeStyle>
<displayWeek>
<!--opt, xs:boolean, whether to display week information-->
</displayWeek>
<displayMilliSecond>
<!--opt, xs:boolean, whether to display millisecond-->
</displayMilliSecond>
</DateTimeOverlay>
XML_Cap_DDNS
DDNS capability message in XML format
690
Intelligent Security API (General) Developer Guide
XML_Cap_DeviceInfo
MXL message about capability of device information
<DeviceInfo version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<deviceName min="" max=""><!--required, xs:string, device name--></deviceName>
<DockStation>
<!--optional, dock station configuration-->
<Platform>
691
Intelligent Security API (General) Developer Guide
692
Intelligent Security API (General) Developer Guide
value by default--></securityModuleKeyVersion>
<UIDLampRecognition><!--optional, information of the UID lamp recognition device-->
<enabled opt="true,false"><!--optional, xs:boolean, whether to enable--></enabled>
</UIDLampRecognition>
<bootTime><!--optional, xs:string, read-only, system boot time, ISO 8601 format; the maximum length is 32 bytes--
></bootTime>
<isSupportNewVersionDevlanguageSwitch><!--optional, xs:boolean, whether it supports switching language by new
version of the protocol, related URI: /ISAPI/System/DeviceLanguage/capabilities. If the device does not return this
node, it does not indicate that the device does not support switching language by new version of the protocol, and
whether the device supports this function is determined by the obtained capability--></
isSupportNewVersionDevlanguageSwitch>
<ZigBeeVersion min="0",max="16"><!--optional, xs:string, ZigBee module version--></firmwareVersion>
<R3Version min="0",max="16"><!--optional, xs:string, R3 module version--></R3Version>
<RxVersion min="0",max="16"><!--optional, xs:string, Rx module version--></RxVersion>
</DeviceInfo>
XML_Cap_DefaultParam
DefaultParam capability message in XML format
<DefaultParam version="1.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<DialNum min="1" max="32"><!--opt, xs:string--></DialNum>
<Username min="1" max="32"><!--opt, xs:string--></Username>
<Password min="1" max="32"><!--opt, xs:string--></Password>
<APNname min="1" max="32"><!--opt, xs:string--></APNname>
<VerifyProto opt="auto,CHAP,PAP"><!--req, xs:string, verification protocol: "auto, CHAP, PAP"--></VerifyProto>
</DefaultParam>
XML_Cap_DeviceLanguage
DeviceLanguage capability message in XML format
<DeviceLanguage version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<language
opt="SimChinese,TraChinese,English,Russian,Bulgarian,Hungarian,Greek,German,Italian,Czech,Slovakia,French,Polish,D
utch,Portuguese,Spanish,Romanian,Turkish,Japanese,Danish,Swedish,Norwegian,Finnish,Korean,Thai,Estonia,Vietname
se,Hebrew,Latvian,Arabic,Sovenian,Croatian,Lithuanian,Serbian,BrazilianPortuguese,Indonesian,Ukrainian">
<!--req, xs:string, language supported by the device: "SimChinese"-simplified Chinese, "TraChinese"-traditional
Chinese, "English", "Russian", "Bulgarian", "Hungarian", "Greek", "German", "Italian", "Czech", "Slovakia", "French",
"Polish", "Dutch", "Portuguese", "Spanish", "Romanian", "Turkish", "Japanese", "Danish", "Swedish", "Norwegian",
"Finnish", "Korean", "Thai", "Estonia", "Vietnamese", "Hebrew", "Latvian", "Arabic", "Sovenian"-Slovenian, "Croatian",
"Lithuanian", "Serbian", "BrazilianPortuguese"-Brazilian Portuguese, "Indonesian", "Ukrainian"-->
</language>
<upgradeFirmWareEnabled><!--optional, xs:boolean, whether to upgrade the firmware: true (the firmware of the
device needs to be updated when the language is switched because there is no upgrading package for the language in
the local device)--></upgradeFirmWareEnabled>
</DeviceLanguage>
693
Intelligent Security API (General) Developer Guide
XML_Cap_DiagnosedDataParameter
XML message about capability of exporting diagnose information
<?xml version="1.0" encoding="utf-8"?>
<DiagnosedDataParameter version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<enabled opt="true,false">
<!--required, xs:boolean, whether to enable exporting diagnose information: true-yes, false-no-->
</enabled>
<HardwareInfo opt="true,false">
<!--optional, xs:boolean,opt="true,false", whether to enable exporting hardware information, such as running
information of motor, fan, heater, compressor, supplement light, wiper, and so on-->
</HardwareInfo>
<SoftwareInfo opt="true,false">
<!--optional, xs:boolean, whether to enable exporting software information, such as software status, running log,
system information-->
</SoftwareInfo>
<logInfo opt="true,false"><!--optional, xs:boolean, whether to enable exporting startup log--></logInfo>
<isSupportServer><!--optional, xs:boolean, whether the device supports diagnostic server configuration (related
URI: /ISAPI/System/diagnosedData/server?format=json)--></isSupportServer>
</DiagnosedDataParameter>
XML_Cap_Dial
Dial capability message in XML format
<Dial version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<enabled opt="true,false" def="false"><!--req, xs:boolean--></enabled>
<DialMethod opt="auto,manual">
<!--req, xs:string, "auto, manual", set it to manual when accessing the private network,and you can configure dial-
up parameters(including access number, user name, password, APN, and verification protocol-->
</DialMethod>
<SwitchMethod opt="auto,4GFirst,3GFirst,manualto2G,manualto3G,manualto4G,cableFirst">
<!--req, xs:string, "auto,4GFirst,3GFirst, manualto2G, manualto3G,manualto4G,cableFirst"-->
</SwitchMethod>
<OfflineTime min="30" max="65535"><!--opt, xs:integer, unit: second--></OfflineTime>
<UIMCardNum min="1" max="32"><!--opt, xs:string--></UIMCardNum>
<DialNum min="1" max="32"><!--opt, xs:string--></DialNum>
<Username min="1" max="32"><!--opt, xs:string--></Username>
<Password min="1" max="32"><!--opt, xs:string--></Password>
<APNname min="1" max="32"><!--opt, xs:string--></APNname>
<SIMNum min="" max=""><!--opt, xs:string, SIM card No. (mobile phone number)--></SIMNum>
<MTU min="100" max="1500"><!--opt, xs: integer--></MTU>
<VerifyProto opt="auto,CHAP,PAP"><!--req, xs:string, verification protocol: "auto, CHAP, PAP"--></VerifyProto>
<DefaultParam/><!--opt, default parameters, see details in the message of XML_Cap_DefaultParam-->
<netAPN min="" max=""/><!--opt, xs:string, APN configuration for the private network-->
<Flow><!--opt, flow configuration-->
<limitEnabled opt="true,false"><!--opt, xs:boolean, whether to enable flow limitation--></limitEnabled>
<consumeFlow opt="true,false"><!--opt, xs:boolean, whether supports displaying flow usage, unit: MB--></
694
Intelligent Security API (General) Developer Guide
consumeFlow>
<threshold min="" max=""><!--opt, threshold of flow, unit: MB--></threshold>
</Flow>
<enabled4G opt="true,false" def="true"><!-- opt, xs:boolean, whether to enable 4G--></enabled4G>
<isSupportNetworkKeepAlive><!--opt, xs:boolean, whether it supports network keepalive --></
isSupportNetworkKeepAlive>
<enabledDNS opt="true,false" def="true"><!-- opt, xs:boolean, whether to enable DNS manual configuration--></
enabledDNS>
<pinCode min="" max=""/><!--optional, write-only, xs:string, PIN code-->
<ISPName min="" max=""><!--optional, xs:string, ISP (Internet Service Provider) name--></ISPName>
<IMEINo min="" max=""><!--optional, xs:string, IMEI code--></IMEINo>
<ICCID><!--optional, xs:string, ICCID code--></ICCID>
<netType opt="2G,3G,4G"><!--optional, xs:string, network type--></netType>
</Dial>
See Also
XML_Cap_DefaultParam
XML_Cap_Discovery
Discovery capability message in XML format
<Discovery version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<UPnP><!--req-->
<enabled><!--req, xs:boolean, "true, false"--></enalbed>
</UPnP>
<ZeroConf><!--opt, channel-zero configuration-->
<enabled><!--req, xs:boolean, "true, false"--></enabled>
</ZeroConf>
</Discovery>
XML_Cap_DiscoveryMode
XML message about terminal SADP configuration capability
<DiscoveryMode xmlns="http://www.isapi.org/ver20/XMLSchema" version="2.0" >
<ONVIFDiscoveryMode>
<!--optional, xs:string, "discoverable,nonDiscoverable-->
</ONVIFDiscoveryMode>
<ISDiscoveryMode>
<!-- optional, xs:string, "discoverable,nonDiscoverable-->
</ISDiscoveryMode>
<PcapMode>
<!--optional, xs:string, "discoverable,nonDiscoverable-->
</PcapMode>
<SADP>
<!--optional, xs:string,"discoverable,nonDiscoverable-->
695
Intelligent Security API (General) Developer Guide
</SADP>
</DiscoveryMode>
XML_Cap_EagleFocusing
EagleFocusing capability message in XML format
<?xml version="1.0" encoding="utf-8"?>
<EagleFocusing version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<id><!--req,xs:string--></id>
<enabled opt="true,false"><!--req, xs:boolean, "true"-start calibration, "false"-stop calibration--></enabled>
<normalizedScreenSize><!--req,ro-->
<normalizedScreenWidth><!--req,ro,xs:integer--></normalizedScreenWidth>
<normalizedScreenHeight><!--req,ro,xs:integer--></normalizedScreenHeight>
</normalizedScreenSize>
<EagleFocusingRegionList><!--opt-->
<EagleFocusingRegion><!--list-->
<id><!--req, xs:string--></id>
<sid><!--opt,xs:string, scene ID--></sid>
<rate><!--opt,xs:integer, rate--></rate>
<spotNum><!--opt,xs:integer, the number of calibration points--></spotNum>
<type><!--req,xs:string,"line", region type, now only supports "line"--></type>
<Region><!--dep, depends on type-->
<RegionCoordinatesList size="4"><!--opt-->
<RegionCoordinates><!--list-->
<positionX><!--req,xs:integer,coordinate--></positionX>
<positionY><!--req,xs:integer,coordinate--></positionY>
</RegionCoordinates>
</RegionCoordinatesList>
</Region>
</EagleFocusingRegion>
</EagleFocusingRegionList>
<sceneNum min="" max=""><!--opt,xs:integer, the maximum number of supported scenes--></sceneNum>
<isSupportSceneGoto opt="true,false"><!--opt,xs:boolean, whether device supports turning to specified scene--></
isSupportSceneGoto>
<rate min="" max=""><!--opt,xs:integer, rate--></rate>
<spotNum min="" max=""><!--opt,xs:integer, the number of calibration points on line--></spotNum>
<onlyReadParam opt="rate,spotNum"><!--opt,xs:string,"rate,spotNum"--></onlyReadParam>
<isSupportAuto opt="true,false"><!--req,xs:boolean, whether device supports automatic calibration of rapid focus--
></isSupportAuto>
</EagleFocusing>
XML_Cap_EHome
EHome capability message in XML format
<Ehome version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<id min="1" max="1"><!--opt, xs:string, EHome center ID--></id>
<GPRSAddressingFormatType opt="ipaddress"><!--opt, xs:string, GPRS address type. If this node is not returned, the
696
Intelligent Security API (General) Developer Guide
address type will be determined by addressingFormatType which indicates that the address types configured by
different networks do not need to be distinguished--></GPRSAddressingFormatType>
<addressingFormatType opt="ipaddress,hostname"><!--req, xs:string--></addressingFormatType>
<hostName min="" max=""><!--dep, xs:string, domain name--></hostName>
<ipAddress min="" max=""><!--dep, xs:string--></ipAddress>
<ipv6Address min="" max=""><!--dep, xs:string--></ipv6Address>
<portNo min="" max=""><!--opt, xs:integer--></portNo>
<deviceID min="" max=""><!--req, xs:string--></deviceID>
<registerStatus min="" max=""><!--ro, xs:boolean--></registerStatus>
<key min="" max=""><!--opt, xs:string, encryption key of EHome version 5.0--></key>
<version min="" max=""><!--ro, xs:string--></version>
<netWork opt="0,1,2,3,4"/><!--opt,xs:integer, 0-make no sense, 1-automatic, 2-wired network preferred, 3-wired
network, 4-3G/4G/GPRS-->
<voiceDeviceType opt="bluetooth,client,local"><!--opt, xs:string, two-way audio device type: "bluetooth"-bluetooth
device, "client", "local"--></voiceDeviceType>
<protocolVersion opt="v2.0,v2.6,v4.0,v5.0"><!--opt, xs:string, protocol version: "v2.0,v2.6,v4.0,v5.0". If this node is
set to "v2.0", the device can only use protocol v2.0 to register; if this node is set to "v2.6", "v4.0" or "v5.0", the device
will firstly use this protocol to register. If this node is not returned, the protocol version will be determined by
<version>--></protocolVersion>
</Ehome>
XML_Cap_ExternalDevice
XML message about external device configuration capability
<?xml version="1.0" encoding="utf-8"?>
<ExternalDevice version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<SupplementLight/><!--opt, whether device supports configuring supplement light, see XML_Cap_SupplementLight
for details-->
<THScreen/><!--opt, capability of peripheral screen configuration, corresponding url: /ISAPI/System/externalDevice/
THScreen-->
<isSupportSupplementLightChannelSetting>
<!--opt, xs:boolen, whether device supports configuring peripheral supplement light of specified channel,
corresponding url: /ISAPI/System/channel/<ID>/externalDevice/supplementLight-->
</isSupportSupplementLightChannelSetting>
</ExternalDevice>
See Also
XML_Cap_SupplementLight
XML_Cap_ExtraInfo
ExtraInfo capability message in XML format
<ExtraInfo version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<diskMode opt="singleDisk,RAID"><!--req, xs:string, disk mode: "singleDisk"-single disk, "RAID". The device needs to
reboot after changing the disk mode--></diskMode>
</ExtraInfo>
697
Intelligent Security API (General) Developer Guide
XML_Cap_EZVIZ
XML message about the Hik-Connect access configuration capability
<?xml version="1.0" encoding="utf-8"?>
<EZVIZ version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<!--redirect: whether to enable redirecting server address-->
<!--verificationCode: only admin users are allowed to edit the verification code-->
<enabled opt="true,false"><!--required, xs:boolean--></enabled>
<registerStatus opt="true,false"><!--read-only, optional, xs:boolean--></registerStatus>
<redirect opt="true,false"><!--optional, xs:boolean--></redirect>
<serverAddress><!--optional-->
<addressingFormatType min="" max=""><!--required, xs:string, "ipaddress,hostname"--></addressingFormatType>
<hostName min="" max=""><!--dependent, xs:string--></hostName>
<ipAddress min="" max=""><!--dependent, xs:string--></ipAddress>
<ipv6Address min="" max=""><!--dependent, xs:string--></ipv6Address>
</serverAddress>
<verificationCode min="" max=""><!--optional, xs:string--></verificationCode>
<offlineStatus opt="secretKeyInvalid"><!--read-only, dependent, xs:string, device offline status: "secretKeyInvalid"-
invalid verification code, it is valid when the value of registerStatus is "false"--></offlineStatus>
<streamEncrypteEnabled opt="true,false"><!--optional, xs:boolean, whether to enable stream encryption--></
streamEncrypteEnabled>
<isSupportUpISAPI><!--optional, xs:boolean, whether the device supports uplink transmitting ISAPI message-->true</
isSupportUpISAPI>
<isSupportDownISAPI><!--optional, xs:boolean, whether the device supports downlink transmitting ISAPI message--
>true</isSupportDownISAPI>
<isSupportEZVIZQRCode><!--optional, xs:boolean, whether the device supports getting the Hik-Connect QR code
(related URI: /ISAPI/System/Network/EZVIZ/QRCode?format=json)--></isSupportEZVIZQRCode>
</EZVIZ>
XML_Cap_FocusConfiguration
FocusConfiguration capability message in XML format
<FocusConfiguration>
<focusStyle opt="AUTO,MANUAL,SEMIAUTOMATIC"><!--req, xs:string--></focusStyle>
<focusLimited opt="50,100,300,600,1000,2000,5000,10000,15000" def="1000"><!--opt, xs:integer--></focusLimited>
<focusPosition/><!--dep, xs:integer, depends on FocusStyle-->
<focusSpeed><!--opt, xs:intger--></focusSpeed>
<focusSensitivity min="0" max="2" def="1"><!--optional, xs:intger, sensitivity of focus, ranging from 0 to 2. It is valid
when the focus mode is automatic or semi-automatic--></focusSensitivity>
<temperatureChangeAdaptEnabled opt="true,false"--><!--optional, xs:boolean--></
temperatureChangeAdaptEnabled>
<relativeFocusPos min="0" max="4000" def=""><!--optional, xs:intger--></relativeFocusPos>
<highTemperaturePriority opt="true,false"><!--optional, xs:boolean, enable high temperature priority mode--></
highTemperaturePriority>
<focusStatus opt="success,failed,working"><!--optional, xs:string, focus status: success, failed, working (focusing)--></
focusStatus>
<motorMovementType opt="manual,auto,armingLocation"><!--optional, xs:string, motor movement type: manual,
698
Intelligent Security API (General) Developer Guide
XML_Cap_FTPNotification
FTPNotification capability message in XML format
<FTPNotification version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<id>
<!--req, xs:string, FTP ID-->
</id>
<enabled>
<!--req, xs:boolean, whether to enable the FTP server-->
</enabled>
<useSSL>
<!--opt, xs:boolean-->
</useSSL>
<addressingFormatType opt="ipaddress,hostname">
<!--req, xs:string, this node can only be set to "ipaddress"-->
</addressingFormatType>
<hostName>
<!--dep, xs:string-->
</hostName>
<ipAddress>
<!--dep, xs:string-->
</ipAddress>
<ipv6Address>
<!--dep, xs:string-->
</ipv6Address>
<portNo>
<!--opt, xs:integer, FTP port No.-->
</portNo>
<userName>
<!--req, xs:string, user name-->
</userName>
<password>
<!--wo, xs:string, password-->
</password>
<passiveModeEnabled>
<!--opt, xs:boolean-->
</passiveModeEnabled>
<annoyftp>
<!--opt, xs:boolean-->
</annoyftp>
<uploadPicture>
<!--opt, xs:boolean-->
</uploadPicture>
<uploadVideoClip>
<!--opt, xs:boolean-->
</uploadVideoClip>
<uploadPath>
699
Intelligent Security API (General) Developer Guide
<!--req-->
<pathDepth>
<!--req, xs:integer, directory levels, up to 16 levels can be supported-->
</pathDepth>
<topDirNameRule opt="none, devName, devId, devIp, positionInfo, time_month, time_date, illegalType, direction,
site, chanName, chanId, laneId, customize ,time, buildUnitNo">
<!--dep, xs:string, parent directory name: "none", "devName"-device name, "devId"-device ID, "devIp"-device IP
address, "positionInfo"-camera 1, "time_month"-usage date (YYYY-MM), "time_date"-usage date (YYYY-MM-DD),
"illegalType"-violation type, "direction"-direction, "site"-place, "chanName"-channel name, "chanId"-channel No.,
"laneId"-lane No., "customize"-custom, "time", "buildUnitNo"-building No. and unit No. This node is set to NULL by
default-->
</topDirNameRule>
<topDirName min="" max="">
<!--dep, xs:string, custom string for parent directory, the maximum string length is 32 bytes. This node is valid
when <topDirNameRule> is "customize". If attributes of "min" and "max" are not obtained after parsing, the default
value will be returned without error message-->
<topDirName/><!--dep, xs:string, custom string for parent directory, the maximum string length is 32 bytes. This
node is valid when <topDirNameRule> is "customize"-->
<subDirNameRule opt="none, devName, devId, devIp, positionInfo, time_month, time_date, illegalType, direction,
site, chanName, chanId, laneId, customize ,time, buildUnitNo">
<!--dep, xs:string, child directory name-->
</subDirNameRule>
<subDirName min="" max="">
<!--dep, xs:string, custom string for child directory, the maximum string length is 32 bytes. This node is valid when
<subDirNameRule> is "customize". If attributes of "min" and "max" are not obtained after parsing, the default value
will be returned without error message-->
<subDirName/><!--dep, xs:string, custom string for child directory, the maximum string length is 32 bytes. This node
is valid when <subDirNameRule> is "customize"-->
<threeDirNameRule opt="none, devName, devId, devIp, positionInfo, time_month, time_date, illegalType, direction,
site, chanName, chanId, laneId, customize ,time, buildUnitNo">
<!--dep, xs:string, the third directory name-->
</threeDirNameRule>
<threeDirName/><!--req, xs:string, custom string for the third directory, the maximum string length is 32 bytes. This
node is valid when <threeDirNameRule> is "customize"-->
<fourDirNameRule opt="none, devName, devId, devIp, positionInfo, time_month, time_date, illegalType, direction,
site, chanName, chanId, laneId, customize ,time, buildUnitNo">
<!--dep, xs:string, the fourth directory name-->
</fourDirNameRule>
<fourDirName/><!--req, xs:string, custom string for the fourth directory, the maximum string length is 32 bytes. This
node is valid when <fourDirNameRule> is "customize"-->
</uploadPath>
<picArchivingInterval min="" max="">
<!--opt, xs:integer, the value is between 1 and 30, 0-close-->
</picArchivingInterval>
<picNameRuleType opt="default,prefix">
<!--opt, xs:string-->
</picNameRuleType>
<picNamePrefix min="0" max="32">
<!--dep, xs:string-->
</picNamePrefix>
<ftpPicNameRuleType opt="videoIntercom,ITC">
<!--req, xs:string, type of FTP picture name rule: "videoIntercom"-rule used by video intercom products, "ITC"-rule
700
Intelligent Security API (General) Developer Guide
701
Intelligent Security API (General) Developer Guide
See Also
XML_Cap_ItemList
XML_Cap_FTPNotificationList
FTPNotificationList capability message in XML format
<FTPNotificationList version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<FTPNotification/><!--opt, see details in the message of XML_Cap_FTPNotification-->
</FTPNotificationList>
See Also
XML_Cap_FTPNotification
XML_Cap_GuardAgainstTheft
GuardAgainstTheft capability message in XML format
<GuardAgainstTheft version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<enabled opt="true,false"><!--required, xs:boolean, whether it supports enabling device anti-theft--></enabled>
<SMSEnabled opt="true,false"><!--required, xs:boolean, whether it supports enabling SMS--></SMSEnabled>
<phoneNum min="0" max="32"><!--dependency, xs:string, phone No.--></phoneNum>
<longitudeLatitudeEnabled opt="true,false"><!--dependency, xs:boolean, whether it supports enabling longitude and
latitude--></longitudeLatitudeEnabled>
<siteLocationEnabled opt="true,false"><!--dependency, xs:boolean, whether it supports enabling site location--></
siteLocationEnabled>
<siteLocationInfo min="0" max="128"><!--dependency, xs:string, site location information--></siteLocationInfo>
<timeEnabled opt="true,false"><!--dependency, xs:boolean, whether it supports enabling time--></timeEnabled>
<customInfo min="0" max="128"><!--dependency, xs:string, custom information--></customInfo>
</GuardAgainstTheft>
XML_Cap_HardwareService
HardwareService capability message in XML format
<HardwareService version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<IrLightSwitch><!--opt-->
<mode opt="open,close"><!--req, xs:string --></mode>
</IrLightSwitch>
<ABF><!--opt-->
<enabled><!--req, xs:boolean --></enabled>
</ABF>
<LED><!--opt-->
<enabled><!--req, xs:boolean --></enabled>
</LED>
<Defog><!--opt-->
702
Intelligent Security API (General) Developer Guide
XML_Cap_hddList
hddList capability message in XML format
<hddList version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema" size="">
<hdd><!--list-->
<id><!--read-only, required, xs: string; ID--></id>
<hddName><!--read-only, required, xs: string--></hddName>
<hddPath><!--read-only, optional, xs: string--></hddPath>
<hddType opt="IDE,SATA,eSATA,NFS,iSCSI,Virtual Disk"><!--read-only, required, xs: string--></hddType>
<status
opt="ok,unformatted,error,idle,mismatch,offline,smartFailed,reparing,formating,notexist,unRecordHostFormatted">
<!--read-only, required, xs: string, unRecordHostFormatted--unformatted in education sharing system-->
</status>
<capacity><!--read-only, required, xs: float, unit: MB--></capacity>
<freeSpace><!--read-only, required, xs: float, unit: MB--></freeSpace>
<property opt="RW,read-only,Redund"><!--required, xs: string, HDD properties--></property>
<group><!--optional, xs: string; HDD group ID--></group>
<reservedDayCfg min="0" max="1000"><!--optional, xs:integer, video saving duration, it is between 0 and 1000,
unit: day--></reservedTimeCfg>
<DataModeList><!--optional, read-only, current HDD allocation mode-->
<DataMode>
<type opt="recordStorage,pictureCloudStorage,fileStorage">
<!--required, xs: string, storage application type, recordStorage-video storage, pictureCloudStorage-picture to be
saved in cloud storage, fileStorage-file-storage->
703
Intelligent Security API (General) Developer Guide
</type>
<occupancyRate><!--required, xs: integer, HDD usage, range: [0,100]--></occupancyRate>
</DataMode>
</DataModeList>
<formatType opt="FAT32,EXT4" def="FAT32">
<!--read-only, optional, xs: string, formatting type, this node is only available for SD card; if this node does not
exist, the default formatting type is FAT32-->
</formatType>
<Encryption>
<passwordLen min="6" max="64"/>
<encryptionStatus opt="unencrypted,encrypted,verfyFailed"><!--read-only, optional, xs:string, encryption status:
"unencrypted", "encrypted", "verfyFailed"-verification failed--></encryptionStatus>
<encryptFormatType opt="FAT32,EXT4"><!--read-only, optional, xs:string--></encryptFormatType>
</Encryption>
<isSupportLogStorage><!--optional, xs:boolean, whether it can be used as a log HDD--></isSupportLogStorage>
</hdd>
</hddList>
XML_Cap_IbeaconParam
IbeaconParam capability message in XML format
<IbeaconParam version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<UUID min="" max="">
<!--req, xs:string, parking lot ID, which supports using digits, letters and hyphen as the tag-->
</UUID>
<major min="" max="">
<!--req, xs:integer, number of floors in the parking lot, which cannot be 0x00 for all-->
</major>
<minor min="" max="">
<!--req, xs:integer, number of parking spaces on each floor, which cannot be 0x00 for all-->
</minor>
<sendPower min="" max="">
<!--req, xs:integer, transmitted power: 01-0 dbm, 02- -6 dbm, 03- -23 dbm-->
</sendPower>
<frequency min="" max="">
<!--req, xs:integer, transmitted frequency, which is the broadcast time interval, unit: 625 µs. The broadcast time
interval is between 32 (20 ms) to 8000 (5s), and the default value is 160 (100 ms)-->
</frequency>
<measurePower min="" max="">
<!--req, xs:integer, rated power, which is the RSSI (Received Signal Strength Indication) in the position of 1 meter
away, unit: dbm-->
</measurePower>
</IbeaconParam>
XML_Cap_IEEE802_1x
IEEE802_1x capability message in XML format
704
Intelligent Security API (General) Developer Guide
XML_Cap_ImageChannel
XML message about image channel capability
<ImageChannel version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<id><!--req, xs:integer--></id>
<enabled><!--req, xs:boolean--></enabled>
<videoInputID><!--req, xs:integer--></videoInputID>
<FocusConfiguration/><!--opt, refer to the message XML_Cap_FocusConfiguration for details-->
<LensInitialization/><!--opt-->
<ImageFlip/><!--opt-->
<ImageFreeze/><!--opt-->
<proportionalpan/><!--opt-->
<WDR>
<mode opt="close,open,auto"><!--req, xs: string, WDR mode: "open,close,auto"--></mode>
<WDRLevel max="100" min="0"><!--opt, xs: integer--></WDRLevel>
<WDRContrastLevel max="" min="0"><!--opt, xs:integer--></WDRContrastLevel>
< WDRLevel1 max="" min="0"><!--opt,xs:integer-->< /WDRLevel1>
</WDR>
<BLC/><!--opt-->
<NoiseReduce/><!--opt-->
<ImageEnhancement/><!--opt-->
<SlowShutter/><!--opt-->
<DSS/><!--opt-->
<WhiteBlance/><!--opt-->
<Exposure/><!--opt, exposure configuration parameters, refer to the message XML_Exposure for details-->
<DayNightGate/><!--opt-->
705
Intelligent Security API (General) Developer Guide
<BrightEnhance/><!--opt-->
<Sharpness>
<SharpnessLevel max="100" min="0"><!--req, xs:integer--></SharpnessLevel>
</Sharpness>
<gammaCorrection/><!--opt-->
<powerLineFrequency/><!--opt-->
<Color><!--opt, image adjustment capability-->
<brightnessLevel max="100" min="0"><!--opt, xs:integer, brightness--></brightnessLevel>
<contrastLevel max="100" min="0"><!--opt,xs:integer, contrast--></contrastLevel>
<saturationLevel max="100" min="0"><!--opt, xs:integer, saturation--></saturationLevel>
<grayScale>
<grayScaleMode opt="outdoor,indoor"><!--opt,xs:string, gray scale mode: "indoor,outdoor"--></grayScaleMode>
</grayScale>
</Color>
<IrcutFilter/><!--opt, configuration parameters of day/night auto-switch, refer to the message XML_IrcutFilter for
details-->
<Scene/><!--opt-->
<EPTZ/ ><!--opt-->
<EIS/><!--opt-->
<HLC/> <!--opt-->
<ZoomLimit/> <!--opt-->
<corridor/><!--opt-->
<Dehaze/><!--opt-->
<ImageMode opt="standard, indoor, outdoor, dimLight"/><!--opt, xs:string-->
<enableImageLossDetection><!--opt, boolean--></enableImageLossDetection>
<CaptureMode/><!--opt-->
<IrLight/><!--opt-->
<LensDistortionCorrection/><!--opt-->
<SupplementLight/><!--opt, supplement light configuration capability, refer to the message
XML_Cap_SupplementLight for details-->
<OpticalDehaze/><!--opt-->
<ManualRanging/><!--opt-->
<OIS/><!--opt-->
<isSupportlaserSpotManual><!--opt, boolean--></isSupportlaserSpotManual>
<isSupportLaserSpotAdjustment><!--opt, boolean--></isSupportLaserSpotAdjustment>
<DigitalZoom>
<ZoomRatio opt="1x,2x,4x,8x,16x,32x"><!--req, xs:string---></ZoomRatio>
</DigitalZoom>
<Palettes>
<mode
opt="WhiteHot,BlackHot,Fusion1,Rainbow,Fusion2,Ironbow1,Ironbow2,Sepia,Color1,Color2,IceFire,Rain,RedHot,Green
Hot,DeepBlue,Color3"><!--
opt,xs:string,"WhiteHot,BlackHot,Fusion1,Rainbow,Fusion2,Ironbow1,Ironbow2,Sepia,Color1,Color2,IceFire,Rain,RedH
ot,GreenHot,DeepBlue,Color3"--></mode>
<ColorateTarget><!--dep,mode="WhiteHot","target coloration"-->
<ColorateTargetModeList>
<ColorateTargetMode><!--list-->
<id><!--req,xs:integer "index,which starts from 1"--></id>
<mode opt="colorateHotAreae,colorateIntervalArea,colorateColdArea"><!--
req,xs:string,"colorateHotAreae,colorateIntervalArea,colorateColdArea"--></mode>
<enabled opt="true,false"><!--req,xs:boolean,"true,false"--></enabled>
<TemperatureLimit><!--req "temperature range"-->
706
Intelligent Security API (General) Developer Guide
707
Intelligent Security API (General) Developer Guide
Remarks
The nodes <DigitalZoom> and <ExposureSync> are not supported by thermographic automation
thermal camera (DS-2TA03-15SVI, DS2TA06-25SVI).
XML_Cap_InputProxyChannel
InputProxyChannel capability message in XML format
<InputProxyChannel version="1.0" xmlns="http://www.isapi.com/ver20/XMLSchema">
<id min="" max=""></id>
<name min="" max=""></name>
<sourceInputPortDescriptor>
<adminProtocol opt="HIKVISION,SONY,ISAPI,ONVIF"></adminProtocol>
<addressingFormatType opt="ipaddress,hostname"></addressingFormatType>
<hostName min="" max=""></hostName>
<ipAddress></ipAddress>
<ipv6Address></ipv6Address>
<adminPortNo min="2000" max="65535"></adminPortNo>
<srcInputPort min="" max=""></srcInputPort>
<userName min="" max=""><!--user name, which should be encrypted--></userName>
<password min="" max=""><!--password, which should be encrypted--></password>
<streamType opt="auto,tcp,udp"></streamType>
<deviceID min="" max=""></deviceID>
</sourceInputPortDescriptor>
<enableAnr opt="true,false"></enableAnr>
<NVRInfo>
<ipAddressNVR>
<!--opt, xs:string, IP address of NVR-->
</ipAddressNVR>
<portNVR min="2000" max="65535">
<!--opt, xs:integer, port No. of NVR-->
</portNVR>
<ipcChannelNo min="" max="">
<!--opt, xs:integer, channel No. of the network camera in NVR-->
</ipcChannelNo>
</NVRInfo>
</InputProxyChannel>
XML_Cap_IOInputPortList
IOInputPortList capability message in XML format
<IOInputPortList version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<IOInputPort><!--list-->
<id><!--required, xs:string, IO port No.--></id>
<enabled opt="true,false"><!--required, xs:boolean, whether to enable--></enabled>
<triggering opt="high,low"><!--required, xs:string, triggering mode: "high"-high level, "low"-low level--></triggering>
<name min="", max=""><!--required, xs:string, IO port name--></name>
708
Intelligent Security API (General) Developer Guide
XML_Cap_IOOutputPortList
IOOutputPortList capability message in XML format
<IOOutputPortList version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<IOOutputPort>
<id min="" max=""><!--required, xs:integer, "2" --></id>
<PowerOnState><!--required, output port configuration parameters when the device is powered on>
<defaultState opt="high,low">
<!--required, read-only, xs:string,default output port signal when it is not triggered-->
</defaultState>
<outputState opt="high,low,pulse">
<!--required, read-only, xs:string, output port signal when it is being triggered-->
</outputState>
<pulseDuration opt="1000,2000,3000,4000,5000,10000,30000,60000,120000,300000,600000,0">
<!--dependent, xs:integer, duration of a output port signal when it is being triggered, it is valid when outputState
is "pulse", unit: milliseconds-->
</pulseDuration>
</PowerOnState>
<name><!--optional, xs:string--></name>
<IOUseType opt="disable,electricLock,custom"><!--optional, xs:string--></IOUseType>
<normalStatus opt="open, close"><!--optional, xs:string, normal status: open-remain open, close-remain closed--></
normalStatus>
<enabled><!--optional, xs:boolean, enable; default value: true--></enabled>
<IOType><!--optional, read-only, xs:string, supported IO type: local (local IO), digitalChannel (digital channel IO),
analogChannel (analog channel IO); default value: local--></IOType>
</IOOutputPort>
</IOOutputPortList>
709
Intelligent Security API (General) Developer Guide
XML_Cap_IpAddress
IpAddress capability message in XML format
<IpAddress version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<ipVersion opt="IPv4,IPv6,dual">
<!--req, xs:string-->
</ipVersion>
<addressingType opt="static,dynamic,apipa">
<!--req, xs:string-->
</addressingType>
<ipAddress min="0" max="40">
<!--dep, xs:string-->
</ipAddress>
<subnetMask min="0" max="15">
<!--dep, xs:string-->
</subnetMask>
<ipv6Address min="0" max="40">
<!--dep, xs:string-->
</ipv6Address>
<bitMask ask min="0" max="128">
<!--dep, xs:integer-->
</bitMask>
<DefaultGateway>
<!--dep-->
<ipAddress min="0" max="40">
<!--dep, xs:string-->
</ipAddress>
<ipv6Address min="0" max="40">
<!--dep, xs:string-->
</ipv6Address>
</DefaultGateway>
<PrimaryDNS>
<!--dep-->
<ipAddress min="0" max="40">
<!--dep, xs:string-->
</ipAddress>
<ipv6Address min="0" max="40">
<!--dep, xs:string-->
</ipv6Address>
</PrimaryDNS>
<SecondaryDNS>
<!--dep-->
<ipAddress min="0" max="40">
<!--dep, xs:string-->
</ipAddress>
<ipv6Address min="0" max="40">
<!--dep, xs:string-->
</ipv6Address>
</SecondaryDNS>
<Ipv6Mode><!--opt-->
710
Intelligent Security API (General) Developer Guide
<ipV6AddressingType opt="router,ra,manual,dhcp">
<!--dep, xs:string-->
</ipV6AddressingType>
<ipv6AddressList>
<v6Address>
<id min="0" max="255">
<!--dep, xs:string-->
</id>
<type opt="router,ra,manual,dhcp">
<!--dep, xs:string-->
</type>
<address min="0" max="40">
<!--dep, xs:string-->
</address>
<bitmask min="0" max="255">
<!--dep, xs:integer-->
</bitMask>
</v6Address>
</ipv6AddressList>
</Ipv6Mode>
</IpAddress>
XML_Cap_IPFilter
IPFilter capability message in XML format
<IPFilter version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<enabled opt="true, false"><!--req, xs:boolean--></enabled>
<permissionType opt="deny, allow">
<!--req, xs:string, IP address filter status: "deny, allow". If this node is configured, it will overwrite value of all
<permissionType> in <IPFilterAddres>-->
</permissionType>
<IPFilterAddressList size="32"><!--opt, the attribute "size" refers to the maximum number of IP addresses supported
by the device. If the attribute "size" is not returned, the default supported number of IP addresses is 48-->
<IPFilterAddress>
<id min="" max=""><!--req, xs:string, ID--></id>
<permissionType opt="deny, allow"><!--dep, ro, xs:string--></permissionType>
<addressFilterType opt="mask,range">
<!--dep, ro, xs:string, filter type: "mask"-single address, "range"-address range-->
</addressFilterType>
<AddressRange><!--dep, this node is valid when <addressFilterType> contains "range"-->
<startIPAddress min="" max=""><!--dep, xs:string--></startIPAddress>
<endIPAddress min="" max=""><!--dep, xs:string--></endIPAddress>
<startIPv6Address min="" max=""><!--dep, xs:string--></startIPv6Address>
<endIPv6Address min="" max=""><!--dep, xs:string--></endIPv6Address>
</AddressRange>
<AddressMask><!--dep, it is valid when <addressFilterType> contains "mask"-->
<ipAddress min="" max=""><!--dep, xs:string--></ipAddress>
<ipv6Address min="" max=""><!--dep, xs:string--></ipv6Address>
<bitMask min="" max=""><!--opt, xs:string--></bitMask>
<bitMaskIPV6 min="" max=""> <!--req, xs:string, IPv6 prefix length--></bitMaskIPV6>
711
Intelligent Security API (General) Developer Guide
</AddressMask>
<describeMsg min="" max=""><!--opt, xs:string--></describeMsg>
</IPFilterAddress>
</IPFilterAddressList>
</IPFilter>
XML_Cap_ItemList
ItemList capability message in XML format
<ItemList size="15">
<Item>
<itemID min="1" max="15">
<!--req, xs:string, item ID, which is between 1 and 15-->
</itemID>
<itemOrder
opt="none,devIp,time,buildUnitNo,outDoorDevNo,unlockType,devName,deviceNo,channelName,channelNo,
plateNo,plateColor,laneNo,carSpeed,
positionInfo1,pictureNo,CarNo,speedLimit,illegalCode,siteNo,directionNo,carColor,platePosition,carType,illegalType,cu
stom">
<!--req, xs:string, name element: "none", "devIp"-device IP address, "time", "buildUnitNo"-building No. and unit
No., "outDoorDevNo"-door station, "unlockType"-unlocking type, "devName"-device name, "deviceNo"-device No.,
"channelName"-channel name, "channelNo"-channel No., "plateNo"-license plate number, "plateColor"-license plate
color, "laneNo"-lane No., "carSpeed"-vehicle speed, "positionInfo1"-camera 1, "pictureNo"-picture No., "CarNo"-
vehicle No., "speedLimit"-speed limit, "illegalCode"-violation code, "siteNo"-intersection No., "directionNo"-direction
No., "carColor"-vehicle color, "platePosition"-license plate coordinates, "carType"-vehicle type, "illegalType"-violation
type, "custom"-->
</itemOrder>
<itemCustomStr min="1" max="32">
<!--req, xs:string, element custom string, which is between 1 and 32, unit: bytes. This node is valid only when
<itemOrder> is "custom". Currently traffic cameras only support one custom name-->
</itemCustomStr>
</Item>
</ItemList>
XML_Cap_LensDistortionCorrection
LensDistortionCorrection capability message in XML format
<LensDistortionCorrection version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<enabled><!--req, xs: boolean--></enabled>
<level opt="level1,level2,level3,custom">
<!--opt, xs: string, distortion correction level: level 1, level 2, level 3, custom-->
</level>
<accurateLevel min="0" max="100">
<!--opt, xs: integer, correction strength, value range: [0,100]-->
</accurateLevel>
<zoomedInDistantViewLevel min="0" max="100">
<!--opt, xs: integer, zooming in range, value range: [0-100], this node is valid when distortion correction is enabled-->
712
Intelligent Security API (General) Developer Guide
</zoomedInDistantViewLevel>
<horizontalFOV min="0" max="100"><!--opt, xs: integer, horizontal FOV, value range: [0,100]--></horizontalFOV>
<verticalFOV min="0" max="100"><!--opt, xs: integer, vertical FOV, value range: [0,100]--></verticalFOV>
</LensDistortionCorrection>
XML_Cap_Link
Link capability message in XML format.
<Link version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<MACAddress><!--req, xs:string--></MACAddress>
<autoNegotiation><!--req, xs:boolean, "true, false"--> </autoNegotiation>
<speed><!--req, xs:integer, "10.100, 1000"--></speed>
<duplex><!--req, xs:string, "half, full"--></enalbed>
<MTU><!--req, xs:integer, "500-1500"--></MTU>
</Link>
XML_Cap_LogConfig
LogConfig capability message in XML format.
<LogConfig version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<enabled><!--required, boolean type, whether to enable log--></enabled>
<level opt="none,debug,info,error,fault,all">
<!--required, string type, log types, multiple type can be selected, and each type should be separated by comma-->
</level>
</LogConfig>
XML_Cap_MACFilter
MACFilter capability message in XML format
<MACFilter version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<enabled opt="true,false"><!--req, xs:boolean--></enabled>
<permissionType opt="deny, allow"><!-- req, xs:string,"deny, allow"--></permissionType>
<MACFilterAddressList size="">
<MACFilterAddress>
<id> <!--req, xs:string;id--></id>
<MACAddress max=""><!--req, xs:string--></MACAddress>
</MACFilterAddress>
</MACFilterAddressList>
</MACFilter>
713
Intelligent Security API (General) Developer Guide
XML_Cap_mailingList
mailingList capability message in XML format.
<mailingList version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<mailing><!--opt,xs:string--></mailing>
</mailingList>
XML_Cap_MaxElevation
MaxElevation capability message in XML format
<MaxElevation version="1.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<mElevation min="-20" max="0"><!--req, xs:integer, the lower limit of max. tilt-angle--> </mElevation>
<mVerElevation><!--req, xs:integer, the upper limit of max. tilt-angle, normally it is 90°--></mVerElevation>
</MaxElevation>
XML_Cap_MotionDetection
XML message about motion detection capability
<MotionDetection version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<enabled opt="true,false"><!--required, xs:boolean, whether to enable motion detection--></enabled>
<enableHighlight opt="true,false"><!--optional, xs:boolean, whether to enable highlight--></enableHighlight>
<samplingInterval><!--optional, xs:integer, number of frames--></samplingInterval>
<startTriggerTime><!--optional, xs:integer, unit: millisecond--></startTriggerTime>
<endTriggerTime><!--opt, xs:integer, unit: millisecond--></endTriggerTime>
<regionType opt="grid,roi,none, region"><!--required, read-only, xs:string, region type: "grid", "roi", "none",
"region"--></regionType>
<Grid><!--dependency-->
<rowGranularity><!--required, read-only, xs:integer--></rowGranularity>
<columnGranularity><!--required, read-only, xs:integer--></columnGranularity>
</Grid>
<ROI><!--dependency-->
<normalizedScreenWidth><!--required, read-only, xs:integer--></normalizedScreenWidth>
<normalizedScreenHeight><!--required, read-only, xs:integer--></normalizedScreenHeight>
</ROI>
<MotionDetectionLayout><!--required, rule region configuration of motion detection-->
<sensitivityLevel min="0" max="100" step="20"><!--required, xs:integer, sensitivity--></sensitivityLevel>
<layout>
<gridMap>
<!--dependent, xs:string, the image is divided in to N × N grids, each grid can be enabled (value: 1) or disabled
(value 0) motion detection, each four horizontal grids consist of a hexadecimal number, e.g., the corresponding
hexadecimal number of "0011" is 3-->
</gridMap>
<roiMap><!--dependent, xs:string--></roiMap>
<RegionList size="4"><!--this node is available when the regionType is set to "region"-->
<Region><!--list-->
714
Intelligent Security API (General) Developer Guide
<id><!--required, xs:string--></id>
<RegionCoordinatesList><!--opt-->
<RegionCoordinates><!--list-->
<positionX><!--required, xs:integer; X-coordinate--></positionX>
<positionY><!--required, xs:integer; Y-coordinate--></positionY>
</RegionCoordinates>
</RegionCoordinatesList>
</Region>
</RegionList>
</layout>
<targetType opt="human,vehicle"><!--optional, xs:string, target type, "human", "vehicle"--></targetType>
</MotionDetectionLayout>
<enableWithMoving opt="true,false"><!--optional, xs:boolean--></enableWithMoving>
</MotionDetection>
XML_Cap_MotionDetectionLayout
XML message about rule region parameters of motion detection
<?xml version="1.0" encoding="utf-8"?>
<MotionDetectionLayout version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<sensitivityLevel min="0" max="100" step="20"><!--required, xs:integer, sensitivity--></sensitivityLevel>
<layout>
<gridMap>
<!--dependent, xs:string, the image is divided in to N × N grids, each grid can be enabled (value: 1) or disabled
(value 0) motion detection, each four horizontal grids consist of a hexadecimal number, e.g., the corresponding
hexadecimal number of "0011" is 3-->
</gridMap>
<roiMap><!--dependent, xs:string--></roiMap>
<RegionList size="4"><!--this node is available when the regionType is set to "region"-->
<Region><!--list-->
<id><!--required, xs:string--></id>
<RegionCoordinatesList><!--opt-->
<RegionCoordinates><!--list-->
<positionX><!--required, xs:integer; X-coordinate--></positionX>
<positionY><!--required, xs:integer; Y-coordinate--></positionY>
</RegionCoordinates>
</RegionCoordinatesList>
</Region>
</RegionList>
</layout>
<targetType opt="human,vehicle"><!--optional, xs:string, target type, "human", "vehicle"--></targetType>
</MotionDetectionLayout>
XML_Cap_MountingScenario
MountingScenario capability message in XML format
715
Intelligent Security API (General) Developer Guide
XML_Cap_NetworkInterface
NetworkInterface capability message in XML format
<NetworkInterface version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<id><!--req, xs:string--></id>
<IPAddress/><!--req-->
<Wireless/><!--opt-->
<Discovery/><!--opt-->
<Link/><!--opt-->
<defaultConnection><!--opt, xs:boolean--></defaultConnection>
<macAddress min="" max=""><!--opt, xs:string--></macAddress>
<EthernetPortList size="4"><!--opt, network interface information-->
<EthernetPort><!--opt -->
<id min="1",max="4"><!--req, xs: integer--></id>
<MACAddress><!--req, xs:string--></MACAddress>
<status opt="connected, disconnect"><!--opt, xs:string--></status>
<speed><!--req, xs:integer, "10, 100, 1000, 10000"--></speed>
</EthernetPort>
</EthernetPortList>
</NetworkInterface>
XML_Cap_NetworkInterfaceList
XML message about configuration capability of multiple network interfaces
<?xml version="1.0" encoding="utf-8"?>
<NetworkInterfaceList version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<NetworkInterface><!--optional-->
<id><!--required, xs:string--></id>
<IPAddress/><!--required-->
<Wireless/><!--optional-->
<Discovery/><!--optional-->
<Link/><!--optional-->
<defaultConnection><!--optional, xs:boolean--></defaultConnection>
<macAddress min="" max=""><!--optional, xs:string--></macAddress>
<EthernetPortList size="4"><!--optional, information about network interfaces-->
<EthernetPort><!--optional-->
<id min="1" max="4"><!--required, xs:integer--></id>
716
Intelligent Security API (General) Developer Guide
XML_Cap_NTPServer
NTPServer capability message in XML format
<NTPServer version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<id min="1" max=""><!--req, xs:string, ID--></id>
<addressingFormatType opt="ipaddress,hostname"><!--req, xs:string, which field will be used to locate the NTP
server: "ipaddress, hostname"--></addressingFormatType>
<hostname min="0" max="64"><!--dep, xs:string--></hostName>
<ipAddress min="0" max="64"><!--dep, xs:string--></ipAddress>
<ipv6Address min="0" max="64"><!--dep, xs:string--></ipv6Address>
<portNo min="1" max="65535"><!--opt, xs:integer--></portNo>
<synchronizeInterval min="0" max="65535"><!--opt, xs:integer, NTP time synchronization interval, unit: minute--></
synchronizeInterval>
</NTPServer>
XML_Cap_NTPServerList
XML message about the configuration capability of all NTP servers
<NTPServerList version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<NTPServer><!--list, see details in the message XML_Cap_NTPServer--></NTPServer>
</NTPServerList>
Remarks
XML_Cap_NTPServer
XML_Cap_ParkAction
ParkAction capability message in XML format
<ParkAction version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<enabled><!--required, xs:boolean, whether to enable parking--></enabled>
<Parktime min="" max=""><!--required, xs:integer, parking time, unit: second--></Parktime>
<Action><!--parking actions-->
<ActionType opt="atuoscan,framescan,randomscan,panoramascan,patrol,pattern,preset,areaScan"><!--required,
xs:string, action type: "atuoscan,framescan,randomscan,panoramascan,patrol,pattern,preset,areaScan"--></
ActionType>
717
Intelligent Security API (General) Developer Guide
<ActionNum min="0" max="255"><!--required, xs:integer, parking No. This node will be used when <ActionType> is
"patrol", "pattern", or "preset". For other parking action types, this node should be set to 0--></ActionNum>
</Action>
</ParkAction>
XML_Cap_PreviewSwitch
PreviewSwitch message in XML format
<PreviewSwitch version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<groupNo min="0" max="15"><!--opt, xs: integer, group No.--></groupNo>
<videoOutType
opt="CVBS,HDMI,VGA,AUXOutput1,AUXOutput2,AUXOutput3,AUXOutput4,extendHDMI1,extendHDMI2,extendHDMI3
,extendHDMI4,noSameSourceVGA1,noSameSourceVGA2,noSameSourceVGA3,noSameSourceVGA4,sameSourceVGA,m
ainLCD,AUX-VGA,AUX-LCD,zeroChannel">
<!--opt, xs: string, video output types, if there are more than two outputs are homologous, you can combine these
outputs by "/" to be returned, e.g., if HDM1 and VGA1 are homologous outputs, "HDM1/VGA1" will be returned-->
</videoOutType>
<DisplayWindowList size="64">
<DisplayWindow>
<id><!--req, xs: string, window No., which equals to id × groupNo--></id>
<displayChannelNo min="0" max="64"><!--req, xs: string, 0-not display, 1 to 64-displayed channel No.--></
displayChannelNo>
</DisplayWindow>
</DisplayWindowList>
<previewFrameNo opt="1,4,6,8,9,25,32,36,auto1,auto2,auto3,auto4">
<!--req, xs: string, number of live view windows, auto1-custom window division 1, auto2-custome window division
2, auto3-custome window division 3, auto4-custome window division 4-->
</previewFrameNo>
<sound><!--req, xs: boolean, whether to turn on audio during live view, true-yes--></sound>
<switchTime opt="0,5,10,20,30,60,120,300"><!--req, xs: string, switching interval, unit: s--></switchTime>
<sameSource>
<!--dep, xs: boolean, whether the output is homologous, true-yes, this node is valid only when VideoOutType is
"noSameSourceVGA1", "noSameSourceVGA2", "noSameSourceVGA3", and "noSameSourceVGA4"-->
</sameSource>
<supportGetByPreviewNum>
<!--opt, whether supports setting number of live view windows in the URL, true-yes-->
</supportGetByPreviewNum>
<supportGetByVideoOutType>
<!--opt, xs: boolean, whether supports getting capability by output-->
</supportGetByVideoOutType>
</PreviewSwitch>
XML_Cap_RegionClip
RegionClip capability message in XML format
<RegionClip version="2.0" xmlns="http://www.std-cgi.org/ver20/XMLSchema">
<id><!--req, xs: string--></id>
718
Intelligent Security API (General) Developer Guide
XML_Cap_RuleInfo
Capability message of setting behavior analysis in XML format.
<RuleInfo version="2.0" xmlns="http://www.isapi.com/ver20/XMLSchema">
<ruleId opt="1,2,3,4,5,6,7,8"><!—required, xs:string-></ruleId>
<ruleName min="" max=""> <!—required, xs:string-> </ruleName>
<combinedRuleId opt="15,16"><!—required, xs:string-></combinedRuleId>
<enabled opt="true,false"><!—required, xs:boolean-></enabled>
<ruleType opt="region,line"><!—required, xs:string->/ruleType>
<LineDetectionParam>
<detectionTarget opt="all,human,vehicle, human_vehicle "/>
<!—detection target, node with underline indicates that it supports multiple selections, e.g., human_vehicle
indicates human and vehicle-->
<directionSensitivity opt="left-right,right-left,any" def="any"><!—required, xs:string-></directionSensitivity>
<isSupportHumanMisinfoFilter>
<!--optional, xs:boolean, whether supports false alarm filter of human: true-supports, false or no return-not
support-->
</isSupportHumanMisinfoFilter>
<isSupportVehicleMisinfoFilter>
<!--optional, xs:boolean, whether supports false alarm filter of vehicle: true-supports, false or no return-not
support-->
</isSupportVehicleMisinfoFilter>
<sensitivity min="1" max="100" default="50"><!--required, xs:integer, sensitivity, from 1 to 100--></sensitivity>
</LineDetectionParam>
<FieldDetectionParam>
<durationTime min="1" max="100" def="5"><!--required,xs:integer--> </durationTime>
<sensitivityLevel min="1" max="100"><!—required, xs:integer, sensitivity from 0 to 100--> </sensitivityLevel>
<detectionTarget opt="all,human,vehicle, human_vehicle "/>
<!—detection target, node with underline indicates that it supports multiple selections, e.g., human_vehicle
indicates human and vehicle-->
719
Intelligent Security API (General) Developer Guide
<isSupportHumanMisinfoFilter>
<!--optional, xs:boolean, whether supports false alarm filter of human: true-supports, false or no return-not
support-->
</isSupportHumanMisinfoFilter>
<isSupportVehicleMisinfoFilter>
<!--optional, xs:boolean, whether supports false alarm filter of vehicle: true-supports, false or no return-not
support-->
</isSupportVehicleMisinfoFilter>
</FieldDetectionParam>
<RegionEntranceParam>
<detectionTarget opt="all,human,vehicle, human_vehicle "/>
<!—detection target, node with underline indicates that it supports multiple selections, e.g., human_vehicle
indicates human and vehicle-->
<isSupportHumanMisinfoFilter>
<!--optional, xs:boolean, whether supports false alarm filter of human: true-supports, false or no return-not
support-->
</isSupportHumanMisinfoFilter>
<isSupportVehicleMisinfoFilter>
<!--optional, xs:boolean, whether supports false alarm filter of vehicle: true-supports, false or no return-not
support-->
</isSupportVehicleMisinfoFilter>
</RegionEntranceParam>
<RegionExitingParam>
<detectionTarget opt="all,human,vehicle, human_vehicle "/><!—detection target, node with underline indicates
that it supports multiple selections, e.g., human_vehicle indicates human and vehicle-->
<isSupportHumanMisinfoFilter>
<!--optional, xs:boolean, whether supports false alarm filter of human, true-supports, false or no return-not
support-->
</isSupportHumanMisinfoFilter>
<isSupportVehicleMisinfoFilter>
<!--optional, xs:boolean, whether supports false alarm filter of vehicle, true-supports, false or no return-not
support-->
</isSupportVehicleMisinfoFilter>
</RegionExitingParam>
<PeopleNumChangeParam>
<peopleNumThreshold min="" max="" default=""><!--optional, xs:integer--></peopleNumThreshold>
<detectMode opt="greaterthan,lessThan,equal,notEqual"><!--optional, xs:string--></detectMode>
<noneStateEffectiveEnabled><!--optional,xs:boolean--></noneStateEffectiveEnabled>
<durationTime min="" max="" default=""><!--optional, xs:integer--></durationTime>
</PeopleNumChangeParam>
<SpacingChangeParam>
<spacingThreshold min="" max="" default=""><!--optional, xs: integer--></spacingThreshold>
<detectMode><!--optional,xs:string,"greaterthan,lessThan"--></detectMode>
<durationTime min="" max="" default=""><!--optional, xs:integer--></durationTime>
</SpacingChangeParam>
<ViolentMotionParam>
<sensitivity min="" max="" default=""> <!--optional, xs:integer--> </sensitivity>
</ViolentMotionParam>
<LeavePositionParam>
<leaveDelay min="" max="" default=""><!--optional, xs:integer--></leaveDelay>
<onPosition min="" max="" default=""><!--optional, xs:integer--></onPosition>
</LeavePositionParam>
720
Intelligent Security API (General) Developer Guide
<FailDownParam>
<durationTime min="" max="" default=""><!--optional, xs:integer--></durationTime>
<sensitivity min="" max="" def=""><!--optional, xs:integer, sensitivity--></sensitivity>
<heightThreshold min="" max="" default=""><!--optional, xs:integer--></heightThreshold>
<stackTarget opt="true,false"><!--optional, xs:boolean, whether to overlay alarm target frame--></stackTarget>
<stackRule opt="true,false"><!--optional, xs:boolean, whether to overlay alarm rule frame--></stackRule>
</FailDownParam>
<RunningParam><!--running detection-->
<speed min="" max="" default=""><!--optional, xs:integer--></speed>
<durationTime min="" max="" def=""><!--optional, xs:integer, duration time--></durationTime>
<sensitivity min="" max="" def=""><!--optional, xs:integer, sensitivity--></sensitivity>
<stackTarget opt="true,false"><!--optional, xs:boolean, whether to overlay alarm target frame--></stackTarget>
<stackRule opt="true,false"><!--optional, xs:boolean, whether to overlay alarm rule frame--></stackRule>
<mode opt="single,many"><!--optional, xs:string, running mode, "single"-single person running, "many"-multiple
persons running--></mode>
</RunningParam>
<RetentionParam><!--dependent-->
<durationTime min="" max="" default="">
<!--required, xs:integer, duration time, from 60 seconds to 3600 seconds, default value: 1800 seconds-->
</RetentionParam>
<ParkingParam>
<durationTime min="5" max="100"><!-- required,xs:integer--> </durationTime>
</ParkingParam>
<eventType
opt="none,lineDetection,fieldDetection,regionEntrance,regionExiting,parking,peopleNumChange,spacingChange,viole
ntMotion,leavePosition,failDown,running,retentionParam,playCellphone">
<!—required, xs:string-->
</eventType>
<SizeFilter>
<enabled opt="true,false"><!—required, xs:boolean--></enabled>
<mode opt="pixels,actualSize"><!—required, xs:string, filter mode: "pixels"-filter according to pixel, "actualSize"-
filter according to actual size--></mode>
<ObjectSizeList size="4">
<ObjectSize><!--only return the default value of supported detection type-->
<detectionTarget><!--optional,xs:string, detection target, "all"-all, "human"-human, "vehicle"-vehicle,
"human_vehicle"-human and vehicle--></detectionTarget>
<MaxObjectSize><!--maximum size:float-->
<positionX><!--required, xs:integer;coordinate--></positionX>
<positionY><!--required, xs:integer;coordinate--></positionY>
<width><!--required, xs:integer, default width value: when detectionTarget values "all", it is 500, "human"-200,
"vehicle"-500, "human_vehicle"-500, unit: cm--></width>
<height><!--required, xs:integer, default height value: when detectionTarget values "all", it is 100, "human"-300,
"vehicle"-100, "human_vehicle"-100, unit: cm --></height>
</MaxObjectSize>
<MinObjectSize><!--minimum size:float-->
<positionX><!--required, xs:integer;coordinate--></positionX>
<positionY><!--required, xs:integer;coordinate--></positionY>
<width><!--required, xs:integer, default width value: when detectionTarget values "all", it is 60, "human"-60,
"vehicle"-180, "human_vehicle"-60, unit: cm--></width>
<height><!--required, xs:integer, default height value: when detectionTarget values "all", it is 10, "human"-10,
"vehicle"-140, "human_vehicle"-10, unit: cm--></height>
</MinObjectSize>
721
Intelligent Security API (General) Developer Guide
</ObjectSize>
</ObjectSizeList>
</SizeFilter>
<RuleRegion>
<RegionCoordinatesList size="4">
<RegionCoordinates>
<positionX min="" max=""><!--required, xs:integer--></positionX>
<positionY min="" max=""><!--required, xs:integer--></positionY>
</RegionCoordinates>
</RegionCoordinatesList>
</RuleRegion>
<backgroundSuppression opt="open,close,selfAdapt"><!--optional, xs:string, background suppression--></
backgroundSuppression>
<PlayCellphoneParam><!--optional, playing mobile phone-->
<durationTime min="1" max="3600" def=""><!--optional, xs:integer, duration time--></durationTime>
<stackTarget opt="true,false"><!--optional, xs:boolean, whether to overlay alarm target frame--></stackTarget>
<stackRule opt="true,false"><!--optional, xs:boolean, whether to overlay alarm rule frame--></stackRule>
</PlayCellphoneParam>
<streetBehavior opt="running,group,violentMotion,failDown">
<!--optional, xs:string, street behavior capability: "running"-fast moving, "group"-people gathering, "violentMotion"-
violent motion, "failDown"-failing down-->
</streetBehavior>
<workBehavior opt="playCellphone,peopleNumChange,leavePosition,retention">
<!--optional, xs:string, working behavior capability: "playCellphone"-playing mobile phone, "peopleNumChange"-
number of persons changed, "leavePosition"-absent, "retention"-loitering-->
</workBehavior>
<isSupportMultiRules><!--optional, xs:boolean, whether it supports multiple rules for one event; by default, only one
rule can be configured for one event--></isSupportMultiRules>
<isSupportSchedulesEventType><!--optional, xs:boolean, whether to configure arming schedule by event type; by
default, it is configured by rule ID--></isSupportSchedulesEventType>
<isSupportTriggerEventType><!--optional, xs:boolean, whether to configure alarm linkage by event type; by default, it
is configured by rule ID--></isSupportTriggerEventType>
<analysisMode opt="realTimeMode,autoSwitchMode"><!--optional, xs:string, analysis mode, the default mode is
"realTimeMode"--></analysisMode>
</RuleInfo>
Remarks
When the mode values "actualSize", the input value of positionX and positionY is 0.
XML_Cap_RWLock
XML message about configuration capability of read & write lock of storage health detection
<?xml version="1.0" encoding="UTF-8"?>
<RWLock xmlns="http://www.isapi.org/ver20/XMLSchema" version="2.0">
<!--optional, read-only, object-->
<enabled>
<!--required, read-only, boolean, enable or not-->true
</enabled>
<passwd min="1" max="10">
722
Intelligent Security API (General) Developer Guide
XML_Cap_SalveCamera
SalveCamera capability message in XML format
<SlaveCamera version="2.0" xmlns="http://www.std-cgi.org/ver20/XMLSchema">
<SlaveCameraInfoList>
<SlaveCameraInfo>
<id min="1" max="4">
<!--req, xs:integer-->
</id>
<serverAddress>
<addressingFormatType opt="ipaddress,hostname">
<!--req, xs:string, "ipaddress,hostname"-->
</addressingFormatType>
<hostName max="">
<!--dep, xs:string-->
</hostName>
<ipAddress>
<!--dep, xs:string-->
</ipAddress>
<ipv6Address>
<!--dep, xs:string-->
</ipv6Address>
</serverAddress>
<userName max="">
<!--req, xs:string-->
</userName>
<passWord max="">
<!--req, xs:string-->
</passWord>
<portNo min="" max="">
<!--req, xs:integer-->
</portNo>
<loginStatus opt="login,logout">
<!--req,xs:string-->
</loginStatus>
</SlaveCameraInfo>
</SlaveCameraInfoList>
</SlaveCamera>
723
Intelligent Security API (General) Developer Guide
XML_Cap_SerialCommand
SerialCommand capability message in XML format
<SerialCommand version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<chainNo min="1" max="16">
<!--opt, xs:integer-->
</chainNo>
<command>
<!--req, xs:hexBinary-->
</command>
</SerialCommand>
XML_Cap_SerialPort
SerialPort capability message in XML format
<SerialPort version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<id min="0" max="255">
<!--req, xs:string, serial port ID-->
</id>
<enabled>
<!--req, xs:boolean, whether to enable the serial port: "true, false"-->
</enabled>
<serialNumber opt="1,2,3,4,5">
<!--opt, xs:integer, serial port No., which is between 1 and 5-->
</serialNumber>
<serialPortType opt="RS485,RS422,RS232">
<!--req, xs:string, serial port type: "RS485", "RS422", "RS232"-->
</serialPortType>
<duplexMode opt="half,full">
<!--req, xs:string, duplex mode of the serial port: "half", "full"-->
</duplexMode>
<direction opt="monodirectional,bdirectional">
<!--req, xs:string-->
</direction>
<baudRate range="600,1200,2400,4800,9600,19200,38400,57600,76800,115200">
<!--req, xs:integer-->
</baudRate>
<dataBits min="5" max="8">
<!--req, xs:integer-->
</dataBits>
<parityType opt="none,even,odd,mark,space">
<!--req, xs:string-->
</parityType>
<stopBits range="1,2">
<!--req, xs:string, stop bit: "1,1.5,2"-->
</stopBits>
<workMode opt="console,transparent,narrowband,audiomixer,stairsControl,cardReader,disabled,custom">
724
Intelligent Security API (General) Developer Guide
XML_Cap_SIPInfo
SIPInfo capability message in XML format
<SIPInfo version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<videoID opt="1,2,3">
<!--req, xs:string-->
</videoID>
<AlarmInList>
<AlarmIn>
<id min="0" max="8">
<!--req, xs:integer-->
</id>
<alarmInID min="0" max="64">
<!--req, xs:string-->
</alarmInID>
</AlarmIn>
</AlarmInList>
</SIPInfo>
XML_Cap_SIPServer
SIPServer capability message in XML format
725
Intelligent Security API (General) Developer Guide
726
Intelligent Security API (General) Developer Guide
XML_Cap_SmartSearchDescription
SmartSearchDescription capability message in XML format
<SmartSearchDescription version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<searchID>
<!--req, xs:string, search ID, which is used to confirm the upper-level platform or system. If the platform or system
are same during two times of search, the search history will be recorded in the memory for next fast search-->
</searchID>
<searchResultPosition><!--req, xs: integer--></searchResultPosition>
<maxResults><!--req, xs: integer--></maxResults>
<trackID><!--req, xs: integer, channel ID, e.g., 101-main stream if first channel--></trackID>
<startTime><!--req, xs: datetime, start time of validity period, e.g., 2013-06-10T 12:00:00Z--></startTime>
727
Intelligent Security API (General) Developer Guide
<endTime><!--req, xs: datetime, end time of validity period, e.g., 2013-06-10T 13:00:00Z--></endTime>
<type opt="motionDetection, traversePlaneDetection,FieldDetection, faceDetection">
<!--req, xs: string; VCA event type-->
</type>
<MotionDetection><!--dep, it is valid when type is "motionDetection"-->
<Grid>
<rowGranularity></rowGranularity>
<columnGranularity></columnGranularity>
</Grid>
<MotionDetectionLayout>
<layout>
<gridMap></gridMap>
</layout>
</MotionDetectionLayout>
<sensitivity min="1", max="100"><!--opt, xs: integer--></sensitivity>
</MotionDetection>
<TraversePlane><!--dep, it is valid when type is "traversePlaneDetection"-->
<TraversePlaneParam>
<LineList>
<Line>
<StartPoint>
<x><!--req, xs: float--></x>
<y><!--req, xs: float--></y>
</StartPoint>
<EndPoint>
<x><!--req, xs: float--></x>
<y><!--req, xs: float--></y>
</EndPoint>
</Line>
</LineList>
<crossDirection opt="bothDirection, leftToRight, rightToLeft><!--opt, xs: string, crossing direction--
><crossDirection>
<sensitivity min="1", max="100"><!-- opt, xs: integer--></sensitivity>
<planeHeight><!--opt, xs: integer--></planeHeight>
<detectionTarget opt="all, human, vehicle><!--req, xs: string--><detectionTarget>
</TraversePlaneParam>
<dwPreTime><!--opt, xs: integer, pre-recording time--></dwPreTime>
<dwDelayTime><!--opt, xs: integer,post-recording time--></dwDelayTime>
<PTZPos>
<P><!--opt, xs: integer--></P>
<T><!--opt, xs: integer--></T>
<Z><!--opt, xs: integer--></Z>
</PTZPos>
<advancedType opt="humanFeature, objectFeature"><!--opt, xs: string--></advancedType>
<advance><!--dep, it is valid when type is "motionDetection"-->
<HumanFeature>
<age min="0" max="100"><!--opt, xs: integer--></age>
<sex opt="male,female"><!--opt, xs: string--></sex>
<eyeGlass><!--opt, xs: boolean--></eyeGlass>
</HumanFeature><!--dep, it is valid when type is "humanFeature"-->
<ObjectFeature>
<colorRatel><!--opt, xs: integer--></colorRatel>
728
Intelligent Security API (General) Developer Guide
729
Intelligent Security API (General) Developer Guide
<x/>
<y/>
</point>
</pointList>
</region>
</param>
<duration min="1", max="100"><!--opt, xs: integer--></duration>
<sensitivity min="1", max="100"><!--opt, xs: integer--></sensitivity>
<rate min="1", max="100"><!--opt, xs: integer--></rate>
<detectionTarget opt="all, human, vehicle><!--req, xs: string--><detectionTarget>
<dwPreTime><!--opt, xs: integer, pre-recording time--></dwPreTime>
<dwDelayTime><!--opt, xs: integer, post-recording time--></dwDelayTime>
<PTZPos>
<P><!--opt, xs: integer--></P>
<T><!--opt, xs: integer--></T>
<Z><!--opt, xs: integer--></Z>
</PTZPos>
<advancedType opt="humanFeature, objectFeature"><!--opt, xs: string--></advancedType>
<advance><!--dep, it is valid when type is "motionDetection"-->
<HumanFeature>
<colorRatel><!--opt, xs: integer--></colorRatel>
<age min="0" max="100"><!--opt, xs: integer--></age>
<sex opt="male,female"><!--opt, xs: string--></sex>
<eyeGlass><!--opt, xs: boolean--></eyeGlass>
</HumanFeature> <!--dep, it is valid when type is "humanFeature"-->
<ObjectFeature>
<colorRatel><!--opt, xs: integer--></colorRatel>
<R></R>
<G></G>
<B></B>
</ObjectFeature><!--dep, it is valid when type is "objectFeature"-->
</advance>
</FaceDetection>
</SmartSearchDescription>
XML_Cap_SnapshotChannel
XML message about configuration capability of capturing pictures by schedule
<SnapshotChannel version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<id opt="1"><!--required, xs:string, ID--></id>
<videoInputChannelID opt="1"><!--required, xs:string, video input channel ID--></videoInputChannelID>
<timingCapture>
<enabled opt="true,false"><!--required, xs:boolean--></enabled>
<supportSchedule opt="true,false"><!--required, xs:boolean--></supportSchedule>
<compress>
<pictureCodecType opt="JPEG"><!--required, xs:string, picture format: "JPEG,BMP,GIF,PNG"--></pictureCodecType>
<pictureWidth opt="1280"><!--required, xs:integer--></pictureWidth>
<pictureHeight opt="720"><!--required, xs:integer--></pictureHeight>
<quality opt="40,60,80"><!--optional, xs:integer, quality in percentage, the value is between 0 and 100--></quality>
<captureInterval min="1000" max="604800000"><!--optional, xs:integer, capture interval, unit: milliseconds--></
730
Intelligent Security API (General) Developer Guide
captureInterval>
<captureNumber min="1" max="120" def="4"><!--optional, xs:integer--></captureNumber>
</compress>
</timingCapture>
<eventCapture><!--optional-->
<enabled opt="true,false"><!--required, xs:boolean--></enabled>
<supportSchedule opt="false"><!--optional, ro,xs:boolean--></supportSchedule>
<compress>
<pictureCodecType opt="JPEG"><!--required, xs:string, picture format: "JPEG,BMP,GIF,PNG"--></pictureCodecType>
<pictureWidth opt="1280"><!--required, xs:integer--></pictureWidth>
<pictureHeight opt="720"><!--required, xs:integer--></pictureHeight>
<quality opt="40,60,80"><!--optional, xs:integer, quality in percentage, the value is between 0 and 100--></quality>
<captureInterval min="1000" max="604800000"><!--optional, xs:integer, capture interval, unit: milliseconds--></
captureInterval>
<captureNumber min="1" max="120" def="4"><!--optional, xs:integer--></captureNumber>
</compress>
</eventCapture>
<PromptDescription>
<prompt1><!--optional, xs:string, this node will be returned only when it is supported. If this node is not supported,
the upper node will still exist--></prompt1>
</PromptDescription>
<StreamInformationList>
<StreamInformation><!--list-->
<streamType opt="mainstream,substream,stream3,stream4,stream5"><!--optional, xs:string--></streamType>
<timingCapture>
<enabled opt="true,false"><!--required, xs:boolean--></enabled>
<supportSchedule opt="true,false"><!--required, xs:boolean--></supportSchedule>
<compress>
<pictureCodecType opt="JPEG"><!--required, xs:string, picture format: "JPEG,BMP,GIF,PNG"--></
pictureCodecType>
<pictureWidth opt="1280"><!--required, xs:integer--></pictureWidth>
<pictureHeight opt="720"><!--required, xs:integer--></pictureHeight>
<quality opt="40,60,80"><!--optional, xs:integer, quality in percentage, the value is between 0 and 100--></
quality>
<captureInterval min="1000" max="604800000"><!--optional, xs:integer, captuer inteval, unit: milliseconds--></
captureInterval>
<captureNumber min="1" max="120" def="4"><!--optional, xs:integer--></captureNumber>
</compress>
</timingCapture>
<eventCapture><!--optional-->
<enabled opt="true,false"><!--required, xs:boolean--></enabled>
<supportSchedule opt="false"><!--optional, read-only, xs:boolean--></supportSchedule>
<compress>
<pictureCodecType opt="JPEG"><!--required, xs:string, picture format: "JPEG,BMP,GIF,PNG"--></
pictureCodecType>
<pictureWidth opt="1280"><!--required, xs:integer--></pictureWidth>
<pictureHeight opt="720"><!--required, xs:integer--></pictureHeight>
<quality opt="40,60,80"><!--optional, xs:integer, quality in percentage, the value is between 0 and 100--></
quality>
<captureInterval min="1000" max="604800000"><!--optional, xs:integer, captuer inteval, unit: milliseconds--></
captureInterval>
<captureNumber min="1" max="120" def="4"><!--optional, xs:integer--></captureNumber>
731
Intelligent Security API (General) Developer Guide
</compress>
</eventCapture>
<PromptDescription>
<prompt1><!--optional, xs:string, this node will be returned only when it is supported. If this node is not
supported, the upper node will still exist--></prompt1>
</PromptDescription>
</StreamInformation>
</StreamInformationList>
</SnapshotChannel>
XML_Cap_SoftwareService
SoftwareService capability message in XML format
<SoftwareService version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<ThirdStream><!--opt, third stream configuration-->
<enabled opt="true,false"><!--req, xs: boolean, whether to enable third stream configuration--></enabled>
<thirdStreamPrompt opt="prompt5">
<!--req, xs: string, set audible prompt for third stream, prompt5-"When third stream is enabled, functions such as
intrusion detection, line crossing detection, region entrance detection, region exiting detection, face detection, HDMI,
H.264+ and H265+, are not supported. New settings will take effect after a reboot."-->
</thirdStreamPrompt>
</ThirdStream>
<PanoramaDisplay><!--opt, display the image range on panorama view-->
<enabled opt="true,false" default="false">
<!--req, xs: boolean, whether to enable image range display on panorama view-->
</enabled>
</PanoramaDisplay>
<MotionDetect>
<enabled opt="true,false"><!--whether to enable motion detetion--></enabled>
<MotionDetectPrompt opt="prompt1">
<!--req, xs: string, motion detection audible prompt, prompt1-"When motion detection is enabled, functions such
as intrusion detection, line crossing detection, region entrance detection, and region exiting detection, are not
supported. New settings will take effect after a reboot."-->
</MotionDetectPrompt>
</MotionDetect>
</SoftwareService>
XML_Cap_SSH
SSH capability message in XML format
<?xml version="1.0" encoding="utf-8"?>
<SSH version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<enabled opt="true,false"><!--req, xs:boolean--></enabled>
<isSupportSSHTest><!--opt, xs:boolean, whether supports SSH passthrough command test--></isSupportSSHTest>
</SSH>
732
Intelligent Security API (General) Developer Guide
XML_Cap_storage
XML message about configuration capability of storage working mode
<?xml version="1.0" encoding="utf-8"?>
<storage version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<hddList size=""><!--optional, the contents are same to the message XML_hddList (related URI: /ISAPI/ContentMgmt/
Storage/hdd)--></hddList>
<nasList size=""><!--optional, the contents are same to the message XML_nasList (related URI: /ISAPI/ContentMgmt/
Storage/nas)--></nasList>
<workMode opt="group,quota,extract"><!--optional, xs:string, working mode: "group", "quota", "extract--></
workMode>
<supportDataReconstruction opt="all,record">
<!--optional, xs:string, whether the device supports disk data reconstruction, and the supported data type for
reconstruction: "all", "record"-->
</supportDataReconstruction>
<isSupportSSDManagement>
<!--optional, xs:string, whether the device supports SSD management (related URI: /ISAPI/ContentMgmt/
storage/ssd/<ID>/capabilities?format=json)-->
</isSupportSSDManagement>
<ssdList size=""><!--optional, the contents are same to the message XML_ssdList (related URI: /ISAPI/ContentMgmt/
Storage/ssd)--></ssdList>
</storage>
XML_Cap_storageExtension
XML message about storage strategy capability.
<storageExtension xmlns="http://www.isapi.org/ver20/XMLSchema" version="2.0" >
<LoopEnable,opt="true,false">
<!--optional, xs:boolean, whether to enable overwriting-->
</LoopEnable>
<enableDormant>
<!-optional, xs:boolean-->
</enableDormant>
<packDuration max="300" min="1">
<!-optional, xs:integer, unit: minute-->
</packDuration>
<logStorageMode opt="system,custom">
<!-optional, xs:string, log storage mode: "system"-system default mode, "custom"-custom mode-->
</logStorageMode>
<logStorageId>
<!--dependent, xs:integer, disk ID (saving logs in a disk) or array number (saving logs in disk arrays), which are valid
only when logStorageMode is "custom"; -->
</logStorageId>
<logStorageCycle min="0" max="90" def="90">
<!--dependent, xs:integer, log storage period,which is valid only when logStorageMode is "custom"-->
</logStorageCycle>
</storageExtension>
733
Intelligent Security API (General) Developer Guide
XML_Cap_StreamingChannel
StreamingChannel capability message in XML format
<StreamingChannel version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<id opt="111,222,333,444"><!--req, xs:string, ID--></id>
<channelName min="0" max="64"><!--req, xs:string, channel name--></channelName>
<enabled opt="true,false" def="true"><!--req, xs:boolean--></enabled>
<Transport><!--req-->
<rtspPortNo min="0" max="65535" def="554">554</rtspPortNo>
<maxPacketSize min="0" max="1500"><!--optional, xs:integer--></maxPacketSize>
<audioPacketLength min="0" max="5000"/>
<audioInboundPacketLength min="0" max="5000"/><!--optional, xs:integer-->
<audioInboundPortNo min="0" max="65535"/><!--optional, xs:integer-->
<videoSourcePortNo min="0" max="65535"/><!--optional, xs:integer-->
<audioSourcePortNo min="0" max="65535"/><!--optional, xs:integer-->
<ControlProtocolList><!--req-->
<ControlProtocol><!--list-->
<streamingTransport opt="RTSP/RTP,HTTP"><!--req, xs:string, "HTTP,RTSP,SHTTP,SRTP"--></streamingTransport>
</ControlProtocol>
</ControlProtocolList>
<Unicast><!--opt-->
<enabled opt="true,false" def="false"/><!--req, xs:boolean-->
<rtpTransportType opt="RTP/UDP,RTP/TCP"/><!--optional, xs:string, "RTP/UDP,RTP/TCP"-->
</Unicast>
<Multicast><!--opt-->
<enabled opt="true,false" def="false"/><!--req, xs:boolean-->
<userTriggerThreshold/><!--optional, xs:integer-->
<videoDestPortNo min="1" max="65535" def="8860"/><!--optional, xs:integer-->
<audioDestPortNo min="1" max="65535" def="8860/><!--optional, xs:integer-->
<destIPAddress min="8" max="16"/><!--dep, xs:string-->
<destIPv6Address min="15" max="39"/><!--dep, xs:string-->
<ttl min="0" max="127" def="1"/><!--optional, xs:integer-->
<activeMulticastEnabled>
<!--optional, xs: boolean, "true, false", whether to enable active multicast, which is mutually exclusive with
passive multicast-->
</activeMulticastEnabled>
<packagingFormat opt="RTP,TS,ES,PS"><!--optional, xs: string, encapsulation format--></packagingFormat>
<FecInfo><!--opt-->
<fecRatio min="0" max="100">
<!--req, read-only, xs: integer, extra bandwidth occupation ratio of forward error correction (FEC) data, the value
is between 0 and 100, the default value is 0-->
</fecRatio>
<fecDestPortNo>
<!--optional, xs: integer, port No. of FEC multicast, the default port No. is specified by device-->
</fecDestPortNo>
</FecInfo>
</Multicast>
<Security><!--opt-->
<enabled opt="true,false" def="false"/><!--req, xs:boolean-->
<certificateType opt="digest,digest/baisc" def="digest"><!--req, xs:string--></certificateType>
734
Intelligent Security API (General) Developer Guide
735
Intelligent Security API (General) Developer Guide
XML_Cap_SupplementLight
SupplementLight capability message in XML format
<SupplementLight><!--opt-->
<mode opt="schedule,off,on,auto"><!--opt, xs: string, adjustment mode of supplement light: "schedule,off,on,auto"--
></mode>
<Schedule>
<TimeRange><!--req-->
<beginTime><!--req, xs: time, ISO8601 time--></beginTime>
<endTime><!-- req, xs: time, ISO8601 time--></endTime>
</TimeRange>
</Schedule>
<brightnessLimit min="0" max="100">
<!--dep, xs: integer, brightness of supplement light, which is between 0 and 100; the brightness can be adjust when
<mode> is set to "on"-->
</brightnessLimit>
<supplementLightMode opt="mixed,whiteLight,close">
<!--opt, xs: string, illumination mode: "mixed"-hybrid, "whitelight"-white light, "close"-disabled-->
</supplementLightMode>
<irLightBrightness min="0" max="100">
<!--dep, xs: integer, brightness of IR supplement light, which is between 0 and 100; this node is valid only when
<supplementLightMode> is set to "mixed" and <mixedLightBrightnessRegulatMode> is set to "manual"-->
</irLightBrightness>
<mixedLightBrightnessRegulatMode opt="manual,auto">
<!--dep, xs: string, brightness adjustment mode of hybrid supplement light; this node is valid only when
<supplementLightMode> is set to "mixed"-->
</mixedLightBrightnessRegulatMode>
<mixedModeSupportType opt="irLight,whiteLight">
<!--dep, xs: string, light type of hybrid illumination mode, "irLight"-IR light, "whiteLight"-white light-->
</mixedModeSupportType>
736
Intelligent Security API (General) Developer Guide
XML_Cap_SyncSignalOutputList
SyncSignalOutputList capability message in XML format
<SyncSignalOutputList version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<IOOutNum min="3" max="8">
<!--req, xs:string, number of IO outputs-->
</IOOutNum>
<SyncSignalOutput>
<id min="1" max="8">
<!--req, xs:integer, ID, which is between 1 and 8-->
</id>
<IOWorkMode opt="flashLight,polarizer,continuousLight,flashLightSwitch">
<!--req, xs:string, IO output mode: "flashLight"-strobe light control mode, "polarizer"-polarizer control mode,
"continuousLight"-solid light control mode, "flashLightSwitch"-strobe light switching mode (used to switch between
the strobe supplement light mode and IR mode). When this node is set to "polarizer", only <outputStatus>,
<detectBrightnessEnable>, <brightnessThreshold>, <flashEnabled>, <startHour>, <startMinute>, <endHour>, and
<endMinute> are valid, and the <outputStatus> can only be set to "high" or "low". When this node is set to
"continuousLight", only <detectBrightnessEnable>, <brightnessThreshold>, <flashEnabled>, <startHour>,
<startMinute>, <endHour>, and <endMinute> are valid-->
</IOWorkMode>
<defaultStatus opt="hige,low">
<!--req, xs:string, effective status-->
</defaultStatus>
<outputStatus opt="high,low,pulse">
737
Intelligent Security API (General) Developer Guide
738
Intelligent Security API (General) Developer Guide
XML_Cap_Telnetd
Telnetd capability message in XML format
<Telnetd version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<enabled>
<!--req, xs:boolean, whether to enable telnet: "true, false"-->
</enabled>
<radarMsgEnabled>
<!--req, xs:boolean, whether to enable uploading radar debugging information: "true, false"-->
</radarMsgEnabled>
<illeagalLoginLock>
<!--req, xs:boolean, "true, false"-->
</illeagalLoginLock>
</Telnetd>
XML_Cap_tempRange
tempRange capability message in XML format
<?xml version="1.0" encoding="utf-8"?>
<TempRange version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<mode opt="automatic,manual">
<!--req, xs:string, temperature range mode: "automatic"-automatic mode, "manual"-manual mode-->
</mode>
<temperatureUpperLimit min="-20" max="550" def="150">
<!--dep, xs:float, maximum temperature, corrects to one decimal, the minimum value is "-20", the maximum value
739
Intelligent Security API (General) Developer Guide
is "550", unit: Celsius degree; its value should be larger than temperatureLowerLimit; it is valid when the value of
mode is "manual"-->
</temperatureUpperLimit>
<temperatureLowerLimit min="-20" max="550" def="0">
<!--dep, xs:float, minimum temperature, corrects to one decimal, the minimum value is "-20", the maximum value is
"550", unit: Celsius degree; its value should be smaller than temperatureUpperLimit; it is valid when the value of
mode is "manual"-->
</temperatureLowerLimit>
</TempRange>
XML_Cap_Time
Time capability message in XML format
<Time version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<timeMode opt="NTP,manual,satellite,timecorrect,platform"><!--required, xs:string--></timeMode>
<localTime min="0" max="256">
<!--dependent, xs:datetime, this node is required when <timemode> is "manual" or "local"-->
</localTime>
<timeZone min="0" max="256">
<!--dependent, xs:string, POSIX time zone string, this node is required when <timemode> is "manual", "local" or
"NTP"-->
</timeZone>
<satelliteInterval min="" max="">
<!--dependent, xs:integer, minutes, time synchronization interval of locating by satellite, this node is valid only when
<timemode> is "satellite"-->
</satelliteInterval>
<timeType opt="local, UTC">
<!--optional, xs: string, time type, it can be local, or UTC, or local and UTC. If this node is not returned, it indicates
that device does not support getting or setting time type-->
</timeType>
<platformType opt="EZVIZ">
<!--dependent, xs: string, platform type: "EZVIZ"-Guarding Vision; it is valid only when the value of timeMode is
"platform"-->
</platformType>
</Time>
XML_Cap_Track
XML message about recording schedule configuration capability
<Track version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<id><!--xs:integer, the value of <id> and <Channel> is the same. For example, 201 refers to the main stream of
channel 1, 202 refers to the sub-stream of channel 2, and so on--></id>
<Channel><!--req, xs:integer--></Channel>
<Enable><!--req, xs:boolean--></Enable>
<Description><!--req, xs:string, e.g., trackType=standard,sourceTag=AXIS210a,contentType=video,codecType=MPEG4-
SP,resolution=640x480,frameRate=20 fps,bitrate=6000 kbps--></Description>
<TrackGUID><!--req, xs:string, GUID generated by the client, e.g., A01AAAAA-BBBB-CCCC-DDDD-033595353625--></
740
Intelligent Security API (General) Developer Guide
TrackGUID>
<Size><!--opt, xs:integer--></Size>
<Duration min="0" max="750"><!--opt, xs:string, video expiry date, e.g., P10DT15H indicates that the video will
expire after 10 days and 15 hours--></Duration>
<DefaultRecordingMode
opt="CMR,MOTION,ALARM,EDR,ALARMANDMOTION,AllEvent,POS,PECCANCY,SMART,temperatureIntervalMeasureme
nt">
<!--req, xs:string, default record type: temperatureIntervalMeasurement (interval temperature measurement), CMR
(continuously record according to schedule), MOTION (record triggered by motion detection), ALARM (record
triggered by alarm), EDR (record triggered by alarm/motion detection), ALARMANDMOTION (record triggered by
alarm and motion detection), Command (record by command), SMART (smart record), AllEvent (all events)--></
DefaultRecordingMode>
<LoopEnable><!--opt, xs:boolean, whether to support recurrently overwriting--></LoopEnable>
<SrcDescriptor><!--video source description-->
<SrcGUID><!--req, xs:string, GUID generated by the device, e.g., E800A543-9D53-4520-8BB8-9509062C692D--></
SrcGUID>
<SrcChannel><!--req, xs:integer, source channel--></SrcChannel>
<StreamHint><!--req, xs:string, e.g., "video, mp4, 640x480, 20 fps, 6000 kbps"--></StreamHint>
<SrcDriver><!--req, xs:string, stream executable driver name, e.g., RTP/RTSP--></SrcDriver>
<SrcType><!--opt, xs:string, source type, e.g., "mp4", "video"--></SrcType>
<SrcUrl opt="rtsp://localhost/PSIA/Streaming/channels/101,rtsp://localhost/PSIA/Streaming/channels/102,rtsp://
localhost/PSIA/Streaming/channels/103,,rtsp://localhost/PSIA/Streaming/channels/107"><!--req, xs:string, e.g.,
rtsp://10.3.2.26/mpeg4/media.amp--></SrcUrl>
<SrcUrlMethods><!--req, xs:string, methods supported by the source: "DESCRIBE,SETUP,PLAY,TEARDOWN"--></
SrcUrlMethods>
<SrcLogin><!--req, xs:string, login source password--></SrcLogin>
</SrcDescriptor>
<TrackSchedule><!--recording schedule-->
<ScheduleBlockList>
<ScheduleBlock><!--list, recording schedule list-->
<ScheduleBlockGUID><!--xs:string, schedule GUID, e.g., ABC12345-CDEF-4520-8BB8-7135789C8790--></
ScheduleBlockGUID>
<ScheduleBlockType><!--req, xs:string--></ScheduleBlockType>
<ScheduleAction><!--list-->
<id><!--req, xs:integer--></id>
<ScheduleActionStartTime><!--start time of the schedule-->
<DayOfWeek><!--req, xs:string, "Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday"--></
DayOfWeek><!--inclusive-->
<TimeOfDay><!--xs:time, 00:00:00--></TimeOfDay>
</ScheduleActionStartTime>
<ScheduleActionEndTime><!--end time of the schedule-->
<DayOfWeek><!--req, xs:string, "Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday"--></
DayOfWeek><!--exclusive-->
<TimeOfDay><!--xs:time, 08:00:00--></TimeOfDay>
</ScheduleActionEndTime>
<ScheduleDSTEnable><!--req, xs:boolean, whether to enable DST (daylight saving time)--></ScheduleDSTEnable>
<Description><!--req, xs:string, PreMorning (midnight to 8 a.m., local time)--></Description>
<Actions><!--alarm or motion detection that triggers recording-->
<Record><!--opt, xs:boolean--></Record>
<Log><!--opt, xs:boolean--></Log>
<SaveImg><!--opt, xs:boolean--></SaveImg>
<ActionRecordingMode><!--req, xs:string, record type: temperatureIntervalMeasurement (interval temperature
741
Intelligent Security API (General) Developer Guide
measurement), CMR (continuously record according to schedule), MOTION (record triggered by motion detection),
ALARM (record triggered by alarm), EDR (record triggered by alarm/motion detection), ALARMANDMOTION (record
triggered by alarm and motion detection), Command (record by command), SMART (smart record), AllEvent (all
events)--></ActionRecordingMode>
<PreRecordTimeSeconds><!--opt, xs:integer, pre-record time, it is between 0 and 10 and the default value is 5,
unit: second--></PreRecordTimeSeconds>
<PostRecordTimeSeconds><!--opt, xs:integer, post-record time, it is between 0 and 20 and the default value is
5, unit: second--></PostRecordTimeSeconds>
</Actions>
</ScheduleAction>
</ScheduleBlock>
</ScheduleBlockList>
</TrackSchedule>
<CustomExtensionList>
<CustomExtension>
<CustomExtensionName><!--opt, xs:string, example: www.isapi.com/RaCM/trackExt/ver10--></
CustomExtensionName>
<enableSchedule><!--opt, xs:boolean, whether to enable recording schedule configuration--></enableSchedule>
<SaveAudio><!--opt, xs:boolean, whether to enable recording audio--></SaveAudio>
<PreRecordTimeSeconds><!--opt, xs:integer, pre-record time, unit: second--></PreRecordTimeSeconds>
<PostRecordTimeSeconds><!--opt, xs:integer, post-record time, unit: second--></PostRecordTimeSeconds>
<HolidaySchedule>
<ScheduleBlock>
<ScheduleBlockGUID><!--req, xs:string, example: 00000000-0000-0000-0000-000000000000--></
ScheduleBlockGUID>
<ScheduleBlockType><!--opt, xs:string, e.g., www.isapi.com/racm/schedule/ver10--></ScheduleBlockType>
</ScheduleBlock>
</HolidaySchedule>
</CustomExtension>
</CustomExtensionList>
<IntelligentRecord><!--opt, xs:boolean, whether to enable VCA recording function: 0-no, 1-yes--></IntelligentRecord>
<delayTime opt="0,3,4,5,10,30,60,120,300"><!--opt, xs:integer, capture delay time, unit: second--></delayTime>
<durationEnabled opt="true,false"><!--opt, xs:boolean, whether to enable video expiry time. If this function is not
supported, this node will not be returned. If this function is supported, the video expiry date will be set by the node
<Duration>--></durationEnabled>
</Track>
XML_Cap_Tracking
Tracking capability message in XML format
<Tracking version="2.0" xmlns="http://www.std-cgi.org/ver20/XMLSchema">
<enabled>
<!--req, xs:boolean-->
</enabled>
<mode opt="auto,manual">
<!--dep, xs:string, "auto,manual"-->
</mode>
<trackingTime min="0" max="60" def="5">
<!--dep, xs:integer, tracking time-->
</trackingTime>
742
Intelligent Security API (General) Developer Guide
<normalizedScreenSize>
<!--req, ro-->
<normalizedScreenWidth>
<!--req, ro, xs:integer-->
</normalizedScreenWidth>
<normalizedScreenHeight>
<!--req, ro, xs:integer-->
</normalizedScreenHeight>
</normalizedScreenSize>
<ManualRegionCoordinatesList min="4" size="4">
<!--dep, tracking area-->
<RegionCoordinates>
<!--opt-->
<positionX>
<!--req, xs:integer, X-coordinate-->
</positionX>
<positionY>
<!--req, xs:integer, Y-coordinate-->
</positionY>
</RegionCoordinates>
</ManualRegionCoordinatesList>
<isNotSupportTrackingDisplay>
<!--req, xs:boolean, whether to support displaying master-slave tracking on the interface: "true"-yes, "false"-no-->
</isNotSupportTrackingDisplay>
<Schedule>
<!--opt ,dep, schedule, this node is valid only when enabled is "true". By default the schedule is from 00:00 to 24:00
if no schedule is configured-->
<TimeRange >
<beginTime>
<!--UTC time, e.g.: "2018-03-13T19:42:27+08:00"-->
</beginTime>
<endTime>
<!--UTC time, e.g.: "2018-03-13T19:42:27+08:00"--->
</endTime>
</TimeRange >
</Schedule >
</Tracking>
XML_Cap_TwoWayAudioChannelList
XML message about the audio configuration capability of all two-way audio channels
<TwoWayAudioChannelList version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<TwoWayAudioChannel><!--list-->
<id><!--required, xs:string, audio channel index--></id>
<enabled><!--required, xs:boolean, whether to enable--></enabled>
<audioCompressionType opt="G.711alaw,G.711ulaw,G.726,G.729,G.729a,G.
729b,PCM,MP3,AC3,AAC,ADPCM,MP2L2"><!--required, xs:string, encoding type of audio output: "G.711alaw,G.
711ulaw,G.726,G.729,G.729a,G.729b,PCM,MP3,AC3,AAC,ADPCM,MP2L2"--></audioCompressionType>
<audioInboundCompressionType opt="G.711alaw,G.711ulaw,G.726,G.729,G.729a,G.
729b,PCM,MP3,AC3,AAC,ADPCM"><!--optional, xs:string, encoding type of audio input: "G.711alaw,G.711ulaw,G.
743
Intelligent Security API (General) Developer Guide
726,G.729,G.729a,G.729b,PCM,MP3,AC3,AAC,ADPCM"--></audioInboundCompressionType>
<speakerVolume min="" max=""><!--optional, xs:integer, input volume, value range: [1,100]--></speakerVolume>
<microphoneVolume min="" max=""><!--optional, xs:integer, output volume, value range: [1,100]--></
microphoneVolume>
<noisereduce opt="true,false"><!--optional, xs:boolean, whether to enable--></noisereduce>
<audioBitRate min="" max=""><!--optional, xs:integer, audio frame rate, unit: kbs--></audioBitRate>
<audioInputType opt="MicIn,LineIn"><!--optional, xs:string, audio input: "MicIn,LineIn"--></audioInputType>
<associateVideoInputs><!--optional, linked audio input-->
<enabled opt="true,false"><!--required, xs:boolean, whether to enable--></enabled>
<videoInputChannelList><!--required, list of video input channels-->
<videoInputChannelID min="" max=""><!--list, xs:string, video input channel index--></videoInputChannelID>
</videoInputChannelList>
</associateVideoInputs>
<audioSamplingRate min="" max=""><!--optional, xs:float, audio sampling rate, unit: kHz--></audioSamplingRate>
<lineOutForbidden opt="true,false"><!--optional, read-only, xs:boolean, whether the audio output is not supported:
false or this node is not returned-the device supports audio output, true-the device does not support audio output--
></lineOutForbidden>
<muteDuringPanTilt opt="true,false"><!--dependent, xs:boolean, whether to mute during moving--></
muteDuringPanTilt>
</TwoWayAudioChannel>
</TwoWayAudioChannelList>
XML_Cap_UPnPCap
XML message about UPnP configuration capability
<?xml version="1.0" encoding="utf-8"?>
<UPnPCap version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<enabled opt="true,false"/><!--required, xs:boolean-->
<isSupportPortsCfg opt="true,false"/><!--optional, xs:boolean-->
<ShortcutNatInfo><!--optional, configuration parameters about shortcut NAT port mapping-->
<enabled opt="true,false"/><!--optional, xs:boolean-->
<natRouterLanAddr><!--optional, IP information of local mapping-->
<ipVersion opt="v4,v6,dual"><!--required, xs:string--></ipVersion>
<ipAddress min="" max=""><!--dependent, xs:string--></ipAddress>
<ipv6Address min="" max=""><!--dependent, xs:string--></ipv6Address>
</natRouterLanAddr>
<natRouterWanAddr><!--optional, IP information of external mapping-->
<ipVersion opt="v4,v6,dual"><!--required, xs:string--></ipVersion>
<ipAddress min="" max=""><!--dependent, xs:string--></ipAddress>
<ipv6Address min="" max=""><!--dependent, xs:string--></ipv6Address>
</natRouterWanAddr>
<beginPort min="" max=""><!--optional, xs:integer, port No. when mapping starts, <beginPort> and <endPort>
specify the range of the port No. that supports mapping--></beginPort>
<endPort min="" max=""><!--optional, xs:integer, port No. when mapping ends, <beginPort> and <endPort> specify
the range of the port No. that supports mapping--></endPort>
</ShortcutNatInfo>
</UPnPCap>
744
Intelligent Security API (General) Developer Guide
XML_Cap_User
XML message about user configuration capability
<User xmlns="http://www.isapi.org/ver20/XMLSchema" version="2.0" >
<id>
<!--required, xs:integer, user ID, value range: [1,16]-->
</id>
<userName>
<!--required, xs:string -->
</userName>
<password>
<!--required, xs:string, read-only-->
</password>
<bondIpAddressList>
<bondIpAddress>
<id>
<!--required, xs:integer -->
</id>
<ipAddress>
<!--dependent, xs:string -->
</ipAddress>
<ipv6Address>
<!--dependent, xs:string -->
</ipv6Address>
</bondIpAddress>
</bondIpAddressList>
<bondMacAddressList>
<bondMacAddress>
<id>
<!--required, xs:integer -->
</id>
<macAddress>
<!--optional, xs:string -->
</macAddress>
</bondMacAddress>
</bondMacAddressList>
<userLevel>
<!--optional, xs:string, user type: "Administrator", "Operator", "Viewer"-->
</userLevel>
<attribute>
<!--optional-->
<inherent>
<!--xs:boolean -->
</inherent>
</attribute>
<belongUserId>
<!--optional, xs:integer, upper-level user ID, "0"-there is no upper-level user-->
</belongUserId>
<belongOrgNo>
<!--optional, xs:integer, organization No.-->
745
Intelligent Security API (General) Developer Guide
</belongOrgNo>
</User>
XML_Cap_UserPermissionList
XML message about the configuration capability of all users' permissions
<UserPermissionList version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<UserPermission><!--required-->
<id min="" max=""/><!--required, xs:string-->
<userID min="" max=""/><!--required, xs:string, user ID-->
<userType optional="admin,operator,viewer"/><!--required, xs:string, user type: "admin, operator, viewer"-->
<localPermission><!--optional-->
<backup optional="true,false"/><!--optional, xs:boolean, whether it supports local backup. If this node is returned,
it indicates that the device supports this function. You can configure whether to assign this permission to users-->
<record optional="true,false"/><!--optional, xs:boolean, whether it supports local manual operation-->
<playBack optional="true,false"/><!--optional, xs:boolean, local playback-->
<preview optional="true,false"/><!--optional, xs:boolean, local live view-->
<videoChannelPermissionList><!--optional-->
<videoChannelPermission> <!--optional-->
<id min="" max=""/><!--required, xs:string-->
<playBack optional="true,false"/><!--optional, xs:boolean-->
<preview optional="true,false"/><!--optional, xs:boolean-->
<record optional="true,false"/><!--optional, xs:boolean-->
<backup optional="true,false"/><!--optional, xs:boolean-->
</videoChannelPermission>
</videoChannelPermissionList>
<ptzControl optional="true,false"/><!--optional, xs:boolean, local PTZ control-->
<ptzChannelPermissionList> <!--optional-->
<ptzChannelPermission> <!--required-->
<id min="" max=""/><!--required, xs:string-->
<ptzControl optional="true,false"/><!--optional, xs:boolean, local PTZ control-->
</ptzChannelPermission>
</ptzChannelPermissionList>
<logOrStateCheck optional="true,false"/><!--optional, xs:boolean, whether it supports view logs locally-->
<parameterConfig optional="true,false"/><!--optional, xs:boolean, whether it supports setting parameters locally-->
<restartOrShutdown optional="true,false"/><!--optional, xs:boolean, whether it supports shutting down and
rebooting the device locally-->
<upgrade optional="true,false"/><!--optional, xs:boolean, whether it supports upgrading and formatting locally-->
<manageChannel optional="true,false"/><!--optional, xs:boolean, whether it supports managing channels locally-->
<AIModelManagement>
<!--read-only, optional, xs:boolean, whether to enable permission for operation on the AI model packet-->true
</AIModelManagement>
<AITaskManagement>
<!--read-only, optional, xs:boolean, whether to enable permission for management and operation on AI tasks--
>true
</AITaskManagement>
<subSysOrZoneArm>
<!--read-only, optional, xs:boolean, arm permission of partition/alarm zone-->true
</subSysOrZoneArm>
<subSysOrZoneDisarm>
746
Intelligent Security API (General) Developer Guide
747
Intelligent Security API (General) Developer Guide
748
Intelligent Security API (General) Developer Guide
</UserPermission>
</UserPermissionList>
XML_Cap_VCAResource
Capability message of intelligent resources switch in XML format
<VCAResource version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<type
opt="basicBehavior,fullBehavior,facesnapBehavior,facesnap,TFS,smartVehicleDetection,smartHVTDetection,smart,judic
ial,smart264AndRoadDetection,smart264AndFaceDetection,smart264AndHeatMap,smartVehicleIllegalParkingDetectio
n,smartIntelligentMonitor,smartTrafficDataCollection, roadDetection,humanRecognition, perimeterCapture,
vehicleDetection,HVTDetection,mixedTargetDetection,trackingCaptureMode,nonTrackingCaptureMode,close,faceHum
anModelingContrast,cityManagement,teacherBehavior,
12MPLiveView,personQueueDetection,verticalPeopleCounting,safetyHelmet,faceCounting,AIOpenPlatform">
<!--required, xs: string, intelligent resource types, "trackingCaptureMode"-panoramic capture mode,
"nonTrackingCaptureMode"-single target capture mode, "faceHumanModelingContrast"-resources of face/human
body+face modeling+face picture comparison, "verticalPeopleCounting"-vertical people counting, "safetyHelmet"-
hard hat detection, "faceCounting"-face counting, "personArming"-person arming, "AIOpenPlatform"-AI Open
Platform-->
</type>
<PromptList><!--optional, prompt for switching intelligent resources-->
<Prompt><!--list-->
<resourceType opt="roadDetection">
<!--optional, xs: string, intelligent resource to prompt, currently, only "roadDetection" is supported-->
</resourceType>
<resourcePrompt opt="smartCode">
<!--optional, xs: string, prompt contents-->
</resourcePrompt>
</Prompt>
</PromptList>
</VCAResource>
XML_Cap_VideoInputChannel
VideoInputChannel capability message in XML format
<VideoInputChannel version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<id><!--req, xs: string--></id>
<inputPort><!--req, xs: string--></inputPort>
<videoInputEnabled><!--opt, xs: boolean--></videoInputEnabled>
<name><!--opt, xs: string--></name>
<videoFormat opt="PAL,NTSC"><!--opt, xs: string, video standards--></videoFormat>
<portType opt="SDI,OPT,VGA,HDMI,YPbPr"><!--opt, xs: string, port type--></portType>
<resDesc><!--opt, xs: string--></resDesc>
</VideoInputChannel>
749
Intelligent Security API (General) Developer Guide
XML_Cap_VideoOutputChannel
VideoOutputChannel capability message in XML format
<VideoOutputChannel version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<id><!--req, xs: string; ID--></id>
<type opt="VGA,CVBS,HDMI,Spot,SDI,LCD"><!--req, xs: string, video output type--></type>
<menu><!--dep, read-only-->
<mirrorMenu><!--req, xs: boolean--></mirrorMenu>
</menu>
<mode opt="close,clip,scale,open,SDI_1080P25,…,HDMI_1080P,HDMI_720P,HDMI_ 2160P">
<!--opt, xs: string, video output mode-->
</mode>
<resolution opt="1920*1080/60HZ,1280*720/50HZ,…"><!--opt, xs: string, video resolution--></resolution>
</VideoOutputChannel>
XML_Cap_VideoOverlay
VideoOverlay capability message in XML format
<VideoOverlay version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<normalizedScreenSize>
<!--req-->
<normalizedScreenWidth>
<!--ro, req, xs:integer-->
</normalizedScreenWidth>
<normalizedScreenHeight>
<!--ro, req, xs:integer-->
</normalizedScreenHeight>
</normalizedScreenSize>
<attribute>
<!--opt-->
<transparent>
<!--req, xs:boolean-->
</transparent>
<flashing>
<!--req, xs:boolean-->
</flashing>
</attribute>
<TextOverlayList/><!--opt, see details in the message of XML_TextOverlayList-->
<DateTimeOverlay/><!--opt, see details in the message of XML_DateTimeOverlay-->
<channelNameOverlay/><!--opt, see details in the message of XML_channelNameOverlay-->
<fontSize>
<!--opt, xs:string, "adaptive,16*16,32*32,48*48,64*64,80*80,96*96,112*112,128*128"-->
</fontSize>
<frontColorMode>
<!--opt, string, "auto,customize"-->
</frontColorMode>
<frontColor>
750
Intelligent Security API (General) Developer Guide
<!--dep, xs:hexBinary;color-->
</frontColor>
<BatteryPowerOverlay/><!--opt, see details in the message of XML_BatteryPowerOverlay-->
<alignment opt="customize,alignRight,alignLeft">
<!--opt, xs:string, "customize,alignRight,alignLeft"-->
</alignment>
<publicSecurity>
<!--req, xs:boolean-->
</publicSecurity>
<DeviceStatusDisplay><!--opt-->
<batteryCapacityDisplay>
<!--opt, xs:boolean-->
</batteryCapacityDisplay>
<chargingStatusDisplay>
<!--opt, xs:boolean-->
</chargingStatusDisplay>
<bluetoothStatusDisplay>
<!--opt, xs:boolean-->
</bluetoothStatusDisplay>
<dialStatusDisplay>
<!--opt, xs:boolean-->
</dialStatusDisplay>
</DeviceStatusDisplay>
<boundary>
<!--opt, xs:integer-->
</boundary>
</VideoOverlay>
See Also
XML_TextOverlayList
XML_DateTimeOverlay
XML_channelNameOverlay
XML_BatteryPowerOverlay
XML_Cap_Wireless
Wireless capability message in XML format
<Wireless version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<enabled><!--req, xs:boolean--></enabled>
<wirelessNetworkMode opt="infrastructure,adhoc"><!--opt, xs:string--></wirelessNetworkMode>
<channel opt="1,2,3,4,5,6,7,8,9,10,11,12,13,14,auto"><!--opt, xs:string--></channel>
<ssid min="" max=""><!--opt, xs:string--></ssid>
<wmmEnabled><!--opt, xs:boolean--></wmmEnabled>
<WirelessSecurity><!--opt-->
<securityMode opt ="disable,WEP,WPA-personal,WPA2-personal,WPA-RADIUS,WPA-enterprise,WPA2-
enterprise,WPA/WPA2">
<!--opt, xs:string-->
</securityMode>
<WEP><!--dep, this node depends on <securityMode>-->
751
Intelligent Security API (General) Developer Guide
752
Intelligent Security API (General) Developer Guide
XML_Cap_WirelessServer
WirelessServer capability message in XML format
<WirelessServer version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<wifiApEnabled opt="true,false"><!--opt,xs: boolean,--></wifiApEnabled>
<broadcastEnabled opt="true,false"><!--opt,xs: boolean--></broadcastEnabled>
<wlanShareEnabled opt="true,false"><!--opt,xs: boolean--></wlanShareEnabled>
<ssid min="" max=""><!--opt, xs: string--></ssid>
<WirelessSecurity><!--req-->
<securityMode opt="disable,WEP,WPA-personal,WPA2-personal,WPA-RADIUS,WPA-enterprise,WPA2-enterprise">
<!--opt, xs: string-->
</securityMode>
<WEP><!--dep, depends on <securityMode>-->
<authenticationType opt="open,sharedkey,auto">
<!--req, xs: string-->
</authenticationType>
<defaultTransmitKeyIndex min="" max="">
<!--req, xs: integer-->
</defaultTransmitKeyIndex>
<wepKeyLength opt="64,128"><!--opt, xs: integer--></wepKeyLength>
<EncryptionKeyList size="">
<encryptionKey>
<!--req, xs: hexBinary, WEP encryption key in hexadecimal format-->
</encryptionKey>
</EncryptionKeyList>
</WEP>
<WPA><!--dep, depends on <securityMode>-->
<algorithmType opt="TKIP,AES,TKIP/AES">
<!--req, xs: string, "TKIP,AES,TKIP/AES"-->
</algorithmType>
<sharedKey><!--opt, xs: string, shared key used in WPA--></sharedKey>
<wpaKeyLength min="" max=""><!-- opt, xs: integer, the ley length is between 8 and 63--></wpaKeyLength>
<defaultPassword><!--opt, xs: boolean--></defaultPassword>
</WPA>
</WirelessSecurity>
<DHCPEnabled opt="true,false"><!--opt, xs: boolean--></DHCPEnabled>
<ipVersion opt="v4,v6"><!--opt, xs:string--></ipVersion>
<HostIpAddress><!--opt-->
<ipAddress><!--dep, xs:string--></ipAddress>
<ipv6Address><!--dep, xs:string--></ipv6Address>
</HostIpAddress>
<IPMask><!--opt-->
<subnetMask><!--dep, xs:string, subnet mask for IPv4 address--></subnetMask>
<bitMask><!--dep, xs:integer, bitmask IPv6 address--></bitMask>
</IPMask>
<AddressPool><!--opt-->
<startIPV4Address><!--dep, xs:string--></startIPV4Address>
<endIPV4Address><!--dep, xs:string--></endIPV4Address>
<startIPV6Address><!-- dep, xs:string--></startIPV6Address>
<endIPV6Address><!--dep, xs:string--></endIPV6Address>
753
Intelligent Security API (General) Developer Guide
<AddressPool>
<DNSAddressList size="2"><!--opt-->
<DNSAddress><!--opt>
<id><!--opt,xs:string,start from 1--></id>
<ipAddress><!--dep, xs: string--></ipAddress>
<ipv6Address><!--dep, xs: string--></ipv6Address>
</DNSAddress>
</DNSAddressList>
<GatewayAddress>
<ipAddress><!--dep, xs:string--></ipAddress>
<ipv6Address><!--dep, xs:string--></ipv6Address>
<GatewayAddress>
<wifiApModeType opt="true,false,auto">
<!--opt, xs: string, current wireless access point (AP) mode, if this node is returned, it indicates that the device
supports auto mode-->
</wifiApModeType>
</WirelessServer>
Remarks
For Client supports auto AP, the node <<wifiApModeType> is valid; for Client does not supports
auto AP, the node <wifiApEnabled> is valid; the values of these two nodes will effect each other,
and when <wifiApModeType> equals to "auto", the value of <wifiApEnabled> is "true".
XML_Cap_WirelessServerStatus
WirelessServerStatus capability message in XML format
<WirelessServerStatus version="1.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<wifiApEnabled>
<!--dep, xs:boolean-->
</wifiApEnabled>
<linkDevices min="0" max="20">
<!--dep, xs:integer, maximum number of linked devices-->
</linkDevices>
<DeviceInfoList size="20">
<!--opt-->
<DeviceInfo>
<!--opt-->
<IpAddress>
<!--req-->
<ipAddress>
<!--dep, xs:string-->
</ipAddress>
<ipv6Address>
<!--dep, xs:string-->
</ipv6Address>
</IpAddress>
<hostName>
<!--opt, xs:string-->
</hostName>
754
Intelligent Security API (General) Developer Guide
<macAddress>
<!--opt, xs:string-->
</macAddress>
</DeviceInfo>
</DeviceInfoList>
</WirelessServerStatus>
XML_Cap_WirelessStatus
WirelessStatus capability message in XML format
<WirelessStatus version="1.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<enabled>
<!--dep, xs:boolean-->
</enabled>
<connectionEnabled>
<!--dep, xs:boolean-->
</connectionEnabled>
<IpAddress>
<!--req-->
<ipAddress>
<!--dep, xs:string-->
</ipAddress>
<ipv6Address>
<!--dep, xs:string-->
</ipv6Address>
</IpAddress>
<SubnetMask>
<!--req-->
<ipAddress>
<!--dep, xs:string-->
</ipAddress>
<ipv6Address>
<!--dep, xs:string-->
</ipv6Address>
</SubnetMask>
<RouterAddress>
<!--req-->
<ipAddress>
<!--dep, xs:string-->
</ipAddress>
<ipv6Address>
<!--dep, xs:string-->
</ipv6Address>
</RouterAddress>
<DNSAddressList size="2">
<!--opt-->
<DNSAddress>
<!--opt-->
<id>
<!--opt, xs:string, DNS address ID, which starts from 1-->
755
Intelligent Security API (General) Developer Guide
</id>
<ipAddress>
<!--dep, xs:string-->
</ipAddress>
<ipv6Address>
<!--dep, xs:string-->
</ipv6Address>
</DNSAddress>
</DNSAddressList>
</WirelessStatus>
XML_Cap_WPS
WPS capability message in XML format
<WPS version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<enable><!--required, xs:boolean, whether to enable WPS--></enable>
</WPS>
XML_CaptureMode
CaptureMode message in XML format
<CaptureMode version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<mode>
<!--req, xs: string, video input mode: 1-640×480@30fps, 2-4CIF@30fps, 3-720P@25fps, 4-720P@30fps,
5-720P@60fps, 6-1280×960@15fps, 7-1280×960@25fps, 8-1280×960@30fps, 9-1280×1024@30fps,
10-1600×900@15fps, 11-1600×1200@15fps, 12-1080P@15fps, 13-1080P@25fps, 14-1080P@30fps,
15-1080P@50fps, 16-1080P@60fps, 17-2048×1536@15fps, 18-2048×1536@20fps, 19-2048×1536@24fps,
20-2048×1536@25fps, 21-2048×1536@30fps, 22-2560×2048@25fps, 23-2560×2048@30fps, 24-2560×[email protected],
25-3072×2048@30fps, 26-1944×1212@24fps, 27-1944×1212@25fps-->
</mode>
</CaptureMode>
XML_CertificateInfo
CertificateInfo message in XML format
<CertificateInfo version="1.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<id><!--req, xs: string--></id>
<version><!--opt, xs: string--></version>
<IssuerDN><!--req, isapi:DN-->
<countryName><!--req, xs: string--></countryName>
<stateOrProvinceName><!--opt, xs: string--></stateOrProvinceName>
<localityName><!--opt, xs: string--></localityName>
<organizationName><!--opt, xs: string--></organizationName>
<organizationUnitName><!--opt, xs: string--></organizationUnitName>
756
Intelligent Security API (General) Developer Guide
XML_CertificateReq
CertificateReq message in XML format
<CertificateReq version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<id><!--req, xs: string--></id>
<SubjectDN><!--req, isapi:DN-->
<countryName><!--req, xs: string--></countryName>
<stateOrProvinceName><!--opt, xs: string--></stateOrProvinceName>
<localityName><!--opt, xs: string--></localityName>
<organizationName><!--opt, xs: string--></organizationName>
<organizationUnitName><!--opt, xs: string--></organizationUnitName>
<commonName><!--req, xs: string --></commonName>
<email><!--opt, xs: string--></email>
</SubjectDN>
<validity><!--opt, xs: integer, expiry date, which is between 1 and 5000--></validity>
<passwd><!--opt, xs: string, password to protect private key--></passwd>
<RSAKeyLength><!--opt, xs: integer--></RSAKeyLength>
</CertificateReq>
XML_CertificateReq_ImportCert
CertificateReq message in XML format
<CertificateReq version="1.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<certificateMode><!--opt, xs:string, importing method: "signingRequest"-signature request (import self-signed
certificate), "privateKey"-private key--></certificateMode>
<privateKeyMode><!--dep, xs:string, private key mode: "seperateKey", "PKCS#12"--></privateKeyMode>
<seperateKeyPassword><!--dep, xs:string, password in seperateKey mode, it should be encrypted--></
seperateKeyPassword>
757
Intelligent Security API (General) Developer Guide
XML_CertificateReqInfo
CertificateReqInfo message in XML format
<CertificateReqInfo version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<id><!--req, xs: string--></id>
<SubjectDN><!--req, isapi:DN-->
<countryName><!--req, xs: string--></countryName>
<stateOrProvinceName><!--opt, xs: string--></stateOrProvinceName>
<localityName><!--opt, xs: string--></localityName>
<organizationName><!--opt, xs: string--></organizationName>
<organizationUnitName><!--opt, xs: string--></organizationUnitName>
<commonName><!--req, xs: string --></commonName>
<email><!--opt, xs: string--></email>
</SubjectDN>
<version><!--opt, xs: string--></version>
<validity><!--opt, xs:int, expiry date, which is between 1 and 5000--></validity>
<keyAlgorithm><!--opt, xs: string--></keyAlgorithm>
<passwd><!--opt, xs: string, password to protect private key--></passwd>
<RSAKeyLength><!--opt, xs: integer--></RSAKeyLength>
</CertificateReqInfo>
XML_CertificateResult
CertificateResult message in XML format
<CertificateResult version="1.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<formatType><!--req, xs:string, certificate format, e.g., "PEM"--><formatType>
<detailInfo><!--req, xs:string, certificate details--></detailInfo>
</CertificateResult>
XML_Challenge
Challenge message in XML format.
<Challenge version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<key><!--req, xs:string--></key>
</Challenge>
758
Intelligent Security API (General) Developer Guide
XML_ChanCtrl
ChanCtrl message (for traffic) in XML format
<ChanCtrl version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<streamGetType><!--streaming mode: 0-live view mode (default), 1-data receiving mode--></streamGetType>
</ChanCtrl>
XML_Channel_VideoOverlay
Message about the text overlay parameters of a specific video digital input channel in XML format.
<VideoOverlay version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<normalizedScreenSize><!--required-->
<normalizedScreenWidth><!--required, read-only, xs:integer, normalized width--></normalizedScreenWidth>
<normalizedScreenHeight><!--required, read-only, xs:integer, normalized height--></normalizedScreenHeight>
</normalizedScreenSize>
<attribute><!--optional-->
<transparent><!--required, xs:boolean, whether it is transparent--></transparent>
<flashing><!--required, xs:boolean, whether it is flickering--></flashing>
</attribute>
<TextOverlayList><!--optional-->
<TextOverlay><!--list-->
<id><!--required, xs:string, text No.--></id>
<enabled><!--required, xs:boolean, whether to enable--></enabled>
<positionX><!--required, xs:integer, X-coordinate--></positionX>
<positionY><!--required, xs:integer, Y-coordinate--></positionY>
<displayText><!--required, xs:string, overlaid text--></displayText>
</TextOverlay>
</TextOverlayList>
<DateTimeOverlay><!--optional-->
<enabled> <!--required, xs:boolean, whether to display the date--> </enabled>
<positionX> <!--required, xs:integer, X-coordinate--> </positionX>
<positionY> <!--required, xs:integer, Y-coordinate--> </positionY>
<dateStyle><!--optional, xs:string, date format: "YYYY-MM-DD", "MM-DD-YYYY", "DD-MM-YYYY", "CHR-YYYY-MM-
DD", "CHR-MM-DD-YYYY", "CHR-DD-MM-YYYY", "CHR-YYYY/MM/DD", "CHR-MM/DD/YYYY", "CHR-DD/MM/YYYY"--> </
dateStyle>
<timeStyle> <!--optional, xs:string, time format: "12hour", "24hour"--> </timeStyle>
<displayWeek> <!--optional, xs:boolean, whether to display the day of the week--> </displayWeek>
</DateTimeOverlay>
<channelNameOverlay><!--optional-->
<enabled> <!--required, xs:boolean, whether to display the channel name--> </enabled>
<positionX> <!--required, xs:integer, X-coordinate--> </positionX>
<positionY> <!--required, xs:integer, Y-coordinate--> </positionY>
</channelNameOverlay>
<fontSize><!--optional, xs:string, font size: "adaptive", "16*16", "32*32", "48*48", "64*64"--></fontSize>
<frontColorMode><!--optional, string, font color mode: "auto", "customize"--></frontColorMode>
<frontColor><!--dependency, xs:hexBinary, font color--></frontColor>
<BatteryPowerOverlay><!--optional, battery power overlay-->
759
Intelligent Security API (General) Developer Guide
XML_ChannelCap_VideoOverlay
Message about the text overlay configuration capability of a specific video digital input channel in
XML format.
<VideoOverlay version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<normalizedScreenSize><!--required-->
<normalizedScreenWidth><!--required, read-only, xs:integer, normalized width--></normalizedScreenWidth>
<normalizedScreenHeight><!--required, read-only, xs:integer, normalized height--></normalizedScreenHeight>
</normalizedScreenSize>
<attribute><!--optional-->
<transparent opt="true,false"><!--required, xs:boolean, whether it is transparent--></transparent>
<flashing opt="true,false"><!--required, xs:boolean, whether it is flickering--></flashing>
</attribute>
<TextOverlayList size="8"><!--optional-->
<TextOverlay><!--list-->
<id><!--required, xs:string, text No.--></id>
<enabled><!--required, xs:boolean, whether to enable--></enabled>
<positionX><!--required, xs:integer, X-coordinate--></positionX>
<positionY><!--required, xs:integer, Y-coordinate--></positionY>
<displayText><!--required, xs:string, overlaid text--></displayText>
<isPersistentText><!--optional, xs:boolean, whether the OSD overlaid text is the same as the originally configured
one after the device reboots--></isPersistentText>
</TextOverlay>
</TextOverlayList>
<DateTimeOverlay>
<enabled opt="true,false"><!--required, xs:boolean, whether to display the date--></enabled>
<positionX><!--required, xs:integer, X-coordinate--></positionX>
<positionY><!--required, xs:integer, Y-coordinate--></positionY>
<dateStyle opt="YYYY-MM-DD,MM-DD-YYYY,DD-MM-YYYY,CHR-YYYY-MM-DD,CHR-MM-DD-YYYY,CHR-DD-MM-
YYYY,CHR-YYYY/MM/DD,CHR-MM/DD/YYYY,CHR-DD/MM/YYYY"><!--optional, xs:string, date format--></dateStyle>
<timeStyle opt="12hour,24hour"><!--optional, xs:string, time format--></timeStyle>
<displayWeek opt="true,false"><!--optional, xs:boolean, whether to display the day of the week--></displayWeek>
</DateTimeOverlay>
<channelNameOverlay>
<enabled><!--required, xs:boolean, whether to display the channel name--></enabled>
<positionX><!--required, xs:integer, X-coordinate--></positionX>
<positionY><!--required, xs:integer, Y-coordinate--></positionY>
</channelNameOverlay>
<fontSize opt="16*16,32*32,48*48,64*64,adaptive"><!--optional, xs:string, font size, unit: pixel--></fontSize>
<frontColorMode opt="auto,customize"><!--optional, string, font color mode--></frontColorMode>
760
Intelligent Security API (General) Developer Guide
XML_ChannelEventCap
XML message about event capability of a single channel
<ChannelEventCap version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<eventType opt=""/>
<!--required, xs:string, event types supported by the channel; see remarks for details-->
<shieldEventType opt="behavior,faceSnap,humanRecognition,faceCapture,targetCapture"/>
<!--required, xs:string, event types that support area shield-->
<channelID><!--optional, xs:integer, current device channel No.--></channelID>
<id><!--required, xs:integer--></id>
<passThoughEventType
opt="faceSnapModeling,cityManagement,strudentsStoodUp,dredgerDetection,reverseEntrance,teacherBehaviorDetec
t,personQueueDetection">
<!--optional, xs:string, event types can be transmitted-->
761
Intelligent Security API (General) Developer Guide
</passThoughEventType>
</ChannelEventCap>
Remarks
The values of node <eventType> are shown in the table below.
eventType Description
VMD (motionDetection) Motion detection
Shelteralarm (tamperDetection) Video tampering alarm
videoLoss Video loss
ROI Region of interest
facedetection (faceDetection) Face detection
intelliTrace Auto-track
fielddetection (fieldDetection) Intrusion detection
defocus (defocusDetection) Defocus detection
audioexception (audioDetection) Audio exception detection
scenechangedetection Sudden scene change detection
(sceneChangeDetection)
linedetection (lineDetection) Line-crossing detection
regionEntrance Region entrance detection
regionExiting Region exiting detection
loitering Loitering detection
group People gathering detection
rapidMove Fast moving detection
parking Parking detection
unattendedBaggage Unattended baggage
attendedBaggage Object removal detection
peopleDetection Human detection
storageDetection HDD health detection
behavior Behavior analysis
faceCapture(faceSnap) Face capture
ANPR(vehicleDetection) Vehicle detection
762
Intelligent Security API (General) Developer Guide
eventType Description
fireDetection Fire detection
shipsDetection Ship detection
PIR PIR alarm
targetCapture (humanRecognition) Target capture
alarmResult (faceContrast) Face comparison
framesPeopleCounting People counting in single frame
hide Tampering detection
audioLoss Audio loss
cameraAngleAnormaly Image exception
violentMotion Violent motion
trial Tailing
humanEnter Human entrance
operateOverTime Operation timed out
stickUp Sticking scrip
installScanner Installing scanner
faceDetect ATM face detection
temperature (temperatureDetection) Temperature difference detection
PeopleCounting People counting
personQueueDetection People queuing-up detection
heatmap Heat map
mixedTargetDetection Multi-target-type detection
MTD_face Supported face attributes of multi-target-type
detection (MTD)
MTD_human Supported human attributes of multi-target-type
detection (MTD)
MTD_vehicle Supported motor vehicle attributes of multi-target-
type detection (MTD)
MTD_nonMotor Supported non-motor vehicle attributes of multi-
target-type detection (MTD)
faceSnapModeling Face capture modeling
763
Intelligent Security API (General) Developer Guide
eventType Description
HVTVehicleDetection Mixed-traffic detection
PictureCaptureComparision N:1 face comparison
IO Sensor alarm
smokeDetection Smoke detection
smokeAndFireDetection Smoke and fire detection
diskfull HDD is full
diskerror HDD error
nicbroken Network disconnected
ipconflict IP address conflicted
illaccess Illegal access
personDensityDetection People density detection
vehicleControl Upload alarm of vehicle in allowlist and blocklist
vehicleRcogResult Vehicle secondary recognition
cardMatch Authentication
overSpeed Overspeed alarm
highTempAlarm High temperature alarm
abnormalAcceleration Abnormal accelerated speed alarm
failDown People falling down
leavePosition Absence detection
peopleNumChange The number of people changed
retention Overstay detection
running Running
thermometry Temperature measurement
heatmapPDC Heat map people counting
heatmapDuration Heat map people staying duration
intersectionAnalysis Intersection analysis
AID_abandonedObject Thrown object in traffic events
AID_pedestrian Pedestrian detection in traffic events
AID_congestion Congestion detection in traffic events
764
Intelligent Security API (General) Developer Guide
eventType Description
AID_roadBlock Roadblock detection in traffic events
AID_construction Construction detection in traffic events
AID_trafficAccident Traffic accident detection in traffic events
AID_fogDetection Fog detection in traffic events
TFS_illegalParking Illegal parking of enforcement events
TFS_wrongDirection Wrong-way driving of enforcement events
TFS_crossLane Driving on lane line of enforcement events
TFS_laneChange Lane change of enforcement events
TFS_vehicleExist Vehicle existing of enforcement events
TFS_turnRound Turning round of enforcement events
TFS_parallelParking Parallel parking of enforcement events
TPS Traffic data collection configuration
luma Brightness exception
chroma Color cast detection
snow Snow noise
streak Stripe noise
freeze Image freeze
sigLose Signal loss
clarity Clarity exception
jitter Image flutter
block Video tampering
flowers Blurred screen detection
noise Image noise
ghost Abnormal light spot detection
purple Image purple edge detection
ICR ICR exception detection
protectiveFilm Protective film unremoved
certificateRevocation Certificate is expired
dataPreAlarm Traffic pre-alarm
765
Intelligent Security API (General) Developer Guide
eventType Description
vibrationDetection Vibration detection
radarFieldDetection Radar intrusion detection
radarLineDetection Radar line crossing detection
personArmingTrack Person arming
manualPersonArmingTrack Manual person arming
fireEscapeDetection Fire engine access detection
takingElevatorDetection Elevator detection
temperatureIntervalMeasurement Interval temperature measurement
containerDetection Container detection
Note
If this node is not returned, you can refer to the value
returned by to find whether the device supports
container detection.
The value in the bracket is the old version, and considering the compatibility, both new and old
value will be returned.
XML_ChannelEventCapList
Message about event capability of all channels in XML format
<ChannelEventCapList version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<ChannelEventCap/>
</ChannelEventCapList>
See Also
XML_ChannelEventCap
XML_ChannelInfo
ChannelInfo message in XML format.
<ChannelInfo version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<id><!--required, xs:integer, channel number--></id>
<EagleEye>
<!--optional, the channel supports the functions of PanoVu series camera-->
<StreamFusion>
<!--optional, "panoramic + PTZ camera streaming channel, it is not returned when not support-->
766
Intelligent Security API (General) Developer Guide
767
Intelligent Security API (General) Developer Guide
</DPC>
<Metadata>
<!--optional, metadata extraction, it is not returned when not support-->
<InsertChanNo><!--optional, xs:integer, access channel number--></InsertChanNo>
</Metadata>
<ThermometryShieldMask>
<!--optional, temperature measurement shielded area, it is not returned when not support-->
<InsertChanNo><!--optional,xs:integer, access channel number--></InsertChanNo>
</ThermometryShieldMask>
<FaceThermometry>
<!--optional, face thermography, it is not returned when not support-->
<InsertChanNo><!--optional, xs:integer, access channel number--></InsertChanNo>
</FaceThermometry>
<BlackBody>
<!--optional, black body, it is not returned when not support-->
<InsertChanNo><!--optional, xs:integer, access channel number--></InsertChanNo>
</BlackBody>
<BodyTemperatureCompensation>
<!--optional, body temperature compensation, it is not returned when not support-->
<InsertChanNo><!--optional, xs:integer, access channel number--></InsertChanNo>
</BodyTemperatureCompensation>
<LensCorrection>
<!--optional, lens correction, when this node is not returned, it indicates not support-->
<InsertChanNo><!--optional, xs:integer, access channel number--></InsertChanNo>
</LensCorrection>
<BurningPrevention>
<!--optional, burning prevention, when this node is not returned, it indicates not support-->
<InsertChanNo><!--optional, xs:integer, access channel number--></InsertChanNo>
</BurningPrevention>
<FaceSnapThermometry>
<!--optional, upload the captured face picture with temperature information, it is not returned when this function
is not supported-->
<InsertChanNo><!--optional, xs:integer, access channel number--></InsertChanNo>
</FaceSnapThermometry>
<TemperatureCorrect><!--optional, temperature correction; this node is not returned when this function is not
supported-->
<InsertChanNo><!--optional, xs:integer, access channel number--></InsertChanNo>
</TemperatureCorrect>
<TemperatureIntervalMeasurement><!--optional, interval temperature measurement; this node is not returned
when the function is not supported-->
<InsertChanNo><!--optional, xs:integer, access channel number--></InsertChanNo>
</TemperatureIntervalMeasurement>
</Thermal>
<isSupportChangedUpload/><!--optional, xs: boolean, whether supports uploading status changes-->
<PanoramaCamera><!--optional, PTZ camera channel-->
<PTZCtrl>
<InsertChanNo><!--optional, xs:integer, access channel number--></InsertChanNo>
</PTZCtrl>
</PanoramaCamera>
<GlobalCamera><!--optional, Panoramic camera channe-->
<InsertChanNo><!--optional, xs:integer, access channel number--></InsertChanNo>
768
Intelligent Security API (General) Developer Guide
</GlobalCamera>
</ChannelInfo>
XML_ChannelInfoList
ChannelInfoList message in XML format
<ChannelInfoList>version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<ChannelInfo/><!--see details in the message of XML_ChannelInfo-->
</ChannelInfoList>
See Also
XML_ChannelInfo
XML_channelNameOverlay
channelNameOverlay message in XML format
<channelNameOverlay version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<enabled>
<!--req, xs:boolean, whether to enable channel name overlay-->
</enabled>
<name>
<!--req, xs:string, channel name-->
</name>
<positionX>
<!--req, xs:integer, X-coordinate-->
</positionX>
<positionY>
<!--req, xs:integer, Y-coordinate-->
</positionY>
</channelNameOverlay>
XML_CheckInfo
CheckInfo message in XML format
<CheckInfo version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<randomString><!--req, xs: string, random string--></randomString>
<verificationCode>
<!--opt, xs: string, verification code to be sent, which will be encrypted by sha256, and then convert the
hexadecimal code to a string, finally it will be encoded by Base64. The format is first 32-byte of randomString + actual
verification code-->
</verificationCode>
</CheckInfo>
769
Intelligent Security API (General) Developer Guide
XML_CMSearchDataPackage
CMSearchDataPackage message in XML format.
<CMSearchDataPackage version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<metaId>
<!--required, string type, metadata ID, its format is log.std-cgi.com+/major type+/minor type-->
</metaId>
<timeSpanList>
<timeSpan>
<startTime><!--required, start time with ISO8601 time format, e.g., 2017-08-02T00:00:00Z--></startTime>
<endTime><!--required, end time with ISO8601 time format, e.g., 2017-08-02T00:00:00Z--></endTime>
</timeSpan>
</timeSpanList>
</CMSearchDataPackage>
XML_CMSearchDataPackageResult
CMSearchDataPackageResult message in XML format.
<CMSearchDataPackageResult version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<url>
<!--required, string type, file URL, e.g., http://ip:port//ISAPI/ContentMgmt/logSearch/dataPackage/data?xx-->
</url>
</CMSearchDataPackageResult>
XML_CMSearchProfile
CMSearchProfile message in XML format
<CMSearchProfile version="1.0" xmlns="ISAPIllianxce.org:resourcedescription">
<searchProfile><!--req, xs: string, video search conditions--></searchProfile>
<textSearch>
<!--req, xs: string, text type to be searched, such as recording information text and metadata text-->
</textSearch>
<maxSearchTimespans>
<!--req, xs: integer, maximum time period of results returned in each search-->
</maxSearchTimespans>
<maxSearchTracks><!--req, xs: integer, maximum tracks can be searched--></maxSearchtracks>
<maxSearchSources>
<!--req, xs: integer, maximum recording channels can be searched-->
</maxSearchSources>
<maxSearchMetadatas>
<!--req, xs: integer, maximum number of metadata can be searched-->
</maxSearchMetadatas>
<maxSearchMatchResults>
<!--req, xs: integer, maximum search results can be returned-->
</maxSearchMatchResults>
770
Intelligent Security API (General) Developer Guide
XML_VideoPic_CMSearchResult
XML message about search results of videos and pictures
<CMSearchResult version="2.0" xmlns="http://www.isapi.com/ver20/XMLSchema">
<searchID><!--req, xs:string, search ID--></searchID>
<responseStatus><!--req, xs:string--></responseStatus>
<responseStatusStrg><!--req, xs:string--></responseStatusStrg>
<numOfMatches><!--opt, xs:integer--></numOfMatches>
<matchList>
<searchMatchItem>
<sourceID></sourceID>
<trackID></trackID>
<timeSpan>
<startTime></startTime>
<endTime></endTime>
</timeSpan>
<mediaSegmentDescriptor>
<contenType><!--req, xs:string, file type, corresponding to search condition--></contenType>
<codecType><!--req, xs:string, video encoding format--></codecType>
<rateType><!--opt, xs:string, video bit rate,4Mbps--></rateType>
<playbackURI><!--opt, xs:string, video file URL, "name=" and "size=" are file name and file size respectively, e.g.,
rtsp://10.65.130.168/Streaming/tracks/201/?
starttime=20190213T091134Z&endtime=20190213T092116Z&name=01010000093000100&size=7323
35288--></playbackURI>
<lockStatus><!--opt, xs:string, status of video file: lock-locked file, unlock-unlocked file--></lockStatus>
<remainLockTime><!--dep, xs:integer, unit:s, remaining locking time, which is returned only when lockStatus is
set to lock--></remainLockTime>
<name><!--opt, xs:string, file name--></name>
<size><!--opt, xs:integer, file size--></size>
<mediaID><!--opt, xs:integer, file ID--></mediaID>
<remark><!--opt, xs:string, file tag--></remark>
<GPSInfo><!--opt, xs:string, file GPS information--></GPSInfo>
<recorderCode><!--opt, xs:string, body camera No.--></recorderCode>
<uploadState><!--opt, xs:string, status: uploaded, nonUploaded, uploadFailed, uploading--></uploadState>
<uploadTime><!--dep, xs:datetime, time of completing video uploading, e.g., "2004-05-03T17:30:08+08:00"--></
uploadTime>
<policeCode><!--opt, xs:string, No. of the policeman who recorded the video--></policeCode>
<policeName><!--opt, xs:string, name of the policeman who recorded the video--></policeName>
<shootingTime><!--opt, xs:datetime, captured or recorded time, e.g., "2004-05-03T17:30:08+08:00"--></
shootingTime>
<FileTime><!--opt, xs:integer, time duration of the video file, unit:min--></FileTime>
<remarks><!--opt, xs:string, file remarks--></remarks>
<cloudStorageType><!--opt, xs:string, storage server type: 0-cloud storage, 1-cvr, 2-pstor, which should be
consistent with cloudStorageType in /ISAPI/ContentMgmt/channels/<ID>/cloudStorage/<ID>--></cloudStorageType>
771
Intelligent Security API (General) Developer Guide
XML_CMSRecordProfile
CMSRecordProfile message in XML format
<CMRecordProfile version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<trackType><!--opt, xs: string, video track type--></trackType>
</CMRecordProfile>
XML_Color
XML message about color adjustment parameters
<Color version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<brightnessLevel><!--opt, xs:integer, brightness--></brightnessLevel>
<contrastLevel><!--opt,xs:integer, contrast--></contrastLevel>
<saturationLevel><!--opt,xs:integer, saturation--></saturationLevel>
<hueLevel><!--opt, xs:integer, hue--></hueLevel>
<grayScale>
<grayScaleMode><!--opt,xs:string, gray scale mode: "indoor,outdoor"--></grayScaleMode>
</grayScale>
<nightMode>
<!--opt, xs:boolean, enable night mode, when its value is "true", the saturation can be adjusted, otherwise, the
saturation cannot be adjusted-->
</nightMode>
</Color>
772
Intelligent Security API (General) Developer Guide
XML_corridor
corridor message in XML format
<corridor version="2.0" xmlns="http://www.std-cgi.org/ver20/XMLSchema">
<enabled><!--req, xs: boolean, whether to enable rotate mode--></enabled>
<mirror><!--opt, xs: string, mirror mode: "on,off"--></mirror>
</corridor>
XML_DateTimeOverlay
DateTimeOverlay message in XML format
<DateTimeOverlay version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<enabled>
<!--req, xs:boolean, whether to enable date and time overlay-->
</enabled>
<positionX>
<!--req, xs:integer, X-coordinate-->
</positionX>
<positionY>
<!--req, xs:integer, Y-coordinate-->
</positionY>
<dateStyle>
<!--opt, xs:string, date format: "YYYY-MM-DD, MM-DD-YYYY, DD-MM-YYYY, CHR-YYYY-MM-DD, CHR-MM-DD-YYYY,
CHR-DD-MM-YYYY"-->
</dateStyle>
<timeStyle>
<!--opt, xs:string, "12hour, 24hour"-->
</timeStyle>
<displayWeek>
<!--opt, xs:boolean, whether to display week information-->
</displayWeek>
<displayMilliSecond>
<!--opt, xs:boolean, whether to display millisecond-->
</displayMilliSecond>
</DateTimeOverlay>
XML_DDNS
DDNS message in XML format
<DDNS version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<id>
<!--req, xs: string-->
</id>
<enabled>
<!--req, xs:boolean, "true,false"-->
773
Intelligent Security API (General) Developer Guide
</enabled>
<ethernetIfId>
<!--opt, xs:string, ID. This node is used to link the DDNS to a network interface which is used by the DDNS client to
register-->
</ethernetIfId>
<provider>
<!--req, xs:string, "IPServer, DynDNS, PeanutHall, NO-IP, HiDDNS..."-->
</provider>
<serverAddress><!--DDNS address. This node is required when <provider> is "IPServer"-->
<addressingFormatType>
<!--req, xs:string, method used to locate the NTP server: "ipaddress, hostname"-->
</addressingFormatType>
<hostname>
<!--dep, xs:string-->
</hostName>
<ipAddress>
<!--dep, xs:string-->
</ipAddress>
<ipv6Address>
<!--dep, xs:string-->
</ipv6Address>
</serverAddress>
<portNo>
<!--opt, xs:integer, port No-->
</portNo>
<deviceDomainName>
<!--dep, xs:string, domain name of the device-->
</deviceDomainName>
<username>
<!--dep, xs:string-->
</userName>
<password>
<!--wo, dep, xs:string-->
</password>
</DDNS>
XML_DDNSList
DDNSList message in XML format
<DDNSList version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<DDNS/><!--req, see details in the message of XML_DDNS-->
</DDNSList>
See Also
XML_DDNS
774
Intelligent Security API (General) Developer Guide
XML_DefaultParam
DefaultParam message in XML format
<DefaultParam version="1.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<DialNum><!--opt, xs:string--></DialNum>
<Username><!--opt, xs:string--></Username>
<Password><!--opt, xs:string--></Password>
<APNname><!--opt, xs:string--></APNname>
<VerifyProto><!--req, xs:string, "auto, CHAP, PAP"--></VerifyProto>
</DefaultParam>
XML_Defog
Defog message in XML format
<Defog version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<enabled>
<!--req, xs:boolean-->
</enabled>
</Defog>
XML_Dehaze
Dehaze message in XML format
<Dehaze version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<DehazeMode/><!--opt, xs: string, "open,close,auto"-->
<DehazeLevel> <!--opt, xs: integer--></DehazeLevel>
</Dehaze>
XML_DeviceCap
XML message about device capability
<DeviceCap version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<SysCap><!--optional-->
<isSupportDst><!--optional, xs: boolean, whether it supports daylight saving time--></isSupportDst>
<NetworkCap/><!--optional, xs: boolean, network capability-->
<IOCap/><!--optional, IO capability-->
<SerialCap/><!--optional, serial port capability-->
<VideoCap/><!--optional, video capability, see details in the message of XML_VideoCap-->
<AudioCap/><!--optional, audio capability-->
<isSupportHolidy><!--optional, xs:boolean--></isSupportHolidy>
<RebootConfigurationCap>
<Genetec><!--optional, xs:boolean--></Genetec>
775
Intelligent Security API (General) Developer Guide
<ONVIF><!--optional, xs:boolean--></ONVIF>
<RTSP><!--optional, xs:boolean--></RTSP>
<HTTP><!--optional, xs:boolean--></HTTP>
<SADP>
<ISDiscoveryMode><!--optional, xs:boolean--></ISDiscoveryMode>
<PcapMode><!--optional, xs:boolean--></PcapMode>
</SADP>
<IPCAddStatus><!--optional, xs:boolean--></IPCAddStatus>
</RebootConfigurationCap>
<isSupportExternalDevice><!--optional, xs:boolean--></isSupportExternalDevice>
<isSupportChangedUpload>
<!--optional, xs: boolean, whether it supports uploading status changes-->
</isSupportChangedUpload>
<isSupportGettingWorkingStatus>
<!--optional, xs:boolean, whether it supports getting device status-->
</isSupportGettingWorkingStatus>
<isSupportGettingChannelInfoByCondition>
<!--optional, xs:boolean-->
</isSupportGettingChannelInfoByCondition>
<isSupportDiagnosedDataParameter>
<!--optional, xs:boolean-->
</isSupportDiagnosedDataParameter>
<isSupportSimpleDevStatus>
<!--optional, xs: boolean, whether it supports getting device working status-->
</isSupportSimpleDevStatus>
<isSupportFlexible>
<!--optional, xs: boolean, whether it supports getting channel status by condition-->
</isSupportFlexible>
<isSupportPTZChannels>
<!--optional, xs:boolean, whether it supports returning PTZ channel (which is different from the video channel)-->
</isSupportPTZChannels>
<isSupportSubscribeEvent>
<!--optional, xs:boolean, whether it supports alarm or event subscription: "true,false"-->
</isSupportSubscribeEvent>
<isSupportDiagnosedData>
<!--optional, xs:boolean, "true,false", whether it supports diagnosis data-->
</isSupportDiagnosedData>
<isSupportTimeCap>
<!--optional, xs:boolean, whether it supports time capability-->
</isSupportTimeCap>
<isSupportThermalStreamData>
<!--optional, xs:boolean, whether it supports uploading thermal stream data in real-time. If it is supported, the
returned value is "true"; otherwise, this node will not be returned-->
</isSupportThermalStreamData>
<isSupportPostUpdateFirmware>
<!--optional,xs:boolean,"true,false", whether it supports upgrading the firmware-->
</isSupportPostUpdateFirmware>
<isSupportPostConfigData>
<!--optional, xs:boolean,"true,false", whether it supports importing or exporting the configuration file-->
</isSupportPostConfigData>
<isSupportUserLock>
<!--optional, xs:boolean,"true,false", whether it supports locking user-->
776
Intelligent Security API (General) Developer Guide
</isSupportUserLock>
<isSupportModuleLock><!--optional, xs:boolean, whether it supports locking the module: "true,false"--></
isSupportModuleLock>
<isSupportSoundCfg><!--optional, xs:boolean--></isSupportSoundCfg>
<isSupportMetadata>
<!--optional, xs:boolean, if it is supported, return "true", otherwise, this node will not be returned-->
</isSupportMetadata>
<isSupportShutdown><!--optional, xs:boolean, whether it supports shutdown configuration--></
isSupportShutdown>
<supportSmartOverlapChannles opt="1"/><!--optional, xs:boolean, whether it supports stream configuration of
smart events. If this function is supported, this node and the corresponding channel ID will be returned; otherwise,
this node will not be returned-->
<isSupportConsumptionMode><!--optional, xs:boolean, whether it supports switching power consumption
mode:true (yes), this node is not returned (no). Related URI: /ISAPI/System/consumptionMode/capabilities?
format=json--></isSupportConsumptionMode>
<isSupportManualPowerConsumption><!--optional, xs:boolean, whether it supports control the power
consumption mode manually: true (yes), this node is not returned (no)--></isSupportManualPowerConsumption>
</SysCap>
<voicetalkNums><!--optional, xs:integer, the number of two-way audio channels--></voicetalkNums>
<isSupportSnapshot><!--optional, xs:boolean, whether it supports capture: "true, false"--></isSupportSnapshot>
<SecurityCap/><!--optional, security capability-->
<EventCap/><!--optional, event capability-->
<ITCCap><!--optional--></ITCCap>
<ImageCap/><!--optional, image capability-->
<RacmCap/><!--optional, storage capability-->
<PTZCtrlCap>
<isSupportPatrols><!--optional, xs:boolean--></isSupportPatrols>
</PTZCtrlCap>
<SmartCap/><!--optional, intelligent capability-->
<isSupportEhome><!--optional, xs:boolean--></isSupportEhome>
<isSupportStreamingEncrypt><!--optional, xs:boolean--></isSupportStreamingEncrypt>
<TestCap>
<isSupportEmailTest><!--optional, xs:boolean--></isSupportEmailTest>
</TestCap>
<ThermalCap/><!--optional, temperature measurement capability-->
<WLAlarmCap/><!--optional, wireless alarm capability-->
<SecurityCPCapabilities/><!--optional, security control panel capability-->
<isSupportGIS>
<!--optional, xs:boolean, whether it supports GIS capability-->
</isSupportGIS>
<isSupportCompass>
<!--optional, xs:boolean-->
</isSupportCompass>
<isSupportRoadInfoOverlays>
<!--optional, xs:boolean-->
</isSupportRoadInfoOverlays>
<isSupportFaceCaptureStatistics>
<!--optional, xs:boolean-->
</isSupportFaceCaptureStatistics>
<isSupportExternalDevice>
<!--optional, xs:boolean-->
</isSupportExternalDevice>
777
Intelligent Security API (General) Developer Guide
<isSupportElectronicsEnlarge>
<!--optional, xs:boolean, whether it supports digital zoom-->
</isSupportElectronicsEnlarge>
<isSupportRemoveStorage>
<!--optional, xs:boolean-->
</isSupportRemoveStorage>
<isSupportCloud>
<!--optional, xs:boolean-->
</isSupportCloud>
<isSupportRecordHost>
<!--optional, xs:boolean-->
</isSupportRecordHost>
<isSupportEagleEye>
<!--optional, xs:boolean, whether it supports PanoVu series camera-->
</isSupportEagleEye>
<isSupportPanorama>
<!--optional, xs:boolean, whether it supports panorama-->
</isSupportPanorama>
<isSupportFirmwareVersionInfo>
<!--optional, xs:boolean, whether it supports displaying firmware version information-->
</isSupportFirmwareVersionInfo>
<isSupportExternalWirelessServer>
<!--optional, xs: boolean-->
</isSupportExternalWirelessServer>
<isSupportSetupCalibration>
<!--optional, xs:boolean, whether it supports setting calibration-->
</isSupportSetupCalibration>
<isSupportGetmutexFuncErrMsg>
<!--optional, xs:boolean, whether it supports getting mutex information-->
</isSupportGetmutexFuncErrMsg>
<isSupportTokenAuthenticate><!--optional, xs:boolean--></isSupportTokenAuthenticate>
<isSupportStreamDualVCA><!--optional, xs:boolean--></isSupportStreamDualVCA>
<isSupportlaserSpotManual>
<!--optional, boolean, whether it supports laser spot configuration-->
</isSupportlaserSpotManual>
<isSupportRTMP><!--optional, xs:boolean--></isSupportRTMP>
<isSupportTraffic><!--optional, xs:boolean--></isSupportTraffic>
<isSupportLaserSpotAdjustment>
<!--optional, boolean, whether it supports adjusting laser spot size-->
</isSupportLaserSpotAdjustment>
<VideoIntercomCap/><!--optional, video intercom capability-->
<isSupportSafetyCabin>
<!--optional, xs:boolean-->
</isSupportSafetyCabin>
<isSupportPEA>
<!--optional, xs:boolean, whether it supports one-touch security control panel capability-->
</isSupportPEA>
<isSupportCurrentLock>
<!--optional, xs:boolean, whether it supports locking current configuration-->
</isSupportCurrentLock>
<isSupportGuardAgainstTheft>
<!--optional, xs:boolean, whether it supports device anti-theft configuration-->
778
Intelligent Security API (General) Developer Guide
</isSupportGuardAgainstTheft>
<isSupportPicInfoOverlap>
<!--optional, xs:boolean, whether it supports picture information overlay-->
</isSupportPicInfoOverlap>
<isSupportPlay>
<!--optional, xs: boolean, whether it supports live view: "true,false"-->
</isSupportPlay>
<isSupportPlayback>
<!--optional, xs: boolean, whether it supports playback: "true,false"-->
</isSupportPlayback>
<UHFRFIDReader>
<!--optional, supported capability of UHF RFID card reader-->
<isSupportBasicInformation>
<!--optional, xs:boolean, whether it supports basic parameters of UHF RFID card reader-->
</isSupportBasicInformation>
<isSupportHardDiskStorageTest>
<!--optional, xs:boolean, whether it supports hard disk storage test of UHF RFID card reader-->
</isSupportHardDiskStorageTest>
</UHFRFIDReader>
<isSupportIntelligentStructureAnalysis>
<!--optional, xs:boolean, whether it supports structured VCA-->
</isSupportIntelligentStructureAnalysis>
<isSupportIntelligentAnalysisEngines>
<!--optional, xs:boolean, whether it supports VCA engine configuration-->
</isSupportIntelligentAnalysisEngines>
<PreviewDisplayNum>
<!--optional, xs:integer, the number of live view windows, which is the number of simultaneous live view windows
controlled by the device. Limited by the performance of DeepinMind series network video recorder, currently only live
view of a network camera is supported, and playback is not supported-->
</PreviewDisplayNum>
<isSupportBoard opt="true,false">
<!--optional, xs:boolean, whether it supports protocol related to sub-board-->
</isSupportBoard>
<ResourceSwitch>
<workMode opt="4KPreview,educationRecord">
<!--req, xs:string, device working mode:"4KPreview"-4K live view mode, "educationRecord"-education recording
mode-->
</workMode>
</ResourceSwitch>
<isSupportCustomStream><!--optional, xs:boolean--></isSupportCustomStream>
<isSupportTriggerCapCheck>
<!--optional, xs:boolean, whether it supports verifying capability of alarm linkage actions-->
</isSupportTriggerCapCheck>
<isSupportActiveMulticast>
<!--optional, xs: boolean, whether it supports active multicast-->
</isSupportActiveMulticast>
<isSupportChannelEventCap>
<!--optional, xs:boolean, whether it supports getting event capability by channel-->
</isSupportChannelEventCap>
<isSupportPictureServer>
<!-- opt, xs:boolean, whether it supports picture storage server-->
</isSupportPictureServer>
779
Intelligent Security API (General) Developer Guide
<isSupportVideoCompositeAlarm>
<!--optional, xs:boolean, whether it supports video double check alarm-->
</isSupportVideoCompositeAlarm>
<isSupportSensorCalibrating>
<!--optional, xs:boolean, whether it supports double sensor calibration-->
</isSupportSensorCalibrating>
<isSupportChannelEventListCap>
<!--optional, xs:boolean, whether it supports getting event capability of all channels-->
</isSupportChannelEventListCap>
<VCAResourceChannelsCap>
<!--optional, whether it supports independently switching to another VCA resource by channel-->
<ChannelsList>
<channelsID>
<!--req, xs:integer, channel No. supported by the device-->
</channelsID>
</ChannelsList>
</VCAResourceChannelsCap>
<SensorCap/><!--optional, intelligent cabinet capability-->
<isSupportSecurityCP/>
<!--optional, xs:boolean, whether it supports the applications of security control panel: "true, false"-->
</isSupportSecurityCP>
<isSupportClientProxyWEB>
<!--optional, xs:boolean, whether it supports the function that the client proxy passes through the remote web
configuration: "true"-->
</isSupportClientProxyWEB>
<WEBLocation>
<!--optional, string type, web page location: "local"-local device, "remote"-remote location. If this node is not
returned, the web page will be in the local device by default-->
</WEBLocation>
<isSupportTime/>
<!--optional, xs:boolean, "true, false", whether it supports time configuration-->
</isSupportTime>
<isSupportTimeZone/>
<!--optional, xs:boolean, "true, false", whether it supports daylight saving time (DST) configuration-->
</isSupportTimeZone>
<isSupportMixedTargetDetection>
<!--optional, xs:boolean, "true, false", whether it supports multi-target-type detection-->
</isSupportMixedTargetDetection>
<isSupportFaceContrastMode>
<!--optional, xs:boolean, whether it supports face picture comparison mode-->
</isSupportFaceContrastMode>
<isSupportPictureCaptureComparision>
<!--optional, xs:boolean, whether it supports face picture N:1 comparison between face pictures captured by the
camera and imported face pictures-->
</isSupportPictureCaptureComparision>
<isSupportGPSCalibratation>
<!--optional, xs:boolean, whether it supports GPS calibration capability-->
</isSupportGPSCalibratation>
<isSupportChannelFullEventListCap>
<!--optional, xs:boolean, whether it supports getting event list capability of all channels-->
</isSupportChannelFullEventListCap>
<isSupportAUXInfoCap>
780
Intelligent Security API (General) Developer Guide
781
Intelligent Security API (General) Developer Guide
782
Intelligent Security API (General) Developer Guide
</isSupportAccessControlCap>
<isSupportIDCardInfoEvent><!--optional, whether it supports ID card swiping event: "true"-yes. This node will not be
returned if this function is not supported--></isSupportIDCardInfoEvent>
<OpenPlatformCap><!--optional, embedded open platform capability, refer to the message XML_OpenPlatformCap
for details-->
<isSupportInstallationAngleCalibration>
<!--optional, xs:boolean, whether it supports installation angle calibration-->
</isSupportInstallationAngleCalibration>
<isSupportZeroBiasCalibration>
<!--optional, xs:boolean, whether it supports zero bias calibration-->
</isSupportZeroBiasCalibration>
<isSupportDevStatus><!--optional, xs:boolean, whether device supports getting device status--></
isSupportDevStatus>
<isSupportRadar><!--optional, xs:boolean, whether it supports the security radar--></isSupportRadar>
<isSupportRadarChannels><!--optional, xs:boolean, whether it supports getting radar channels--></
isSupportRadarChannels>
<radarIPDForm><!--optional, xs:string, radar form: "single"-single radar, "double_diagonal"-two radars forming an
180° diagonal, "double_vertical"-two radars forming a 90° vertical angle--></radarIPDForm>
<isSupportRadarFieldDetection><!--optional, xs:boolean, whether it supports intrusion detection (radar)--></
isSupportRadarFieldDetection>
<isSupportRadarLineDetection><!--optional, xs:boolean, whether it supports line crossing detection (radar)--></
isSupportRadarLineDetection>
<mixedTargetDetectionWebNoDisplay><!--optional, xs:boolean, whether to enable not displaying multi-target-type
recognition--></mixedTargetDetectionWebNoDisplay>
<SHMCap><!--opt-->
<isSupportHighHDTemperature><!--optional, xs:boolean, whether it supports HDD high temperature detection--></
isSupportHighHDTemperature>
<isSupportLowHDTemperature><!--optional, xs:boolean, whether it supports HDD low temperature detection--></
isSupportLowHDTemperature>
<isSupportHDImpact><!--optional, xs:boolean, whether it supports HDD impact detection--></isSupportHDImpact>
<isSupportHDBadBlock><!--optional, xs:boolean, whether it supports HDD bad sector detection--></
isSupportHDBadBlock>
<isSupportSevereHDFailure><!--optional, xs:boolean, whether it supports HDD severe fault detection--></
isSupportSevereHDFailure>
</SHMCap>
<isSupportBVCorrect><!--optional, xs:boolean, whether it supports configuring camera correction parameters--></
isSupportBVCorrect>
<guideEventSupport opt="linkageCapture">
<!--optional,xs:string, events which support quick setup by instruction, "linkageCapture"-capture by linkage-->
</guideEventSupport>
<isSupportAutoSwitch><!--optional, xs:boolean, whether it supports auto switch--> true</isSupportAutoSwitch>
<isSupportDataPrealarm><!--optional,xs:boolean, whether it supports traffic pre-alarm event--></
isSupportDataPrealarm>
<supportGISEvent opt="AID,TPS,ANPR,mixedTargetDetection">
<!--optional, xs:string, event types that support GIS information access: AID (corresponding SDK event:
COMM_ALARM_AID_V41), TPS (corresponding SDK event: COMM_ALARM_TPS_REAL_TIME), ANPR (corresponding
SDK event: COMM_ITS_PLATE_RESULT), mixedTargetDetection-mixed targets detection-->
</supportGISEvent>
<isSupportIntelligentMode><!--optional, xs:boolean, whether it supports intelligent scene switch (related URI:/ISAPI/
System/IntelligentSceneSwitch?format=json)--></isSupportIntelligentMode>
<isSupportCertificateCaptureEvent><!--optional, xs:boolean, whether it supports certificate capture and comparison
events: true-yes. If this function is not supported, this node will not be returned--></
783
Intelligent Security API (General) Developer Guide
isSupportCertificateCaptureEvent>
<isSupportAlgorithmsInfo><!--optional, xs:boolean, whether it supports getting the algorithm library version
information: true-yes. If this function is not supported, this node will not be returned--></isSupportAlgorithmsInfo>
<isSupportVibrationDetection><!--optional, xs:boolean, whether it supports vibration detection--></
isSupportVibrationDetection>
<isSupportFaceTemperatureMeasurementEvent><!--optional, xs:boolean, whether it supports uploading face
thermography events (eventType: "FaceTemperatureMeasurementEvent")--></
isSupportFaceTemperatureMeasurementEvent>
<isSupportQRCodeEvent><!--optional, xs:boolean, whether it supports uploading QR code events (eventType:
"QRCodeEvent")--></isSupportQRCodeEvent>
<isSupportPersonArmingTrack><!--optional, xs:boolean, whether device supports person arming (related URI: /ISAPI/
Intelligent/channels/<ID>/personArmingTrack/capabilities?format=json)--></isSupportPersonArmingTrack>
<isSupportManualPersonArmingTrack><!--optional, xs:boolean, whether device supports manual person arming
(related URI: /ISAPI/Intelligent/channels/<ID>/manualPersonArmingTrack?format=json)--></
isSupportManualPersonArmingTrack>
<isSupportGPSCalibrationMode><!--optional, xs:boolean, whether device supports GPS calibration (related URI: /
ISAPI/System/GPSCalibration/channels/<ID>/mode?format=json)--></isSupportGPSCalibrationMode>
<isSupportGPSVerification><!--optional, xs:boolean, whether device supports GPS verification (related URI: /ISAPI/
System/GPSVerification/channels/<ID>/points?format=json)--></isSupportGPSVerification>
<isSupportHBDLib><!--optional, xs:boolean, whether device supports human body picture library (related URI: /ISAPI/
Intelligent/HBDLib/capabilities?format=json)--></isSupportHBDLib>
<isSupportFireEscapeDetection><!--optional, xs:boolean, whether the device supports fire engine access detection
(related URI: /ISAPI/Intelligent/channels/<ID>/fireEscapeDetection/capabilities?format=json)--></
isSupportFireEscapeDetection>
<isSupportTakingElevatorDetection><!--optional, xs:boolean, whether the device supports elevator detection
(related URI: /ISAPI/Intelligent/channels/<ID>/takingElevatorDetection/capabilities?format=json)--></
isSupportTakingElevatorDetection>
<isSupportSSDFileSystemUpgrade><!--optional, xs:boolean, whether the device supports SSD file system upgrade
(related URI: /ISAPI/System/SSDFileSystem/upgrade?format=json)--></isSupportSSDFileSystemUpgrade>
<isSupportSSDFileSystemFormat><!--optional, xs:boolean, whether the device supports SSD file system formatting
(related URI: /ISAPI/System/SSDFileSystem/format?format=json)--></isSupportSSDFileSystemFormat>
<isSupportSSDFileSystemCapacity><!--optional, xs:boolean, whether the device supports getting space distribution
information of SSD file system (related URI: /ISAPI/System/SSDFileSystem/capacity?format=json)--></
isSupportSSDFileSystemCapacity>
<isSupportAIOpenPlatform><!--optional, xs:boolean, whether the device supports AI open platform capabilities; if
supports, this node will be returned and its value is true; if not, this node will not be returned--></
isSupportAIOpenPlatform>
<isSupportPictureDownloadError><!--optional, xs:boolean, whether the device supports reporting picture download
failure--></isSupportPictureDownloadError>
<characteristicCode min="1" max="128"><!--optional, xs:string, device attribute code (related URI: /ISAPI/System/
deviceInfo/characteristicCode?format=json)--></characteristicCode>
<isSupportContainerDetection><!--optional, xs:boolean, whether the device supports container detection (if this
node is not returned, refer to the value returned by /ISAPI/Traffic/ContentMgmt/InputProxy/channels/<ID>/ocrScene/
capabilities to find whether the device supports container detection)--></isSupportContainerDetection>
<isSupportLensParamFile><!--optional, xs:boolean, whether the device supports exporting and importing the lens
parameters file--></isSupportLensParamFile>
</DeviceCap>
784
Intelligent Security API (General) Developer Guide
XML_DeviceInfo
XML message about device information
<?xml version="1.0" encoding="utf-8"?>
<DeviceInfo version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<deviceName><!--required, xs:string--></deviceName>
<deviceID><!--required, read-only, xs:string, uuid--></deviceID>
<deviceDescription>
<!--optional, xs:string, description about the device defined in RFC1213. For network camera, this node is set to
"IPCamera"; for network speed dome, this node is set to "IPDome"; for DVR or DVS, this node is set to "DVR" or
"DVS"-->
</deviceDescription>
<deviceLocation><!--optional, xs:string, actual location of the device--></deviceLocation>
<deviceStatus><!--optional, read-only, xs:string, device status: "normal", "abnormal"-->
<DetailAbnormalStatus>
<!--dependent, error status details, it is valid only when deviceStatus is "abnormal"-->
<hardDiskFull>
<!--optional, read-only, xs: boolean, whether the error of "HDD full" occurred: "true"-yes,"false"-no-->
</hardDiskFull>
<hardDiskError>
<!--optional, read-only, xs:boolean, whether the error of "HDD error" occurred: "true"-yes,"false"-no-->
</hardDiskError>
<ethernetBroken>
<!--optional, read-only, xs: boolean, whether the error of "network disconnected" occurred: "true"-yes,"false"-no--
>
</ethernetBroken>
<ipaddrConflict>
<!--optional, read-only, xs: boolean, whether the error of "IP address conflicted" occurred: "true"-yes,"false"-no-->
</ipaddrConflict>
<illegalAccess>
<!--optional, read-only, xs: boolean, whether the error of "illegal login" occurred: "true"-yes,"false"-no-->
</illegalAccess>
<recordError>
<!--optional, read-only, xs: boolean, whether the error of "recording exception" occurred: "true"-yes,"false"-no-->
</recordError>
<raidLogicDiskError>
<!--optional, read-only, xs: boolean, whether the error of "RAID exception" occurred: "true"-yes,"false"-no-->
</raidLogicDiskError>
<spareWorkDeviceError>
<!--optional, read-only, xs: boolean, whether the error of "working device exception" occurred: "true"-yes,"false"-
no-->
</spareWorkDeviceError>
</DetailAbnormalStatus>
<systemContact><!--optional, xs:string, contact information of the device--></systemContact>
<model><!--required, read-only, xs:string--></model>
<serialNumber><!--required, read-only, xs:string--></serialNumber>
<macAddress><!--required, read-only, xs:string--></macAddress>
<firmwareVersion><!--required, read-only, xs:string--></firmwareVersion>
<firmwareReleasedDate><!--optional, read-only, xs:string--></firmwareReleasedDate>
<bootVersion><!--optional, read-only, xs:string--></bootVersion>
785
Intelligent Security API (General) Developer Guide
<customizedInfo><!--optional, xs:string, order No. of the customization project. For baseline devices, this node is
empty; for custom devices, the order No. of the customization project will be returned by this node--></
customizedInfo>
<localZoneNum><!--optional, xs:integer, number of local zones--></localZoneNum>
<alarmOutNum><!--optional, xs:integer, number of alarm outputs--></alarmOutNum>
<distanceResolution><!--optional, xs:float, resolution of distance, unit: meter--></distanceResolution>
<angleResolution><!--optional, xs:float, resolution of angle, unit: degree--></angleResolution>
<speedResolution><!--optional, xs:float, resolution of speed, unit: m/s--></speedResolution>
<detectDistance><!--optional, xs:float, detection distance, unit: meter--></detectDistance>
<languageType><!--optional, xs:string, language type: chinese, english, spanish, portuguese, italian, french, russian,
786
Intelligent Security API (General) Developer Guide
XML_DeviceLanguage
DeviceLanguage message in XML format
<DeviceLanguage version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<language>
<!--required, xs:string, language supported by the device: "SimChinese"-simplified Chinese, "TraChinese"-traditional
Chinese, "English", "Russian", "Bulgarian", "Hungarian", "Greek", "German", "Italian", "Czech", "Slovakia", "French",
"Polish", "Dutch", "Portuguese", "Spanish", "Romanian", "Turkish", "Japanese", "Danish", "Swedish", "Norwegian",
"Finnish", "Korean", "Thai", "Estonia", "Vietnamese", "Hebrew", "Latvian", "Arabic", "Sovenian"-Slovenian, "Croatian",
787
Intelligent Security API (General) Developer Guide
XML_DeviceStatus
DeviceStatus message in XML format
<DeviceStatus version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<currentDeviceTime><!--opt, xs: datetime--></currentDeviceTime>
<deviceUpTime><!--opt, xs: integer, seconds--></deviceUpTime>
<TemperatureList><!--opt-->
<Temperature>
<tempSensorDescription><!--req, xs: string--></tempSensorDescription>
<temperature><!--req, xs: float--></temperature>
</Temperature>
</TemperatureList>
<FanList><!--opt-->
<Fan>
<fanDescription><!--req, xs: string--></fanDescription>
<speed><!--req, xs: integer--></speed>
</Fan>
</FanList>
<PressureList><!--opt-->
<Pressure>
<pressureSensorDescription><!--req, xs: string--></pressureSensorDescription>
<pressure><!--req, xs: integer--></pressure>
</Pressure>
</PressureList>
<TamperList><!--opt-->
<Tamper><tamperSensorDescription><!--req, xs: string--></tamperSensorDescription>
<tamper><!--req, xs: boolean--> </tamper>
</Tamper>
</TamperList>
<CPUList><!--opt-->
<CPU>
<cpuDescription><!--req, xs: string--></cpuDescription>
<cpuUtilization><!--req, xs: integer, percentage, which is between 0 and 100--></cpuUtilization>
</CPU>
</CPUList>
<MemoryList><!--opt-->
<Memory>
<memoryDescription><!--req, xs: string--></memoryDescription>
<memoryUsage><!--req, xs: float, unit: MB--></memoryUsage>
<memoryAvailable><!--req, xs: float, unit: MB--></memoryAvailable>
</Memory>
</MemoryList>
<openFileHandles><!--opt, xs: integer--></openFileHandles>
<CameraList><!--opt-->
<Camera>
<zoomReverseTimes><!--req, xs: integer--></zoomReverseTimes>
788
Intelligent Security API (General) Developer Guide
789
Intelligent Security API (General) Developer Guide
<id><!--opt, xs:integer--></id>
<protocolType><!--opt, xs:string, "SDK,ISAPI", arming protocol type--></protocolType>
<ipAddress><!--dep, xs:string, IP address of platform, server, NVR/CVR, and so on--></ipAddress>
</AlertStreamServer>
</AlertStreamServerList>
</DeviceStatus>
XML_DiagnosedDataParameter
XML message about parameters of exporting diagnose information
<?xml version="1.0" encoding="utf-8"?>
<DiagnosedDataParameter version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<enabled>
<!--required, xs:boolean, whether to enable exporting diagnose information: true-yes, false-no-->
</enabled>
<HardwareInfo>
<!--optional, xs:boolean, opt="true,false", whether to enable exporting hardware information, such as running
information of motor, fan, heater, compressor, supplement light, wiper, and so on-->
</HardwareInfo>
<SoftwareInfo>
<!--optional, xs:boolean, opt="true,false", whether to enable exporting software information, such as software
status, running log, system information-->
</SoftwareInfo>
<logInfo>
<!--optional, xs:boolean, opt="true,false", whether to enable exporting startup log--></logInfo>
</DiagnosedDataParameter>
XML_Dial
Dial message in XML format
<Dial version="1.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<enabled><!--req, xs:boolean--></enabled>
<DialMethod><!--req, xs:string, "auto, manual"--></DialMethod>
<SwitchMethod>
<!--req, xs:string, "auto,4GFirst,3GFirst, manualto2G, manualto3G, manualto4G"-->
</SwitchMethod>
<OfflineTime><!--opt, xs:integer--></OfflineTime>
<UIMCardNum><!--opt, xs:string--></UIMCardNum>
<DialNum><!--opt, xs:string--></DialNum>
<Username><!--opt, xs:string--></Username>
<Password><!--opt, xs:string--></Password>
<APNname><!--opt, xs:string--></APNname>
<SIMNum><!--opt, xs:string, SIM card No. (mobile phone number)--></SIMNum>
<MTU><!--opt, xs: integer--></MTU>
<VerifyProto><!--req, xs:string, "auto, CHAP, PAP"--></VerifyProto>
<DefaultParam/><!--opt, default parameters, see details in the message of XML_DefaultParam-->
<netAPN><!--opt, xs:string, APN configuration of the private network--></netAPN>
790
Intelligent Security API (General) Developer Guide
See Also
XML_DefaultParam
XML_Dialstatus
Dialstatus message in XML format
<Dialstatus version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<RealtimeMode>
<!-- ro, xs:string, real time mode,
"CDMA1x,EVDO,HYBRID,GSM,GPRS,EDGE,WCDMA,HSDPA,HSUPA,HSPA,TDSCDMA,TD-LTE,FDD-LTE,LTE,UNKNOWN"-->
</RealtimeMode>
<UIMInfo>
<!-- ro, xs:string, UIM cord status: "UNKNOWN"-unknown, "VALID"-valid, "NOVALID"-invalid, "ROAM"-roam,
"NOEXIST"-not exist,"WRONGPINCODE"-PIN code error,"NONETWORKSERVICE"-connectionless network service,
"ONLYSUPPORTEMERGENCYCALL"-the current network only supports emergency calls, "PINCODELOCKED"—PIN code
locked-->
</UIMInfo>
<SignalStrength><!-- ro, xs: integer, signal strength--></SignalStrength>
<Dialstat><!-- ro, xs:string ,dial-up status: "disconnect"-disconnected, "dialing"-dialing, "success"-dialed, "shmError"-
dialing exception, "certificationFailure"-authentication failed, "invalidDialingCharacters"-invalid dialing characters,
"networkTimeout"-network timeout, "wirelessModemError"-wireless module error,"SIMError"-SIM card error,
"networkError"-network error, "unknown"-unknown error--></Dialstat>
<IpAddress> <!-- req ->
<ipAddress><!-- dep, xs:string--></ipAddress>
<ipv6Address><!-- dep, xs:string --></ipv6Address>
</IpAddress>
<SubnetMask><!-- req -->
<ipAddress><!-- dep, xs:string--></ipAddress>
<ipv6Address><!-- dep, xs:string--></ipv6Address>
</SubnetMask>
<Gateway><!-- req -->
<ipAddress><!-- dep, xs:string--></ipAddress>
<ipv6Address><!-- dep, xs:string--></ipv6Address>
</Gateway>
<DNSAddress> <!-- req -->
791
Intelligent Security API (General) Developer Guide
XML_Discovery
Discovery message in XML format
<Discovery version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<UPnP><!--req-->
<enabled><!--req, xs:boolean, whether to enable UPnP: "true, false"--></enalbed>
</UPnP>
<ZeroConf><!--opt, channel-zero configuration-->
<enabled><!--req, xs:boolean, "true, false"--></enabled>
</ZeroConf>
</Discovery>
XML_DiscoveryMode
XML message about terminal SADP configuration
<DiscoveryMode xmlns="http://www.isapi.org/ver20/XMLSchema" version="2.0" >
<ONVIFDiscoveryMode>
<!--optional, xs:string, "discoverable,nonDiscoverable-->
</ONVIFDiscoveryMode>
<ISDiscoveryMode>
<!-- optional, xs:string, "discoverable,nonDiscoverable-->
</ISDiscoveryMode>
<PcapMode>
<!--optional, xs:string, "discoverable,nonDiscoverable-->
</PcapMode>
<SADP>
<!--optional, xs:string, "discoverable,nonDiscoverable-->
</SADP>
</DiscoveryMode>
XML_diskQuota
diskQuota message in XML format
792
Intelligent Security API (General) Developer Guide
XML_diskQuotaList
XML message about parameters of all HDD quotas
<diskQuotaList version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<diskQuota><!--optional, see details in the message XML_diskQuota--></diskQuota>
</diskQuotaList>
See Also
XML_diskQuota
XML_DoubleLensParkingCap
DoubleLensParkingCap capability message in XML format
<DoubleLensParkingCap version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<cameraType opt = "masterCamera, slaveCamera">
<!--req, xs:string, dual-lens camera type: "masterCamera"-fixed dual-lens camera, "slaveCamera"-PTZ dual-lens
camera-->
</cameraType>
</DoubleLensParkingCap>
XML_DownloadAbility
DownloadAbility message in XML format
<DownloadAbility version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<isSupportDownloadbyTime>
<!--opt, xs:boolean, whether it supports download by time-->
793
Intelligent Security API (General) Developer Guide
</isSupportDownloadbyTime>
<isSupportDownloadbyFileName>
<!--opt, xs:boolean, whether it supports download by file name -->
</isSupportDownloadbyFileName>
<isSupportDownloadToUSB>
<!--opt, xs:boolean, whether it supports exporting files to devices via USB-->
</isSupportDownloadToUSB>
</DownloadAbility>
XML_downloadRequest
XML message about downloading request
<downloadRequest version="1.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<playbackURI>
<!--required, xs:string, playback URL, returned by the search service. It contains the information of file name and
size, e.g., <playbackURI>rtsp://IpAddress/Streaming/tracks/101?starttime=2016-07-18
00:00:00&endtime=2016-07-18 00:25:04Z&name=00000000721000000&size=1065437356</playbackURI>-->
</playbackURI>
<downloadCourseFile>
<!--optional, xs:boolean, whether to download the course files-->
</downloadCourseFile>
</downloadRequest>
Remarks
When download file by name, the playbackURI inputs the file start time, end time, file name, and
size; when download file by time, the playbackURI inputs the start time and end time.
XML_DynamicCap
DynamicCap capability message in XML format.
<DynamicCap version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<ResolutionAvailableDscriptorList><!--req-->
<ResolutionAvailableDscriptor><!--req-->
<videoResolutionWidth>
<!--required, xs:integer-->
</videoResolutionWidth>
<videoResolutionHeight>
<!--required, xs:integer-->
</videoResolutionHeight>
<supportedFrameRate>
<!--required, xs:string, frame rate supported by this resolution, and its value is multiplied by 100 to be returned,
e.g., if the returned values are "2000, 2200, 2500", the actual frame rates are "20, 22, 25"-->
</supportedFrameRate>
<supportedBitRate min="" max=""/>
<!--optional, xs:integer,in kbps-->
</ResolutionAvailableDscriptor>
794
Intelligent Security API (General) Developer Guide
</ResolutionAvailableDscriptorList>
<CodecParamDscriptorList>
<CodecParamDscriptor>
<videoCodecType><!-- required, xs: string, "MPEG4,MJPEG,3GP,H.264,HK.264"--></videoCodecType>
<isSupportProfile><!--dependent, xs: boolean--></isSupportProfile>
<CBRCap><!--constant bit rate-->
<isSupportSmooth><!--dependent, xs: boolean--></isSupportSmooth>
</CBRCap>
<VBRCap><!--variable bit rate-->
<isSupportSmooth><!--dependent, xs: boolean--></isSupportSmooth>
</VBRCap>
<isSupportSVC><!--optional, xs: boolean--></isSupportSVC>
<isSupportCABAC><!--optional, xs: boolean--></isSupportCABAC>
<SmartCodecCap><--optional-->
<readOnlyParams opt="keyFrameInterval,Profile,SVC,fixedQuality">
<!--optional, ro, xs: string, read-only options: I frame interval, encoding complexity, SVC, picture quality-->
</readOnlyParams>
<BitrateType>
<Constant><!--optional, constant bit rate-->
<support opt="videoBitrate">
<!--optional, xs: string, "averageVideoBitrate"-average bit rate, "videoBitrate"-upper-limit of bit rate-->
</support>
<hiddenAbility opt="averageVideoBitrate">
<!--optional, xs:string, "averageVideoBitrate"-average bit rate, "videoBitrate"-upper-limit of bit rate-->
</hiddenAbility>
</Constant>
<Variable><!--optional, variable bit rate-->
<support opt="averageVideoBitrate">
<!--optional, xs: string, "averageVideoBitrate"-average bit rate, "videoBitrate"-upper-limit of bit rate-->
</support>
<readOnlyAbility opt="videoBitrate">
<!--optional, xs: string, "averageVideoBitrate"-average bit rate, "videoBitrate"-upper-limit of bit rate-->
</readOnlyAbility>
</Variable>
</BitrateType>
<vbrAverageDefault><!--dependent, xs: integer, recommended average bit rate, unit: Kbps--></
vbrAverageDefault>
<smart264EnabledPrompt opt="prompt1,prompt2,prompt3, prompt6, prompt25">
<!--optional, wo, xs: string, audible prompt for Smart264 enabled-->
</smart264EnabledPrompt>
<smart265EnabledPrompt opt="prompt1,prompt2, prompt3, prompt25">
<!--optional, wo, xs: string, audible prompt for Smart265 enabled-->
</smart265EnabledPrompt>
</SmartCodecCap>
</CodecParamDscriptor>
</CodecParamDscriptorList>
<AudioDscriptorList>
<AudioDscriptor>
<audioCompressionType>
<!--required, xs: string, audio encoding type: "G.711alaw,G.711ulaw,G.726,G.729,G.729a,G.
729b,PCM,MP3,AC3,AAC,ADPCM,MP2L2"-->
</audioCompressionType>
795
Intelligent Security API (General) Developer Guide
<audioItemList>
<audioItem>
<audioSamplingRate default=""><!--optional, xs: string--></audioSamplingRate>
<audioBitRate opt=""> <!--dependent, xs: integer--></audioBitRate>
<noiseReduce opt="true,false"><!--required, xs: string--></noiseReduce>
<audioItem>
</audioItemList>
</AudioDscriptor>
</AudioDscriptorList>
</DynamicCap>
XML_Ehome
Ehome message in XML format
<Ehome version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<enabled><!--opt, xs: boolean--></enabled>
<addressingFormatType>
<!--req, xs: string, address format type: "ipaddress"-IP address, "hostname"-host name-->
</addressingFormatType>
<hostName><!--dep, xs: string, host name, this node is valid only when <addressingFormatType> is "hostname"--></
hostName>
<ipAddress><!--dep, xs: string, IP address, this node is valid only when <addressingFormatType> is "ipaddress"--></
ipAddress>
<ipv6Address><!--dep, xs: string, IPv6 address, this node is valid only when <addressingFormatType> is "ipaddress"--
></ipv6Address>
<portNo><!--opt, xs: integer, port No.--></portNo>
<deviceID><!--req, xs: string, device ID--></deviceID>
<registerStatus><!--ro, xs: boolean, registration status--></registerStatus>
<key><!--opt, xs: string, encryption key of ISUP version 5.0, which is required for ISUP version 50--></key>
<version><!--ro, xs: string, version No.--></version>
<netWork><!--opt, xs:integer, 0-make no sense, 1-automatic, 2-wired network preferred, 3-wired network, 4-3G/4G/
GPRS--></netWork>
<voiceDeviceType><!--opt, xs:string, two-way audio device type: "bluetooth"-bluetooth device, "client", "local"--></
voiceDeviceType>
<protocolVersion><!--opt, xs:string, protocol version: "v2.0,v2.6,v4.0,v5.0". If this node is set to "v2.0", the device can
only use protocol v2.0 to register; if this node is set to "v2.6", "v4.0" or "v5.0", the device will firstly use this protocol
to register. If this node is not returned, the protocol version will be determined by <version>--></protocolVersion>
</Ehome>
XML_EPTZ
EPTZ message in XML format
<EPTZ version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<enabled><!--req, xs:string, whether to enable e-PTZ: "true"-yes, "false"-no--></enabled>
<streamType><!--opt, xs:integer, stream type: 1-main stream, 2-sub-stream, 3-third stream, 4-fourth stream--></
796
Intelligent Security API (General) Developer Guide
streamType>
</EPTZ>
XML_EventCap
EventCap capability message in XML format
<EventCap version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<isSupportHDFull><!--optional, xs:boolean, "true"-support, "false"-not support--></isSupportHDFull>
<isSupportHDError><!--optional, xs:boolean, "true"-support, "false"-not support--></isSupportHDError>
<isSupportNicBroken><!--optional, xs:boolean, "true"-support, "false"-not support--></isSupportNicBroken>
<isSupportIpConflict><!--optional, xs:boolean, "true"-support, "false"-not support--></isSupportIpConflict>
<isSupportIllAccess><!--optional, xs:boolean, "true"-support, "false"-not support--></isSupportIllAccess>
<isSupportViException><!--optional, xs:boolean, "true"-support, "false"-not support--></isSupportViException>
<isSupportViMismatch><!--optional, xs:boolean, "true"-support, "false"-not support--></isSupportViMismatch>
<isSupportRecordException><!--optional, xs:boolean, "true"-support, "false"-not support--></
isSupportRecordException>
<isSupportTriggerFocus><!--optional, xs:boolean, "true"-support, "false"-not support--></isSupportTriggerFocus>
<isSupportMotionDetection><!--optional, xs:boolean, "true"-support, "false"-not support--></
isSupportMotionDetection>
<isSupportVideoLoss><!--optional, xs:boolean, "true"-support, "false"-not support--></isSupportVideoLoss>
<isSupportTamperDetection><!--optional, xs:boolean, "true"-support, "false"-not support--></
isSupportTamperDetection>
<isSupportStudentsStoodUp><!--optional, xs:boolean, "true"-support, "false"-not support--></
isSupportStudentsStoodUp>
<isSupportFramesPeopleCounting><!--optional, xs:boolean, "true"-support, "false"-not support--></
isSupportFramesPeopleCounting>
<isSupportRaidException><!--optional, xs:boolean, "true"-support, "false"-not support--></isSupportRaidException>
<isSupportSpareException><!--optional, xs:boolean, "true"-support, "false"-not support--></
isSupportSpareException>
<isSupportPoePowerException><!--optional, xs:boolean, "true"-support, "false"-not support--></
isSupportPoePowerException>
<isSupportRegionEntrance><!--optional, xs:boolean, "true"-support, "false"-not support--></
isSupportRegionEntrance>
<isSupportRegionExiting><!--optional, xs:boolean, "true"-support, "false"-not support--></isSupportRegionExiting>
<isSupportLoitering><!--optional, xs:boolean, "true"-support, "false"-not support--></isSupportLoitering>
<isSupportGroup><!--optional, xs:boolean, "true"-support, "false"-not support--></isSupportGroup>
<isSupportRapidMove><!--optional, xs:boolean, "true"-support, "false"-not support--></isSupportRapidMove>
<isSupportFireDetection><!--optional, xs:boolean, "true"-support, "false"-not support--></isSupportFireDetection>
<isSupportillegalParking><!--optional, xs:boolean, whether it supports illegal parking detection: "true"-support,
"false"-not support--></isSupportillegalParking>
<isSupportUnattendedBaggage><!--optional, xs:boolean --></isSupportUnattendedBaggage>
<isSupportAttendedBaggage><!--optional, xs:boolean, "true"-support, "false"-not support--></
isSupportAttendedBaggage>
<isSupportHumanAttribute><!--optional, xs:boolean, "true"-support, "false"-not support--></
isSupportHumanAttribute>
<isSupportFaceContrast><!--optional, xs:boolean, "true"-support, "false"-not support--></isSupportFaceContrast>
<isSupportFaceLib><!--optional, xs:boolean, "true"-support, "false"-not support--></isSupportFaceLib>
<isSupportWhiteListFaceContrast><!--opt, xs:boolean, "true"-support, "false"-not support--></
isSupportWhiteListFaceContrast>
<isSupportBlackListFaceContrast><!--opt, xs:boolean, whether it supports blocklist face comparison: "true"-support,
797
Intelligent Security API (General) Developer Guide
"false"-not support--></isSupportBlackListFaceContrast>
<isSupportHumanRecognition>><!--optional, xs:boolean, "true"-support, "false"-not support--></
isSupportHumanRecognition>
<isSupportFaceSnap><!--optional, xs:boolean, "true"-support, "false"-not support--></isSupportFaceSnap>
<isSupportPersonDensityDetection><!--optional, xs:boolean, "true"-support, "false"-not support--></
isSupportPersonDensityDetection>
<isSupportMixedTargetDetection><!--optional, xs:boolean, whether it supports multi-target-type detection alarm:
"true"-support, "false"-not support--></isSupportMixedTargetDetection>
<isSupportPedestrian><!--optional, xs:boolean, whether it supports pedestrian detection: "true"-support, "false"-not
support--></isSupportPedestrian>
<isSupportTrafficAccident><!--optional, xs:boolean, whether it supports traffic accident detection: "true"-support,
"false"-not support--></isSupportTrafficAccident>
<isSupportConstruction><!--optional, xs:boolean, whether it supports construction detection: "true"-support, "false"-
not support--></isSupportConstruction>
<isSupportRoadBlock><!--optional, xs:boolean, whether it supports roadblock detection: "true"-support, "false"-not
support--></isSupportRoadBlock>
<isSupportAbandonedObject><!--optional, xs:boolean, whether it supports thrown object detection: "true"-support,
"false"-not support--></isSupportAbandonedObject>
<isSupportParallelParking><!--optional, xs:boolean, whether it supports parallel parking detection: "true"-support,
"false"-not support--></isSupportParallelParking>
<isSupportParkingState><!--optional, xs:boolean, whether it supports parking space status detection: "true"-support,
"false"-not support, currently this node is not supported--></isSupportParkingState>
<isSupportCongestion><!--optional, xs:boolean, whether it supports congestion detection: "true"-support, "false"-
not support--></isSupportCongestion>
<isSupportVehicleStatistics><!--optional, xs:boolean, whether it supports data collection: "true"-support, "false"-not
support--></isSupportVehicleStatistics>
<isSupportWrongDirection><!--optional, xs:boolean, whether it supports wrong-way driving detection: "true"-
support, "false"-not support--></isSupportWrongDirection>
<isSupportTrunRound><!--optional, xs:boolean, whether it supports U-turning detection: "true"-support, "false"-not
support--></isSupportTrunRound>
<isSupportCrossLane><!--optional, xs:boolean, whether it supports driving on the lane line detection: "true"-support,
"false"-not support--></isSupportCrossLane>
<isSupportLaneChange><!--optional, xs:boolean, whether it supports illegal lane change detection: "true"-support,
"false"-not support--></isSupportLaneChange>
<isSupportVehicleExist><!--optional, xs:boolean, whether it supports motor vehicle on non-motor vehicle lane
detection: "true"-support, "false"-not support--></isSupportVehicleExist>
<isSupporFogDetection><!--optional, xs:boolean, whether it supports fog detection: "true"-support, "false"-not
support--></isSupporFogDetection>
<isSupportIntersectionAnalysis><!--optional, xs: boolean, whether it supports configuring intersection analysis alarm:
"true"-support, "false"-not support--></isSupportIntersectionAnalysis>
<isSupportVoltageInstable><!--optional,xs:boolean, whether it supports supply voltage exception alarm: "true"-
support, "false"-not support--></isSupportVoltageInstable>
<isSupportSafetyHelmetDetection><!--optional, xs:boolean, whether it supports hard hat detection: "true"-support,
"false"-not support--></isSupportSafetyHelmetDetection>
<isSupportCertificateRevocation><!--optional, xs:boolean, whether it supports certificate expiry alarm--></
isSupportCertificateRevocation>
<isSupportNoMaskDetection><!--optional, xs:boolean, whether device supports no wearing mask detection--></
isSupportNoMaskDetection>
<isSupportTMPA><!--optional, xs:boolean, whether device supports temperature measurement pre-alarm--></
isSupportTMPA>
<RuleScheduleCap><!--optional, capability of setting arming schedule by rule-->
<isSupportCityManagement>
798
Intelligent Security API (General) Developer Guide
<!--optional, xs:boolean, whether the device supports setting arming schedule by rule for intelligent city
management; if supports, the value is true, otherwise, this node will not be returned-->
</isSupportCityManagement>
</RuleScheduleCap>
<isSupportThermalCalibrationFileException><!--optional, xs:boolean, whether the device supports alarm of
thermography calibration file exception--></isSupportThermalCalibrationFileException>
<isSupportTemperatureIntervalMeasurement><!--optional, xs:boolean, whether the device supports interval
temperature measurement--></isSupportTemperatureIntervalMeasurement>
</EventCap>
XML_EventNotificationAlert_AlarmEventInfo
EventNotificationAlert message with alarm/event information in XML format.
<EventNotificationAlert version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<ipAddress><!--dep, xs:string, device IPv4 address--></ipAddress>
<ipv6Address><!--dep, xs:string, device IPv6 address--></ipv6Address>
<portNo><!--opt, xs:integer, device port number--></portNo>
<protocol><!--opt, xs:string, protocol type for uploading alarm/event information, "HTTP,HTTPS"--></protocol>
<macAddress><!--opt, xs:string, MAC address--></macAddress>
<channelID><!--dep, xs:string, device channel No., starts from 1--></channelID>
<dateTime><!--req, alarm/event triggered or occurred time, format: 2017-07-19T10:06:41+08:00--></dateTime>
<activePostCount><!--req, xs:integer, alarm/event frequency, starts from 1--></activePostCount>
<eventType><!--req, xs:string, alarm/event type, "peopleCounting, ANPR,..."--></eventType>
<eventState>
<!--req, xs:string, durative alarm/event status: "active"-valid, "inactive"-invalid, e.g., when a moving target is
detected,
the alarm/event information will be uploaded continuously unit the status is set to "inactive"-->
</eventState>
<eventDescription><!--req, xs:string, alarm/event description--></eventDescription>
<...><!--opt, for different alarm/event types, the nodes are different, see the message examples in different
applications--></...>
</EventNotificationAlert>
XML_EventNotificationAlert_AlarmInputAlarmMsg
XML Message about Alarm Input Alarm Details
<?xml version="1.0" encoding="utf-8"?>
<EventNotificationAlert version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<ipAddress><!--dependent, xs:string, IPv4 address--></ipAddress>
<ipv6Address><!--dependent, xs:string, IPv6 address--></ipv6Address>
<portNo><!--optional, xs:integer, device's communication port No.--></portNo>
<protocolType><!--optional, xs:string, transport protocol type: HTTP, HTTPS, EHome--></protocolType>
<macAddress><!--optional, xs:string, MAC address--></macAddress>
<dynChannelID><!--optional, xs:string, digital channel No.--></dynChannelID>
<channelID><!--dependent, xs:string, channel No.--></channelID>
<dateTime>
<!--required, xs:datetime, event occurred time, which is in IOS 8601 format, e.g., 2017-04-22T15:39:01+08:00-->
799
Intelligent Security API (General) Developer Guide
</dateTime>
<activePostCount><!--required, xs:integer, event occurred times--></activePostCount>
<eventType><!--required, xs:string, event types, here it should be set to "IO"--></eventType>
<eventState><!--required, xs:string, event status (for persistent event): active, inactive--></eventState>
<eventDescription><!--required, xs:string, event description--></eventDescription>
<inputIOPortID><!--optional, xs:integer, local alarm input ID--></inputIOPortID>
<dynInputIOPortID><!--optional, xs:integer, dynamic alarm input ID--></dynInputIOPortID>
<channelName><!--optional, xs:string, channel name--></channelName>
<deviceID><!--optional, xs:string, device ID--></deviceID>
<Extensions>
<serialNumber><!--required, xs:string, serial No.--></serialNumber>
<eventPush><!--required, xs:string, event or alarm notification details--></eventPush>
</Extensions>
</EventNotificationAlert>
XML_EventNotificationAlert_AudioExceptionAlarmMsg
XML message about audio exception alarm details
<?xml version="1.0" encoding="utf-8"?>
<EventNotificationAlert version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<ipAddress><!--dependent, xs:string, IPv4 address--></ipAddress>
<ipv6Address><!--dependent, xs:string, IPv6 address--></ipv6Address>
<portNo><!--optional, xs:integer, device's communication port No.--></portNo>
<protocolType><!--optional, xs:string, transport protocol type: HTTP, HTTPS, EHome--></protocolType>
<macAddress><!--optional, xs:string, MAC address--></macAddress>
<dynChannelID><!--optional, xs:string, digital channel No.--></dynChannelID>
<channelID><!--dependent, xs:string, channel No.--></channelID>
<releatedChannelList><!--optional, xs:string, list of alarm related channels, which are of the same camera with
channelID; this parameter is used for live view or playback on the platform; multiple channel numbers are separated
by commas--></releatedChannelList>
<dateTime>
<!--required, xs:datetime, event occurred time, which is in IOS 8601 format, e.g., 2017-04-22T15:39:01+08:00-->
</dateTime>
<activePostCount><!--required, xs:integer, event occurred times--></activePostCount>
<eventType><!--required, xs:string, event types, here it should be set to "audioexception"--></eventType>
<eventState><!--required, xs:string, event status (for persistent event): active, inactive--></eventState>
<eventDescription><!--required, xs:string, event description--></eventDescription>
<channelName><!--optional, xs:string, channel name--></channelName>
<deviceID><!--optional, xs:string, device ID--></deviceID>
<Extensions>
<serialNumber><!--required, xs:string, serial No.--></serialNumber>
<eventPush><!--required, xs:string, event or alarm notification details--></eventPush>
</Extensions>
</EventNotificationAlert>
800
Intelligent Security API (General) Developer Guide
XML_EventNotificationAlert_DefocusDetectionAlarmMsg
XML message about alarm details of defocus detection
<?xml version="1.0" encoding="utf-8"?>
<EventNotificationAlert version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<ipAddress><!--dependent, xs:string, IPv4 address--></ipAddress>
<ipv6Address><!--dependent, xs:string, IPv6 address--></ipv6Address>
<portNo><!--optional, xs:integer, device's communication port No.--></portNo>
<protocolType><!--optional, xs:string, transport protocol type: HTTP, HTTPS, EHome--></protocolType>
<macAddress><!--optional, xs:string, MAC address--></macAddress>
<dynChannelID><!--optional, xs:string, digital channel No.--></dynChannelID>
<channelID><!--dependent, xs:string, channel No.--></channelID>
<releatedChannelList>
<!--optional, xs:string, list of alarm related channels, which are of the same camera with channelID; this parameter
is used for live view or playback on the platform; multiple channel numbers are separated by commas-->
</releatedChannelList>
<dateTime>
<!--required, xs:datetime, event occurred time, which is in IOS 8601 format, e.g., 2017-04-22T15:39:01+08:00-->
</dateTime>
<activePostCount><!--required, xs:integer, event occurred times--></activePostCount>
<eventType><!--required, xs:string, event types, here it should be set to "defocus"--></eventType>
<eventState><!--required, xs:string, event status (for persistent event): active, inactive--></eventState>
<eventDescription><!--required, xs:string, event description--></eventDescription>
<channelName><!--optional, xs:string, channel name--></channelName>
<deviceID><!--optional, xs:string, device ID--></deviceID>
<Extensions>
<serialNumber><!--required, xs:string, serial No.--></serialNumber>
<eventPush><!--required, xs:string, event or event notification details--></eventPush>
</Extensions>
</EventNotificationAlert>
XML_EventNotificationAlert_HDDErrorAlarmMsg
XML message about HDD error alarm details
<?xml version="1.0" encoding="utf-8"?>
<EventNotificationAlert version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<ipAddress><!--dependent, xs:string, IPv4 address--></ipAddress>
<ipv6Address><!--dependent, xs:string, IPv6 address--></ipv6Address>
<portNo><!--optional, xs:integer, device's communication port No.--></portNo>
<protocolType><!--optional, xs:string, transport protocol type: HTTP, HTTPS, EHome--></protocolType>
<macAddress><!--optional, xs:string, MAC address--></macAddress>
<dynChannelID><!--optional, xs:string, digital channel No.--></dynChannelID>
<channelID><!--dependent, xs:string, channel No.--></channelID>
<dateTime>
<!--requireduired, xs:datetime, event occurred time, which is in IOS 8601 format, e.g., 2017-04-22T15:39:01+08:00--
>
</dateTime>
801
Intelligent Security API (General) Developer Guide
XML_EventNotificationAlert_HeartbeatInfo
EventNotificationAlert message with heartbeat information (when there is no alarm is triggered) in
XML format
<EventNotificationAlert version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<ipv6Address><!--dep, xs:string, device IPv6 address--></ipv6Address>
<portNo><!--opt, xs:integer, device port number--></portNo>
<protocol><!--opt, xs:string, protocol type for uploading alarm/event information, "HTTP,HTTPS"--></protocol>
<macAddress><!--opt, xs:string, MAC address--></macAddress>
<channelID><!--dep, xs:string, device channel No., starts from 1--></channelID>
<dateTime><!--req, heartbeat uploaded time, format: 2017-07-19T10:06:41+08:00--></dateTime>
<activePostCount><!--req, xs:integer, heartbeat frequency, starts from 1--></activePostCount>
<eventType><!--req, xs:string, for heartbeat, it is "videoloss"--></eventType>
<eventState>
<!--req, xs:string, for heartbeat, it is "inactive"-->
</eventState>
<eventDescription><!--req, xs: string, description--></eventDescription>
</EventNotificationAlert>
Remarks
• For network camera or network speed dome with the version 5.5.0 and lower, the heartbeat
frequency is 300 ms per heartbeat.
• For network camera or network speed dome with the version 5.5.0 and higher, the heartbeat
frequency is 10 s per heartbeat. If no heartbeat received for continuous 30 s, it indicates that the
heartbeat is timed out.
Example
Message Example of Heartbeat
<EventNotificationAlert version="2.0" xmlns="http://www.isapi.com/ver20/XMLSchema">
<ipAddress>10.17.133.46</ipAddress>
<portNo>80</portNo>
<protocol>HTTP</protocol>
802
Intelligent Security API (General) Developer Guide
<macAddress>44:19:b6:6d:24:85</macAddress>
<channelID>1</channelID>
<dateTime>2017-05-04T11:20:02+08:00</dateTime>
<activePostCount>0</activePostCount>
<eventType>videoloss</eventType>
<eventState>inactive</eventState>
<eventDescription>videoloss alarm</eventDescription>
</EventNotificationAlert>
XML_EventNotificationAlert_IllegalLoginAlarmMsg
XML message about illegal login alarm details
<?xml version="1.0" encoding="utf-8"?>
<EventNotificationAlert version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<ipAddress><!--dependent, xs:string, IPv4 address--></ipAddress>
<ipv6Address><!--dependent, xs:string, IPv6 address--></ipv6Address>
<portNo><!--optional, xs:integer, device's communication port No.--></portNo>
<protocolType><!--optional, xs:string, transport protocol type: HTTP, HTTPS, EHome--></protocolType>
<macAddress><!--optional, xs:string, MAC address--></macAddress>
<dynChannelID><!--optional, xs:string, digital channel No.--></dynChannelID>
<channelID><!--dependent, xs:string, channel No.--></channelID>
<dateTime>
<!--requireduired, xs:datetime, event occurred time, which is in IOS 8601 format, e.g., 2017-04-22T15:39:01+08:00--
>
</dateTime>
<activePostCount><!--requireduired, xs:integer, event occurred times--></activePostCount>
<eventType><!--requireduired, xs:string, event types, here it should be set to "illaccess"--></eventType>
<eventState><!--requireduired, xs:string, event status (for persistent event): active, inactive--></eventState>
<eventDescription><!--requireduired, xs:string, event description--></eventDescription>
<channelName><!--optional, xs:string, channel name--></channelName>
<deviceID><!--optional, xs:string, device ID--></deviceID>
</EventNotificationAlert>
XML_EventNotificationAlert_MotionDetectionMsg
XML Message about Details of Motion Detection Event
<?xml version="1.0" encoding="utf-8"?>
<EventNotificationAlert version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<ipAddress><!--dependent, xs:string, IPv4 address--></ipAddress>
<ipv6Address><!--dependent, xs:string, IPv6 address--></ipv6Address>
<portNo><!--optional, xs:integer, device's communication port No.--></portNo>
<protocolType><!--optional, xs:string, transport protocol type: HTTP, HTTPS, EHome--></protocolType>
<macAddress><!--optional, xs:string, MAC address--></macAddress>
<dynChannelID><!--optional, xs:string, digital channel No.--></dynChannelID>
<channelID><!--dependent, xs:string, channel No.--></channelID>
<releatedChannelList><!--optional, xs:string, list of alarm related channels, which are of the same camera with
channelID; this parameter is used for live view or playback on the platform; multiple channel numbers are separated
803
Intelligent Security API (General) Developer Guide
by commas--></releatedChannelList>
<dateTime>
<!--required, xs:datetime, event occurred time, which is in IOS 8601 format, e.g., 2017-04-22T15:39:01+08:00-->
</dateTime>
<activePostCount><!--required, xs:integer, event occurred times--></activePostCount>
<eventType><!--required, xs:string, event types, here it should be set to "VMD"--></eventType>
<eventState><!--required, xs:string, event status (for persistent event): active, inactive--></eventState>
<eventDescription><!--required, xs:string, event description--></eventDescription>
<DetectionRegionList><!--optional, detection region parameter list (for expert mode only)-->
<DetectionRegionEntry><!--list, parameters of a detection region (for expert mode only)-->
<regionID><!--required, xs:string, detection region ID--></regionID>
<sensitivityLevel><!--required, xs:integer, sensitivity level, value range: [0,100]--></sensitivityLevel>
<RegionCoordinatesList><!--required, detection region coordinates-->
<RegionCoordinates>
<positionX><!--required, xs:integer, x-coordinate--></positionX>
<positionY><!--required, xs:integer, y-coordinate--></positionY>
</RegionCoordinates>
</RegionCoordinatesList>
</DetectionRegionEntry>
</DetectionRegionList>
<channelName><!--optional, xs:string, channel name--></channelName>
<deviceID><!--optional, xs:string, device ID--></deviceID>
<Extensions>
<serialNumber><!--required, xs:string, serial No.--></serialNumber>
<eventPush><!--required, xs:string, event notification details--></eventPush>
</Extensions>
</EventNotificationAlert>
XML_EventNotificationAlert_PIRAlarmMsg
XML Message about PIR (Passive Infrared) Alarm Details
<?xml version="1.0" encoding="utf-8"?>
<EventNotificationAlert version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<ipAddress><!--dependent, xs:string, IPv4 address--></ipAddress>
<ipv6Address><!--dependent, xs:string, IPv6 address--></ipv6Address>
<portNo><!--optional, xs:integer, device's communication port No.--></portNo>
<protocolType><!--optional, xs:string, transport protocol type: HTTP, HTTPS, EHome--></protocolType>
<macAddress><!--optional, xs:string, MAC address--></macAddress>
<dynChannelID><!--optional, xs:string, digital channel No.--></dynChannelID>
<channelID><!--dependent, xs:string, channel No.--></channelID>
<releatedChannelList><!--optional, xs:string, list of alarm related channels, which are of the same camera with
channelID; this parameter is used for live view or playback on the platform; multiple channel numbers are separated
by commas--></releatedChannelList>
<dateTime>
<!--required, xs:datetime, event occurred time, which is in IOS 8601 format, e.g., 2017-04-22T15:39:01+08:00-->
</dateTime>
<activePostCount><!--required, xs:integer, event occurred times--></activePostCount>
<eventType><!--required, xs:string, event types, here it should be set to "PIR"--></eventType>
<eventState><!--required, xs:string, event status (for persistent event): active, inactive--></eventState>
<eventDescription><!--required, xs:string, event description--></eventDescription>
804
Intelligent Security API (General) Developer Guide
XML_EventNotificationAlert_SceneChangeDetectionAlarmMsg
XML Message about Alarm Details of Scene Change Detection
<?xml version="1.0" encoding="utf-8"?>
<EventNotificationAlert version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<ipAddress><!--dependent, xs:string, IPv4 address--></ipAddress>
<ipv6Address><!--dependent, xs:string, IPv6 address--></ipv6Address>
<portNo><!--optional, xs:integer, device's communication port No.--></portNo>
<protocolType><!--optional, xs:string, transport protocol type: HTTP, HTTPS, EHome--></protocolType>
<macAddress><!--optional, xs:string, MAC address--></macAddress>
<dynChannelID><!--optional, xs:string, digital channel No.--></dynChannelID>
<channelID><!--dependent, xs:string, channel No.--></channelID>
<releatedChannelList><!--optional, xs:string, list of alarm related channels, which are of the same camera with
channelID; this parameter is used for live view or playback on the platform; multiple channel numbers are separated
by commas--></releatedChannelList>
<dateTime>
<!--required, xs:datetime, event occurred time, which is in IOS 8601 format, e.g., 2017-04-22T15:39:01+08:00-->
</dateTime>
<activePostCount><!--required, xs:integer, event occurred times--></activePostCount>
<eventType><!--required, xs:string, event types, here it should be set to "scenechangedetection"--></eventType>
<eventState><!--required, xs:string, event status (for persistent event): active, inactive--></eventState>
<eventDescription><!--required, xs:string, event description--></eventDescription>
<channelName><!--optional, xs:string, channel name--></channelName>
<deviceID><!--optional, xs:string, deviceID--></deviceID>
<Extensions>
<serialNumber><!--required, xs:string, serial No.--></serialNumber>
<eventPush><!--required, xs:string, event notification details--></eventPush>
</Extensions>
</EventNotificationAlert>
XML_EventNotificationAlert_SubscriptionHeartbeat
Heartbeat information message returned when subscribing alarm/event, and it is in XML format.
<EventNotificationAlert version="2.0" xmlns="http://www.isapi.com/ver20/XMLSchema">
<ipAddress>10.17.133.46</ipAddress>
<portNo>80</portNo>
<protocol>HTTP</protocol>
<macAddress>44:19:b6:6d:24:85</macAddress>
<channelID>1</channelID>
<dateTime>2017-05-04T11:20:02+08:00</dateTime>
<activePostCount>0</activePostCount>
<eventType>heartBeat</eventType>
<eventState>active</eventState>
805
Intelligent Security API (General) Developer Guide
<eventDescription>heartBeat</eventDescription>
</EventNotificationAlert>
See Also
XML_EventNotificationAlert_AlarmEventInfo
XML_EventNotificationAlert_VideoLossAlarmMsg
XML Message about Video Loss Alarm Details
<?xml version="1.0" encoding="utf-8"?>
<EventNotificationAlert version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<ipAddress><!--dependent, xs:string, IPv4 address--></ipAddress>
<ipv6Address><!--dependent, xs:string, IPv6 address--></ipv6Address>
<portNo><!--optional, xs:integer, device's communication port No.--></portNo>
<protocolType><!--optional, xs:string, transport protocol type: HTTP, HTTPS, EHome--></protocolType>
<macAddress><!--optional, xs:string, MAC address--></macAddress>
<dynChannelID><!--optional, xs:string, digital channel No.--></dynChannelID>
<channelID><!--dependent, xs:string, channel No.--></channelID>
<dateTime>
<!--required, xs:datetime, event occurred time, which is in IOS 8601 format, e.g., 2017-04-22T15:39:01+08:00-->
</dateTime>
<activePostCount><!--required, xs:integer, event occurred times--></activePostCount>
<eventType><!--required, xs:string, event types, here it should be set to "videoloss"--></eventType>
<eventState><!--required, xs:string, event status (for persistent event): active, inactive--></eventState>
<eventDescription><!--required, xs:string, event description--></eventDescription>
<channelName><!--optional, xs:string, channel name--></channelName>
<deviceID><!--optional, xs:string, device ID--></deviceID>
<Extensions>
<serialNumber><!--required, xs:string, serial No.--></serialNumber>
<eventPush><!--required, xs:string, event notification details--></eventPush>
</Extensions>
</EventNotificationAlert>
XML_EventNotificationAlert_VideoTamperingAlarmMsg
XML message about video tampering alarm details
<?xml version="1.0" encoding="utf-8"?>
<EventNotificationAlert version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<ipAddress><!--dependent, xs:string, IPv4 address--></ipAddress>
<ipv6Address><!--dependent, xs:string, IPv6 address--></ipv6Address>
<portNo><!--optional, xs:integer, device's communication port No.--></portNo>
<protocolType><!--optional, xs:string, transport protocol type: HTTP, HTTPS, EHome--></protocolType>
<macAddress><!--optional, xs:string, MAC address--></macAddress>
<dynChannelID><!--optional, xs:string, digital channel No.--></dynChannelID>
<channelID><!--dependent, xs:string, channel No.--></channelID>
<releatedChannelList><!--optional, xs:string, list of alarm related channels, which are of the same camera with
channelID; this parameter is used for live view or playback on the platform; multiple channel numbers are separated
806
Intelligent Security API (General) Developer Guide
by commas--></releatedChannelList>
<dateTime>
<!--required, xs:datetime, event occurred time, which is in IOS 8601 format, e.g., 2017-04-22T15:39:01+08:00-->
</dateTime>
<activePostCount><!--required, xs:integer, event occurred times--></activePostCount>
<eventType><!--required, xs:string, event types, here it should be set to "shelteralarm"--></eventType>
<eventState><!--required, xs:string, event status (for persistent event): active, inactive--></eventState>
<eventDescription><!--required, xs:string, event description--></eventDescription>
<channelName><!--optional, xs:string, channel name--></channelName>
<deviceID><!--optional, xs:string, device ID--></deviceID>
<Extensions>
<serialNumber><!--required, xs:string, serial No.--></serialNumber>
<eventPush><!--required, xs:string, event notification details--></eventPush>
</Extensions>
</EventNotificationAlert>
XML_EventTrigger
Linkage parameter message in XML format
<EventTrigger version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<id><!--required, xs:string, ID--></id>
<eventType>
<!--required, xs:string, see details in the "Remarks" below-->
</eventType>
<eventDescription><!--optional, xs:string--></eventDescription>
<inputIOPortID><!--dependent, xs:string, alarm input ID--></inputIOPortID>
<dynInputIOPortID><!--dependent, xs:string, dynamic alarm input ID--></dynInputPortID>
<videoInputChannelID>
<!--dependent, xs:string, video input channel ID, it is valid when <eventType> is "VMD, videoloss, tamperdetection,
regionEntrance, regionExiting, loitering, group, rapidMove, parking, unattendedBaggage, attendedBaggage"-->
</videoInputChannelID>
<dynVideoInputChannelID><!--dependent, xs:string, dynamic video input channel ID--></dynVideoInputChannelID>
<intervalBetweenEvents><!--optional, xs:integer, event time interval, unit: second--></intervalBetweenEvents>
<WLSensorID><!--dependent, xs:string, ID--></WLSensorID>
<EventTriggerNotificationList/><!--optional, alarm/event linkage actions, see details in the message of
XML_EventTriggerNotificationList-->
</EventTrigger>
Remarks
The node <eventType> can be the following values: IO, VMD, videoloss, raidfailure,
recordingfailure, badvideo, POS, analytics, fanfailure, overheat, tamperdetection, diskfull, diskerror,
nicbroken, ipconflict, illaccess, videomismatch, resolutionmismatch, radifailure, PIR, WLSensor,
spareException, poePowerException, heatmap, counting, linedetection, fielddetection,
regionEntrance, regionExiting, loitering, group,rapidMove, parking, unattendedBaggage,
attendedBaggage, HUMANATTRIBUTE, blackList, whitelist, peopleDetection, allVehicleList,
otherVehicleList, vehicledetection, storageDetection, shipsDetection, humanAttribute,
faceContrast, blackListFaceContrast, whiteListFaceContrast, faceSnap, faceLib,
807
Intelligent Security API (General) Developer Guide
XML_EventTriggerCapType
XML message about capability of alarm linkage action types
<EventTriggerCapType version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<isSupportCenter><!--optional, xs:boolean--></isSupportCenter>
<isSupportRecord><!--optional, xs:boolean--></isSupportRecord>
<isSupportMonitorAlarm><!--optional, xs:boolean--></isSupportMonitorAlarm>
<isSupportBeep><!--optional, xs: boolean, whether it supports audible warning--></isSupportBeep>
<isSupportIO><!--optional, xs:boolean--></isSupportIO>
<isSupportFTP><!--optional, xs:boolean--></isSupportFTP>
<isSupportEmail><!--optional, xs:boolean--></isSupEmail>
<isSupportLightAudioAlarm><!--optional, xs:boolean--></isSupportLightAudioAlarm>
<isSupportFocus><!--optional, xs:boolean--></isSupportFocus>
<isSupportPTZ><!--optional, xs:boolean--></isSupportPTZ>
<maxPresetActionNum>
<!--dependent, xs:integer, it is valid only when <isSupportPTZ> is "true"-->
</maxPresetActionNum>
<maxPatrolActionNum>
<!--dependent, xs:integer, it is valid only when <isSupportPTZ> is "true"-->
</maxPatrolActionNum>
<maxPatternActionNum>
<!--dependent, xs:integer, it is valid only when <isSupportPTZ> is "true"-->
</maxPatternActionNum>
<isSupportTrack><!--optional, xs:boolean, whether it supports PTZ linked tracking--></isSupportTrack>
<isSupportWhiteLight>
<!--optional, xs: boolean, whether it supports supplement light alarm linkage-->
</isSupportWhiteLight>
<isSupportCloud><!--optional, xs:boolean, whether it supports upload to the cloud--></isSupportCloud>
<targetNotificationInterval max="1000" min="0" default="30"><!--xs:integer, range: [0, 1000], the default value is 30,
unit: seconds, this node is valid for <MotionDetectionTriggerCap> and <TamperDetectionTriggerCap> and this node is
valid when <isSupportPTZ> is "true"--></targetNotificationInterval>
<direction opt="both,forward,reverse"><!--xs:string, triggering direction, this node is valid for the node
<BlackListTriggerCap>, <WhiteListTriggerCap>, and <VehicleDetectionTriggerCap>--></direction>
<presetDurationTime min="" max=""><!--dependent, xs:integer--></presetDurationTime>
<isSupportSMS><!--optional, xs:boolean, whether to support SMS (Short Message Service)--></isSupportSMS>
<maxCellphoneNum><!--dependent, xs:integer, the maximum number of cellphones, which is node is valid only
when <isSupportSMS> is "true"--></maxCellphoneNum>
<isSupportOSD><!--optional, xs:boolean--></isSupportOSD>
808
Intelligent Security API (General) Developer Guide
<isSupportAudio><!--optional, xs:boolean, whether it supports setting audio alarm independently. If this node is set
to "true", audio alarm and buzzer alarm can be linked separately, and the linage method is audio--></isSupportAudio>
<AudioAction><!--dependent, this node is valid when <isSupportBeep> is "true" or <isSupportAudio> is "true"-->
<audioTypeList>
<audioType><!--list-->
<audioID><!--required, xs:integer, alarm sound type--></audioID>
<audioDescription><!--required, xs:string, alarm sound description, it should correspond to the alarm sound type--
></audioDescription>
</audioType>
</audioTypeList>
<alarmTimes opt="0,1,2,3,4,5,6,7,8,9,255"><!--required, xs:integer, alarm times, it is between 0 and 9, 255-
continuous alarm, unit: time--></alarmTimes>
</AudioAction>
<isSupportSMS><!--optional, xs:boolean --></isSupportSMS>
<maxCellphoneNum><!--dependent, if <isSupportSMS> is true, xs:integer--></maxCellphoneNum>
<isNotSupportCenterModify><!--optional, xs:boolean, whether editing configuration parameters of the surveillance
center is not supported: "true"-yes (configuration parameters of the surveillance center cannot be edited), "false" or
this node is not returned-no (configuration parameters of the surveillance center can be edited)--></
isNotSupportCenterModify>
<isSupportMessageConfig>
<!--optional, xs:boolean, whether it supports SMS configuration, if supports, set cellphoneNumber to null-->
</isSupportMessageConfig>
<isSupportAnalogOutput><!--optional, xs:boolean, whether it supports IO output of linkage analog channel--></
isSupportAnalogOutput>
<isSupportIOOutputUnify><!--optional, xs:boolean, whether it supports configuration of IO output--></
isSupportIOOutputUnify>
<isSupportFaceContrast><!--optional, xs:boolean, whether it supports face picture comparison linkage--></
isSupportFaceContrast>
<isSupportSiren><!--optional, xs:boolean, whether it supports siren linkage--></isSupportSiren>
<isSupportOutput><!--optional, xs:boolean, whether it supports relay linkage--></isSupportOutput>
</EventTriggerCapType>
XML_EventTriggerNotification
Event linkage notification message in XML format
<EventTriggerNotification><!--opt-->
<id><!--required, xs:string, device ID--></id>
<notificationMethod>
<!--required, xs:string, linkage actions, opt="email,IM,IO,syslog,HTTP,FTP,beep,ptz,record, monitorAlarm, center,
LightAudioAlarm,focus,trace,cloud,SMS,whiteLight,audio,whiteLight,faceContrast,siren,output"-->
</notificationMethod>
<notificationRecurrence>
<!--optional, xs:string, "beginning,beginningandend,recurring"-->
</notificationRecurrence>
<notificationInterval><!--dependent, xs:integer, unit: millisecond--></notificationInterval>
<outputIOPortID><!--dependent, xs:string, video output No., it is required only when notificationMethod is "IO"--></
outputIOPortID>
<dynOutputIOPortID><!--dependent, xs:string, dynamic video output No., it is required only when
notificationMethod is "IO"--></dynOutputIOPortID>
<videoInputID><!--dependent, xs:string, video input No., it is required only when notificationMethod is "record"--></
809
Intelligent Security API (General) Developer Guide
videoInputID>
<dynVideoInputID><!--dependent, xs:string, dynamic video input No., it is required only when notificationMethod is
"record"--></dynVideoInputID>
<ptzAction><!--dependent, it is required only when notificationMethod is "ptz"-->
<ptzChannelID><!--required, xs:string, PTZ channel ID--></ptzChannelID>
<actionName><!--required, xs:string, PTZ control type: "preset", "pattern", "patrol"--></actionName>
<actionNum><!--dependent, xs:integer></actionNum>
</ptzAction>
<WhiteLightAction><!--dependent, white light linkage parameters, this node is valid when notificationMethod is
"whiteLight"-->
<whiteLightDurationTime><!--required, xs:integer, white light flashing duration, it is between 1 and 60, unit:
second--></whiteLightDurationTime>
</WhiteLightAction>
<cellphoneNumber><!--dependent, xs:string, min="0" max="11",cellphone number--></cellphoneNumber-->
</EventTriggerNotification>
XML_EventTriggerNotificationList
EventTriggerNotificationList message in XML format
<EventTriggerNotificationList version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<EventTriggerNotification/><!--opt, see details in the message of XML_EventTriggerNotification-->
</EventTriggerNotificationList>
See Also
XML_EventTriggerNotification
XML_EventTriggersCap
XML message about linkage capabilities of different alarm categories
<EventTriggersCap version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<DiskfullTriggerCap><!--optional, xs: EventTriggerCapType--></DiskfullTriggerCap>
<DiskerrorTriggerCap><!--optional, xs: EventTriggerCapType--></DiskerrorTriggerCap>
<NicbrokenTriggerCap><!--optional, xs: EventTriggerCapType--></NicbrokenTriggerCap>
<IpconflictTriggerCap><!--optional, xs: EventTriggerCapType--></IpconflictTriggerCap>
<IllaccesTriggerCap><!--optional, xs: EventTriggerCapType--></IllaccesTriggerCap>
<BadvideoTriggerCap><!--optional, xs: EventTriggerCapType--></BadvideoTriggerCap>
<VideomismatchTriggerCap><!--optional, xs: EventTriggerCapType--></VideomismatchTriggerCap>
<IOTriggerCap><!--optional, xs: EventTriggerCapType--></IOTriggerCap>
<LineDetectTriggerCap><!--optional, xs: EventTriggerCapType--></LineDetectTriggerCap>
<RegionEntranceTriggerCap><!--optional, xs: EventTriggerCapType--></RegionEntranceTriggerCap>
<RegionExitingTriggerCap><!--optional, xs: EventTriggerCapType--></RegionExitingTriggerCap>
<LoiteringTriggerCap><!--optional, xs: EventTriggerCapType--></LoiteringTriggerCap>
<GroupDetectionTriggerCap><!--optional, xs: EventTriggerCapType--></GroupDetectionTriggerCap>
<RapidMoveTriggerCap><!--optional, xs: EventTriggerCapType--></RapidMoveTriggerCap>
<ParkingTriggerCap><!--optional, xs: EventTriggerCapType--></ParkingTriggerCap>
<UnattendedBaggageTriggerCap><!--optional, xs: EventTriggerCapType--></UnattendedBaggageTriggerCap>
<AttendedBaggageTriggerCap><!--optional, xs: EventTriggerCapType--></AttendedBaggageTriggerCap>
810
Intelligent Security API (General) Developer Guide
811
Intelligent Security API (General) Developer Guide
812
Intelligent Security API (General) Developer Guide
See Also
XML_EventTriggerCapType
XML_ExportStatus
ExportStatus message in XML format
<ExportStatus version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<status><!--opt, xs:string, export status: "export"-exporting, "unexport"-not export--></status>
<message><!--dep, xs:string, it is valid when status is "export"--></message>
</ExportStatus>
XML_Exposure
Exposure message in XML format
<Exposure version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<ExposureType/><!--req, xs:string, "auto, IrisFirst, ShutterFirst, gainFirst, manual, pIris, T5280-PQ1, T5289-PQ1,
T1140-PQ1, T2712-PQ1, HV1250P-MPIR, pIris-General"-->
<autoIrisLevel>
<!--dep, xs:integer-->
</autoIrisLevel>
<OverexposeSuppress><!--opt-->
<enabled>
<!--req, xs:boolean-->
</enabled>
<Type>
<!--dep, xs:string, this node depends on <enabled>, "AUTO,MANUAL"-->
</Type>
<DistanceLevel>
<!--dep, xs: integer, this node depends on <Type>-->
813
Intelligent Security API (General) Developer Guide
</DistanceLevel>
<shortIRDistanceLevel>
<!--dep, xs: integer, this node depends on <Type>-->
</shortIRDistanceLevel>
<longIRDistanceLevel>
<!--dep, xs: integer, this node depends on <Type>-->
</longIRDistanceLevel>
</OverexposeSuppress>
<pIris><!--opt-->
<pIrisType/><!--dep, xs:string, this node depends on <ExposureType>, "AUTO,MANUAL"-->
<IrisLevel>
<!--dep, xs:integer, this node depends on <pIrisType>-->
</IrisLevel>
</pIris>
<PIrisGeneral><!--dep, it is available when <ExposureType> is set to "pIris-General"-->
<irisLevel>
<!--opt, iris level of general lens, which is between 1 and 100, the default level is 50-->
</irisLevel>
</PIrisGeneral>
<exposureLevel>
<!--opt, xs:integer , this node depends on <ExposureType>-->
</exposureLevel>
<faceExposure><!--opt, face exposure-->
<enabled opt="true,false">
<!--opt, xs:boolean, whether to enable face exposure-->
</enabled>
<sensitivity min="0" max="100">
<!--opt, xs:integer, sensitivity-->
</sensitivity>
</faceExposure>
</Exposure>
XML_externSecurityCap
externSecurityCap message in XML format
<externSecurityCap>
<RestAdminPassWord>
<isSupportWithSecurityQuestion>
<!--opt, xs: boolean, whether supports resetting password by answering security questions, "true,false" -->
</isSupportWithSecurityQuestion>
<isSupportWithGUIDFileData>
<!-- opt, xs: boolean, whether supports resetting password by importing GUID file, "true,false" -->
</isSupportWithGUIDFileData>
<isSupportWithSecurityEmail>
<!-- opt, xs: boolean, whether supports resetting password by setting recovery email, "true,false" -->
</isSupportWithSecurityEmail>
</RestAdminPassWord>
<SecurityLimits><!--opt-->
<LoginPasswordLenLimit min="1" max="16">
<!--opt, minimum and maximum lengths of login password-->
814
Intelligent Security API (General) Developer Guide
</LoginPasswordLenLimit>
<SecurityAnswerLenLimit min="1" max="128">
<!--opt, minimum and maximum answer length of security questions-->
</SecurityAnswerLenLimit>
</SecurityLimits>
</externSecurityCap>
XML_ExtraInfo
ExtraInfo message in XML format
<ExtraInfo version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<diskMode><!--req, xs:string, disk mode: "singleDisk"-single disk, "RAID". The device needs to reboot after changing
the disk mode--></diskMode>
</ExtraInfo>
XML_EZVIZ
XML message about the Hik-Connect access configuration parameters
<EZVIZ version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<enabled><!--required, xs:boolean--></enabled>
<registerStatus><!--read-only, optional, xs:boolean--></registerStatus>
<redirect><!--optional, xs:boolean, whether to allow the device to redirect the server address--></redirect>
<serverAddress><!--optional-->
<addressingFormatType>
<!--required, xs:string, "ipaddress,hostname"-->
</addressingFormatType>
<hostName><!--dependent, xs:string--></hostName>
<ipAddress><!--dependent, xs:string--></ipAddress>
<ipv6Address><!--dependent, xs:string--></ipv6Address>
<serverAddress>
<verificationCode>
<!--optional, xs:string, verification code. Only the "admin" user can edit the verification code using the control. The
verification code will be displayed for other users. If this node is returned, setting verification code is supported-->
</verificationCode>
<offlineStatus>
<!--ro, dependent, xs:string, it is valid when registerStatus values "false", device offline status,
opt="secretKeyInvalid"-invalid verification code-->
</offlineStatus>
<enabledTiming>
<!--optional, xs:boolean, whether to enable Hik-Connect timing: true-yes, false-no (default); this node is valid only
when the value of parameter <platformType> in XML_Time is "EZVIZ" (related URI: /ISAPI/System/time)-->
</enabledTiming>
<version><!--optional, xs:string, read-only, version information, foramt: ""Vx.x.xbuildYYMMDD--></version>
<operateCode><!--optional, xs:string, operation code for binding device--></operateCode>
<netWork>
<!--optional, xs:integer,0-null;1-automatic;2-wired network priority;3-wired network(by default), 4-3G/4G/
GPRS-->
815
Intelligent Security API (General) Developer Guide
</netWork>
<convergenceCloudEnabled><!--optional, xs:boolean--></convergenceCloudEnabled>
<streamEncrypteEnabled><!--optional, xs:boolean, whether to enable stream encryption, true-yes (default), false-
no--></streamEncrypteEnabled>
<upISAPIStatus><!--read-only, optional, xs:string, status of uplink transmitting ISAPI message: "open", "close"--></
upISAPIStatus>
<bindStatus><!--optional, xs:string, read-only, Hik-Connect account binding status of the current device: "bind"-
bound, "unbind"-unbound. When "bind" is returned, you can unbind the device from Hik-Connect accound by calling
the URI /ISAPI/System/Network/EZVIZ/unbind--></bindStatus>
</EZVIZ>
XML_FirmwareCodeList
Message about firmware code list in XML format
<?xml version="1.0" encoding="utf-8"?>
<FirmwareCodeList version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<FirmwareCode><!--list-->
<index><!--required, xs:integer, index No., which starts from 1--></index>
<code><!--required, xs:string, recognition code--></code>
<version><!--required, xs:string, firmware version--></version>
<channel><!--optional, xs:integer,IP channel No.--><channel>
<devTypeName><!--optional, xs:string,device type of the corresponding device of the IP channel--></
devTypeName>
</FirmwareCode>
</FirmwareCodeList>
XML_FocusConfiguration
FocusConfiguration message in XML format
<FocusConfiguration version=“2.0” xmlns=“http://www.isapi.org/ver20/XMLSchema”>
<focusStyle/><!--req, xs:string, focus type, "AUTO, MANUAL, SEMIAUTOMATIC"-->
<focusLimited/><!--opt, xs:integer, the minimum focus length, unit: cm-->
<focusPosition/><!--dep, depends on "FocusStyle", xs:integer-->
<focusSpeed><!--opt, xs:intger--></focusSpeed>
<focusSensitivity>
<!--opt, xs:intger, focus sensitivity, ranges from 0 to 2, it is valid when "focusStyle" is "MANUAL" or
"SEMIAUTOMATIC"-->
</focusSensitivity>
<temperatureChangeAdaptEnabled><!--opt, xs:boolean, "true,false"--></temperatureChangeAdaptEnabled>
<relativeFocusPos>
<!--opt, xs:intger, relative focus value, it is valid when "focusStyle" is "MANUAL" or "SEMIAUTOMATIC"-->
</relativeFocusPos>
<highTemperaturePriority><!--opt,xs:boolean, whether to enable high temperature priority mode--></
highTemperaturePriority>
</FocusConfiguration>
816
Intelligent Security API (General) Developer Guide
XML_FocusData
FocusData message in XML format
<FocusData version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<focus>
<!--req, xs: integer, a vector, whose value is the percentage of maximum focus speed: negative value-focus near;
positive value-focus far-->
</focus>
</FocusData>
XML_formatStatus
formatStatus message in XML format
<formatStatus version="1.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<formating><!--ro, req, xs: boolean--></formating>
<percent><!--ro, req, xs: integer, formatting progress percentage, which is between 0 and 100--></percent>
</formatStatus>
XML_FTPNotification
FTPNotification message in XML format
<FTPNotification version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<id>
<!--req, xs:string, FTP ID-->
</id>
<enabled>
<!--req, xs:boolean, whether to enable the FTP server-->
</enabled>
<useSSL>
<!--opt, xs:boolean-->
</useSSL>
<addressingFormatType opt="ipaddress,hostname">
<!--req, xs:string, this node can only be set to "ipaddress"-->
</addressingFormatType>
<hostName>
<!--dep, xs:string-->
</hostName>
<ipAddress>
<!--dep, xs:string-->
</ipAddress>
<ipv6Address>
<!--dep, xs:string-->
</ipv6Address>
<portNo>
<!--opt, xs:integer, FTP port No.-->
817
Intelligent Security API (General) Developer Guide
</portNo>
<userName>
<!--req, xs:string, user name-->
</userName>
<password>
<!--wo, xs:string, password-->
</password>
<passiveModeEnabled>
<!--opt, xs:boolean-->
</passiveModeEnabled>
<annoyftp>
<!--opt, xs:boolean-->
</annoyftp>
<uploadPicture>
<!--opt, xs:boolean-->
</uploadPicture>
<uploadVideoClip>
<!--opt, xs:boolean-->
</uploadVideoClip>
<uploadPath>
<!--req-->
<pathDepth>
<!--req, xs:integer, directory levels, up to 16 levels can be supported-->
</pathDepth>
<topDirNameRule>
<!--dep, xs:string, parent directory name: "none", "devName"-device name, "devId"-device ID, "devIp"-device IP
address, "positionInfo"-camera 1, "time_month"-usage date (YYYY-MM), "time_date"-usage date (YYYY-MM-DD),
"illegalType"-violation type, "direction"-direction, "site"-place, "chanName"-channel name, "chanId"-channel No.,
"laneId"-lane No., "customize"-custom, "time", "buildUnitNo"-building No. and unit No. This node is set to NULL by
default-->
</topDirNameRule>
<topDirName/><!--dep, xs:string, custom string for parent directory, the maximum string length is 32 bytes. This
node is valid when <topDirNameRule> is "customize"-->
<subDirNameRule>
<!--dep, xs:string, child directory name: "none", "devName"-device name, "devId"-device ID, "devIp"-device IP
address, "positionInfo"-camera 1, "time_month"-usage date (YYYY-MM), "time_date"-usage date (YYYY-MM-DD),
"illegalType"-violation type, "direction"-direction, "site"-place, "chanName"-channel name, "chanId"-channel No.,
"laneId"-lane No., "customize"-custom, "time", "buildUnitNo"-building No. and unit No. This node is set to NULL by
default-->
</subDirNameRule>
<subDirName/><!--dep, xs:string, custom string for child directory, the maximum string length is 32 bytes. This node
is valid when <subDirNameRule> is "customize"-->
<threeDirNameRule>
<!--dep, xs:string, the third directory name: "none", "devName"-device name, "devId"-device ID, "devIp"-device IP
address, "positionInfo"-camera 1, "time_month"-usage date (YYYY-MM), "time_date"-usage date (YYYY-MM-DD),
"illegalType"-violation type, "direction"-direction, "site"-place, "chanName"-channel name, "chanId"-channel No.,
"laneId"-lane No., "customize"-custom, "time", "buildUnitNo"-building No. and unit No. This node is set to NULL by
default-->
</threeDirNameRule>
<threeDirName/><!--req, xs:string, custom string for the third directory, the maximum string length is 32 bytes. This
node is valid when <threeDirNameRule> is "customize"-->
<fourDirNameRule>
818
Intelligent Security API (General) Developer Guide
<!--dep, xs:string, the fourth directory name: "none", "devName"-device name, "devId"-device ID, "devIp"-device
IP address, "positionInfo"-camera 1, "time_month"-usage date (YYYY-MM), "time_date"-usage date (YYYY-MM-DD),
"illegalType"-violation type, "direction"-direction, "site"-place, "chanName"-channel name, "chanId"-channel No.,
"laneId"-lane No., "customize"-custom, "time", "buildUnitNo"-building No. and unit No. This node is set to NULL by
default-->
</fourDirNameRule>
<fourDirName/><!--req, xs:string, custom string for the fourth directory, the maximum string length is 32 bytes. This
node is valid when <fourDirNameRule> is "customize"-->
</uploadPath>
<picArchivingInterval>
<!--opt, xs:integer, the value is between 1 and 30, 0-close-->
</picArchivingInterval>
<picNameRuleType>
<!--opt, xs:string, picture name rule type: "default, prefix"-->
</picNameRuleType>
<picNamePrefix>
<!--dep, xs:string, prefix length of the picture name, which is between 0 and 32-->
</picNamePrefix>
<ftpPicNameRuleType>
<!--req, xs:string, type of FTP picture name rule: "videoIntercom"-rule used by video intercom products, "ITC"-rule
used by traffic cameras-->
</ftpPicNameRuleType>
<FTPPicNameRule>
<!--dep, picture name rule of a specific FTP-->
<ItemList/><!--req, see details in the message of XML_ItemList-->
<delimiter>
<!--req, xs:string, delimiter, which is a single character and the default value is "_"-->
</delimiter>
<customStr>
<!--req, xs:string, custom string, its length is between 1 and 128-->
</customStr>
</FTPPicNameRule>
<upDataType>
<!-- opt, xs:integer, picture uploading type: 0-all, 1-checkpoint, 2-violation. When only one FTP server is enabled,
this node can only be set to 0. When two FTP servers are both enabled, you should set 1 for one FTP server and set 2
for another FTP server, which means that two FTP servers cannot be set to the same type-->
</upDataType>
<uploadPlateEnable>
<!--opt, xs:boolean, whether to enable uploading license plate thumbnail-->
</uploadPlateEnable>
<site>
<!--req, xs:string, place, the maximum string length is 128 bytes-->
</site>
<roadNum>
<!--req, xs:string, intersection No., the maximum string length is 32 bytes-->
</roadNum>
<instrumentNum>
<!--req, xs:string, device No., the maximum string length is 32 bytes-->
</instrumentNum>
<direction>
<!--req, xs:string, direction No., the maximum string length is 32 bytes-->
</direction>
819
Intelligent Security API (General) Developer Guide
<directionDesc>
<!--req, xs:string, direction description, the maximum string length is 32 bytes-->
</directionDesc>
<monitoringInfo1>
<!--req, xs:string, camera 1 information, the maximum string length is 44 bytes-->
</monitoringInfo1>
<uploadAttachedInfomation>
<!--req, xs:boolean, whether to upload additional information-->
</uploadAttachedInfomation>
<brokenNetHttp><!--opt, xs:boolean, whether to enable ANR (automatic network replenishment)--></
brokenNetHttp>
</FTPNotification>
See Also
XML_ItemList
XML_FTPNotificationList
FTPNotificationList message in XML format
<FTPNotificationList version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<FTPNotification/><!--opt, see details in the message of XML_FTPNotification-->
</FTPNotificationList>
See Also
XML_FTPNotification
XML_FTPTestDescription
FTPTestDescription message in XML format
<FTPTestDescription version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<useSSL><!--opt, xs: boolean></useSSL>
<addressingFormatType>
<!--req, xs: string, "ipaddress,hostname" -->
</addressingFormatType>
<hostName><!--dep, xs: string--></hostName>
<ipAddress><!--dep, xs: string--></ipAddress>
<ipv6Address><!--dep, xs: string--></ipv6Address>
<portNo><!--opt, xs: integer--></portNo>
<userName><!--req, xs: string--></userName>
<password><!--wo, xs: string--></password>
<passiveModeEnabled><!--opt, xs: boolean--></passiveModeEnabled>
<annoyftp><!--opt, xs: boolean--></annoyftp>
<uploadPath><!--req-->
<pathDepth><!--req, xs: integer, the value is from 0 to 2--></pathDepth>
<topDirNameRule>
<!--dep, xs: string, "devName, devId, devIp, customize"-->
820
Intelligent Security API (General) Developer Guide
</topDirNameRule>
<topDirName/><!--dep, xs: string-->
<subDirNameRule>
<!--dep, xs: string, "chanName, chanId, customize"-->
</subDirNameRule>
<subDirName/><!--dep, xs: string-->
</uploadPath>
</FTPTestDescription>
XML_FTPTestResult
FTPTestResult message in XML format
<FTPTestResult version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<errorDescription><!--req, xs: string--></errorDescription>
</FTPTestResult>
XML_Gain
Gain message in XML format
<Gain version="1.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<GainLevel/><!--dep, xs:integer, this node is valid when <ExposureType> in the message XML_Exposure is
"GainFisrt"-->
<GainWindow><!--opt-->
<RegionCoordinatesList><!--opt-->
<RegionCoordinates><!--opt-->
<positionX><!--req, xs: integer; x-coordinate--></positionX>
<positionY><!--req, xs: integer; y-coordinate--></positionY>
</RegionCoordinates>
</RegionCoordinatesList>
</GainWindow>
</Gain>
See Also
XML_Exposure
XML_GuardAgainstTheft
GuardAgainstTheft message in XML format
<GuardAgainstTheft version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<enabled><!--required, xs:boolean, whether to support enabling device anti-theft--></enabled>
<SMSEnabled><!--required, xs:boolean, whether to support enabling SMS--></SMSEnabled>
<phoneNum><!--dependency, xs:string, phone No.--></phoneNum>
<longitudeLatitudeEnabled><!--dependency, xs:boolean, whether to support enabling longitude and latitude--></
longitudeLatitudeEnabled>
821
Intelligent Security API (General) Developer Guide
XML_HardwareService
HardwareService message in XML format
<HardwareService version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<IrLightSwitch><!--opt-->
<mode><!--req, xs:string, "open,close"--></mode>
</IrLightSwitch>
<ABF><!--opt-->
<enabled><!--req, xs:boolean--></enabled>
</ABF>
<LED><!--opt-->
<enabled><!--req, xs:boolean--></enabled>
</LED>
<Defog>
<!--opt -->
<enabled>
<!--req, xs:boolean-->
</enabled>
</Defog>
<SupplementLight>
<!--opt-->
<enabled>
<!--req, xs:boolean-->
</enabled>
<isSupportFireLaserLight>
<!--opt, xs:boolean, "true, false"-->
</isSupportFireLaserLight>
<isSupportSupplementLightWord>
<!--opt, xs:boolean, "true, false", whether to support displaying supplement light prompt-->
</isSupportSupplementLightWord>
<captureWithSupplimentLightEnabled>
<!--opt, xs:boolean, "true,false", enable snapshot supplement light or not-->
</captureWithSupplimentLightEnabled>
</SupplementLight>
<Deicing><!--opt-->
<enabled><!--req, xs:boolean--></enabled>
</Deicing>
<ManualDeicing><!--opt-->
<enabled><!--req, xs:boolean--></enabled>
</ManualDeicing>
<mutexAbility>
<!--req, "laserLight,deicing", mutual exclusion ability, the laser light and deicing (including manual deicing and
automatic deicing) are mutual exclusive-->
</mutexAbility>
822
Intelligent Security API (General) Developer Guide
<VisibleMovementPower><!--opt-->
<enabled><!--req, xs:boolean--></enabled>
</VisibleMovementPower>
<ThermalMovementPower><!--opt-->
<enabled><!--req, xs:boolean--></enabled>
</ThermalMovementPower>
<PtzPower><!--opt-->
<enabled><!--req, xs:boolean--></enabled>
</PtzPower>
<powerSavingControl><!--opt, xs:string, power saving strategy: "sleepMode"-sleeping mode, lowConsumptionMode-
低功耗模式 --></powerSavingControl>
<HighTemperatureProtection><!--opt-->
<enabled><!--req, xs:boolean --></enabled>
<temperatureType><!--dep, xs:string,unit:℃, "90,100,110" --></temperatureType>
</HighTemperatureProtection>
</HardwareService>
XML_hdd
XML message about HDD parameters
<hdd version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<id><!--read only, req, xs: string; ID--></id>
<hddName><!--read only, req, xs: string--></hddName>
<hddPath><!--read only, opt, xs: string--></hddPath>
<hddType><!--read only, req, xs: string, "IDE, SATA, eSATA, NFS, iSCSI, Virtual Disk"--></hddType>
<status>
<!--required, read only, xs: string, HDD status:
"ok,unformatted,error,idle,mismatch,offline,smartFailed,reparing,formating,notexist,unRecordHostFormatted,synching
,syncError,unloaded". "unRecordHostFormatted"--unformatted in education sharing system, "synching"-synchronizing,
"syncError"-synchronization exception--->
</status>
<capacity><!--read only, req, xs: float, unit: MB--></capacity>
<freeSpace><!--read only, req, xs: float, unit: MB--></freeSpace>
<property><!--required, xs: string, HDD properties, "RW,RO,Redund"--></property>
<group><!--optional, xs: string; HDD group ID--></group>
<reservedDayCfg><!--optional, xs:integer, video saving duration, it is between 0 and 1000, unit: day--></
reservedTimeCfg>
<DataModeList><!--opt, ro, current HDD allocation mode-->
<DataMode>
<type><!--required, xs: string, storage application type: "recordStorage"-video storage, "pictureCloudStorage"-
picture to be saved in cloud storage, "fileStorage"-file storage--></type>
<occupancyRate><!--required, xs: integer, HDD usage, range: [0,100]--></occupancyRate>
</DataMode>
</DataModeList>
<formatType>
<!--optional, read only, xs: string, formatting type: FAT32 (default) and EXT4, this node is only available for SD card; if
this node does not exist, the default formatting type is FAT32-->
</formatType>
<encryptionStatus><!--optional, read only, xs:string, encryption status: "unencrypted", "encrypted", "verfyFailed"-
823
Intelligent Security API (General) Developer Guide
verification failed--></encryptionStatus>
</hdd>
XML_hddList
XML message about HDD list parameters
<hddList xmlns="http://www.isapi.org/ver20/XMLSchema" version="2.0" >
<hdd xmlns="http://www.isapi.org/ver20/XMLSchema" version="2.0" >
<id>
<!--read-only, required, xs:string, HDD ID-->
</id>
<hddName>
<!--read-only, required, xs:string-->
</hddName>
<hddPath>
<!--read-only, optional, xs:string-->
</hddPath>
<hddType>
<!--read-only, required, xs:string,"IDE,SATA,eSATA,NFS,iSCSI,Virtual Disk,NTFS",etc-->
</hddType>
<status>
<!--read-only, required,
xs:string,"ok,unformatted,error,idle,mismatch,offline,smartFailed,reparing,formating,notexist,unRecordHostFormatted
,maintaining,maintainingPercent,synching,syncError,unloaded"-->
</status>
<capacity>
<!--read-only, required, xs:float,in MB-->
</capacity>
<freeSpace>
<!--read-only, required, xs:float,in MB-->
</freeSpace>
<property>
<!--required, xs:string "RW,read-only, Redund"-->
</property>
<group>
<!--optional, xs:string; id-->
</group>
<DataModeList>
<!--optional,ro-->
<DataMode>
<!--list-->
<type>
<!--required, xs:string,opt="recordStorage,pictureCloudStorage,fileStorage"-->
</type>
<occupancyRate>
<!--required, xs:integer [0,100]-->
</occupancyRate>
</DataMode>
</DataModeList>
<formatType>
824
Intelligent Security API (General) Developer Guide
XML_HDDSMARTTest
HDDSMARTTest message in XML format
<HDDSMARTTest version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<testType><!--opt, xs: string, checking type: short,expanded,conveyance--></testType>
</HDDSMARTTest>
XML_Hello
Hello message in XML format
<?xml version="1.0" encoding="UTF-8"?>
<Hello>
<Types>hello</Types>
<!--device type value-->
<DeviceType>1234</DeviceType>
<!--device type description-->
<DeviceDescription>DS-2CD4024F</DeviceDescription>
<!--device serial No.-->
<DeviceSN>DS-2CD4024F20130925CCCH435107838</DeviceSN>
<!--command port number of private protocol-->
<CommandPort>8000</CommandPort>
<!--http port number-->
<HttpPort>80</HttpPort>
<!--MAC address-->
<MAC>44-19-b7-10-98-32</MAC>
<!--IPv4 address-->
825
Intelligent Security API (General) Developer Guide
<IPv4Address>172.9.3.106</IPv4Address>
<!--IPv4 subnet mask-->
<IPv4SubnetMask>255.255.255.0</IPv4SubnetMask>
<!--IPv4 gateway-->
<IPv4Gateway>172.9.3.1</IPv4Gateway>
<!--IPv6 address-->
<IPv6Address>2000:1:2:3:4619:b6ff:fe01:dd9d</IPv6Address>
<!--IPv6 gateway-->
<IPv6Gateway>2000:1:2:3:4619:b6ff:fe01:1</IPv6Gateway>
<!--size of IPv6 subnet mask-->
<IPv6MaskLen>64</IPv6MaskLen>
<!--enable/disable DHCP, true: enable, false: disable-->
<DHCP>false</DHCP>
<!--total number of analog channels-->
<AnalogChannelNum>32</AnalogChannelNum>
<!--total number of digital channels-->
<DigitalChannelNum>32</DigitalChannelNum>
<!--device software version information, not encrypt-->
<SoftwareVersion>V4.1.0 build130126</SoftwareVersion>
<!--DSP version information, not encrypt-->
<DSPVersion>V4.0 build130111</DSPVersion>
<!--device started time-->
<BootTime>2014-01-06 11:39:00</BootTime>
<!--true: OEM device, false: baseline device-->
<OEMCode>true</OEMCode>
<!--OEM manufacturer information, optional.-->
<OEMInfo>Axis</OEMInfo>
<!--device software version information, it is encrypted in AES128/AES256 CBC mode with fixed key-->
<SoftwareVersionEncrypt>V4.1.0 build130126</SoftwareVersionEncrypt>
<!--DSP version, it is encrypted in AES128/AES256 CBC mode with fixed key-->
<DSPVersionEncrypt>V4.0 build130111</DSPVersionEncrypt>
<!--OEM manufacturer information, it is encrypted in AES128/AES256 CBC mode with fixed key, optional-->
<OEMInfoEncrypt >Axis</OEMInfoEncrypt>
<!--true: encrypted device, false: normal device>
<Encrypt>true</ Encrypt >
<!--security code generated by specific algorithm (reserved), which is to prevent piracy-->
<SafeCode>123456</SafeCode>
<!--support upgrading reset password or not, true: yes, false: no>
<ResetAbility>true</ResetAbility>
<!--number of HDDs>
<DiskNumber>1</ DiskNumber >
<!--true: activated, false: inactivated>
<Activated>true</Activated>
<!--support resetting password or not, true: yes, false: no>
<PasswordResetAbility>true</PasswordResetAbility>
<!--support synchronizing password of network camera or not, true: yes, false: no>
<SyncIPCPassword>true</SyncIPCPassword>
<!--support password reset mode 2 or not, true: yes, false: no>
<PasswordResetModeSecond>true</PasswordResetModeSecond>
<!--OEMCode details-->
<DetailOEMCode>10101</DetailOEMCode>
<!--true: EZVIZ device, false: baseline device-->
826
Intelligent Security API (General) Developer Guide
<EZVIZCode>true</EZVIZCode>
<!--support locking device or not, true: yes, false: no-->
<DeviceLock>true</DeviceLock>
</Hello>
XML_HttpHostNotification
XML message about parameters of a HTTP listening server
<HttpHostNotification version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<id><!--required, xs:string, ID--></id>
<url><!--required, xs:string, the absolute path, e.g., http://<ipAddress>:<portNo>/<uri>--></url>
<protocolType><!--required, xs:string, "HTTP,HTTPS,EHome"--></protocolType>
<parameterFormatType><!--required, xs:string, alarm/event information format, "XML,JSON"--></
parameterFormatType>
<addressingFormatType><!--required, xs:string, "ipaddress,hostname"--></addressingFormatType>
<hostName><!--dependent, xs:string--></hostName>
<ipAddress><!--dependent, xs:string--></ipAddress>
<ipv6Address><!--dependent, xs:string--></ipv6Address>
<portNo><!--optional, xs:integer--></portNo>
<userName><!--dependent, xs:string--></userName>
<password><!--dependent, xs:string--></password>
<httpAuthenticationMethod><!--required, xs:string, "MD5digest,none"--></httpAuthenticationMethod>
<ANPR><!--optional-->
<detectionUpLoadPicturesType>
<!--optional, xs:string, types of alarm picture to be uploaded: "all, licensePlatePicture, detectionPicture"-->
</detectionUpLoadPicturesType>
</ANPR>
<eventType optional="AID,TFS,TPS"><!--required, xs:string--></eventType>
<uploadImagesDataType>
<!--optional, xs:string, "URL", "binary" (default), for cloud storage, only "URL" is supported-->
</uploadImagesDataType>
<eventMode><!--optional, xs:string, "all,list"--></eventMode>
<EventList><!--dependent, it is valid only when eventMode is "list"-->
<Event><!--required-->
<type><!--required, xs:string--></type>
</Event>
</EventList>
<channels><!--optional, xs:string, "1,2,3,4…"--></channels>
<SubscribeEvent/><!--optional, event subscription parameters, see details in the message of XML_SubscribeEvent-->
</HttpHostNotification>
XML_HttpHostNotificationCap
XML message about capability of HTTP listening server
<?xml version="1.0" encoding="utf-8"?>
<HttpHostNotificationCap version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<hostNumber>2</hostNumber>
827
Intelligent Security API (General) Developer Guide
<urlLen max=""/>
<protocolType opt="HTTP,HTTPS,EHome"/>
<parameterFormatType opt="XML,querystring,JSON"/>
<addressingFormatType opt="ipaddress,hostname"/>
<ipAddress opt="ipv4,ipv6"/>
<portNo min="" max=""/>
<userNameLen min="" max=""/>
<passwordLen min="" max=""/>
<httpAuthenticationMethod opt="MD5digest,none"/>
<Extensions>
<intervalBetweenEvents min="" max=""/>
</Extensions>
<uploadImagesDataType opt="URL,binary"/>
<ANPR><!--optional-->
<detectionUpLoadPicturesType opt="all,licensePlatePicture,detectionPicture…"/><!--optional, xs:string, types of
alarm pictures to be uploaded-->
<alarmHttpPushProtocol opt="baseline,custom"/>
</ANPR>
<httpBroken opt="true,false" def="true" ><!--optional, xs:boolean, whether to enable global ANR: true, false--></
httpBroken>
<SubscribeEventCap>
<heartbeat min="" max=""/><!--optional, heartbeat time interval, unit: second-->
<channelMode opt="all,list"/><!--required, all-subscribe events of all channels, list-subscribe event by channel-->
<eventMode opt="all,list"/><!--required, event subscription mode: all-subscribe all events of all channels, list-
subscribe events by type, channel, and target-->
<!--if the values of the two nodes channelMode and eventMode are both "all", it indicates that the device does not
support subscribe events by type and channel-->
<EventList><!--dependent, alarm uploading mode, this node is valid only when eventMode is "list"-->
<Event><!--required-->
<type><!--required, xs:string, event types--></type>
<pictureURLType opt="binary,localURL,cloudStorageURL" def=""/>
<!--optional, xs:string, transmission format of alarm picture: "binary"-picture binary data, "localURL"-picture URL
from local device, "cloudStorageURL"-picture URL from cloud storage-->
</Event>
</EventList>
<pictureURLType opt="binary,localURL,cloudStorageURL" def=""/>
<!--optional, xs:string, transmission format of all alarm pictures: "binary"-picture binary data (default for camera),
"localURL"-picture URL from local device (default for NVR/DVR), "cloudStorageURL"-picture URL from cloud storage;
this node is in highest priority-->
<ChangedUploadSub>
<interval/><!--optional, xs:integer, the life cycle of arming GUID, unit: second, the default life cycle is 5 minutes; if
the reconnection is not started during the life cycle, a new GUID will be generated-->
<StatusSub>
<all/><!--optional, xs:boolean, whether to subscribe all-->
<channel/><!--optional, xs:boolean, subscribe channel status, this node is not required when the node all is "true"--
>
<hd/><!--optional, xs:boolean, subscribe the HDD status, this node is not required when the node all is "true"-->
<capability/><!--optional, xs:boolean, subscribe the capability changed status, this node is not required when the
node all is "true"-->
</StatusSub>
</ChangedUploadSub>
828
Intelligent Security API (General) Developer Guide
</SubscribeEventCap>
</HttpHostNotificationCap>
XML_HttpHostNotificationList
HttpHostNotificationList message in XML format
<HttpHostNotificationList version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<HttpHostNotification>
<id><!--req, xs:string, ID--></id>
<url><!--req, xs:string--></url>
<protocolType><!--req, xs:string, "HTTP,HTTPS"--></protocolType>
<parameterFormatType><!--req, xs:string, alarm/event information format, "XML,JSON"--></parameterFormatType>
<addressingFormatType><!--req, xs:string, "ipaddress,hostname"--></addressingFormatType>
<hostName><!--dep, xs:string--></hostName>
<ipAddress><!--dep, xs:string--></ipAddress>
<ipv6Address><!--dep, xs:string--></ipv6Address>
<portNo><!--opt, xs:integer--></portNo>
<userName><!--dep, xs:string--></userName>
<password><!--dep, xs:string--></password>
<httpAuthenticationMethod><!--req, xs:string, "MD5digest,none"--></httpAuthenticationMethod>
<uploadImagesDataType>
<!--opt, xs:string, "URL", "binary" (default), for cloud storage, only "URL" is supported-->
</uploadImagesDataType>
<eventMode><!--opt, xs:string, "all,list"--></eventMode>
<EventList><!--dep, it is valid only when eventMode is "list"-->
<Event><!--req-->
<type><!--req, xs:string--></type>
</Event>
</EventList>
<channels><!--opt, xs:string, "1,2,3,4…"--></channels>
</HttpHostNotification>
</HttpHostNotificationList>
Example
HttpHostNotificationList Message Example
<HttpHostNotificationList version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<HttpHostNotification>
<id>1</id>
<url></url>
<protocolType>HTTP</protocolType>
<parameterFormatType>XML</parameterFormatType>
<addressingFormatType>ipaddress</addressingFormatType>
<ipAddress>0.0.0.0</ipAddress>
<portNo>80</portNo>
<userName></userName>
<httpAuthenticationMethod>none</httpAuthenticationMethod>
</HttpHostNotification>
</HttpHostNotificationList>
829
Intelligent Security API (General) Developer Guide
XML_HttpHostTestResult
HttpHostTestResult message in XML format.
<HttpHostTestResult version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<errorDescription>
<!--req, xs:string-->
</errorDescription>
</HttpHostTestResult>
XML_IbeaconParam
IbeaconParam message in XML format
<IbeaconParam xmlns="http://www.isapi.org/ver20/XMLSchema" version="2.0">
<UUID min="" max="">
<!--req, xs:string, parking lot ID, which supports using digits, letters and hyphen as the tag-->
</UUID>
<major min="" max="">
<!--req, xs:integer, number of floors in the parking lot, which cannot be 0x00 for all-->
</major>
<minor min="" max="">
<!--req, xs:integer, number of parking spaces in each floor, which cannot be 0x00 for all-->
</minor>
<sendPower min="" max="">
<!--req, xs:integer, transmitted power: 01-0 dbm, 02- -6 dbm, 03- -23 dbm-->
</sendPower>
<frequency min="" max="">
<!--req, xs:integer, transmitted frequency, which is the broadcast time interval, unit: 625 µs. The broadcast time
interval is between 32 (20 ms) to 8000 (5s), and the default value is 160 (100 ms)-->
</frequency>
<measurePower min="" max="">
<!--req, xs:integer, rated power, which is the RSSI (Received Signal Strength Indication) in the position of one meter
away, unit: dbm-->
</measurePower>
</IbeaconParam>
XML_IEEE802_1x
IEEE802_1x message in XML format
<IEEE802_1x version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<enabled><!--req, xs: boolean--></enabled>
<authenticationProtocolType>
<!--req, xs: string, "EAP-TLS,EAP-TTLS,EAP-PEAP,EAP-LEAP,EAP-FAST,EAP-MD5"-->
</authenticationProtocolType>
<innerTTLSAuthenticationMethod>
<!--dep, xs: string, "MS-CHAP,MS-CHAPv2,PAP,EAP-MD5", this node is required when <authenticationProtocolType>
830
Intelligent Security API (General) Developer Guide
is "EAP-TLS"-->
</innerTTLSAuthenticationMethod>
<innerEAPProtocolType>
<!--dep, xs: string, "EAP-POTP,MS-CHAPv2", this node is required when <authenticationProtocolType> is "EAP-
PEAP" or "EAP-FAST-->
</innerEAPProtocolType>
<validateServerEnabled><!--dep, xs: boolean--></validateServerEnabled>
<userName><!--dep, xs: string--></userName>
<password><!--dep, xs: string--></password>
<anonymousID><!--opt, xs: string--></anonymousID>
<autoPACProvisioningEnabled>
<!--dep, xs: boolean, this node is required when <authenticationProtocolType> is "EAP-FAST"-->
</autoPACProvisioningEnabled>
<Extensions><!--opt-->
<EAPOLVersion><!--opt, xs:string, "1, 2"--></EAPOLVersion>
</Extensions>
</IEEE802_1x>
Remarks
• For EAP-LEAP or EAP-MD5, the parameters userName, password, and Extensions can be
configured.
• For EAP-TLS, the parameters userName, password, and Extensions can be configured, and the
certificates with different types (i.e., CA, user certificate, key) can be uploaded.
XML_IllegalLoginLock
IllegalLoginLock message in XML format
<IllegalLoginLock version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<enabled>true</enabled>
<maxIllegalLoginTimes>
<!--opt, xs: integer, maximum illegal login attempts, whose value is between 3 and 20, and the default value is 5-->
</maxIllegalLoginTimes>
<maxIllegalLoginLockTime><!--optional, xs:integer, lock duration when maximum illegal login attempts reached the
upper limit, range:[0,120], unit: minute--></maxIllegalLoginLockTime>
</IllegalLoginLock>
XML_ImageCap
ImageCap message in XML format
<ImageCap version="2.0" xmlns="http://www.isapi.com/ver20/XMLSchema">
<isSupportRegionalExposure><!--opt, xs:boolean--></isSupportRegionalExposure>
<isSupportRegionalFocus><!--opt, xs:boolean--></isSupportRegionalFocus>
</ImageCap>
831
Intelligent Security API (General) Developer Guide
XML_ImageChannel
ImageChannel message in XML format
<ImageChannel version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<id><!--req, xs: integer--></id>
<enabled><!--req, xs: boolean--></enabled>
<videoInputID><!--req, xs: integer--></videoInputID>
<Defog/><!--opt, electronic defogging parameters, see details in the message of XML_Defog-->
<NoiseReduce2D/><!--opt, 2D noise reduction parameters, see details in the message of XML_NoiseReduce2D-->
<Focusconfiguration/><!--opt-->
<LensInitialization/><!--opt-->
<ImageFlip/><!--opt, image automatic flipping parameters, see details in the message of XML_ImageFlip-->
<ImageFreeze/><!--opt-->
<proportionalpan/><!--opt-->
<WDR/><!--opt, WDR parameters, refer to the message XML_WDR for details-->
<BLC/><!--opt, BLC parameters, refer to the message XML_BLC for details-->
<NoiseReduce/><!--opt, 3D DNR parameters, see details in the message of XML_NoiseReduce-->
<ImageEnhancement/><!--opt, image enhancement parameters, see details in the message of
XML_ImageEnhancement-->
<DSS/><!--opt, low illumination electronic shutter parameters in exposure, see details in the message of XML_DSS-->
<WhiteBlance/><!--opt, WB parameters, see details in the message of XML_WhiteBlance-->
<Exposure/><!--opt, exposure parameters, see details in the message of XML_Exposure-->
<Sharpness/><!--opt, sharpness parameters, see details in the message of XML_Sharpness-->
<gammaCorrection/><!--opt, gamma correction parameters, see details in the message of XML_gammaCorrection-->
<powerLineFrequency/><!--opt, image standard parameters, refer to the message XML_powerLineFrequency for
details-->
<Color/><!--opt, image color parameters, see details in the message of XML_Color-->
<IrcutFilter/><!--opt, day/night auto switch parameters, see details in the message of XML_IrxutFilter-->
<ImageModeList/><!--opt, default image mode parameters, see details in the message of XML_ImageModeList-->
<BrightEnhance/><!--opt, brightness enhancement parameters, see details in the message of XML_BrightEnhance-->
<ISPMode/><!--opt, day/night mode parameters, see details in the message of XML_ISPMode-->
<Shutter/><!--opt, shutter parameters in exposure, see details in the message of XML_Shutter-->
<Gain/><!--opt, gain parameters, see details in the message of XML_Gain-->
<ImageIcrE/><!--opt, IR-cut filter parameters, see details in the message of XML_ImageIcrE-->
<ImageMultishut/><!--opt, multi-shutter parameters, see details in the message of XML_ImageMultishut-->
<PlateBright/><!--opt, license plate brightness compensation parameters, see details in the message of
XML_PlateBright-->
<JPEGParam/><!--opt, JPEG picture size parameters, see details in the message of XML_JPEGParam-->
<DarkEnhance/><!--opt, dark space enhancement parameters, see details in the message of XML_DarkEnhance-->
<Hdr/><!--opt, WDR (Wide Dynamic Range) parameters, see details in the message of XML_Hdr-->
<LSE/><!--opt, contrast enhancement parameters, see details in the message of XML_LSE-->
<MCE/><!--opt, memory color enhancement parameters, see details in the message of XML_MCE-->
<Svce/><!--opt, part contrast parameters, see details in the message of XML_Svce-->
<SectionCtrl/><!--opt, configuration parameters of picture exposure control by video segment, see details in the
message of XML_SectionCtrl-->
<AutoContrast/><!--opt, automatic contrast parameters, see details in the message of XML_AutoContrast-->
<GrayRange/><!--opt, grayscale range parameters, see details in the message of XML_GrayRange-->
<LSEDetail/><!--opt, contrast enhancement parameters, see details in the message of XML_LSE-->
<ITCImageSnap/><!--opt, captured picture parameters, see details in the message of XML_ITCImageSnap-->
<ImageRecord/><!--opt, image parameters in the recorded video, see details in the message of XML_ImageRecord-->
832
Intelligent Security API (General) Developer Guide
<Scene/><!--opt-->
<EPTZ/><!--opt-->
<EIS/><!--opt-->
<HLC/><!--opt-->
<ZoomLimit/><!--opt-->
<corridor/><!--opt, image rotate mode parameters, refer to the message XML_corridor for details-->
<Dehaze/><!--opt, defog mode parameters, refer to the message XML_Dehaze for details-->
<ImageMode/><!--opt, xs: string, image mode: "standard, indoor, outdoor, dimLight"-->
<enableImageLossDetection><!--opt, xs: boolean--></enableImageLossDetection>
<CaptureMode/><!--opt, video input mode parameters, refer to the message XML_CaptureMode for details-->
<IrLight/><!--opt-->
<LensDistortionCorrection/><!--opt-->
<ExposureSync/><!--opt, exposure synchronization settings-->
<BrightnessSuddenChangeSuppression/><!--opt-->
<TempRange/><!--opt, temperature range, refer to the message XML_tempRange for details-->
<SupplementLight/> <!-- opt -->
</ImageChannel>
XML_ImageChannellist
ImageChannellist message in XML format
<ImageChannellist version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<ImageChannel/><!--opt-->
</ImageChannellist>
See Also
XML_ImageChannel
XML_ImageFlip
ImageFlip message in XML format
<ImageFlip version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<enabled/><!--req, xs:boolean-->
<ImageFlipStyle/><!--opt, xs:string, "LEFTRIGHT, UPDOWN, CENTER, AUTO", it can be enabled only when the value is
"true"-->
<flipAngle><!--opt, xs:string, "90, 180, 270"--></flipAngle>
</ImageFlip>
XML_ImageMode
ImageMode message in XML format
<ImageMode version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<type><!--req, xs:string, "standard, indoor, outdoor, dimLight"--></type>
<recommendation><!--req, ro-->
833
Intelligent Security API (General) Developer Guide
XML_ImageModeList
ImageModeList message in XML format
<ImageModeList version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<ImageMode/><!--opt, see details in the message of XML_ImageMode-->
</ImageModeList>
See Also
XML_ImageMode
XML_InputProxyChannel
InputProxyChannel message in XML format
<?xml version="1.0" encoding="utf-8"?>
<InputProxyChannel version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<id><!--req, xs:string, starts from 1--></id>
<name><!--opt, xs:string--></name>
<sourceInputPortDescriptor><!--req-->
<adminProtocol><!--req, xs:string, "HIKVISION,SONY,ISAPI,ONVIF,..."--></adminProtocol>
<addressingFormatType><!--req, xs:string, "ipaddress,hostname"--></addressingFormatType>
<hostName><!--dep, xs:string, domain name--></hostName>
<ipAddress><!--dep, xs:string, IP address--></ipAddress>
<ipv6Address><!--dep, xs:string, IPv6 address--></ipv6Address>
<managePortNo><!--req, xs:integer--></managePortNo>
<srcInputPort><!--req, xs:string, channel No.--></srcInputPort>
<userName><!--req, xs:string, user name, which should be encrypted--></userName>
<password><!--req, wo, xs:string, password, which should be encrypted--></password>
<streamType><!--opt, xs:string, opt="auto,tcp,udp"--></streamType>
<deviceID><!--dep, xs:string--></deviceID>
<deviceTypeName><!--ro, opt, xs:string, device type name--></deviceTypeName>
<serialNumber><!--ro, opt, xs:string, device serial No.--></serialNumber>
<firmwareVersion><!--ro, opt, xs:string, firmware version--></firmwareVersion>
<firmwareCode><!--ro, opt, xs:string, firmware code--></firmwareCode>
</sourceInputPortDescriptor>
<enableAnr>
<!--opt, xs:boolean, whether enables ANR funtion-->
</enableAnr>
<NVRInfo>
834
Intelligent Security API (General) Developer Guide
<ipAddressNVR>
<!--opt, xs:string, IP address of NVR-->
</ipAddressNVR>
<portNVR>
<!--opt, xs:integer, port No. of NVR-->
</portNVR>
<ipcChannelNo>
<!--opt, xs:integer, channel No. of the network camera in NVR-->
</ipcChannelNo>
</NVRInfo>
</InputProxyChannel>
XML_InputProxyChannelList
InputProxyChannelList message in XML format
<?xml version="1.0" encoding="utf-8"?>
<InputProxyChannelList version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<InputProxyChannel/><!--opt, see details in XML_InputProxyChannel-->
</InputProxyChannelList>
See Also
XML_InputProxyChannel
XML_Cap_InputProxyChannelListCap
InputProxyChannelListCap capability message in XML format
<InputProxyChannelListCap version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<InputProxyChannel>
<id min="" max=""/><!--req,xs:string,starts from 1-->
<name min="" max=""/><!--opt,xs:string-->
<sourceInputPortDescriptor><!--req-->
<adminProtocol opt="HIKVISION,SONY,ISAPI,ONVIF,..."/><!--req,xs:string-->
<addressingFormatType opt="ipaddress,hostname"/><!--req,xs:string-->
<hostName min="" max=""/><!--dep, xs:string, domain name-->
<ipAddress min="" max=""/><!--dep, xs:string, IP address-->
<ipv6Address min="" max=""/><!--dep, xs:string, IPv6 address-->
<managePortNo min="" max=""/><!--req, xs:integer, port number-->
<srcInputPort min="" max=""/><!--req, xs:string, channel No.-->
<userName min="" max=""/><!--req, xs:string-->
<password min="" max=""/><!--req, wo, xs:string-->
<streamType opt="auto,tcp,udp"/><!--opt, xs:string-->
<deviceID min="" max=""/><!--dep, xs:string-->
</sourceInputPortDescriptor>
</InputProxyChannel>
</InputProxyChannelListCap>
835
Intelligent Security API (General) Developer Guide
XML_InputProxyChannelStatus
InputProxyChannelStatus message in XML format
<InputProxyChannelStatus version="1.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<id><!--req, xs:string--></id>
<sourceInputPortDescriptor/><!--req-->
<online><!--req, xs:boolean, whether the camera is online--></online>
<streamingProxyChannelIdList><!--req-->
<streamingProxyChannelId>
<!--req, xs:string, stream channel No., e.g., 101-main stream of channel 1, 102-sub-stream of channel 1-->
</streamingProxyChannelId>
</streamingProxyChannelIdList>
<chanDetectResult>
<!--opt, xs:string, network camera status: "connect"-connected, "overSysBandwidth"-insufficient bandwidth,
"domainError"-incorrect domain name, "ipcStreamFail"-getting stream failed, "connecting", "chacnNoError"-incorrect
channel No., "cipAddrConflictWithDev": IP address is conflicted with device address, "ipAddrConflicWithIpc"-IP
address conflicted, "errorUserNameOrPasswd"-incorrect user name or password, "netUnreachable"-invalid network
address, "unknownError"-unknown error, "notExist"-does not exist, "ipcStreamTypeNotSupport"-the stream
transmission mode is not supported, "ipcResolutionNotSupport"-the resolution of network camera is not supported-->
</chanDetectResult>
</InputProxyChannelStatus>
XML_InputProxyChannelStatusList
InputProxyChannelStatusList message in XML format
<InputProxyChannelStatusList version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<InputProxyChannelStatus/><!--opt, see details in XML_InputProxyChannelStatus-->
</InputProxyChannelStatusList>
See Also
XML_InputProxyChannelStatus
XML_IntelliCap
XML message about intelligent capability
<IntelliCap version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<isFaceSupport><!--optional, xs:boolean, whether it supports face detection--></isFaceSupport>
<isBehaviorSupport><!--optional, xs:boolean, whether it supports behavior analysis--></isBehaviorSupport>
<isLineDetectionSupport><!--optional, xs:boolean, whether it supports line crossing detection--></
isLineDetectionSupport>
<isFieldDetectionSupport><!--optional, xs:boolean, whether it supports intrusion detection--></
isFieldDetectionSupport>
<isRegionEntranceSupport><!--optional, xs:boolean, whether it supports region entrance detection--></
isRegionEntranceSupport>
836
Intelligent Security API (General) Developer Guide
837
Intelligent Security API (General) Developer Guide
838
Intelligent Security API (General) Developer Guide
</FaceContrastAnalyzeCap>
<FramesPeopleCountingCap><!--capability of people counting statistics in a single frame-->
<Statistics>
<SearchCondition>
<startTime><!--required, xs:time,ISO8601 time--></startTime>
<endTime><!--required, xs:time,ISO8601 time--></endTime>
</SearchCondition>
</Statistics>
<MaskRegion><!--optional, shielded region-->
<maxRegionNum><!--optional, xs:integer, number of regions--></maxRegionNum>
<Region>
<vertexNum min="3" max="10"><!--optional, xs:integer, number of region vertexes--></vertexNum>
</Region>
</MaskRegion>
</FramesPeopleCountingCap>
<FaceContrastPersonInfoExtend><!--configuration capability of face comparison tag-->
<personInfoCap>
<maxPersonInfo min="0" max="4">
<!--optional, xs:integer, maximum number of person tags-->
</maxPersonInfo>
</personInfoCap>
<personInfoFDlibCap>
<maxPersonInfo min="0" max="4">
<!--optional, xs:integer, maximum number of person tags-->
</maxPersonInfo>
</personInfoFDlibCap>
</FaceContrastPersonInfoExtend>
<isSupportSafetyHelmetDetection>
<!-- opt, xs:boolean, whether it supports hard hat detection-->
</isSupportSafetyHelmetDetection>
<isSupportDistanceRecognition><!--optional, xs:boolean, whether supports distance measurement--></
isSupportDistanceRecognition>
<isSupportATM><!--optional, xs:boolean, ATM intelligent configuraiton, corresponds to URI: /ISAPI/Intelligent/ATM/
capabilities?format=json--></isSupportATM>
<isSupportFaceTemperature><!--optional, xs:boolean, whether the device supports face thermography, corresponds
to URI: /ISAPI/Intelligent/faceTemperature/capabilities?format=json--></isSupportFaceTemperature>
<isSupportFireEscapeDetectionSearch>
<!--optional, xs:boolean, whether the device supports searching for fire engine access detection events of multiple
channels (related URI: URI/ISAPI/Intelligent/fireEscapeDetection/search/capabilities?format=json)-->
</isSupportFireEscapeDetectionSearch>
<isSupportTakingElevatorDetectionSearch>
<!--optional, xs:boolean, whether the device supports searching for elevator detection events of multiple channels
(related URI: /ISAPI/Intelligent/takingElevatorDetection/search/capabilities?format=json)-->
</isSupportTakingElevatorDetectionSearch>
<isSupportCityManagementSearch>
<!--optional, xs:boolean, whether the device supports searching for city management events of multiple channels
(related URI: /ISAPI/Intelligent/cityManagement/search/capabilities?format=json)-->
</isSupportCityManagementSearch>
<isSupportSafetyHelmetDetectionSearch>
<!--optional, xs:boolean, whether the device supports searching for hard hat detection events of multiple channels
(related URI: /ISAPI/Intelligent/safetyHelmetDetection/search/capabilities?format=json)-->
839
Intelligent Security API (General) Developer Guide
</isSupportSafetyHelmetDetectionSearch>
</IntelliCap>
XML_IOCap
IOCap capability message in XML format
<IOCap version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<IOInputPortNums>
<!--opt, xs:integer-->
</IOInputPortNums>
<IOOutputPortNums>
<!--optional, xs:integer, number of output ports in the local device-->
</IOOutputPortNums>
<isSupportStrobeLamp>
<!--opt, xs:integer-->
</isSupportStrobeLamp>
<SoftIOInputPortNums>
<!--opt, xs:integer-->
</SoftIOInputPortNums>
<isSupportIOOutputAdvanceParameter>
<!--opt, xs:boolean, whether supports configuration of alarm input advanced parameters-->
</isSupportIOOutputAdvanceParameter>
<isSupportCombinationAlarm>
<!--opt, xs:boolean, whether supports composite alarm-->
</isSupportCombinationAlarm>
</IOCap>
XML_IOInputPort
IOInputPort message in XML format
<IOInputPort version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<id><!--required, xs:integer, IO port No.--></id>
<enabled><!--required, xs:boolean, whether to enable: "true,false"--></enabled>
<IODescriptor><!--optional, I/O port description-->
<proxyProtocol>
<!--required, string, access protocol, "HIKVISION, AXIS, PANASONIC, BOSCH, PELCO, SONY…"-->
</proxyProtocol>
<userName><!--required, string, user name--></userName>
<addressingFormatType>
<!--required, string, address type: "ipaddress,hostname"-->
</addressingFormatType>
<hostName><!--dep, xs:string--></hostName>
<ipAddress><!--dep, xs:string--></ipAddress>
<ipv6Address><!--dep, xs:string--></ipv6Address>
<managePortNo><!--required, integer, manage port--></managePortNo>
<innerIOPortID><!--required, integer, I/O port--></innerIOPortID>
</IODescriptor>
840
Intelligent Security API (General) Developer Guide
<triggering><!--required, xs:string, condition for triggering alarm output: "high"-high level, "low"-low level. Both the
high level and the low level can trigger continuously--></triggering>
<name><!--optional, xs:string--></name>
<IOUseType>
<!--optional, xs:string, IO using method: "disable"-unused, "openDoor"-open the door, "doorStatus"-door status,
"custom"-custom-->
</IOUseType>
<inputType>
<!--optional, xs:string, input mode: "switch", "semaphore"-->
</inputType>
<CombinationAlarm><!--optional, composite alarm information list-->
<channel><!--required, xs:integer,channel No.--></channel>
<EventTypeList><!--required, event type list-->
<eventType><!--list, xs:string, event type: "VMD"-motion detection", "shelteralarm"-video tampering detection,
"facedetection"-face detection, "fielddetection"-intrusion detection, "linedetection"-line crossing detection,
"regionEntrance"-region entrance detection, "regionExitings"-region exiting detection, "loitering"-loitering detection,
"group"-people gathering detection, "rapidMove"-fast moving detection, "parking"-parking detection,
"unattendedBaggage"-unattended baggage detection, "attendedBaggage"-object removal detection, "ANPR",
"audioexception"-audio exception detection--></eventType>
</EventTypeList>
</CombinationAlarm>
</IOInputPort>
XML_IOInputPortList
IOInputPortList message in XML format
<IOInputPortList version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<IOInputPort/><!--opt, alarm input, see details in XML_IOInputPort-->
</IOInputPortList>
See Also
XML_IOInputPort
XML_IOOutputPort
JSON message about alarm output information
<?xml version="1.0" encoding="utf-8"?>
<IOOutputPort version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<id><!--required, xs:integer, "2"--></id>
<IODescriptor><!--optional, camera IO description-->
<userName><!--required, xs:string, user name--></userName>
<addressingFormatType><!--required, xs:string, address type: "ipaddress", "hostname"--></addressingFormatType>
<hostName><!--dependent, xs:string, host name--></hostName>
<ipAddress><!--dependent, xs:string, IPv4 address--></ipAddress>
<ipv6Address><!--dependent, xs:string, IPv6 address--></ipv6Address>
<managePortNo><!--required, xs:integer, management port No.--></managePortNo>
<innerIOPortID><!--required, xs:integer, camera IO port No.--></innerIOPortID>
841
Intelligent Security API (General) Developer Guide
</IODescriptor>
<PowerOnState>
<!--required, output port configuration parameters when the device is powered on-->
<defaultState>
<!--read-only, required, xs:string, default output port signal when it is not triggered, "high,low"-->
</defaultState>
<outputState>
<!--read-only, required, output port signal when it is being triggered, xs:string, "high,low,pulse"-->
</outputState>
<pulseDuration>
<!--dependent, xs:integer, duration of a output port signal when it is being triggered, it is valid when outputState is
"pulse", unit: milliseconds -->
</pulseDuration>
</PowerOnState>
<name><!--optional, xs:string--></name>
<IOUseType><!--optional, xs:string, "disable,electricLock,custom"--></IOUseType>
<normalStatus><!--optional, xs:string, normal status: open-remain open, close-remain closed--></normalStatus>
<enabled><!--optional, xs:boolean, enable DND of corresponding IO; default value: true--></enabled>
<IOType><!--optional, read-only, xs:string, supported IO port type: "local", "digitalChannel", "analogChannel"; the
default value is "local"--></IOType>
</IOOutputPort>
XML_IOOutputPortList
XML message about alarm output list
<?xml version="1.0" encoding="utf-8"?>
<IOOutputPortList version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<IOOutputPort/><!--optional, see details in XML_IOOutputPort-->
</IOOutputPort>
See Also
XML_IOOutputPort
XML_IOPortData
XML message about triggering parameters of alarm output
<?xml version="1.0" encoding="utf-8"?>
<IOPortData xmlns=“http://www.isapi.org/ver20/XMLSchema”>
<outputState><!--required, xs:string, output level: "high, low"--></outputState>
</IOPortData>
XML_IOPortList
XML message about the alarm input and output information list.
842
Intelligent Security API (General) Developer Guide
XML_IOPortStatus
XML message about alarm output status
<?xml version="1.0" encoding="utf-8"?>
<IOPortStatus version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<ioPortID><!--required, xs: integer, I/O No.: 1, 2--></ioPortID>
<ioPortType><!--required, xs: string, I/O type: "input", "output"--></ioPortType>
<ioState><!--required, xs: string, I/O status: "active", "inactive"--></ioState>
</IOPortStatus>
XML_IOPortStatusList
IOPortStatusList message in XML format
<IOPortStatusList version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<IOPortStatus><!--req-->
<ioPortID><!--req, xs: integer, I/O No.: 1, 2--></ioPortID>
<ioPortType><!--req, xs: string, I/O type: input, output--></ioPortType>
<ioState><!-- req, xs: string, I/O status: active, inactive--></ioState>
</IOPortStatus>
</IOPortStatusList>
XML_IOProxyInputPort
IOProxyInputPort message in XML format
<IOProxyInputPort version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<id><!--req, xs:string--></id>
<enabled><!--req, xs:boolean--></enabled>
<IODescriptor><!--req, xs:string, description about the IO port connected to the front-end device-->
<proxyProtocol><!--req, xs:string, "HIKVISION, AXIS, PANASONIC, BOSCH, PELCO, SONY, …"--></proxyProtocol>
<userName><!--req, wo, xs:string --></userName>
<password><!--req, wo, xs:string --></password>
<addressingFormatType><!--dep, req, xs:enumeration, "ipaddress, hostname, …"--></addressingFormatType>
<hostName><!--dep, xs:string--></hostName>
<ipAddress><!--dep, xs:string--></ipAddress>
<ipv6Address><!--dep, xs:string--></ipv6Address>
<managePortNo><!--req, xs:integer--></managePortNo>
<innerIOPortID><!--req, xs:string, ID--></innerIOPortID>
</IODescriptor>
<triggering><!--req, xs:string, "high, low, rising, falling"--></triggering>
843
Intelligent Security API (General) Developer Guide
<name><!--opt, xs:string--></name>
<CombinationAlarm><!--opt, information list of the combined alarm-->
<channel><!--req, xs:integer, channel No.--></channel>
<EventTypeList><!--req, event type list-->
<eventType>
<!--list, xs:string, event type-->
</eventType>
</EventTypeList>
</CombinationAlarm>
</IOProxyInputPort>
XML_IOProxyInputPortList
IOProxyInputPortList message in XML format
<IOProxyInputPortList version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<IOProxyInputPort/><!--opt, input configuration of one digital channel, see details in the message of
XML_IOProxyInputPort-->
</IOProxyInputPortList>
See Also
XML_IOProxyInputPort
XML_IOProxyOutputPort
IOProxyOutputPort message in XML format
<IOProxyOutputPort version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<id><!--req, xs:string--></id>
<IODescriptor/><!--req-->
<PowerOnState><!--req-->
<defaultState><!--req, xs:string, "high, low"--></defaultState>
<outputState><!--req, xs:string, "high, low, pulse"--></outputState>
<pulseDuration><!--dep, xs:integer, unit: milliseconds--></pulseDuration>
</PowerOnState>
<name><!--opt, xs:string--></name>
</IOProxyOutputPort>
XML_IOProxyOutputPortList
IOProxyOutputPortList message in XML format
<IOProxyOutputPortList version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<IOProxyOutputPort/><!--opt, output configuration of one digital channel, see details in the message of
XML_IOProxyOutputPort-->
</IOProxyOutputPortList>
844
Intelligent Security API (General) Developer Guide
See Also
XML_IOProxyOutputPort
XML_IPAddress
IPAddress message in XML format
<IPAddress version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<ipVersion><!--req, xs:string, "v4,v6,dual"--></ipVersion>
<addressingType><!--req, xs:string, "static,dynamic,apipa--></addressingType>
<ipAddress><!--dep, xs:string, ipv4 address--></ipAddress>
<subnetMask><!--dep, xs:string, subnet mask for IPv4 address--></subnetMask>
<ipv6Address><!--dep, xs:string--></ipv6Address>
<bitMask><!--dep, xs:integer, bitmask IPv6 address--></bitMask>
<DefaultGateway><!--dep-->
<ipAddress><!--dep, xs:string--></ipAddress>
<ipv6Address><!--dep, xs:string--></ipv6Address>
</DefaultGateway>
<PrimaryDNS><!--dep-->
<ipAddress><!--dep, xs:string--></ipAddress>
<ipv6Address><!--dep, xs:string--></ipv6Address>
</PrimaryDNS>
<SecondaryDNS><!--dep-->
<ipAddress><!--dep, xs:string--></ipAddress>
<ipv6Address><!--dep, xs:string--></ipv6Address>
</SecondaryDNS>
<Ipv6Mode><!--opt-->
<ipV6AddressingType><!--dep, xs:string, "router,ra,manual,dhcp"--></ipV6AddressingType>
<ipv6AddressList>
<v6Address>
<id><!--dep, xs:string; id--></id>
<type><--dep, xs:string, "router,ra,manual,dhcp"--></type>
<address><!--dep, xs:string--></address>
<bitMask><!--dep, xs:integer--></bitMask>
</v6Address>
</ipv6AddressList>
</Ipv6Mode>
</IPAddress>
XML_IPFilter
IPFilter message in XML format
<IPFilter version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<enabled><!--req, xs:boolean--></enabled>
<permissionType><!--opt, xs:string, "deny,allow"--></permissionType>
<IPFilterAddressList size = "32"/><!--opt, the character size indicates the max. number of supported IP address. See
845
Intelligent Security API (General) Developer Guide
See Also
XML_IPFilterAddressList
XML_IPFilterAddress
IPFilterAddress message in XML format
<IPFilterAddress version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<id><!--req, xs:string;id--></id>
<permissionType><!--dep, xs:string, "deny,allow" --></permissionType>
<addressFilterType><!--ro, xs:string, "mask, range"--></addressFilterType>
<AddressRange><!--dep, it is valid when <addressFilterType> is "range"-->
<startIPAddress><!--dep, xs:string--></startIPAddress>
<endIPAddress><!--dep, xs:string--></endIPAddress>
<startIPv6Address><!--dep, xs:string--></startIPv6Address>
<endIPv6Address><!--dep, xs:string--></endIPv6Address>
</AddressRange>
<AddressMask><!--dep, it is valid when <addressFilterType> is "mask"-->
<ipAddress><!--dep, xs:string--></ipAddress>
<ipv6Address><!--dep, xs:string--></ipv6Address>
<bitMask><!--opt, xs:string--></bitMask>
</AddressMask>
</IPFilterAddress>
XML_IPFilterAddressList
IPFilterAddressList message in XML format
<IPFilterAddressList version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<IPFilterAddress/><!--opt, see XML_IPFilterAddress for details-->
</IPFilterAddressList>
See Also
XML_IPFilterAddress
XML_IrcutFilter
IrcutFilter message in XML format
<IrcutFilter version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<IrcutFilterType>
<!--opt, xs: string, day/night auto switch mode: "auto, day, night, schedule, eventTrigger, darkFighterX,
darkFighterXAuto, darkFighterXSchedule"-->
846
Intelligent Security API (General) Developer Guide
</IrcutFilterType>
<dayToNightFilterLevel>
<!--opt, xs: string, level of switching day to night: "low, normal, high"-->
</dayToNightFilterLevel>
<dayToNightFilterTime>
<!--opt, xs: integer, time interval of switching day to night-->
</dayToNightFilterTime>
<nightToDayFilterLevel>
<!--opt, xs: string, level of switching night to day: "low, normal, high"-->
</nightToDayFilterLevel>
<nightToDayFilterTime>
<!--opt, xs: integer, time interval of switching night to day-->
</nightToDayFilterTime>
<Schedule><!--dep-->
<scheduleType><!--req, xs: string, schedule type: "day,night"></scheduleType>
<TimeRange><!--req, time period on schedule-->
<beginTime><!--req, xs: time, which is in ISO8601 time format--></beginTime>
<endTime><!--req, xs:time, which is in ISO8601 time format--></endTime>
</TimeRange>
</Schedule>
<EventTrigger><!--dep-->
<eventType><!--req, xs: string, event type: "IO,VMD"></eventType>
<IrcutFilterAction><!--req, xs:string, "day,night"></IrcutFilterAction >
</EventTrigger>
</IrcutFilter>
XML_IrisData
IrisData message in XML format
<IrisData version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<iris>
<!--req, xs: integer, a vector, whose value is the percentage of the maximum iris adjusting speed: negative value-
close iris; positive value-open iris-->
</iris>
</IrisData>
XML_ISPMode
ISPMode message in XML format
<ISPMode version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<mode><!--opt, xs:string, "auto,schedule"--></mode>
<Schedule><!--dep-->
<scheduleType><!--req, xs:string, "day,night"--></scheduleType>
<TimeRange><!--req-->
<beginTime><!--req, xs:time, ISO8601 time--></beginTime>
<endTime><!--req, xs:time, ISO8601 time--></endTime>
</TimeRange>
847
Intelligent Security API (General) Developer Guide
</Schedule>
</ISPMode>
XML_ItemList
ItemList message in XML format
<ItemList>
<Item>
<itemID>
<!--req, xs:string, item ID, which is between 1 and 15-->
</itemID>
<itemOrder>
<!--req, xs:string, name element: "none", "devIp"-device IP address, "time", "buildUnitNo"-building No. and unit
No., "outDoorDevNo"-door station, "unlockType"-unlocking type, "devName"-device name, "deviceNo"-device No.,
"channelName"-channel name, "channelNo"-channel No., "plateNo"-license plate number, "plateColor"-license plate
color, "laneNo"-lane No., "carSpeed"-vehicle speed, "positionInfo1"-camera 1, "pictureNo"-picture No., "CarNo"-
vehicle No., "speedLimit"-speed limit, "illegalCode"-violation code, "siteNo"-intersection No., "directionNo"-direction
No., "carColor"-vehicle color, "platePosition"-license plate coordinates, "carType"-vehicle type, "illegalType"-violation
type, "custom"-->
</itemOrder>
<itemCustomStr>
<!--req, xs:string, element custom string, which is between 1 and 32, unit: bytes. This node is valid only when
<itemOrder> is "custom". Currently traffic cameras only support one custom name-->
</itemCustomStr>
</Item>
</ItemList>
XML_Language
Language message in XML format
<Language version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<type><!--req, xs: string, "GBK,EUC-KR", def="GBK"--></type>
</Language>
XML_LensDistortionCorrection
LensDistortionCorrection message in XML format
<PrivacyMaskRegion version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<id><!--req, xs: integer--></id>
<enabled><!--req, xs: boolean--></enabled>
<RegionCoordinatesList><!--req-->
<RegionCoordinates><!--list-->
<positionX><!--req, xs: integer; coordinate--></positionX>
<positionY><!--req, xs: integer; coordinate--></positionY>
848
Intelligent Security API (General) Developer Guide
</RegionCoordinates>
</RegionCoordinatesList>
<privacymaskName><!--opt, xs: string--></privacymaskName>
<maskType>
<!--opt, xs: string, "gray,red,yellow,blue,orange,green,transparent,half-transparent,mosaic"-->
</maskType>
<zoomdoorlimit><!--opt, xs: integer, the value is between 10 and 1000--></zoomdoorlimit>
</PrivacyMaskRegion>
XML_Link
Link message in XML format
<Link version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<MACAddress><!--req, xs:string--></MACAddress>
<autoNegotiation><!--req, xs:boolean--></autoNegotiation>
<speed><!--req, xs:integer, "10, 100, 1000"--></speed>
<duplex><!--req, xs:string, "half, full"--></duplex>
<MTU><!--req, xs:integer--></MTU>
</Link>
XML_ListMember
ListMember message in XML format
<ListMember version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<id><!-- req, xs:string--></id>
<phoneNumber><!-- req, xs:string, cellphone number,which is sensitive information that needs to be encrypted--></
phoneNumber>
<SupportEntryList> <!-- req -->
<SupportEntry>
<entry><!--req,xs:string,control types: "SMSAlarm"-message linkage, "SMSCtrl"-SMS control, "CallCtrl"-calling
control--></entry>
<enabled><!-- opt, xs:boolean,"true,false" --></enabled>
</SupportEntry>
</SupportEntryList>
<SMSAlarmTypeList> <!-- dep -->
<SMSAlarmType>
<type><!-- req, xs:string, "diskfull, diskerror, nicbroken, ipconflict,illaccess, AlarmInErr, tamper, vmd, wireless, pir,
callhelp, AudioDetection,scenechangeDetection, defocusDetection, facedetection, LineDetection,
FieldDetection,regionEntrance, regionExiting, loitering, group, rapidMove, parking,
unattendedBaggage,attendedBaggage,dataPrealarm,all", event type that triggers message alarms, "all"-determine the
event type that triggers message alarms based on event linkage actions, related URI(/ISAPI/Event/triggers/<ID>) -->
</type>
<enabled><!-- opt, xs:boolean,"true,false" --></enabled>
</SMSAlarmType>
</SMSAlarmTypeList>
<SMSCtrlTypeList>
<SMSCtrlType>
849
Intelligent Security API (General) Developer Guide
XML_localPermission
localPermission message in XML format
<localPermission version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<backup><!—opt, xs:boolean—></backup>
<record><!—opt, xs:boolean—></record>
<playBack><!—opt, xs:boolean—></playBack>
<preview><!—opt, xs:boolean—></preview>
<videoChannelPermissionList><!—opt—>
<videoChannelPermission><!—opt—>
<id><!—req, corresponds to the video input channel ID—></id>
<playBack><!—opt, xs:boolean—></playBack>
<preview><!—opt, xs:boolean—></preview>
<record><!—opt, xs:boolean—></record>
<backup><!—opt, xs:boolean—></backup>
<playBackDoubleVerification>
<!—opt, xs:boolean, whether supports secondary authentication for playback—>
</playBackDoubleVerification>
<backupDoubleVerification>
<!—opt, xs:boolean, whether supports secondary authentication for backup—>
</backupDoubleVerification>
</videoChannelPermission>
</videoChannelPermissionList>
<ptzControl>
<!—req, xs:boolean—>
</ptzControl>
<ptzChannelPermissionList><!—opt—>
<ptzChannelPermission><!—req—>
<id><!—req, corresponds to PTZ channel ID—></id>
<ptzControl><!—opt, xs: boolean—></ptzControl>
</ptzChannelPermission>
</ptzChannelPermissionList>
<logOrStateCheck><!—opt, xs: boolean—></logOrStateCheck>
<parameterConfig><!—opt, xs: boolean—></parameterConfig>
<restartOrShutdown><!—opt, xs: boolean—></restartOrShutdown>
<upgrade><!—opt, xs: boolean—></upgrade>
</localPermission>
850
Intelligent Security API (General) Developer Guide
XML_localPermissionCap
localPermissionCap capability message in XML format
<localPermissionCap version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<backup><!--opt, xs:boolean--></backup>
<record><!--opt, xs:boolean--></record>
<playBack><!--opt, xs:boolean--></playBack>
<preview><!--opt, xs:boolean--></preview>
<videoChannelPermissionList><!--opt-->
<videoChannelPermission><!--opt-->
<id><!--req, corresponds to the video input channel ID--></id>
<playBack><!--opt, xs:boolean--></playBack>
<preview><!--opt, xs:boolean--></preview>
<record><!--opt, xs:boolean--></record>
<backup><!--opt, xs:boolean--></backup>
<playBackDoubleVerification>
<!--opt, xs:boolean, whether supports secondary authentication for playback-->
</playBackDoubleVerification>
<backupDoubleVerification>
<!--opt, xs:boolean, whether supports secondary authentication for backup-->
</backupDoubleVerification>
</videoChannelPermission>
</videoChannelPermissionList>
<ptzControl>
<!--req, xs:boolean-->
</ptzControl>
<ptzChannelPermissionList><!--opt-->
<ptzChannelPermission><!--req-->
<id><!--req, corresponds to PTZ channel ID--></id>
<ptzControl><!--opt, xs: boolean--></ptzControl>
</ptzChannelPermission>
</ptzChannelPermissionList>
<logOrStateCheck><!--opt, xs: boolean--></logOrStateCheck>
<parameterConfig><!--opt, xs: boolean--></parameterConfig>
<restartOrShutdown><!--opt, xs: boolean--></restartOrShutdown>
<upgrade><!--opt, xs: boolean--></upgrade>
</localPermissionCap>
XML_LockByName
XML message about parameters of locking and unlocking video by file name
<?xml version="1.0" encoding="utf-8"?>
<LockByName version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<TrackId><!--required, xs:string, channel ID, e.g., 101 indicates the main stream of channel No.1--></TrackId>
<recordName><!--required, xs:string, file name, the name length is between 1 and 100--></recordName>
<command><!--required, xs:string, operation command: "lock" and "unlock"--></command>
<duration>
851
Intelligent Security API (General) Developer Guide
<!--dependent, xs:integer, locking duration, unit: second; if the value is 0, it indicates that the video will be
permanently locked, this node is valid only when command is set to "lock"-->
</duration>
<recorderCode><!--optional, xs:string, body camera No.--></recorderCode>
<policeCode><!--optional, xs:string, No. of police that collects data, it should be encrypted--></policeCode>
</LockByName>
XML_LockCap
XML message about video locking and unlocking capability
<?xml version="1.0" encoding="utf-8"?>
<LockCap version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<LockByName><!--optional, lock or unlock video by file name-->
<TrackId><!--required, xs:string--></TrackId>
<recordName min="1" max="100"><!--required, xs:string, video file name--></recordName>
<command opt="lock,unlock"><!--required, xs:string, operation command: "lock" and "unlock"--></command>
<duration min="" max=""><!--dependent, xs:integer, locking duration, unit: second--></duration>
<recorderCode min="1" max="100"><!--optional, xs:string, body camera No.--></recorderCode>
<policeCode min="1" max="100">
<!--optional, xs:string, No. of police that collects data, it should be encrypted-->
</policeCode>
</LockByName>
<LockByTime><!--optional, lock or unlock video by time-->
<TrackId><!--required, xs:string--></TrackId>
<recordType opt= "ALL, MANUAL, CMR, MOTION, ALARM, EDR, ALARMANDMOTION, COMMAND, SMART">
<!--required, xs:string-->
</recordType>
<startDateTime><!--dependent, xs:time, ISO8601 time format, e.g., 2004-05-03T17:30:08+08:00--></startDateTime>
<endDateTime><!-- dependent, xs:time, ISO8601 time format, e.g., 2004-05-03T17:30:08+08:00--></endDateTime>
<command opt="lock,unlock"><!--required, xs:string--></command>
<duration min="" max=""><!--dependent, xs:integer--></duration>
</LockByTime>
</LockCap>
XML_LockPTZ
LockPTZ message in XML format
<LockPTZ version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<lockTime>
<!--req, xs:integer, PTZ is unlocked when this node is set to 0, unit: second-->
</lockTime>
</LockPTZ>
852
Intelligent Security API (General) Developer Guide
XML_LogConfig
LogConfig message in XML format.
<LogConfig version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<enabled><!--required, boolean type, whether to enable log--></enabled>
<level>
<!--required, string type, log types: "none,debug,info,error,fault,all", multiple type can be selected, and each type
should be separated by comma-->
</level>
</LogConfig>
XML_LogServer
XML message about log server information
<LogServer version="2.0" xmlns="http://www.std-cgi.org/ver20/XMLSchema">
<enabled><!--required, xs: boolean, opt="true,false"--></enabled>
<addressingFormatType>
<!--required, xs: string, "ipaddress,hostname"-->
</addressingFormatType>
<hostName><!--dependent, xs: string--></hostName>
<ipAddress><!--dependent, xs: string--></ipAddress>
<ipv6Address><!--dependent, xs: string--></ipv6Address>
<portNo><!--optional, xs: integer--></portNo>
<transmissionEncryption>
<!--optional, xs:boolean, whether to enable transmission encryption: "true"-yes, "false"-no (default). If this field is
not supported, the default encryption method is TLS-->
</transmissionEncryption>
<checkCertificate>
<!--optional, xs:boolean,whether to enable checking certificates-->
</checkCertificate>
<uploadInterval>
<!--optional, xs:integer, log uploading interval, which is 1 hour by default, range: [1,24],unit: hour-->
</uploadInterval>
</LogServer>
XML_LogServerCap
XML message about log server capability
<LogServerCap version="2.0" xmlns="http://www.std-cgi.org/ver20/XMLSchema">
<enabled opt="true,false"></enabled>
<addressingFormatType opt="ipaddress,hostname">
<!--required, xs:string,"ipaddress,hostname"-->
</addressingFormatType>
<hostName min="" max="">
<!--dependent, xs:string-->
853
Intelligent Security API (General) Developer Guide
</hostName>
<ipAddress min="" max=""><!--dep, xs:string--></ipAddress>
<ipv6Address min="" max=""><!--dep, xs:string--></ipv6Address>
<portNo min="" max=""><!--opt, xs:integer--></portNo>
<transmissionEncryption opt="true,false">
<!--optional, xs:boolean, whether to enable transmission encryption: "true"-yes, "false"-no (default). If this field is
not supported, the default encryption method is TLS-->
</transmissionEncryption>
<checkCertificate opt="true,false">
<!--optional, xs:boolean,whether to enable checking certificates-->
</checkCertificate>
<uploadInterval min="1" max="24" def="1">
<!--optional, xs:integer, log uploading interval, which is 1 hour by default, range: [1,24],unit: hour-->
</uploadInterval>
</LogServerCap>
XML_LogServerTestDescription
LogServerTestDescription message in XML format
<LogServerTestDescription>
<addressingFormatType>
<!--required, xs:string, "ipaddress,hostname"-->
</addressingFormatType>
<hostName><!--dependent, xs:string--></hostName>
<ipAddress><!--dependent, xs:string--></ipAddress>
<ipv6Address><!--dependent, xs:string--></ipv6Address>
<portNo><!--optional, xs:integer--></portNo>
<transmissionEncryption><!--optional, xs:boolean, whether to enable transmission encryption, and it is disabled by
default. If this field is not supported, the default encryption method used by the device is TLS--></
transmissionEncryption>
<checkCertificate><!--optional, xs:boolean, whether to enable checking certificate--></checkCertificate>
<uploadInterval><!--optional, xs:integer, log upload interval, which is 1 hour by default, range: [1,24], unit: hour--></
uploadInterval>
</LogServerTestDescription>
XML_Log_CMSearchDescription
XML message about log search condition
<CMSearchDescription version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<searchID>
<!--required, xs:string, search ID, e.g., {812F04E0-4089-11A3-9A0C-0305E82C2906}-->
</searchID>
<trackIDList>
<trackID>
<!--required, xs:integer, ID, XX01-search for the main stream video of channel XX, XX03-search for the pictures of
channel XX-->
</trackID>
854
Intelligent Security API (General) Developer Guide
</trackIDList>
<metaId>
<!--required, xs:string, format: log.std-cgi.com/<majorType>/<minorType>; <majorType> represents the major log
type and <minorType> is the minor log type, see details in Log Type for ISAPI-->
</metaId>
<timeSpanList>
<timeSpan>
<startTime><!--required, xs:time, ISO8601 time, start time of search, e.g.: 2017-08-02T00:00:00Z--></startTime>
<endTIme><!--required, xs:time, ISO8601 time, end time of search, e.g.: 2017-08-02T23:59:59Z--></endTime>
<timeSpan>
</timeSpanList>
<searchResultPostion><!--required, xs:integer, start position of search--></searchResultPostion>
<maxResults><!--optional, xs:integer, maximum number of returned results--></maxResults>
</CMSearchDescription>
See Also
Log Types for ISAPI
XML_Log_CMSearchResult
XML message about log search results
<CMSearchResult version="2.0" xmlns="http://www.isapi.com/ver20/XMLSchema">
<searchID><!--required, xs:string, search ID--></searchID>
<responseStatus><!--required, xs:string, search status--></responseStatus>
<responseStatusStrg><!--required, xs:string, search status string: Ok, NO MATCHES, More--></responseStatusStrg>
<totalMatches><!--optional, xs:integer, total number of matched records--></totalMatches>
<numOfMatches><!--optional, xs:integer, number of returned records--></numOfMatches>
<matchList>
<searchMatchItem>
<logDescriptor>
<metaId><!--required, xs:string, format: log.std-cgi.com/<majorType>/<minorType>; <majorType> represents the
major log type and <minorType> is the minor log type, see details in Log Type for ISAPI--></metaId>
<StartDateTime><!--required, xs:time, ISO8601 time--></StartDateTime>
<localID><!--optional, xs:string, channel No.--></localID>
<paraType><!--optional, xs:string--></paraType>
<userName><!--optional, xs:string--></userName>
<logInfo><!--dependent, log details-->
<OpenDoorRecord>
<type><!—required, xs: string, unlocking type: password, hijack (unlock under duress), card, resident, center--
></type>
</OpenDoorRecord>
<VisAlarmRecord>
<type>
<!—required, xs: string, alarm category: zone (zone alarm), dismantle (tampering alarm), hijack (duress alarm),
passwordErr (wrong password alarm), doorNotOpen-(door closed alarm), doorNotClose (door open alarm), SOS,
callReq (call request alarm), smartLockHijackFingerPrint (fingerprint duress alarm), smartLockHijackPassword
(password duress alarm), smartLockBreaking (forced-open door alarm), smartLockBeLocked (door locked alarm),
smartLockLowBattery (low battery alarm)-->
</type>
855
Intelligent Security API (General) Developer Guide
</VisAlarmRecord>
</logInfo>
<ipAddress><!--optional, xs:string--></ipAddress>
<object><!--optional, xs:string, "network", "keypad", "remoteCtrl"-keyfob, "card"--></object>
<params><!--optional, xs:string, parameters, such as zone No. and so on--></params>
<seq><!--optional, xs:string, serial No.--></seq>
<additionInformation><!--optional, xs:string, additional information--></additionInformation>
</logDescriptor>
</searchMatchItem>
</matchList>
</CMSearchResult>
See Also
Log Types for ISAPI
XML_MACFilter
MACFilter message in XML format
<MACFilter version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<enabled><!--req, xs:boolean--></enabled>
<permissionType><!--req, xs:string,"deny, allow"--></permissionType>
<MACFilterAddressList>
<MACFilterAddress>
<id><!--req, xs:string, id--></id>
<MACAddress><!--req, xs:string--></MACAddress>
</MACFilterAddress>
</MACFilterAddressList>
</MACFilter>
XML_mailing
mailing message in XML format.
<mailing version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<id><!--req, xs:string--></id>
<enabled><!--opt, xs:boolean--></enabled>
<sender><!--req-->
<name><!--req, xs:string--></name>
<emailAddress><!--req, xs:string--></emailAddress>
<smtp><!--req-->
<enableAuthorization><!--req, xs:boolean--></enableAuthorization>
<enableSSL><!--opt, xs:boolean--></enableSSL>
<addressingFormatType>
<!--req, xs:string,"ipaddress,hostname"-->
</addressingFormatType>
<hostName><!--dep, xs:string--></hostName>
<ipAddress><!--dep, xs:string--></ipAddress>
<ipv6Address><!--dep, xs:string--></ipv6Address>
856
Intelligent Security API (General) Developer Guide
<portNo><!--opt, xs:integer--></portNo>
<accountName><!--dep, xs:string--></accountName>
<password><!--dep, xs:string--></password>
<enableTLS><!--opt, xs:boolean--></enableTLS>
<startTLS><!--dep, xs:boolean--></startTLS>
</smtp>
</sender>
<receiverList><!--req-->
<receiver><!--req-->
<id><!--req, xs:string--></id>
<name><!--req, xs:string--></name>
<emailAddress><!--req,xs:string--></emailAddress>
</receiver>
</receiverList>
<attachment><!--opt-->
<snapshot><!--opt-->
<enabled><!--req, xs:boolean--></enabled>
<interval><!--req, xs:integer, unit: second--></interval>
</snapshot>
</attachment>
</mailing>
XML_mailingList
mailingList message in XML format
<mailingList version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<mailing><!--opt,xs:string--></mailing>
</mailingList>
XML_mailingTestResult
mailingTestResult message in XML format
<mailingTestResult version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<errorDescription><!--req, xs:string--></errorDescription>
</mailingTestResult>
XML_mailingTestDescription
mailingTestDescription message in XML format.
<mailingTestDescription version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<sendName><!--opt, xs:string--></sendName>
<sendEmailAddress><!--req, xs:string--></sendEmailAddress>
<addressingFormatType>
<!--req, xs:string,"ipaddress,hostname"-->
857
Intelligent Security API (General) Developer Guide
</addressingFormatType>
<hostName><!--dep, xs:string--></hostName>
<ipAddress><!--dep, xs:string--></ipAddress>
<ipv6Address><!--dep, xs:string--></ipv6Address>
<portNo><!--req, xs:integer--></portNo>
<enableSSL><!--opt, xs:boolean--></enableSSL>
<enableAuthorization><!--req, xs:boolean--></enableAuthorization>
<accountName><!--dep, xs:string--></accountName>
<password><!--dep, xs:string--></password>
<receiverList><!--req-->
<receiver><!--req-->
<id><!--req, xs:string--></id>
<name><!--req, xs:string--></name>
<emailAddress><!--req, xs:string--></emailAddress>
</receiver>
</receiverList>
</mailingTestDescription>
XML_MasterSlaveTrackingCap
MasterSlaveTrackingCap capability message in XML format
<MasterSlaveTrackingCap version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<isSupportSlaveCameraCfg>
<!--optional, xs:boolean, whether to support PTZ camera configuration-->
</isSupportSlaveCameraCfg>
<isSupportSlaveCameraStatus>
<!--optional, xs:boolean, whether to support PTZ camera status configuration-->
</isSupportSlaveCameraStatus>
<isSupportSlaveCameraTrackingRatio>
<!--optional, xs:boolean, whether to support PTZ camera zoom ratio configuration-->
</isSupportSlaveCameraTrackingRatio>
<isSupportSlaveCameraTracking>
<!--optional, xs:boolean, whether to support PTZ camera tracking-->
</isSupportSlaveCameraTracking>
<isSupportLinkedTracking>
<!--optional, xs:boolean, whether device supports advanced parameters configuration of linked tracking (related
URI: /ISAPI/MasterSlaveTracking/linkedTracking?format=json)-->
</isSupportLinkedTracking>
</MasterSlaveTrackingCap>
XML_MaxElevation
MaxElevation message in XML format
<MaxElevation version="1.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<mElevation><!--req, xs:integer, the lower limit of max. tilt-angle--></mElevation>
</MaxElevation>
858
Intelligent Security API (General) Developer Guide
XML_messageConfig
messageConfig message in XML format
<messageConfig version="1.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<enabled/> <!-- req, xs:boolean,"true,false" -->
<SMSWhiteList/>
</messageConfig>
XML_messageConfigCap
messageConfigCap message in XML format
<messageConfigCap version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<supportEntry opt="SMSAlarm,SMSCtrl,CallCtrl">
<!--req,xs:string,control types: "SMSAlarm"-message linkage, "SMSCtrl"-SMS control, "CallCtrl"-calling control-->
</supportEntry>
<SMSAlarmType
opt="diskfull,diskerror,nicbroken,ipconflict,illaccess,AlarmInErr,tamper,vmd,wireless,pir,callhelp,AudioDetection,scene
changeDetection,defocusDetection,facedetection,LineDetection,FieldDetection,regionEntrance,regionExiting,loitering,
group,rapidMove,parking,unattendedBaggage,attendedBaggage,dataPrealarm,all"/>
<!--req, event type that triggers message alarms, "all"-determine the event type that triggers message alarms based
on event linkage actions related URL: /ISAPI/Event/triggers/<ID>-->
<SMSCtrlType opt="messageReboot,dial,getDialStatus,SMSAlarm"/>
<!-- req,xs:string, message operations: "messageReboot"-reboot message, “dial”-enable/disable dial-up,
"getDialStatus"-get dial-up status, "SMSAlarm"- receive/ reject message linkage-->
<name min="0" max="32"><!--opt, xs:string, contact name,which is sensitive information that needs to be
encrypted--></name>
<maxListMemberNum><!--opt, xs:integer,max. number of SMS contacts,which is 8 by default--></
maxListMemberNum>
</messageConfigCap>
XML_MotionDetection
XML message about motion detection parameters
<MotionDetection version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<enabled><!--required, xs:boolean, whether to enable motion detection--></enabled>
<enableHighlight><!--optional, xs:boolean, whether to enable highlight--></enableHighlight>
<samplingInterval><!--optional, xs:integer, number of frames--></samplingInterval>
<startTriggerTime><!--optional, xs:integer, unit: millisecond--></startTriggerTime>
<endTriggerTime><!--opt, xs:integer, unit: millisecond--></endTriggerTime>
<regionType><!--required, read-only, xs:string, region type: "grid", "roi", "none", "region"--></regionType>
<Grid><!--dependency-->
<rowGranularity><!--required, read-only, xs:integer--></rowGranularity>
<columnGranularity><!--required, read-only, xs:integer--></columnGranularity>
</Grid>
<ROI><!--dependency-->
859
Intelligent Security API (General) Developer Guide
XML_MotionDetectionGridLayout
XML message about grid layout parameters of motion detection
<?xml version="1.0" encoding="utf-8"?>
<MotionDetectionGridLayout version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<sensitivityLevel><!--required, xs:integer, sensitivity, which is between 0 and 100--></sensitivityLevel>
<layout>
<gridMap>
<!--dependent, xs:string, the image is divided in to N × N grids, each grid can be enabled (value: 1) or disabled
(value 0) motion detection, each four horizontal grids consist of a hexadecimal number, e.g., the corresponding
hexadecimal number of "0011" is 3-->
</gridMap>
<roiMap><!--dep,xs:string--></roiMap>
<RegionList size="4"><!--this node is available when the regionType is set to "region"-->
<Region><!--list-->
<id><!--required, xs:string--></id>
<RegionCoordinatesList><!--opt-->
<RegionCoordinates><!--list-->
<positionX><!--required, xs:integer; X-coordinate--></positionX>
<positionY><!--required, xs:integer; Y-coordinate--></positionY>
</RegionCoordinates>
860
Intelligent Security API (General) Developer Guide
</RegionCoordinatesList>
</Region>
</RegionList>
</layout>
<targetType opt="human,vehicle"><!--optional, xs:string, target type, "human", "vehicle"--></targetType>
</MotionDetectionGridLayout>
XML_MotionDetectionLayout
XML message about rule region parameters of motion detection
<?xml version="1.0" encoding="utf-8"?>
<MotionDetectionLayout version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<sensitivityLevel><!--required, xs:integer, sensitivity, which is between 0 and 100--></sensitivityLevel>
<layout>
<gridMap>
<!--dependent, xs:string, the image is divided in to N × N grids, each grid can be enabled (value: 1) or disabled
(value 0) motion detection, each four horizontal grids consist of a hexadecimal number, e.g., the corresponding
hexadecimal number of "0011" is 3-->
</gridMap>
<roiMap><!--dependent,xs:string--></roiMap>
<RegionList size="4"><!--this node is available when the regionType is set to "region"-->
<Region><!--list-->
<id><!--required, xs:string--></id>
<RegionCoordinatesList><!--opt-->
<RegionCoordinates><!--list-->
<positionX><!--required, xs:integer; X-coordinate--></positionX>
<positionY><!--required, xs:integer; Y-coordinate--></positionY>
</RegionCoordinates>
</RegionCoordinatesList>
</Region>
</RegionList>
</layout>
<targetType opt="human,vehicle"><!--optional, xs:string, target type, "human", "vehicle"--></targetType>
</MotionDetectionLayout>
XML_MotionDetectionScheduleList
XML message about arming schedules of motion detection
<?xml version="1.0" encoding="utf-8"?>
<MotionDetectionScheduleList version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<Schedule/><!--see details in the message XML_Schedule-->
</MotionDetectionScheduleList>
See Also
XML_Schedule
861
Intelligent Security API (General) Developer Guide
XML_MountingScenario
MountingScenario message in XML format
<MountingScenario version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<mode>
<!--req, xs:string,
"indoor,outdoor,day,night,morning,nightfall,mode1,mode2,mode3,mode4,highway,road2,faceSnap,backlight,frontlight
", "lowIllumination"-low illumination, "backlight"-back light, "frontlight"-front light, "faceSnap"-face picture capture-->
</mode>
</MountingScenario>
XML_MountList
MountList message in XML format
<MountList version="1.0" xmlns="http://www.isapi.com/ver20/XMLSchema">
<Mount>
<id><!--req, xs: integer, storage node ID--></id>
<path><!--req, xs: string, saving path--></path>
<dir><!--req, xs: string--></dir>
<size><!--req, xs: string,, storage size--></size>
<descr><!--req, xs: string, storage description--></descr>
</Mount>
</MountList>
XML_Manual_PTZData
XML message about manual PTZ control parameters
<?xml version="1.0" encoding="utf-8"?>
<PTZData version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<pan><!--optional, xs:integer, panning range: [-100,100]--></pan>
<tilt><!--optional, xs:integer, tilting range: [-100,100]--></tilt>
<zoom><!--optional, xs:integer, zooming range: [-100,100]. If zoom value is 0, this node should not be configured--></
zoom>
</PTZData>
XML_NetworkCap
NetworkCap capability message in XML format
<NetworkCap version="2.0" xmlns=“http://www.isapi.org/ver20/XMLSchema">
<isSupportWireless>
<!--req, xs:boolean, whether it supports accessing via wireless network, "true"-yes, "false"-no-->
<isSupportWireless>
862
Intelligent Security API (General) Developer Guide
863
Intelligent Security API (General) Developer Guide
864
Intelligent Security API (General) Developer Guide
<isSupportVerificationCodeCheck>
<!--optional, xs: boolean, whether it supports verifying and configuring the verification code, true-yes, if this node
is not returned or the value of the returned node is false, it indicates that not support-->
</isSupportVerificationCodeCheck>
<isSupportOldVerificationCode><!--optional, xs:boolean, whether it supports old EZVIZ password configuration. The
old password contains six uppercase letters--></isSupportOldVerificationCode>
</VerificationCodeModification>
<EZVIZSecretKey>
<!--optional, whether it supports capability of editing verification code for Guarding Vision-->
<offlineStatus>
<!--ro,dep,xs:string; it is valid when registerStatus values "false", device offline status, opt="secretKeyInvalid"-
invalid verification code-->
</offlineStatus>
<secretKey min="0" max="64"><!--optional, xs:string, verification code for Guarding Vision--></secretKey>
</EZVIZSecretKey>
<isSupportplatformAccess><!--optional, xs:boolean, capability of accessing the platform, whether it supports filtering
IP addresses that access to the platform--></isSupportplatformAccess>
<isSupportIntegrate><!--optional, xs:boolean--></isSupportIntegrate>
<isSupportIntelligentBoost><!--optional, xs:boolean, whether it supports bandwidth adaption--></
isSupportIntelligentBoost>
<isSupportWebSocket><!--optional, xs:boolean--></isSupportWebSocket>
<isSupportWebSocketS><!--optional, xs:boolean--></isSupportWebSocketS>
<isSupportHostName>
<!--optional, xs:boolean, whether it supports host name, related URI: /ISAPI/System/Network/interfaces/<ID>/
hostName/capabilities?format=json-->
</isSupportHostName>
<isSupportResourceStatistics><!--optional, xs:boolean, whether supports network resource information--></
isSupportResourceStatistics>
<isSupportBandwidthLimit><!--optional, xs:boolean--></isSupportBandwidthLimit>
<isSupportPOEPortsDisableServer><!--optional, xs:boolean--></isSupportPOEPortsDisableServer>
<isSupportPOEConfiguration><!--optional, xs:boolean--></isSupportPOEConfiguration>
<Adaption>
<streamType opt="0,1,2,3,4,5,7,8,9,10">
<!--stream types that support network self-adaptive during live view: 0-main stream, 1-sub-stream, 2-third stream,
3-virtual stream, 4-stream 5, 5-stream 6, 7-stream 7, 8-stream 8, …, and so on-->
</streamType>
<isSupportPlayback><!--optional, xs: boolean, whether it supports self-adaptive during playback--></
isSupportPlayback>
</Adaption>
<isSupportVideoImgDB><!--optional, xs:boolean, whether it supports configuring the image and video library--></
isSupportVideoImgDB>
<isSupportEventDataOverWebSocket opt="true,false"><!--optional, xs:boolean, whether it supports uploading
events via WebSocket--></isSupportEventDataOverWebSocket>
<isSupportDynamicHostName><!--optional, xs:boolean, whether it supports configuring dynamic domain name--></
isSupportDynamicHostName>
<isSupportWifiProbe><!--optional, xs:boolean, whether it supports Wi-Fi probe configuration--></
isSupportWifiProbe>
<isSupportRFIDData><!--optional, xs:boolean, whether it supports configuration of RFID data collection--></
isSupportRFIDData>
<isSupportwifiProbeSSID><!--optional, xs:boolean, whether it supports SSID configuration of Wi-Fi probe--></
isSupportwifiProbeSSID>
<isSupportPOEPortsDisableAdaptiveServer><!--optional, xs:boolean--></isSupportPOEPortsDisableAdaptiveServer>
865
Intelligent Security API (General) Developer Guide
XML_NetworkInterface
NetworkInterface message in XML format
<NetworkInterface version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<id><!--req, xs:string--></id>
<IPAddress/><!--req-->
<Wireless/><!--opt-->
<Discovery/><!--opt-->
<Link/><!--opt-->
<defaultConnection><!--opt, xs:boolean, default network connection, this node is required when the device has
multiple network interfaces--></defaultConnection>
<ActiveMulticast>
<enabled><!--req, xs:boolean--></enabled>
<streamID opt="main"><!--req, xs:string--></streamID>
<ipV4Address><!--opt, xs:string--></ipV4Address>
<ipV6Address><!--opt, xs:string--></ipV6Address>
<port min="" max=""><!--opt, xs:integer--></port>
</ActiveMulticast>
<macAddress min="" max=""><!--opt, xs:string--></macAddress>
<EthernetPortList size="4"><!--opt, network interface information-->
<EthernetPort><!--opt-->
<id><!--req, xs: integer, min="1",max="4"--></id>
<MACAddress><!--req, xs:string--></MACAddress>
<status><!--opt, xs:string; opt="connected, disconnect"--></status>
<speed><!--req, xs:integer, "10, 100, 1000,10000"--></speed>
</EthernetPort>
866
Intelligent Security API (General) Developer Guide
</EthernetPortList>
</NetworkInterface>
XML_NetworkInterfaceList
NetworkInterfaceList message in XML format
<NetworkInterfaceList version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<NetworkInterface/><!--opt, see details in the message of XML_NetworkInterface-->
</NetworkInterfaceList>
See Also
XML_NetworkInterface
XML_NetWorkMode
NetWorkMode message in XML format
<NetWorkMode version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<workMode><!--opt, xs:string, working mode: "close", "wifi"-Wi-Fi configuration, "wifiAp"-Wi-Fi access point (Wi-Fi
server) configuration--></workMode>
</NetWorkModeParam>
XML_NoiseReduce
NoiseReduce message in XML format
<NoiseReduce version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<mode><!--req, xs: string, 3D DNR mode: "close, general, advanced"--></mode>
<GeneralMode><!--dep, this node is valid only when <mode> is "general"-->
<generalLevel><!--req, xs: integer--></generalLevel>
</GeneralMode>
<AdvancedMode><!--dep, this node is valid only when <mode> is "advanced"-->
<FrameNoiseReduceLevel><!--req, xs: integer--></FrameNoiseReduceLevel>
<InterFrameNoiseReduceLevel><!--req, xs: integer--></InterFrameNoiseReduceLevel>
</AdvancedMode>
</NoiseReduce>
XML_NTPServer
NTPServer message in XML format
<NTPServer version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<id><!--req, xs:string, NTP server ID--></id>
<addressingFormatType>
867
Intelligent Security API (General) Developer Guide
<!--req, xs:string, which field will be used to locate the NTP server: "ipaddress, hostname"-->
</addressingFormatType>
<hostName><!--dep, xs:string--></hostName>
<ipAddress><!--dep, xs:string--></ipAddress>
<ipv6Address><!--dep, xs:string--></ipv6Address>
<portNo><!--opt, xs:integer--></portNo>
<synchronizeInterval>
<!--opt, xs:integer, NTP time synchronization interval, unit: minute-->
</synchronizeInterval>
</NTPServer>
XML_NTPServerList
NTPServerList message in XML format
<NTPServerList version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<NTPServer/><!--opt, see details in the message of XML_NTPServer-->
</NTPServerList>
See Also
XML_NTPServer
XML_NTPTestDescription
NTPTestDescription message in XML format
<NTPTestDescription version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<addressingFormatType>
<!--req, xs:string, "ipaddress,hostname"-->
</addressingFormatType>
<hostName><!--dep, xs:string--></hostName>
<ipAddress><!--dep, xs:string--></ipAddress>
<ipv6Address><!--dep, xs:string--></ipv6Address>
<portNo><!--req, xs:integer--></portNo>
</NTPTestDescription>
XML_NTPTestResult
NTPTestResult message in XML format
<NTPTestResult version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<errorDescription><!--req, xs:string--></errorDescription>
</NTPTestResult>
868
Intelligent Security API (General) Developer Guide
XML_OnlineUpgradeCap
OnlineUpgradeCap message in XML format
<OnlineUpgradeCap version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<firmwareNum max="" />
<!--req, the number of online upgrade packages, including full package and incremental package. Full package is
used for upgrading whole firmware, while incremental package is used for upgrade certain unit, such as openssl
library-->
<firmwareCode max="" />
<!--req, the maximum length of firmware code-->
<firmwareVersion max="" />
<!--req, the maximum length of version-->
<firmwareCodeNumOnce max="" />
<!--req, the maximum number of firmware codes can be obtained each time-->
<upgradePercent min="" max="" />
<!--req-->
<Version>
<!--req, upgrade package version information-->
<newVersion max="" />
<!--req-->
<changeLog max="" />
<!--req-->
</Version>
<DeviceParameter>
<!--opt, online upgrade parameters-->
<isSupportAutoDownloadPackage>
<!--opt,xs:boolean,"true,false", whether supports automatic download of upgrade package-->
</isSupportAutoDownloadPackage>
<notSupportAutoUpgrade>
<!--opt,xs:boolean,"true,false", whether not support automatic download of upgrade package and automatic
upgrade-->
</notSupportAutoUpgrade>
<isSupportTimingUpgrade>
<!--opt,xs:boolean,"true,false", whether supports scheduled upgrade-->
</isSupportTimingUpgrade>
</DeviceParameter>
<ManualDownloadPackage>
<!--opt, manually download upgrade package-->
<supportOperation opt="start,cancel,pause,resume" />
<!--opt, supported operations: "start,cancel,pause,resume"-->
</ManualDownloadPackage>
<isSupportIgnoreCurrentVersion>
<!--opt, xs:boolean, "true,false", whether supports ignoring current version-->
</isSupportIgnoreCurrentVersion>
</OnlineUpgradeCap>
869
Intelligent Security API (General) Developer Guide
XML_OnlineUpgradeStatus
OnlineUpgradeStatus message in XML format
<OnlineUpgradeStatus version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<status>
<!--ro, req, xs:string,
"notUpgrade,upgrading,successful,languageMismatch,writeFlashError,packageTypeMismatch,packageVersionMismatc
h,netUnreachable,unknownError"-->
</status>
<percent><!-- ro, req, xs:integer “0-100” --></percent>
</OnlineUpgradeStatus>
XML_OnlineUpgradeVersion
OnlineUpgradeVersion message in XML format
<OnlineUpgradeVersion version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<newVersionAvailable><!--ro,req,xs:boolean, whether there is new verion of upgrade package--></
newVersionAvailable>
<newVersion><!--ro, dep,xs:string, new version No.--></newVersion>
<changeLog><!--ro, dep,xs:string, update content of new version--></changeLog>
</OnlineUpgradeVersion>
XML_Cap_SerialPortList
XML message about the capability of all serial ports
<?xml version="1.0" encoding="utf-8"?>
<SerialPortList version="2.0" xmlns="http://www.hikvision.com/ver20/XMLSchema">
<SerialPort>
<id><!--required, xs:integer, serial port ID--></id>
<enabled opt="true,false"><!--optional, xs:boolean, whether to enable--></enabled>
<serialNumber opt="1,2,3,4,5"><!--optional, xs:integer, serial port No., value range: [1,5]--></serialNumber>
<serialPortType opt="RS-485,RS-422,RS-232"><!--optional, xs:string, serial port type: "RS-485", "RS-422", "RS-232"--
></serialPortType>
<duplexMode opt="half,full"><!--optional, xs:string, duplex mode of the serial port: "half" (half-duplex mode), "full"
(full-duplex mode)--></duplexMode>
<direction opt="monodirectional,bdirectional"><!--optional, xs:string, communication direction of the serial port:
"monodirectional"-unidirectional, "bdirectional"-bidirectional--></direction>
<baudRate opt="2400,4800,9600,19200,38400,57600,115200"><!--optional, xs:integer, baud rate--></baudRate>
<dataBits opt="7,8"><!--optional, xs:integer, data bit. The data bits follow the start bit and they indicate the valid
information during communication. The number of data bits is determined by both communication parties and
generally it is 7 or 8--></dataBits>
<parityType opt="none,even,odd,mark,space"><!--optional, xs:string, communication parity type of the serial port:
"none"-no parity bit, "even"-even parity, "odd"-odd parity, "mark"-the parity bit is always 1, "space"-the parity bit is
always 0--></parityType>
<stopBits opt="1,1.5,2"><!--optional, xs:string, number of stop bits--></stopBits>
870
Intelligent Security API (General) Developer Guide
871
Intelligent Security API (General) Developer Guide
XML_OnlineUpgradeServer
OnlineUpgradeServer message in XML format
<OnlineUpgradeServer version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<connectStatus><!--ro, req xs:boolean, online upgrade server connection status--></connectStatus>
</OnlineUpgradeServer>
XML_OnlineUserList
XML message about information of online users
<OnlineUserList version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<OnlineUser>
<id><!--required, xs:string--></id>
<name><!--optional, xs:string--></name>
<type><!--optional, xs:string, "admin,operator,viewer"--></type>
<loginTime><!--optional, xs:time, ISO 8601 time--></loginTime>
<clientAddress>
<ipAddress><!--optional, xs:string--></ipAddress>
<ipv6Address><!--optional, xs:string--></ipv6Address>
</clientAddress>
</OnlineUser>
</OnlineUserList>
XML_Palettes
Palettes message in XML format
<Palettes version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<mode><!--opt, xs:string,
"WhiteHot,BlackHot,Fusion1,Rainbow,Fusion2,Ironbow1,Ironbow2,Sepia,Color1,Color2,IceFire,Rain,RedHot,GreenHot,
DeepBlue,Color3"--></mode>
<ColorateTarget><!--dep, colorate target, it is valid when mode is "WhiteHot"-->
<ColorateTargetModeList>
<ColorateTargetMode>
<id><!--req, xs:integer, serial number, starts from 1--></id>
<mode>
<!--req, xs:string, colorate target mode; colorateHotAreae-colorate area with temperature high than configured
threshold, colorateIntervalArea-colorate area with temperature between the configured threshold, colorateColdArea-
colorate area with temperature lower than the configured threshold-->
</mode>
<enabled><!--req, xs:bool, "true,false"--></enabled>
<TemperatureLimit><!--req, temperature limit-->
<minTemperature><!--dep, it is valid when mode is "colorateHotAreae"/"colorateIntervalArea", xs: float--></
minTemperature>
<maxTemperature><!--dep, it is valid when mode is "colorateColdArea"/"colorateIntervalArea", xs: float--></
maxTemperature>
872
Intelligent Security API (General) Developer Guide
</TemperatureLimit>
<Color><!--req, area color-->
<R><!--req, xs:integer--></R>
<G><!--req, xs:integer--></G>
<B><!--req, xs:integer--></B>
</Color>
</ColorateTargetMode>
</ColorateTargetModeList>
</ColorateTarget>
</Palettes>
XML_ParkAction
ParkAction message in XML format
<ParkAction version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<enabled><!--required, xs: boolean, whether to enable parking--></enabled>
<Parktime><!--req, xs:integer, parking time, unit: second--></Parktime>
<Action> <!--parking actions-->
<ActionType opt="autoscan,framescan,randomscan,panoramascan,patrol,pattern,preset,areaScan"><!--required,
xs:string, action type: "atuoscan,framescan,randomscan,panoramascan,patrol,pattern,preset,areaScan"--></
ActionType>
<ActionNum><!--required, xs:integer, parking No. This node will be used when <ActionType> is "patrol", "pattern",
or "preset". For other parking action types, this node should be set to 0--></ActionNum>
</Action>
</ParkAction>
XML_ParkingParam
XML message about rule parameters of parking detection
<ParkingParam><!--dep-->
<durationTime>
<!—req, xs:integer, duration time, from 5 seconds to 100 seconds, default value: 5s-->
</durationTime>
</ParkingParam>
XML_pingTestDescription
pingTestDescription message in XML format
<pingTestDescription version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<ipAddress><!--dep, xs:string--></ipAddress>
</pingTestDescription>
873
Intelligent Security API (General) Developer Guide
XML_pingTestResult
pingTestResult message in XML format
<pingTestResult version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<status><!--req, xs:string, "used, not used"--></status>
</pingTestResult>
XML_Probe
Probe message in XML format.
<?xml version="1.0" encoding="UTF-8"?>
<Probe>
<!--the UUID will be returned in the device response message for matching, if not matched, it will not be handled.-->
<Uuid>8d2091bc-1dd2-11b2-807b-8ce748cf9334</Uuid>
<Types>inquiry</Types>
</Probe>
XML_ProxyDevicesInfoCondition
Message about search condition of device parameters (all digital channels) in XML format
<ProxyDevicesInfoCondition version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<searchResultPosition><!--required, xs:integer--></searchResultPosition>
<maxResults><!--required, xs:integer--></maxResults>
</ProxyDevicesInfoCondition>
XML_ProxyDevicesInfoResult
Message about search result of device parameters (all digital channels) in XML format
<ProxyDevicesInfoResult version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<responseStatus><!--required, xs:string, "true,false", search status--></responseStatus>
<responseStatusStrg><!--required, xs:string, "OK,NO MATCHES,MORE", search status description--></
responseStatusStrg>
<numOfMatches><!--required, xs:integer, number of returned records--></numOfMatches>
<totalMatches><!--required, xs:integer, number of matched records--></totalMatches>
<DeviceInfoList><!--optional, list of task information-->
<!--refer to XML_DeviceInfo-->
<DeviceInfo>
<deviceName><!--required, xs:string--></deviceName>
<deviceID><!--required, read-only, xs:string, uuid--></deviceID>
<deviceDescription><!--optional, xs:string--></deviceDescription>
<deviceLocation><!--optional, xs:string--></deviceLocation>
<deviceStatus><!--optional, read-only, xs:string,opt="normal,abnormal"--></deviceStatus>
874
Intelligent Security API (General) Developer Guide
875
Intelligent Security API (General) Developer Guide
"true"--></clusterVersion>
<manufacturer><!--optional, xs:string,manufacturer information used for differentiating OEM devices--></
manufacturer>
<customizedInfo><!--optional, xs:string, custom project information--></customizedInfo>
<channel><!--optional, xs:integer, when IPC device information is obtained via NVR, this node refers to the channel
of the NVR--></channel>
</DeviceInfo>
</DeviceInfoList>
</ProxyDevicesInfoResult>
See Also
XML_DeviceInfo
XML_port
port message in XML format
<port version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<id/><!--req, xs: string, ID-->
<enabled/><!—req, xs: boolean-->
<internalPort/><!--req, xs: string, "http,admin,rtsp,https,WebSocket,WebSocket,SDK_OVER_TLS,SRTP..."-->
<externalPort/><!—req, xs:integer-->
</port>
XML_portStatus
portStatus message in XML format
<portStatus version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<id/><!--req, xs: string, ID-->
<enabled/><!--req-->
<internalPort/><!--req, xs: string, "http,admin,rtsp,https,WebSocket,WebSocket,SDK_OVER_TLS,SRTP..."-->
<externalPort/><!--req, xs: integer-->
<status/><!--req, xs: string, "inactive, active, conflict, ..."-->
</portStatus>
XML_ports
ports message in XML format
<ports version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<enabled/><!--req-->
<mapmode><!--req, xs: string, "auto,manual"--></mapmode>
<natRouterLanAddr><!--opt-->
<ipVersion><!--req, xs: string, "v4,v6,dual"--></ipVersion>
<ipAddress><!--dep, xs: string--></ipAddress>
<ipv6Address><!--dep, xs: string--></ipv6Address>
876
Intelligent Security API (General) Developer Guide
</natRouterLanAddr>
<portList><!--req-->
<port/><!--see details in the message XML_port-->
</portList>
<natType><!--req, xs: string, "manual, auto"--></natType>
</ports>
See Also
XML_port
XML_PortMapParam
PortMapParam message in XML format
<PortMapParam version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<userip><!--IP address of user terminal, or IP address of PoE0 or Eth0--></userip>
</PortMapParam>
XML_PortMapParamRet
PortMapParamRet message in XML format
<PortMapParamRet version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<mapResult><!--whether port mapping is required: 0-no, 1-yes, 2-unknown--></mapResult>
<MapPortGop>
<MapPort>
<mapPortIdx><!--index No. of mapping ports--></mapPortIdx>
<mapPortName><!--mapping port name--></mapPortName>
<mapPortValue><!--mapping port number--></mapPortValue>
<MapPort>
</MapPortGop>
</PortMapParamRet>
XML_portsStatus
portsStatus message in XML format.
<portsStatus version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<enabled/><!--req-->
<natRouterLanAddr><!--req-->
<ipVersion><!--req, xs: string, "v4,v6,dual"--></ipVersion>
<ipAddress><!--dep, xs: string--></ipAddress>
<ipv6Address><!--dep, xs: string--></ipv6Address>
</natRouterLanAddr>
<natRouterWanAddr><!--req-->
<ipVersion><!--req, xs: string, "v4,v6,dual"--></ipVersion>
<ipAddress><!--dep, xs: string--></ipAddress>
877
Intelligent Security API (General) Developer Guide
See Also
XML_portStatus
XML_Position3D
XML message about 3D positioning parameters
<?xml version="1.0" encoding="utf-8"?>
<Position3D version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<StartPoint><!--value range: [0,255], the original point is in the lower-left corner-->
<positionX><!--required, xs:integer--></positionX>
<positionY><!--required, xs:integer--></positionY>
</StartPoint>
<EndPoint>
<positionX><!--required, xs:integer--></positionX>
<positionY><!--required, xs:integer--></positionY>
</EndPoint>
</Position3D>
XML_powerLineFrequency
powerLineFrequency message in XML format
<powerLineFrequency version="2.0" mlns="http://www.isapi.org/ver20/XMLSchema">
<powerLineFrequencyMode/><!--opt, xs: string, standard mode: "50hz, 60hz"-->
</powerLineFrequency>
XML_PreviewSwitch
PreviewSwitch message in XML format
<PreviewSwitch version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<DisplayWindowList size="64">
<!--req, if the number of channels is larger or equal to 64, 64 channels should be applied by a group for one time;
otherwise, apply the maximum number of channels-->
<DisplayWindow>
<id><!--req, xs: string, actual window No., which equals to id × groupNo--></id>
<displayChannelNo><!--req, xs: string, 0-not display, 1 to 64-displayed channel No., min="0" max="64"--></
displayChannelNo>
</DisplayWindow>
878
Intelligent Security API (General) Developer Guide
</DisplayWindowList>
<previewFrameNo>
<!--req, xs: string, number of live view windows: 1, 4, 6, 8, 9, 25, 32, 36, auto1-custom window division 1, auto2-
custome window division 2, auto3-custome window division 3, auto4-custome window division 4-->
</previewFrameNo>
<sound><!--req, xs: boolean, whether to turn on audio during live view: true-yes, false-no--></sound>
<switchTime><!--req, xs: string, switching interval: 0, 5, 10, 20, 30, 60, 120, and 300, unit:s--></switchTime>
<sameSource>
<!--dep, xs: boolean, whether the output is homologous: true-yes, false-no, this node is valid only when
VideoOutType is "noSameSourceVGA1", "noSameSourceVGA2", "noSameSourceVGA3", and "noSameSourceVGA4"-->
</sameSource>
</PreviewSwitch>
XML_PreviewSwitchVideoOutCap
PreviewSwitchVideoOutCap message in XML format
<PreviewSwitchVideoOutCap version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<DisplayWindowList size="64">
<DisplayWindow>
<id><!--req, xs: string, window No., which equals to id × groupNo--></id>
<displayChannelNo min="0" max="64"><!--req, xs: string, 0-not display, 1 to 64-displayed channel No.--></
displayChannelNo>
</DisplayWindow>
</DisplayWindowList>
<previewFrameNo opt="1,4,6,8,9,25,32,36,auto1,auto2,auto3,auto4">
<!--req, xs: string, number of live view windows, auto1-custom window division 1, auto2-custome window division
2, auto3-custome window division 3, auto4-custome window division 4-->
</previewFrameNo>
<sound><!--req, xs: boolean, whether to turn on audio during live view: true-yes, false-no--></sound>
<switchTime opt="0,5,10,20,30,60,120,300"><!--req, xs: string, switching interval, unit: s--></switchTime>
<sameSource>
<!--dep, xs: boolean, whether the output is homologous: true-yes, false-no, this node is valid only when
VideoOutType is "noSameSourceVGA1", "noSameSourceVGA2", "noSameSourceVGA3", and "noSameSourceVGA4"-->
</sameSource>
<supportGetByPreviewNum>
<!--opt, whether supports setting number of live view windows in the URL, true-yes-->
</supportGetByPreviewNum>
</PreviewSwitchVideoOutCap>
XML_PrivacyMask
PrivacyMask message in XML format
<PrivacyMask version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<enabled><!--req, xs: boolean--></enabled>
<normalizedScreenSize><!--opt-->
<normalizedScreenWidth><!--req, xs: integer--></normalizedScreenWidth>
<normalizedScreenHeight><!--req, xs: integer--></normalizedScreenHeight>
879
Intelligent Security API (General) Developer Guide
</normalizedScreenSize>
<PrivacyMaskRegionList size=8/><!--opt-->
<regionType><!--opt, xs: string, "quadrilateral"--></regionType>
</PrivacyMask>
XML_PrivacyMaskCap
PrivacyMaskCap message in XML format
<PrivacyMaskCap version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<maskTypeDscriptor>
<!--opt, xs: string, privacy mask type: "gray,red,yellow,blue,orange,green,transparent,half-transparent,mosaic"-->
</maskTypeDscriptor>
<minZoomdoorlimit><!--opt, xs: integer></minZoomdoorlimit>
<maxZoomdoorlimit><!--opt, xs: integer></maxZoomdoorlimit>
<videoPrivacyType opt="privacyMask,privacyCover">
<!--opt, xs: string, "privacyMask"-video tampering, "privacyCover"-privacy mask-->
</videoPrivacyType>
</PrivacyMaskCap>
XML_PrivacyMaskRegion
PrivacyMaskRegion message in XML format
<PrivacyMaskRegion version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<id><!--req, xs: integer--></id>
<enabled><!--req, xs: boolean--></enabled>
<RegionCoordinatesList><!--req-->
<RegionCoordinates><!--req-->
<positionX><!--req, xs: integer; coordinate--></positionX>
<positionY><!--req, xs: integer; coordinate--></positionY>
</RegionCoordinates>
</RegionCoordinatesList>
<privacymaskName><!--opt, xs: string--></privacymaskName>
<maskType>
<!--opt, xs:string "gray,red,yellow,blue,orange,green,transparent,half-transparent,mosaic,black"-->
</maskType>
<zoomdoorlimit><!--opt, xs: integer, the value is between 10 and 1000--></zoomdoorlimit>
</PrivacyMaskRegion>
XML_PrivacyMaskRegionList
PrivacyMaskRegionList message in XML format
<PrivacyMaskRegionList version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<PrivacyMaskRegion/><!--opt, refer to the message XML_PrivacyMaskRegion for details-->
</PrivacyMaskRegionList>
880
Intelligent Security API (General) Developer Guide
See Also
XML_PrivacyMaskRegion
XML_PTZAux
PTZAux message in XML format
<?xml version="1.0" encoding="utf-8"?>
<PTZAux version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<id><!--req,xs:string,id--></id>
<type><!--req, ro, xs:string,"LIGHT,WIPER,FAN,HEATER",auxiliary type: light, wiper, fan, heater--></type>
<status><!--req, xs:string,"on,off", auxiliary status: turned on, turned off--></status>
</PTZAux>
XML_PTZAuxList
PTZAuxList message in XML format
<?xml version="1.0" encoding="utf-8"?>
<PTZAuxList version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<PTZAux><!--list-->
<id><!--req,xs:string,id--></id>
<type><!--req, ro, xs:string,"LIGHT,WIPER,FAN,HEATER",auxiliary type: light, wiper, fan, heater--></type>
<status><!--req, xs:string,"on,off", auxiliary status: turned on, turned off--></status>
</PTZAux>
</PTZAuxList>
XML_PTZChannel
PTZChannel message in XML format
<?xml version="1.0" encoding="utf-8"?>
<PTZChanel version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<id><!--req, xs:integer--></id>
<enabled><!--ro, req, xs:boolean--></enabled>
<serialNumber><!--req,xs:integer--></serialNumber>
<videoInputID><!--req, xs:integer--></videoInputID>
<panMaxSpeed><!--ro, opt, xs:integer, degrees/sec--></panMaxSpeed>
<tiltMaxSpeed><!--ro, opt, xs:integer, degrees/sec--></tiltMaxSpeed>
<presetSpeed><!--opt, xs:integer, 1..8--></presetSpeed>
<autoPatrolSpeed><!--opt, xs:integer, 0..100--></autoPatrolSpeed>
<keyBoardControlSpeed><!--opt, xs:integer, 0..100--></keyBoardControlSpeed>
<controlProtocol><!--opt, xs:string, "pelco-d,modbus-RTU,modbus-ASCII"--></controlProtocol>
<controlAddress><!--opt-->
<enabled><!--req, xs:boolean--></enabled>
<Address><!--opt, xs:string, 1-255--></Address>
881
Intelligent Security API (General) Developer Guide
</controlAddress>
<defaultPresetID><!--opt, xs:string, id--></defaultPresetID>
<PTZRs485Para><!--opt-->
<baudRate><!--req, xs:integer--></baudRate>
<dataBits><!--req, xs:integer--></dataBits>
<parityType><!--req, xs:string, "none, even, odd, mark, space"--></parityType>
<stopBits><!--req, xs:string, "1, 1.5, 2"--></stopBits>
<flowCtrl><!--req, xs:string, "none, software, hardware"--></flowCtrl>
</PTZRs485Para>
<manualControlSpeed>
<!--opt, xs:string, "pedestrian, nonMotorVehicle, motorVehicle, selfadaptive, compatible"-->
</manualControlSpeed>
<panSupport><!--optional, xs:boolean, whether it supports panning--></panSupport>
<tiltSupport><!--optional, xs:boolean, whether it supports tilting--></tiltSupport>
<zoomSupport><!--optional, xs:boolean, whether it supports zooming--></zoomSupport>
<PTPositiveDirection>
<!--optional, object, panning and tilting positive direction-->
<pan>
<!--optional, string, read-only, panning positive direction: left, right-->left
</pan>
<tile>
<!--optional, string, read-only, tilting positive direction: up, down-->up
</tile>
</PTPositiveDirection>
</PTZChannel>
XML_PTZChanelCap
XML message about PTZ channel capability
<PTZChanelCap version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<AbsolutePanTiltPositionSpace><!--optional-->
<XRange/><!--required-->
<YRange/><!--required-->
</AbsolutePanTiltPositionSpace>
<AbsoluteZoomPositionSpace><!--optional-->
<ZRange/><!--required-->
</AbsoluteZoomPositionSpace>
<RelativePanTiltSpace><!--optional-->
<XRange/><!--required-->
<YRange/><!--required-->
</RelativePanTiltSpace>
<RelativeZoomSpace><!--optional-->
<ZRange/><!--required-->
</RelativeZoomSpace>
<ContinuousPanTiltSpace><!--optional-->
<XRange/><!--required-->
<YRange/><!--required-->
</ContinuousPanTiltSpace>
<ContinuousZoomSpace><!--optional-->
<ZRange/><!--required-->
882
Intelligent Security API (General) Developer Guide
</ContinuousZoomSpace>
<MomentaryPanTiltSpace><!--optional-->
<XRange/><!--required-->
<YRange/><!--required-->
</MomentaryPanTiltSpace>
<MomentaryZoomSpace><!--optional-->
<ZRange/><!--required-->
</MomentaryZoomSpace>
<homePostionSupport><!--required, xs:boolean--></homePostionSupport>
<maxPresetNum>
<!--required, xs:integer, max. supported preset number-->
</maxPresetNum>
<maxPatrolNum>
<!--required,xs:integer, max. supported patrol number-->
</maxPatrolNum>
<maxPatternNum>
<!--required,xs:integer, max. supported pattern number-->
</maxPatternNum>
<maxLimitesNum>
<!--required,xs:integer, max. supported limit number-->
</maxLimitesNum>
<maxTimeTaskNum>
<!--required,xs:integer, max. supported timing task number-->
</maxTimeTaskNum>
<serialNumber min="1" max="4">
<!--configuration capability of RS-485 serial port supported by current channel-->
</serialNumber>
<controlProtocol>
<!--optional, xs:string,"pelco-d,modbus-RTU,modbus-ASCII", supported PTZ control protocol-->
</controlProtocol>
<controlAddress>
<!--optional, xs:string, 0-255, address-->
</controlAddress>
<PTZRs485Para>
<!--optional, PTZ RS485 parameters capability-->
<baudRate>
<!--required, xs:integer, baud rate-->
</baudRate>
<dataBits>
<!--required, xs:integer, data bit-->
</dataBits>
<parityType>
<!--required, xs:string, "none,even,odd,mark,space", verification type-->
</parityType>
<stopBits>
<!--required, xs:string, "1,1.5,2" , stop bit-->
</stopBits>
<flowCtrl>
<!--required, xs:string, "none, software, hardware", stream control type-->
</flowCtrl>
</PTZRs485Para>
<PresetNameCap>
883
Intelligent Security API (General) Developer Guide
884
Intelligent Security API (General) Developer Guide
<unLockTime><!--optional, xs:integer, remaining unlocking time duration (the automatic locking time duration is
300 s in the unlocked status*--></unLockTime>
</ManualPTZLockCap>
<isSupportOnepushSynchronizeFOV>
<!--optional, xs:boolean, whether supports one-touch synchronize FOV, return true for supports, and no return
indicates not support-->
</isSupportOnepushSynchronizeFOV>
<isSupportLensCorrection>
<!--optional, xs:boolean, whether supports lens correction, return true for supports, and no return indicates not
support-->
</isSupportLensCorrection>
<isSupportPTZTrackStatus>
<!--optional, xs:boolean, whether to support getting PTZ tracking linkage status-->
</isSupportPTZTrackStatus>
<ptzctrlSupportSerialNumber opt="1,3"><!--optional, xs:string, RS-485 serial port range supported in PTZ control
mode--></ptzctrlSupportSerialNumber>
<LFPositionCap><!--optional, capability of calibrating position for smart linkage-->
<elevation><!--optional, xs:integer, range: [-900,2700]--></elevation>
<azimuth><!--optional, xs:integer, range: [0,3600]--></azimuth>
<absoluteZoom><!--optional, xs:integer, range: [1,1000]--></absoluteZoom>
</LFPositionCap>
<pqrsZoom min="" max=""/><!--optional, xs: integer, zooming coordinates of Sony zoom camera module-->
<mnstFocus min="" max=""/><!--optional, xs: integer, focus coordinates of Sony zoom camera module-->
<isSupportPTZSave>
<!--optional, xs: boolean, whether supports saving the current PTZ position information-->
</isSupportPTZSave>
<isSupportPTZSaveGet>
<!--optional, xs:boolean, whether to support saving the PTZ position information of the current channel by GET
method-->
</isSupportPTZSaveGet>
<isSupportAutoGotoCfg>
<!--optional, xs: boolean, whether supports automatically restoring to saved PTZ position: "true"-yes, this node is
not returned-no-->
<isSupportAutoGotoCfg>
<lockTime><!--optional, xs:integer, PTZ locking time, unit: second--></lockTime>
<isSupportPTZCtrlStatus><!--optional, xs:boolean, whether it supports getting the absolute PTZ position of the
current channel: "true"-yes, "false"-no. If this node is not returned, it does not necessarily indicate that the device
does not support this function--></isSupportPTZCtrlStatus>
<isSupportInitializationCtrl><!--optional, xs:boolean, whether it supports electric PTZ self-checking and control--></
isSupportInitializationCtrl>
<isSupportComponentCtrl><!--optional, xs:boolean, whether it supports PTZ component control--></
isSupportComponentCtrl>
<DoubleMirror><!--optional-->
<enabled opt="true,fasle" def="false"><!--required, xs:boolean--></enabled>
</DoubleMirror>
<MoveAutoTracking><!--optional, moving object tracking-->
<enabled opt="true,false"><!--required, xs:boolean, whether to enable this function--></enabled>
</MoveAutoTracking>
<isSupportTrackingRatioCfg><!--optional, xs:boolean, whether it supports configuring tracking parameters--></
isSupportTrackingRatioCfg >
<isSupportGPSCtrl>
<!--optional, xs:boolean, whether current channel supports controlling pan and tilt by GPS, if supports, this node is
885
Intelligent Security API (General) Developer Guide
returned and the value is true; if not, this node is not returned (related URI: /ISAPI/PTZCtrl/channels/<ID>/GPS?
format=json)-->
</isSupportGPSCtrl>
<isSupportGyroVerify>
<!--optional, xs:boolean, whether device supports gyroscope attitude calibration (related URI: /ISAPI/PTZCtrl/
channels/<ID>/gyroVerify?format=json)-->
</isSupportGyroVerify>
<isNotSupportPTZLimits>
<!--optional, boolean, read-only, whether the device supports PTZ limit: true (not support); if supports, this node
will not be returned-->true
</isNotSupportPTZLimits>
<PTPositiveDirection>
<!--optional, object, read-only,panning and tilting positive direction-->
<pan opt="left,right">
<!--optional, string, read-only, panning positive direction: left, right-->left
</pan>
<tile opt="up,down">
<!--optional, string, read-only, tilting positive direction: up, down-->up
</tile>
</PTPositiveDirection>
<PTZOSDDisplay>
<!--optional, read-only, object, PTZ OSD parameters-->
<zoomlable opt="2sec, 5sec, 10sec, alwaysclose, alwaysopen">
<!--required, string, read-only, OSD duration of zoom status-->test
</zoomlable>
<azimuth opt="2sec, 5sec, 10sec, alwaysclose, alwaysopen">
<!--required, string, read-only, azimuth angle display duration while panning and tilting-->test
</azimuth>
<presetlable opt="2sec, 5sec, 10sec, alwaysclose, alwaysopen">
<!--required, string, read-only, preset name display duration when calling the preset-->test
</presetlable>
<positionDisplayFormat opt="PT,direction">
<!--optional, string, read-only, position display format: PT, direction-->PT
</positionDisplayFormat>
<actionStatusDisplayEnabled opt="true,fasle">
<!--optional, boolean, read-only, whether to enable the PTZ status display-->true
</actionStatusDisplayEnabled>
</PTZOSDDisplay>
</PTZChanelCap>
See Also
XML_ParkAction
XML_TimeTaskList
XML_PTZChannelList
XML message about parameters of multiple digital PTZ channels
<?xml version="1.0" encoding="utf-8"?>
<PTZChannelList version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
886
Intelligent Security API (General) Developer Guide
<PTZChannel><!--list-->
<id><!--required, xs:integer--></id>
<enabled><!--required, xs:boolean, read-only--></enabled>
<serialNumber>
<!--required, xs:integer, read-only, serial port No. of channel; if the value is 0, it indicates that no serial port is
linked-->
</serialNumber>
<videoInputID><!--required, xs:integer--></videoInputID>
<panMaxSpeed><!--ro,optional, xs:integer, panning speed, unit: degree/second--></panMaxSpeed>
<tiltMaxSpeed><!--ro,optional, xs:integer, tilting speed, unit: degree/second--></tiltMaxSpeed>
<presetSpeed><!--optional, xs:integer, preset speed, range: [1,8]--></presetSpeed>
<autoPatrolSpeed><!--optional, xs:integer, patrol speed, range: [0,100]--></autoPatrolSpeed>
<keyBoardControlSpeed><!--optional, xs:integer, PTZ control speed, range: [0,100]--></keyBoardControlSpeed>
<controlProtocol><!--optional, xs:string, control protocol type: pelco-d--></controlProtocol>
<controlAddress><!--optional-->
<enabled><!--required, xs:boolean--></enabled>
<Address><!--optional, xs:string, range: [1,255]--></Address>
</controlAddress>
<defaultPresetID><!--optional, xs:string, default preset No.--></defaultPresetID>
<PTZRs485Para><!--optional-->
<baudRate><!--required, xs:integer--></baudRate>
<dataBits><!--required, xs:integer--></dataBits>
<parityType><!--required, xs:string, parity type: none, even, odd, mark, space--></parityType>
<stopBits><!--required, xs:string, stop bit: 1, 1.5, 2--></stopBits>
<flowCtrl><!--required, xs:string, encoding or decoding type: none, software, hardware--></flowCtrl>
</PTZRs485Para>
<manualControlSpeed>
<!--optional, xs:string, manual control speed type: pedestrian, nonMotorVehicle, motorVehicle, selfadaptive,
compatible-->
</manualControlSpeed>
</PTZChannel>
</PTZChannelList>
XML_PTZCtrlCap
XML message about PTZ control capability of digital channels
<?xml version="1.0" encoding="utf-8"?>
<PTZCtrlCap version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<maxPTZChannleNum><!--optional, xs:integer, maximum number of PTZ channels--></maxPTZChannleNum>
<isSupportPTZWithPreview>
<!--optional, xs:boolean, whether the device supports controlling PTZ during live view-->
</isSupportPTZWithPreview>
</PTZCtrlCap>
XML_PTZOSDDisplay
PTZOSDDisplay message in XML format
887
Intelligent Security API (General) Developer Guide
XML_PTZPatrol
XML message about parameters of a patrol
<?xml version="1.0" encoding="utf-8"?>
<PTZPatrol version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<enabled><!--required, xs:boolean--></enabled>
<id><!--required, xs:string, ID--></id>
<patrolName><!--required, xs:string--></patrolName>
<resumeType><!--optional, xs:string, type: relative, absolute--></resumeType>
<PatrolSequenceList><!--required-->
<PatrolSequence><!--required, list-->
<presetID><!--required, xs:integer, preset No. in the patrol--></presetID>
<seqSpeed><!--required, xs:integer, patrol speed--></seqSpeed>
<delay><!--required, xs:integer, unit: millisecond--></delay>
</PatrolSequence>
</PatrolSequenceList>
</PTZPatrol>
XML_PTZPatrolList
XML message about patrol parameter list
<?xml version="1.0" encoding="utf-8"?>
<PTZPatrolList version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<PTZPatrol><!--list-->
<enabled><!--required, xs:boolean--></enabled>
<id><!--required, xs:string, ID--></id>
<patrolName><!--required, xs:string--></patrolName>
<resumeType><!--optional, xs:string, type: relative, absolute--></resumeType>
<PatrolSequenceList><!--required-->
<PatrolSequence><!--required, list-->
<presetID><!--required, xs:integer, preset No. in the patrol--></presetID>
<seqSpeed><!--required, xs:integer, patrol speed--></seqSpeed>
<delay><!--required, xs:integer, unit: millisecond--></delay>
</PatrolSequence>
</PatrolSequenceList>
</PTZPatrol>
</PTZPatrolList>
888
Intelligent Security API (General) Developer Guide
XML_PTZPatrolStatus
XML message about patrol status
<?xml version="1.0" encoding="utf-8"?>
<PTZPatrolStatus version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<patrolID><!--required, xs:string, ID--></patrolID>
<patrolStatus><!--required, xs:string, patrol status: running, stopped, paused--></patrolStatus>
</PTZPatrolStatus>
XML_PTZPreset
XML message about preset parameters
<?xml version="1.0" encoding="utf-8"?>
<PTZPreset version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<enabled><!--required, xs:boolean, whether to enable preset configuration--></enabled>
<id><!--required, xs:string, preset No.--></id>
<presetName><!--required, xs:string, preset name--></presetName>
<AbsoluteHigh>
<elevation><!--optional, xs:integer, tilting parameter, the value is between -900 and 2700--></elevation>
<azimuth><!--optional, xs:integer, panning parameter, the value is between 0 and 3600--></azimuth>
<absoluteZoom><!--optional, xs:integer, zooming parameter, the value is between 1 and 1000--></absoluteZoom>
</AbsoluteHigh>
</PTZPreset>
XML_PTZPresetList
XML message about preset information list
<?xml version="1.0" encoding="utf-8"?>
<PTZPresetList version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<PTZPreset/><!--optional, see details in XML_PTZPreset-->
</PTZPresetList>
See Also
XML_PTZPreset
XML_PTZStatus
PTZStatus message in XML format
<PTZStatus version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<AbsoluteHigh><!--high-accuracy positioning which is accurate to one decimal place-->
<elevation>
<!--opt, xs:integer, tilting parameter, the value is between -900 and 2700, which corresponds to the range from
889
Intelligent Security API (General) Developer Guide
XML_PublicKey
PublicKey message in XML format.
<PublicKey version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<key><!--req, xs:string--></key>
</PublicKey>
XML_RacmCap
XML message about device storage capability
<?xml version="1.0" encoding="utf-8"?>
<RacmCap version="1.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<isSupportZeroChan>
<!--optional, xs:boolean, whether it supports channel-zero, "true"-yes, "false"-no-->
</isSupportZeroChan>
<inputProxyNums><!--optional, xs:integer, number of supported digital channels--></inputProxyNums>
<eSATANums><!--optional, xs:integer, number of supported eSATAs--></eSATANums>
<miniSASNums><!--optional, xs:integer, number of supported miniSATAs--></miniSASNums>
<nasNums><!--optional, xs:integer, number of supported NASs--></nasNums>
<ipSanNums><!--optional, xs:integer, number of supported IPSANs--></ipSanNums>
<isSupportRaid>
<!--optional, xs:boolean, whether it supports RAID, "true"-yes, "false"-no-->
</isSupportRaid>
<isSupportExtHdCfg>
<!--optional, xs:boolean, whether it supports HDD advanced management, "true"-yes, "false"-no-->
</isSupportExtHdCfg>
<isSupportTransCode><!--optional, xs:boolean, whether it supports auto-switch, "true"-yes, "false"-no--></
isSupportTransCode>
<isSupportIpcImport>
<!--optional, xs:boolean, whether it supports importing configuration files to network camera, "true"-yes, "false"-
no-->
</isSupportIpcImport>
<NasMountType><!--optional-->
<isNFSSupportAuthentication/><!--optional, xs:boolean, whether it supports NFS authentication, "true"-yes, "false"-
890
Intelligent Security API (General) Developer Guide
no-->
<isCIFSSupportAuthentication/><!--optional, xs:boolean, whether it supports CIFS authentication, "true"-yes, "false"-
no-->
</NasMountType>
<isSupportIpcStreamType/><!--optional, xs:boolean-->
<isSupportIOInputProxy/><!--optional, xs:boolean, whether it supports dynamic alarm input channel: "true"-yes,
"false"-no-->
<isSupportIOOutputProxy/><!--optional, xs:boolean, whether it supports dynamic alarm output channel: "true"-yes,
"false"-no-->
<isSupportPTZRs485Proxy/><!--optional, xs:boolean, whether it supports dynamic PTZ485 channel, "true"-yes,
"false"-no-->
<isSupportSrcIDSearch/><!--optional, xs:boolean, whether it supports search by stream ID, "true"-yes, "false"-no-->
<isSupportReversePlayback/><!--optional, xs:boolean, whether it supports reverse playback, "true"-yes, "false"-no-->
<isSupportSMARTTest/><!--optional, xs:boolean, whether it supports HDD checking, "true"-yes, "false"-no-->
<isSupportDownloadByTime/><!--optional, xs:boolean, whether it supports downloading by time, "true"-yes, "false"-
no-->
<pictureSearchType
opt="AllEvent,CMR,MOTION,ALARM,EDR,ALARMANDMOTION,Command,pir,wlsensor,callhelp,facedetection,FieldDete
ction,scenechangedetection,LineDetection,regionEntrance,regionExiting,loitering,group,rapidMove,parking,unattende
dBaggage,attendedBaggage,vehicleDetection,manual,manualSnapShot,playSnapShot,allPic,evidence,illegalParking,cro
sslane,vehicleexist,lanechange,wrongdirection,congestion,turnround, parallelParking, pedestrian, construction,
roadblock, abandonedObject, trafficAccident, fogDetection, personQueueCounting,personQueueTime,
mixedTargetDetection, safetyHelmet, accessController, videoInterCom, GJD, Luminite, OPTEX, securityControlPanel,
playCellphone, vibrationDetection, ATMPanel, ATMSurround, ATMFace, ATMSafetyCabin,
temperatureIntervalMeasurement"/>
<!--optional, xs:string, picture search conditions-->
<recordSearchType
opt="AllEvent,CMR,MOTION,ALARM,EDR,ALARMANDMOTION,Command,pir,wlsensor,callhelp,facedetection,FieldDete
ction,scenechangedetection,LineDetection,regionEntrance,regionExiting,loitering,group,rapidMove,parking,unattende
dBaggage,attendedBaggage,vehicleDetection,manual,manualSnapShot,playSnapShot,AudioDetection,playCellphone,ru
nning,failDown,violentMotion,retention,allPerimeterEvent, allBehaviorEvent, vibrationDetection, ATMPanel,
ATMSurround, ATMFace, ATMSafetyCabin, temperatureIntervalMeasurement"/>
<!--optional, xs:string, video search conditions-->
<isSupportActivateIpc/><!--optional, xs:boolean, whether it supports activating network camera, "true"-yes, "false"-
no-->
<isSupportCheckIpcSecurity><!--optional-->
<isSupportCheckPassword/><!--optional, xs:boolean, whether it supports password verification, "true"-yes, "false"-
no-->
</isSupportCheckIpcSecurity>
<isSupportMainAndSubRecord/>
<!--optional, xs:boolean, whether it supports recording in main stream or sub-stream, "true"-yes, "false"-no-->
<isSupportSyncIPCPassword>
<!--optional, xs:boolean, whether it supports synchronizing network camera's password, "true"-yes, "false"-no-->
</isSupportSyncIPCPassword>
<isSupportTransferIPC>
<!--optional, xs:boolean, whether it supports network camera passthrough function, "true"-yes, "false"-no-->
</isSupportTransferIPC>
<isSupportPOS><!--optional, xs:boolean, whether it supports POS, "true"-yes, "false"-no--></isSupportPOS>
<isSupportPassBackBasicCfg>
<!--optional, xs:boolean, whether it supports the ANR basic function of CVR, "true"-yes, "false"-no-->
</isSupportPassBackBasicCfg>
<PassBackTaskConfig><!--optional, task management function of ANR-->
891
Intelligent Security API (General) Developer Guide
892
Intelligent Security API (General) Developer Guide
</isSupportSearchRecordLabelByUTC>
<isSupportSearchPictureByUTC>
<!--optional, xs: boolean, whether it supports extending the time zone for searching pictures-->
</isSupportSearchPictureByUTC>
<isSupportSmartSearchPictureByUTC>
<!--optional, xs: boolean, whether it supports extending the time zone for searching pictures with smart
information-->
</isSupportSmartSearchPictureByUTC>
<isSupportFindLogByUTC>
<!--optional, xs: boolean, whether it supports extending the time zone for searching log-->
</isSupportFindLogByUTC>
<isSupportUploadRecordByUTC>
<!--optional, xs: boolean, whether it supports extending the time zone for uploading files to cloud storage-->
</isSupportUploadRecordByUTC>
<isSupportPlaybackByUTC>
<!--optional, xs: boolean, whether it supports extending the time zone for playback by time and locating by time-->
</isSupportPlaybackByUTC>
<SecurityLog>
<isSupportSecurityLog><!--optional, boolean, whether it supports security log--></isSupportSecurityLog>
<isSupportLogServer><!--optional, boolean, whether it supports log server configuration--></isSupportLogServer>
<isSupportLogServerTest><!--optional, xs: boolean, whether it supports log server test--></isSupportLogServerTest>
<SecurityLogTypeList><!--required, xs: list, supported log type list-->
<SecurityLogType>
<primaryType><!--required, xs: string, major type--></primaryType>
<secondaryType optional=""><!--required, xs: string, minor type--></secondaryType>
</SecurityLogType>
</SecurityLogTypeList>
</SecurityLog>
<iSptInputProxyChanCap>
<!--optional, xs:boolean, whether it supports getting the capability of the digital channel-->
</iSptInputProxyChanCap>
<isSupportLogDataPackage>
<!--optional, xs:boolean, whether it supports exporting logs: "true, false"-->
</isSupportLogDataPackage>
<logSearchTimeSpanNums>
<!--optional, xs:integer, supported number of time periods for log search-->
</logSearchTimeSpanNums>
<isSupportManualRecord>
<!--optional, xs:boolean, whether the device supports manual recording-->
</isSupportManualRecord>
<isSupportRemark><!--optional, xs:boolean, whether it supports file remarks--></isSupportRemark>
<FileUpload><!--optional, upload file-->
<enabled><!--required, xs:boolean, whether it supports enabling file uploading--></enabled>
</FileUpload>
<PoliceInfoUpload><!--optional, upload police information-->
<enabled><!--required, xs:boolean, whether it supports enabling police information uploading--></enabled>
</PoliceInfoUpload>
<PoliceInfo>
<policeID><!--optional, xs:boolean, whether it supports police ID--></policeID>
<policeCode><!--optional, xs:boolean, whether it supports police No.--></policeCode>
<policeName><!--optional, xs:boolean, whether it supports police name--></policeName>
<password><!--optional, xs:boolean, whether it supports police password--></password>
893
Intelligent Security API (General) Developer Guide
XML_RegionalFocus
RegionalFocus message in XML format
<RegionalFocus version="2.0" xmlns="http://www.isapi.com/ver20/XMLSchema">
<StartPoint><!--0-1000-->
<positionX><!--req, xs:integer--></positionX>
<positionY><!--req, xs:integer--></positionY>
</StartPoint>
<EndPoint><!--0-1000-->
<positionX><!--req, xs:integer--></positionX>
<positionY><!--req, xs:integer--></positionY>
</EndPoint>
</RegionalFocus>
894
Intelligent Security API (General) Developer Guide
XML_RegionClip
RegionClip message in XML format
<RegionClip version="2.0" xmlns="http://www.std-cgi.org/ver20/XMLSchema">
<id><!--req, xs: string--></id>
<enabled><!--req, xs: boolean--></enabled>
<normalizedScreenSize><!--req, read-only-->
<normalizedScreenWidth><!--req, read-only, xs: integer--></normalizedScreenWidth>
<normalizedScreenHeight><!--req, read-only, xs: integer--></normalizedScreenHeight>
</normalizedScreenSize>
<regionType><!--req, ro, xs:string, opt="rectangle,convexPolygon,concavePolygon"--></regionType>
<videoResolutionWidth><!--opt="704"--></videoResolutionWidth>
<videoResolutionHeight><!--opt="576"--></videoResolutionHeight>
<ClipRegionList>
<ClipRegion>
<RegionCoordinatesList>
<RegionCoordinates><!--req, size=4-->
<positionX><!--req, xs: integer; x-coordinate--></positionX>
<positionY><!--req, xs: integer; y-coordinate--></positionY>
</RegionCoordinates>
</RegionCoordinatesList>
</ClipRegion>
</ClipRegionList>
</RegionClip>
XML_RWLock
XML message about read & write lock parameters of storage heath detection
<?xml version="1.0" encoding="UTF-8"?>
<RWLock xmlns="http://www.isapi.org/ver20/XMLSchema" version="2.0">
<enabled>
<!--required, boolean, enable or not-->true
</enabled>
<passwd>
<!--required, string, new password-->test
</passwd>
<originalPasswd>
<!--optional, string, old password-->test
</originalPasswd>
</RWLock>
XML_remotePermission
remotePermission message in XML format
895
Intelligent Security API (General) Developer Guide
896
Intelligent Security API (General) Developer Guide
XML_remotePermissionCap
remotePermissionCap capability message in XML format
<remotePermissionCap version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<record><!—opt, xs: boolean—></record>
<booleant><!—opt, xs: boolean—></booleant>
<preview><!—opt, xs: boolean—></preview>
<videoChannelPermissionList><!—opt—>
<videoChannelPermission><!—opt—>
<id><!—req, corresponds to the video input channel ID—></id>
<preview><!—opt, xs: boolean—></preview>
<palyBack><!—opt, xs: boolean—></palyBack>
<record><!—opt, xs:boolean—></record>
<playBackDoubleVerification>
<!—opt, xs:boolean, whether supports secondary authentication for playback and download—>
</playBackDoubleVerification>
</videoChannelPermission>
</videoChannelPermissionList>
<ptzControl><!—opt, xs: boolean—></ptzControl>
<ptzChannelPermissionList><!—opt—>
<ptzChannelPermission><!—opt—>
<id><!—req, corresponds to PTZ channel ID—></id>
<ptzControl><!—opt, xs: boolean—></ptzControl>
</ptzChannelPermission>
</ptzChannelPermissionList>
<logOrStateCheck><!—opt, xs: boolean, permission to view log and status—></logOrStateCheck>
<parameterConfig><!—opt, xs: boolean, parameter configuration permission—></parameterConfig>
<restartOrShutdown><!—opt, xs: boolean, permission to reboot and shutdown—></restartOrShutdown>
<upgrade><!—opt, xs: boolean, permission to upgrade—></upgrade>
<voiceTalk><!—opt, xs: boolean—></voiceTalk>
<transParentChannel><!—opt, xs: boolean—></transParentChannel>
<contorlLocalOut><!—opt, xs: boolean—></contorlLocalOut>
<alarmOutOrUpload><!—opt, xs: boolean, permission to upload and output alarm—></alarmOutOrUpload>
<factoryReset><!--opt, xs:boolean, restore default parameters--></factoryReset>
<arm><!--opt, xs:boolean, arm--></arm>
<disarm><!--opt, xs:boolean, disarm--></disarm>
<accessControl><!--opt, xs:boolean, access control--></accessControl>
<subSysOrZoneArm><!--opt, xs:boolean, partition or zone arming permission--></subSysOrZoneArm>
<subSysOrZoneDisarm><!--opt, xs:boolean, partition or zone disarming permission--></subSysOrZoneDisarm>
<subSysOrZoneClearArm><!--opt, xs:boolean, permission to clear partition or zone alarms--></
subSysOrZoneClearArm>
<zoneBypass><!--opt, xs:boolean, permission to bypass zone--></zoneBypass>
<zoneBypassRecover><!--opt, xs:boolean, permission to recover bypassing zone--></zoneBypassRecover>
<IRAID>
<rapidConfiguration><!--opt, xs:boolean--></rapidConfiguration>
<reset><!--opt, xs:boolean--></reset>
</IRAID>
<subSystemNo min="" max=""><!--opt, xs:integer, range of partition No. When adding an operator or setting
operator parameters, one or more partitions can be linked to the operator--></subSystemNo>
<subSystem min="1" max="3"><!--opt, xs:integer, number of partitions that can be linked to the operator. The
897
Intelligent Security API (General) Developer Guide
attributes min="1" and max="3" are sample settings, which indicates that at least one partition and up to three
partitions can be linked. When adding an operator or setting operator parameters, one or more partitions can be
linked to an operator. Actually, an operator should be linked to at least one partition and up to four partitions--></
subSystemNo>
</remotePermissionCap>
XML_ResponseStatus
XML message about response status
<?xml version="1.0" encoding="utf-8"?>
<ResponseStatus version="2.0" xmlns="http://www.std-cgi.org/ver20/XMLSchema">
<requestURL>
<!--required, read-only, xs:string, request URL-->
</requestURL>
<statusCode>
<!--required, read-only, xs:integer, status code: 0,1-OK, 2-Device Busy, 3-Device Error, 4-Invalid Operation, 5-Invalid
XML Format, 6-Invalid XML Content, 7-Reboot Required, 9-Additional Error-->
</statusCode>
<statusString>
<!--required, read-only, xs:string, status description: OK, Device Busy, Device Error, Invalid Operation, Invalid XML
Format, Invalid XML Content, Reboot, Additional Error-->
</statusString>
<subStatusCode>
<!--required, read-only, xs:string, describe the error reason in detail-->
</subStatusCode>
<MErrCode>
<!--optional, xs:string, error code categorized by functional modules, e.g., 0x12345678-->
</MErrCode>
<MErrDevSelfEx>
<!--optional, xs:string, extension field of MErrCode. It is used to define the custom error code, which is categorized
by functional modules-->
</MErrDevSelfEx>
</ResponseStatus>
Note
• See Response Codes of Text Protocol for details about sub status codes and corresponding error
codes.
• See Error Codes Categorized by Functional Modules for details about the error codes, error
descriptions, and debugging suggestions.
XML_ResponseStatus_AuthenticationFailed
ResponseStatus message in XML format for failed authentication.
<ResponseStatus version="1.0" xmlns="http://www.std-cgi.org/ver20/XMLSchema">
<requestURL><!-- req, ro,xs:string --></requestURL>
898
Intelligent Security API (General) Developer Guide
XML_ResponseStatus_IFSTime
XML message about the device time parameters
<ResponseStatus version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<requestURL><!--required, xs:string, request URL, read-only--></requestURL>
<statusCode><!--required, xs:integer, status code: 0 or 1-OK, 2-Device Busy, 3-Device Error, 4-Invalid Operation, 5-
Invalid XML Format, 6-Invalid XML Content, 7-Reboot Required, read-only--></statusCode>
<statusString><!--required, xs:string, status description: "OK,Device Busy,Device Error,Invalid Operation,Invalid XML
Format,Invalid XML Content,Reboot", read-only--></statusString>
<subStatusCode><!--required, xs:string, detailed description of the error code, read-only--></subStatusCode>
<FailedNodeInfoList>
<!--optional, information list of failed nodes-->
<FailedNodeInfo>
<!--optional, failed node information. When the main node in the data center cluster synchronizes device time, the
main node will synchronize time of all sub nodes at the same time. If synchronizing time of all nodes failed, the failed
response message will be returned. If synchronizing time of part of nodes failed, the succeeded response message will
be returned and this node will returned detailed information of failed nodes-->
<nodeID><!--required, xs:string, node ID--></nodeID>
<nodeIP><!--required, xs:string, node IP--></nodeIP>
<reason><!--optional, xs:string, reason why the node failed to synchronize time, which can be displayed on the
interface--></reason>
</FailedNodeInfo>
</FailedNodeInfoList>
</ResponseStatus>
XML_RTSPCertificate
XML message about parameters of RTSP authentication mode
<RTSPCertificate xmlns="http://www.isapi.org/ver20/XMLSchema" version="2.0" >
<certificateType>
<!--required, xs:string, authentication mode: digest (default), digest/basic-->
</certificateType>
<SecurityAlgorithm>
<!--dependent, authentication algorithm, it is valid when certificateType is "digest" or "digest/basic"-->
<algorithmType>
<!--optional, xs:string, algorithm types: MD5, SHA256, MD5/SHA256-->
</algorithmType>
899
Intelligent Security API (General) Developer Guide
</SecurityAlgorithm>
</RTSPCertificate>
XML_RTSPCertificateCap
XML message about capability of RTSP authentication mode
<RTSPCertificateCap xmlns="http://www.isapi.org/ver20/XMLSchema" version="2.0" >
<certificateType def="digest" opt="digest,digest/basic" >
<!--required, xs:string-->
</certificateType>
<SecurityAlgorithm>
<!--depend, authentication algorithm, it is valid when certificateType is "digest" or "digest/basic"-->
<algorithmType opt="MD5,SHA256,MD5/SHA256" >
<!--optional, xs:string, algorithm type-->
</algorithmType>
</SecurityAlgorithm>
</RTSPCertificateCap>
XML_savePtzPoweroff
XML message about power-off memory
<savePtzPoweroff version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<savePtzPoweroffType><!--required, xs:integer, "disable,30sec,60sec,300sec,600sec"--></savePtzPoweroffType>
</savePtzPoweroff>
XML_Schedule
Schedule message in XML format
<Schedule version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<id><!--required, xs:string, ID--></id>
<eventType>
<!--optional, xs:string, alarm/event types, see details in the "Remarks" below-->
</eventType>
<inputIOPortID><!--read-only, dependent, xs:string, alarm input No.--></inputIOPortID>
<outputIOPortID><!--read-only, dependent, xs:string, alarm output No.--></inputIOPortID>
<videoInputChannelID><!--read-only, dependent, xs:string, video input channel ID--></videoInputChannelID>
<TimeBlockList size="8"><!--required-->
<TimeBlock><!--list-->
<dayOfWeek>
<!--optional, xs:integer, day of the week based on ISO8601, "1"=Monday, ...-->
</dayOfWeek>
<TimeRange><!--required-->
<beginTime><!--required, xs:time, ISO8601 time--></beginTime>
<endTime><!--required, xs:time, ISO8601 time--></endTime>
900
Intelligent Security API (General) Developer Guide
</TimeRange>
<CustomExtension>
<vehicleDetectSceneID>
<!--required, xs:interger-->
</vehicleDetectSceneID>
</CustomExtension>
</TimeBlock>
</TimeBlockList>
<HolidayBlockList><!--optional-->
<TimeBlock><!--list-->
<TimeRange><!--required-->
<beginTime><!--required, xs:time, ISO8601 time--></beginTime>
<endTime><!--required, xs:time, ISO8601 time--></endTime>
</TimeRange>
</TimeBlock>
</HolidayBlockList>
</Schedule>
Remarks
The node <eventType> can be set to the following values: IO, VMD,videoloss, PIR,linedetection,
fielddetection, audioexception, facedetection, regionEntrance, regionExiting, loitering, group,
rapidMove, parking, unattendedBaggage,attendedBaggage, storageDetection, shipsDetection,
HUMANATTRIBUTE, humanAttribute, faceContrast, faceSnap, faceLib, whiteListFaceContrast,
personDensityDetection, personQueueDetection, mixedTargetDetection, fireDetection,
illegalParking, pedestrian, trafficAccident,construction, roadblock, abandonedObject,
parallelParking, parkingState, congestion, intersectionAnalysis, heatMap, reverseEntrance,
vehicledetect, safetyHelmetDetection, vibrationDetection, TMPA, faceThermometry, HBDLib.
XML_Scheduled_PTZData
XML message about parameters of scheduled PTZ control
<?xml version="1.0" encoding="utf-8"?>
<PTZData version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<pan><!--optional, xs:integer, panning range: [-100,100]--></pan>
<tilt><!--optional, xs:integer, tilting range: [-100,100]--></tilt>
<zoom><!--optional, xs:integer, zooming range: [-100,100]--></zoom>
<Momentary>
<duration><!--optional, xs:integer, unit: millisecond--></duration>
</Momentary>
</PTZData>
XML_SecurityCap
SecurityCap capability message in XML format
901
Intelligent Security API (General) Developer Guide
902
Intelligent Security API (General) Developer Guide
</cfgFileSecretKeyLenLimit>
<isSupportDeviceCertificatesManagement>
<!--optional, xs: boolean, whether it supports device certificate management: true-yes, if not support, this node will
not be returned-->
</isSupportDeviceCertificatesManagement>
<supportIPCActivatePassword><!--optional, xs:boolean, whether it supports configuring password for activating the
network camera--></supportIPCActivatePassword>
<isIrreversible>
<!--dependent optional, xs:boolean, whether it supports irreversible password storage. If this node does not exist,
irreversible password storage is not supported-->
</isIrreversible>
<salt><!--optional, xs:string, salt of user name--></salt>
<keypadPassword min="1" max=""/><!--optional, xs:string, keypad password length. If different types of users have
different keypad password length, this node only indicates the administrator's keypad password length, otherwise this
node indicates that all types of users have the same keypad password length-->
<installerKeypadPassword min="1" max=""/><!--optional, xs:string, installer's keypad password length-->
<operatorKeypadPassword min="1" max=""/><!--optional, xs:string, operator's keypad password length-->
<userOperateType opt="1,2,3">
<!--optional, xs:string, user operation type: "1"-network user, "2"-keypad user, "3"-network user and keypad user-->
</userOperateType>
<isSupportOnvifInfo><!--optional, xs:boolean, whether it supports the API of getting ONVIF protocol information. If
this node is returned and its value is "true", in indicates supporting this funcion; if this node is not returned, it
indicates that this function is not supported--></isSupportOnvifInfo>
<isSupportPictureURlCertificate opt="true,false"><!--optional, xs:boolean, whether it supports configuring picture
URL authentication. If this node is not returned, it indicates that the default picture authentication method of the
device is digest--></isSupportPictureURlCertificate>
<isSupportUnloggedUserPermissionConfig opt="true,false"><!--optional, xs:boolean, whether it supports configuring
permissions for users that have not logged in--></isSupportUnloggedUserPermissionConfig>
<isSupportUserNamePasswordCheckUpgrade><!--optional, xs:boolean, whether it supports upgrading user name
and password verification. If this node is not returned, it indicates that this function is not supported--></
isSupportUserNamePasswordCheckUpgrade>
<isSupportDeviceSelfSignCertExport><!--optional, xs:boolean--></isSupportDeviceSelfSignCertExport>
<isSupportSecurityEmail><!--optional, xs:boolean, whether it supports configuring security E-mail address. If this
node is not returned, it indicates that this function is not supported--></isSupportSecurityEmail>
<isSupportRTSPCertificate opt="true,false"><!--optional, xs:boolean--></isSupportRTSPCertificate>
<isSptUserEnabled><!--optional, xs:boolean, whether it supports configuration of enabling user: "true"-yes, "false"-
no--></isSptUserEnabled>
<isSptAdminCap><!--optional, xs:boolean, whether it supports getting administrator permission capability: "true"-
yes, "false"-no--></isSptAdminCap>
<DoubleVerificationCap><!--optional, double verification capability-->
<isSupportUsersConfig>
<!--optional, xs: boolean, "true,false", whether it supports configuring double verification user-->
</isSupportUsersConfig>
<isSupportUsersPermissionConfig>
<!--optional, xs: boolean, "true,false", whether it supports configuring the permission of double verification user--
>
</isSupportUsersPermissionConfig>
</DoubleVerificationCap>
<isSupportCertificateCustomID><!--optional, xs:Boolean, whether it supports certificate configuration with custom
ID--></isSupportCertificateCustomID>
<maxIllegalLoginTimes min="3" max="20"def="5">
<!--dependentxs:integer,"maximum illegal login attempts" -->
903
Intelligent Security API (General) Developer Guide
</maxIllegalLoginTimes>
<SecurityAdvanced>
<securityEnhanced> <!--optional,xs:boolean,security reinforcement--> </securityEnhanced>
<noOperationEnabled><!—required, xs:Boolean, whether to enable the timeout of no operation--></
noOperationEnabled>
<noOperationTime min="1" max="60"def="15"><!—required, xs:integer,timeout of no operation, unit: minute--></
noOperationTime>
<isSupportDigestStatus><!—optional, Boolean—digest status></isSupportDigestStatus>
</SecurityAdvanced>
<LoginLinkNum><maxLinkNum min="1" max="128"def="50"><!—required, xs:integer,maximum number of logged in
accounts--></maxLinkNum><LoginLinkNum>
<isSupportCCClientCertificate><!—optional,Boolean—whether to enable the CC client certificate></
isSupportCCClientCertificate>
<passwordValidity min="0" max="365"><!--optional, xs:string, password validity period, unit: day. If this node is
returned, it indicates supporting configuring password validity period. The password validity period can only be edited
by the administrator user--></passwordValidity>
<maxIllegalLoginLockTime min="1" max="120" def="30"><!--optional, xs:integer, the lock duration when maximum
illegal login attempts reached the upper limit; unit: minute--></maxIllegalLoginLockTime>
</SecurityCap>
XML_SecurityQuestion
SecurityQuestion message in XML format
<SecurityQuestion version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<QuestionList>
<Question><!--the number of security question must be 3-->
<id><!--required, xs: integer, question ID, which corresponds to that of device--></id>
<answer>
<!--write-only, xs: string, answer of the security question, it will not be returned when getting question; when
setting question, this node will be encrypted (BASE64-->AES128CBE) for transmission-->
</answer>
<mark>
<!—required, read-only, xs: boolean, whether the configured security question is marked-->
</mark>
</Question>
</QuestionList>
<password>
<!--write-only, xs: string, password that encrypted by CBC, this node will not be returned when getting question; but
it is required when setting question-->
</password>
</SecurityQuestion>
See Also
XML_SerialCap
Serial port capability message in XML format
904
Intelligent Security API (General) Developer Guide
XML_SerialCommand
SerialCommand message in XML format
<SerialCommand version="1.0" xmlns="urn:psialliance-org">
<chainNo>
<!--opt, xs:string-->
</chainNo>
<command>
<!--req, xs:hexBinary-->
</command>
</SerialCommand>
XML_SerialPorList
SerialPorList message in XML format
<SerialPortList version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<SerialPort/><!--opt, see details in the message of XML_SerialPort-->
</SerialPortList>
See Also
XML_SerialPort
905
Intelligent Security API (General) Developer Guide
XML_SerialPort
SerialPort message in XML format
<SerialPort version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<id>
<!--req, xs:string, serial port ID-->
</id>
<enabled>
<!--req, xs:boolean, whether to enable the serial port: "true, false"-->
</enabled>
<serialPortType>
<!--req, xs:string, serial port type: "RS485", "RS422", "RS232"-->
</serialPortType>
<duplexMode>
<!--req, xs:string, duplex mode of the serial port: "half", "full"-->
</duplexMode>
<direction>
<!--req, xs:string, "monodirectional, bdirectional"-->
</direction>
<baudRate>
<!--req, xs:integer-->
</baudRate>
<dataBits>
<!--req, xs:integer-->
</dataBits>
<parityType>
<!--req, xs:string, parity type: "none,even,odd,mark,space"-->
</parityType>
<stopBits>
<!--req, xs:string, stop bit: "1,1.5,2"-->
</stopBits>
<workMode>
<!--dep, xs:string, working mode: "console","transparent","audiomixer","stairsControl"-elevator
control,"cardReader"-card reader,"disabled","custom". This node is required only when <serialPortType> is set to
"RS232"-->
</workMode>
<flowCtrl>
<!--req, xs:string, "none, software, hardware"-->
</flowCtrl>
<rs485WorkMode>
<!--opt, xs:string, working mode of RS-485 serial port, which is used for LED display or triggering transmission of
captured pictures: "Led, CaptureTrigger". This node is valid only when <serialPortType> is "RS485"-->
</rs485WorkMode>
<audiomixerProtocolType>
<!--opt, xs:string, "HIKVISION". This node is required only when <workMode> is "audiomixer"-->
</audiomixerProtocolType>
<deviceName><!--deq, xs:string, device name, the maximum length is 32 bytes, this node is valid only when
<serialPortType> is "RS485"--></deviceName>
<deviceType><!--deq, xs,integer, device type, this node is valid only when <serialPortType> is "RS485"--></
deviceType>
906
Intelligent Security API (General) Developer Guide
<deviceProtocol><!--deq, xs,integer, device protocol, this node is valid only when <serialPortType> is "RS485"--></
deviceProtocol>
<mode><!--deq, xs:string, working mode: "readerMode,clientMode,externMode,accessControlHost,disabled", this
node is valid only when <serialPortType> is "RS485"--></mode>
<outputDataType><!--dep, xs:string, output data type: "cardNo,employeeNo", this node is valid when <mode>is
"accessControlHost"--></outputDataType>
</SerialPort>
XML_Set_PTZPreset
XML message about preset configuration parameters
<?xml version="1.0" encoding="utf-8"?>
<PTZPreset version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<enabled><!--required, xs:boolean, whether to enable preset configuration--></enabled>
<id><!--required, xs:string, preset number--></id>
<presetName><!--required, xs:string, preset name--></presetName>
</PTZPreset>
XML_SIPInfo
SIPInfo message in XML format
<SIPInfo version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<videoID>
<!--req, xs:string-->
</videoID>
<AlarmInList>
<AlarmIn>
<id>
<!--req, xs:string-->
</id>
<alarmInID>
<!--req, xs:string-->
</alarmInID>
</AlarmIn>
</AlarmInList>
</SIPInfo>
XML_SIPInfoList
SIPInfoList message in XML format
<SIPInfoList version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<SIPInfo>
<videoID><!--req, xs: string--><videoID>
<AlarmInList>
907
Intelligent Security API (General) Developer Guide
<AlarmIn>
<id><!--req, xs: string--></id>
<alarmInID><!--req, xs: string--><alarmInID>
</AlarmIn>
</AlarmInList>
<VideoInputList><!--opt-->
<VideoInput>
<id><!--req, xs: string--></id>
<videoInputID><!--req, xs: string></videoInputID>
</VideoInput>
</VideoInputList>
<AudioOutputList><!--opt,ID list of audio outputs-->
<AudioOutput>
<id><!--req, xs: string--></id>
<audioOutputID><!--req, xs: string--></audioOutputID>
</AudioOutput>
</AudioOutputList>
<platformNo><!-- opt, xs:integer--></platformNo>
</SIPInfo>
<SIPInfoList>
XML_SIPServer
SIPServer message in XML format
<SIPServer version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<id><!--req, xs:interger, the maximum ID depends on the number of channels--></id>
<localPort><!--req, xs:integer, local port No., which is between 1 and 65535--></localPort>
<streamID><!--req, xs:integer, stream type: 1-main stream, 2-sub-stream, 3-third stream--></streamID>
<Standard><!--opt-->
<registerStatus><!--ro, req, xs:boolean, registration status: "false"-unregistered, "true"-registered--></
registerStatus>
<enabled><!--req, xs:string, "true"-log in, "false"-log out--></enabled>
<registrar><!--req, xs:string--></registrar>
<registrarPort><!--req, xs:integer--></registrarPort>
<proxy><!--req, xs:string--></proxy>
<proxyPort><!--req, xs:integer--></proxyPort>
<displayName><!--req, xs:string--></displayName>
<userName><!--req, xs:string--></userName>
<authID><!--req, xs:string--></authID>
<password><!--wo, req, xs:string--></password>
<expires><!--req, xs:integer--></expires>
<serverAddressType><!--optional, xs:string, server address type: "IPV4,domainName"--></serverAddressType>
<domainName><!--optional, xs:string, domain name, this node is valid only when <serverAddressType> is
"domainName"--></domainName>
<networkType><!--optional, xs:string, network type: "wireless Network,wired Network"--></networkType>
<calledTargetUserName><!--optional, xs:string, called user name--></calledTargetUserName>
</Standard>
<GB28181><!--opt-->
<registerStatus><!--req, xs:boolean, "true,false"--></registerStatus>
<enabled><!--req, xs:boolean, "true,false"--></enabled>
908
Intelligent Security API (General) Developer Guide
<registrar><!--req, xs:string--></registrar>
<registrarPort><!--req, xs:integer--></registrarPort>
<serverId><!--req, xs:string--></serverId>
<serverDomain><!--req, xs:string--></serverDomain>
<userName><!--req, xs:string--></userName>
<authID><!--req, xs:string--></authID>
<password><!--wo, req, xs:string--></password>
<expires><!--req, xs:integer--></expires>
<liveTime><!--req, xs:integer--></liveTime>
<heartbeatTime><!--req, xs:integer--></heartbeatTime>
<heartbeatCount><!--req, xs:integer--></heartbeatCount>
</GB28181>
</SIPServer>
XML_SIPServerList
SIPServerList message in XML format
<SIPServerList version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<SIPServer/><!--opt, see details in the message of XML_SIPServer-->
</SIPServerList>
See Also
XML_SIPServer
XML_SIPServerListCap
SIPServerListCap capability message in XML format
<SIPServerListCap size="" version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<SIPServer><!--optional-->
<id min="" max=""><!--required, xs:string--></id>
<localPort min="" max=""><!--required, xs:integer--></localPort>
<streamID opt="1,2"><!--required, xs:integer, stream type ID: 1-main stream, 2-sub stream--></streamID>
<Standard><!--optional-->
<registerStatus opt="true,false"><!--read-only, required, xs:boolean, registration status: "false"-unregistered,
"true"-registered--></registerStatus>
<enabled opt="true,false"><!--required, xs:boolean--></enabled>
<registrar min="" max=""><!--required, xs:string--></registrar>
<registrarPort min="" max=""><!--required, xs:integer--></registrarPort>
<proxy min="" max=""><!--required, xs:string--></proxy>
<proxyPort min="" max=""><!--required, xs:integer--></proxyPort>
<displayName min="" max=""><!--required, xs:string--></displayName>
<userName min="" max=""><!--required, xs:string--></userName>
<authID min="" max=""><!--required, xs:string--></authID>
<password min="" max=""><!--write-only, required, xs:string--></password>
<expires min="" max=""><!--required, xs:integer--></expires>
<voiceTalk opt="true,false"><!--optional, xs:boolean, whether to enable SIP two-way audio--></voiceTalk>
<isSptSIPVoiceTalk opt="true,false"><!--optional, xs:boolean, whether it supports SIP intercom, related URI: /ISAPI/
909
Intelligent Security API (General) Developer Guide
System/Network/SIP/voiceTalkCtrl/capabilities?format=json --></isSptSIPVoiceTalk>
<serverAddressType><!--optional, xs:string, server address type: "IPV4,domainName"--></serverAddressType>
<domainName min="" max=""><!--optional, xs:string, domain name, this node is valid only when
<serverAddressType> is "domainName"--></domainName>
<networkType><!--optional, xs:string, network type: "wireless Network,wired Network"--></networkType>
<calledTargetUserName min="" max=""><!--optional, xs:string, called user name--></calledTargetUserName>
</Standard>
<GB28181><!--optional-->
<registerStatus opt="true,false"><!--read-only, required, xs:boolean, registration status: "false"-unregistered,
"true"-registered--></registerStatus>
<enabled opt="true,false"><!--required, xs:boolean--></enabled>
<registrar min="" max=""><!--required, xs:string--></registrar>
<registrarPort min="" max=""><!--required, xs:integer--></registrarPort>
<serverId min="" max=""><!--required, xs:string--></serverId>
<serverDomain min="" max=""><!--required, xs:integer--></serverDomain>
<userName min="" max=""><!--required, xs:string--></userName>
<authID min="" max=""><!--required, xs:string--></authID>
<password min="" max=""><!--write-only, required, xs:string--></password>
<expires min="" max=""><!--required, xs:integer--></expires>
<liveTime min="" max=""><!--required, xs:integer--></liveTime>
<heartbeatTime min="" max=""><!--required, xs:integer--></heartbeatTime>
<heartbeatCount min="" max=""><!--required, xs:integer--></heartbeatCount>
<transportType opt="UDP,TCP,TLS"><!--optional, xs:string, "UDP,TCP,TLS"--></transportType>
<tcpConnectType opt="active,passive"><!--xs:string, dependency, this node is valid when transportType is "TCP"--
></tcpConnectType>
<registerInterval min="" max=""><!--optional, xs:integer, registration interval, unit:second--></registerInterval>
</GB28181>
</SIPServer>
</SIPServerListCap>
XML_Sharpness
Sharpness message in XML format
<Sharpness version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<SharpnessMode><!--opt, xs:string, "manual", "auto"--></SharpnessMode>
<SharpnessLevel><!--req, xs:integer--></SharpnessLevel>
</Sharpness>
XML_Shutter
Shutter message in XML format
<Shutter version="1.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<ShutterLevel>
<!--dep, xs: string, shutter level: "1/1, 1/2, 1/3, 1/6, 1/12, 1/25, 1/50, 1/75, 1/100, 1/120, 1/125, 1/150, 1/175,
1/215, 1/225, 1/300, 1/400, 1/425, 1/600, 1/1000, 1/1250, 1/1750, 1/2500, 1/3500, 1/6000, 1/10000", this node is
valid when <ExposureType> in the message XML_Exposure is "ShutterFisrt"-->
910
Intelligent Security API (General) Developer Guide
<ShutterLevel>
</Shutter>
See Also
XML_Exposure
XML_SlaveCamera
SlaveCamera message in XML format
<SlaveCameraInfo version="2.0" xmlns="http://www.std-cgi.org/ver20/XMLSchema">
<id>
<!--req, xs:string-->
</id>
<serverAddress>
<addressingFormatType>
<!--req, xs:string, "ipaddress,hostname"-->
</addressingFormatType>
<hostName>
<!--dep, xs:string-->
</hostName>
<ipAddress>
<!--dep, xs:string-->
</ipAddress>
<ipv6Address>
<!--dep, xs:string-->
</ipv6Address>
</serverAddress>
<userName>
<!--req, xs:string-->
</userName>
<passWord>
<!--wo, xs:string-->
</passWord>
<portNo>
<!--req, xs:integer-->
</portNo>
<loginStatus>
<!--req, xs:string, "login,logout"-->
</loginStatus>
</SlaveCameraInfo>
XML_SlaveCameraStatus
SlaveCameraStatus message in XML format
<SlaveCameraStatus version="2.0" xmlns="http://www.std-cgi.org/ver20/XMLSchema">
<SlaveCameraLinkStatusList>
<!--req-->
911
Intelligent Security API (General) Developer Guide
<SlaveCameraLinkStatus>
<id>
<!--req, xs:string-->
</id>
<linkStatus/>
<!--ro, xs:string, connection status: "online,offline"-->
</SlaveCameraLinkStatus>
</SlaveCameraLinkStatusList>
</SlaveCameraStatus>
XML_SmartCap
SmartCap capability message in XML format
<SmartCap version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<isSupportROI><!--opt, xs:boolean, whether to support ROI (Region of Interest)--></isSupportROI>
<isSupportFaceDetect><!--opt, xs:boolean, whether to support face detection--></isSupportFaceDetect>
<isSupportIntelliTrace><!--opt, xs:boolean--></isSupportIntelliTrace>
<isSupportFieldDetection><!--opt, xs:boolean, whether to support region detection--></isSupportFieldDetection>
<isSupportDefocusDetection><!--opt, xs:boolean--></isSupportDefocusDetection>
<isSupportAudioDetection><!--opt, xs:boolean--></isSupportAudioDetection>
<isSupportSceneChangeDetection><!--opt, xs:boolean, whether to support scene change detection--></
isSupportSceneChangeDetection>
<isSupportLineDetection><!--opt, xs:boolean--></isSupportLineDetection>
<isSupportRegionEntrance><!--opt, xs:boolean--></isSupportRegionEntrance>
<isSupportRegionExiting><!--opt, xs:boolean--></isSupportRegionExiting>
<isSupportLoitering><!--opt, xs:boolean--></isSupportLoitering>
<isSupportGroup><!--opt, xs:boolean--></isSupportGroup>
<isSupportRapidMove><!--opt, xs:boolean--></isSupportRapidMove>
<isSupportParking><!--opt, xs:boolean--></isSupportParking>
<isSupportUnattendedBaggage><!--opt, xs:boolean--></isSupportUnattendedBaggage>
<isSupportAttendedBaggage><!--opt, xs:boolean--></isSupportAttendedBaggage>
<isSupportPeopleDetection><!--opt, xs:boolean--></isSupportPeopleDetection>
<isSupportStorageDetection><!--opt, xs:boolean--></isSupportStorageDetection>
<isSupportShipsDetection><!--opt, xs:boolean--></isSupportShipsDetection>
<isSupportSmartCalibration><!--opt, xs:boolean--></isSupportSmartCalibration>
<isSupportShield><!--opt, xs:boolean, whether to support shielded area--></isSupportShield>
<isSupportAlgVersion><!--opt, xs:boolean, whether to support algorithm library version--></isSupportAlgVersion>
<isSupportVideoOverlap><!--opt, xs:boolean, whether to support text overlay--></isSupportVideoOverlap>
<isSupportParkingState><!--opt, xs:boolean, whether to support parking space status detection--></
isSupportParkingState>
<isSupportChannelResource><!--opt, xs:boolean--></ isSupportChannelResource>
<isSupportAnalysisUnitSwitch opt="true,false"><!--opt, xs:boolean, whether to support analysis unit switch--></
isSupportAnalysisUnitSwitch>
<isSupportHFPD><!--opt, xs:boolean, whether to support frequently appeared person detection--></isSupportHFPD>
<isSupportLFPD><!--opt, xs:boolean, whether it supports low frequency person detection, related URI: /ISAPI/SDT/
LFPD?format=json--></isSupportLFPD>
<isSupportImageROI<!--opt, xs:boolean, whether to support smartJpeg (image ROI (Region of Interest))--></
isSupportImageROI>
</SmartCap>
912
Intelligent Security API (General) Developer Guide
XML_SmartSearchDescription
SmartSearchDescription message in XML format
<SmartSearchDescription version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<searchID>
<!--req, xs:string, search ID, which is used to confirm the upper-level platform or system. If the platform or system
are same during two times of search, the search history will be recorded in the memory for next fast search-->
</searchID>
<searchResultPosition><!--req, xs: integer--></searchResultPosition>
<maxResults><!--req, xs: integer--></maxResults>
<trackID><!--req, xs: integer, channel ID, e.g., 101-main stream if first channel--></trackID>
<startTime><!--req, xs: datetime, start time of validity period, e.g., 2013-06-10T 12:00:00Z--></startTime>
<endTime><!--req, xs: datetime, end time of validity period, e.g., 2013-06-10T 13:00:00Z--></endTime>
<type>
<!--req, xs: string; VCA event type: "motionDetection, traversePlaneDetection,FieldDetection, faceDetection"-->
</type>
<MotionDetection><!--dep, it is valid when type is "motionDetection"-->
<Grid>
<rowGranularity></rowGranularity>
<columnGranularity></columnGranularity>
</Grid>
<MotionDetectionLayout>
<layout>
<gridMap></gridMap>
</layout>
</MotionDetectionLayout>
<sensitivity><!--opt, xs: integer, value range: [1,100]--></sensitivity>
</MotionDetection>
<TraversePlane><!--dep, it is valid when type is "traversePlaneDetection"-->
<TraversePlaneParam>
<LineList>
<Line>
<StartPoint>
<x><!--req, xs: float--></x>
<y><!--req, xs: float--></y>
</StartPoint>
<EndPoint>
<x><!--req, xs: float--></x>
<y><!--req, xs: float--></y>
</EndPoint>
</Line>
</LineList>
<crossDirection><!--opt, xs: string, crossing direction: "bothDirection, leftToRight, rightToLeft"--><crossDirection>
<sensitivity><!-- opt, xs: integer, value range: [1,100]--></sensitivity>
<planeHeight><!--opt, xs: integer--></planeHeight>
<detectionTarget><!--req, xs: string, detection target type: "all, human, vehicle--><detectionTarget>
</TraversePlaneParam>
<dwPreTime><!--opt, xs: integer, pre-recording time--></dwPreTime>
<dwDelayTime><!--opt, xs: integer,post-recording time--></dwDelayTime>
<PTZPos>
913
Intelligent Security API (General) Developer Guide
914
Intelligent Security API (General) Developer Guide
<ObjectFeature>
<colorRatel><!--opt, xs: integer--></colorRatel>
<R><!--opt, xs: integer--></R>
<G><!--opt, xs: integer--></G>
<B><!--opt, xs: integer--></B>
</ObjectFeature><!--dep, it is valid when advancedType is "objectFeature"-->
</advance>
</FieldDetection>
<FaceDetection><!--dep, it is valid when type is "faceDetection"-->
<param>
<region>
<pointList>
<point>
<x/>
<y/>
</point>
</pointList>
</region>
</param>
<duration><!--opt, xs: integer, value range: [1,100]--></duration>
<sensitivity><!--opt, xs: integer, value range: [1,100]--></sensitivity>
<rate><!--opt, xs: integer, value range: [1,100]--></rate>
<detectionTarget><!--req, xs: string, detection target type: "all, human, vehicle"--><detectionTarget>
<dwPreTime><!--opt, xs: integer, pre-recording time--></dwPreTime>
<dwDelayTime><!--opt, xs: integer, post-recording time--></dwDelayTime>
<PTZPos>
<P><!--opt, xs: integer--></P>
<T><!--opt, xs: integer--></T>
<Z><!--opt, xs: integer--></Z>
</PTZPos>
<advancedType><!--opt, xs: string, target sub type: "humanFeature, objectFeature"--></advancedType>
<advance><!--dep, it is valid when type is "motionDetection"-->
<HumanFeature>
<age><!--opt, xs: integer, value range: [0,100]--></age>
<sex><!--opt, xs: string, gender: "male,female"--></sex>
<eyeGlass><!--opt, xs: boolean--></eyeGlass>
</HumanFeature><!--dep, it is valid when advancedType is "humanFeature"-->
<ObjectFeature>
<colorRatel><!--opt, xs: integer--></colorRatel>
<R><!--opt, xs: integer--></R>
<G><!--opt, xs: integer--></G>
<B><!--opt, xs: integer--></B>
</ObjectFeature><!--dep, it is valid when advancedType is "objectFeature"-->
</advance>
</FaceDetection>
</SmartSearchDescription>
XML_SmartSearchResult
SmartSearchResult message in XML format
915
Intelligent Security API (General) Developer Guide
XML_SMARTTestConfig
SMARTTestConfig message in XML format
<SMARTTestConfig version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<enable opt="true,false"><!--req, xs:string, whether to continue using the HDD when the HDD SMART detection
failed--></enable>
</SMARTTestConfig>
XML_SMARTTestStatus
SMARTTestStatus message in XML format
<SMARTTestStatus version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<id><!--req, xs: string--></id>
<temprature><!--req, xs: integer, unit: °C--></temprature>
<powerOnDay><!--req, xs: integer, unit: day--></powerOnDay>
<selfEvaluaingStatus><!--req, xs: string, "ok, error"--></selfEvaluaingStatus>
<allEvaluaingStatus><!--req, xs: string, "unctional,badsectors,fault"--></allEvaluaingStatus>
<selfTestPercent><!--req, xs: integer--></selfTestPercent>
<selfTestStatus>
<!--req, xs: string,
"ok,aborted,interrupted,failed,unkown,electronic_element_error,servo_error,read_failed,progress,not_tested,not_rec
ognized"-->
</selfTestStatus>
<testType><!--req, xs: string, "short,expanded,conveyance"--></testType>
<TestResultList><!--req, list, the maximum size is 30 bytes-->
<TestResult><!--list-->
916
Intelligent Security API (General) Developer Guide
XML_SMSWhiteList
SMSWhiteList message in XML format
<SMSWhiteList version="1.0"xmlns="http://www.isapi.org/ver20/XMLSchema" >
<ListMember/>
</SMSWhiteList>
XML_SnapshotChannel
SnapshotChannel message in XML format
<SnapshotChannel version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<id><!--required, xs:string, ID--></id>
<videoInputChannelID><!--required, xs:string, video input channel ID--></videoInputChannelID>
<timingCapture><!--optional-->
<enabled><!--required, xs:boolean, whether to enable capturing pictures by schedule--></enabled>
<supportSchedule><!--optional, read-only, xs:boolean--></supportSchedule>
<compress>
<pictureCodecType><!--required, xs:string, picture format: "JPEG", "BMP", "GIF", "PNG"--></pictureCodecType>
<pictureWidth><!--required, xs:integer, picture width--></pictureWidth>
<pictureHeight><!--required, xs:integer, picture height--></pictureHeight>
<quality><!--optional, xs:integer, picture quality (in percentage), it is between 1 and 100--></quality>
<captureInterval><!--optional, xs:integer, capture interval, unit: millisecond--></captureInterval>
<captureNumber><!--optional, xs:integer--></captureNumber>
</compress>
</timingCapture>
<eventCapture><!--optional-->
<enabled><!--required, xs:boolean--></enabled>
<supportSchedule><!--optional, read-only, xs:boolean--></supportSchedule>
<compress>
<pictureCodecType><!--required, xs:string, picture format: "JPEG", "BMP", "GIF", "PNG"--></pictureCodecType>
<pictureWidth><!--required, xs:integer, picture width--></pictureWidth>
<pictureHeight><!--required, xs:integer, picture height--></pictureHeight>
<quality><!--optional, xs:integer, picture quality (in percentage), it is between 0 and 100--></quality>
<captureInterval><!--optional, xs:integer, capture interval, unit: millisecond--></captureInterval>
<captureNumber><!--optional, xs:integer--></captureNumber>
917
Intelligent Security API (General) Developer Guide
</compress>
</eventCapture>
</SnapshotChannel>
XML_SnapshotChannelList
SnapshotChannelList message in XML format
<SnapshotChannelList version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<SnapshotChannel><!--optional, see details in the message XML_SnapshotChannel--></SnapshotChannel>
</SnapshotChannelList>
See Also
XML_SnapshotChannel
XML_SNMP
XML message about SNMP configuration
<SNMP version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<SNMPv1c/><!--dependent -->
<SNMPv2c/><!--dependent-->
<SNMPAdvanced/><!--dependent, advanced parameters-->
<listenPort> <!--optional, xs:integer, SNMP port--></listenPort>
</SNMP>
XML_SNMPAdvanced
XML message about SNMP advanced parameter configuration
<SNMPAdvanced xmlns="http://www.isapi.org/ver20/XMLSchema" version="2.0" >
<localEngineID>
<!--required, xs:hexBinary, local device engine-->
</localEngineID>
<authenticationNotificationEnabled>
<!--optional, xs:boolean, notification of failure to enable authentication-->
</authenticationNotificationEnabled>
<SNMPUserList/>
<!--optional -->
<SNMPNotificationFilterList/>
<!--optional, filtering table based on OIDS-->
<notificationEnabled>
<!--optional, xs:boolean -->
</notificationEnabled>
<SNMPNotificationReceiverList/>
<!--optional-->
<enabled>
918
Intelligent Security API (General) Developer Guide
XML_SNMPTrapReceiver
XML message about parameters of single trap address of SNMP
<SNMPTrapReceiver xmlns="http://www.isapi.org/ver20/XMLSchema" version="2.0" >
<id>
<!--required, xs:string, ID -->
</id>
<ReceiverAddress>
<!--required -->
<addressingFormatType>
<!--required, xs:string, "ipaddress,hostname"-->
</addressingFormatType>
<hostName>
<!--dependent, xs:string -->
</hostName>
<ipAddress>
<!--dependent, xs:string -->
</ipAddress>
<ipv6Address>
<!--dependent, xs:string -->
</ipv6Address>
<portNo>
<!--optional, xs:integer -->
</portNo>
</ReceiverAddress>
<notificationType>
<!--required, xs:string, "trap,inform" -->
</notificationType>
<communityString>
<!--optional, xs:string -->
</communityString>
</SNMPTrapReceiver>
XML_SNMPTrapReceiverList
XML message about trap address parameters of SNMP
<SNMPTrapReceiverList version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<SNMPTrapReceiver/> <!--optional-->
</SNMPTrapReceiverList>
919
Intelligent Security API (General) Developer Guide
XML_SoftwareService
SoftwareService message in XML format
<SoftwareService version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<ThirdStream><!--opt, third stream configuration-->
<enabled><!--req, xs: boolean, "true,false", whether to enable third stream configuration--></enabled>
</ThirdStream>
<PanoramaDisplay><!--opt, display the image range on panorama view-->
<enabled>
<!--req, xs: boolean, "true,false", whether to enable image range display on panorama view-->
</enabled>
</PanoramaDisplay>
<MotionDetect>
<enabled><!--whether to enable motion detetion--></enabled>
</MotionDetect>
</SoftwareService>
XML_SocketIP
SocketIP message in XML format
<SocketIP version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<ipAddress>
<!--opt, xs: string-->
</ipAddress>
<ipv6Address>
<!--opt, xs: string-->
</ipv6Address>
</SocketIP>
XML_sourceCapability
sourceCapability message in XML format
<sourceCapability version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<videoInputNums><!--req, xs:integer--></videoInputNums>
<audioInputNums><!--opt, xs:integer--></audioInputNums>
</sourceCapability>
XML_sourceDescriptor
sourceDescriptor message in XML format
<sourceDescriptor version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<adminProtocol><!--req, xs:string, "HIKVISION,SONY,ISAPI,ONVIF,..."--></adminProtocol>
920
Intelligent Security API (General) Developer Guide
<addressingFormatType><!--req,xs:string, opt="ipaddress,hostname"--></addressingFormatType>
<hostName><!--dep,xs:string, domain name--></hostName>
<ipAddress><!--dep,xs:string, IP address--></ipAddress>
<ipv6Address><!--dep,xs:string, IPv6 address--></ipv6Address>
<managePortNo><!--req,xs:integer, port number--></managePortNo>
<userName><!--req,xs:string--></userName>
<password><!--req,wo,xs:string--></password>
</sourceDescriptor>
XML_ssd
JSON message about a SSD information
<?xml version="1.0" encoding="utf-8"?>
<ssd version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<id><!--required, read-only, xs:string, SSD ID--></id>
<ssdName><!--required, read-only, xs:string, SSD name--></ssdName>
<version><!--optional, xs:string, SSD firmware version--></version>
</ssd>
XML_ssdList
JSON message about information of all SSDs
<?xml version="1.0" encoding="utf-8"?>
<ssdList version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<ssd><!--optional, see XML-ssd for details--></ssd>
</ssdList>
See Also
XML_ssd
XML_SSDSMARTTest
XML message about SSD S.M.A.R.T detection parameters
<?xml version="1.0" encoding="utf-8"?>
<SSDSMARTTest version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<testType><!--optional, xs:string, self-test type: "short", "expanded", "conveyance"--></testType>
</SSDSMARTTest>
XML_SSD_SmartTestStatus
JSON message about SSD S.M.A.R.T detection status
921
Intelligent Security API (General) Developer Guide
XML_SSH
SSH message in XML format
<SSH version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<enabled><!--req, xs:boolean--></enabled>
</SSH>
XML_staticRouteList
staticRouteList message in XML format
<staticRouteList version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<staticRoute><!--opt-->
<id>
<!--req, xs: integer, this node must be configured when deleting-->
</id>
<enabled><!--req, xs: boolean--></enabled>
<dstIpAddr><!--req, xs: string--></dstIpAddr>
<dstNetmask><!--req, xs: string--></dstNetmask>
<dstGateway><!--req, xs: string--></dstGateway>
922
Intelligent Security API (General) Developer Guide
XML_storage
XML message about storage working mode
<?xml version="1.0" encoding="utf-8"?>
<storage version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<hddList><!--optional, the contents are same to the message XML_hddList (related URI: /ISAPI/ContentMgmt/
Storage/hdd)--></hddList>
<nasList><!--optional, the contents are same to the message XML_nasList (related URI: /ISAPI/ContentMgmt/Storage/
nas)--></nasList>
<workMode><!--optional, xs:string, working mode: "group", "quota", "extract--></workMode>
<ssdList><!--optional, the contents are same to the message XML_ssdList (related URI: /ISAPI/ContentMgmt/Storage/
ssd)--></ssdList>
</storage>
XML_StorageDetection
XML message about storage health detection parameters
<?xml version="1.0" encoding="UTF-8"?>
<StorageDetection version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<healthState><!--optional, xs:string, storage health status: "good, bad, damage, unknown"--></healthState>
<badBlocks><!--optional, xs:integer, the number of defective blocks--></badBlocks>
<SDCardState><!--optional, xs:string, SD card status: "onLine, offLine, unknown, locked"--></SDCardState>
<abnormalPowerLoss><!--optional, xs:integer, the number of abnormal power consumption--></
abnormalPowerLoss>
<remainingLife><!--optional, xs:integer, remaining lifespan percentage of SD card, range: [0,100]--></remainingLife>
</StorageDetection>
XML_storageExtension
XML message about storage strategy.
<storageExtension xmlns="http://www.isapi.org/ver20/XMLSchema" version="2.0" >
<LoopEnable,opt="true,false">
<!--optional, xs:boolean, whether to enable overwriting-->
</LoopEnable>
<enableDormant>
<!-optional, xs:boolean-->
</enableDormant>
<packDuration>
<!-optional, xs:integer, unit: minute-->
</packDuration>
923
Intelligent Security API (General) Developer Guide
<logStorageMode>
<!-optional, xs:string, log storage mode: "system"-system default mode, "custom"-custom mode-->
</logStorageMode>
<logStorageId>
<!--dependent, xs:integer, disk ID (saving logs in a disk) or array number (saving logs in disk arrays), which are valid
only when logStorageMode is "custom"; -->
</logStorageId>
<logStorageCycle>
<!--dependent, xs:integer, log storage period,which is valid only when logStorageMode is "custom"-->
</logStorageCycle>
</storageExtension>
XML_StreamingChannel
StreamingChannel message in XML format
<StreamingChannel version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<id><!--req,xs:string;id--></id>
<channelName><!--req,xs:string--></channelName>
<enabled><!--req,xs:boolean--></enabled>
<Transport><!--req-->
<maxPacketSize><!--opt, xs: integer--></maxPacketSize>
<audioPacketLength><!--opt, xs: integer--></audioPacketLength>
<audioInboundPacketLength><!--opt, xs: integer--></audioInboundPacketLength>
<audioInboundPortNo><!--opt, xs: integer--></audioInboundPortNo>
<videoSourcePortNo><!--opt, xs: integer--></videoSourcePortNo>
<audioSourcePortNo><!--opt, xs: integer--></audioSourcePortNo>
<ControlProtocolList><!--req, protocol types for streaming-->
<ControlProtocol><!--req-->
<streamingTransport>
<!--req,xs:string,"HTTP,RTSP,SHTTP,SRTP"-->
</streamingTransport>
</ControlProtocol>
</ControlProtocolList>
<Unicast><!--opt-->
<enabled><!--req, xs: boolean--></enabled>
<interfaceID><!--opt, xs: string--></interfaceID>
<rtpTransportType
<!--opt, xs: string, "RTP/UDP, RTP/TCP"-->
</rtpTransportType>
</Unicast>
<Multicast><!--opt-->
<enabled><!--req, xs: boolean--></enabled>
<userTriggerThreshold><!--opt, xs: integer--></userTriggerThreshold>
<destIPAddress><!--dep, xs: string--></destIPAddress>
<videoDestPortNo><!--opt, xs: integer--></videoDestPortNo>
<audioDestPortNo><!--opt, xs: integer--></audioDestPortNo>
<destIPv6Address><!--dep, xs: string--></destIPv6Address>
<ttl><!--opt, xs:integer--></ttl>
<activeMulticastEnabled>
<!--opt, xs: boolean, "true,false", whether to enable active multicast, which is mutual exclusion with passive
924
Intelligent Security API (General) Developer Guide
multicast-->
</activeMulticastEnabled>
<packagingFormat><!--opt, xs: string, container format--></packagingFormat>
<FecInfo><!--opt-->
<fecRatio>
<!--req, read-only, xs: integer, extra bandwidth occupation ratio of forward error correction (FEC) data, the value
is between 0 and 100, the default value is 0-->
</fecRatio>
<fecDestPortNo>
<!--opt, xs: integer, Port No. of FEC multicast, the default port No. is specified by device-->
</fecDestPortNo>
</FecInfo>
</Multicast>
<Security><!--opt-->
<enabled><!--req, xs: boolean--></enabled>
<certificateType><!--req, xs: string, opt="digest,digest/baisc" def="digest"--></certificateType>
<SecurityAlgorithm><!--dependency, this node is valid when certificateType is "digest" or "digest/basic"-->
<algorithmType><!--optional, xs:string, algorithm type: "MD5", "SHA256", "MD5/SHA256"--></algorithmType>
</SecurityAlgorithm>
</Security>
<SRTPMulticast><!--opt-->
<SRTPVideoDestPortNo><!--opt, xs:integer--></SRTPVideoDestPortNo>
<SRTPAudioDestPortNo><!--opt, xs:integer--></SRTPAudioDestPortNo>
</SRTPMulticast>
</Transport>
<Video><!--opt-->
<enabled><!--req,xs:boolean--></enabled>
<videoInputChannelID>
<!--req,xs:string;id-->
</videoInputChannelID>
<videoCodecType>
<!--req,xs:string,"MPEG4,MJPEG,3GP,H.264,HK.264,MPNG,SVAC,H.265"-->
</videoCodecType>
<videoResolutionWidth>
<!--req,xs:integer-->
</videoResolutionWidth>
<videoResolutionHeight>
<!--req,xs:integer-->
</videoResolutionHeight>
<videoQualityControlType>
<!--opt,xs:string,"CBR,VBR"-->
</videoQualityControlType>
<constantBitRate>
<!--dep, xs:integer, constant bit rate, unit: kbps-->
</constantBitRate>
<vbrUpperCap>
<!--dep, xs:integer, upper limit of variable bit rate, unit: kbps-->
</vbrUpperCap>
<vbrLowerCap>
<!--dep, xs:integer, lower limit of variable bit rate, unit: kbps-->
</vbrLowerCap>
<maxFrameRate>
925
Intelligent Security API (General) Developer Guide
<!--req, xs:integer, maximum frame rate, the value is multiplied by 100 to be returned-->
</maxFrameRate>
<keyFrameInterval><!--opt, xs:integer, milliseconds--></keyFrameInterval>
<rotationDegree><!--opt, xs:integer, degrees, 0..360--></rotationDegree>
<mirrorEnabled><!--opt, xs:boolean--></mirrorEnabled>
<snapShotImageType><!--opt, xs:string, "JPEG,GIF,PNG"--></snapShotImageType>
<Mpeg4Profile> <!--dep, xs:string, "SP,ASP"--></Mpeg4Profile>
<H264Profile><!--dep, xs:string, "Baseline,Main,High, Extended"--></H264Profile>
<SVACProfile><!--dep, xs:string, "Baseline,Main,High,Extended"--></SVACProfile>
<GovLength> <!--opt, xs:integer--></GovLength>
<SVC>
<enabled><!--req, xs:boolean--></enabled>
<SVCMode><!--dep, xs:string, "manual,auto"--></SVCMode>
</SVC>
<smoothing><!--opt, xs:integer--></smoothing>
<SmartCodec><!--dep, -->
<enabled><!--req, xs:boolean--></enabled>
</SmartCodec>
<vbrAverageCap><!--dep, xs:integer, in kbps--></vbrAverageCap>
<IntelligentInfoDisplayMethod>
<!--opt, intelligent information displaying method, xs:string, "player,non-player"-->
</IntelligentInfoDisplayMethod>
</Video>
<Audio><!--opt-->
<enabled><!--req, xs:boolean--></enabled>
<audioInputChannelID><!--req, xs:string;id--></audioInputChannelID>
<audioCompressionType>
<!--req, xs:string,"G.711alaw,G.711ulaw,G.726,G.729,G.729a,G.729b,PCM,MP3,AC3,AAC,ADPCM,MP2L2"-->
</audioCompressionType>
<audioInboundCompressionType>
<!--opt, xs:string,"G.711alaw,G.711ulaw,G.726,G.729,G.729a,G.729b,PCM,MP3,AC3,AAC,ADPCM,MP2L2"-->
</audioInboundCompressionType>
<audioBitRate><!--opt, xs:integer, in kbps--></audioBitRate>
<audioSamplingRate><!--opt, xs:float, in kHz--></audioSamplingRate>
<audioResolution><!--opt, xs:integer, in bits--></audioResolution>
<VoiceChanger><!--opt, xs:integer, -12..0..12-->
<enabled><!--req, xs:boolean--></enabled>
<level><!--req, xs:integer, "-12..12"--></level>
</VoiceChanger>
</Audio>
<enableCABAC><!--opt, xs: boolean--></enableCABAC>
<subStreamRecStatus><!--opt, xs: boolean--></subStreamRecStatus>
<customStreamEnable><!—opt, xs: boolean, whether the stream is custom stream: "true"-yes, this node is not
returned-no--></customStreamEnable>
</StreamingChannel>
XML_StreamingChannelList
StreamingChannelList message in XML format
926
Intelligent Security API (General) Developer Guide
See Also
XML_StreamingChannel
XML_StreamingStatus
StreamingStatus message in XML format
<StreamingStatus version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<totalStreamingSessions><!--req, xs: integer, number of streaming sessions--></totalStreamingSessions>
<StreamingSessionStatusList/><!--dep, this node is valid only when the number of sessions is larger than 0, refer to
XML_StreamingSessionStatusList for details-->
</StreamingStatus>
See Also
XML_StreamingSessionStatusList
XML_StreamingSessionStatusList
StreamingSessionStatusList message in XML format
<StreamingSessionStatusList version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<StreamingSessionStatus>
<clientAddress><!--req-->
<ipAddress><!--dep, xs: string--></ipAddress>
<ipv6Address><!--dep, xs: string--></ipv6Address>
</clientAddress>
</StreamingSessionStatus>
</StreamingSessionStatusList>
XML_SubscribeEvent
SubscribeEvent message in XML format
<SubscribeEvent version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema" >
<heartbeat>
<!--optional, xs:integer, heartbeat interval, unit: second, the default value is 30s-->
</heartbeat>
<eventMode>
<!--required, xs:string, "all"-upload all alarms/events, "list"-upload specified alarm/event-->
</eventMode>
<EventList>
<Event><!--uploading mode of specified alarm/event, this node exists only when eventMode is "list"-->
927
Intelligent Security API (General) Developer Guide
<type>
<!--required, xs:string, alarm/event types, which are obtained from the capability, refer to Alarm/Event Types for
Subscription for its values-->
</type>
<minorAlarm>
<!--opt, xs:string, minor alarm type: "0x400,0x401,0x402,0x403", see details in Access Control Event Type. This
node is required when type is "AccessControllerEvent"-->
</minorAlarm>
<minorException>
<!--opt, xs:string, minor exception type: "0x400,0x401,0x402,0x403", see details in Access Control Event Type.
This node is required when type is "AccessControllerEvent"-->
</minorException>
<minorOperation>
<!--opt, xs:string, minor operation type: "0x400,0x401,0x402,0x403", see details in Access Control Event Type.
This node is required when type is "AccessControllerEvent"-->
</minorOperation>
<minorEvent>
<!--opt, xs:string, minor event type: "0x01,0x02,0x03,0x04", see details in Access Control Event Type. This node is
required when type is "AccessControllerEvent"-->
</minorEvent>
<pictureURLType>
<!--opt, xs:string, alarm picture format: "binary"-binary, "localURL"-device local URL, "cloudStorageURL"-cloud
storage URL-->
</pictureURLType>
</Event>
</EventList>
<channels>
<!--optional, xs:string, event linked channel information, and multiple channels can be linked, each channel is
separated by comma, e.g., "1,2,3,4…"-->
</channels>
<channels>
<!--optional, xs:string, specify channels (each channel is separated by comma, e.g., "1,2,3,4…") to be armed, this
node does not exist if you want to arm all channels, and if this node exists, the sub node <channels> in the node
<Event> is invalid-->
</channels>
<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-->
</SubscribeEvent>
XML_SubscribeEventCap
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-->
928
Intelligent Security API (General) Developer Guide
929
Intelligent Security API (General) Developer Guide
XML_SubscribeEventResponse
SubscribeEventResponse message in XML format
<SubscribeEventResponse>
<id><!--req, xs:integer, subscription ID--></id>
<FailedEventList>
<!--opt, list of subscription failed events. When subscription failed, it should be returned, and the upper layer can
check whether all event/alarm subscriptions are succeeded via the existence of node FailedEventList-->
<Event>
<type>
<!--req, xs:string, refer to Supported Alarm/Event Types for details-->
</type>
<minorAlarm>
<!--opt, xs:string, minor alarm type: "0x400,0x401,0x402,0x403", see details in Access Control Event Type. This
node is required when type is "AccessControllerEvent"-->
</minorAlarm>
<minorException>
<!--opt, xs:string, minor exception type: "0x400,0x401,0x402,0x403", see details in Access Control Event Type.
This node is required when type is "AccessControllerEvent"-->
</minorException>
<minorOperation>
<!--opt, xs:string, minor operation type: "0x400,0x401,0x402,0x403", see details in Access Control Event Type.
This node is required when type is "AccessControllerEvent"-->
</minorOperation>
<minorEvent>
<!--opt, xs:string, minor event type: "0x01,0x02,0x03,0x04", see details in Access Control Event Type. This node is
required when type is "AccessControllerEvent"-->
</minorEvent>
<pictureURLType>
<!--opt,xs:string, opt="binary,localURL,cloudStorageURL", alarm picture transmission mode: "binary"-binary,
"localURL"-device local URL, "cloudStorageURL"-cloud storage URL-->
</pictureURLType>
<channels>
<!--opt, xs:string, "1,2,3,4…", event related channel ID, supports multiple channels, and the channel ID is
separated by commas-->
</channels>
<subStatusCode>
<!--req, string, subscription failure error code-->
</subStatusCode>
</Event>
</FailedEventList>
</SubscribeEventResponse>
XML_SupplementLight
SupplementLight message in XML format
930
Intelligent Security API (General) Developer Guide
<SupplementLight><!--opt-->
<mode><!--opt, xs: string, adjustment mode of supplement light, opt="schedule,off,on,auto"--></mode>
<Schedule>
<TimeRange><!--req-->
<beginTime><!--req, xs: time, ISO8601 time--></beginTime>
<endTime><!-- req, xs: time, ISO8601 time--></endTime>
</TimeRange>
</Schedule>
<brightnessLimit>
<!--dep, xs: integer, brightness of supplement light, which is between 0 and 100; the brightness can be adjust when
<mode> is set to "on"-->
</brightnessLimit>
<supplementLightMode>
<!--opt, xs: string, illumination mode: "mixed"-hybrid, "whitelight"-white light, "close"-disabled-->
</supplementLightMode>
<irLightBrightness>
<!--dep, xs: integer, brightness of IR supplement light, which is between 0 and 100; this node is valid only when
<supplementLightMode> is set to "mixed" and <mixedLightBrightnessRegulatMode> is set to "manual"-->
</irLightBrightness>
<mixedLightBrightnessRegulatMode>
<!--dep, xs: string, brightness adjustment mode of hybrid supplement light, opt="manual,auto"; this node is valid
only when <supplementLightMode> is set to "mixed"-->
</mixedLightBrightnessRegulatMode>
<highIrLightBrightness>
<!--dep, xs: integer, brightness of far IR light, which is between 0 and 100; this node cannot be configured together
with node <irLightBrightness>-->
</highIrLightBrightness>
<highWhiteLightBrightness>
<!--dep, xs: integer, brightness of far white light, which is between 0 and 100; this node cannot be configured
together with node <brightnessLimit>-->
</highWhiteLightBrightness>
<lowIrLightBrightness>
<!--dep, xs: integer, brightness of near IR light, which is between 0 and 100; this node cannot be configured together
with node <irLightBrightness>-->
</lowIrLightBrightness>
<lowWhiteLightBrightness>
<!--dep, xs: integer, brightness of near white light, which is between 0 and 100; this node cannot be configured
together with node <brightnessLimit>-->
</lowWhiteLightBrightness>
<whiteLightBrightness><!--dep, xs: integer, white light brightness, which is between 0 and 100--></
whiteLightBrightness>
<irLightbrightnessLimit><!--dep, xs:integer, IR light brightness limit, range: [0,100]; this node is valid when the value
of mode "auto"--></irLightbrightnessLimit>
<whiteLightbrightnessLimit><!--dep, xs:integer, white light brightness limit, range: [0,100]; this node is valid when
the value of mode "auto"--></whiteLightbrightnessLimit>
<unscheduledBrightness><!--optional, xs:integer, brightness in the unscheduled time, by default it is 0 (the
supplement light is disabled) and the value is between 0 and 100--></unscheduledBrightness>
</SupplementLight>
931
Intelligent Security API (General) Developer Guide
XML_SyncSignalOutputList
SyncSignalOutputList message in XML format
<SyncSignalOutputList version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<SyncSignalOutput>
<IOWorkMode>
<!--req, xs:string, IO output mode: "flashLight"-strobe light control mode, "polarizer"-polarizer control mode,
"continuousLight"-solid light control mode, "flashLightSwitch"-strobe light switching mode (used to switch between
the strobe supplement light mode and IR mode). When this node is set to "polarizer", only <outputStatus>,
<detectBrightnessEnable>, <brightnessThreshold>, <flashEnabled>, <startHour>, <startMinute>, <endHour>, and
<endMinute> are valid, and the <outputStatus> can only be set to "high" or "low". When this node is set to
"continuousLight", only <detectBrightnessEnable>, <brightnessThreshold>, <flashEnabled>, <startHour>,
<startMinute>, <endHour>, and <endMinute> are valid-->
</IOWorkMode>
<id>
<!--req, xs:integer, number of IO outputs, which is between 1 and 8-->
</id>
<defaultStatus>
<!--req, xs:string, IO default status: "high, low"-->
</defaultStatus>
<outputStatus>
<!--req,xs:string, IO effective status: "high, low, pulse"-->
</outputStatus>
<aheadTime>
<!--req, xs:integer, IO pre-output time, unit: microsecond-->
</aheadTime>
<timeDelay>
<!--req, xs:integer, IO effective duration, unit: microsecond-->
</timeDelay>
<freqMultiplyulti>
<!--req, xs:integer, frequency multiplication, which is between 1 and 15-->
</freqMultiplyulti>
<dutyRate>
<!--req, xs:integer, duty ratio, which is between 0 and 40, unit: %-->
</dutyRate>
<postFlashEnable>
<!--req, xs:boolean, checkpoint output: 0-enable, 1-disable-->
</postFlashEnable>
<illegalFlashEnable>
<!--req, xs:boolean, violation output: 0/"true"-enable, 1/"false"-disable-->
</illegalFlashEnable>
<videoFlashEnable>
<!--req, xs:boolean, video output: 0/"true"-enable, 1/"false"-disable-->
</videoFlashEnable>
<detectBrightnessEnable>
<!--req, xs:boolean, whether to enable flash light for automatic brightness detection-->
</detectBrightnessEnable>
<brightnessThreshold>
<!--dep, xs:integer, brightness threshold of the enabled flash light, which is between 0 and 100-->
</brightnessThreshold>
932
Intelligent Security API (General) Developer Guide
<flashEnabled>
<!--req, xs:boolean, whether to enable flash light-->
</flashEnabled>
<startHour>
<!--dep, xs:integer, start time in hour-->
</startHour>
<startMinute>
<!--dep, xs:integer, start time in minute-->
</startMinute>
<endHour>
<!--dep, xs:integer, end time in hour-->
</endHour>
<endMinute>
<!--dep, xs:integer, end time in minute-->
</endMinute>
<plateBrightness>
<!--req, xs:boolean, whether to enable flash light by license plate brightness: 0-disable, 1-enable. Only one node
among <detectBrightness>, <flashEnabled>, <manualBrightnessEnable> and <plateBrightness> can be enabled-->
</plateBrightness>
<incrBrightEnable>
<!--opt, xs:boolean, whether to enable brightness enhancement mode (for solid light mode)-->
</incrBrightEnable>
<incrBrightTime>
<!--req, xs:integer, brightness enhancement duration. This node is valid only when <incrBrightEnable> is "true"-->
</incrBrightTime>
<incrBrightPercent>
<!--req, xs:integer, percentage of brightness enhancement, which is between 0 and 100. This node is valid only
when <incrBrightEnable> is "true"-->
</incrBrightPercent>
<brightness>
<!--dep, xs:integer, solid light brightness (for solid light mode), which is between 0 and 100-->
</brightness>
<delayCaptureTime>
<!--dep, xs:integer, delayed capture time, which is between 1 and 1000, unit: millisecond. This node is valid only
when <incrBrightEnable> is "true"-->
</delayCaptureTime>
<manualBrightnessEnable>
<!--req, xs:boolean, whether to enable adjusting brightness manually-->
</manualBrightnessEnable>
<manualBrightness>
<!--dep, xs:integer, brightness adjusted manually, which is between 0 and 100-->
</manualBrightness>
</SyncSignalOutput>
</SyncSignalOutputList>
XML_TargetEnhancement
TargetEnhancement message in XML format
933
Intelligent Security API (General) Developer Guide
XML_TargetEnhancementCap
TargetEnhancementCap message in XML format
<TargetEnhancementCap version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<enabled opt="true,false"><!--req, xs:boolean--></enabled>
</TargetEnhancementCap>
XML_Telnetd
Telnetd message in XML format
<Telnetd version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<enabled>
<!--req, xs:boolean, whether to enable telnet: "true, false"-->
</enabled>
<radarMsgEnabled>
<!--req, xs:boolean, whether to enable uploading radar debugging information: "true, false"-->
</radarMsgEnabled>
<illeagalLoginLock>
<!--req, xs:boolean, "true, false"-->
</illeagalLoginLock>
</Telnetd>
XML_tempRange
tempRange message in XML format
<?xml version="1.0" encoding="utf-8"?>
<TempRange version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<mode>
<!--req, xs:string, temperature range mode: "automatic"-automatic mode, "manual"-manual mode-->
</mode>
<temperatureUpperLimit>
<!--dep, xs:float, maximum temperature, corrects to one decimal, the minimum value is "-20", the maximum value
is "550", unit: Celsius degree; its value should be larger than temperatureLowerLimit; it is valid when the value of
mode is "manual"-->
</temperatureUpperLimit>
<temperatureLowerLimit>
<!--dep, xs:float, minimum temperature, corrects to one decimal, the minimum value is "-20", the maximum value is
"550", unit: Celsius degree; its value should be smaller than temperatureUpperLimit; it is valid when the value of
mode is "manual"-->
934
Intelligent Security API (General) Developer Guide
</temperatureLowerLimit>
</TempRange>
XML_TextOverlay
TextOverlay message in XML format
<TextOverlay version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<id><!--req, xs:string, ID--></id>
<enabled><!--req, xs:boolean--></enabled>
<positionX><!--req, xs:float--></positionX>
<positionY><!--req, xs:float--></positionY>
<displayText><!--req, xs:string--></displayText>
</TextOverlay>
XML_TextOverlayList
TextOverlayList message in XML format
<TextOverlayList version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<TextOverlay/><!--opt, see details in the message of XML_TextOverlay-->
</TextOverlayList>
See Also
XML_TextOverlay
XML_ThermalCap
XML message about thermal capability
<ThermalCap version="2.0" xmlns="http://www.std-cgi.org/ver20/XMLSchema">
<isSupportFireDetection><!--optional, xs:boolean, whether supports fire detection--></isSupportFireDetection>
<isSupportThermometry><!--optional, xs:boolean, whether supports temperature measurement--></
isSupportThermometry>
<isSupportRealtimeThermometry><!--optional, xs:boolean, whether supports uploading real-time temperature
measurement data--></isSupportRealtimeThermometry>
<isFireFocusZoomSupport><!--optional, xs:boolean, whether supports visible light lens zooming--></
isFireFocusZoomSupport>
<isSupportManualRanging>
<!--optional, xs:boolean, this node will be returned if one or more channels of device supports this function, see
detailed channel capability in the response information"-->
</isSupportManualRanging>
<isSupportPower><!--optional, xs:boolean, whether supports power on/off capability--></isSupportPower>
<isSupportRealtimeTempHumi><!--optional, xs:boolean, whether supports real-time detection of temperature and
humidity--></isSupportRealtimeTempHumi>
<ManualThermCap>
<manualThermRuleNum>
935
Intelligent Security API (General) Developer Guide
<!--optional, xs:integer, the max. number of supported rules for manual temperature measurement. If this node is
not returned, it indicates manual temperature measurement is not supported-->
</manualThermRuleNum>
</ManualThermCap>
<isSupportManualThermBasic>
<!--optional, xs:boolean, whether supports basic configuration of manual temperature measurement-->
</isSupportManualThermBasic>
<isSupportFireShieldMask><!--optional, xs:boolean--></isSupportFireShieldMask>
<isSupportsmokeShieldMask><!--optional, xs:boolean--></isSupportsmokeShieldMask>
<isSupportThermometryMode>
<!--optional, xs:boolean, whether the device supports the configuration of temperature measurement mode-->
</isSupportThermometryMode>
<isSupportThermalPip>
<!--optional, xs:boolean, whether the device supports the PIP configuration-->
</isSupportThermalPip>
<isSupportThermalIntelRuleDisplay><!--optional, xs:boolean, whether supports VCA rule configuration--></
isSupportThermaIntelRuleDisplay>
<AlgVersionInfo><!-opt, whether supports getting the version information of thermal algorithms library-->
<thermometryAlgName min = "1" max = "128">
<!--read-only, xs:string, version information of temperature measurement algorithms library-->
</thermometryAlgName>
<shipsAlgName min = "1" max = "128"><!--read-only, xs:string, version name of ship detection algorithms library--
></shipsAlgName>
</AlgVersionInfo>
<isSupportFaceThermometry><!--optional, xs:boolean, whether supports temperature screening configuration--></
isSupportFaceThermometry>
<isSupportThermalBlackBody><!--optional, xs:boolean, whether supports black body configuration--></
isSupportThermalBlackBody>
<isSupportThermalStreamParam><!--optional, xs:boolean, whether supports stream configuration--></
isSupportThermalStreamParam>
<isSupportBodyTemperatureCompensation>
<!--optional, xs:boolean, whether supports temperature compensation configuration-->
</isSupportBodyTemperatureCompensation>
<isSupportTemperatureCorrection><!--optional, xs:boolean, whether device supports temperature measurement
correction--></isSupportTemperatureCorrection>
<isSupportClickToThermometry><!--optional, xs:boolean, whether device supports clicking to detect temperature--
></isSupportClickToThermometry>
<isSupportThermometryHistorySearch><!--optional, xs:boolean--></isSupportThermometryHistorySearch>
<isSupportBurningPrevention><!--optional, xs:boolean, whether device supports burning prevention--></
isSupportBurningPrevention>
<isSupportTemperatureCollection><!--optional, xs:boolean, whether device supports temperature ANR--></
isSupportTemperatureCollection>
<isSupportJpegPicWithAppendData>
<!--optional, xs:boolean, whether device supports getting JPEG picture with pixel-to-pixel temperature
measurement data. If supports, it is returned and values true, if not support, it is not returned-->
</isSupportJpegPicWithAppendData>
<isSupportRealTimethermometryForHTTP>
<!--optional, xs:boolean, whether device supports real-time temperature measurement. If supports, it is returned
and its value is true, if not support, it is not returned-->
</isSupportRealTimethermometryForHTTP>
<isSupportShipsDetectionWithScene>
<!--optional, xs:boolean, whether device supports ship detection by scene, this node and isSupportShipsDetection
936
Intelligent Security API (General) Developer Guide
Remarks
When getting thermal product capabilities, isSupportShipsDetectionWithScene has a higher
priority than isSupportShipsDetection. That is, firstly check if the node
isSupportShipsDetectionWithScene exists and its value is "true", that indicates ship detection
according to scene is supported, otherwise, check the if the node isSupportShipsDetection exists.
XML_Time
XML message about time parameters
<?xml version="1.0" encoding="utf-8"?>
<Time version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<timeMode><!--required, xs:string, timing mode: "manual, NTP, local, satellite, timecorrect, platform"--></
timeMode>
<localTime>
<!--required, xs:datetime, ISO 8601 time format, device time set manually, e.g.: 2018-02-01T19:54:04. This node is
required when <timemode> is "manual" or "local"-->
</localTime>
<timeZone>
<!--required, xs:string, POSIX time zone based on CST for NTP synchronization, e.g.,
CST-8:00:00DST00:30:00,M4.1.0/02:00:00,M10.5.0/02:00:00; this node is valid when <timemode> is "manual", "local"
or "NTP"-->
</timeZone>
<satelliteInterval><!--dependent, xs:integer, unit: minute--></satelliteInterval>
<isSummerTime><!--optional, xs:boolean, whether the time returned by the current device is that in the DST
(daylight saving time) mode: true, false--></isSummerTime>
937
Intelligent Security API (General) Developer Guide
<platformType>
<!--dependent, xs: string, platform type: "EZVIZ"-Hik-Connect; it is valid only when the value of timeMode is
"platform"-->
</platformType>
</Time>
XML_TimeTaskList
TimeTaskList message in XML format
<TimeTaskList size="">
<enabled><!--req, xs: boolean--></enabled>
<Parktime min="" max=""><!--req, xs:integer, seconds--></Parktime>
<TimeTaskBlock>
<dayOfWeek><!--req, xs: integer, day of the week based on ISO8601, "1"-Monday, ...--></dayOfWeek>
<TimeTaskRange>
<TaskID min="" max=""><!--req, xs: string; ID--></TaskID>
<beginTime><!--req, xs: time, ISO8601 time--></beginTime>
<endTime> <!--req, xs: time, ISO8601 time--></endTime>
<Task>
<TaskType
opt="disable,autoscan,framescan,randomscan,panoramascan,patrol,pattern,preset,tiltscan,periodreboot,periodadjust,
auxoutput">
<!--req, xs: strings-->
</TaskType>
<patrolTaskNum min="" max=""><!--dep, xs: integer, from 0 to 8--></patrolTaskNum>
<patternTaskNum min="" max=""><!--dep, xs: integer, from 0 to 8--></patternTaskNum>
<presetTaskNum min="" max=""><!--dep, xs: integer, from 0 to 8--></presetTaskNum>
<auxoutputTaskNum min="" max=""><!--dep, xs: integer, from 0 to 8--></
auxoutputTaskNum>
</Task>
</TimeTaskRange>
</TimeTaskBlock>
<isSupportTimeTaskCopy><!--req, xs: boolean--></isSupportTimeTaskCopy>
</TimeTaskList>
XML_trackDailyParam
trackDailyParam message in XML format
<trackDailyParam version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<year><!--req, xs: integer, year--></year>
<monthOfYear><!--req, xs: integer, month of the year--></monthOfYear>
</trackDailyParam>
938
Intelligent Security API (General) Developer Guide
XML_trackDailyDistribution
trackDailyDistribution message in XML format
<trackDailyDistribution version="1.0" xmlns="http://www.isapi.com/ver20/XMLSchema">
<dayList>
<day>
<id><!--req, xs: integer, ID--></id>
<dayOfMonth><!--req, xs: integer, day of the month, starts from 1st--></dayOfMonth>
<record><!--req, xs: boolean, true-with video, false-no video--></record>
<recordType>
<!--req, xs: string, record type: time-continuous recording; event-record based on event-->
</recordType>
</day>
</dayList>
</trackDailyDistribution>
XML_TrackList
TrackList message in XML format
<TrackList version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<Track/><!--opt, recording schedule list, refer to the message XML_Track for details-->
</TrackList>
See Also
XML_Track
XML_Track
XML message about recording schedule configuration parameters
<Track version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<id><!--required, xs: integer--></id>
<Channel><!--required, xs: integer--></Channel>
<Enable><!--required, xs: boolean--></Enable>
<Description><!--required, xs: string--></Description>
<TrackGUID><!--required, xs: string--></TrackGUID>
<Size><!--optional, xs: integer--></Size>
<Duration min="" max=""><!--optional, xs: string--></Duration>
<DefaultRecordingMode><!--required, xs: string, default record type--></DefaultRecordingMode>
<LoopEnable><!--optional, xs: string--></LoopEnable>
<SrcDescriptor>
<SrcGUID><!--required, xs: string--></SrcGUID>
<SrcChannel><!--required, xs: integer--></SrcChannel>
<StreamHint><!--required, xs: string--></StreamHint>
<SrcDriver><!--required, xs: string--></SrcDriver>
939
Intelligent Security API (General) Developer Guide
940
Intelligent Security API (General) Developer Guide
IntelligentRecord>
<delayTime><!--optional, xs:integer, capture delay time, unit: second--></delayTime>
<durationEnabled><!--optional, xs:boolean, whether to enable video expiry time. If this function is not supported,
this node will not be returned. If this function is supported, the video expiry date will be set by the node <Duration>--
></durationEnabled>
</Track>
XML_Tracking
Tracking message in XML format
<Tracking version="2.0" xmlns="http://www.std-cgi.org/ver20/XMLSchema">
<enabled>
<!--req, xs:boolean-->
</enabled>
<mode>
<!--dep, xs:string, "auto,manual"-->
</mode>
<trackingTime>
<!--dep, xs:integer-->
</trackingTime>
<normalizedScreenSize>
<!--req, ro-->
<normalizedScreenWidth>
<!--req, ro, xs:integer-->
</normalizedScreenWidth>
<normalizedScreenHeight>
<!--req, ro, xs:integer-->
</normalizedScreenHeight>
</normalizedScreenSize>
<ManualRegionCoordinatesList min="" max="">
<!--dep-->
<RegionCoordinates>
<!--opt-->
<positionX>
<!--req, xs:integer, X-coordinate-->
</positionX>
<positionY>
<!--req, xs:integer, Y-coordinate-->
</positionY>
</RegionCoordinates>
</ManualRegionCoordinatesList>
<Schedule><!--opt, schedule, this node is valid only when enabled is "true". By default the schedule is from 00:00 to
24:00 if no schedule is configured-->
<TimeRange>
<beginTime>
<!--UTC time, e.g.: "2018-03-13T19:42:27+08:00"--->
</beginTime>
<endTime>
<!--UTC time, e.g.: "2018-03-13T19:42:27+08:00"--->
</endTime>
941
Intelligent Security API (General) Developer Guide
</TimeRange>
</Schedule>
</Tracking>
XML_TwoWayAudioChannel
TwoWayAudioChannel message in XML format
<TwoWayAudioChannel version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<id>
<!--req, xs:string, two-way audio channel ID-->
</id>
<enabled>
<!--req, xs:boolean, whether to enable two-way audio: "true"-yes, "false"-no-->
</enabled>
<audioCompressionType>
<!--req, xs:string, audio output encoding type: "G.711alaw,G.711ulaw,G.726,G.729,G.729a,G.
729b,PCM,MP3,AC3,AAC,ADPCM,MP2L2"-->
</audioCompressionType>
<audioInboundCompressionType>
<!--opt, xs:string, audio input encoding type: "G.711alaw,G.711ulaw,G.726,G.729,G.729a,G.
729b,PCM,MP3,AC3,AAC,ADPCM"-->
</audioInboundCompressionType>
<speakerVolume>
<!--opt, xs:integer, input volume-->
</speakerVolume>
<microphoneVolume>
<!--opt, xs:integer, output volume-->
</microphoneVolume>
<noisereduce>
<!--opt, xs:boolean, whether to enable noise reduction: "true, false"-->
</noisereduce>
<audioBitRate>
<!--opt, xs:integer, audio frame rate, unit: kbs-->
</audioBitRate>
<audioInputType>
<!--opt, xs:string, audio input type: "MicIn, LineIn"-->
</audioInputType>
<associateVideoInputs><!--opt-->
<enabled>
<!--req, xs:boolean-->
</enabled>
<videoInputChannelList>
<!--req-->
<videoInputChannelID>
<!--opt, xs:string, ID-->
</videoInputChannelID>
</videoInputChannelList>
</associateVideoInputs>
<lineOutForbidden>
<!--read-only, xs:boolean, whether the audio output is not supported, if this node is not returned or the value is
942
Intelligent Security API (General) Developer Guide
"false", it represents that audio output is supported; if the value is "true", it represents that audio output is not
supported-->
</lineOutForbidden>
<micInForbidden>
<!--read-only, xs: boolean, whether the audio input is not supported, if this node is not returned or the value is
"false", it represents that audio input is supported; if the value is "true", it represents that audio input is not
supported-->
</micInForbidden>
</TwoWayAudioChannel>
XML_TwoWayAudioChannelCap
TwoWayAudioChannelCap capability message in XML format
<TwoWayAudioChannelCap version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<id opt="1">
<!--req, xs:string, two-way audio channel ID-->
</id>
<enabled opt="true,false">
<!--req, xs:boolean, whether to enable two-way audio: "true"-yes, "false"-no-->
</enabled>
<audioCompressionType opt="G.711alaw,G.711ulaw,G.726,G.729,G.729a,G.
729b,PCM,MP3,AC3,AAC,ADPCM,MP2L2">
<!--req, xs:string, audio output encoding type-->
</audioCompressionType>
<audioInboundCompressionType opt=" G.711alaw,G.711ulaw,G.726,G.729,G.729a,G.
729b,PCM,MP3,AC3,AAC,ADPCM">
<!--opt, xs:string, audio input encoding type-->
</audioInboundCompressionType>
<speakerVolume opt="0-100">
<!--opt, xs:integer, input volume, which is between 0 and 100-->
</speakerVolume>
<microphoneVolume opt="0-100">
<!--opt, xs:integer, output volume, which is between 0 and 100-->
</microphoneVolume>
<noisereduce opt="true,false">
<!--opt, xs:boolean, whether to enable noise reduction: "true, false"-->
</noisereduce>
<audioBitRate opt="32,64,128">
<!--opt, xs:integer, audio frame rate, unit: kbs-->
</audioBitRate>
<audioInputType opt="Micln,LineIn">
<!--opt, xs:string, audio input type-->
</audioInputType>
<associateVideoInputs>
<!--opt-->
<enabled opt="true,false">
<!--req, xs:boolean-->
</enabled>
<videoInputChannelList>
<!--req-->
943
Intelligent Security API (General) Developer Guide
<videoInputChannelID opt="1">
<!--opt, xs:string, ID-->
</videoInputChannelID>
</videoInputChannelList>
</associateVideoInputs>
</TwoWayAudioChannelCap>
XML_TwoWayAudioChannelList
TwoWayAudioChannelList message in XML format
<TwoWayAudioChannelList version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<TwoWayAudioChannel/><!--opt, see details in the message of XML_TwoWayAudioChannel-->
</TwoWayAudioChannelList>
See Also
XML_TwoWayAudioChannel
XML_TwoWayAudioSession
TwoWayAudioSession message in XML format
<TwoWayAudioSession version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<sessionId><!--req, xs: string, communication session ID--></sessionId>
</TwoWayAudioSession>
XML_upgradeStatus
upgradeStatus message in XML format
<upgradeStatus version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<upgrading><!--ro, req, xs:boolean--></upgrading>
<percent><!--ro, req, xs:integer, upgrading progress, the value is between 0 and 100--></percent>
</upgradeStatus>
XML_UPnP
UPnP message in XML format
<UPnP version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<enabled/><!--req-->
<ports/><!--opt-->
</UPnP>
944
Intelligent Security API (General) Developer Guide
XML_User
User message in XML format
<User version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<id><!--req, xs:integer, the value is between 1 and 16, the ID of the administrator account is 1 and the administrator
account cannot be deleted--></id>
<enabled><!--opt, xs:boolean, whether to enable the user: "true"-yes, "false"-no--></enabled>
<userName><!--req, xs:string, the sensitive information should be encrypted--></userName>
<password><!--wo, req, xs:string, the sensitive information should be encrypted--></password>
<keypadPassword><!--wo, opt, xs:string, keypad password, the sensitive information should be encrypted--></
keypadPassword>
<loginPassword><!--wo, dep, xs:string, this node depends on security in the URL and it is required when security
exists. The sensitive information should be encrypted, and the password is the administrator password--></
loginPassword>
<userOperateType><!--opt, xs:integer, user operation type: "1"-network user, "2"-keypad user, "3"-network user and
keypad user. When this node is set to 1 or NULL, password is valid, and password is required when the method is
POST, otherwise it is optional. When this node is set to 2, keypadPassword is valid, and keypadPassword is required
when the method is POST, otherwise it is optional. When this node is set to 3, both password and keypadPassword
are valid, and they are required when the method is POST, otherwise they are optional--></userOperateType>
<bondIpAddressList><!--opt-->
<bondIpAddress><!--opt-->
<id><!--req, xs:integer--></id>
<ipAddress><!--dep, xs:string--></ipAddress>
<ipv6Address><!--dep, xs:string--></ipv6Address>
</bondIpAddress>
</bondIpAddressList>
<bondMacAddressList><!--opt-->
<bondMacAddress><!--opt-->
<id><!--req, xs:integer--></id>
<macAddress><!--opt, xs:string--></macAddress>
</bondMacAddress>
</bondMacAddressList>
<userLevel><!--opt, xs:string, "Administrator,Operator,Viewer"--></userLevel>
<attribute><!--opt-->
<inherent><!--xs:boolean--></inherent>
</attribute>
</User>
XML_userCheck
userCheck message in XML format
<userCheck version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<statusValue><!--req, xs:integer, status code: "200"-succeeded, "401"-failed--></statusValue>
<statusString><!--opt, xs:string, status: "OK", "Unauthorized"--></statusString>
<isDefaultPassword><!--opt, xs:boolean--></isDefaultPassword>
<isRiskPassword><!--opt, xs:boolean></isRiskPassword>
<isActivated><!--opt, xs:boolean></isActivated>
945
Intelligent Security API (General) Developer Guide
XML_UserList
UserList message in XML format
<UserList version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<User/><!--opt, see details in the message of XML_User-->
</UserList>
See Also
XML_User
XML_UserPermission
UserPermission message in XML format
<UserPermission version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<id><!--req, xs:string--></id>
<userID><!--req, xs:string, user ID--></userID>
<userType>
<!--req, xs:string, user type: "admin"-administrator, which has all permissions and can review and edit user's
permission, "operator"-operator, which has default permissions, "viewer"-viewer, which has default permissions,
"installer", "manufacturer"-->
</userType>
<localPermission/>
<!--opt, local permission, see details in the message of XML_localPermission -->
<remotePermission/>
<!--opt, remote permission, see details in the message of XML_remotePermission -->
</UserPermission>
See Also
XML_localPermission
XML_remotePermission
XML_UserPermissionCap
UserPermissionCap capability message in XML format
<UserPermissionCap version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<userType><!--req, xs:string, "admin"-administrator, "operator", "viewer", "installer", "manufacturer"--></userType>
<localPermissionCap><!--opt, see details in the message of XML_localPermissionCap--></localPermissionCap>
<remotePermissionCap><!--opt, see details in the message of XML_remotePermissionCap--></
946
Intelligent Security API (General) Developer Guide
remotePermissionCap>
</UserPermissionCap>
See Also
XML_localPermissionCap
XML_remotePermissionCap
XML_UserPermissionList
UserPermissionList message in XML format
<UserPermissionList version="2.0" xmlns=" http://www.isapi.org/ver20/XMLSchema">
<UserPermission/>
<!--opt, user permission, see details in the message of XML_UserPermission-->
</UserPermissionList>
See Also
XML_UserPermission
XML_VideoPic_CMSearchDescription
XML message about search conditions of video and picture
<CMSearchDescription version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<searchID>
<!--required, xs:string, search ID, e.g., {812F04E0-4089-11A3-9A0C-0305E82C2906}-->
</searchID>
<trackIDList>
<trackID>
<!--required, xs:integer, ID, XX01-search for the main stream video of channel XX, XX03-search for the pictures of
channel XX-->
</trackID>
</trackIDList>
<timeSpanList>
<timeSpan>
<startTime><!--required, xs:time, ISO8601 time, start time of search, e.g.: 2017-08-02T00:00:00Z--></startTime>
<endTIme><!--required, xs:time, ISO8601 time, end time of search, e.g.: 2017-08-02T23:59:59Z--></endTime>
<timeSpan>
</timeSpanList>
<searchTypeList>
<searchKeyword><!--required, xs:string, keyword list for search, the maximum length is 32 and the minimum length
is 1--></searchKeyword>
</searchTypeList>
<contentTypeList>
<contentType><!--required, xs:string, file type to be searched for: "video", "audio", "metadata"-picture, "text",
"mixed", "other"--></contentType>
<pircamID><!--optional, list, xs:integer, pircam search ID. This node is valid only when the search type is pircam.
Types of pictures captured by pircams in the device may be different, and this node is used to distinguish between
947
Intelligent Security API (General) Developer Guide
different pircams--></pircamID>
</contentTypeList>
<uploadState><!--optional, xs:string, uploading status: all, uploaded, nonUploaded, uploadFailed--></uploadState>
<lockState><!--optional, xs:string, locking status: lock, unlock, all--></lockState>
<searchResultPostion><!--required, xs:integer, start position of search--></searchResultPostion>
<maxResults><!--optional, xs:integer, maximum number of returned results--></maxResults>
<metadataList>
<metadataDescriptor>
<!--required, xs:string, description of file to be searched for, format: "recordType.meta.hikvision.com/
<eventType>", <eventType> is the event type to which related video should be searched for; for details, see the table
below in remarks. For example, to search for the video/picture of motion detection, the value of contentType is
"video"/"metadata" and the value of metadataDescriptor is "recordType.meta.hikvision.com/MOTION"-->
<!--to search for all videos, the value of contentType is "video" and value of metadataDescriptor is
"recordType.meta.hikvision.com"; to search for all pictures, the value of contentType is "metadata" and value of
metadataDescriptor is "recordType.meta.hikvision.com/allPic"-->
<!--the supported video/picture type of device is returned in the recordSearchType/pictureSearchType of
XML_RacmCap (related URI: /ISAPI/ContentMgmt/capabilities)-->
</metadataDescriptor>
<SearchProperity>
<plateSearchMask>
<!--optional, xs:string, ranges from 1 to 31-->
</plateSearchMask>
<stateOrProvince>
<!--optional, xs:integer-->
</stateOrProvince>
<country>
<!--optional, xs:string, country or region ID: 0-the algorithm library does not support the country or region ID,1-
(CZ-Czech Republic),2-(FRA-France),3-(DE-Germany),4-(E-Spain),5-(IT-Italy),6-(NL-Netherlands),7-(PL-Poland),8-(SVK-
Slovakia), 9-(BY-Belorussia), 10-(MDA-Moldova),11-(RU-Russia),12-(UA-Ukraine), 0xff-(All)-->
</country>
<subType><!--optional, xs:string, sub type: all,motorVehicle,nonMotorVehicle,pedestrian--></subType>
<capTypeDescriptor><!--optional, xs:string, capability type descriptor: anyType, event, evidence--></
capTypeDescriptor>
</SearchProperity>
</metadataList>
</CMSearchDescription>
Remarks
eventType Description
AllEvent All events
safetyHelmet Hard hat detection
smokeDetection Smoke detection
leavePosition Absence detection
peopleNumChange The number of people changed
linedetection Line crossing detection
948
Intelligent Security API (General) Developer Guide
eventType Description
fielddetection Intrusion detection
regionEntrance Region entrance detection
regionExiting Region exiting detection
loitering Loitering detection
group People gathering detection
rapidMove Fast moving detection
unattendedBaggage Unattended baggage detection
attendedBaggage Object removal detection
CMR Scheduled recording or capture
ALARM Alarm
EDR Motion detection or alarm
ALARMANDMOTION Motion detection and alarm
Command Command is triggered
pir PIR
wlsensor Wireless alarm
callhelp Calling alarm
facedetection Face detection
parking Parking
vehicleDetection Vehicle detection
manual Manual
manualSnapShot Manual capture
playSnapShot Capture of playback
dredgerDetection Dredger detection
accessController Access controller event
securityControlPanel Security control panel event
violentMotion Violent motion alarm
advReachHeight Climbing detection
toiletTarry In-Toilet overtime
audioAbnormal Sudden change of sound intensity
949
Intelligent Security API (General) Developer Guide
eventType Description
standUp Standing up
getUp Getting up
vehicleMonitor Vehicle arming
playCellphone Playing cellphone
retention Overstay detection
failDown People falling down alarm
sleepOnduty Sleeping on duty alarm
allPerimeterEvent All perimeter events
allBehaviorEvent All behavior analysis events
running People running
spacingChange Distance changing detection
faceSnapModeling Face capture modeling
reverseEntrance Reverse entering
studentsStoodUp Student standing up detection
ATMPanel ATM panel mode
ATMSurround ATM environment mode
ATMFace ATM human face mode
ATMSafetyCabin ATM safety cabin mode
temperatureIntervalMeasurem Interval temperature measurement
ent
XML_VCAResource
Message about intelligent resources switch in XML format
<VCAResource version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<type>
<!--required, xs:string,
"basicBehavior,fullBehavior,facesnapBehavior,facesnap,TFS,smartVehicleDetection,smartHVTDetection,smart,judicial,s
mart264AndRoadDetection,smart264AndFaceDetection,smart264AndHeatMap,smartIntelligentMonitor,smartTrafficD
ataCollection,roadDetection,humanRecognition,perimeterCapture,vehicleDetection,HVTDetection,mixedTargetDetecti
on,trackingCaptureMode,nonTrackingCaptureMode,close,faceHumanModelingContrast,cityManagement,teacherBeha
vior,
12MPLiveView,personQueueDetection,verticalPeopleCounting,safetyHelmet,faceCounting,personArming,AIOpenPlatfo
rm"-->
950
Intelligent Security API (General) Developer Guide
</type>
</VCAResource>
XML_VideoCap
VideoCap message in XML format
<VideoCap version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<videoInputPortNums><!--opt, xs: integer--><videoInputPortNums>
<videoOutputPortNums><!--opt, xs: integer--><videoOutputPortNums>
<isSupportHeatmap><!--opt, xs: boolean, whether to support heat map function--></isSupportHeatmap>
<isSupportCounting><!--opt, xs: boolean--></isSupportCounting>
<countingType><!--dep, xs: string, "human,object"--></countingType>
<isSupportPreviewSwitch><!--opt, xs: boolean, whether to support live view switch--></isSupportPreviewSwitch>
<isSupportRecodStatus>
<!--opt, xs: boolean, whether supports getting recording status-->
</isSupportRecodStatus>
<isSupportPrivacyMask>
<!--opt, xs: boolean, whether supports priavte mask function-->
</isSupportPrivacyMask>
<isSupportBinocularPreviewSwitch>
<!--opt, xs: boolean, whether supports auto-switch during the live view of dual lens camera-->
</isSupportBinocularPreviewSwitch>
<isSupportCalibCheck>
<!--opt, xs: boolean, whether supports calibration verification-->
</isSupportCalibCheck>
<isSupportPIP><!--opt, xs: boolean, "true, false"--></isSupportPIP>
<channelFlexible opt ="name,enable,online,linknum">
<!--capability of getting channel status by condition-->
</channelFlexible >
<isSupportFocusVideoMode>
<!--opt, xs: boolean, video focus mode for installation and debug-->
</isSupportFocusVideoMode>
<isSupportExternalChannel>
<!--opt, xs: boolean, whether supports extending analog channel-->
</isSupportExternalChannel>
<isSupportMultiChannelCounting>
<!--opt, xs: boolean, whether supports people counting of multiple channels-->
</isSupportMultiChannelCounting>
<isSupportCountingCollection>
<!--opt, xs:boolean, whether supports people counting data replenishment-->
</isSupportCountingCollection>
<isSupportHeatmapCollection>
<!--opt, xs:boolean, whether supports heat map data replenishment-->
</isSupportHeatmapCollection>
<OSDLanguage opt="GBK,EUC-KR" def="GBK"/>
<isSupportInitLens><!--req, xs:boolean, whether to support initializing lens--><isSupportInitLens>
<isSupportOneFocus><!--req, xs:boolean, whether to support one-touch focusing--><isSupportOneFoucs>
<notSupportFocus><!--req, xs:boolean, the focus capability is not supported--><notSupportFoucs>
<notSupportIris><!--req, xs:boolean, the iris capability is not supported--><notSupportIris>
<isSupportCapturePicOverlays><!--opt, xs:boolean, whether to support text overlay on the captured picture--></
951
Intelligent Security API (General) Developer Guide
isSupportCapturePicOverlays>
<isSupportMergePicOverlays><!--opt, xs:boolean, whether to support text overlay on the composite picture--></
isSupportMergePicOverlays>
</VideoCap>
XML_VideoInput
VideoInput message in XML format
<VideoInput version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<VideoInputChannelList/><!--op, see details in the message of XML_VideoInputChannelList-->
</VideoInput>
See Also
XML_VideoInputChannelList
XML_VideoInputChannel
VideoInputChannel message in XML format
<VideoInputChannel version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<id>
<!--req, xs:string-->
</id>
<inputPort>
<!--req, xs:string-->
</inputPort>
<videoInputEnabled>
<!--opt, xs:boolean-->
</videoInputEnabled>
<name>
<!--opt, xs:string-->
</name>
<videoFormat>
<!--opt, xs:string, "PAL, NTSC"-->
</videoFormat>
<portType>
<!--opt, xs:string, "SDI, OPT, VGA, HDMI, YPbPr"-->
</portType>
<resDesc>
<!--opt, xs:string-->
</resDesc>
</VideoInputChannel>
952
Intelligent Security API (General) Developer Guide
XML_VideoInputChannelList
VideoInputChannelList message in XML format
<VideoInputChannelList version="2.0"
xmlns="http://www.isapi.org/ver20/XMLSchema">
<VideoInputChannel/><!--opt, see details in the message of XML_VideoInputChannel-->
</VideoInputChannelList>
See Also
XML_VideoInputChannel
XML_VideoInputChannelsCap
XML message about the capability of configuring video input channels in a batch
<VideoInputChannelsCap version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<VideoInputChannelList>
<VideoInputChannel>
<id><!--required, xs:string, video input channel ID--></id>
<inputPort><!--required, xs:string, port No. of the video input channel--></inputPort>
<videoInputEnabled opt="true,false"><!--optional, xs:boolean, whether to enable the video input channel.
Currently, the attribute "opt" will only be returned with "true" (i.e., opt="true"), which indicates that disabling this
channel is not supported--></videoInputEnabled>
<name><!--optional, xs:string, video input channel name--></name>
<videoFormat opt="PAL,NTSC"><!--optional, xs:string, video standard: "PAL", "NTSC"--></videoFormat>
<portType opt="SDI,OPT,VGA,HDMI,YPbPr"><!--optional, xs:string, port type: "SDI", "OPT", "VGA", "HDMI",
"YPbPr"--></portType>
<resDesc><!--optional, xs:string, resource description--></resDesc>
</VideoInputChannel>
</VideoInputChannelList>
</VideoInputChannelsCap>
XML_VideoOutput
VideoOutput message in XML format
<VideoOutput version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<VideoOutputChannelList/><!--opt, refer to the message XML_VideoOutputChannelList for details-->
</VideoOutput>
See Also
XML_VideoOutputChannelList
953
Intelligent Security API (General) Developer Guide
XML_VideoOutputChannel
VideoOutputChannel message in XML format
<VideoOutputChannel version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<id><!--req, xs: string; ID--></id>
<type><!--req, xs: string, video output type: "VGA,CVBS,HDMI,Spot,SDI"--></type>
<menu><!--dep, read-only-->
<mirrorMenu><!--req, xs: boolean--></mirrorMenu>
</menu>
<mode><!--opt,xs:string, video output mode: "close,clip,scale,open,SDI_1080P25,
…,HDMI_1080P,HDMI_720P,HDMI_2160P"--></mode>
<resolution><!--opt, xs: string; video solution: "1920*1080/60HZ,1280*720/50HZ,…"--></resolution>
</VideoOutputChannel>
XML_VideoOutputChannelList
VideoOutputChannelList message in XML format
<VideoOutputChannelList version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<VideoOutputChannel/><!--opt, refer to the message XML_VideoOutputChannel for details-->
</VideoOutputChannelList>
See Also
XML_VideoOutputChannel
XML_VideoOverlay
VideoOverlay message in XML format
<VideoOverlay version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<normalizedScreenSize><!--req, reference value of the region coordinates, which is 704*576 for PAL and 704*480 for
NTSC-->
<normalizedScreenWidth><!--ro, req, xs: integer--></normalizedScreenWidth>
<normalizedScreenHeight><!--ro, req, xs: integer--></normalizedScreenHeight>
</normalizedScreenSize>
<attribute><!--opt, OSD properties-->
<transparent><!--req, xs: boolean--></transparent>
<flashing><!--req, xs: boolean--><flashing>
</attribute>
<TextOverlayList>
<TextOverlay><!--text overlay parameter-->
<id><!-- req, xs: string; text ID--></id>
<enabled><!--req, xs: boolean, whether to enable text overlay--></enabled>
<positionX><!--req, xs: float, x-coordinate--></positionX>
<positionY><!-- req, xs: float, y-coordinate--></positionY>
<displayText><!-- req, xs: string, displayed text contents--></displayText>
954
Intelligent Security API (General) Developer Guide
</TextOverlay>
</TextOverlayList>
<DateTimeOverlay>
<enabled><!--req, xs: boolean, whether to enable date and time overlay--></enabled>
<positionX><!--req, xs: integer; x-coordinate--></positionX>
<positionY><!--req, xs: integer; y-coordinate--></positionY>
<dateStyle>
<!--opt, xs: string, date display format: YYYY-MM-DD, MM-DD-YYYY, DD-MM-YYYY, CHR-YYYY-MM-DD, CHR-MM-DD-
YYYY, CHR-DD-MM-YYYY, CHR-YYYY/MM/DD, CHR-MM/DD/YYYY, CHR-DD/MM/YYYY-->
</dateStyle>
<timeStyle><!--opt, xs: string, time format: 12hour, 24hour--></timeStyle>
<displayWeek><!--opt, xs: boolean, wehther to display day of the week--></displayWeek>
</DateTimeOverlay
<channelNameOverlay>
<enabled><!--req, xs: boolean, whether to enable channel name overlay--></enabled>
<positionX><!--req, xs: integer; x-coordinate--></positionX>
<positionY><!--req, xs: integer; y-coordinate--></positionY>
</channelNameOverlay>
<fontSize opt="adaptive,16*16,32*32,48*48,64*64,80*80,96*96,112*112,128*128"><!--opt, xs: string, font size of
video OSD: "adaptive,16*16,32*32,48*48,64*64,80*80,96*96,112*112,128*128", unit: pixel. Currently only 16*16
and 32*32 are supported--></fontSize>
<frontColorMode opt="auto,customize"><!--opt, string, front color mode: "auto,customize"--></frontColorMode>
<frontColor><!--dep, xs: hexBinary, front color--></frontColor>
<alignment><!--opt, xs:string, "customize,alignRight,alignLeft"--></alignment>
<BatteryPowerOverlay/><!--opt-->
<DeviceStatusDisplay>
<!--opt, display control of the device status on the video of portable speed dome-->
<batteryCapacityDisplay>
<!--opt, xs:boolean, whether to display battery capacity-->
</batteryCapacityDisplay>
<chargingStatusDisplay>
<!--opt, xs:boolean, whether to display charging status-->
</chargingStatusDisplay>
<bluetoothStatusDisplay>
<!--opt, xs:boolean, whether to display bluetooth status-->
</bluetoothStatusDisplay>
<dialStatusDisplay>
<!--opt, xs:boolean, whether to display dial-up status-->
</dialStatusDisplay>
</DeviceStatusDisplay>
<boundary><!--opt, xs:integer--></boundary>
<alignment><!--opt, xs: string, alignment mode: "customize, alignRight, alignLeft"--></alignment>
<publicSecurity><!--req, xs: boolean--></publicSecurity>
</VideoOverlay>
XML_VideoSourceActivation
XML Message about Parameters of Activating Network Device
<?xml version="1.0" encoding="utf-8"?>
<VideoSourceActivation version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
955
Intelligent Security API (General) Developer Guide
<ramerat><!--required, xs:string--></ramerat>
<passwordType>
<!--required, xs:string, password types: "default"-NVR password, "selfDefine", "IPCActivatePasswd"-activation
password-->
</passwordType>
<password><!--depend, xs:string--></password>
<ActivationDevice>
<mode><!--required, xs:string, "channel, descriptor"--></mode>
<channel><!--depend-->
<dynVideoInputChannelID><!--required, xs:integer--></dynVideoInputChannelID>
</channel>
<descriptor><!--depend-->
<macAddress><!--required, xs:string--></macAddress>
<addressingFormatType><!--required, xs:string, "ipaddress, hostname"--></addressingFormatType>
<ramerat><!--depend, xs:string--></ramerat>
<ipAddress><!--depend, xs:string--></ipAddress>
<ipv6Address><!--depend, xs:string--></ipv6Address>
<portNo><!--required, xs:integer--></portNo>
<proxyProtocol><!--required, xs:string, "HIKVISION, SONY, ISAPI, ONVIF, …"--></proxyProtocol>
</descriptor>
</ActivationDevice>
</VideoSourceActivation>
XML_VideoSourceActivationCapability
XML Message about Capability of Activating Network Device
<?xml version="1.0" encoding="utf-8"?>
<VideoSourceActivationCapability version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<ActivateByChannel>
<proxyProtocol opt="HIKVISION"/>
</ActivateByChannel>
<ActivateByAddress>
<proxyProtocol opt="HIKVISION"/>
</ActivateByAddress>
</VideoSourceActivationCapability>
XML_VideoSourceList
XML Message about Searched Network Devices
<VideoSourceList version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<VideoSourceDescriptor><!--list-->
<id><!--req, xs: string;id--></id>
<proxyProtocol><!--req, xs: string, "HIKVISION, SONY, ISAPI, ONVIF"--></proxyProtocol>
<addressingFormatType><!--req, xs: string, address type: "ipaddress, hostname"--></addressingFormatType>
<hostName><!--dep, xs: string--></hostName>
<ipAddress><!--dep, xs: string--></ipAddress>
<subnetMask><!--opt, xs: string, subnet mask for IPv4 address--></subnetMask>
956
Intelligent Security API (General) Developer Guide
XML_WDR
WDR message in XML format
<WDR version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<mode><!--req, xs: string, WDR mode: "open,close,auto"--></mode>
<WDRLevel><!--opt, xs: integer--></WDRLevel>
<WDRContrastLevel><!--opt, xs: integer--></WDRContrastLevel>
<WDRLevel1><!--opt, xs: integer--></WDRLevel1>
</WDR>
XML_WebCertificate
WebCertificate message in XML format
<WebCertificate version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<CertificateType>
<!--required, xs:string, authentication type: "basic", "digest", "digest/baisc"-->
</CertificateType>
<SecurityAlgorithm><!--dependent, this node is valid when certificateType is "digest" or "digest/basic"-->
<algorithmType>
<!--optional, xs:string, algorithm type: "MD5", "SHA256", "MD5/SHA256"-->
</algorithmType>
</SecurityAlgorithm>
</WebCertificate>
XML_WhiteBalance
WhiteBalance message in XML format
<WhiteBalance version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<WhiteBalanceStyle/><!--req, xs:string, "auto, manual, indoor, outdoor, autotrace, onece, sodiumlight,
mercurylight,auto0, atuo1, fluorescent, natural, warm, incandescent"-->
957
Intelligent Security API (General) Developer Guide
Remarks
Setting WhiteBalanceRed and WhiteBalanceBlue is available only when WhiteBalanceStyle is set
to "manual".
XML_Wireless
Wireless message in XML format
<Wireless version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<enabled><!--req, xs:boolean--></enabled>
<wirelessNetworkMode>
<!--opt, xs:string, "infrastructure,adhoc"-->
</wirelessNetworkMode>
<channel><!--opt, xs:string, "1 to 14,auto"--></channel>
<ssid><!--opt, xs:string--></ssid>
<wmmEnabled><!--opt, xs:boolean--></wmmEnabled>
<WirelessSecurity><!--opt-->
<securityMode>
<!--opt, xs:string, "disable,WEP,WPA-personal,WPA2-personal,WPA-RADIUS, WPA-enterprise,WPA2-enterprise, WPA/
WPA2"-->
</securityMode>
<WEP><!--dep, depends on <securityMode>-->
<authenticationType>
<!--req, xs:string, "open,sharedkey,auto"-->
</authenticationType>
<defaultTransmitKeyIndex><!--req, xs:integer--></defaultTransmitKeyIndex>
<wepKeyLength><!--opt, xs:integer "64,128"--></wepKeyLength>
<EncryptionKeyList>
<encryptionKey>
<!--req, xs:hexBinary, WEP encryption key in hexadecimal format-->
</encryptionKey>
</EncryptionKeyList>
</WEP>
<WPA><!--dep, depends on <securityMode>-->
<algorithmType><!--req, xs:string, "TKIP,AES,TKIP/AES"--></algorithmType>
<sharedKey><!--req, xs:string, pre-shared key used in WPA--></sharedKey>
<wpaKeyLength><!--req, xs: integer, "8-63"--></wpaKeyLength>
</WPA>
</WirelessSecurity>
<workScene><!--opt, xs:string, "computerRoom,monitorTerminal"--></workScene>
<protocol><!--req,xs:string, "802.11ac"--></protocol>
<protocolRealTime><!--req,xs:string, real-time mode--></protocolRealTime>
<hideSsid><!--opt, xs:boolean--></hideSsid>
<ChannelConfig><!--opt-->
<width><!--opt, xs:string, "auto,20,40,80", bandwidth, unit: MHz--></width>
<autoWidth>
958
Intelligent Security API (General) Developer Guide
XML_WirelessConnectStatus
XML message about parameters of the wireless connection status
<WirelessConnectStatus version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<enabled><!--required, xs:boolean, whether to enable Wi-Fi: true-enable, false-disable--></enabled>
<status><!--optional, xs:string, Wi-Fi connection status: "fail"-connecting failed, "success"-connected, "connecting"-
connecting, "nomodule"-no module--></status >
<ssid><!--optional, xs:string, SSID--></ssid>
<signalStrength><!--optional, xs:integer, signal strength which is between 0 and 100--></signalStrength>
<ipAddress><!--optional, xs:string, IP address--> </ipAddress>
</WirelessConnectStatus >
XML_WirelessDialInterface
WirelessDialInterface message in XML format
<WirelessDialInterface version="1.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<id> <!--req, xs:string, only one network card is supported--> </id>
<Dial/> <!—opt,refer to the URI: /ISAPI/System/Network/WirelessDial/Interfaces/<ID>/dial -->
<Schedule> <!-- opt ,refer to the URI: /ISAPI/System/Network/WirelessDial/Interfaces/<ID>/schedule -->
<Dialstatus/> <!-- opt,refer to the URI: /ISAPI/System/Network/WirelessDial/Interfaces/<ID>/dialstatus -->
<messageConfig/> <!-- opt,refer to the URI: /ISAPI/System/Network/WirelessDial/Interfaces/<ID>/messageConfig -->
<messageList/> <!-- opt -->
</WirelessDialInterface>
XML_WirelessDialInterfaceList
WirelessDialInterfaceList message in XML format
<WirelessDialInterfaceList version="1.0"xmlns="http://www.isapi.org/ver20/XMLSchema">
<WirelessDialInterface/>
</WirelessDialInterfaceList>
959
Intelligent Security API (General) Developer Guide
XML_WirelessServer
WirelessServer message in XML format
<WirelessServer version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<wifiApEnabled><!--opt,xs:boolean,"true,false"--></wifiApEnabled>
<broadcastEnabled><!--opt,xs:boolean,"true,false"--></broadcastEnabled>
<wlanShareEnabled><!--opt,xs:boolean,"true,false"--></wlanShareEnabled>
<ssid><!--opt, xs:string--></ssid>
<WirelessSecurity><!--req-->
<securityMode>
<!--opt, xs: string, security mode: "disable,WEP,WPA-personal,WPA2-personal,WPA-RADIUS,WPA-enterprise,WPA2-
enterprise"-->
</securityMode>
<WEP><!--dep, depends on <securityMode>-->
<authenticationType>
<!--req, xs: string, authentication type: "open,sharedkey,auto"-->
</authenticationType>
<defaultTransmitKeyIndex>
<!--req, xs: integer-->
</defaultTransmitKeyIndex>
<wepKeyLength><!--opt, xs: integer, the key length should be 64 and 128--></wepKeyLength>
<EncryptionKeyList>
<encryptionKey>
<!--req, xs: hexBinary, WEP encryption key in hexadecimal format-->
</encryptionKey>
</EncryptionKeyList>
</WEP>
<WPA><!--dep, depends on <securityMode>-->
<algorithmType>
<!--req, xs: string, algorithm type: "TKIP,AES,TKIP/AES"-->
</algorithmType>
<sharedKey><!--opt, xs: string, shared key used in WPA--></sharedKey>
<wpaKeyLength><!-- opt, xs: integer, the key length is between 8 and 63--></wpaKeyLength>
<defaultPassword><!--opt, xs: boolean--></defaultPassword>
</WPA>
</WirelessSecurity>
<DHCPEnabled><!--opt,xs:boolean,"true,false"--></DHCPEnabled>
<ipVersion><!--opt, xs:string, opt="v4,v6"--></ipVersion>
<HostIpAddress><!--opt-->
<ipAddress><!--dep, xs:string--></ipAddress>
<ipv6Address><!--dep, xs:string--></ipv6Address>
</HostIpAddress>
<IPMask><!--opt-->
<subnetMask><!--dep, xs:string, subnet mask for IPv4 address--></subnetMask>
<bitMask><!--dep, xs:integer, bitmask IPv6 address--></bitMask>
</IPMask>
<AddressPool><!--opt-->
<startIPV4Address><!--dep, xs:string--></startIPV4Address>
<endIPV4Address><!--dep, xs:string--></endIPV4Address>
<startIPV6Address><!-- dep, xs:string--></startIPV6Address>
960
Intelligent Security API (General) Developer Guide
<endIPV6Address><!--dep, xs:string--></endIPV6Address>
<AddressPool>
<DNSAddressList><!--opt-->
<DNSAddress><!--opt>
<id><!--opt,xs:string,start from 1--></id>
<ipAddress><!--dep, xs:string--></ipAddress>
<ipv6Address><!--dep, xs:string--></ipv6Address>
</DNSAddress>
</DNSAddressList>
<GatewayAddress>
<ipAddress><!--dep, xs:string--></ipAddress>
<ipv6Address><!--dep, xs:string--></ipv6Address>
<GatewayAddress>
<wifiApModeType>
<!--opt, xs: string, current wireless Access Point (AP) mode: "true,false,auto", if this node is returned, it indicates
that the device supports auto mode-->
</wifiApModeType>
</WirelessServer>
Remarks
For Client supports auto AP, the node <<wifiApModeType> is valid; for Client does not supports
auto AP, the node <wifiApEnabled> is valid; the values of these two nodes will effect each other,
and when <wifiApModeType> equals to "auto", the value of <wifiApEnabled> is "true".
XML_WirelessServerStatus
WirelessServerStatus message in XML format
<WirelessServerStatus version="1.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<wifiApEnabled>
<!--dep, xs:boolean-->
</wifiApEnabled>
<linkDevices>
<!--dep, xs:integer, maximum number of linked devices-->
</linkDevices>
<DeviceInfoList>
<!--opt-->
<DeviceInfo>
<!--opt-->
<IpAddress>
<!--req-->
<ipAddress>
<!--dep, xs:string-->
</ipAddress>
<ipv6Address>
<!--dep, xs:string-->
</ipv6Address>
</IpAddress>
<hostName>
<!--opt, xs:string-->
961
Intelligent Security API (General) Developer Guide
</hostName>
<macAddress>
<!--opt, xs:string-->
</macAddress>
</DeviceInfo>
</DeviceInfoList>
</WirelessServerStatus>
XML_WirelessStatus
WirelessStatus message in XML format
<WirelessStatus version="1.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<enabled>
<!--dep, xs:boolean-->
</enabled>
<connectionEnabled>
<!--dep, xs:boolean-->
</connectionEnabled>
<IpAddress>
<!--req-->
<ipAddress>
<!--dep, xs:string-->
</ipAddress>
<ipv6Address>
<!--dep, xs:string-->
</ipv6Address>
</IpAddress>
<SubnetMask>
<!--req-->
<ipAddress>
<!--dep, xs:string-->
</ipAddress>
<ipv6Address>
<!--dep, xs:string-->
</ipv6Address>
</SubnetMask>
<RouterAddress>
<!--req-->
<ipAddress>
<!--dep, xs:string-->
</ipAddress>
<ipv6Address>
<!--dep, xs:string-->
</ipv6Address>
</RouterAddress>
<DNSAddressList>
<!--opt-->
<DNSAddress>
<!--opt-->
<id>
962
Intelligent Security API (General) Developer Guide
XML_WPS
WPS message in XML format
<WPS version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<enable><!--req, xs:boolean--></enable>
</WPS>
XML_WpsApPincode
WpsApPincode message in XML format
<WpsApPincode version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<ssid><!--req, xs:string--></ssid>
<pinCode><!--req, xs:string--></pinCode>
</WpsApPincode>
XML_ZoomFocus
ZoomFocus message in XML format
<ZoomFocus version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<pqrsZoom/><!--opt, xs: integer, zoom coordinates of Sony zoom camera module-->
<mnstFocus/><!--opt, xs: integer, focus coordinates of Sony zoom camera module-->
</ZoomFocus>
963
Intelligent Security API (General) Developer Guide
Alarm Logs
964
Intelligent Security API (General) Developer Guide
965
Intelligent Security API (General) Developer Guide
966
Intelligent Security API (General) Developer Guide
967
Intelligent Security API (General) Developer Guide
968
Intelligent Security API (General) Developer Guide
Exception Logs
969
Intelligent Security API (General) Developer Guide
970
Intelligent Security API (General) Developer Guide
971
Intelligent Security API (General) Developer Guide
972
Intelligent Security API (General) Developer Guide
Operation Logs
973
Intelligent Security API (General) Developer Guide
974
Intelligent Security API (General) Developer Guide
975
Intelligent Security API (General) Developer Guide
976
Intelligent Security API (General) Developer Guide
977
Intelligent Security API (General) Developer Guide
978
Intelligent Security API (General) Developer Guide
979
Intelligent Security API (General) Developer Guide
980
Intelligent Security API (General) Developer Guide
981
Intelligent Security API (General) Developer Guide
982
Intelligent Security API (General) Developer Guide
983
Intelligent Security API (General) Developer Guide
Event Logs
984
Intelligent Security API (General) Developer Guide
Information Logs
985
Intelligent Security API (General) Developer Guide
986
Intelligent Security API (General) Developer Guide
987
Intelligent Security API (General) Developer Guide
988
Intelligent Security API (General) Developer Guide
989
Intelligent Security API (General) Developer Guide
StatusCode=1
StatusCode=2
990
Intelligent Security API (General) Developer Guide
StatusCode=3
991
Intelligent Security API (General) Developer Guide
992
Intelligent Security API (General) Developer Guide
993
Intelligent Security API (General) Developer Guide
StatusCode=4
994
Intelligent Security API (General) Developer Guide
995
Intelligent Security API (General) Developer Guide
996
Intelligent Security API (General) Developer Guide
997
Intelligent Security API (General) Developer Guide
998
Intelligent Security API (General) Developer Guide
999
Intelligent Security API (General) Developer Guide
1000
Intelligent Security API (General) Developer Guide
1001
Intelligent Security API (General) Developer Guide
1002
Intelligent Security API (General) Developer Guide
1003
Intelligent Security API (General) Developer Guide
1004
Intelligent Security API (General) Developer Guide
1005
Intelligent Security API (General) Developer Guide
1006
Intelligent Security API (General) Developer Guide
1007
Intelligent Security API (General) Developer Guide
1008
Intelligent Security API (General) Developer Guide
1009
Intelligent Security API (General) Developer Guide
1010
Intelligent Security API (General) Developer Guide
1011
Intelligent Security API (General) Developer Guide
1012
Intelligent Security API (General) Developer Guide
1013
Intelligent Security API (General) Developer Guide
1014
Intelligent Security API (General) Developer Guide
1015
Intelligent Security API (General) Developer Guide
1016
Intelligent Security API (General) Developer Guide
1017
Intelligent Security API (General) Developer Guide
1018
Intelligent Security API (General) Developer Guide
StatusCode=5
StatusCode=6
1019
Intelligent Security API (General) Developer Guide
1020
Intelligent Security API (General) Developer Guide
1021
Intelligent Security API (General) Developer Guide
1022
Intelligent Security API (General) Developer Guide
1023
Intelligent Security API (General) Developer Guide
1024
Intelligent Security API (General) Developer Guide
StatusCode=7
1025
Intelligent Security API (General) Developer Guide
Public Function Module (Error Codes Range: 0x00000000, from 0x00100001 to 0x001fffff)
1026
Intelligent Security API (General) Developer Guide
1027
Intelligent Security API (General) Developer Guide
1028
Intelligent Security API (General) Developer Guide
1029
Intelligent Security API (General) Developer Guide
1030
Intelligent Security API (General) Developer Guide
1031
Intelligent Security API (General) Developer Guide
1032
Intelligent Security API (General) Developer Guide
1033
Intelligent Security API (General) Developer Guide
1034
Intelligent Security API (General) Developer Guide
1035
Intelligent Security API (General) Developer Guide
1036
Intelligent Security API (General) Developer Guide
1037
Intelligent Security API (General) Developer Guide
1038
Intelligent Security API (General) Developer Guide
1039
Intelligent Security API (General) Developer Guide
1040
Intelligent Security API (General) Developer Guide
1041
Intelligent Security API (General) Developer Guide
V
2-bit RTP version No.; currently, it is 2.
P
1-bit padding flag. If its value is1, the message end will be padded with a or multiple 8-bit
array(s), but the padded array(s) is (are) not a part of payload.
X
1042
Intelligent Security API (General) Developer Guide
RTP Payload
The payload consists of binary data, which transmits the detailed information and useful content.
1043
Intelligent Security API (General) Developer Guide
1044
Intelligent Security API (General) Developer Guide
16-bit serial No., which identifies the sent RTP message. The No. starts from 0 in HELIX server
and will plus 1 when sending RTP message for once. The No. of video and audio message is
counted separately.
When the lower-layer adopts UDP, or the network condition is bad, the serial No. can be
used to check the packet loss; when the network jitter occurred, the serial No. can be used
to reorder the data.
Timestamp: 32 bits
32-bit timestamp, which indicates the sampling time of the first 8-bit array in the RTP
message. The receiver can calculate the delay or delay jitter, and control according to the
timestamp.
SSRC
32-bit synchronization source identifier, which is randomly selected, and the identifier value
of two synchronization sources in same RTP session cannot be same.
CSRC
32-bit contributing source identifier, up to 16 identifiers are supported, its value is between 0
and 15, and each CSRC identifier identifies all contributing sources in the payload of the RTP
message.
SRTP Payload
The payload consists of binary data, which transmits the detailed information and useful
content. The SRTP payload is the encrypted RTP payload (sometimes including RTP padding and
RTP pad count at the end of the payload).
Authentication Information
SRTP MKI
Master key identifier, it is defined, signaled, and used by key management protocol. The MKI
is a random bit string identifier that identifies the master key from which the session key(s)
were derived.
Authentication Tag
The authentication tag is used to carry message authentication data. It provides
authentication of the RTP header and payload, and it indirectly provides replay protection by
authenticating the sequence number.
1045
Intelligent Security API (General) Developer Guide
Note
Here PRF is an AES-cm symmetric encryption function.
Session Key
Different keys are distinguished by 8-bit <label>. The <label> must be unique for each type of key
to be derived.
The session keys and salt should be derived using:
• session_en_key (session encryption key): <label> = 0x00
• session_au_key (session authentication key): <label> = 0x01
• session_salt_key (session salt key): <label> = 0x02
1046
Intelligent Security API (General) Developer Guide
1047
Intelligent Security API (General) Developer Guide
Type: 8
Length: 1
Value: 01
SRTP authentication: On (1) //RTP package authentication, it is hard coded as "On"
Type: 10
Length: 1
Value: 01
Key Data Transport (KEMAC) //Key data transmission (important)
Next Payload: Last payload (0) //For the last payload, this field should be set to 0
Encr alg: NULL (0) //The key data is transmitted in plain text and encryption is not required
Key data len: 34 //Key data length
Key data (KEY) Type: TEK
0010 .... = Type: TEK (2) //The data type of the key is "TEK"
.... 0000 = KV: Null (0)
Key len: 46 //The stream is encrypted by aes-256-icm. In the 46-byte key, the first 32
bytes are the master key, and the last 14 bytes are the salt
Key: 85b8844ec0669378dd734a743d2e5ea7017a5609533bff98... //Master key+salt
Mac alg: NULL (0) //The key data is transmitted in plain text and message authentication is
not required
MAC: <MISSING>
Remarks
• The session mapping encryption contains SSRC, the KEMAC contains SRTP master key, and the
SDP file from the device contains the encryption parameter MIKEY. That is, RTP/RTCP session
parameters should be partially initialized during the DESCRIBE operation.
• The encryption and authentication algorithm are determined according to the key length.
• In the link encrypted by TLS, the key is transmitted as TEK in plain text without being encrypted
and authenticated. RAND and Timestamp (they are used to generate the intermediate key and
so on) will not take effect because the encryption and authentication mechanism is provided by
TLS.
• The TEK key data in KEMAC is actually used as TEK+SALT, which is different from the description
in RFC 3830 (see details in https://tools.ietf.org/html/rfc3830 ).
Informational
Request received, continuing process
Status Code Reason-Phase
100 Continue
Success
The action was successfully received, understood, and accepted
1048
Intelligent Security API (General) Developer Guide
Status-Code Reason-Phase
200 OK
201 Created
250 Low on Storage Space
Redirection
Further action must be taken in order to complete the request
Status-Code Reason-Phase
300 Multiple Choices
301 Moved Permanently
302 Moved Temporarily
303 See Other
304 Not Modified
305 Use Proxy
Client Error
The request contains bad syntax or cannot be fulfilled
Status-Code Reason-Phase
400 Bad Request
401 Unauthorized
402 Payment Required
403 Forbidden
404 Not Found
405 Method Not Allowed
406 Not Acceptable
407 Proxy Authentication Required
408 Request Time-out
410 Gone
411 Length Required
412 Precondition Failed
413 Request Entity Too Large
1049
Intelligent Security API (General) Developer Guide
Status-Code Reason-Phase
414 Request-URI Too Large
415 Unsupported Media Type
451 Parameter Not Understood
452 Conference Not Found
453 Not Enough Bandwidth
454 Session Not Found
455 Method Not Valid in This State
456 Header Field Not Valid for Resource
457 Invalid Range
458 Parameter Is Read-Only
459 Aggregate operation not allowed
460 Only aggregate operation allowed
461 Unsupported transport
462 Destination unreachable
Server Error
The server failed to fulfill an apparently valid request
Status-Code Reason-Phase
500 Internal Server Error
501 Not Implemented
502 Bad Gateway
503 Service Unavailable
504 Gateway Time-out
505 RTSP Version not supported
551 Option not supported
1050