0% found this document useful (0 votes)
6 views

ISAPI - General

The Intelligent Security API Developer Guide provides comprehensive information on the API's functionality, including operation methods, security features, device management, user management, and system configuration. It outlines the structure of the API, including various chapters detailing specific functionalities and configurations. The document also includes legal disclaimers regarding the use of the API and its associated risks.

Uploaded by

axxonsoft.iberia
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
6 views

ISAPI - General

The Intelligent Security API Developer Guide provides comprehensive information on the API's functionality, including operation methods, security features, device management, user management, and system configuration. It outlines the structure of the API, including various chapters detailing specific functionalities and configurations. The document also includes legal disclaimers regarding the use of the API and its associated risks.

Uploaded by

axxonsoft.iberia
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 1083

Intelligent Security API (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

5.3 Online Upgrade Device ........................................................................................................ 60


Chapter 6 Device Configuration and Maintenance .................................................................... 63
6.1 Basic ..................................................................................................................................... 63
6.1.1 Securely Export and Import Configuration Files ......................................................... 64
6.2 Log ....................................................................................................................................... 66
6.3 Status ................................................................................................................................... 66
6.4 Calibration ............................................................................................................................ 68
6.5 Auto Power On or Off .......................................................................................................... 69
6.6 Advanced ............................................................................................................................. 69
Chapter 7 User Management .................................................................................................... 72
7.1 Manage Users ...................................................................................................................... 72
7.2 User Permission ................................................................................................................... 72
7.3 Lock and Unlock User ........................................................................................................... 73
7.4 Configure Double Verification .............................................................................................. 73
Chapter 8 Video and Audio ....................................................................................................... 78
8.1 Search for Recording Start and End Time by Channel .......................................................... 78
8.2 Live View and Playback ........................................................................................................ 79
8.3 Start Two-Way Audio ........................................................................................................... 86
8.4 Stream Encoding .................................................................................................................. 87
Chapter 9 Capture and Recording ............................................................................................. 89
Chapter 10 PTZ Control ............................................................................................................. 91
10.1 Configure Basic PTZ Parameters ......................................................................................... 91
10.2 Configure Other PTZ Parameters ....................................................................................... 92
10.3 Configure PTZ Auxiliary Status ........................................................................................... 93
10.4 Configure E-PTZ Parameters .............................................................................................. 93
10.5 Configure Gyroscope Calibration Parameters .................................................................... 93
10.6 Configure GPS Calibration Parameters ............................................................................... 93
10.7 Control PTZ via Digital Channel .......................................................................................... 95

iii
Intelligent Security API (General) Developer Guide

10.8 Configure Master-Slave Tracking ........................................................................................ 96


10.9 Configure Panorama Tracking ............................................................................................ 98
Chapter 11 Storage Management ............................................................................................. 99
11.1 Configure Log Storage Mode ............................................................................................. 99
11.2 HDD Management ........................................................................................................... 100
11.3 Hot Spare Configuration .................................................................................................. 102
11.4 Working Mode Configuration .......................................................................................... 103
11.5 SSD Management ............................................................................................................. 103
11.6 Storage Health Detection ................................................................................................. 104
11.7 Others .............................................................................................................................. 105
Chapter 12 File Management .................................................................................................. 106
12.1 Video Files ........................................................................................................................ 106
12.2 Audio Files ........................................................................................................................ 107
12.3 Log Files ........................................................................................................................... 109
12.4 Download Files ................................................................................................................. 110
Chapter 13 Alarm/Event ......................................................................................................... 111
13.1 Configure Audio Detection Alarm .................................................................................... 111
13.2 Configure Exception Alarm .............................................................................................. 114
13.3 Configure Certificate Expiry Alarm ................................................................................... 114
13.4 Configure Network Traffic Pre-alarm ............................................................................... 117
13.5 Configure Motion Detection Alarm .................................................................................. 118
13.6 Configure Vibration Detection Alarm ............................................................................... 120
13.7 Receive Alarm/Event in Arming Mode ............................................................................. 123
13.8 Receive Alarm/Event in Listening Mode .......................................................................... 124
13.9 Subscribe Alarm/Event in Arming Mode .......................................................................... 127
Chapter 14 Parameter Configuration ....................................................................................... 129
14.1 I/O Settings ...................................................................................................................... 129
14.2 Video/Image Settings ....................................................................................................... 131

iv
Intelligent Security API (General) Developer Guide

14.3 Audio Settings .................................................................................................................. 136


14.4 Channel Settings .............................................................................................................. 137
14.5 Peripherals Settings ......................................................................................................... 140
14.6 Picture Storage Server Settings ........................................................................................ 140
Chapter 15 System Configuration ............................................................................................ 141
15.1 Basic Settings ................................................................................................................... 141
15.2 Network Settings .............................................................................................................. 141
15.2.1 Email ....................................................................................................................... 142
15.2.2 Network Access ....................................................................................................... 142
15.2.3 Network Interface ................................................................................................... 145
15.2.4 Wireless Network .................................................................................................... 146
15.2.5 Network Service ...................................................................................................... 149
15.3 Time Settings .................................................................................................................... 151
15.4 System Diagnose .............................................................................................................. 152
15.5 Data Replenishment ......................................................................................................... 152
Appendix A. Request URIs ...................................................................................................... 155
A.1 /ISAPI/AUXInfo ................................................................................................................... 155
A.1.1 /ISAPI/AUXInfo/attributes/Channels ........................................................................ 155
A.1.2 /ISAPI/AUXInfo/attributes/Channels/<ID> ............................................................... 155
A.2 /ISAPI/ContentMgmt ......................................................................................................... 156
A.2.1 /ISAPI/ContentMgmt/capabilities ............................................................................. 156
A.2.2 /ISAPI/ContentMgmt/download .............................................................................. 156
A.2.3 /ISAPI/ContentMgmt/download/capabilities ........................................................... 156
A.2.4 /ISAPI/ContentMgmt/download/toUSB/<taskId>/progress?format=json ............... 157
A.2.5 /ISAPI/ContentMgmt/download/toUSB/capabilities?format=json .......................... 157
A.2.6 /ISAPI/ContentMgmt/download/toUSB?format=json .............................................. 158
A.2.7 /ISAPI/ContentMgmt/InputProxy/channels ............................................................. 158
A.2.8 /ISAPI/ContentMgmt/InputProxy/channels/<ID> .................................................... 159

v
Intelligent Security API (General) Developer Guide

A.2.9 /ISAPI/ContentMgmt/InputProxy/channels/<ID>/capabilities ................................. 160


A.2.10 /ISAPI/ContentMgmt/InputProxy/channels/<ID>/chanCtrl .................................... 160
A.2.11 /ISAPI/ContentMgmt/InputProxy/channels/<ID>/deviceInfo ................................ 161
A.2.12 /ISAPI/ContentMgmt/InputProxy/channels/<ID>/portMapParam ........................ 162
A.2.13 /ISAPI/ContentMgmt/InputProxy/channels/<ID>/reboot ...................................... 162
A.2.14 /ISAPI/ContentMgmt/InputProxy/channels/<ID>/status ....................................... 163
A.2.15 /ISAPI/ContentMgmt/InputProxy/channels/<ID>/video/overlays ......................... 163
A.2.16 /ISAPI/ContentMgmt/InputProxy/channels/<ID>/video/overlays/capabilities ...... 164
A.2.17 /ISAPI/ContentMgmt/InputProxy/channels/activate ............................................. 164
A.2.18 /ISAPI/ContentMgmt/InputProxy/channels/activate/capabilities .......................... 165
A.2.19 /ISAPI/ContentMgmt/InputProxy/channels/capabilities ........................................ 165
A.2.20 /ISAPI/ContentMgmt/InputProxy/channels/status ................................................ 166
A.2.21 /ISAPI/ContentMgmt/InputProxy/deviceInfo ......................................................... 166
A.2.22 /ISAPI/ContentMgmt/InputProxy/search ............................................................... 166
A.2.23 /ISAPI/ContentMgmt/InputProxy/sourceCapability ............................................... 167
A.2.24 /ISAPI/ContentMgmt/IOProxy/inputs .................................................................... 167
A.2.25 /ISAPI/ContentMgmt/IOProxy/inputs/<ID> ............................................................ 168
A.2.26 /ISAPI/ContentMgmt/IOProxy/inputs/<ID>/status ................................................ 169
A.2.27 /ISAPI/ContentMgmt/IOProxy/outputs .................................................................. 169
A.2.28 /ISAPI/ContentMgmt/IOProxy/outputs/<ID> ......................................................... 170
A.2.29 /ISAPI/ContentMgmt/IOProxy/outputs/<ID>/status .............................................. 171
A.2.30 /ISAPI/ContentMgmt/IOProxy/outputs/<ID>/trigger ............................................. 171
A.2.31 /ISAPI/ContentMgmt/logConfig ............................................................................. 172
A.2.32 /ISAPI/ContentMgmt/logConfig/capabilities .......................................................... 172
A.2.33 /ISAPI/ContentMgmt/logSearch ............................................................................. 173
A.2.34 /ISAPI/ContentMgmt/logSearch?format=json ....................................................... 173
A.2.35 /ISAPI/ContentMgmt/logSearch/dataPackage ....................................................... 173
A.2.36 /ISAPI/ContentMgmt/PTZCtrlProxy/capabilities ..................................................... 174

vi
Intelligent Security API (General) Developer Guide

A.2.37 /ISAPI/ContentMgmt/PTZCtrlProxy/channels ........................................................ 174


A.2.38 /ISAPI/ContentMgmt/PTZCtrlProxy/channels/<ID> ................................................ 175
A.2.39 /ISAPI/ContentMgmt/PTZCtrlProxy/channels/<ID>/autoPan ................................. 176
A.2.40 /ISAPI/ContentMgmt/PTZCtrlProxy/channels/<ID>/capabilities ............................ 176
A.2.41 /ISAPI/ContentMgmt/PTZCtrlProxy/channels/<ID>/continuous ............................ 176
A.2.42 /ISAPI/ContentMgmt/PTZCtrlProxy/channels/<ID>/momentary ........................... 177
A.2.43 /ISAPI/ContentMgmt/PTZCtrlProxy/channels/<ID>/onepushfoucs/start ............... 177
A.2.44 /ISAPI/ContentMgmt/PTZCtrlProxy/channels/<ID>/patrols ................................... 178
A.2.45 /ISAPI/ContentMgmt/PTZCtrlProxy/channels/<ID>/patrols/<ID> .......................... 179
A.2.46 /ISAPI/ContentMgmt/PTZCtrlProxy/channels/<ID>/patrols/<ID>/pause ............... 180
A.2.47 /ISAPI/ContentMgmt/PTZCtrlProxy/channels/<ID>/patrols/<ID>/start ................. 180
A.2.48 /ISAPI/ContentMgmt/PTZCtrlProxy/channels/<ID>/patrols/<ID>/status ............... 181
A.2.49 /ISAPI/ContentMgmt/PTZCtrlProxy/channels/<ID>/patrols/<ID>/stop .................. 181
A.2.50 /ISAPI/ContentMgmt/PTZCtrlProxy/channels/<ID>/position3D ............................. 182
A.2.51 /ISAPI/ContentMgmt/PTZCtrlProxy/channels/<ID>/presets .................................. 182
A.2.52 /ISAPI/ContentMgmt/PTZCtrlProxy/channels/<ID>/presets/<ID> ......................... 183
A.2.53 /ISAPI/ContentMgmt/PTZCtrlProxy/channels/<ID>/presets/<ID>/goto ................. 184
A.2.54 /ISAPI/ContentMgmt/record/control/cleanUp/capabilities?format=json .............. 184
A.2.55 /ISAPI/ContentMgmt/record/control/cleanUp?format=json ................................. 185
A.2.56 /ISAPI/ContentMgmt/record/control/locks/capabilities ........................................ 185
A.2.57 /ISAPI/ContentMgmt/record/control/locks/name ................................................. 186
A.2.58 /ISAPI/ContentMgmt/record/control/manual/start/tracks/<ID> ........................... 186
A.2.59 /ISAPI/ContentMgmt/record/control/manual/stop/tracks/<ID> ........................... 187
A.2.60 /ISAPI/ContentMgmt/record/control/manualRefresh/channels/<ID> ................... 187
A.2.61 /ISAPI/ContentMgmt/record/control/remark/capabilities?format=json ............... 188
A.2.62 /ISAPI/ContentMgmt/record/control/remark?format=json ................................... 188
A.2.63 /ISAPI/ContentMgmt/record/profile ...................................................................... 188
A.2.64 /ISAPI/ContentMgmt/record/storageMounts ........................................................ 189

vii
Intelligent Security API (General) Developer Guide

A.2.65 /ISAPI/ContentMgmt/record/tracks ....................................................................... 189


A.2.66 /ISAPI/ContentMgmt/record/tracks/<ID> .............................................................. 190
A.2.67 /ISAPI/ContentMgmt/record/tracks/<ID>/capabilities ........................................... 191
A.2.68 /ISAPI/ContentMgmt/record/tracks/<ID>/dailyDistribution .................................. 191
A.2.69 /ISAPI/ContentMgmt/search .................................................................................. 192
A.2.70 /ISAPI/ContentMgmt/search/profile ...................................................................... 194
A.2.71 /ISAPI/ContentMgmt/security/logSearch ............................................................... 194
A.2.72 /ISAPI/ContentMgmt/SmartSearch ........................................................................ 194
A.2.73 /ISAPI/ContentMgmt/SmartSearch/capabilities ..................................................... 195
A.2.74 /ISAPI/ContentMgmt/spare/backup/<ID>?format=json ........................................ 195
A.2.75 /ISAPI/ContentMgmt/spare/backup?format=json ................................................. 196
A.2.76 /ISAPI/ContentMgmt/spare/capabilities?format=json ........................................... 197
A.2.77 /ISAPI/ContentMgmt/spare/master/<ID>?format=json ......................................... 198
A.2.78 /ISAPI/ContentMgmt/spare/master?format=json .................................................. 199
A.2.79 /ISAPI/ContentMgmt/spare?format=json .............................................................. 200
A.2.80 /ISAPI/ContentMgmt/storage ................................................................................. 200
A.2.81 /ISAPI/ContentMgmt/Storage/capabilities ............................................................. 201
A.2.82 /ISAPI/ContentMgmt/Storage/dataReconstruction/progress?format=json ........... 201
A.2.83 /ISAPI/ContentMgmt/Storage/dataReconstruction?format=json .......................... 202
A.2.84 /ISAPI/ContentMgmt/Storage/extension ............................................................... 202
A.2.85 /ISAPI/ContentMgmt/Storage/extension/capabilities ............................................ 203
A.2.86 /ISAPI/ContentMgmt/Storage/ExtraInfo ................................................................ 203
A.2.87 /ISAPI/ContentMgmt/Storage/ExtraInfo/capabilities ............................................. 204
A.2.88 /ISAPI/ContentMgmt/Storage/hdd ......................................................................... 204
A.2.89 /ISAPI/ContentMgmt/Storage/hdd/<ID> ................................................................ 204
A.2.90 /ISAPI/ContentMgmt/Storage/hdd/<ID>/BadSectorsTest/pause ........................... 205
A.2.91 /ISAPI/ContentMgmt/Storage/hdd/<ID>/BadSectorsTest/resume ........................ 205
A.2.92 /ISAPI/ContentMgmt/Storage/hdd/<ID>/BadSectorsTest/start ............................. 206

viii
Intelligent Security API (General) Developer Guide

A.2.93 /ISAPI/ContentMgmt/Storage/hdd/<ID>/BadSectorsTest/status ........................... 206


A.2.94 /ISAPI/ContentMgmt/Storage/hdd/<ID>/BadSectorsTest/stop ............................. 207
A.2.95 /ISAPI/ContentMgmt/Storage/hdd/<ID>/encryptFormat?format=json ................. 207
A.2.96 /ISAPI/ContentMgmt/Storage/hdd/<ID>/encryptVerfy?format=json .................... 208
A.2.97 /ISAPI/ContentMgmt/Storage/hdd/<ID>/formatStatus ......................................... 208
A.2.98 /ISAPI/ContentMgmt/Storage/hdd/<ID>/format?formatType= ............................. 209
A.2.99 /ISAPI/ContentMgmt/Storage/hdd/<ID>/logProTest?format=json ........................ 209
A.2.100 /ISAPI/ContentMgmt/Storage/hdd/<ID>/SMARTTest/start ................................. 210
A.2.101 /ISAPI/ContentMgmt/Storage/hdd/<ID>/SMARTTest/status ............................... 210
A.2.102 /ISAPI/ContentMgmt/Storage/hdd/capabilities ................................................... 211
A.2.103 /ISAPI/ContentMgmt/storage/hdd/clearingSpace/capabilities?format=json ...... 211
A.2.104 /ISAPI/ContentMgmt/storage/hdd/clearingSpace?format=json .......................... 212
A.2.105 /ISAPI/ContentMgmt/Storage/hdd/format .......................................................... 212
A.2.106 /ISAPI/ContentMgmt/Storage/hdd/SMARTTest/config ........................................ 213
A.2.107 /ISAPI/ContentMgmt/Storage/hdd/<ID>/syncStatus?format=json ...................... 213
A.2.108 /ISAPI/ContentMgmt/Storage/hdd/specifyHddFormat?format=json .................. 214
A.2.109 /ISAPI/ContentMgmt/Storage/quota ................................................................... 214
A.2.110 /ISAPI/ContentMgmt/Storage/quota/<ID> .......................................................... 214
A.2.111 /ISAPI/ContentMgmt/Storage/ssd ........................................................................ 215
A.2.112 /ISAPI/ContentMgmt/Storage/ssd/<ID> ............................................................... 215
A.2.113 /ISAPI/ContentMgmt/Storage/ssd/<ID>/capabilities?format=json ...................... 216
A.2.114 /ISAPI/ContentMgmt/Storage/ssd/<ID>/SMARTTest/status ................................ 216
A.2.115 /ISAPI/ContentMgmt/Storage/ssd/<ID>/SMARTTest/start .................................. 217
A.2.116 /ISAPI/ContentMgmt/Storage/ssd/<ID>/upgrade/status?format=json ............... 217
A.2.117 /ISAPI/ContentMgmt/Storage/ssd/<ID>/upgrade?format=json ........................... 218
A.2.118 /ISAPI/ContentMgmt/StreamingProxy/channels/<ID>/Picture ............................ 218
A.2.119 /ISAPI/ContentMgmt/StreamingProxy/channels/<ID>/capabilities ..................... 219

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

A.3.23 /ISAPI/Event/triggers/<ID>/notifications ................................................................ 236


A.3.24 /ISAPI/Event/triggers/notifications/AudioAlarm/<audioID>/test?format=json ..... 237
A.3.25 /ISAPI/Event/triggers/notifications/AudioAlarm/capabilities?format=json ........... 237
A.3.26 /ISAPI/Event/triggers/notifications/AudioAlarm/customAudio/<customAudioID>?
format=json ....................................................................................................................... 238
A.3.27 /ISAPI/Event/triggers/notifications/AudioAlarm/customAudioInfo/channels/
<channelID>?format=json .................................................................................................. 238
A.3.28 /ISAPI/Event/triggers/notifications/AudioAlarm/customAudio?format=json ........ 239
A.3.29 /ISAPI/Event/triggers/notifications/AudioAlarm/customAudioInfo/
<customAudioID>?format=json ......................................................................................... 239
A.3.30 /ISAPI/Event/triggers/notifications/AudioAlarm/customAudioInfo?format=json .. 240
A.3.31 /ISAPI/Event/triggers/notifications/AudioAlarm/customAudioTypeInfo/channels?
format=json ....................................................................................................................... 241
A.3.32 /ISAPI/Event/triggers/notifications/AudioAlarm?format=json ............................... 241
A.3.33 /ISAPI/Event/triggers/notifications/channels/<ID>/AudioAlarm/capabilities?
format=json ....................................................................................................................... 242
A.3.34 /ISAPI/Event/triggers/notifications/whiteLightAlarm?format=json ....................... 242
A.3.35 /ISAPI/Event/triggers/notifications/whiteLightAlarm/capabilities?format=json .... 243
A.3.36 /ISAPI/Event/triggersCap ........................................................................................ 243
A.3.37 http://<ipAddress>:<portNo>/<url> ....................................................................... 244
A.4 /ISAPI/Image ...................................................................................................................... 244
A.4.1 /ISAPI/Image/channels ............................................................................................. 244
A.4.2 /ISAPI/Image/channels/<ID> .................................................................................... 245
A.4.3 /ISAPI/Image/channels/<ID>/BLC ............................................................................. 246
A.4.4 /ISAPI/Image/channels/<ID>/capabilities ................................................................. 246
A.4.5 /ISAPI/Image/channels/<ID>/capturemode ............................................................. 247
A.4.6 /ISAPI/Image/channels/<ID>/color ........................................................................... 247
A.4.7 /ISAPI/Image/channels/<ID>/color/capabilities ....................................................... 248
A.4.8 /ISAPI/Image/channels/<ID>/corridor ...................................................................... 248
A.4.9 /ISAPI/Image/channels/<ID>/dehaze ....................................................................... 249

xi
Intelligent Security API (General) Developer Guide

A.4.10 /ISAPI/Image/channels/<ID>/EPTZ ......................................................................... 250


A.4.11 /ISAPI/Image/channels/<ID>/EPTZ/mode/capabilities?format=json ..................... 251
A.4.12 /ISAPI/Image/channels/<ID>/EPTZ/mode?format=json ......................................... 251
A.4.13 /ISAPI/Image/channels/<ID>/exposure .................................................................. 252
A.4.14 /ISAPI/Image/channels/<ID>/focusConfiguration .................................................. 252
A.4.15 /ISAPI/Image/channels/<ID>/focusConfiguration/capabilities ............................... 253
A.4.16 /ISAPI/Image/channels/<ID>/focusConfiguration/status?format=json .................. 253
A.4.17 /ISAPI/Image/channels/<ID>/gain .......................................................................... 254
A.4.18 /ISAPI/Image/channels/<ID>/imageCap ................................................................. 255
A.4.19 /ISAPI/Image/channels/<ID>/ImageFlip ................................................................. 255
A.4.20 /ISAPI/Image/channels/<ID>/imageMode/<ID> .................................................... 256
A.4.21 /ISAPI/Image/channels/<ID>/imageModes ............................................................ 256
A.4.22 /ISAPI/Image/channels/<ID>/IrcutFilter ................................................................. 256
A.4.23 /ISAPI/Image/channels/<ID>/ISPMode .................................................................. 257
A.4.24 /ISAPI/Image/channels/<ID>/lensDistortionCorrection ......................................... 258
A.4.25 /ISAPI/Image/channels/<ID>/lensDistortionCorrection/capabilities ...................... 259
A.4.26 /ISAPI/Image/channels/<ID>/mountingScenario ................................................... 259
A.4.27 /ISAPI/Image/channels/<ID>/mountingScenario/capabilities ................................ 260
A.4.28 /ISAPI/Image/channels/<ID>/noiseReduce ............................................................ 260
A.4.29 /ISAPI/Image/channels/<ID>/Palettes .................................................................... 261
A.4.30 /ISAPI/Image/channels/<ID>/powerLineFrequency ............................................... 261
A.4.31 /ISAPI/Image/channels/<ID>/regionalFocus .......................................................... 262
A.4.32 /ISAPI/Image/channels/<ID>/reset ........................................................................ 263
A.4.33 /ISAPI/Image/channels/<ID>/restore ..................................................................... 263
A.4.34 /ISAPI/Image/channels/<ID>/sharpness ................................................................. 263
A.4.35 /ISAPI/Image/channels/<ID>/shutter ..................................................................... 264
A.4.36 /ISAPI/Image/channels/<ID>/supplementLight ...................................................... 265
A.4.37 /ISAPI/Image/channels/<ID>/supplementLight/capabilities .................................. 266

xii
Intelligent Security API (General) Developer Guide

A.4.38 /ISAPI/Image/channels/<ID>/targetEnhancement ................................................. 266


A.4.39 /ISAPI/Image/channels/<ID>/targetEnhancement/capabilities ............................. 267
A.4.40 /ISAPI/Image/channels/<ID>/tempRange .............................................................. 267
A.4.41 /ISAPI/Image/channels/<ID>/tempRange/capabilities ........................................... 268
A.4.42 /ISAPI/Image/channels/<ID>/WDR ......................................................................... 268
A.4.43 /ISAPI/Image/channels/<ID>/whiteBalance ........................................................... 269
A.4.44 /ISAPI/Image/channels/capabilities ........................................................................ 270
A.4.45 /ISAPI/Image/channels/imageModes ..................................................................... 270
A.4.46 /ISAPI/Image/channels/imageModes/<ID> ............................................................ 271
A.5 /ISAPI/MasterSlaveTracking ............................................................................................... 271
A.5.1 /ISAPI/MasterSlaveTracking/capabilities .................................................................. 271
A.5.2 /ISAPI/MasterSlaveTracking/channels/<ID>/slaveCamera/<ID> .............................. 272
A.5.3 /ISAPI/MasterSlaveTracking/channels/<ID>/slaveCamera/<ID>/tracking ................ 272
A.5.4 /ISAPI/MasterSlaveTracking/channels/<ID>/slaveCamera/<ID>/trackingRatio ........ 273
A.5.5 /ISAPI/MasterSlaveTracking/channels/<ID>/slaveCamera/capabilities .................... 273
A.5.6 /ISAPI/MasterSlaveTracking/channels/<ID>/slaveCameraStatus ............................. 274
A.5.7 /ISAPI/MasterSlaveTracking/channels/<ID>/tracking/capabilities ........................... 274
A.5.8 /ISAPI/MasterSlaveTracking/linkedTracking/capabilities?format=json .................... 275
A.5.9 /ISAPI/MasterSlaveTracking/linkedTracking?format=json ........................................ 275
A.6 /ISAPI/SDT ......................................................................................................................... 276
A.6.1 /ISAPI/SDT/Management/capabilities?format=json ................................................. 276
A.6.2 /ISAPI/SDT/Management/IntelligentSearch/capabilities?format=json .................... 276
A.6.3 /ISAPI/SDT/Management/IntelligentSearch?format=json ........................................ 276
A.7 /ISAPI/PTZCtrl .................................................................................................................... 277
A.7.1 /ISAPI/PTZCtrl/channels/<ID> ................................................................................... 277
A.7.2 /ISAPI/PTZCtrl/channels/<ID>/auxcontrols .............................................................. 278
A.7.3 /ISAPI/PTZCtrl/channels/<ID>/auxcontrols/<ID> ...................................................... 278
A.7.4 /ISAPI/PTZCtrl/channels/<ID>/capabilities ............................................................... 279

xiii
Intelligent Security API (General) Developer Guide

A.7.5 /ISAPI/PTZCtrl/channels/<ID>/EagleFocusing/auto/capabilities?format=json ......... 279


A.7.6 /ISAPI/PTZCtrl/channels/<ID>/EagleFocusing/auto?format=json ............................ 280
A.7.7 /ISAPI/PTZCtrl/channels/<ID>/EagleFocusing/capabilities ....................................... 280
A.7.8 /ISAPI/PTZCtrl/channels/<ID>/GPS?format=json ..................................................... 281
A.7.9 /ISAPI/PTZCtrl/channels/<ID>/gyroVerify/capabilities?format=json ........................ 281
A.7.10 /ISAPI/PTZCtrl/channels/<ID>/gyroVerify?format=json ......................................... 282
A.7.11 /ISAPI/PTZCtrl/channels/<ID>/lensCorrection/capabilities?format=json ............... 282
A.7.12 /ISAPI/PTZCtrl/channels/<ID>/lensCorrection?format=json .................................. 283
A.7.13 /ISAPI/PTZCtrl/channels/<ID>/lockPTZ ................................................................... 283
A.7.14 /ISAPI/PTZCtrl/channels/<ID>/maxelevation .......................................................... 284
A.7.15 /ISAPI/PTZCtrl/channels/<ID>/maxelevation/capabilities ...................................... 285
A.7.16 /ISAPI/PTZCtrl/channels/<ID>/moveAutoTracking?format=json ............................ 285
A.7.17 /ISAPI/PTZCtrl/channels/<ID>/onepushfoucs/reset ............................................... 286
A.7.18 /ISAPI/PTZCtrl/channels/<ID>/parkaction .............................................................. 286
A.7.19 /ISAPI/PTZCtrl/channels/<ID>/parkaction/capabilities .......................................... 287
A.7.20 /ISAPI/PTZCtrl/Channels/<ID>/position3D ............................................................. 287
A.7.21 /ISAPI/PTZCtrl/channels/<ID>/presets ................................................................... 288
A.7.22 /ISAPI/PTZCtrl/channels/<ID>/presets/<ID> .......................................................... 288
A.7.23 /ISAPI/PTZCtrl/channels/<ID>/PTZOSDDisplay ....................................................... 289
A.7.24 /ISAPI/PTZCtrl/channels/<ID>/save ........................................................................ 290
A.7.25 /ISAPI/PTZCtrl/channels/<ID>/save?format=json ................................................... 290
A.7.26 /ISAPI/PTZCtrl/channels/<ID>/saveptzpoweroff .................................................... 291
A.7.27 /ISAPI/PTZCtrl/channels/<ID>/status ..................................................................... 292
A.7.28 /ISAPI/PTZCtrl/channels/<ID>/trackingRatio/capabilities?format=json ................. 292
A.7.29 /ISAPI/PTZCtrl/channels/<ID>/trackingRatio?format=json .................................... 292
A.7.30 /ISAPI/PTZCtrl/channels/<ID>/zoomFocus ............................................................. 293
A.8 /ISAPI/Security ................................................................................................................... 294
A.8.1 /ISAPI/Security/adminAccesses ................................................................................ 294

xiv
Intelligent Security API (General) Developer Guide

A.8.2 /ISAPI/Security/adminAccesses/<ID> ....................................................................... 294


A.8.3 /ISAPI/Security/adminAccesses/capabilities ............................................................ 295
A.8.4 /ISAPI/Security/advanced?format=json ................................................................... 295
A.8.5 /ISAPI/Security/capabilities ...................................................................................... 296
A.8.6 /ISAPI/Security/certificate/select/<functinName>?format=json ............................. 296
A.8.7 /ISAPI/Security/certificate/select/capabilities?format=json .................................... 297
A.8.8 /ISAPI/Security/challenge ......................................................................................... 297
A.8.9 /ISAPI/Security/CommuMode/capabilities?format=json ......................................... 298
A.8.10 /ISAPI/Security/CommuMode?format=json ........................................................... 298
A.8.11 /ISAPI/Security/deviceCertificate ........................................................................... 299
A.8.12 /ISAPI/Security/deviceCertificate/capabilities?format=json .................................. 299
A.8.13 /ISAPI/Security/deviceCertificate/certificateRevocation/capabilities?format=json
............................................................................................................................................ 300
A.8.14 /ISAPI/Security/deviceCertificate/certificateRevocation?format=json .................. 300
A.8.15 /ISAPI/Security/deviceCertificate/certificates/<customID>?format=json .............. 301
A.8.16 /ISAPI/Security/deviceCertificate/certificates/<ID> ............................................... 301
A.8.17 /ISAPI/Security/deviceCertificate/certificates/<ID>/recreate?format=json ........... 302
A.8.18 /ISAPI/Security/deviceCertificate/certificates/<ID>/status?format=json ............... 302
A.8.19 /ISAPI/Security/deviceCertificate/certificates/capabilities?format=json ............... 303
A.8.20 /ISAPI/Security/deviceCertificate/certificates/recreate?format=json .................... 303
A.8.21 /ISAPI/Security/deviceCertificate/certificates/status?format=json ........................ 304
A.8.22 /ISAPI/Security/deviceCertificate/certificates?format=json ................................... 304
A.8.23 /ISAPI/Security/deviceCertificate/selfSignCert ....................................................... 305
A.8.24 /ISAPI/Security/deviceCertificate?customID= ........................................................ 305
A.8.25 /ISAPI/Security/doubleVerification/users/<ID>?format=json ................................ 306
A.8.26 /ISAPI/Security/doubleVerification/users/capabilities?format=json ...................... 307
A.8.27 /ISAPI/Security/doubleVerification/users?format=json ......................................... 307
A.8.28 /ISAPI/Security/doubleVerification/UsersPermission/<ID>?format=json .............. 308

xv
Intelligent Security API (General) Developer Guide

A.8.29 /ISAPI/Security/doubleVerification/UsersPermission/capabilities?format=json .... 309


A.8.30 /ISAPI/Security/doubleVerification?format=json ................................................... 310
A.8.31 /ISAPI/Security/email/parameter/capabilities?format=json .................................. 310
A.8.32 /ISAPI/Security/email/parameter?format=json ..................................................... 311
A.8.33 /ISAPI/Security/email/qrCode?format=json ........................................................... 312
A.8.34 /ISAPI/Security/emailCertification?format=json .................................................... 312
A.8.35 /ISAPI/Security/extern/capabilities ........................................................................ 313
A.8.36 /ISAPI/Security/illegalLoginLock ............................................................................. 313
A.8.37 /ISAPI/Security/loginLinkNum?format=json ........................................................... 314
A.8.38 /ISAPI/Security/onlineUser ..................................................................................... 314
A.8.39 /ISAPI/Security/questionConfiguration .................................................................. 315
A.8.40 /ISAPI/Security/RTSPCertificate .............................................................................. 315
A.8.41 /ISAPI/Security/RTSPCertificate/capabilities .......................................................... 316
A.8.42 /ISAPI/Security/serverCertificate/capabilities?format=json ................................... 316
A.8.43 /ISAPI/Security/serverCertificate/certificate .......................................................... 317
A.8.44 /ISAPI/Security/serverCertificate/certificate?customID= ....................................... 318
A.8.45 /ISAPI/Security/serverCertificate/certificates?format=json ................................... 319
A.8.46 /ISAPI/Security/serverCertificate/certificates/<customID>?format=json .............. 319
A.8.47 /ISAPI/Security/serverCertificate/certSignReq ....................................................... 320
A.8.48 /ISAPI/Security/serverCertificate/certSignReq?customID= .................................... 321
A.8.49 /ISAPI/Security/serverCertificate/downloadCertSignReq ...................................... 321
A.8.50 /ISAPI/Security/serverCertificate/downloadCertSignReq?customID= ................... 322
A.8.51 /ISAPI/Security/serverCertificate/selfSignCert?customID= .................................... 322
A.8.52 /ISAPI/Security/userCheck ...................................................................................... 323
A.8.53 /ISAPI/Security/UserPermission ............................................................................. 323
A.8.54 /ISAPI/Security/UserPermission/<ID> .................................................................... 324
A.8.55 /ISAPI/Security/UserPermission/<ID>/localPermission .......................................... 324
A.8.56 /ISAPI/Security/UserPermission/<ID>/remotePermission ..................................... 325

xvi
Intelligent Security API (General) Developer Guide

A.8.57 /ISAPI/Security/UserPermission/adminCap ........................................................... 326


A.8.58 /ISAPI/Security/UserPermission/anonymouslogin ................................................. 326
A.8.59 /ISAPI/Security/UserPermission/capabilities .......................................................... 327
A.8.60 /ISAPI/Security/UserPermission/operatorCap ........................................................ 327
A.8.61 /ISAPI/Security/UserPermission/viewerCap ........................................................... 328
A.8.62 /ISAPI/Security/users .............................................................................................. 328
A.8.63 /ISAPI/Security/users/<ID> ..................................................................................... 332
A.8.64 /ISAPI/Security/users/<ID>/capabilities ................................................................. 333
A.8.65 /ISAPI/Security/webCertificate ............................................................................... 334
A.8.66 /ISAPI/SecurityCP/ReportCenterCfg/capabilities?format=json .............................. 334
A.8.67 /ISAPI/SecurityCP/ReportCenterCfg/<ID>?format=json ......................................... 335
A.9 /ISAPI/Smart ...................................................................................................................... 335
A.9.1 /ISAPI/Smart/capabilities .......................................................................................... 335
A.9.2 /ISAPI/Smart/AudioDetection/channels/<ID> .......................................................... 336
A.9.3 /ISAPI/Smart/AudioDetection/channels/<ID>/capabilities ...................................... 336
A.9.4 /ISAPI/Smart/AudioDetection/channels/<ID>/status ............................................... 337
A.9.5 /ISAPI/Smart/storageDetection/rwlock .................................................................... 337
A.9.6 /ISAPI/Smart/storageDetection/rwlock/capabilities ................................................ 338
A.9.7 /ISAPI/Smart/storageDetection ................................................................................ 338
A.10 /ISAPI/Snapshot ............................................................................................................... 339
A.10.1 /ISAPI/Snapshot/channels ...................................................................................... 339
A.10.2 /ISAPI/Snapshot/channels/<ID> ............................................................................. 339
A.10.3 /ISAPI/Snapshot/channels/<ID>/capabilities .......................................................... 340
A.11 /ISAPI/Streaming ............................................................................................................. 341
A.11.1 /ISAPI/Streaming/channels .................................................................................... 341
A.11.2 /ISAPI/Streaming/channels/<ID> ............................................................................ 342
A.11.3 /ISAPI/Streaming/channels/<ID>/capabilities ........................................................ 344
A.11.4 /ISAPI/Streaming/channels/<ID>/dynamicCap ...................................................... 345

xvii
Intelligent Security API (General) Developer Guide

A.11.5 /ISAPI/Streaming/channels/<ID>/picture ............................................................... 346


A.11.6 /ISAPI/Streaming/channels/<ID>/regionClip .......................................................... 347
A.11.7 /ISAPI/Streaming/channels/<ID>/regionClip/capabilities ...................................... 348
A.11.8 /ISAPI/Streaming/channels/<ID>/smartOverlap/capabilities?format=json ........... 348
A.11.9 /ISAPI/Streaming/channels/<ID>/smartOverlap?format=json ............................... 349
A.11.10 /ISAPI/Streaming/channels/<ID>/status .............................................................. 349
A.11.11 /ISAPI/Streaming/encryption/capabilities?format=json ...................................... 350
A.11.12 /ISAPI/Streaming/encryption/secretKey?format=json ......................................... 350
A.11.13 /ISAPI/Streaming/encryption?format=json .......................................................... 351
A.11.14 /ISAPI/Streaming/status ....................................................................................... 352
A.11.15 rtsp://<host>[:port]/ISAPI/Streaming/channels/<ID> .......................................... 352
A.11.16 rtsp://<host>[:port]/ISAPI/Streaming/channels/<ID>?npq= ................................ 353
A.11.17 rtsp://<host>[:port]/ISAPI/Streaming/tracks/<ID>?starttime=&endtime= .......... 355
A.12 /ISAPI/System .................................................................................................................. 357
A.12.1 /ISAPI/System/AcsUpdate/capabilities ................................................................... 357
A.12.2 /ISAPI/System/activate ........................................................................................... 357
A.12.3 /ISAPI/System/algorithmsInfo/capabilities?format=json ....................................... 357
A.12.4 /ISAPI/System/algorithmsInfo?format=json ........................................................... 358
A.12.5 /ISAPI/System/algorithmsVersion ........................................................................... 358
A.12.6 /ISAPI/System/Audio/AudioIn ................................................................................ 359
A.12.7 /ISAPI/System/Audio/AudioIn/capabilities ............................................................. 359
A.12.8 /ISAPI/System/Audio/AudioIn/channels/<ID> ........................................................ 360
A.12.9 /ISAPI/System/Audio/AudioIn/channels/<ID>/capabilities .................................... 360
A.12.10 /ISAPI/System/Audio/AudioOut/channels/<ID> ................................................... 361
A.12.11 /ISAPI/System/Audio/AudioOut/channels/<ID>/capabilities ............................... 361
A.12.12 /ISAPI/System/Audio/capabilities ......................................................................... 362
A.12.13 /ISAPI/System/Audio/channels ............................................................................. 362
A.12.14 /ISAPI/System/Audio/channels/<ID> .................................................................... 363

xviii
Intelligent Security API (General) Developer Guide

A.12.15 /ISAPI/System/Audio/channels/<ID>/dynamicCap .............................................. 363


A.12.16 /ISAPI/System/autoMaintenance/capabilities?format=json ................................ 364
A.12.17 /ISAPI/System/autoMaintenance?format=json .................................................... 364
A.12.18 /ISAPI/System/autoSwitch/capabilities?format=json ........................................... 364
A.12.19 /ISAPI/System/autoSwitch?format=json .............................................................. 365
A.12.20 /ISAPI/System/Bluetooth/capabilities .................................................................. 365
A.12.21 /ISAPI/System/Bluetooth/ibeaconParam ............................................................. 366
A.12.22 /ISAPI/System/Bluetooth/ibeaconParam/capabilities .......................................... 366
A.12.23 /ISAPI/System/capabilities .................................................................................... 367
A.12.24 /ISAPI/System/channels/<ID>/vibrationDetection/capabilities?format=json ...... 367
A.12.25 /ISAPI/System/channels/<ID>/vibrationDetection?format=json .......................... 368
A.12.26 /ISAPI/System/configurationData?secretkey= ...................................................... 368
A.12.27 /ISAPI/System/configurationData?type= .............................................................. 370
A.12.28 /ISAPI/System/deviceInfo ..................................................................................... 371
A.12.29 /ISAPI/System/deviceInfo/capabilities ................................................................. 372
A.12.30 /ISAPI/System/deviceInfo/characteristicCode?format=json ................................ 372
A.12.31 /ISAPI/System/DeviceLanguage ............................................................................ 373
A.12.32 /ISAPI/System/DeviceLanguage/capabilities ........................................................ 373
A.12.33 /ISAPI/System/diagnosedData .............................................................................. 374
A.12.34 /ISAPI/System/diagnosedData/exportStatus ........................................................ 374
A.12.35 /ISAPI/System/diagnosedData/parameter ........................................................... 375
A.12.36 /ISAPI/System/diagnosedData/parameter/capabilities ........................................ 375
A.12.37 /ISAPI/System/diagnosedData/server/capabilities?format=json ......................... 376
A.12.38 /ISAPI/System/diagnosedData/server?format=json ............................................. 376
A.12.39 /ISAPI/System/diagnosedData/server/test?format=json ..................................... 377
A.12.40 /ISAPI/System/diagnosis/capabilities?format=json .............................................. 378
A.12.41 /ISAPI/System/diagnosis?format=json ................................................................. 378
A.12.42 /ISAPI/System/discoveryMode ............................................................................. 379

xix
Intelligent Security API (General) Developer Guide

A.12.43 /ISAPI/System/discoveryMode/capabilities ......................................................... 379


A.12.44 /ISAPI/System/doubleLensParking/capabilities .................................................... 380
A.12.45 /ISAPI/System/dumpData ..................................................................................... 380
A.12.46 /ISAPI/System/exportLogToUSB/capabilities?format=json .................................. 380
A.12.47 /ISAPI/System/exportLogToUSB/mode?format=json ........................................... 381
A.12.48 /ISAPI/System/exportLogToUSB/status?format=json ........................................... 381
A.12.49 /ISAPI/System/exportUSBLog/capabilities?format=json ...................................... 382
A.12.50 /ISAPI/System/exportUSBLog/status?format=json .............................................. 382
A.12.51 /ISAPI/System/exportUSBLog?format=json .......................................................... 382
A.12.52 /ISAPI/System/externalDevice/capabilities .......................................................... 383
A.12.53 /ISAPI/System/factoryReset?mode= .................................................................... 383
A.12.54 /ISAPI/System/fileExport/capabilities?format=json ............................................. 384
A.12.55 /ISAPI/System/fileExport?format=json ................................................................. 384
A.12.56 /ISAPI/System/firmwareCodeV2 ........................................................................... 385
A.12.57 /ISAPI/System/GPSCalibratation/channels/<ID>/capabilities?format=json ......... 385
A.12.58 /ISAPI/System/GPSCalibratation/channels/<ID>/points/<PID>?format=json ...... 385
A.12.59 /ISAPI/System/GPSCalibratation/channels/<ID>/points/status?format=json ...... 386
A.12.60 /ISAPI/System/GPSCalibratation/channels/<ID>/points?format=json ................. 387
A.12.61 /ISAPI/System/GPSPTZCalibratation/channels/<ID>/calibratation?format=json . 388
A.12.62 /ISAPI/System/GPSVerification/channels/<ID>/display?format=json .................. 388
A.12.63 /ISAPI/System/GPSVerification/channels/<ID>/points/<ID>?format=json .......... 389
A.12.64 /ISAPI/System/GPSVerification/channels/<ID>/points/capabilities?format=json
............................................................................................................................................ 390
A.12.65 /ISAPI/System/GPSVerification/channels/<ID>/points/resultInfo?format=json .. 390
A.12.66 /ISAPI/System/GPSVerification/channels/<ID>/points?format=json ................... 391
A.12.67 /ISAPI/System/guardAgainstTheft ........................................................................ 392
A.12.68 /ISAPI/System/guardAgainstTheft/capabilities ..................................................... 393
A.12.69 /ISAPI/System/guideConfig/<guideEvent>/capabilities?format=json .................. 393

xx
Intelligent Security API (General) Developer Guide

A.12.70 /ISAPI/System/guideConfig/<guideEvent>?format=json ...................................... 394


A.12.71 /ISAPI/System/Hardware ...................................................................................... 394
A.12.72 /ISAPI/System/Hardware/defog ........................................................................... 395
A.12.73 /ISAPI/System/installationAngleCalibration/channels/<ID>/capabilities?format=json
............................................................................................................................................ 395
A.12.74 /ISAPI/System/installationAngleCalibration/channels/<ID>?format=json ........... 396
A.12.75 /ISAPI/System/IO .................................................................................................. 396
A.12.76 /ISAPI/System/IO/capabilities ............................................................................... 397
A.12.77 /ISAPI/System/IO/inputs ...................................................................................... 397
A.12.78 /ISAPI/System/IO/inputs/<ID> .............................................................................. 398
A.12.79 /ISAPI/System/IO/inputs/<ID>/status .................................................................. 398
A.12.80 /ISAPI/System/IO/inputs/capabilities ................................................................... 399
A.12.81 /ISAPI/System/IO/outputs .................................................................................... 399
A.12.82 /ISAPI/System/IO/outputs/capabilities ................................................................. 399
A.12.83 /ISAPI/System/IO/outputs/<ID> ........................................................................... 400
A.12.84 /ISAPI/System/IO/outputs/<ID>/status ................................................................ 400
A.12.85 /ISAPI/System/IO/outputs/<ID>/trigger ............................................................... 401
A.12.86 /ISAPI/System/IO/softInputs/<ID>?format=json .................................................. 401
A.12.87 /ISAPI/System/IO/softInputs?format=json ........................................................... 402
A.12.88 /ISAPI/System/IO/status ....................................................................................... 402
A.12.89 /ISAPI/System/laserOpticalAxis/capabilities?format=json ................................... 402
A.12.90 /ISAPI/System/laserOpticalAxis/goto?format=json .............................................. 403
A.12.91 /ISAPI/System/laserOpticalAxis?format=json ....................................................... 403
A.12.92 /ISAPI/System/logServer ...................................................................................... 404
A.12.93 /ISAPI/System/logServer/capabilities ................................................................... 404
A.12.94 /ISAPI/System/logServer/test ............................................................................... 405
A.12.95 /ISAPI/System/Network/adaption/capabilities?format=json ............................... 405
A.12.96 /ISAPI/System/Network/adaption?format=json&streamType= ........................... 406

xxi
Intelligent Security API (General) Developer Guide

A.12.97 /ISAPI/System/Network/Bond .............................................................................. 406


A.12.98 /ISAPI/System/Network/Bond/<ID> ..................................................................... 407
A.12.99 /ISAPI/System/Network/capabilities .................................................................... 407
A.12.100 /ISAPI/System/Network/channels/<ID>/buletooth/status ................................. 408
A.12.101 /ISAPI/System/Network/DDNS ........................................................................... 409
A.12.102 /ISAPI/System/Network/DDNS/capabilities ....................................................... 409
A.12.103 /ISAPI/System/Network/DDNS/<ID> .................................................................. 410
A.12.104 /ISAPI/System/Network/DDNS/<ID>/capabilities ............................................... 410
A.12.105 /ISAPI/System/Network/Ehome ......................................................................... 411
A.12.106 /ISAPI/System/Network/Ehome/capabilities ..................................................... 411
A.12.107 /ISAPI/System/Network/Ehome?centerID= ....................................................... 412
A.12.108 /ISAPI/System/Network/EZVIZ ........................................................................... 413
A.12.109 /ISAPI/System/Network/EZVIZ/QRCode ............................................................. 413
A.12.110 /ISAPI/System/Network/EZVIZ/QRCode?format=json ....................................... 414
A.12.111 /ISAPI/System/Network/EZVIZ/capabilities ........................................................ 415
A.12.112 /ISAPI/System/Network/EZVIZ/secretKey?format=json ..................................... 415
A.12.113 /ISAPI/System/Network/EZVIZ/unbind?format=json ......................................... 415
A.12.114 /ISAPI/System/Network/ftp ................................................................................ 416
A.12.115 /ISAPI/System/Network/ftp/<ID> ....................................................................... 417
A.12.116 /ISAPI/System/Network/ftp/capabilities ............................................................ 417
A.12.117 /ISAPI/System/Network/ftp/test ........................................................................ 418
A.12.118 /ISAPI/System/Network/interfaces .................................................................... 418
A.12.119 /ISAPI/System/Network/interfaces/<ID> ........................................................... 419
A.12.120 /ISAPI/System/Network/interfaces/<ID>/capabilities ........................................ 420
A.12.121 /ISAPI/System/Network/interfaces/<ID>/discovery ........................................... 420
A.12.122 /ISAPI/System/Network/interfaces/<ID>/discovery/capabilities ....................... 421
A.12.123 /ISAPI/System/Network/interfaces/<ID>/dynamicHostName?format=json ...... 421

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

A.12.151 /ISAPI/System/Network/interfaces/capabilities ................................................. 437


A.12.152 /ISAPI/System/Network/ipFilter ......................................................................... 437
A.12.153 /ISAPI/System/Network/ipFilter/capabilities ..................................................... 438
A.12.154 /ISAPI/System/Network/MACFilter .................................................................... 438
A.12.155 /ISAPI/System/Network/MACFilter/capabilities ................................................. 439
A.12.156 /ISAPI/System/Network/mailing ........................................................................ 439
A.12.157 /ISAPI/System/Network/mailing/<ID> ............................................................... 440
A.12.158 /ISAPI/System/Network/mailing/capabilities ..................................................... 441
A.12.159 /ISAPI/System/Network/mailing/test ................................................................. 441
A.12.160 /ISAPI/System/Network/pingtest ....................................................................... 441
A.12.161 /ISAPI/System/Network/POE/capabilities?format=json ..................................... 442
A.12.162 /ISAPI/System/Network/POE?format=json ........................................................ 442
A.12.163 /ISAPI/System/Network/resourceStatistics?format=json ................................... 443
A.12.164 /ISAPI/System/Network/SIP ............................................................................... 443
A.12.165 /ISAPI/System/Network/SIP/<ID> ....................................................................... 444
A.12.166 /ISAPI/System/Network/SIP/<ID>/capabilities ................................................... 444
A.12.167 /ISAPI/System/Network/SIP/<ID>/SIPInfo .......................................................... 445
A.12.168 /ISAPI/System/Network/SIP/<ID>/SIPInfo/capabilities ...................................... 446
A.12.169 /ISAPI/System/Network/SIP/<ID>/SIPInfo/multiInfo .......................................... 446
A.12.170 /ISAPI/System/Network/SIP/capabilities ............................................................ 447
A.12.171 /ISAPI/System/Network/SIP/voiceTalkCtrl/<ID>?format=json ........................... 447
A.12.172 /ISAPI/System/Network/SIP/voiceTalkCtrl/capabilities?format=json ................. 448
A.12.173 /ISAPI/System/Network/SNMP .......................................................................... 448
A.12.174 /ISAPI/System/Network/SNMP/advanced .......................................................... 449
A.12.175 /ISAPI/System/Network/SNMP/advanced/trapReceivers .................................. 450
A.12.176 /ISAPI/System/Network/SNMP/advanced/trapReceivers/<ID> ......................... 451
A.12.177 /ISAPI/System/Network/socketIP ....................................................................... 451
A.12.178 /ISAPI/System/Network/ssh ............................................................................... 452

xxiv
Intelligent Security API (General) Developer Guide

A.12.179 /ISAPI/System/Network/ssh/capabilities ............................................................ 452


A.12.180 /ISAPI/System/Network/StaticRoute .................................................................. 453
A.12.181 /ISAPI/System/Network/telnetd ......................................................................... 454
A.12.182 /ISAPI/System/Network/telnetd/capabilities ..................................................... 454
A.12.183 /ISAPI/System/Network/UPnP ........................................................................... 455
A.12.184 /ISAPI/System/Network/UPnP/capabilities ........................................................ 455
A.12.185 /ISAPI/System/Network/UPnP/ports .................................................................. 456
A.12.186 /ISAPI/System/Network/UPnP/ports/status ....................................................... 456
A.12.187 /ISAPI/System/Network/UPnP/ports/<ID> ......................................................... 456
A.12.188 /ISAPI/System/Network/UPnP/ports/<ID>/status .............................................. 457
A.12.189 /ISAPI/System/Network/verificationCodeCheck ................................................ 458
A.12.190 /ISAPI/System/Network/WirelessDial/Interfaces ............................................... 458
A.12.191 /ISAPI/System/Network/WirelessDial/Interfaces/<ID> ...................................... 459
A.12.192 /ISAPI/System/Network/WirelessDial/Interfaces/<ID>/dial ............................... 459
A.12.193 /ISAPI/System/Network/WirelessDial/Interfaces/<ID>/dial/capabilities ........... 460
A.12.194 /ISAPI/System/Network/WirelessDial/Interfaces/<ID>/dialstatus ..................... 461
A.12.195 /ISAPI/System/Network/WirelessDial/Interfaces/<ID>/keepAlive/capabilities?
format=json ....................................................................................................................... 461
A.12.196 /ISAPI/System/Network/WirelessDial/Interfaces/<ID>/keepAlive/test?format=json
............................................................................................................................................ 462
A.12.197 /ISAPI/System/Network/WirelessDial/Interfaces/<ID>/keepAlive?format=json
............................................................................................................................................ 462
A.12.198 /ISAPI/System/Network/WirelessDial/Interfaces/<ID>/messageConfig ............ 463
A.12.199 /ISAPI/System/Network/WirelessDial/Interfaces/<ID>/messageConfig/
messageConfigCap ............................................................................................................. 464
A.12.200 /ISAPI/System/Network/WirelessDial/Interfaces/<ID>/messageConfig/WhiteList
............................................................................................................................................ 464
A.12.201 /ISAPI/System/Network/WirelessDial/Interfaces/<ID>/messageConfig/WhiteList/
<ID> .................................................................................................................................... 465
A.12.202 /ISAPI/System/Network/WirelessDial/Interfaces/<ID>/schedule ...................... 466

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

A.12.229 /ISAPI/System/Serial/ports/command/capabilities ............................................ 479


A.12.230 /ISAPI/System/serialLogCfg/capabilities?format=json ....................................... 479
A.12.231 /ISAPI/System/serialLogCfg?format=json ........................................................... 480
A.12.232 /ISAPI/System/shutdown?format=json .............................................................. 480
A.12.233 /ISAPI/System/Software/channels/<ID> ............................................................. 481
A.12.234 /ISAPI/System/Software/channels/<ID>/capabilities ......................................... 481
A.12.235 /ISAPI/System/SSDFileSystem/capacity?format=json ........................................ 482
A.12.236 /ISAPI/System/SSDFileSystem/format?format=json ........................................... 482
A.12.237 /ISAPI/System/SSDFileSystem/format/status?format=json ................................ 483
A.12.238 /ISAPI/System/SSDFileSystem/upgrade?format=json ........................................ 483
A.12.239 /ISAPI/System/SSDFileSystem/upgrade/status?format=json ............................. 484
A.12.240 /ISAPI/System/status .......................................................................................... 484
A.12.241 /ISAPI/System/syncSignalOutput/<ID> ............................................................... 485
A.12.242 /ISAPI/System/syncSignalOutput/<ID>/capabilities ........................................... 485
A.12.243 /ISAPI/System/time ............................................................................................ 486
A.12.244 /ISAPI/System/time/capabilities ......................................................................... 486
A.12.245 /ISAPI/System/time/localTime ........................................................................... 487
A.12.246 /ISAPI/System/time/ntpServers .......................................................................... 487
A.12.247 /ISAPI/System/time/ntpServers/<ID> ................................................................. 488
A.12.248 /ISAPI/System/time/ntpServers/<ID>/capabilities ............................................. 489
A.12.249 /ISAPI/System/time/ntpServers/capabilities ...................................................... 489
A.12.250 /ISAPI/System/time/ntpServers/test .................................................................. 490
A.12.251 /ISAPI/System/time/timeType?format=json ...................................................... 490
A.12.252 /ISAPI/System/time/timeZone ........................................................................... 491
A.12.253 /ISAPI/System/TwoWayAudio/channels ............................................................. 491
A.12.254 /ISAPI/System/TwoWayAudio/channels/<ID> .................................................... 493
A.12.255 /ISAPI/System/TwoWayAudio/channels/<ID>/audioData .................................. 493
A.12.256 /ISAPI/System/TwoWayAudio/channels/<ID>/capabilities ................................ 495

xxvii
Intelligent Security API (General) Developer Guide

A.12.257 /ISAPI/System/TwoWayAudio/channels/<ID>/close .......................................... 495


A.12.258 /ISAPI/System/TwoWayAudio/channels/<ID>/open .......................................... 496
A.12.259 /ISAPI/System/TwoWayAudio/channels/capabilities ......................................... 497
A.12.260 /ISAPI/System/unitConfig/capabilities?format=json .......................................... 497
A.12.261 /ISAPI/System/unitConfig?format=json .............................................................. 498
A.12.262 /ISAPI/System/updateFirmware ......................................................................... 498
A.12.263 /ISAPI/System/updateFirmware?type=&id= ...................................................... 499
A.12.264 /ISAPI/System/updateFirmware?type=&moduleAddress= ................................ 500
A.12.265 /ISAPI/System/upgradeStatus ............................................................................ 501
A.12.266 /ISAPI/System/usb/capabilities?format=json ..................................................... 501
A.12.267 /ISAPI/System/usb?format=json ........................................................................ 502
A.12.268 /ISAPI/System/userLock/config/capabilities?format=json ................................. 502
A.12.269 /ISAPI/System/userLock/config?format=json ..................................................... 503
A.12.270 /ISAPI/System/userLock/lockedUsers?format=json ........................................... 503
A.12.271 /ISAPI/System/userLock/unlockUser?format=json ............................................ 504
A.12.272 /ISAPI/System/Video/capabilities ....................................................................... 504
A.12.273 /ISAPI/System/Video/inputs ............................................................................... 504
A.12.274 /ISAPI/System/Video/inputs/channels ............................................................... 505
A.12.275 /ISAPI/System/Video/inputs/channels/<ID> ...................................................... 505
A.12.276 /ISAPI/System/Video/inputs/channels?format=json .......................................... 506
A.12.277 /ISAPI/System/Video/inputs/channels/<ID>/focus ............................................ 506
A.12.278 /ISAPI/System/Video/inputs/channels/<ID>?format=json ................................. 507
A.12.279 /ISAPI/System/Video/inputs/channels/<ID>/capabilities ................................... 507
A.12.280 /ISAPI/System/Video/inputs/channels/<ID>/iris ................................................ 507
A.12.281 /ISAPI/System/Video/inputs/channels/<ID>/motionDetection ......................... 508
A.12.282 /ISAPI/System/Video/inputs/channels/<ID>/motionDetection/capabilities ...... 509
A.12.283 /ISAPI/System/Video/inputs/channels/<ID>/motionDetection/layout .............. 509

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

A.12.308 /ISAPI/System/Video/outputs/channels ............................................................. 526


A.12.309 /ISAPI/System/Video/outputs/channels/<ID> .................................................... 526
A.12.310 /ISAPI/System/Video/outputs/channels/<ID>/capabilities ................................ 527
A.12.311 /ISAPI/System/Video/outputs/PreviewSwitch/capabilities ................................ 527
A.12.312 /ISAPI/System/Video/outputs/PreviewSwitch/capabilities?videoOutType= ...... 528
A.12.313 /ISAPI/System/Video/outputs/PreviewSwitch?groupID=&videoOutType= ........ 528
A.12.314 /ISAPI/System/Video/outputs/PreviewSwitch?
groupID=&videoOutType=&previewFrameNo= ................................................................. 530
A.12.315 /ISAPI/System/wiresharkToUSB/capabilities?format=json ................................. 530
A.12.316 /ISAPI/System/wiresharkToUSB/mode?format=json ......................................... 531
A.12.317 /ISAPI/System/wiresharkToUSB/status?format=json ......................................... 531
A.12.318 /ISAPI/System/workingstatus/hdStatus?format=json ........................................ 532
A.12.319 /ISAPI/System/workingstatus/chanStatus?format=json ..................................... 532
A.12.320 /ISAPI/System/workingstatus/capabilities?format=json .................................... 533
A.12.321 /ISAPI/System/workingstatus?format=json ........................................................ 533
A.12.322 /ISAPI/System/workingstatus/IOStatus?format=json ......................................... 534
A.12.323 /ISAPI/System/zeroBiasCalibration/channels/<ID>?format=json ....................... 534
A.13 /ISAPI/Thermal ................................................................................................................ 535
A.13.1 /ISAPI/Thermal/capabilities .................................................................................... 535
A.13.2 /ISAPI/Thermal/temperature/collection/capabilities?format=json ....................... 535
A.13.3 /ISAPI/Thermal/temperature/collection?format=json ........................................... 535
Appendix B. Appendixes ......................................................................................................... 537
B.1 Request and Response Messages ...................................................................................... 537
B.1.1 JSON Messages ......................................................................................................... 537
B.1.2 XML Messages .......................................................................................................... 673
B.2 Log Types for ISAPI ............................................................................................................. 963
B.3 Supported Alarm/Event Types ........................................................................................... 985
B.4 Response Codes of Text Protocol ....................................................................................... 990

xxx
Intelligent Security API (General) Developer Guide

B.5 Error Codes Categorized by Functional Modules ............................................................. 1026


B.6 Encryption Mechanism .................................................................................................... 1042
B.6.1 RTP Packet Format .................................................................................................. 1042
B.6.2 SRTP Packet Format ................................................................................................ 1043
B.6.3 Master Key and Session Key ................................................................................... 1045
B.6.4 Decoded MIKEY Message ....................................................................................... 1046
B.6.5 RTSP Status Code .................................................................................................... 1048

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.

Figure 1-1 Network Topology

Figure 1-2 Communication Protocol Layer Framework

1
Intelligent Security API (General) Developer Guide

1.2 Update History

1.2.1 Version 20.10-Version 20.12

Summary of Changes in Version 2.6_Dec., 2020


Related Product: NVR
1. Extended the JSON message about response status JSON_ResponseStatus :
added two nodes MErrCode (error code categorized by functional modules) and MErrDevSelfEx
(extension of MErrCode).
2. Extended the XML message about response status XML_ResponseStatus :
added two nodes <MErrCode> (error code categorized by functional modules) and
<MErrDevSelfEx> (extension of <MErrCode>).

Summary of Changes in Version 2.6_Dec., 2020


Related Product: NVR with Software Version 4.50.00
1. Extended message about upgrade package download status JSON_DownloadPackageStatus
(related URI: /ISAPI/System/onlineUpgrade/downloadPackage/status?format=json ):
added one value "downloadFailed" (downloading failed) to node <status>.
2. Extended audible warning configuration capability of a channel JSON_ChannelAudioAlarmCap
(related URI: /ISAPI/Event/triggers/notifications/channels/<ID>/AudioAlarm/capabilities?
format=json ):
added three alarm sound types to node <audioTypeListCap>: 13 (custom alarm sound 1) , 14
(custom alarm sound 2) , and 15 (custom alarm sound 3).
3. Added one URI for getting the information about custom alarm sound file of a specified channel:
GET /ISAPI/Event/triggers/notifications/AudioAlarm/customAudioInfo/channels/
<channelID>?format=json .
4. Extended the following event/alarm details by adding one node <releatedChannelList> (list of
alarm related channels).
Event Type eventType
Motion Detection Alarm VMD
Intrusion Detection fielddetection
Line Crossing Detection linedetection
Face Detection Alarm facedetection
Face Capture Alarm faceCapture
Fire Source Detection fireDetection
Temperature Measurement Alarm TMA

2
Intelligent Security API (General) Developer Guide

Event Type eventType


Temperature Difference Alarm TDA
Region Entrance Detection regionEntrance
Region Exiting Detection regionExiting
Loitering Detection loitering
People Gathering Detection group
Fast Moving Detection rapidMove
Parking Detection parking
Unattended Baggage Detection unattendedBaggage
Scene Changed Alarm scenechangedetection
ANPR Alarm ANPR
Multi-​Target-​Type Detection Alarm mixedTargetDetection
Ship Detection shipsDetection
People Queuing-Up Alarm personQueueCounting
Waiting Time Detection Alarm personQueueTime
Audio Exception Alarm audioexception
Blocklist and Allowlist ANPR Alarm vehicleMatchResult
Face Picture Comparison Result alarmResult
High Frequently Person Detection HFPD
Video Tampering Alarm shelteralarm
Dredger Detection Alarm dredgerDetection
Reverse Entering Alarm reverseEntrance
Temperature Measurement Pre-Alarm TMPA
Heat Map Alarm heatmap
People Counting PeopleCounting
Defocus Alarm defocus
Scene Changed Alarm scenechangedetection
Fast Moving Alarm running
Violent Motion Alarm violentMotion
People Falling Down Alarm failDown

3
Intelligent Security API (General) Developer Guide

Event Type eventType


Overstay Alarm Retention
Object Removal Detection attendedBaggage
Audio Exception Alarm Audioexception
Absence Alarm leavePosition
People Number Changed Alarm peopleNumChange
Hard Hat Detection Alarm safetyHelmet
People Density Detection Alarm personDensityDetection
PIR Alarm PIR
5. Extended device storage capability XML_RacmCap (related URI: /ISAPI/ContentMgmt/
capabilities ):
added one node <isSupportSpare> (whether the device supports hot spare configuration).
6. Added URIs for hot spare configuration, see Hot Spare Configuration for details.
7. Extended the Response Codes of Text Protocol :
added two sub status codes to device error (statusCode=3): 0x30001015 (noLinkageResource)
and 0x30001016 (noArmingResource) ;
added four sub status codes to invalid operation (statusCode=4): 0x40001002
(interfaceOperationError), 0x400019F0 (NonOperationalStandbyMachine), 0x400019F1
(MaximumNumberOfDevices), and 0x400019F2 (StandbyMmachineCannotBeDeleted).
8. Extended the log types Log Types for ISAPI :
added two minor operation log types: "LocalBackupConfig" (local hot spare device
configuration) and RemoteBackupConfig (remote hot spare device configuration);
added one minor information log types: "BackupInfo" (hot spare device information).

Summary of Changes in Version 2.6_Nov., 2020


Related Product: CTRL-NEX-001A Control Panel with Software Version 1.0.1
1. Extended the URI for upgrading the device firmware PUT or POST /ISAPI/System/
updateFirmware :
added three module types "ZigBee" (ZigBee module), "R3" (R3 module), and "Rx" (Rx module)
to the query parameter type.
2. Extended the message about capability of upgrading device XML_Cap_AcsUpdate (related
URI: /ISAPI/System/AcsUpdate/capabilities ):
added 3 upgrading types: "ZigBee" (ZigBee module), "R3" (R3 module), and "Rx" (Rx module) to
the node <type>.
3. Extended the message about capability of device information XML_Cap_DeviceInfo and
message about device information XML_DeviceInfo (related URIs: /ISAPI/System/deviceInfo/
capabilities and /ISAPI/System/deviceInfo ):
added 3 nodes: <ZigBeeVersion> (ZigBee module version), <R3Version> (R3 module version),
and <RxVersion> (Rx module version).

4
Intelligent Security API (General) Developer Guide

Summary of Changes in Version 2.6_Nov., 2020


Related Product: DS-2TA21-2AVF, DS-2TA21-3AVF, DS-2TB21-3AVF, DS-2TB21-3AVF/IN,
DS-2TD3017T-2/V, and DS-2TD3017T03/V Thermographic Cube Camera with Software Version
5.5.12
1. Extended the channel attributes message XML_ChannelInfo (related URI: /ISAPI/AUXInfo/
attributes/Channels/<ID> ) :
added one node: <TemperatureIntervalMeasurement> (interval temperature measurement).
2. Extended recording schedule configuration capability XML_Cap_Track (related URI: /ISAPI/
ContentMgmt/record/tracks/<ID>/capabilities ) :
added one record type "temperatureIntervalMeasurement" (interval temperature
measurement) to nodes <ActionRecordingMode> and <DefaultRecordingMode>.
3. Extended recording schedule configuration parameters XML_Track (related URI: /ISAPI/
ContentMgmt/record/tracks ) :
added one record type "temperatureIntervalMeasurement" (interval temperature
measurement) to node <ActionRecordingMode>.
4. Extended search conditions of video and picture XML_VideoPic_CMSearchDescription (related
URI: /ISAPI/ContentMgmt/search ) :
added one search condition "temperatureIntervalMeasurement" (interval temperature
measurement) to node <metadataDescriptor>.
5. Extended device storage capability XML_RacmCap (related URI: /ISAPI/ContentMgmt/
capabilities ) :
added one search condition "temperatureIntervalMeasurement" (interval temperature
measurement) to nodes <pictureSearchType> and <recordSearchType>.
6. Extended the event capability of a single channel XML_ChannelEventCap (related URI: /ISAPI/
Event/channels/<ID>/capabilities ):
added one event type "temperatureIntervalMeasurement" (interval temperature
measurement) to node <eventType>.
7. Extended device event capability XML_EventCap (related URI: /ISAPI/Event/capabilities ) :
added one node <isSupportTemperatureIntervalMeasurement> (whether the device supports
interval temperature measurement).
8. Extended the log types Log Types for ISAPI :
added two minor alarm log types: "TemperatureIntervalMeasurementStart" (Interval
temperature measurement started) and "TemperatureIntervalMeasurementStop" (Interval
temperature measurement stopped) .

1.2.2 Version 20.07-Version 20.09

Summary of Changes in Version 2.6_Sept, 2020


Related Product: DS-2XS6A25G0-I/CH20S40 and DS-2CD3T23G1-I/4G Network Camera with
Software Version 5.5.111
1. Extended the device capability XML_DeviceCap (related URI: /ISAPI/System/capabilities ):

5
Intelligent Security API (General) Developer Guide

added one node <characteristicCode> (device attribute code).


2. Added one URI for getting the device attribute code: GET /ISAPI/System/deviceInfo/
characteristicCode?format=json .
3. Extended the capability of exporting diagnosis information
XML_Cap_DiagnosedDataParameter (related URI: /ISAPI/System/diagnosedData/parameter/
capabilities ):
added one node <isSupportServer> (whether the device supports diagnostic server
configuration).
4. Added URIs for diagnostic server configuration:
Get diagnostic server capability: GET /ISAPI/System/diagnosedData/server/capabilities?
format=json ;
Get or set diagnostic server parameters: GET or PUT /ISAPI/System/diagnosedData/server?
format=json .
5. Added one URI for testing diagnostic server: POST /ISAPI/System/diagnosedData/server/test?
format=json .
6. Extended the Response Codes of Text Protocol :
added one sub status code 0x40002106-"incorrectConsolePassword" (Saving failed. Incorrect
console command) to invalid operation.

Summary of Changes in Version 2.6_Sept., 2020


Related Product: DS-2TA06-6AXF, DS-2TA03-4AXF, DS-2TA03-7AXF, DS-2TA03-10AXF, and
DS-2TA06-6AXF(B) Thermographic Automation Camera with Software Version 5.5.10
1. Extended the device I/O output capability XML_Cap_IOOutputPortList (related URI: /ISAPI/
System/IO/outputs/capabilities ):
added four values to the node <pulseDuration> (duration of a output port signal when it is
being triggered): 1000, 2000, 3000, and 4000.
2. Extended the event capability XML_EventCap (related URI: /ISAPI/Event/capabilities ):
added one node <isSupportThermalCalibrationFileException> (whether the device supports
alarm of thermography calibration file exception).
3. Extended the linkage capabilities of different alarm categories XML_EventTriggersCap (related
URI: /ISAPI/Event/triggersCap ):
added one node <ThermalCalibrationFileExceptionCap> (alarm linkage capability of
thermography calibration file exception).

Summary of Changes in Version 2.6_Sept., 2020


Related Product: DS-2TA03-15SVI, DS-2TA06-25SVI, and DS-2TD2036T-7/V Thermographic
Automation Camera with Software Version 5.5.8
1. Extended the device information capability XML_Cap_DeviceInfo and device information
XML_DeviceInfo (related URIs: /ISAPI/System/deviceInfo/capabilities and /ISAPI/System/
deviceInfo ):
added one node <bootTime> (system boot time).
2. Extended focus configuration capability XML_Cap_FocusConfiguration (related URI: /ISAPI/
Image/channels/<ID>/focusConfiguration/capabilities ):

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 .

Summary of Changes in Version 2.6_Aug., 2020


Related Product: iDS-9632NXI-I8/X-AI and iDS-6708NXI-I/X-AI series DeepinMind NVR with
Software Version 4.1.80
1. Extended audible warning configuration capability JSON_AudioAlarmCap (related URI: /ISAPI/
Event/triggers/notifications/AudioAlarm/capabilities?format=json ):
added one audio type 16 (AI custom audio file) to node audioTypeListCap.
2. Extended information of custom alarm audio file JSON_GetCustomAudio (related URI: /ISAPI/
Event/triggers/notifications/AudioAlarm/customAudioInfo?format=json ):
added one node AudioType (audio file type).
3. Extended the information of custom alarm audio file to be imported JSON_ImportCustomAudio
(related URI: /ISAPI/Event/triggers/notifications/AudioAlarm/customAudio?format=json ):
added two nodes AudioType (audio file type) and isCover (whether to cover the audio file with
same name).
4. Extended the device capability XML_DeviceCap (related URI: /ISAPI/System/capabilities ):
added two nodes <isSupportAIOpenPlatform> (whether the device supports AI open platform
capabilities) and <isSupportPictureDownloadError> (whether the device supports reporting
picture download failure).
5. Extended Response Codes of Text Protocol :
added five sub status codes to invalid operation: 0x400019C5 (AITargetBPCaptureFail),
0x400019C6 (AITargetBPToDSPFail), 0x400019C7 (AITargetBPDuplicateName), 0x400019D0
(audioFileNameWrong), and 0x400019D1 (audioFileImportFail) ;
added two sub status codes to invalid content: 0x60001135 (AudioFileNameDuplicate) and
0x60001136 (CurrentAudioFileAI RuleInUseAlreadyDelete).
6. Added seven minor operation log types (see Log Types for ISAPI for details), i.e., AITargetBPAdd,
AITargetBPDelete, AITargetBPSearch, AITargetBPUpdate, AIRuleConfigTrigger, AudioFileImport,
and AudioFileDownLoad.

Summary of Changes in Version 2.6_Aug., 2020


Related Product: DS-K1T680DX Series Face Recognition Terminal with Software Version 3.1.2
1. Extended the network capability message XML_NetworkCap (related URI: /ISAPI/System/
Network/capabilities ):
added two nodes <isSupportEZVIZUnbind> (whether it supports unbinding devices from the
Hik-Connect account) and <isSupportEZVIZQRcode> (whether it supports getting the Hik-
Connect QR code).
2. Extended Hik-Connect access parameter message XML_EZVIZ (related URI: /ISAPI/System/
Network/EZVIZ ):

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 .

Summary of Changes in Version 2.6_July, 2020


Related Product: iDS-96064NXI series, iDS-96128NXI series, and iDS-96256NXI series DeepinMind
NVR with software version 4.22.200
1. Extended the capability of digital video channel proxy XML_Cap_StreamingChannel (related
URI: /ISAPI/ContentMgmt/StreamingProxy/channels/<ID>/capabilities ):
added one node <isSupportPictureByUrl> (whether the device supports capture picture in URL
format).
2. Added URIs for capturing the picture in URL format:
Get capability: GET /ISAPI/ContentMgmt/StreamingProxy/channels/<ID>/PictureByUrl/
capabilities?format=json ;
Capture the picture in URL format: POST /ISAPI/ContentMgmt/StreamingProxy/channels/
<ID>/PictureByUrl?format=json .
3. Extended the Hik-Connect access configuration capability XML_Cap_EZVIZ (related URI: /ISAPI/
System/Network/EZVIZ/capabilities ):
added one node <isSupportEZVIZQRCode> (whether the device supports getting the Hik-
Connect QR code).
4. Added the URI for getting Hik-Connect QR code: /ISAPI/System/Network/EZVIZ/QRCode?
format=json .
5. Extended the HDD parameters XML_hdd and HDD list parameters XML_hddList (related URI: /
ISAPI/ContentMgmt/Storage/hdd and /ISAPI/ContentMgmt/Storage/hdd/<ID> ):
added three values to node <status> (HDD status): "synching" (synchronizing), "syncError"
(synchronization exception), and "unloaded".
6. Added the URI for getting the HDD data sync status: GET /ISAPI/ContentMgmt/Storage/hdd/
<ID>/syncStatus?format=json .
7. Extended the device storage capability XML_RacmCap (related URI: /ISAPI/ContentMgmt/
capabilities ):
added one node <isSupportSSDSMARTTest> (whether the device supports SSD S.M.A.R.T
detection).
8. Extended the device capability XML_DeviceCap (related URI: /ISAPI/System/capabilities ):
added three nodes: <isSupportSSDFileSystemUpgrade> (whether the device supports SSD file
system upgrade), <isSupportSSDFileSystemFormat> (whether the device supports SSD file
system formatting), and <isSupportSSDFileSystemCapacity> (whether the device supports
getting space distribution information of SSD file system).
9. Added URIs for SSD management, see SSD Management for details.
10. Added one sub status code 0x400020F3-"NotSupportWithVideoTask" (the function is not
supported) to status code 4 (Invalid Operation) in Response Codes of Text Protocol .
11. Extended the log types Log Types for ISAPI :
added one minor exception log type "ezvizUpgradeException" (Hik-Connect upgrade
exception);

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).

Summary of Changes in Version 2.6_July, 2020


Related Product: CTRL-NEX-001A Control Panel with Software Version 1.0.0
1. Extended wireless dial-up capability message XML_Cap_Dial and wireless dial-up parameter
message XML_Dial (related URIs: /ISAPI/System/Network/WirelessDial/Interfaces/<ID>/dial/
capabilities and /ISAPI/System/Network/WirelessDial/Interfaces/<ID>/dial ):
added four nodes: <ISPName> (ISP name), <IMEINo> (IMEI code), <ICCID> (ICCID code), and
<netType> (network type).
2. Extended condition message of searching for specific resources
XML_VideoPic_CMSearchDescription (related URI: /ISAPI/ContentMgmt/search ):
added a sub node pircamID (pircam search ID) to the node contentTypeList.
3. Extended event linkage notification message XML_EventTriggerNotification (related URI: /
ISAPI/Event/triggers/<ID>/notifications ):
added two linkage actions "siren" (siren linkage) and "output" (relay linkage) to the sub node
EventTriggerNotification of the node EventTriggerNotificationList.
4. Extended alarm linkage capability message XML_EventTriggersCap (related URI: /ISAPI/Event/
triggersCap ):
added two sub nodes to the node DiskfullTriggerCap, i.e., isSupportSiren (whether it supports
siren linkage) and isSupportOutput (whether it supports relay linkage).
5. Extended parameter message of an HDD quota XML_diskQuota (related URI: /ISAPI/
ContentMgmt/Storage/quota/<ID> ):
added a node <reservedTimeCfg> (video saving time).
6. Extended parameter message of a specific SIP server XML_SIPServer (related URI: /ISAPI/
System/Network/SIP/<ID> ):
added four sub nodes to the node <Standard>, i.e., <serverAddressType> (server address type),
<domainName> (domain name), <networkType> (network type), and <calledTargetUserName>
(called user name).
7. Extended configuration capability of all SIP servers XML_SIPServerListCap (related URI: /ISAPI/
System/Network/SIP/capabilities ):
added five sub nodes to the node Standard of SIPServer, i.e., <isSptSIPVoiceTalk> (whether it
supports SIP intercom), <serverAddressType> (server address type), <domainName> (domain
name), <networkType> (network type), and <calledTargetUserName> (called user name).
8. Added URIs of configuring SIP intercom parameters:
Get configuration capability: GET /ISAPI/System/Network/SIP/voiceTalkCtrl/capabilities?
format=json ;
Get or set parameters: GET or PUT /ISAPI/System/Network/SIP/voiceTalkCtrl/<ID>?
format=json .
9. Added 8 sub status codes to status code 4 (Invalid Operation) in Response Codes of Text
Protocol :

9
Intelligent Security API (General) Developer Guide

0x40008038-"overAudioFileNumLimit" (The number of audio files exceeds the limit),


0x40008039-"audioFileNameIsLong" (The audio file name is too long),
0x4000803a-"audioFormatIsWrong" (The audio file format is invalid),
0x4000803b-"audioFileIsLarge" (The size of the audio file exceeds the limit),
0x4000803c-"pircamCapTimeOut" (Capturing of pircam timed out),
0x4000803d-"pircamCapFail" (Capturing of pircam failed), 0x4000803e-"pircamIsCaping" (The
pircam is capturing), and 0x4000803f-"audioFileHasExisted" (The audio file already exists).
10. Extended the log types Log Types for ISAPI :
added 10 alarm log types: "soundIntensityMutation" (Sudden Increase of Sound Intensity
Detection), " soundIntensityMutationStop" (Sudden Increase of Sound Intensity Detection
Ended), "soundIntensitySteepFall" (Sudden Decrease of Sound Intensity Detection),
"soundIntensitySteepFallStop" (Sudden Decrease of Sound Intensity Detection Ended),
"moveAlarm" (Motion Alarm), "moveAlarmRestored" (Motion Alarm Restored),
"lowTemperatureAlarm" (Low Temperature Alarm), "lowTemperatureAlarmRestored" (Low
Temperature Alarm Restored), "highTemperatureAlarm" (High Temperature Alarm), and
"highTemperatureAlarmRestored" (High Temperature Alarm Restored);
added 20 operation log types: "SSHEnabled" (SSH Enabled), "SSHDisabled" (SSH Disabled),
"installationModeEntered" (Installation Mode Enabled), "installationModeExited" (Installation
Mode Disabled), "diagnosisModeConfigured" (Diagnosis Mode Configured), "fileExported" (File
Exported), "audioFileUploaded" (Audio File Uploaded), "audioFileDeleted" (Audio File
Deleted), "PIRCAMCapture" (PIRCAM Captured), "SIPIntercomStarted" (SIP Intercom Started),
"SIPIntercomEnded" (SIP Intercom Ended), "enrollmentModeEntered" (Registration Mode
Enabled), "enrollmentModeExited" (Registration Mode Disabled),
"videoAudioSelfCheckStarted" (Self-Test of Audio and Video Started),
"videoAudioSelfCheckStopped" (Self-Test of Audio and Video Stopped), "cardReaderunlocked"
(Card Reader Unlocked), "cardReaderlocked" (Card Reader Locked),
"videoAudioSelfCheckEnded" (Self-Test of Audio and Video Ended), "previewStart" (Live View
Started), and "previewStop" (Live View Stopped)..

1.2.3 Version 20.04-Version 20.06

Summary of Changes in Version 2.6_July, 2020


Related Products: DS-2CV2, DS-2CD2, and DS-2CD3 Series Network Camera in Software Version
5.5.150
1. Extended the message about the Hik-Connect access configuration capability XML_Cap_EZVIZ
(related URI: /ISAPI/System/Network/EZVIZ/capabilities ):
added two nodes, i.e, <isSupportUpISAPI> (whether the device supports uplink transmitting
ISAPI message) and <isSupportDownISAPI> (whether the device supports downlink transmitting
ISAPI message).
2. Extended the message about the Hik-Connect access configuration parameters XML_EZVIZ
(related URI: /ISAPI/System/Network/EZVIZ ):
added a node <upISAPIStatus> (status of uplink transmitting ISAPI message).

10
Intelligent Security API (General) Developer Guide

Summary of Changes in Version 2.6_July, 2020


Related Product: Decoder with Model DS-6901UDI, DS-6904UDI, DS-6908UDI, DS-6910UDI,
DS-6912UDI, DS-6916UDI in Software Version 2.6.0
1. Extended the message about the capability of exporting files from the device
JSON_FileExportCap (related URI: /ISAPI/System/fileExport/capabilities?format=json ):
added a file type "errorInfo" (error information) to the node "fileType".
2. Extended the message about the configuration parameters of exporting files from the device
JSON_FileExport (related URI: /ISAPI/System/fileExport?format=json ):
added a file type "errorInfo" (error information) to the node "fileType";
added two nodes, i.e., "devType" (device type) and "subSys" (partition No.).

Summary of Changes in Version 2.6_June, 2020


Related Product: DS-PHA20 Series and DS-PHA64 Series Hybrid Security Control Panel with
Software Version 1.2.0
1. Extended configuration capability message of the device information XML_Cap_DeviceInfo
(related URI: /ISAPI/System/deviceInfo/capabilities ):
added a node <isSupportNewVersionDevlanguageSwitch> (whether it supports switching
language by new version of the protocol).
2. Extended configuration capability message of the device language XML_Cap_DeviceLanguage
(related URI: /ISAPI/System/DeviceLanguage/capabilities ):
added a node <upgradeFirmWareEnabled> (whether to upgrade the firmware).

Summary of Changes in Version 2.6_June, 2020


Related Product: Radar PTZ Camera with Model of iDS-2SR8141IXS-AB(40X) in Software Version
5.5.21
Extended the tracking parameters JSON_TrackingRatio and its configuration capability
JSON_TrackingRatioCap (related URIs: /ISAPI/PTZCtrl/channels/<ID>/trackingRatio?format=json
and /ISAPI/PTZCtrl/channels/<ID>/trackingRatio/capabilities?format=json ):
added a node "trackingTakeoverEnabled" (whether to enable tracking takeover).
Summary of Changes in Version 2.6_June, 2020
Related Product: iDS-8104AHQXLI-F4 Series ATM DVR
1. Extended the device storage capability XML_RacmCap (related URI: GET /ISAPI/ContentMgmt/
capabilities ):
added four search conditions to node <pictureSearchType> and <recordSearchType>:
"ATMPanel" (ATM panel mode), "ATMSurround" (ATM environment mode), ATMFace (ATM
human face mode), and "ATMSafetyCabin" (ATM safety cabin mode).
2. Extended the search conditions of video and picture XML_VideoPic_CMSearchDescription
(related URI: /ISAPI/ContentMgmt/search ):

11
Intelligent Security API (General) Developer Guide

added four search conditions to the sub node <metadataDescriptor> of <metadataList>:


"ATMPanel" (ATM panel mode), "ATMSurround" (ATM environment mode), ATMFace (ATM
human face mode), and "ATMSafetyCabin" (ATM safety cabin mode).
3. Extended the log types, see details in Log Types for ISAPI :
added eight minor types to alarm logs: "ATMPanelStart" (ATM panel alarm started),
"ATMPanelStop" (ATM panel alarm ended), "ATMSurroundStart" (ATM surround alarm started),
"ATMSurroundStop" (ATM surround alarm ended), "ATMFaceStart" (ATM face alarm started),
"ATMFaceStop" (ATM face alarm ended), "ATMSafetyCabinStart" (ATM safety cabin alarm
started), and "ATMSafetyCabinStop" (ATM safety cabin alarm ended).

Summary of Changes in Version 2.6_June, 2020


Related Products: NVR with Models of iDS-9632NXI-I8/BA and iDS-6704NXI-I/BA in Software
Version 4.1.73
1. Extended the device storage capability XML_RacmCap (related URI: /ISAPI/ContentMgmt/
capabilities ):
added a value "loitering" (loitering detection) to the nodes <perimeterEventPicSearch>
(perimeter protection events that support picture search) and <pictureSearchType> (picture
search conditions).
2. Added two error codes, i.e., 0x400012C8-"ruleEventTypeDuplicate" and
0x400015C2-"polygonNotAllowCrossing", to Response Codes of Text Protocol .

Summary of Changes in Version 2.6_June, 2020


Related Product: DS-2TD1217B series and DS-2TD2636B series Thermal & Optical Bi-spectrum
Network Camera
1. Extended the channel attributes XML_ChannelInfo (related URI: GET /ISAPI/AUXInfo/
attributes/Channels/<ID> ):
added one sub node <FaceSnapThermometry> (upload the captured face picture with
temperature information) to node <Thermal>.
2. Extended the audible warning configuration capability JSON_AudioAlarmCap (related URI:
GET /ISAPI/Event/triggers/notifications/AudioAlarm/capabilities?format=json ) and audible
warning configurations JSON_AudioAlarm (related URI: /ISAPI/Event/triggers/notifications/
AudioAlarm?format=json ):
added one alarm type "noMaskDetection" (no wearing mask detection) to node alarmType.
3. Extended the device event capability XML_EventCap (related URI: GET /ISAPI/Event/
capabilities ):
added two nodes <isSupportNoMaskDetection> (whether device supports no wearing mask
detection) and <isSupportTMPA> (whether device supports temperature measurement pre-
alarm).

Summary of Changes in Version 2.6_May, 2020


Related Product: iDS-2SK8144IXS-D/J(40X/2812) Smart Linkage PTZ Camera with software version
5.5.40
1. Extended device capability XML_DeviceCap (related URI: GET /ISAPI/System/capabilities ):

12
Intelligent Security API (General) Developer Guide

added five nodes: <isSupportPersonArmingTrack> (whether device supports auto person


arming), <isSupportManualPersonArmingTrack> (whether device supports manual person
arming), <isSupportGPSCalibrationMode> (whether device supports GPS calibration),
<isSupportGPSVerification> (whether device supports GPS verification), and
<isSupportHBDLib> (whether device supports human body picture library).
2. Extended message of event capability supported by a single channel XML_ChannelEventCap
(related URI: GET /ISAPI/Event/channels/<ID>/capabilities ):
added two event types "personArmingTrack" (auto person arming) and
"manualPersonArmingTrack" (manual person arming) to the node <eventType>.
3. Extended the linkage capabilities of different alarm categories XML_EventTriggersCap (related
URI: GET /ISAPI/Event/triggersCap ):
added one node <HBDLibTriggerCap> (alarm linkage configuration capability of human body
picture library).
4. Added two event types "personArmingTrack" (auto person arming) and
"manualPersonArmingTrack" (manual person arming) to Supported Alarm/Event Types .
5. Extended the master-slave tracking capability XML_MasterSlaveTrackingCap (related URI:
GET /ISAPI/MasterSlaveTracking/capabilities ):
added one node <isSupportLinkedTracking> (whether device supports advanced parameters
configuration of linked tracking capture).
6. Added a function of configuring advanced parameters of linked tracking capture.
Get capability: GET /ISAPI/MasterSlaveTracking/linkedTracking/capabilities?format=json ;
Get or set advanced parameters of linked tracking capture: GET or PUT /ISAPI/
MasterSlaveTracking/linkedTracking?format=json .
7. Extended Response Codes of Text Protocol :
added three sub status codes to status code 4 (Invalid Operation):
0x40002092-"HBDLibNumOverLimit" (the number of human body picture libraries reaches the
upper limit), 0x4000209C-pointsOnStraightLine (calibrating failed. The calibration points cannot
be one the same line), and 0x4000209D-TValueLessThanOrEqualZero (calibration failed. The T
value of the calibration points should be larger than 0);
added nine sub status codes to status code 6 (Invalid Message Content):
0x6000008b-"customHBPIDError" (incorrect ID of custom human body picture library),
0x6000008c-"customHBPIDRepeat" (duplicated ID of custom human body picture library),
0x6000008d-"dataVersionsInHBDLibMismatches" (database versions mismatches of human
body picture library), 0x6000008e-"invalidHBPID" (invalid human body picture PID),
0x6000008f-"invalidHBDID" (invalid ID of human body picture library),
0x60000090-"humanLibraryError" (error of human body picture library),
0x60000091-"humanLibraryNumError" (no more human body picture library can be added),
0x60000092-"humanImagesNumError" (no more human body picture can be added), and
0x60000093-"noHumanInThePicture" (modeling failed, no human body in the picture).
8. Extended the capability of exporting device diagnose information
XML_Cap_DiagnosedDataParameter (related URI: /ISAPI/System/diagnosedData/parameter/
capabilities ) and device diagnose information exporting parameters
XML_DiagnosedDataParameter (related URI: /ISAPI/System/diagnosedData/parameter ):

13
Intelligent Security API (General) Developer Guide

added three nodes <HardwareInfo> (whether to enable exporting hardware information),


<SoftwareInfo> (whether to enable exporting software information), and <logInfo> (whether to
enable exporting startup log).
9. Added the URIs for verifying GPS calibration, refer to Configure GPS Calibration Parameters for
details.
10. Extended the device protocol capability XML_Cap_AdminAccessProtocolList (related URI:
GET /ISAPI/Security/adminAccesses/capabilities ) and device supported protocol parameters
XML_AdminAccessProtocol (related URI: /ISAPI/Security/adminAccesses ):
added one protocol "Bonjour" to node <protocol>.
11. Extended the device security capability XML_SecurityCap (related URI: GET /ISAPI/Security/
capabilities ) and XML_IllegalLoginLock (related URI: /ISAPI/Security/illegalLoginLock ):
added one node <maxIllegalLoginLockTime> (lock duration when maximum illegal login
attempts reached the upper limit).
12. Extended the PTZ channel capability XML_PTZChanelCap (related URI: GET /ISAPI/PTZCtrl/
channels/<ID>/capabilities ):
added one nodes <isSupportGyroVerify> (whether device supports gyroscope attitude
calibration).
13. Added URIs for calibrating gyroscope attitude:
Get capability: GET /ISAPI/PTZCtrl/channels/<ID>/gyroVerify/capabilities?format=json
Set gyroscope attitude calibration parameters: PUT /ISAPI/PTZCtrl/channels/<ID>/gyroVerify?
format=json .
14. Extended the intelligent resource switch capability XML_Cap_VCAResource (related URI: GET /
ISAPI/System/Video/inputs/channels/<ID>/VCAResource/capabilities ) and intelligent
resource switch parameters XML_VCAResource (related URI: /ISAPI/System/Video/inputs/
channels/<ID>/VCAResource ):
added one intelligent resource types "personArming" (person arming) to node <type>.

Summary of Changes in Version 2.6_May, 2020


Related Product: TB-4117-3-S Temperature Screening Thermal Camera Module with Software
Version 5.5.2
Added URIs for configuring device USB parameters:
Get USB parameters configuration capability: GET /ISAPI/System/usb/capabilities?format=json ;
Get or set USB parameters: GET or PUT /ISAPI/System/usb?format=json .
Summary of Changes in Version 2.6_April, 2020
Related Product: DS-2DE Series IR Network Speed Dome with software version 5.5.23
Extended the supplement light configuration capability XML_Cap_SupplementLight and
supplement light configuration parameters XML_SupplementLight (related URIs: /ISAPI/Image/
channels/<ID>/supplementLight/capabilities and /ISAPI/Image/channels/<ID>/
supplementLight ):
added two nodes: <irLightbrightnessLimit> (IR light brightness limit) and
<whiteLightbrightnessLimit> (white light brightness limit).

14
Intelligent Security API (General) Developer Guide

1.2.4 Version 20.01-Version 20.03

Summary of Changes in Version 2.6_Mar., 2020


Related Product: iDS-SR8141MXS-A/T2(40×) Radar PTZ Camera with Software Version 5.5.20
1. Extended device capability message XML_DeviceCap (related URI: /ISAPI/System/capabilities ):
added two nodes: <radarIPDForm> (radar form) and <mixedTargetDetectionWebNoDisplay>
(whether to enable not displaying multi-target-type recognition).
2. Extended PTZ control capability message XML_PTZChanelCap (related URI: /ISAPI/PTZCtrl/
channels/<ID>/capabilities ):
added a node <isSupportTrackingRatioCfg> (whether it supports configuring tracking
parameters).
3. Added two URIs of configuring tracking parameters:
Get configuration capability: GET /ISAPI/PTZCtrl/channels/<ID>/trackingRatio/capabilities?
format=json ;
Get or set parameters: GET or PUT /ISAPI/PTZCtrl/channels/<ID>/trackingRatio?format=json .
4. Extended sub status codes in Response Codes of Text Protocol :
added a sub status code to status code 3 (Device Error): 0x30002051-"calibrationTimeout"
(Calibration timed out);
added four sub status codes to status code 4 (Invalid Operation):
0x4000206A-"completeTheLevelCalibrationFirst" (The level calibration is not set),
0x4000206B-"completeTheRadarCameraCalibrationFirst" (The radar-camera calibration is not
set), 0x40002093-"theShieldRegionError" (Saving failed. The shielded area should be the ground
area where the shielded object is located), and 0x40002094-"theDetectionAreaError" (Saving
failed. The detection area should only cover the ground area);
added two sub status codes to status code 6 (Invalid Content):
0x60008016-"uploadImageSizeError" (The size of the uploaded picture is larger than 5 MB) and
0x6000202C-"width/heightRatioOfPictureError" (The width/height ratio of the uploaded picture
should be in the range from 1:2 to 2:1).

Summary of Changes in Version 2.6_Mar., 2020


Related Product: iDS-2CD70 series box camera, iDS-2CD70 series shield, iDS-2CD71 and iDS-2CD75
series dome camera, iDS-2CD7A series bullet camera with software version 5.5.120
1. Added URIs of configuring vibration detection alarm, see Configure Vibration Detection Alarm
for details.
2. Extended device capability message XML_DeviceCap (related URI: /ISAPI/System/capabilities ):
added one node <isSupportVibrationDetection> (whether it supports vibration detection).
3. Extended message about event capability of all channels XML_ChannelEventCapList and
message about event capability of a single channel XML_ChannelEventCap (related URIs: /
ISAPI/Event/channels/capabilities and /ISAPI/Event/channels/<ID>/capabilities ):
added one event type "vibrationDetection" (vibration detection) to the node <eventType>.
4. Extended message about linkage capabilities of different alarm categories
XML_EventTriggersCap (related URI: /ISAPI/Event/triggersCap ):

15
Intelligent Security API (General) Developer Guide

added one node <VibrationDetectionTriggerCap> (alarm linkage capability of vibration


detection).
5. Extended linkage parameter message XML_EventTrigger (related URI: /ISAPI/Event/triggers/
<eventType>-<ID> ):
added one event type "vibrationDetection" (vibration detection) to the node <eventType>.
6. Extended device storage capability message XML_RacmCap (related URI: /ISAPI/ContentMgmt/
capabilities ):
added a type "vibrationDetection" (vibration detection) to the node <pictureSearchType>
(picture search condition) and <recordSearchType> (video search condition).
7. Extended capability message XML_Cap_VCAResource and configuration message
XML_VCAResource about intelligent resources switch (related URIs: /ISAPI/System/Video/
inputs/channels/<ID>/VCAResource/capabilities and /ISAPI/System/Video/inputs/channels/
<ID>/VCAResource ):
added one intelligent resource type "faceCounting" (face counting) to the node <type>.
8. Extended the log types, see details in Log Types for ISAPI :
added two minor types "vibrationDetectionStart" (Vibration Detection Alarm Started) and
"vibrationDetectionStop" (Vibration Detection Alarm Stopped) to Alarm Logs.
9. Extended error codes, see details in Response Codes of Text Protocol :
added one error code 0x40002096-"invalidLaneLine" (Saving failed. Invalid lane line.) to status
code 4 (Invalid Operation).

Summary of Changes in Version 2.6_Feb., 2020


Related Product: Thermal & Optical Bi-spectrum Network Speed Dome; Thermal & Optical Bi-
spectrum Positioning System; Thermal & Optical Bi-spectrum Network Stable PTZ Camera in
Version 5.5.25
Added URIs of configuring laser optical axis:
Get capability: GET /ISAPI/System/laserOpticalAxis/capabilities?format=json ;
Get or set laser optical axis parameters: GET or PUT /ISAPI/System/laserOpticalAxis?format=json ;
Adjust laser optical axis: PUT /ISAPI/System/laserOpticalAxis/goto?format=json .
Summary of Changes in Version 2.6_Feb., 2020
Related Product: DS-K1T804A Series and DS-K1T8003 Series Fingerprint Access Control Terminal
with Software Version 1.3.0; DS-K1A802A Series and DS-K1A8503 Series Fingerprint Time
Attendance Terminal with Software Version 1.3.0
1. Extended configuration capability message XML_Cap_DeviceLanguage and parameter message
XML_DeviceLanguage of device language (related URIs: /ISAPI/System/DeviceLanguage/
capabilities and /ISAPI/System/DeviceLanguage ):
added a language supported by the device "Ukrainian" to the node <language>.
2. Extended Wi-Fi configuration capability message XML_Cap_Wireless and Wi-Fi parameter
message XML_Wireless of a specific network interface (related URIs: /ISAPI/System/Network/
interfaces/<ID>/wireless/capabilities and /ISAPI/System/Network/interfaces/<ID>/wireless ):
added a security mode "WPA/WPA2" to the sub node <securityMode> of the node
<WirelessSecurity>.

16
Intelligent Security API (General) Developer Guide

Summary of Changes in Version 2.6_Jan., 2020


Related Product: iDS-9632NXI-I8/X(B) DeepinMind NVR and iDS-6708NXI-I/8F(B) DeepinMind NVS
with Software Version V4.1.72
1. Extended the log types in Log Types for ISAPI :
added two alarm minor log types: "sleepOnDutyStart" (Sleeping on Duty Alarm Started) and
"sleepOnDutyStop" (Sleeping on Duty Alarm Stopped).
2. Extended message about device storage capability XML_RacmCap (related URI: /ISAPI/
ContentMgmt/capabilities ):
added two nodes <behaviorEventPicSearch> (behavior analysis events supported by picture
search) and <perimeterEventPicSearch> (perimeter events supported by picture search).
added one search condition "playCellphone" (playing mobile phone) to the node
<pictureSearchType>.
added 6 video types "running", "failDown", "violentMotion", "retention", "allPerimeterEvent",
"allBehaviorEvent" to the node <recordSearchType> (video file type to be searched for).
3. Extended message about version information of algorithm library XML_AlgorithmsVersion
(related URI: /ISAPI/System/algorithmsVersion ):
added two algorithm library names "streetBehavior" (street behavior) and "workBehavior"
(work behavior)
to the node <name> of <AlgorithmsVersionInfo>.
4. Extended error codes in Response Codes of Text Protocol :
added sub error codes to status code 4 (Invalid Operation):
0x400012a6-"vehicleEnginesNoResource" (Insufficient vehicle engine resources),
0x400050df-"noDetectionArea" (No detection area),
0x4000128A-"noMorePeopleNumChangeRulesAdded" (Maximum number of people number
changing rules reached), 0x4000128D-"noMoreViolentMotionRulesAdded" (Maximum number
of violent motion rules reached), 0x4000128E-"noMoreLeavePositionRulesAdded" (Maximum
number of leaving position rules reached), 0x400012a9-"noMoreRunningRulesAdded"
(Maximum number of running rules reached), 0x400012aa-"noMoreGroupRulesAdded"
(Maximum number of people gathering rules reached),
0x400012ab-"noMoreFailDownRulesAdded" (Maximum number of people falling down rules
reached), 0x400012ac-"noMorePlayCellphoneRulesAdded" (Maximum number of playing
cellphone rules reached), 0x400015ad-"noMoreRetentionRulesAdded" (Maximum number of
people retention rules reached), 0x400015ae-"noMoreSleepOnDutyRulesAdded" (Maximum
number of sleeping on duty rules reached).
added sub errors to status code 6 (Invalid Message Content):
0x60002023-"noSafetyHelmetRegion" (The hard hat detection area is not configured),
0x60001053-"behaviorAnalysisRuleInfoError" (Behavior analysis rule parameters error),
0x60001054-"safetyHelmetParamError" (Hard hat parameters error),
0x60001077-"OneChannelOnlyCanBindOneEngine" (No more engines can be bound).

17
Intelligent Security API (General) Developer Guide

Summary of Changes in Version 2.6_Jan., 2020


Related Product: DS-K1T341AM, DS-K1T341AMF, DS-K1T642M, DS-K1T642MF, DS-K1T642E, DS-
K1T642EF, DS-K1T642MW, DS-K1T642MFW, DS-K1T642EW, and DS-K1T642EFW Face Recognition
Terminal with Software Version 1.0
1. Added two URIs of getting the algorithm library information:
Get capability: GET /ISAPI/System/algorithmsInfo/capabilities?format=json ;
Get algorithm library information: GET /ISAPI/System/algorithmsInfo?format=json .
2. Extended device capability message XML_DeviceCap (related URI: /ISAPI/System/capabilities ):
added two nodes: <isSupportCertificateCaptureEvent>> (whether it supports certificate
capture and comparison events) and <isSupportAlgorithmsInfo> (whether it supports getting
the algorithm library version information).

18
Intelligent Security API (General) Developer Guide

Chapter 2 ISAPI Description


The design of Intelligent Security API (hereafter referred as to ISAPI) adopts RESTful style, so this
part introduces the predefined resource operation methods, API (URL) format, interaction message
format, time format, namespace, and error processing method.

2.1 Operation Method


The methods to operate resources via ISAPI are same as those of HTTP (Hyper Text Transport
Protocol) and RTSP (Real Time Streaming Protocol).

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 .

Table 2-1 HTTP Operation Method


Method Description
POST Create resources. This method is only available for adding resource that does
not exist before.
GET Retrieve resources. This method cannot change the system status, only return
data as the response to the requester.
PUT Update resources. This method is usually for update the resource that already
exists, but it can also be used to create the resource if the specific resource
does not exist.
DELETE Delete resources.
Table 2-2 RTSP Operation Method
Method Description
OPTIONS Get the supported RTSP operation methods. See the request and response
message format below when interacting between client software and server.
OPTIONS %s RTSP/1.0\r\n //Request URL
CSeq:%u\r\n //Command No.
User-Agent:%s\r\n //Client software name
\r\n

/*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

PAUSE Pause the stream transmission.


TEARDOWN Stop the stream transmission. See the request and response message format
below when interacting between client software and server.
TEARDOWN %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
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

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

2.2 URL Format


URL (Uniform Resource Locator) is a further class of URIs, it can identify a resource and locate the
resource by describing its primary access mechanism.
The format of URL is defined as the follows: <protocol>://<host>[:port][abs_path [?query]].
protocol
Protocol types, i.e., HTTP (version 1.1) and RTSP (version 1.0).
host
Host name, IP address, or the FQDN (Fully Qualified Domain Name) of network devices.
port
Port number of host service for listening the connection status of TCP (Transmission Control
Protocol, see https://tools.ietf.org/html/rfc793 ) or UDP (User Datagram Protocol, see https://
tools.ietf.org/html/rfc768 ). If this field is not configured, the default port number will be
adopted. For HTTP, the default port number is 80, and for RTSP, the default port number is 554.
abs_path
Resource URI: /ServiceName/ResourceType/resource. Here, the ServiceName is ISAPI; the
ResourceType is predefined with upper camel case according to different functions , see details
in the following table; the resource is defined with lower camel case and can be extended in
actual applications. E.g., /ISAPI/System/Network/interfaces.

Predefined URI Model Description


/ISAPI/System/... System related resources
/ISAPI/Security/... Security related resources
/ISAPI/Event... Event/alarm related resources
/ISAPI/Image/... Video encoding and image related resources
/ISAPI/ContentMgmt/ Storage management related resources
...
query

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.

2.3 Message Format


During the ISAPI integration, the request and response messages generated among the interaction
between devices and platform are data in XML format or JSON format.

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

Content-Type: application/xml; charset="UTF-8"



<?xml version="1.0" encoding="UTF-8"?>
<ResponseStatus version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">

</ResponseStatus>

JSON Format Message


• The leaf node (without any sub node) in the message is named by lower camel case, while the
non-leaf node in the message in named by upper camel case.
• To communicate by the messages in JSON format, the devices must support the public
specifications in http://www.ecma-international.org/publications/files/ECMA-ST/
ECMA-404.pdf and HTTP with version 1.1.

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.

If authentication failed, the device will return the XML_ResponseStatus_AuthenticationFailed


message, and the remaining authentication attempts will also be returned. If the remaining
attempts is 0, the user will be locked at the next authentication attempt.

3.2 User Permission


Three user types with different permissions are adopted in the security specifications to control
the access.
Administrator
The account of this user type is called "admin", which has the permissions to access all supported
resources. And it must be activated at any time.
Operator
The account of this user type has the permissions to access common resources and less advanced
resources, see details in the description of each resource.
Viewer
The account of this user type has the permissions to access common resources only, see details in
the description of each resource.

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.

Encryption URI Format


The encryption modes are displayed by adding query parameters, i.e., security and iv, to the URI
(e.g., /ISAPI/xxx?security=1&iv=xxx).

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.

Suggestion About Extension


If there are other existing nodes in the message are regarded as sensitive information, you can
add values to the parameter security in the URI, e.g., security=3 (encrypt added sensitive
information in AES128 CBC mode) and security=4 (encrypt added sensitive information in AES256
CBC mode).

3.3.1 Encrypt Stream


To improve the security of real-time or history stream from devices and comply with the laws and
regulations of some parts of oversea markets, we have provided the stream encryption function
based on AES algorithm to encrypt the stream.

29
Intelligent Security API (General) Developer Guide

Steps

Figure 3-1 Programming Flow of Encrypting Stream

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.

1. Call /ISAPI/System/capabilities or /ISAPI/Streaming/encryption/capabilities?format=json by


GET method to get device capability or encryption capability to check if the device or channel
supports stream encryption.

30
Intelligent Security API (General) Developer Guide

- The node <isSupportEncryption> is not returned in the capability message XML_DeviceCap


or the value of node <enable> in the capability message JSON_EncryptionCap is "false":
perform the steps below.
a. Call /ISAPI/System/Network/capabilities by GET method to get network capability to
check if the device supports encrypting EZVIZ stream.

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.

3.3.2 Encrypt Sensitive Information


Some sensitive information (such as user name, password, and so on) in the messages should be
encrypted to improve security during interaction with devices via ISAPI.

31
Intelligent Security API (General) Developer Guide

Steps

Figure 3-2 Programming Flow of Encrypting Sensitive Information

Note
Values of the following parameters in query parameters, XML messages, and JSON messages are
sensitive information that needs to be encrypted.

Table 3-1 Sensitive Information to be Encrypted


Format Parameters
Query identityKey (identity key, which is the key of the private face picture
library) and secretkey (secret key)
XML <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), <name> (name), <authPasswd> (authentication

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

2) Encode the data to be encrypted by using base64.


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) 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

if (bIrreversible && szSalt.Length > 0)


{
string strIrrPsw = calcSha256(strUserName, szSalt, strPassword);
if (strIrrPsw.Length > 64)
{
strSrcData = strIrrPsw.Substring(0,64);
}
else
{
strSrcData = strIrrPsw;
}
}
else
{
if (strPassword.Length > 64)
{
strSrcData = strPassword.Substring(0,64);
}
else
{
strSrcData = strPassword;
}
}
strSrcData +="AaBbCcDd1234!@#$";
if (iKeyIterateNum <= 0)//Iterations
{
iKeyIterateNum = 100;
}

//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);

if (szByteArray.Length > 32)


{
szOut = new byte[32];
Array.Copy(szByteArray, szOut, 32);
}
else
{
szOut = new byte[szByteArray.Length];
Array.Copy(szByteArray, szOut, szByteArray.Length);
}
}

/// <summary>

36
Intelligent Security API (General) Developer Guide

/// Encrypt 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 getEncryptContent(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);
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

string strAesData = AESEncryption.AesDecrypt(szSrcByteArray, szAESKey, szInitVextorByteArray);


byte[] szOut = Convert.FromBase64String(strAesData);
strOut = Encoding.UTF8.GetString(szOut);
}
}
}

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

3.3.3 Encrypt Stream Based on RTSP/SRTP


Real Time Streaming Protocol (RTSP) is a network control protocol designed in RESTful style for use
in entertainment and communication systems to control streaming media servers, which can be
used for establishing and controlling media sessions between end points. The Secure Real-time
Transport Protocol (SRTP) is a profile of the Real-time Transport Protocol (RTP) which is intended to
provide encryption, message authentication and integrity, and replay attack protection for the RTP
data in both unicast and multicast applications. In this manual, the parameter interaction and
stream transmission control between third-party platforms and Hikvision devices are implemented
by RTSP APIs and messages, and the stream will be encrypted by SRTP for transmission.
The interaction process between third-party platforms and devices based on RTSP and SRTP is
shown as below.

41
Intelligent Security API (General) Developer Guide

Figure 3-3 Interaction Process Based on RTSP and SRTP

42
Intelligent Security API (General) Developer Guide

RTSP Message Syntax


The request and response messages defined by specific syntax are used to transmit the rules,
parameters, and data during the interaction process.

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

Figure 3-4 Authentication Process During RTSP Interaction

44
Intelligent Security API (General) Developer Guide

1. The third-party platform sends request without authentication information by DESCRIBE


method to device.
2. The device sends response with "401" (unauthorized) and supported authentication mode (i.e.,
digest authentication mode and basic authentication mode) to the third-party platform.

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

Figure 3-5 Encryption Process During RTSP Interaction

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 and Playback


Live view helps to remotely get the real-time video or audio of monitoring area and know the
status of human, vehicle, object, and so on. During live view, you can record and store the
remarkable videos for remotely playback.

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 401 Unauthorized


CSeq: 0
WWW-Authenticate: Digest realm="4419b66d2485", nonce="47f172cffa4ce6e6942bbdcfa5931d0f", stale="FALSE"
Date: Tue, Mar 14 2017 10:42:35 GMT

DESCRIBE rtsp://10.17.133.46:554/ISAPI/streaming/channels/101 RTSP/1.0


CSeq:1
Accept:application/sdp
Authorization: Digest username="admin",
realm="4419b66d2485",
nonce="47f172cffa4ce6e6942bbdcfa5931d0f",
uri="rtsp://10.17.133.46:554/ISAPI/streaming/channels/101",
response="da5deb4033515f74ed0483d2da3f7fe0"
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

SETUP rtsp://10.17.133.46:554/ISAPI/streaming/channels/101/trackID=2 RTSP/1.0 //Audio stream data


CSeq:3
Authorization: Digest username="admin", realm="4419b66d2485",
nonce="47f172cffa4ce6e6942bbdcfa5931d0f",
uri="rtsp://10.17.133.46:554/ISAPI/streaming/channels/101",
response="db78bce6e6883ed2a7fb3adbd1631b1d"
Session:846509115;timeout=60
Transport:RTP/AVP/UDP;unicast;client_port=20046-20047;ssrc=0
User-Agent:NKPlayer-1.00.00.081112

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

3.4 Security Service

Management and Configuration

Function Request URI


Get or set advanced GET or PUT /ISAPI/Security/advanced?format=json
parameters of security
management
Get or set security questions in GET or PUT /ISAPI/Security/questionConfiguration
batch
Search for security logs POST /ISAPI/ContentMgmt/security/logSearch
Security Mode Level of Private • Get configuration capability of security mode level of private
Protocol protocol: GET /ISAPI/Security/CommuMode/capabilities?
format=json
• Get parameters of security mode level of private protocol:
GET /ISAPI/Security/CommuMode?format=json
• Set parameters of security mode level of private protocol:
PUT /ISAPI/Security/CommuMode?format=json
Get capability of selecting GET /ISAPI/Security/certificate/select/capabilities?format=json
certificate
Get or set parameters of GET or PUT /ISAPI/Security/certificate/select/<functinName>?
selecting certificate format=json
Get or set certificate type GET or PUT /ISAPI/Security/webCertificate
parameters of web service

53
Intelligent Security API (General) Developer Guide

Network Certificate

Function Request URI


Get CA (Certificate Authority) GET /ISAPI/Security/deviceCertificate/capabilities?format=json
certificate capability
Import network certificate to PUT /ISAPI/Security/deviceCertificate
device
Import CA (Certificate PUT /ISAPI/Security/deviceCertificate?customID=
Authority) certificate to device
Network Certificate Search • Get capability of certificate search: GET /ISAPI/Security/
deviceCertificate/certificates/capabilities?format=json
• Search for certificate information in a batch:GET /ISAPI/
Security/deviceCertificate/certificates?format=json
• Search for information of a specific device certificate: GET /
ISAPI/Security/deviceCertificate/certificates/<customID>?
format=json
Delete network certificate DELETE /ISAPI/Security/deviceCertificate/certificates/<ID> or /
ISAPI/Security/deviceCertificate/certificates/<customID>?
format=json

Authentication Certificate

Function Request URI


Get, generate, or delete GET, PUT , or DELETE /ISAPI/Security/serverCertificate/
certificate signature request certSignReq
Download authentication GET /ISAPI/Security/serverCertificate/downloadCertSignReq
certificate
Get, install, or delete GET, PUT , or DELETE /ISAPI/Security/serverCertificate/
authentication certificate certificate
Export device's self-signed GET /ISAPI/Security/deviceCertificate/selfSignCert
certificate
Authentication Certificate • Get status of one authentication certificate: GET /ISAPI/
Status Search Security/deviceCertificate/certificates/<ID>/status?
format=json
• Get status of all authentication certificates: GET /ISAPI/
Security/deviceCertificate/certificates/status?format=json

54
Intelligent Security API (General) Developer Guide

Function Request URI


Generate one authentication PUT /ISAPI/Security/deviceCertificate/certificates/<ID>/
certificate recreate?format=json
Generate all authentication PUT /ISAPI/Security/deviceCertificate/certificates/recreate?
certificates format=json

Client/Server Certificate

Function Request URI


Get client/server certificate GET /ISAPI/Security/serverCertificate/capabilities?format=json
capability
Generate PKCS#10 signature POST /ISAPI/Security/serverCertificate/certSignReq?customID=
request of client/server
certificate
Get or generate PKCS#10 GET or PUT /ISAPI/Security/serverCertificate/selfSignCert?
signature request of client/ customID=
server self-signed certificate
Get information of multiple GET /ISAPI/Security/serverCertificate/certificates?format=json
client/server certificates in a
batch
Get or delete information of a GET or DELETE /ISAPI/Security/serverCertificate/certificates/
specific client/server certificate <customID>?format=json
Import client/server certificate POST /ISAPI/Security/serverCertificate/certificate?customID=
to device
Export client/server certificate GET /ISAPI/Security/serverCertificate/downloadCertSignReq?
customID=

55
Intelligent Security API (General) Developer Guide

Chapter 4 Login

Function Request URI


Login by digest GET /ISAPI/Security/userCheck
Lock for illegal login GET or PUT /ISAPI/Security/illegalLoginLock
Get or set maximum failed GET or PUT /ISAPI/Security/loginLinkNum?format=json
login attempts

56
Intelligent Security API (General) Developer Guide

Chapter 5 Device Management

5.1 Device Activation

5.1.1 Directly Activate Device


For the connected devices, you must activate them to make sure the device password is
reconfigured and the password string conforms to the security rule.
Steps

Figure 5-1 Direct Activation Sequence Diagram


1. Client software generates public and private key.

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.

5.1.2 Activate Network Camera via NVR


For network devices, except directly activating them, you can also activate them via NVR if they can
be searched on the same network domain of NVR.
Steps
1. Call /ISAPI/ContentMgmt/InputProxy/search by GET method to search for the online network
devices in the same network domain with the NVR.
2. Optional: Call /ISAPI/ContentMgmt/InputProxy/channels/activate/capabilities by GET
method to get the activation capability of network devices for reference.
3. Call /ISAPI/ContentMgmt/InputProxy/channels/activate by PUT method to activate the
searched online devices via NVR.

58
Intelligent Security API (General) Developer Guide

5.2 Reset Password by Setting Recovery Email


A recovery email is added or configured for resetting the password as required. The admin user can
set a recovery email after activating the device, and then receive the verification code from the
manufacturer via the recovery email to reset the device password.
Before You Start
Make sure you have activated the device.
Steps

Figure 5-2 Programming Flow of Resetting Password by Setting Recovery Email

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

The security capability is returned in the message XML_SecurityCap .


If the node <isSupportSecurityEmail> exits in the returned message and its value is "true", it
indicates that setting recovery email is supported by the device, and you can continue to
perform the following steps; otherwise, end this task.
2. Optional: Call /ISAPI/Security/email/parameter/capabilities?format=json by GET method to
get recovery email configuration capability.
The recovery email configuration capability is returned in the message JSON_SecurityEmailCap
by the output parameter pointer (lpOutputParam).
3. Optional: Call /ISAPI/Security/email/parameter?format=json by GET method to get the
existing or configured recovery email parameters for reference.
4. Call /ISAPI/Security/email/parameter?format=json by PUT method to set the recovery email
for the device.
5. Call /ISAPI/Security/email/qrCode?format=json by GET method to get the QR code of the
recovery email.
6. Send the QR code to manufacturer service email address by any other emails for verification.
7. Receive the verification code in the configured recovery email.
8. Call /ISAPI/Security/emailCertification?format=json by PUT method to Enter the received
verification code for resetting the device password.

5.3 Online Upgrade Device


For the devices that can connect to Guarding Vision Server, you can online upgrade their firmware
via Guarding Vision Client, and get the upgrade progress. Besides, in the condition of bad network,
you can also enable automatic download of upgrade package in the background to improve the
upgrade speed.
Before You Start
Make sure you have activated the device.

60
Intelligent Security API (General) Developer Guide

Steps

Figure 5-3 Programming Flow of Online Upgrade Device


1. Call /ISAPI/System/onlineUpgrade/capabilities by GET method to check if the device support
online upgrade.
The online upgrade capability set is returned in XML_OnlineUpgradeCap .
2. Call /ISAPI/System/onlineUpgrade/server by GET method to get the connection status of
online upgrade server.

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

Chapter 6 Device Configuration and Maintenance

6.1 Basic

Device Information Settings

Function Request URI


Get device capability GET /ISAPI/System/deviceInfo/capabilities
Get or set device information GET or PUT /ISAPI/System/deviceInfo

Shut Down, Reboot and Restore to Default Settings

Function Request URI


Shut down device PUT /ISAPI/System/shutdown?format=json
Reboot device PUT /ISAPI/System/reboot
Restore device to default PUT /ISAPI/System/factoryReset?mode=
settings

Upgrade

Function Request URI


Get upgrade capability of GET /ISAPI/System/AcsUpdate/capabilities
peripherals' firmwares
Upgrade device's firmware PUT or POST /ISAPI/System/updateFirmware
Upgrade slave device's PUT or POST /ISAPI/System/updateFirmware?type=&id=
firmware
Upgrade peripheral module's PUT or POST /ISAPI/System/updateFirmware?
firmware type=&moduleAddress=
Get device upgrading status GET /ISAPI/System/upgradeStatus

Configuration File

Function Request URI


Get capability of exporting files GET /ISAPI/System/fileExport/capabilities?format=json
from device
Securely export files from POST /ISAPI/System/fileExport?format=json
device

63
Intelligent Security API (General) Developer Guide

Function Request URI

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

Function Request URI


Get algorithm version GET /ISAPI/System/algorithmsVersion
information of device
Get capability of getting GET /ISAPI/System/algorithmsInfo/capabilities?format=json
algorithm library information
Get algorithm library GET /ISAPI/System/algorithmsInfo?format=json
information

Device Attribute Code

Function Request URI


Get device attribute code GET /ISAPI/System/deviceInfo/characteristicCode?format=json

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.

6.1.1 Securely Export and Import Configuration Files


You can export configuration files of devices to back up basic device parameters (such as network
parameters, stream parameters, etc.) timely, and the configuration files will be encrypted with the
encryption key when being exported. If several devices adopt the same configuration, you can
import configuration files to configure multiple devices in a batch. The devices will decrypt the
encrypted configuration file using the encryption key which ensures that the configuration file
cannot be used by unauthorized devices.

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

If this function is supported by the device, the node <isSupportConfigFileImport> will be


returned and its value is "true", then you can perform the following steps.
Otherwise, please end this task.
4. Call /ISAPI/System/configurationData?secretkey= by PUT method to import the configuration
file to 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 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

Serial Port Log Redirection

Function Request URI


Get configuration capability of GET /ISAPI/System/serialLogCfg/capabilities?format=json
serial port log redirection
Get or set parameters of serial GET or PUT /ISAPI/System/serialLogCfg?format=json
port log redirection
Note
To check whether the device supports configuring serial port log
redirection, you can call /ISAPI/System/capabilities by GET
method to get the device capability ( XML_DeviceCap ). If it
supports, the node <isSptSerialLogCfg> will be returned and its
value is "true".

Log Settings

Function Request URI


Get log configuration capability GET /ISAPI/ContentMgmt/logConfig/capabilities
Get or set log parameters GET or PUT /ISAPI/ContentMgmt/logConfig

6.3 Status

66
Intelligent Security API (General) Developer Guide

Device Status

Function Request URI


Get device status capability GET /ISAPI/System/workingstatus/capabilities?format=json
Get all statuses of device GET /ISAPI/System/workingstatus?format=json

Channel Status

Function Request URI


Get status(es) of all channels or GET or POST /ISAPI/System/workingstatus/chanStatus?
one channel format=json
Get statuses of all channels by POST /ISAPI/System/Video/inputs/channels?format=json
condition
Get status of one channel by POST /ISAPI/System/Video/inputs/channels/<ID>?format=json
condition

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

Function Request URI


Get status(es) of all HDDs or GET or POST /ISAPI/System/workingstatus/hdStatus?
one HDD format=json
Get triggered I/O status GET /ISAPI/System/workingstatus/IOStatus?format=json
Get CPU and memory status GET /ISAPI/System/status
Upload status changes Refer to Subscribe Alarm/Event in Arming Mode for integration
process of uploading device status changes, and the node
<type> in the request message XML_SubscribeEvent for the
URIs (POST /ISAPI/Event/notification/subscribeEvent and PUT /
ISAPI/Event/notification/subscribeEvent/<ID> ) should be set to
"statusChanged".

The changes details can be obtained by calling /ISAPI/Event/notification/alertStream via GET


method.

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

Accelerometer Zero Bias Calibration

Function Request URI


Get device capability to GET /ISAPI/System/capabilities ; the device capability is returned in
check if device supports the message XML_DeviceCap .
accelerometer zero bias If supports, the node <isSupportZeroBiasCalibration> is returned in
calibration the message XML_DeviceCap and its value is "true".
Calibrate accelerometer PUT /ISAPI/System/zeroBiasCalibration/channels/<ID>?
zero bias format=json

Installation Angle Calibration

Function Request URI


Get the device capability GET /ISAPI/System/capabilities ; the device capability is returned in
to check if device supports the message XML_DeviceCap .
installation angle If supports, the node <isSupportInstallationAngleCalibration> is
calibration returned in the message XML_DeviceCap and its value is "true".
Get capability of GET /ISAPI/System/installationAngleCalibration/channels/<ID>/
installation angle capabilities?format=json
calibration
Get installation angle GET or PUT /ISAPI/System/installationAngleCalibration/channels/
calibration status or <ID>?format=json
calibrate installation angle

68
Intelligent Security API (General) Developer Guide

Laser Optical Axis

Function Request URI


Get configuration GET /ISAPI/System/laserOpticalAxis/capabilities?format=json
capability of laser optical
axis
Get or set laser optical axis GET or PUT /ISAPI/System/laserOpticalAxis?format=json
parameters
Adjust laser optical axis PUT /ISAPI/System/laserOpticalAxis/goto?format=json

6.5 Auto Power On or Off

Function Request URI


Get capability of auto power on GET /ISAPI/System/autoSwitch/capabilities?format=json
or off
Get or set parameters of auto GET or PUT /ISAPI/System/autoSwitch?format=json
power on or off

6.6 Advanced

Automatic Maintenance

Function Request URI


Get configuration capability of GET /ISAPI/System/autoMaintenance/capabilities?format=json
automatic maintenance
Get or set parameters of GET or PUT /ISAPI/System/autoMaintenance?format=json
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

Function Request URI


Get device diagnosis capability GET /ISAPI/System/diagnosis/capabilities?format=json
Diagnose device POST /ISAPI/System/diagnosis?format=json

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.

Export Diagnose Information

Function Request URI


Get capability of exporting GET /ISAPI/System/diagnosedData/parameter/capabilities
device diagnose information
Get or set parameters of GET or PUT /ISAPI/System/diagnosedData/parameter
exporting device diagnose
information

Diagnostic Server

Function Request URI


Get diagnostic server capability GET /ISAPI/System/diagnosedData/server/capabilities?
format=json
Get or set diagnostic server GET or PUT /ISAPI/System/diagnosedData/server?format=json
parameters
Test diagnostic server POST /ISAPI/System/diagnosedData/server/test?format=json

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

Function Request URI


Get device anti-​theft GET /ISAPI/System/guardAgainstTheft/capabilities
configuration capability
Get or set device anti-​theft GET or PUT /ISAPI/System/guardAgainstTheft
parameters

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

Function Request URI


Get the configuration capability GET /ISAPI/System/discoveryMode/capabilities
of device discovery mode
Get or set the device discovery GET or PUT /ISAPI/System/discoveryMode
mode

71
Intelligent Security API (General) Developer Guide

Chapter 7 User Management


You can add, edit, and delete users to manage for logging in to the device via ISAPI protocol. And
you can also assign permission to users according to actual needs.

7.1 Manage Users

Function Request URI


Get the configuration capability GET /ISAPI/Security/users/<ID>/capabilities
of a specific user
Add one user GET /ISAPI/Security/users
Get, edit, or delete all users GET, PUT, or DELETE /ISAPI/Security/users
Get, edit, or delete one user GET, PUT, or DELETE /ISAPI/Security/users/<ID>
Get information of online users GET /ISAPI/Security/onlineUser

Note
The function of managing users cannot be integrated via EZVIZ Open Platform.

7.2 User Permission

Function Request URI


Get configuration capability of GET /ISAPI/Security/UserPermission/capabilities
all users' permissions
Get guest's permission GET /ISAPI/Security/UserPermission/viewerCap
capability
Get operator's permission GET /ISAPI/Security/UserPermission/operatorCap
capability
Get administrator's permission GET /ISAPI/Security/UserPermission/adminCap
capability
Get User Permission • Get permissions of all users: GET /ISAPI/Security/
UserPermission
• Get permission of one user: GET /ISAPI/Security/
UserPermission/<ID>

72
Intelligent Security API (General) Developer Guide

Function Request URI


• Get local permission of one user: GET /ISAPI/Security/
UserPermission/<ID>/localPermission
• Get remote permission of one user: GET /ISAPI/Security/
UserPermission/<ID>/remotePermission
• Get permission of anonymous user: GET /ISAPI/Security/
UserPermission/anonymouslogin
Assign Permission • Assign permission to all users: PUT /ISAPI/Security/
UserPermission
• Assign permission to one user: PUT /ISAPI/Security/
UserPermission/<ID>
• Assign local permission to one user: PUT /ISAPI/Security/
UserPermission/<ID>/localPermission
• Assign remote permission to one user: PUT /ISAPI/Security/
UserPermission/<ID>/remotePermission
• Assign permission to anonymous user: PUT /ISAPI/Security/
UserPermission/anonymouslogin

7.3 Lock and Unlock User

Function Request URI


Get configuration capability of GET /ISAPI/System/userLock/config/capabilities?format=json .
user locking and unlocking
Get information of all locked GET /ISAPI/System/userLock/lockedUsers?format=json
users
Get user locking parameter GET /ISAPI/System/userLock/config?format=json
Lock user PUT /ISAPI/System/userLock/config?format=json
Unlock user PUT /ISAPI/System/userLock/unlockUser?format=json

7.4 Configure Double Verification


Double verification helps to protect the critical video files of NVR/DVR by limiting playback and
download. The basic concept is that two users should always be required to start playback and
download. For example, when a normal user A (operator or guest) wants to play back the video of
a channel which requires double verification, he/she should ask a double verification user to enter
the correct user name and password for double verification.

73
Intelligent Security API (General) Developer Guide

Before You Start


Make sure you have logged in to the device.

74
Intelligent Security API (General) Developer Guide

Steps

Figure 7-1 Programming Flow of Configuring Double Verification

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

Chapter 8 Video and Audio


This part provides the request URIs to implement the video and audio related functions, such as
video search, live view, playback, two-way audio, control video in live view (e.g., focus and iris
adjustment), and so on.

8.1 Search for Recording Start and End Time by Channel


You can check whether the channel has recorded videos and get the recording start and end time.
Steps

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.

8.2 Live View and Playback


Live view helps to remotely get the real-time video or audio of monitoring area and know the
status of human, vehicle, object, and so on. During live view, you can record and store the
remarkable videos for remotely playback.

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

Function Request URI


Start or stop playback PLAY or TEARDOW rtsp://<host>[:port]/ISAPI/Streaming/
tracks/<ID>?starttime=&endtime=
Refresh video index before PUT /ISAPI/ContentMgmt/record/control/manualRefresh/
playback for instant playback channels/<ID>

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 401 Unauthorized


CSeq: 0
WWW-Authenticate: Digest realm="4419b66d2485", nonce="47f172cffa4ce6e6942bbdcfa5931d0f", stale="FALSE"
Date: Tue, Mar 14 2017 10:42:35 GMT

DESCRIBE rtsp://10.17.133.46:554/ISAPI/streaming/channels/101 RTSP/1.0


CSeq:1
Accept:application/sdp
Authorization: Digest username="admin",
realm="4419b66d2485",
nonce="47f172cffa4ce6e6942bbdcfa5931d0f",
uri="rtsp://10.17.133.46:554/ISAPI/streaming/channels/101",
response="da5deb4033515f74ed0483d2da3f7fe0"
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

SETUP rtsp://10.17.133.46:554/ISAPI/streaming/channels/101/trackID=2 RTSP/1.0


CSeq:3
Authorization: Digest username="admin", realm="4419b66d2485",
nonce="47f172cffa4ce6e6942bbdcfa5931d0f",
uri="rtsp://10.17.133.46:554/ISAPI/streaming/channels/101",
response="db78bce6e6883ed2a7fb3adbd1631b1d"
Session:846509115;timeout=60
Transport:RTP/AVP/UDP;unicast;client_port=20046-20047;ssrc=0
User-Agent:NKPlayer-1.00.00.081112

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

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"

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

Stop Live View


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
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

RTSP/1.0 401 Unauthorized


CSeq: 0
WWW-Authenticate: Digest realm="4419b66d2485",
nonce="a0ecd9b1586ff9461f02f910035d0486",
stale="FALSE"
Date: Tue, Mar 14 2017 10:57:23 GMT

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

Date: Tue, Mar 14 2017 10:57:23 GMT

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

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:4.000
User-Agent:NKPlayer-1.00.00.081112

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

8.3 Start Two-Way Audio


Two-way audio function enables the voice talk of the camera. You can get not only the live video
but also the real-time audio from the camera. If the device has multiple two-way audio channels,
you can select the channel to start two-way audio.

86
Intelligent Security API (General) Developer Guide

Steps

Figure 8-2 Programming Flow of Starting Two-Way Audio


1. Optional: Call /ISAPI/System/TwoWayAudio/channels by GET method to get parameters,
including channel No., encoding mode, and so on, of all two-way audio channels.

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.

8.4 Stream Encoding


The following request URIs are used for configuring encoding parameters of video and audio
stream by one channel or multiple channels.

87
Intelligent Security API (General) Developer Guide

Encode Stream of Multiple Channels

Function Request URI


Get or set encoding parameters GET or PUT /ISAPI/Streaming/channels
of multiple channels
Get encoding status of multiple GET /ISAPI/Streaming/status
channels

Encode Stream of One Channel

Function Request URI


Get encoding capability of one GET /ISAPI/Streaming/channels/<ID>/capabilities
channel
Get dynamic encoding GET /ISAPI/Streaming/channels/<ID>/dynamicCap .
capability of one channel
Get or set encoding parameters GET or PUT /ISAPI/Streaming/channels/<ID>
of one channel
Get encoding status of one GET /ISAPI/Streaming/channels/<ID>/status
channel

88
Intelligent Security API (General) Developer Guide

Chapter 9 Capture and Recording


For some remarkable views in the live view, you can manually capture the views or record the
video segments and save the captured pictures or videos to the configured storage. For recording,
you can also configure recording schedule to record videos continuously or based on command or
event.

Capture

Function Request URI


Capture picture (available for GET /ISAPI/Streaming/channels/<ID>/picture
front-end devices)
Capture picture (available for GET /ISAPI/ContentMgmt/StreamingProxy/channels/<ID>/
rear-end devices) Picture
Get configuration capability of GET /ISAPI/Snapshot/channels/<ID>/capabilities
capturing pictures by schedule
Get or set parameters of GET or PUT /ISAPI/Snapshot/channels
multiple channels for capturing
pictures by schedule
Get or set parameters of a GET or PUT /ISAPI/Snapshot/channels/<ID>
specific channel for capturing
pictures by schedule
Get capability of digital video GET /ISAPI/ContentMgmt/StreamingProxy/channels/<ID>/
channel proxy capabilities
Get capability of capturing GET /ISAPI/ContentMgmt/StreamingProxy/channels/<ID>/
picture in URL format PictureByUrl/capabilities?format=json
Capture picture in URL format POST /ISAPI/ContentMgmt/StreamingProxy/channels/<ID>/
PictureByUrl?format=json

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

Function Request URI

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 ).

Table 9-2 Recording Schedule


Function Request URI
Get configuration capability of GET /ISAPI/ContentMgmt/record/tracks/<ID>/capabilities
a recording schedule
Get all recording schedules GET /ISAPI/ContentMgmt/record/tracks
Add a recording schedule POST /ISAPI/ContentMgmt/record/tracks
Set a recording schedule PUT /ISAPI/ContentMgmt/record/tracks/<ID>
Table 9-3 Manual Recording
Function Request URI
Start manual recording POST /ISAPI/ContentMgmt/record/control/manual/start/
tracks/<ID>
Stop manual recording POST /ISAPI/ContentMgmt/record/control/manual/stop/
tracks/<ID>

90
Intelligent Security API (General) Developer Guide

Chapter 10 PTZ Control


PTZ control is to implement the panning, tilting, zoom functions of cameras, set presets for specific
monitoring areas to fast switch the cameras as needed, and group the user-defined presets as a
scanning track for patrol.

10.1 Configure Basic PTZ Parameters

Function Request URI


Get PTZ control capability GET /ISAPI/PTZCtrl/channels/<ID>/capabilities
Get or set zoom/focus GET or PUT /ISAPI/PTZCtrl/channels/<ID>/zoomFocus
coordinate parameters
Maximum Tilt Angle • Get configuration capability of maximum tilt angle: GET /
ISAPI/PTZCtrl/channels/<ID>/maxelevation/capabilities
• Get or set parameters of maximum tilt angle: GET or PUT /
ISAPI/PTZCtrl/channels/<ID>/maxelevation
Get PTZ position information of GET /ISAPI/PTZCtrl/channels/<ID>/save
current channel
Set PTZ position information of PUT /ISAPI/PTZCtrl/channels/<ID>/save?format=json
current channel
Get PTZ status of a specific GET /ISAPI/PTZCtrl/channels/<ID>/status
channel
Preset Configuration • Get all presets' parameters: GET /ISAPI/PTZCtrl/channels/
<ID>/presets
• Set all presets' parameters: PUT /ISAPI/PTZCtrl/channels/
<ID>/presets
• Added a preset: POST /ISAPI/PTZCtrl/channels/<ID>/presets
• Delete all presets: DELETE /ISAPI/PTZCtrl/channels/<ID>/
presets
• Get a preset's parameters: GET /ISAPI/PTZCtrl/channels/
<ID>/presets/<ID>
• Set a preset's parameters: PUT /ISAPI/PTZCtrl/channels/
<ID>/presets/<ID>
• Delete a preset: DELETE /ISAPI/PTZCtrl/channels/<ID>/
presets/<ID>
Get parking configuration GET /ISAPI/PTZCtrl/channels/<ID>/parkaction/capabilities
capability

91
Intelligent Security API (General) Developer Guide

Function Request URI


Get or set parking parameters GET or PUT /ISAPI/PTZCtrl/channels/<ID>/parkaction
Control 3D positioning PUT /ISAPI/PTZCtrl/Channels/<ID>/position3D

10.2 Configure Other PTZ Parameters

Function Request URI


Lens • Initialize lens: PUT /ISAPI/PTZCtrl/channels/<ID>/
onepushfoucs/reset
• Get lens correction capability: GET /ISAPI/PTZCtrl/channels/
<ID>/lensCorrection/capabilities?format=json
• Get or set lens correction parameters: GET or PUT /ISAPI/
PTZCtrl/channels/<ID>/lensCorrection?format=json

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.

Get or set PTZ locking time GET or PUT /ISAPI/PTZCtrl/channels/<ID>/lockPTZ


duration
Note
You can call the GET /ISAPI/PTZCtrl/channels/<ID>/capabilities
to get the supported locking time duration (<lockTime>) from
the PTZ control capability ( XML_PTZChanelCap ).

Get or set PTZ OSD parameters GET or PUT /ISAPI/PTZCtrl/channels/<ID>/PTZOSDDisplay


Get or set moving object GET or PUT /ISAPI/PTZCtrl/channels/<ID>/moveAutoTracking?
tracking status format=json
Get configuration capability of GET /ISAPI/PTZCtrl/channels/<ID>/trackingRatio/capabilities?
tracking parameters format=json
Get or set tracking parameters GET or PUT /ISAPI/PTZCtrl/channels/<ID>/trackingRatio?
format=json

92
Intelligent Security API (General) Developer Guide

10.3 Configure PTZ Auxiliary Status

Function Request URI


Get or set all PTZ auxiliaries GET or PUT /ISAPI/PTZCtrl/channels/<ID>/auxcontrols
status
Get or set the status of single GET or PUT /ISAPI/PTZCtrl/channels/<ID>/auxcontrols/<ID>
PTZ auxiliary

10.4 Configure E-PTZ Parameters

Function Request URI


Get or set e-PTZ parameters GET or PUT /ISAPI/Image/channels/<ID>/EPTZ
Get capability of switching e- GET /ISAPI/Image/channels/<ID>/EPTZ/mode/capabilities?
PTZ mode format=json
Get or set parameters of GET or PUT /ISAPI/Image/channels/<ID>/EPTZ/mode?
switching e-PTZ mode format=json

10.5 Configure Gyroscope Calibration Parameters

Function Request URI


Get gyroscope attitude GET /ISAPI/PTZCtrl/channels/<ID>/gyroVerify/capabilities?
calibration format=json
Set gyroscope attitude PUT /ISAPI/PTZCtrl/channels/<ID>/gyroVerify?format=json
calibration parameters

10.6 Configure GPS Calibration Parameters

Function Request URI


Get capability of verifying GPS GET /ISAPI/System/GPSVerification/channels/<ID>/points/
calibration capabilities?format=json
Get GPS calibration GET /ISAPI/System/GPSCalibratation/channels/<ID>/
configuration capability capabilities?format=json

93
Intelligent Security API (General) Developer Guide

Function Request URI


Configure a single GPS • Get parameters of a single GPS calibration point:
calibration point. GET /ISAPI/System/GPSCalibratation/channels/<ID>/points/
<PID>?format=json
• Set a single GPS calibration point:
PUT /ISAPI/System/GPSCalibratation/channels/<ID>/points/
<PID>?format=json
• Delete a single GPS calibration point:
DELETE /ISAPI/System/GPSCalibratation/channels/<ID>/
points/<PID>?format=json
Configure multiple GPS • Get parameters of multiple GPS calibration points in a batch:
calibration points GET /ISAPI/System/GPSCalibratation/channels/<ID>/points?
format=json
• Set multiple GPS calibration points in a batch:
PUT /ISAPI/System/GPSCalibratation/channels/<ID>/points?
format=json
• Delete multiple GPS calibration points in a batch
DELETE /ISAPI/System/GPSCalibratation/channels/<ID>/
points?format=json
Enable GPS calibration PUT /ISAPI/System/GPSPTZCalibratation/channels/<ID>/
calibratation?format=json
Get capability of verifying GPS GET /ISAPI/System/GPSVerification/channels/<ID>/points/
calibration capabilities?format=json
Configure multiple verification • Add a verification points:
points POST /ISAPI/System/GPSVerification/channels/<ID>/points?
format=json
• Get information of multiple verification points:
GET /ISAPI/System/GPSVerification/channels/<ID>/points?
format=json
• Set multiple verification points:
PUT /ISAPI/System/GPSVerification/channels/<ID>/points?
format=json
• Delete multiple verification points:
DELETE /ISAPI/System/GPSVerification/channels/<ID>/
points?format=json
Configure one specified • Get information of one specified verification point:
verification point GET /ISAPI/System/GPSVerification/channels/<ID>/points/
<ID>?format=json
• Set information of one specified verification point:

94
Intelligent Security API (General) Developer Guide

Function Request URI


PUT /ISAPI/System/GPSVerification/channels/<ID>/points/
<ID>?format=json
• Delete one specified verification point:
DELETE /ISAPI/System/GPSVerification/channels/<ID>/
points/<ID>?format=json
Get GPS calibration verification GET /ISAPI/System/GPSVerification/channels/<ID>/points/
results in a batch resultInfo?format=json
Get or set parameters of GET or PUT /ISAPI/System/GPSVerification/channels/<ID>/
displaying GPS calibration display?format=json
verification result

10.7 Control PTZ via Digital Channel

Function Request URI


Get PTZ control capability of GET /ISAPI/ContentMgmt/PTZCtrlProxy/capabilities
digital channels
Get PTZ control capability of a GET /ISAPI/ContentMgmt/PTZCtrlProxy/channels/<ID>/
digital channel capabilities
Get or set parameters of all GET or PUT /ISAPI/ContentMgmt/PTZCtrlProxy/channels
digital PTZ channels
Get or set parameters of a GET or PUT /ISAPI/ContentMgmt/PTZCtrlProxy/channels/<ID>
digital PTZ channel
Perform scheduled PTZ control PUT /ISAPI/ContentMgmt/PTZCtrlProxy/channels/<ID>/
via a digital channel momentary
Perform 3D positioning of a PUT /ISAPI/ContentMgmt/PTZCtrlProxy/channels/<ID>/
digital PTZ channel position3D
Manually control PTZ via a PUT /ISAPI/ContentMgmt/PTZCtrlProxy/channels/<ID>/
digital channel continuous
Control fan of a digital PTZ PUT /ISAPI/ContentMgmt/PTZCtrlProxy/channels/<ID>/
channel autoPan
Perform one-touch focus via a PUT /ISAPI/ContentMgmt/PTZCtrlProxy/channels/<ID>/
digital PTZ channel onepushfoucs/start
Get, set, or delete all presets of GET, PUT, or DELETE /ISAPI/ContentMgmt/PTZCtrlProxy/
a digital PTZ channel channels/<ID>/presets

95
Intelligent Security API (General) Developer Guide

Function Request URI


Add a preset via a digital PTZ POST /ISAPI/ContentMgmt/PTZCtrlProxy/channels/<ID>/
channel presets
Get, set, or delete a preset of a GET, PUT, or DELETE /ISAPI/ContentMgmt/PTZCtrlProxy/
digital PTZ channel channels/<ID>/presets/<ID>
Call a preset via a digital PTZ PUT /ISAPI/ContentMgmt/PTZCtrlProxy/channels/<ID>/
channel presets/<ID>/goto
Get, set, or delete all patrols of GET, PUT, or DELETE /ISAPI/ContentMgmt/PTZCtrlProxy/
a digital PTZ channel channels/<ID>/patrols
Add a patrol via a digital PTZ POST /ISAPI/ContentMgmt/PTZCtrlProxy/channels/<ID>/
channel patrols
Get, set, or delete a patrol of a GET, PUT, or DELETE /ISAPI/ContentMgmt/PTZCtrlProxy/
digital PTZ channel channels/<ID>/patrols/<ID>
Get a patrol's status of a digital GET /ISAPI/ContentMgmt/PTZCtrlProxy/channels/<ID>/
PTZ channel patrols/<ID>/status
Start calling a patrol of a digital PUT /ISAPI/ContentMgmt/PTZCtrlProxy/channels/<ID>/
PTZ channel patrols/<ID>/start
Stop calling a patrol of a digital PUT /ISAPI/ContentMgmt/PTZCtrlProxy/channels/<ID>/
PTZ channel patrols/<ID>/stop
Pause calling a patrol of a PUT /ISAPI/ContentMgmt/PTZCtrlProxy/channels/<ID>/
digital PTZ channel patrols/<ID>/pause

10.8 Configure Master-Slave Tracking


The master-slave tracking system is formed by one fixed camera and one PTZ camera. The PTZ
camera smartly tracks multiple moving targets, and the fixed camera offers the panoramic view.
The master-slave tracking system provides detection and tracking of moving targets, and multiple
targets can be tracked simultaneously. The system mainly applies to major industrial
infrastructures requiring perimeter prevention, such as airport, prison, railway, museum,
enterprise, high-end villas, etc.

96
Intelligent Security API (General) Developer Guide

Steps

Figure 10-1 API Calling Flow of Configuring Master-Slave Tracking


1. Call /ISAPI/MasterSlaveTracking/capabilities by GET method to get the master-slave tracking
capability to know the supported configurations.
2. Call /ISAPI/MasterSlaveTracking/channels/<ID>/slaveCamera/capabilities by GET method to
get the configuration capability of basic parameters for the PTZ camera to know the basic
parameters that can be configured.
3. Call /ISAPI/MasterSlaveTracking/channels/<ID>/slaveCamera/<ID> by PUT method to set the
basic configuration parameters for the PTZ camera.
4. Optional: Call /ISAPI/MasterSlaveTracking/channels/<ID>/slaveCameraStatus by GET method
to get the connection status of the PTZ camera.
5. Optional: Call /ISAPI/MasterSlaveTracking/channels/<ID>/slaveCamera/<ID>/trackingRatio
by PUT method to set the tracking zoom ratio for the PTZ camera.
6. Call /ISAPI/MasterSlaveTracking/channels/<ID>/tracking/capabilities by GET method to get
the tracking configuration capability of the PTZ camera to know the tracking parameters that
can be configured.
7. Call /ISAPI/MasterSlaveTracking/channels/<ID>/slaveCamera/<ID>/tracking by PUT method
to set the tracking configuration parameters for the PTZ camera.

97
Intelligent Security API (General) Developer Guide

10.9 Configure Panorama Tracking


Tracking Takeover and Linked Tracking Capture are two mutually exclusive modes for panorama
tracking.

Linked Tracking Capture Parameters

Function Request URI


Get capability of linked tracking GET /ISAPI/MasterSlaveTracking/linkedTracking/capabilities?
capture configuration format=json
Get or set linked tracking GET or PUT /ISAPI/MasterSlaveTracking/linkedTracking?
capture parameters format=json

98
Intelligent Security API (General) Developer Guide

Chapter 11 Storage Management

11.1 Configure Log Storage Mode


You can save the log files in default mode or custom mode. In the default mode, each HDD can
save up to 64 MB log files, and the storage space will automatically be overwritten when the space
usage reaches 64 MB. In the custom mode, it is available to specify HDDs to save log files.
Steps

Figure 11-1 Programming Flow of Configuring Log Storage Mode


1. Optional: Call /ISAPI/ContentMgmt/Storage/extension/capabilities by GET method to get the
capability of log storage strategy for reference.
The capability is returned in the message XML_Cap_storageExtension .
2. Call /ISAPI/ContentMgmt/Storage/extension by PUT method, and set the node
<logStorageMode> as "system" (system default mode) or "custom" (custom mode) in the
message XML_storageExtension .

99
Intelligent Security API (General) Developer Guide

3. Optional: Call /ISAPI/ContentMgmt/Storage/hdd/capabilities by GET method to get the HDD


management capability.
The capability is returned in the message XML_Cap_hddList .
4. Optional: Call /ISAPI/ContentMgmt/Storage/hdd by GET method to get configuration
parameters of all HDDs.
The parameters are returned in the message XML_hddList .
5. Call /ISAPI/ContentMgmt/Storage/hdd/<ID>/logProTest?format=json by PUT method to
configure preverification for log HDDs

11.2 HDD Management


The HDD (Hard Disk Drive) is used for storage. Before storing information in HDD, you must format
it, and you can also reallocate its space for better storage management.

HDD Configuration

Function Request URI


Get HDD management GET / /ISAPI/ContentMgmt/Storage/hdd/capabilities
capability
Get parameters of all HDDs GET /ISAPI/ContentMgmt/Storage/hdd
Get or set parameters of one GET or PUT /ISAPI/ContentMgmt/Storage/hdd/<ID>
HDD
Get parameters of all HDD GET /ISAPI/ContentMgmt/Storage/quota
quotas
Get parameters of an HDD GET /ISAPI/ContentMgmt/Storage/quota/<ID>
quota
Set parameters of an HDD PUT /ISAPI/ContentMgmt/Storage/quota/<ID>
quota
Verify HDD encryption PUT /ISAPI/ContentMgmt/Storage/hdd/<ID>/encryptVerfy?
password format=json

HDD Formatting

Function Request URI


Format all HDDs PUT /ISAPI/ContentMgmt/Storage/hdd/format
Specify formatting type to PUT /ISAPI/ContentMgmt/Storage/hdd/<ID>/format?
format one HDD formatType=

100
Intelligent Security API (General) Developer Guide

Function Request URI


Format multiple specified HDDs PUT /ISAPI/ContentMgmt/Storage/hdd/specifyHddFormat?
format=json
Format an encrypted HDD PUT /ISAPI/ContentMgmt/Storage/hdd/<ID>/encryptFormat?
format=json
Get formatting status of one GET /ISAPI/ContentMgmt/Storage/hdd/<ID>/formatStatus
HDD

HDD Clearing

Function Request URI


Get HDD clearing capability GET /ISAPI/ContentMgmt/storage/hdd/clearingSpace/
capabilities?format=json
Get or set HDD clearing GET or PUT /ISAPI/ContentMgmt/storage/hdd/clearingSpace?
parameters format=json

HDD Checking

Function Request URI


Get or set parameters for GET or PUT /ISAPI/ContentMgmt/Storage/hdd/SMARTTest/
checking HDD status config
Start checking HDD status PUT /ISAPI/ContentMgmt/Storage/hdd/<ID>/SMARTTest/start
Get HDD checking status GET /ISAPI/ContentMgmt/Storage/hdd/<ID>/SMARTTest/
status
Start checking bad sectors of a PUT /ISAPI/ContentMgmt/Storage/hdd/<ID>/BadSectorsTest/
HDD start
Get bad sector checking status GET /ISAPI/ContentMgmt/Storage/hdd/<ID>/BadSectorsTest/
of a HDD status
Pause checking bad sectors of a PUT /ISAPI/ContentMgmt/Storage/hdd/<ID>/BadSectorsTest/
HDD pause
Resume checking bad sectors PUT /ISAPI/ContentMgmt/Storage/hdd/<ID>/BadSectorsTest/
of a HDD resume
Stop checking bad sectors of a PUT /ISAPI/ContentMgmt/Storage/hdd/<ID>/BadSectorsTest/
HDD stop

101
Intelligent Security API (General) Developer Guide

SHM (SkyHawk Health Management) Alarm Linkage

Function Request URI


Get or set linkage parameters GET or PUT /ISAPI/Event/triggers/highHDTemperature
of HDD high temperature
detection
Get or set linkage parameters GET or PUT /ISAPI/Event/triggers/lowHDTemperature
of HDD low temperature
detection
Get or set linkage parameters GET or PUT /ISAPI/Event/triggers/hdImpact
of HDD impact detection
Get or set linkage parameters GET or PUT /ISAPI/Event/triggers/hdBadBlock
of HDD bad sector detection
Get or set linkage parameters GET or PUT /ISAPI/Event/triggers/severeHDFailure
of HDD severe fault detection

HDD Sync Status

Function Request URI


Get HDD data sync status GET /ISAPI/ContentMgmt/Storage/hdd/<ID>/syncStatus?
format=json

11.3 Hot Spare Configuration


Table 11-1 Hot Spare
Function Request URI
Get hot spare capability GET /ISAPI/ContentMgmt/spare/capabilities?format=json
Get or set hot spare working GET or PUT /ISAPI/ContentMgmt/spare?format=json
mode
Table 11-2 Working Device Configuration
Function Request URI
Get working device list or add a GET or POST /ISAPI/ContentMgmt/spare/master?format=json
working device
Edit working device PUT or DELETE /ISAPI/ContentMgmt/spare/master/<ID>?
information or delete working format=json
device

102
Intelligent Security API (General) Developer Guide

Table 11-3 Hot Spare Device Configuration


Function Request URI
Get hot spare device list or add GET or POST /ISAPI/ContentMgmt/spare/backup?format=json
hot spare device
Edit hot spare device PUT or DELETE /ISAPI/ContentMgmt/spare/backup/<ID>?
information or delete hot spare format=json
device

11.4 Working Mode Configuration

Function Request URI


Get configuration capability of GET /ISAPI/ContentMgmt/Storage/capabilities
current storage working mode
Get or set current working GET or PUT /ISAPI/ContentMgmt/storage
mode of storage
Start disk data reconstruction PUT /ISAPI/ContentMgmt/Storage/dataReconstruction?
format=json
Get disk data reconstruction GET /ISAPI/ContentMgmt/Storage/dataReconstruction/
progress progress?format=json

11.5 SSD Management


The SSD (solid state driver) is used for storage. Here introduces the URIs to implement the
functions of SSD file system format, file system upgrade, SSD firmware upgrade, SSD S.M.A.R.T
(self-monitoring, analysis, and reporting technology) detection, and so on.

SSD File System

Function Request URI


Format SSD file system PUT /ISAPI/System/SSDFileSystem/format?format=json
Search for formatting progress GET /ISAPI/System/SSDFileSystem/format/status?format=json
of SSD file system
Get upgrade status of SSD file GET /ISAPI/System/SSDFileSystem/upgrade?format=json
system
Upgrade SSD file system PUT /ISAPI/System/SSDFileSystem/upgrade?format=json

103
Intelligent Security API (General) Developer Guide

Function Request URI


Search for upgrade progress of GET /ISAPI/System/SSDFileSystem/upgrade/status?
SSD file system format=json
Search for SSD storage quotas GET /ISAPI/System/SSDFileSystem/capacity?format=json

SSD Configuration

Function Request URI


Get SSD management GET /ISAPI/ContentMgmt/Storage/ssd/<ID>/capabilities?
capability format=json
Upgrade SSD firmware POST /ISAPI/System/SSDFileSystem/format/status?
format=json
Get SSD firmware upgrade GET /ISAPI/System/SSDFileSystem/upgrade?format=json
progress
Get a single SSD information GET /ISAPI/ContentMgmt/Storage/ssd/<ID>
Get all SSDs information GET /ISAPI/ContentMgmt/Storage/ssd

SSD S.M.A.R.T. Detection

Function Request URI


Run SSD S.M.A.R.T detection PUT /ISAPI/ContentMgmt/Storage/ssd/<ID>/SMARTTest/start
Get SSD S.M.A.R.T detection GET /ISAPI/ContentMgmt/Storage/ssd/<ID>/SMARTTest/
status status

11.6 Storage Health Detection

Function Request URI


Get storage health detection GET /ISAPI/Smart/storageDetection
parameters
Get configuration capability of GET /ISAPI/Smart/storageDetection/rwlock/capabilities
read & write lock of storage
health detection
Get or set read & write lock GET or PUT /ISAPI/Smart/storageDetection/rwlock
parameters of storage health
detection

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

Chapter 12 File Management

12.1 Video Files

Search Video Files

Function Request URI


Get search conditions GET /ISAPI/ContentMgmt/search/profile
Search video files POST /ISAPI/ContentMgmt/search

Note
This URI is not only used to search video files, it can also be
used to search any resources stored in the device.

Search video files by time POST /ISAPI/ContentMgmt/record/tracks/<ID>/


dailyDistribution
Get capability of searching GET /ISAPI/ContentMgmt/SmartSearch/capabilities
video files by VCA event
Search video files by VCA event POST /ISAPI/ContentMgmt/SmartSearch

Lock or Unlock Video Files

Function Request URI


Get video file locking and GET /ISAPI/ContentMgmt/record/control/locks/capabilities
unlocking capability
Lock or unlock video files by PUT /ISAPI/ContentMgmt/record/control/locks/name
name

Add Remarks to Video File

Function Request URI


Get capability of adding GET /ISAPI/ContentMgmt/record/control/remark/capabilities?
remarks to video files format=json
Add remarks to video files PUT /ISAPI/ContentMgmt/record/control/remark?format=json

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".

Clear Stored Video Files

Function Request URI


Get the capability of deleting GET /ISAPI/ContentMgmt/record/control/cleanUp/
files in a batch capabilities?format=json
Delete files in a batch POST /ISAPI/ContentMgmt/record/control/cleanUp?
format=json

Export Video or Picture Files to Device via USB

Function Request URI


Get capability of exporting GET /ISAPI/ContentMgmt/download/toUSB/capabilities?
video or picture files to devices format=json
via USB
Note
To check whether this function is supported by the device, you
can call /ISAPI/ContentMgmt/download/capabilities by GET
method to get the downloading capability
( XML_DownloadAbility ). If it supports, the node
<isSupportDownloadToUSB> will be returned and its value is
"true".

Export video or picture files to POST /ISAPI/ContentMgmt/download/toUSB?format=json


devices via USB
Get progress of exporting video GET /ISAPI/ContentMgmt/download/toUSB/<taskId>/
or picture files to devices via progress?format=json
USB

12.2 Audio Files

107
Intelligent Security API (General) Developer Guide

Custom Audio File Operations

Function Request URI


Check whether custom audio Call /ISAPI/Event/triggers/notifications/AudioAlarm/
operation is supported capabilities?format=json by GET method.
The capability is returned in JSON_AudioAlarmCap and if "true"
is returned in the node isSupportCustomAudio, it indicates that
custom audio operation is supported.
Download or delete custom Call /ISAPI/Event/triggers/notifications/AudioAlarm/
audio file customAudio/<customAudioID>?format=json by GET or DELETE
method.
Get or edit custom audio file Call /ISAPI/Event/triggers/notifications/AudioAlarm/
information customAudioInfo/<customAudioID>?format=json by GET or
PUT method.
Import custom audio file Call /ISAPI/Event/triggers/notifications/AudioAlarm/
customAudio?format=json by POST method.
Get encoding format Call /ISAPI/Event/triggers/notifications/AudioAlarm/
information of custom audio customAudioTypeInfo/channels?format=json by GET method.
file in a batch
Get information about custom GET /ISAPI/Event/triggers/notifications/AudioAlarm/
alarm sound file of specified customAudioInfo/channels/<channelID>?format=json
channel
Get audible warning GET /ISAPI/Event/triggers/notifications/channels/<ID>/
configuration capability of AudioAlarm/capabilities?format=json
specified channel

Audio Test

Function Request URI


Check whether audio test is Call /ISAPI/Event/triggers/notifications/AudioAlarm/
supported capabilities?format=json by GET method.
The capability is returned in JSON_AudioAlarmCap and if "true"
is returned in the node isSupportAudioTest, it indicates that
audio test is supported.
Audio test Call /ISAPI/Event/triggers/notifications/AudioAlarm/
<audioID>/test?format=json by PUT method.

108
Intelligent Security API (General) Developer Guide

12.3 Log Files


Table 12-1 Export Log to USB Flash Drive
Function Request URI
Get the configuration capability of exporting log GET /ISAPI/System/exportLogToUSB/
to USB flash drive capabilities?format=json
Set parameters of exporting logs to USB flash PUT /ISAPI/System/exportLogToUSB/mode?
drive format=json
Get the status of exporting logs to USB flash GET /ISAPI/System/exportLogToUSB/status?
drive format=json
Table 12-2 Export Log to PC
Function Request URI
Get the configuration capability of exporting GET /ISAPI/System/exportUSBLog/
logs to PC capabilities?format=json
Export logs to PC PUT /ISAPI/System/exportUSBLog?
format=json
Get the status of exporting logs to PC GET /ISAPI/System/exportUSBLog/status?
format=json
Table 12-3 Search and Export Log Files
Function Request URI
Search for log files Option1: POST /ISAPI/ContentMgmt/logSearch
Option 2: POST /ISAPI/ContentMgmt/logSearch?format=json
Export log files POST /ISAPI/ContentMgmt/logSearch/dataPackage

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

12.4 Download Files

Function Request URI


Get downloading capability GET /ISAPI/ContentMgmt/download/capabilities
Download files POST /ISAPI/ContentMgmt/download

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.

13.1 Configure Audio Detection Alarm


The audio detection function can detect the abnormal sound in the surveillance scene, such as the
sudden increase or decrease of the sound intensity. If the alarm linkage is configured, some certain
actions can be taken as response when the audio detection alarm is triggered.

111
Intelligent Security API (General) Developer Guide

Steps

Figure 13-1 Programming Flow of Configuring Audio Detection Alarm

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.

13.2 Configure Exception Alarm


To monitor the device status, you can configure the exception alarm, such as supply voltage
exception, PoE power exception, and so on. When the exception occurs, the configured linkage
action will be triggered and the alarm information will be uploaded automatically.

Supply Voltage Exception

Function Request URI


Get configuration capability of GET /ISAPI/Event/triggersCap
alarm linkage action
Get or set the linkage action of GET or PUT /ISAPI/Event/triggers/<eventType>-<ID> , and the
supply voltage exception alarm <ID> in the URI is "voltageinstable"
Receive supply voltage Refer to Receive Alarm/Event in Listening Mode for details, the
exception alarm in listening event type is "voltageinstable", and the alarm information is
mode returned in message
JSON_EventNotificationAlert_voltageinstable

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.

13.3 Configure Certificate Expiry Alarm


Generally, the device certificate is only valid in a specific period of time. You can configure the
certificate expiry alarm to remind the user a few days in advance. When the certificate is expired,
the alarm will be triggered and uploaded automatically.

114
Intelligent Security API (General) Developer Guide

Steps

Figure 13-2 Programming Flow of Configuring Certificate Expiry Alarm

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

13.4 Configure Network Traffic Pre-alarm


You can set or search for data plans, monitor data usage, and set a traffic limit. When the limit is
exceeded, the alarm will be triggered and uploaded automatically.
Steps

Figure 13-3 Programming Flow of Configuring Network Traffic Pre-alarm


1. Call /ISAPI/System/capabilities by GET to check whether the device supports network traffic
pre-alarm.
2. Call /ISAPI/Event/channels/<ID>/capabilities by GET to check whether the channel supports
network traffic pre-alarm.
3. Optional: Call /ISAPI/System/Network/WirelessDial/Interfaces/<ID>/trafficMonitor/
capabilities?format=json by GET to get network traffic monitoring capability for reference.

117
Intelligent Security API (General) Developer Guide

The capability is returned in the message JSON_TrafficMonitorCap .


4. Optional: Call /ISAPI/System/Network/WirelessDial/Interfaces/<ID>/trafficMonitor?
format=json by GET to get default or configured network traffic monitoring parameters for
reference.
The parameters are returned in the message JSON_TrafficMonitor .
5. Call /ISAPI/System/Network/WirelessDial/Interfaces/<ID>/trafficMonitor?format=json by
PUT to set parameters of network traffic monitoring.
6. Optional: Call /ISAPI/System/Network/WirelessDial/Interfaces/<ID>/trafficMonitor/status?
format=json by GET to get network traffic monitoring status.
The status is returned in the message JSON_TrafficMonitorStatus .
7. Optional: Receive the uploaded network traffic 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 ).

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".

13.5 Configure Motion Detection Alarm


Motion detection detects the moving objects in the configured surveillance area, and a series of
actions can be taken when the alarm is triggered. In order to detect the moving objects accurately
and reduce the false alarm rate, detection target types (including human and vehicle), and
detection region types (including region, grid, and ROI) are selectable for different motion
detection environment.

118
Intelligent Security API (General) Developer Guide

Steps

Figure 13-4 API Calling Flow of Configuring Motion Detection Alarm


1. Configure motion detection.

119
Intelligent Security API (General) Developer Guide

1) Optional: Call /ISAPI/System/Video/inputs/channels/<ID>/motionDetection/capabilities by


GET method to get the motion detection capability for reference.
2) Optional: Call /ISAPI/System/Video/inputs/channels/<ID>/motionDetection by GET
method to get default or configured motion detection parameters for reference.
3) Call /ISAPI/System/Video/inputs/channels/<ID>/motionDetection by PUT method to set
motion detection parameters.
2. Configure rule region of motion detection to detect by region or by grid.
1) Optional: Call /ISAPI/System/Video/inputs/channels/<ID>/motionDetection/layout/
capabilities by GET method to get rule region configuration capability of motion detection
for reference.
2) Optional: Call /ISAPI/System/Video/inputs/channels/<ID>/motionDetection/layout by GET
method to get default or configured rule region parameters of motion detection for
reference.
3) Call /ISAPI/System/Video/inputs/channels/<ID>/motionDetection/layout by PUT method
to set rule region of motion detection to detect by region or by grid.
3. Check the value of query parameter regionType in the request URI of /ISAPI/System/Video/
inputs/channels/<ID>/motionDetection/layout/gridLayout .
- If the query parameter regionType in the request URI is set to "grid", call /ISAPI/System/
Video/inputs/channels/<ID>/motionDetection/layout/gridLayout by PUT method to set the
detection grids.
- If the query parameter regionType in the request URI is set to "region", perform the
following steps.
4. Configure arming schedule(s) of motion detection(s).
- Call /ISAPI/Event/schedules/motionDetections by PUT method to set arming schedules of all
channels' motion detection.
- Call /ISAPI/Event/schedules/motionDetections/<ID> by PUT method and set the <ID> in the
request URI to "VMD-<channelID>" (e.g., /ISAPI/Event/schedules/motionDetections/
VMD-101) to set arming schedule of a channel's motion detection.
5. Call /ISAPI/Event/triggers/<eventType>-<ID> by PUT method and set the <ID> in the request
URI to "VMD-<channelID>" (e.g., /ISAPI/Event/triggers/VMD-101) to set alarm linkage action of
a channel's motion detection.
6. Call the flow of Receive Alarm/Event in Arming Mode to receive the motion detection alarm
information if it is triggered and uploaded.
The motion detection alarm information with the event type (eventType) of "VMD" will be
returned in the message XML_EventNotificationAlert_MotionDetectionMsg .

13.6 Configure Vibration Detection Alarm


Vibration detection function can be applied to the scenes in which the real-time vibration status of
devices should be detected in case people damage the devices on purpose. You can configure the
arming schedule and linkage actions of the vibration detection alarm. For those triggered alarms,
you can also search for the related videos or pictures.

120
Intelligent Security API (General) Developer Guide

Steps

Figure 13-5 API Calling Flow of Configuring Vibration Detection Alarm

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

The vibration detection alarm details are uploaded in the message


JSON_EventNotificationAlert_vibrationDetection and the corresponding alarm type
(eventType) is "vibrationDetection".
9. Optional: Call /ISAPI/ContentMgmt/search by POST method to search for video or picture
information of the vibration detection alarms.

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

13.7 Receive Alarm/Event in Arming Mode


When alarm is triggered or event occurred, and the alarm/event linkage is configured, you can
send request message to device for getting the alarm/event stream, and then the device uploads
the corresponding response message, which contains alarm/event information.
Before You Start
Make sure you have configured alarm/event and triggered the alarm/event. For configuring alarm/
event parameters, refer to the some typical applications of alarm/event configuration.
Steps

Figure 13-6 API Calling Flow of Receiving Alarm/Event in Arming Mode


1. Call /ISAPI/Event/notification/alertStream by GET to get the alarm/event stream.
2. 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.
3. Receive and process the alarm/event information.
Example
Sample Code of Receiving Alarm/Event in Arming Mode (without Binary Picture Data)
GET /ISAPI/Event/notification/alertStream HTTP/1.1
Host: data_gateway_ip
Connection: Keep-Alive

HTTP/1.1 401 Unauthorized


Date: Sun, 01 Apr 2018 18:58:53 GMT

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"

GET /ISAPI/Event/notification/alertStream HTTP/1.1


Authorization: Digest username="admin",
realm="IP Camera(C2183)",
nonce="4e5468694e7a42694e7a4d364f4449354d7a6b354d54513d",
uri="/ISAPI/Event/notification/alertStream",
cnonce="3d183a245b8729121ae4ca3d41b90f18",
nc=00000001,
qop="auth",
response="f2e0728991bb031f83df557a8f185178"
Host: 10.6.165.192

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".

13.8 Receive Alarm/Event in Listening Mode


When alarm is triggered or event occurred, and the alarm/event linkage is configured, the device
uploads the alarm/event information automatically, you can receive the alarm/event by
configuring the listening port of HTTP host server.
Before You Start
Make sure you have configured alarm/event and triggered the alarm/event. For configuring alarm/
event parameters, refer to the some typical applications of alarm/event configuration.

124
Intelligent Security API (General) Developer Guide

Steps

Figure 13-7 API Calling Flow of Receiving Alarm/Event in Listening Mode


1. Optional: Call /ISAPI/Event/notification/httpHosts/capabilities by GET method to get the
capability of HTTP listening server.
2. Call /ISAPI/Event/notification/httpHosts by PUT method to set the parameters (including
listening address and listening port) of HTTP listening server.

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

[binary picture data]


--<frontier>--

//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

13.9 Subscribe Alarm/Event in Arming Mode


For arming mode, the platform will connect to the devices automatically and send commands to
the devices for uploading alarm/event information when the alarm is triggered or event occurred.
To reduce the CPU and bandwidth usage of platform, and improve the device processing
performance, the platform can subscribe alarm/event types to receive alarm/event information as
required.
Before You Start
Configure alarm/event and trigger the alarm/event. For configuring alarm/event parameters, refer
to the some typical applications of alarm/event configuration.
Steps

Figure 13-8 Programming Flow of Subscribing Alarm/Event in Arming Mode


1. Call /ISAPI/System/capabilities by GET method to get device capability to check whether the
alarm/event subscription is supported.
The device capability is returned in the message XML_DeviceCap .

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

Chapter 14 Parameter Configuration

14.1 I/O Settings

I/O (Alarm Input and Output)

Function Request URI


Get I/O configuration capability GET /ISAPI/System/IO/capabilities .
Get alarm input and output GET /ISAPI/System/IO
information
Get I/O status GET /ISAPI/System/IO/status
Get all soft I/O parameters GET /ISAPI/System/IO/softInputs?format=json

Alarm Input

Function Request URI


Get configuration capability of GET /ISAPI/System/IO/inputs/capabilities .
alarm inputs
Get parameters of all alarm GET /ISAPI/System/IO/inputs
inputs
Get or set parameters of one GET or PUT /ISAPI/System/IO/inputs/<ID>
alarm input
Get status of one alarm input GET /ISAPI/System/IO/inputs/<ID>/status
Alarm Input Configuration of
Note
Digital Channel
• To check if the alarm input configuration of digital channel is
supported, you can call the GET /ISAPI/ContentMgmt/
capabilities to get the device storage management capability
( XML_RacmCap ).
• If this function is supported, the node
<isSupportIOInputProxy> is returned and its value is "true".

• Get or set alarm input parameters of all digital channels: GET


or PUT /ISAPI/ContentMgmt/IOProxy/inputs
• Added alarm input configuration of a specific digital channel:
POST /ISAPI/ContentMgmt/IOProxy/inputs
• Get or set alarm input parameters of a specific digital channel:
GET or PUT /ISAPI/ContentMgmt/IOProxy/inputs/<ID>

129
Intelligent Security API (General) Developer Guide

Function Request URI


• Delete alarm input configuration of a specific digital channel:
DELETE /ISAPI/ContentMgmt/IOProxy/inputs/<ID>
• Get alarm input status of a specific digital channel: GET /
ISAPI/ContentMgmt/IOProxy/inputs/<ID>/status

Alarm Output

Function Request URI


Basic Alarm Output Parameters • Get configuration capability of alarm outputs:
GET /ISAPI/System/IO/outputs/capabilities
• Get parameters of all alarm outputs: GET /ISAPI/System/IO/
outputs
• Get or set parameters of one alarm output: GET or PUT /
ISAPI/System/IO/outputs/<ID>
• Get status of one alarm output: GET /ISAPI/System/IO/
outputs/<ID>/status
Supplement Light Alarm • Get configuration capability of supplement light alarm
Output outputs: GET /ISAPI/Event/triggers/notifications/
whiteLightAlarm/capabilities?format=json
• Get or set parameters of supplement light alarm outputs: GET
or PUT /ISAPI/Event/triggers/notifications/
whiteLightAlarm?format=json
Audible Alarm Output • Get configuration capability of audible alarm outputs: GET /
ISAPI/Event/triggers/notifications/AudioAlarm/capabilities?
format=json
• Get or set parameters of audible alarm outputs: GET or PUT /
ISAPI/Event/triggers/notifications/AudioAlarm?format=json
Manually trigger an alarm PUT /ISAPI/System/IO/outputs/<ID>/trigger
output
Alarm Output Configuration of
Note
Digital Channel
To check if the alarm output configuration of digital channel is
supported, you can call the GET /ISAPI/ContentMgmt/
capabilities to get the device storage management capability
( XML_RacmCap ).
If this function is supported, the node
<isSupportIOOutputProxy> is returned and its value is "true".

130
Intelligent Security API (General) Developer Guide

Function Request URI


• Get or set alarm output parameters of all digital channels: GET
or PUT /ISAPI/ContentMgmt/IOProxy/outputs
• Added alarm output configuration of a specific digital channel:
POST /ISAPI/ContentMgmt/IOProxy/outputs
• Get or set alarm output parameters of a specific digital
channel: GET or PUT /ISAPI/ContentMgmt/IOProxy/outputs/
<ID>
• Delete alarm output configuration of a specific digital channel:
DELETE /ISAPI/ContentMgmt/IOProxy/outputs/<ID>
• Get alarm output status of a specific digital channel: GET /
ISAPI/ContentMgmt/IOProxy/outputs/<ID>/status
• Trigger alarm output of a specific digital channel: PUT /ISAPI/
ContentMgmt/IOProxy/outputs/<ID>/trigger

Note
The alarm details are uploaded by the message
XML_EventNotificationAlert_AlarmInputAlarmMsg .

14.2 Video/Image Settings

Basic Image Parameters

Function Request URI


Get image configuration GET /ISAPI/Image/channels/<ID>/capabilities
capability
Get or set image GET or PUT /ISAPI/Image/channels
parameters of all channels
Get or set image GET or PUT /ISAPI/Image/channels/<ID>
parameters of one channel
Get basic image GET /ISAPI/Image/channels/<ID>/imageModes
parameters of all channels
Get basic image GET /ISAPI/Image/channels/<ID>/imageMode/<ID>
parameters of one channel
Get configuration GET /ISAPI/Image/channels/imageModes
parameters of all image
modes of all channels

131
Intelligent Security API (General) Developer Guide

Function Request URI


Get configuration GET /ISAPI/Image/channels/imageModes/<ID>
parameters of all image
modes of a specific
channel
Reset image parameters PUT /ISAPI/Image/channels/<ID>/reset
Restore to default image PUT /ISAPI/Image/channels/<ID>/restore
settings

Camera Video/Image Parameters

Function Request URI


Get or set day/night mode GET or PUT /ISAPI/Image/channels/<ID>/ISPMode
parameters
Get or set image auto flip GET or PUT /ISAPI/Image/channels/<ID>/ImageFlip
parameters
Get or set wide dynamic GET or PUT /ISAPI/Image/channels/<ID>/WDR
range (WDR) parameters
Get or set backlight GET or PUT /ISAPI/Image/channels/<ID>/BLC
compensation (BLC)
parameters
Get or set day/night auto GET or PUT /ISAPI/Image/channels/<ID>/IrcutFilter
switch parameters
Get or set 3-​dimention GET or PUT /ISAPI/Image/channels/<ID>/noiseReduce
digital noise reduction (3D
DNR) parameters
Get or set white balance GET or PUT /ISAPI/Image/channels/<ID>/whiteBalance
(WB) parameters
Get or set sharpness GET or PUT /ISAPI/Image/channels/<ID>/sharpness
parameters
Get or set defog GET or PUT /ISAPI/Image/channels/<ID>/dehaze
parameters
Get or set image standard GET or PUT /ISAPI/Image/channels/<ID>/powerLineFrequency

132
Intelligent Security API (General) Developer Guide

Function Request URI


Get or set image rotate GET or PUT /ISAPI/Image/channels/<ID>/corridor
mode parameters
Get or set video input GET or PUT /ISAPI/Image/channels/<ID>/capturemode
mode parameters
Table 14-1 Exposure
Function Request URI
Get or set exposure GET or PUT /ISAPI/Image/channels/<ID>/exposure
parameters
Get or set shutter GET or PUT /ISAPI/Image/channels/<ID>/shutter
parameters in exposure
mode
Get or set gain parameters GET or PUT /ISAPI/Image/channels/<ID>/gain
in exposure mode
Table 14-2 Image Adjustment
Function Request URI
Get image adjustment GET /ISAPI/Image/channels/<ID>/color/capabilities
capability
Get or set image GET or PUT /ISAPI/Image/channels/<ID>/color
adjustment parameters

Other Video/Image Parameters


Table 14-3 Focus
Function Request URI
Get focus configuration GET /ISAPI/Image/channels/<ID>/focusConfiguration/capabilities
capability
Get or set focus GET or PUT /ISAPI/Image/channels/<ID>/focusConfiguration
parameters
Perform regional focus PUT /ISAPI/Image/channels/<ID>/regionalFocus

133
Intelligent Security API (General) Developer Guide

Function Request URI

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.

Get focus status GET /ISAPI/Image/channels/<ID>/focusConfiguration/status?


format=json
Table 14-4 Target Coloration
Function Request URI
Get image configuration GET /ISAPI/Image/channels/<ID>/capabilities
capability of a specific
channel
Get or set the palettes GET or PUT /ISAPI/Image/channels/<ID>/Palettes
parameters
Table 14-5 On Screen Display (OSD)
Function Request URI
Get or set OSD parameters GET or PUT /ISAPI/System/Video/inputs/channels/<ID>/overlays

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.

Get text overlay GET /ISAPI/ContentMgmt/InputProxy/channels/<ID>/video/


configuration capability of overlays/capabilities
a specific video digital
input channel
Get or set text overlay GET or PUT /ISAPI/ContentMgmt/InputProxy/channels/<ID>/video/
parameters of a specific overlays
video digital input channel
Get or set text language of GET /ISAPI/System/Video/inputs/OSDLanguage
OSD

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".

Get or set stream GET or PUT /ISAPI/Streaming/channels/<ID>/smartOverlap?


parameters for displaying format=json
VCA rules of smart events
Table 14-7 Target Enhancement
Function Request URI
Get target enhancement GET /ISAPI/Image/channels/<ID>/targetEnhancement/capabilities
capability
Get or set target GET or PUT /ISAPI/Image/channels/<ID>/targetEnhancement
enhancement parameters
Table 14-8 Privacy Mask
Function Request URI
Get configuration GET /ISAPI/System/Video/inputs/channels/<ID>/privacyMask/
capability of privacy mask privacyMaskCap
Get or set privacy mask GET or PUT /ISAPI/System/Video/inputs/channels/<ID>/
parameters privacyMask
Get or set multiple privacy GET or PUT /ISAPI/System/Video/inputs/channels/<ID>/
mask regions privacyMask/regions
Get or set one privacy GET or PUT /ISAPI/System/Video/inputs/channels/<ID>/
mask region privacyMask/regions/<ID>

135
Intelligent Security API (General) Developer Guide

Table 14-9 Distortion Correction


Function Request URI
Get configuration GET /ISAPI/Image/channels/<ID>/lensDistortionCorrection/
capability of distortion capabilities
correction
Get or set distortion GET or PUT /ISAPI/Image/channels/<ID>/lensDistortionCorrection
correction parameters
Table 14-10 Target Cropping
Function Request URI
Get configuration GET /ISAPI/Streaming/channels/<ID>/regionClip/capabilities
capability of target
cropping
Get or set target cropping GET or PUT /ISAPI/Streaming/channels/<ID>/regionClip
parameters
Table 14-11 Temperature Range
Function Request URI
Get temperature range GET /ISAPI/Image/channels/<ID>/tempRange/capabilities
configuration capability
Get or set temperature GET or PUT /ISAPI/Image/channels/<ID>/tempRange
range
Table 14-12 Mounting Scenario
Function Request URI
Get configuration GET /ISAPI/Image/channels/<ID>/mountingScenario/capabilities
capability of mounting
scenario mode
Get or set mounting GET or PUT /ISAPI/Image/channels/<ID>/mountingScenario
scenario mode by channel

14.3 Audio Settings

136
Intelligent Security API (General) Developer Guide

Basic Audio Configuration

Function Request URI


Get audio capability GET /ISAPI/System/Audio/capabilities
Get dynamic audio capability GET /ISAPI/System/Audio/channels/<ID>/dynamicCap
by channel
Get parameters of all audio GET /ISAPI/System/Audio/channels
channels
Get parameters of a specific GET /ISAPI/System/Audio/channels/<ID>
audio channel

Audio Input Configuration

Function Request URI


Get audio input capability of a GET /ISAPI/System/Audio/AudioIn/channels/<ID>/capabilities
specific channel
Get or set audio input GET or PUT /ISAPI/System/Audio/AudioIn/channels/<ID>
parameters of a specific
channel
Get audio input configuration GET /ISAPI/System/Audio/AudioIn/capabilities
capability of all channels
Get or set audio input GET or PUT /ISAPI/System/Audio/AudioIn
parameters of all channels

Audio Output Configuration

Function Request URI


Get audio output capability of GET /ISAPI/System/Audio/AudioOut/channels/<ID>/
a specific channel capabilities
Get or set audio output GET or PUT /ISAPI/System/Audio/AudioOut/channels/<ID>
parameters of a specific
channel

14.4 Channel Settings

137
Intelligent Security API (General) Developer Guide

Basic Channel Parameters

Function Request URI


Get all channels' attributes GET /ISAPI/AUXInfo/attributes/Channels
Get one channel's attributes GET /ISAPI/AUXInfo/attributes/Channels/<ID>

Video Input Channel

Function Request URI


Get capability of configuring GET /ISAPI/System/Video/inputs/channels/capabilities
video input channels in a batch
Get configuration capability by GET /ISAPI/System/Video/inputs/channels/<ID>/capabilities
video input channel
Get parameters of all video GET /ISAPI/System/Video/inputs/channels?format=json
input channels
Get parameters of one video /ISAPI/System/Video/inputs/channels/<ID>?format=json
input channel

Video Output Channel

Function Request URI


Get parameters of all video GET /ISAPI/System/Video/outputs
outputs
Get configuration capability by GET /ISAPI/System/Video/outputs/channels/<ID>/capabilities
video output channel
Get parameters of all video GET /ISAPI/System/Video/outputs/channels
output channels
Get parameters of one video GET /ISAPI/System/Video/outputs/channels/<ID>
output channel

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

Function Request URI


Get management capability of GET /ISAPI/ContentMgmt/InputProxy/channels/capabilities
all digital channels
Get management capability of GET /ISAPI/ContentMgmt/InputProxy/channels/<ID>/
one digital channel capabilities
Get supported number of POST /ISAPI/ContentMgmt/InputProxy/sourceCapability
digital channels
Get parameters of all digital GET /ISAPI/ContentMgmt/InputProxy/channels
channels
Get status of all digital GET /ISAPI/ContentMgmt/InputProxy/channels/status
channels
Get, add, or delete parameters GET, POST, or PUT /ISAPI/ContentMgmt/InputProxy/channels
of one digital channel
Get status of one digital GET /ISAPI/ContentMgmt/InputProxy/channels/<ID>/status
channel
Get or set control parameters GET or PUT /ISAPI/ContentMgmt/InputProxy/channels/<ID>/
of a digital channel chanCtrl
Reboot a digital channel GET /ISAPI/ContentMgmt/InputProxy/channels/<ID>/reboot
Check if port mapping is POST /ISAPI/ContentMgmt/InputProxy/channels/<ID>/
required for connecting to a portMapParam
digital channel
Get or set the device GET or PUT /ISAPI/ContentMgmt/InputProxy/channels/<ID>/
parameters of a digital channel deviceInfo
Get device parameters of all POST /ISAPI/ContentMgmt/InputProxy/deviceInfo
digital channels
Get firmware code list of the GET /ISAPI/System/firmwareCodeV2
digital channel

139
Intelligent Security API (General) Developer Guide

14.5 Peripherals Settings

Function Request URI


Get peripherals configuration GET /ISAPI/System/externalDevice/capabilities
capability
Get configuration capability of GET /ISAPI/Image/channels/<ID>/supplementLight/
built-in supplement light capabilities
Get or set parameters of built- GET or PUT /ISAPI/Image/channels/<ID>/supplementLight
in supplement light
Note
To check if configuring built-in supplement light is supported,
you can call the GET /ISAPI/Image/channels/<ID>/capabilities
to get the image channel capability
( XML_Cap_ImageChannel ). If supports, the node
<SupplementLight> will be returned in the message.

14.6 Picture Storage Server Settings

Function Request URI


Get picture storage server GET /ISAPI/System/PictureServer/capabilities?format=json
capability
Get picture storage server GET /ISAPI/System/PictureServer?format=json
parameters
Set picture storage server PUT /ISAPI/System/PictureServer?format=json
parameters

140
Intelligent Security API (General) Developer Guide

Chapter 15 System Configuration

15.1 Basic Settings

Function Request URI


Get Configuration Capability of GET /ISAPI/System/DeviceLanguage/capabilities
Device Language
Get or Set Device Language GET or PUT /ISAPI/System/DeviceLanguage
Get USB Mode Configuration GET /ISAPI/System/usb/capabilities?format=json
Capability
Get or Set USB Mode GET or PUT /ISAPI/System/usb?format=json

15.2 Network Settings


This chapter lists the request URIs for communication and network configurations of devices,
including network interface settings, wireless network settings, network access settings, email
settings, and so on.

Function Request URI


Get network capability GET /ISAPI/System/Network/capabilities
Import network certificate GET /ISAPI/Security/deviceCertificate
Remotely get connection GET /ISAPI/System/Network/socketIP
socket IP
Note
To check if getting socket IP is supported by device, you can call
the GET /ISAPI/System/Network/capabilities to get the device
capability ( XML_DeviceCap ). If supports, the node
<isSupportGetLinkSocketIP> will be returned.

Network Self-​Adaptive • Get self-adaptive configuration capability: GET /ISAPI/


System/Network/adaption/capabilities?format=json
• Get self-adaptive parameters: GET /ISAPI/System/Network/
adaption?format=json&streamType=
• Set self-adaptive parameters: PUT /ISAPI/System/Network/
adaption?format=json&streamType=

141
Intelligent Security API (General) Developer Guide

Function Request URI

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

Function Request URI


Get email configuration GET /ISAPI/System/Network/mailing/capabilities
capability
Get or set parameters of GET or PUT /ISAPI/System/Network/mailing
multiple emails
Get or set parameters of one GET or PUT /ISAPI/System/Network/mailing/<ID>
email
Execute email test POST /ISAPI/System/Network/mailing/test

15.2.2 Network Access

Network Access Test by Ping

Function Request URI


Set ping test parameters POST /ISAPI/System/Network/pingtest

Protocol Access

Function Request URI


Get configuration capability of GET /ISAPI/Security/adminAccesses/capabilities
protocol access
Get or set access parameters of GET or PUT /ISAPI/Security/adminAccesses
multiple protocols
Get or set access parameters of GET or PUT /ISAPI/Security/adminAccesses/<ID>
one protocol

142
Intelligent Security API (General) Developer Guide

Function Request URI


Get 802.1 protocol access GET /ISAPI/System/Network/interfaces/<ID>/ieee802.1x/
capability capabilities
Get or set access parameters of GET or PUT /ISAPI/System/Network/interfaces/<ID>/
802.1 protocol ieee802.1x

Hik-Connect Access

Function Request URI


Get the Hik-Connect access GET /ISAPI/System/Network/EZVIZ/capabilities
configuration capability
Get or set access parameters of GET or PUT /ISAPI/System/Network/EZVIZ
Hik-Connect
Note
To check if the device supports accessing to Hik-Connect, you
can call the request URI: GET /ISAPI/System/Network/
capabilities to get the network capability ( XML_NetworkCap ).
If supports, the node <isSupportEhome> will be returned in the
capability and its value is "true".

Edit verification code for Hik- PUT /ISAPI/System/Network/EZVIZ/secretKey?format=json


Connect
Note
To check if the device supports editing verification code for Hik-
Connect, you can call the request URI: GET /ISAPI/System/
Network/capabilities to get the network capability sets
XML_NetworkCap . If supports, the node <secretKey> will be
returned.

Get Hik-Connect QR code • GET /ISAPI/System/Network/EZVIZ/QRCode?format=json


• GET /ISAPI/System/Network/EZVIZ/QRCode
Unbind devices from Hik- PUT /ISAPI/System/Network/EZVIZ/unbind?format=json
Connect account

EHome Server Access

Function Request URI


Get configuration capability of GET /ISAPI/System/Network/Ehome/capabilities
EHome server access
Get or set access parameters of GET or PUT /ISAPI/System/Network/Ehome
EHome server

143
Intelligent Security API (General) Developer Guide

Function Request URI


Get or set access parameters of GET or PUT /ISAPI/System/Network/Ehome?centerID=
EHome server according to the
center ID
Get configuration capability of GET /ISAPI/SecurityCP/ReportCenterCfg/capabilities?
report uploading method format=json
Get or set parameters of report GET or PUT /ISAPI/SecurityCP/ReportCenterCfg/<ID>?
uploading method format=json

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".

SSH Server Access

Function Request URI


Get the SSH parameters GET /ISAPI/System/Network/ssh/capabilities
configuration capability
Get or set access parameters of GET or PUT /ISAPI/System/Network/ssh
SSH server

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

Function Request URI


Get batch configuration GET /ISAPI/System/Network/SNMP
parameters of SNMP
Get advanced configuration GET /ISAPI/System/Network/SNMP/advanced
parameters of SNMP
Get all trap address parameters GET /ISAPI/System/Network/SNMP/advanced/trapReceivers
of SNMP in version 3
Set all trap address parameters PUT /ISAPI/System/Network/SNMP/advanced/trapReceivers
of SNMP in version 3

144
Intelligent Security API (General) Developer Guide

Function Request URI


Add a new trap address of POST /ISAPI/System/Network/SNMP/advanced/trapReceivers
SNMP in version 3
Delete all trap addresses of DELETE /ISAPI/System/Network/SNMP/advanced/
SNMP in version 3 trapReceivers
Get a single trap address's GET /ISAPI/System/Network/SNMP/advanced/trapReceivers/
parameters of SNMP in version <ID>
3
Set parameters for a single trap PUT /ISAPI/System/Network/SNMP/advanced/trapReceivers/
address of SNMP in version 3 <ID>
Delete a single address of DELETE /ISAPI/System/Network/SNMP/advanced/
SNMP in version 3 trapReceivers/<ID>

15.2.3 Network Interface

Network Interface

Function Request URI


Get configuration capability of GET /ISAPI/System/Network/interfaces/capabilities
multiple network interfaces
Get configuration capability of GET /ISAPI/System/Network/interfaces/<ID>/capabilities
one network interface
Get information of multiple GET /ISAPI/System/Network/interfaces
network interfaces
Get or set parameters of one GET or PUT /ISAPI/System/Network/interfaces/<ID>
network interface
Get IP address of one network GET or PUT /ISAPI/System/Network/interfaces/<ID>/ipAddress
interface
Get connection configuration GET /ISAPI/System/Network/interfaces/<ID>/link/capabilities
capability of a specific network
interface
Get or set connection GET or PUT /ISAPI/System/Network/interfaces/<ID>/link
parameters of a specific
network interface

145
Intelligent Security API (General) Developer Guide

PoE

Function Request URI


Get configuration capability of GET /ISAPI/System/Network/POE/capabilities?format=json
PoE port
Get or set PoE port parameters GET or PUT /ISAPI/System/Network/POE?format=json

UPnP

Function Request URI


Get the UPnP configuration GET /ISAPI/System/Network/UPnP/capabilities
capability
Get or set UPnP parameters GET or PUT /ISAPI/System/Network/UPnP
Get or set parameters of all GET or PUT /ISAPI/System/Network/UPnP/ports
UPnP ports
Get or set parameters of one GET or PUT /ISAPI/System/Network/UPnP/ports/<ID>
UPnP port
Get mapping statuses of all GET /ISAPI/System/Network/UPnP/ports/status
UPnP ports
Get mapping status of one GET /ISAPI/System/Network/UPnP/ports/<ID>/status
UPnP port

15.2.4 Wireless Network

Wi-Fi

Function Request URI


Get Wi-Fi configuration capability GET /ISAPI/System/Network/interfaces/<ID>/
wireless/capabilities
Get or set Wi-Fi parameters of one network GET or PUT /ISAPI/System/Network/
interface interfaces/<ID>/wireless
Get wireless connection status GET /ISAPI/System/Network/interfaces/<ID>/
wireless/connectStatus
WPS (Wi-Fi Protected Get WPS configuration GET /ISAPI/System/Network/WPS/capabilities
Setup) capability

146
Intelligent Security API (General) Developer Guide

Function Request URI


Get or set WPS GET or PUT /ISAPI/System/Network/
parameters of a interfaces/<ID>/WPS
specific network
interface
Set parameters of PBC PUT /ISAPI/System/Network/interfaces/
(Push Button <ID>/WPS/AutoConnect
Configuration)
automatic connection
of WPS
Get or set parameters GET or PUT /ISAPI/System/Network/
of PIN (Personal interfaces/<ID>/WPS/ApPinCode
Identification Number)
code of wireless access
point
Get or set PIN GET or PUT /ISAPI/System/Network/
(Personal Identification interfaces/<ID>/WPS/devicePinCode
Number) code of WPS
of device
Update PIN (Personal PUT /ISAPI/System/Network/interfaces/
Identification Number) <ID>/WPS/devicePinCodeUpdate
code of WPS of device

Wireless Hotspot

Function Request URI


Get configuration capability of GET /ISAPI/System/Network/interfaces/<ID>/wirelessServer/
wireless hotspot capabilities
Get or set wireless hotspot GET or PUT /ISAPI/System/Network/interfaces/<ID>/
parameters wirelessServer
Get list of devices connected to GET /ISAPI/System/Network/interfaces/<ID>/wirelessServer/
hotspot accessDeviceList
Get information of a device GET /ISAPI/System/Network/interfaces/<ID>/wireless/
connected to hotspot accessDeviceList/<ID>
Get capability of devices GET /ISAPI/System/Network/interfaces/<ID>/wireless/
connected to hotspot accessDeviceList/capabilities

147
Intelligent Security API (General) Developer Guide

Function Request URI


Get hotspot list GET /ISAPI/System/Network/interfaces/<ID>/wireless/
accessPointList
Get one hotspot information GET /ISAPI/System/Network/interfaces/<ID>/wireless/
accessPointList/<ID>

Wireless Dial

Function Request URI


Get configuration capability of GET /ISAPI/System/Network/WirelessDial/Interfaces/<ID>/
wireless dial dial/capabilities
Get or set wireless dial GET or PUT /ISAPI/System/Network/WirelessDial/Interfaces/
parameters <ID>/dial
Get wireless dial schedule GET /ISAPI/System/Network/WirelessDial/Interfaces/<ID>/
schedule

Network Keepalive

Function Request URI


Get network keepalive GET /ISAPI/System/Network/WirelessDial/Interfaces/<ID>/
capability keepAlive/capabilities?format=json
Get or set network keepalive GET or PUT /ISAPI/System/Network/WirelessDial/Interfaces/
parameters <ID>/keepAlive?format=json .
Test network keepalive POST /ISAPI/System/Network/WirelessDial/Interfaces/<ID>/
configuration keepAlive/test?format=json

Network Traffic Monitoring

Function Request URI


Get network traffic monitoring GET /ISAPI/System/Network/WirelessDial/Interfaces/<ID>/
capability trafficMonitor/capabilities?format=json ;
Get or set network traffic GET or PUT /ISAPI/System/Network/WirelessDial/Interfaces/
monitoring parameters <ID>/trafficMonitor?format=json .
Get network traffic monitoring GET /ISAPI/System/Network/WirelessDial/Interfaces/<ID>/
status trafficMonitor/status?format=json .
Network traffic pre-alarm to be Alarm Details:
uploaded JSON_EventNotificationAlert_NetworkTrafficPrealarmMsg

148
Intelligent Security API (General) Developer Guide

SMS Configuration

Function Request URI


Get dial information GET /ISAPI/System/Network/WirelessDial/Interfaces/<ID>/
configuration capability messageConfig/messageConfigCap ):
Get or set parameters of dial GET or PUT /ISAPI/System/Network/WirelessDial/Interfaces/
information configuration <ID>/messageConfig
Get all dial allowlist GET /ISAPI/System/Network/WirelessDial/Interfaces/<ID>/
configuration messageConfig/WhiteList/<ID> )
Get or set specific dial allowlist GET or PUT /ISAPI/System/Network/WirelessDial/Interfaces/
configuration <ID>/messageConfig/WhiteList

15.2.5 Network Service

Software Service

Function Request URI


Get configuration capability of GET /ISAPI/System/Software/channels/<ID>/capabilities
software service
Get or set parameters of GET or PUT /ISAPI/System/Software/channels/<ID>
software service

Session Initialization Protocol (SIP) Server

Function Request URI


Get configuration capability of GET /ISAPI/System/Network/SIP/<ID>/capabilities
a specific SIP server
Get configuration capability of GET /ISAPI/System/Network/SIP/capabilities
all SIP servers
Get or set parameters of all SIP GET or PUT /ISAPI/System/Network/SIP
servers
Get or set parameters of one GET or PUT /ISAPI/System/Network/SIP/<ID>
SIP server
Get configuration capability of GET /ISAPI/System/Network/SIP/<ID>/SIPInfo/capabilities
SIP server
Get or set information of one GET or PUT /ISAPI/System/Network/SIP/<ID>/SIPInfo
SIP server

149
Intelligent Security API (General) Developer Guide

Function Request URI


Get or set information of all SIP GET or PUT /ISAPI/System/Network/SIP/<ID>/SIPInfo/
servers multiInfo
Get configuration capability of GET /ISAPI/System/Network/SIP/voiceTalkCtrl/capabilities?
SIP intercom format=json
Get or set SIP intercom GET or PUT /ISAPI/System/Network/SIP/voiceTalkCtrl/<ID>?
parameters format=json

File Transfer Protocol (FTP) Server

Function Request URI


Get configuration capability of GET /ISAPI/System/Network/ftp/capabilities
FTP server
Get or set parameters of one GET or PUT /ISAPI/System/Network/ftp/<ID>
FTP server
Get or set parameters of all FTP GET or PUT /ISAPI/System/Network/ftp
servers
Perform FTP server test POST /ISAPI/System/Network/ftp/test

Dynamic Domain Name Server (DDNS)

Function Request URI


Get DDNS configuration GET /ISAPI/System/Network/DDNS/capabilities
capability
Get or set parameters of all GET or PUT /ISAPI/System/Network/DDNS
DDNSs
Get or set parameters of one GET or PUT /ISAPI/System/Network/DDNS/<ID>
DDNS
Get configuration capability of GET /ISAPI/System/Network/interfaces/<ID>/
dynamic domain name dynamicHostName/capabilities?format=json
Get or set dynamic domain GET or PUT /ISAPI/System/Network/interfaces/<ID>/
name dynamicHostName?format=json

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

Function Request URI


Get log server configuration GET /ISAPI/System/logServer/capabilities
capability
Get or set log server GET or PUT /ISAPI/System/logServer
parameters
Perform log server text POST /ISAPI/System/logServer/test

Static Routing

Function Request URI


Get, set, or delete static routing GET, PUT, or DELETE /ISAPI/System/Network/StaticRoute
parameters

15.3 Time Settings


This chapter lists the request URIs for device time configuration, including setting time, setting time
zone, and so on.

Function Request URI


Get time configuration GET /ISAPI/System/time/capabilities
capability
Note
To check if time configuration is supported, you can call the
GET /ISAPI/System/capabilities to get the device capability
( XML_DeviceCap ). If supports, the node <isSupportTimeCap>
will be returned.

Get or set time type GET or PUT /ISAPI/System/time/timeType?format=json


Get or set time parameters GET or PUT /ISAPI/System/time
Get or set time zone GET or PUT /ISAPI/System/time/timeZone
Get or set local time GET or PUT /ISAPI/System/time/localTime
parameters
NTP Server • Get NTP server capability: GET /ISAPI/System/time/
ntpServers/capabilities
• Get, set, or delete multiple NTP servers: GET, PUT, or DELETE /
ISAPI/System/time/ntpServers

151
Intelligent Security API (General) Developer Guide

Function Request URI


• Get set, or delete one NTP server: GET, PUT, or DELETE /ISAPI/
System/time/ntpServers/<ID>
• Add one NTP server: POST /ISAPI/System/time/ntpServers
• Execute NTP server test: POST /ISAPI/System/time/
ntpServers/test

15.4 System Diagnose


This chapter lists the request URIs for getting system diagnose information and the exporting
status.

Function Request URI


Get diagnose information GET /ISAPI/System/diagnosedData
Get process of exporting GET /ISAPI/System/diagnosedData/exportStatus
diagnose information
Note
To check if getting disgnose information is supported, you can
call /ISAPI/System/capabilities by GET method to get the
device capability ( XML_DeviceCap >. If supports, the node
<isSupportDiagnosedData> will be returned.

15.5 Data Replenishment


In the condition of disconnection between platform and NVR, the NVR saves the data of people
counting, heat map, temperature, and vehicle. When the connection is resumed, the platform can
get the specified data from NVR during disconnection period.

People Counting Data Replenishment

Function Request URI


Get data replenishment GET /ISAPI/System/Video/inputs/channels/counting/
capability of people counting collection/capabilities?format=json

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

Function Request URI


device via the node <isSupportCountingCollection> in
XML_VideoCap .

Perform data replenishment of POST /ISAPI/System/Video/inputs/channels/counting/


people counting collection?format=json

Heat Map Data Replenishment

Function Request URI


Get data replenishment GET /ISAPI/System/Video/inputs/channels/heatMap/
capability of heat map collection/capabilities?format=json

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 .

Perform data replenishment of POST /ISAPI/System/Video/inputs/channels/heatMap/


heat map collection?format=json

Temperature Data Replenishment

Function Request URI


Get data replenishment GET /ISAPI/Thermal/temperature/collection/capabilities?
capability of temperature format=json

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 .

Perform temperature data POST /ISAPI/Thermal/temperature/collection?format=json


replenishment

153
Intelligent Security API (General) Developer Guide

Vehicle Detection Data Replenishment

Function Request URI


Get intelligent management GET /ISAPI/SDT/Management/IntelligentSearch/capabilities?
capability format=json
Perform vehicle detection data POST /ISAPI/SDT/Management/IntelligentSearch?format=json
replenishment
Note
Before searching for vehicle detection data, you should check
whether the device supports this function. If it supports, the
node <isSupportIntelligentSearch> will be returned in the
intelligent management capability
JSON_Cap_IntelliManagement (call /ISAPI/SDT/Management/
capabilities?format=json by GET method to get) and its value is
"true".

154
Intelligent Security API (General) Developer Guide

Appendix A. Request URIs

A.1 /ISAPI/AUXInfo

A.1.1 /ISAPI/AUXInfo/attributes/Channels
Get the attributes of channels.

Request URI Definition


Table A-1 GET /ISAPI/AUXInfo/attributes/Channels
Method GET
Description Get the attributes of channels.
Query None.
Request None.
Response XML_ChannelInfoList

A.1.2 /ISAPI/AUXInfo/attributes/Channels/<ID>
Get the attributes of a specific channel according to channel ID.

Request URI Definition


Table A-2 GET /ISAPI/AUXInfo/attributes/Channels/<ID>
Method GET
Description Get the attributes of a specific channel according to channel ID.
Query None.
Request None.
Response XML_ChannelInfo

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.

Request URI Definition


Table A-3 GET /ISAPI/ContentMgmt/capabilities
Method GET
Description Get storage capability.
Query None.
Request None.
Response Succeeded: XML_RacmCap
Failed: XML_ResponseStatus

A.2.2 /ISAPI/ContentMgmt/download
Download the file via plug-in.

Request URI Definition


Table A-4 POST /ISAPI/ContentMgmt/download
Method POST
Description Download the file.
Query None.
Request XML_downloadRequest
Response File

A.2.3 /ISAPI/ContentMgmt/download/capabilities
Get the downloading capability sets.

156
Intelligent Security API (General) Developer Guide

Request URI Definition


Table A-5 GET /ISAPI/ContentMgmt/download/capabilities
Method GET
Description Get the downloading capability sets.
Query None.
Request None.
Response Succeeded: XML_DownloadAbility
Failed: XML_ResponseStatus

A.2.4 /ISAPI/ContentMgmt/download/toUSB/<taskId>/progress?format=json
Get the progress of exporting files to devices via USB.

Request URI Definition


Table A-6 GET /ISAPI/ContentMgmt/download/toUSB/<taskId>/progress?format=json
Method GET
Description Get the progress of exporting files to devices via USB.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_ProgressInfo
Failed: JSON_ResponseStatus

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

Request URI Definition


Table A-7 GET /ISAPI/ContentMgmt/download/toUSB/capabilities?format=json
Method GET
Description Get the capability of exporting files to devices via USB.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_Cap_ExportInfo
Failed: JSON_ResponseStatus

A.2.6 /ISAPI/ContentMgmt/download/toUSB?format=json
Export files to devices via USB.

Request URI Definition


Table A-8 POST /ISAPI/ContentMgmt/download/toUSB?format=json
Method POST
Description Export files to devices via USB.
Query format: determine the format of request or response message.
Request JSON_ExportInfo
Response Succeeded: JSON_ExporttoUSB_TaskInfo
Failed: JSON_ResponseStatus

A.2.7 /ISAPI/ContentMgmt/InputProxy/channels
Operations about management of all digital channels.

Request URI Definition


Table A-9 GET /ISAPI/ContentMgmt/InputProxy/channels
Method GET
Description Get parameters of all digital channels.
Query None.

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.

Request URI Definition


Table A-12 GET /ISAPI/ContentMgmt/InputProxy/channels/<ID>
Method GET
Description Get parameter of a specific digital channel.
Query None.
Request None.
Response Succeeded: XML_InputProxyChannel
Failed: XML_ResponseStatus
Table A-13 PUT /ISAPI/ContentMgmt/InputProxy/channels/<ID>
Method PUT
Description Set parameters of a specific digital channel.
Query None.

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.

Request URI Definition


Table A-15 GET /ISAPI/ContentMgmt/InputProxy/channels/<ID>/capabilities
Method GET
Description Get management capability of a specific digital channel.
Query None.
Request None.
Response Succeeded: XML_Cap_InputProxyChannel
Failed: XML_ResponseStatus

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

Request URI Definition


Table A-16 GET /ISAPI/ContentMgmt/InputProxy/channels/<ID>/chanCtrl
Method GET
Description Get control parameters of a specific channel.
Query None.
Request None.
Response Succeeded: XML_ChanCtrl
Failed: XML_ResponseStatus
Table A-17 PUT /ISAPI/ContentMgmt/InputProxy/channels/<ID>/chanCtrl
Method PUT
Description Set control parameters of a specific channel.
Query None.
Request XML_ChanCtrl
Response XML_ResponseStatus

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.

Request URI Definition


Table A-18 GET /ISAPI/ContentMgmt/InputProxy/channels/<ID>/deviceInfo
Method GET
Description Get the device parameters of a digital channel.
Query None.
Request None.
Response Succeeded: XML_DeviceInfo
Failed: XML_ResponseStatus

161
Intelligent Security API (General) Developer Guide

Table A-19 PUT /ISAPI/ContentMgmt/InputProxy/channels/<ID>/deviceInfo


Method PUT
Description Set the device parameters of a digital channel.
Query None.
Request XML_DeviceInfo
Response XML_ResponseStatus

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.

Request URI Definition


Table A-20 POST /ISAPI/ContentMgmt/InputProxy/channels/<ID>/portMapParam
Method POST
Description Check if port mapping is required for connecting to camera according
to the IP address of terminal.
Query None.
Request XML_PortMapParam
Response Succeeded: XML_PortMapParamRet
Failed: XML_ResponseStatus

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.

Request URI Definition


Table A-21 GET /ISAPI/ContentMgmt/InputProxy/channels/<ID>/reboot
Method GET
Description 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.

Request URI Definition


Table A-22 GET /ISAPI/ContentMgmt/InputProxy/channels/<ID>/status
Method GET
Description Get status of a specific digital channel.
Query None.
Request None.
Response XML_InputProxyChannelStatus

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.

Request URI Definition


Table A-23 GET /ISAPI/ContentMgmt/InputProxy/channels/<ID>/video/overlays
Method GET
Description Get text overlay parameters of a specific video digital input channel.
Query None.
Request None.
Response Succeeded: XML_Channel_VideoOverlay
Failed: XML_ResponseStatus

163
Intelligent Security API (General) Developer Guide

Table A-24 PUT /ISAPI/ContentMgmt/InputProxy/channels/<ID>/video/overlays


Method PUT
Description Set text overlay parameters of a specific video digital input channel.
Query None.
Request XML_Channel_VideoOverlay
Response XML_ResponseStatus

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.

Request URI Definition


Table A-25 GET /ISAPI/ContentMgmt/InputProxy/channels/<ID>/video/overlays/capabilities
Method GET
Description Get the text overlay configuration capability of a specific video digital
input channel.
Query None.
Request None.
Response Succeeded: XML_ChannelCap_VideoOverlay
Failed: XML_ResponseStatus

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

Request URI Definition


Table A-26 PUT /ISAPI/ContentMgmt/InputProxy/channels/activate
Method PUT
Description Activate the network devices.
Query None
Request XML_VideoSourceActivation
Response XML_ResponseStatus

A.2.18 /ISAPI/ContentMgmt/InputProxy/channels/activate/capabilities
Get capability of activating network devices.

Request URI Definition


Table A-27 GET /ISAPI/ContentMgmt/InputProxy/channels/activate/capabilities
Method GET
Description Get capability of activating network devices.
Query None
Request None.
Response Succeeded: XML_VideoSourceActivationCapability
Failed: XML_ResponseStatus

A.2.19 /ISAPI/ContentMgmt/InputProxy/channels/capabilities
Get management capability of all digital channels.

Request URI Definition


Table A-28 GET /ISAPI/ContentMgmt/InputProxy/channels/capabilities
Method GET
Description Get management capability of all digital channels.
Query None.
Request None.
Response XML_Cap_InputProxyChannelListCap

165
Intelligent Security API (General) Developer Guide

A.2.20 /ISAPI/ContentMgmt/InputProxy/channels/status
Get status of all digital channels.

Request URI Definition


Table A-29 GET /ISAPI/ContentMgmt/InputProxy/channels/status
Method GET
Description Get status of all digital channels.
Query None.
Request None.
Response XML_InputProxyChannelStatusList

A.2.21 /ISAPI/ContentMgmt/InputProxy/deviceInfo
Get device parameters of all digital channels.

Request URI Definition


Table A-30 POST /ISAPI/ContentMgmt/InputProxy/deviceInfo
Method POST
Description Get device parameters of all digital channels.
Query None.
Request XML_ProxyDevicesInfoCondition
Response Succeeded: XML_ProxyDevicesInfoResult
Failed: XML_ResponseStatus

A.2.22 /ISAPI/ContentMgmt/InputProxy/search
Search for network cameras in the LAN (Local Area Network) that can be connected.

Request URI Definition


Table A-31 GET /ISAPI/ContentMgmt/InputProxy/search
Method GET
Description 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.

Request URI Definition


Table A-32 POST /ISAPI/ContentMgmt/InputProxy/sourceCapability
Method POST
Description Get supported number of digital channels.
Query None.
Request XML_sourceDescriptor
Response XML_sourceCapability

A.2.24 /ISAPI/ContentMgmt/IOProxy/inputs
Operations about the alarm input configuration of all digital channels.

Request URI Definition


Table A-33 GET /ISAPI/ContentMgmt/IOProxy/inputs
Method GET
Description Get the alarm input parameters of all digital channels.
Query None.
Request None.
Response Succeeded: XML_IOProxyInputPortList
Failed: XML_ResponseStatus
Table A-34 PUT /ISAPI/ContentMgmt/IOProxy/inputs
Method PUT
Description Set the alarm input parameters of all digital channels.
Query None.

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.

Request URI Definition


Table A-36 GET /ISAPI/ContentMgmt/IOProxy/inputs/<ID>
Method GET
Description Get the alarm input parameters of a specific digital channel.
Query None.
Request None.
Response Succeeded: XML_IOProxyInputPort
Failed: XML_ResponseStatus
Table A-37 PUT /ISAPI/ContentMgmt/IOProxy/inputs/<ID>
Method PUT
Description Set the alarm input parameters of a specific digital channel.
Query None.
Request XML_IOProxyInputPort
Response XML_ResponseStatus
Table A-38 DELETE /ISAPI/ContentMgmt/IOProxy/inputs/<ID>
Method DELETE
Description Delete the alarm input configuration of a specific digital channel.
Query None.

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.

Request URI Definition


Table A-39 GET /ISAPI/ContentMgmt/IOProxy/inputs/<ID>/status
Method GET
Description Get the alarm input status of a specific digital channel.
Query None.
Request None.
Response Succeeded: XML_IOPortStatus
Failed: XML_ResponseStatus

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.

Request URI Definition


Table A-40 GET /ISAPI/ContentMgmt/IOProxy/outputs
Method GET
Description Get the alarm output parameters of all digital channels.
Query None.
Request None.
Response Succeeded: XML_IOProxyOutputPortList
Failed: XML_ResponseStatus

169
Intelligent Security API (General) Developer Guide

Table A-41 PUT /ISAPI/ContentMgmt/IOProxy/outputs


Method PUT
Description Set the alarm output parameters of all digital channels.
Query None.
Request XML_IOProxyOutputPortList
Response XML_ResponseStatus
Table A-42 POST /ISAPI/ContentMgmt/IOProxy/outputs
Method POST
Description Add the alarm output configuration of a specific digital channel.
Query None.
Request XML_IOProxyOutputPort
Response XML_ResponseStatus

A.2.28 /ISAPI/ContentMgmt/IOProxy/outputs/<ID>
Operations about the alarm output configuration of a specific digital channel.

Request URI Definition


Table A-43 GET /ISAPI/ContentMgmt/IOProxy/outputs/<ID>
Method GET
Description Get the alarm output parameters of a specific digital channel.
Query None.
Request None.
Response Succeeded: XML_IOProxyOutputPort
Failed: XML_ResponseStatus
Table A-44 PUT /ISAPI/ContentMgmt/IOProxy/outputs/<ID>
Method PUT
Description Set the alarm output parameters of a specific digital channel.
Query None.
Request XML_IOProxyOutputPort
Response XML_ResponseStatus

170
Intelligent Security API (General) Developer Guide

Table A-45 DELETE /ISAPI/ContentMgmt/IOProxy/outputs/<ID>


Method DELETE
Description Delete the alarm output configuration of a specific digital channel.
Query None.
Request None.
Response XML_ResponseStatus

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.

Request URI Definition


Table A-46 GET /ISAPI/ContentMgmt/IOProxy/outputs/<ID>/status
Method GET
Description Get the alarm output status of a specific digital channel.
Query None.
Request None.
Response Succeeded: XML_IOPortStatus
Failed: XML_ResponseStatus

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.

Request URI Definition


Table A-47 PUT /ISAPI/ContentMgmt/IOProxy/outputs/<ID>/trigger
Method PUT
Description Trigger alarm output of a specific digital channel.
Query None.

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.

Request URI Definition


Table A-48 GET /ISAPI/ContentMgmt/logConfig
Method GET
Description Get log parameters.
Query None.
Request None.
Response Succeeded: XML_LogConfig
Failed: XML_ResponseStatus
Table A-49 PUT /ISAPI/ContentMgmt/logConfig
Method PUT
Description Set log parameters.
Query None.
Request XML_LogConfig
Response XML_ResponseStatus

A.2.32 /ISAPI/ContentMgmt/logConfig/capabilities
Get log configuration capability.

Request URI Definition


Table A-50 GET /ISAPI/ContentMgmt/logConfig/capabilities
Method GET
Description Get log configuration capability.
Query None.

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.

Request URI Definition


Table A-51 POST /ISAPI/ContentMgmt/logSearch
Method POST
Description Search for log files.
Query None.
Request XML_Log_CMSearchDescription
Response Succeeded: XML_Log_CMSearchResult
Failed: XML_ResponseStatus

A.2.34 /ISAPI/ContentMgmt/logSearch?format=json
Search log information.

Request URI Definition


Table A-52 POST /ISAPI/ContentMgmt/logSearch?format=json
Method POST
Description Search log information.
Query format: determine the format of request or response message.
Request JSON_SearchCondition
Response Succeeded: JSON_MatchList
Failed: JSON_ResponseStatus

A.2.35 /ISAPI/ContentMgmt/logSearch/dataPackage
Export device log files.

173
Intelligent Security API (General) Developer Guide

Request URI Definition


Table A-53 POST /ISAPI/ContentMgmt/logSearch/dataPackage
Method POST
Description Export device log files.
Query None.
Request XML_CMSearchDataPackage
Response Succeeded: XML_CMSearchDataPackageResult
Failed: XML_ResponseStatus

A.2.36 /ISAPI/ContentMgmt/PTZCtrlProxy/capabilities
Get PTZ control capability of digital channels.

Request URI Definition


Table A-54 /ISAPI/ContentMgmt/PTZCtrlProxy/capabilities
Method GET
Description Get PTZ control capability of digital channels.
Query None
Request None
Response Succeeded: XML_PTZCtrlCap
Failed: XML_ResponseStatus

A.2.37 /ISAPI/ContentMgmt/PTZCtrlProxy/channels
Get or set parameters of all digital PTZ channels.

Request URI Definition


Table A-55 GET /ISAPI/ContentMgmt/PTZCtrlProxy/channels
Method GET
Description Get parameters of all digital PTZ channels.
Query None

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.

Request URI Definition


Table A-57 GET /ISAPI/ContentMgmt/PTZCtrlProxy/channels/<ID>
Method GET
Description Get parameters of a digital PTZ channel.
Query None
Request None
Response Succeeded: XML_PTZChannel
Failed: XML_ResponseStatus
Table A-58 PUT /ISAPI/ContentMgmt/PTZCtrlProxy/channels/<ID>
Method PUT
Description Set parameters of a digital PTZ channel.
Query None
Request XML_PTZChannel
Response XML_ResponseStatus

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.

Request URI Definition


Table A-59 PUT /ISAPI/ContentMgmt/PTZCtrlProxy/channels/<ID>/autoPan
Method PUT
Description Control the fans.
Query None
Request XML_autoPanData
Response XML_ResponseStatus

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.

Request URI Definition


Table A-60 GET /ISAPI/ContentMgmt/PTZCtrlProxy/channels/<ID>/capabilities
Method GET
Description Get the capability of a digital PTZ channel.
Query None
Request None
Response Succeeded: XML_PTZChanelCap
Failed: XML_ResponseStatus

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

Request URI Definition


Table A-61 PUT /ISAPI/ContentMgmt/PTZCtrlProxy/channels/<ID>/continuous
Method PUT
Description Manually control PTZ.
Query None
Request XML_Manual_PTZData
Response XML_ResponseStatus

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.

Request URI Definition


Table A-62 PUT /ISAPI/ContentMgmt/PTZCtrlProxy/channels/<ID>/momentary
Method PUT
Description Perform scheduled PTZ control via digital channel.
Query None
Request XML_Scheduled_PTZData
Response XML_ResponseStatus

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.

Request URI Definition


Table A-63 PUT /ISAPI/ContentMgmt/PTZCtrlProxy/channels/<ID>/onepushfoucs/start
Method PUT
Description 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.

Request URI Definition


Table A-64 GET /ISAPI/ContentMgmt/PTZCtrlProxy/channels/<ID>/patrols
Method GET
Description Get all patrols of a digital PTZ channel.
Query None
Request None
Response Succeeded: XML_PTZPatrolList
Failed: XML_ResponseStatus
Table A-65 PUT /ISAPI/ContentMgmt/PTZCtrlProxy/channels/<ID>/patrols
Method GET
Description Set all patrols of a digital PTZ channel.
Query None
Request XML_PTZPatrolList
Response XML_ResponseStatus
Table A-66 POST /ISAPI/ContentMgmt/PTZCtrlProxy/channels/<ID>/patrols
Method POST
Description Add a patrol.
Query None
Request XML_PTZPatrol
Response XML_ResponseStatus

178
Intelligent Security API (General) Developer Guide

Table A-67 DELETE /ISAPI/ContentMgmt/PTZCtrlProxy/channels/<ID>/patrols


Method DELETE
Description Delete all patrols of a digital PTZ channel.
Query None
Request None
Response XML_ResponseStatus

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.

Request URI Definition


Table A-68 GET /ISAPI/ContentMgmt/PTZCtrlProxy/channels/<ID>/patrols/<ID>
Method GET
Description Get a patrol of a digital PTZ channel.
Query None
Request None
Response Succeeded: XML_PTZPatrol
Failed: XML_ResponseStatus
Table A-69 PUT /ISAPI/ContentMgmt/PTZCtrlProxy/channels/<ID>/patrols/<ID>
Method PUT
Description Set a patrol of a digital PTZ channel.
Query None
Request XML_PTZPatrol
Response XML_ResponseStatus
Table A-70 DELETE /ISAPI/ContentMgmt/PTZCtrlProxy/channels/<ID>/patrols/<ID>
Method DELETE
Description Delete a patrol of a digital PTZ channel.
Query None

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.

Request URI Definition


Table A-71 PUT /ISAPI/ContentMgmt/PTZCtrlProxy/channels/<ID>/patrols/<ID>/pause
Method PUT
Description Pause calling a patrol 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> is the patrol
No.

A.2.47 /ISAPI/ContentMgmt/PTZCtrlProxy/channels/<ID>/patrols/<ID>/start
Start calling a patrol of a digital PTZ channel.

Request URI Definition


Table A-72 PUT /ISAPI/ContentMgmt/PTZCtrlProxy/channels/<ID>/patrols/<ID>/start
Method PUT
Description Start calling a patrol of a digital PTZ channel.
Query None
Request None
Response XML_ResponseStatus

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.

Request URI Definition


Table A-73 GET /ISAPI/ContentMgmt/PTZCtrlProxy/channels/<ID>/patrols/<ID>/status
Method GET
Description Get a patrol's status of a digital PTZ channel.
Query None
Request None
Response Succeeded: XML_PTZPatrolStatus
Failed: 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.49 /ISAPI/ContentMgmt/PTZCtrlProxy/channels/<ID>/patrols/<ID>/stop
Stop calling a patrol of a digital PTZ channel.

Request URI Definition


Table A-74 PUT /ISAPI/ContentMgmt/PTZCtrlProxy/channels/<ID>/patrols/<ID>/stop
Method PUT
Description Stop calling a patrol 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> is the patrol
No.

181
Intelligent Security API (General) Developer Guide

A.2.50 /ISAPI/ContentMgmt/PTZCtrlProxy/channels/<ID>/position3D
Perform 3D positioning.

Request URI Definition


Table A-75 PUT /ISAPI/ContentMgmt/PTZCtrlProxy/channels/<ID>/position3D
Method PUT
Description Perform 3D positioning.
Query None
Request XML_Position3D
Response XML_ResponseStatus

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.

Request URI Definition


Table A-76 GET /ISAPI/ContentMgmt/PTZCtrlProxy/channels/<ID>/presets
Method GET
Description Get presets of a digital PTZ channel.
Query None
Request None
Response Succeeded: XML_PTZPresetList
Failed: XML_ResponseStatus
Table A-77 PUT /ISAPI/ContentMgmt/PTZCtrlProxy/channels/<ID>/presets
Method PUT
Description Set presets of a digital PTZ channel.
Query None
Request XML_PTZPresetList
Response XML_ResponseStatus

182
Intelligent Security API (General) Developer Guide

Table A-78 POST /ISAPI/ContentMgmt/PTZCtrlProxy/channels/<ID>/presets


Method POST
Description Add a preset to a digital PTZ channel.
Query None
Request XML_PTZPreset
Response XML_ResponseStatus
Table A-79 DELETE /ISAPI/ContentMgmt/PTZCtrlProxy/channels/<ID>/presets
Method DELETE
Description Delete presets of a digital PTZ channel.
Query None
Request None
Response XML_ResponseStatus

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.

Request URI Definition


Table A-80 GET /ISAPI/ContentMgmt/PTZCtrlProxy/channels/<ID>/presets/<ID>
Method GET
Description Get a preset of a digital PTZ channel.
Query None
Request None
Response Succeeded: XML_PTZPreset
Failed: XML_ResponseStatus
Table A-81 PUT /ISAPI/ContentMgmt/PTZCtrlProxy/channels/<ID>/presets/<ID>
Method PUT
Description Set a preset of a digital PTZ channel.
Query None

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.

Request URI Definition


Table A-83 PUT /ISAPI/ContentMgmt/PTZCtrlProxy/channels/<ID>/presets/<ID>/goto
Method PUT
Description Call 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.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

Request URI Definition


Table A-84 GET /ISAPI/ContentMgmt/record/control/cleanUp/capabilities?format=json
Method GET
Description Get the capability of deleting saved files in a batch.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_Cap_CleanUpFileList
Failed: JSON_ResponseStatus

A.2.55 /ISAPI/ContentMgmt/record/control/cleanUp?format=json
Delete saved files in a batch.

Request URI Definition


Table A-85 POST /ISAPI/ContentMgmt/record/control/cleanUp?format=json
Method POST
Description Delete saved files in a batch.
Query format: determine the format of request or response message.
Request JSON_CleanUpFileList
Response JSON_ResponseStatus

A.2.56 /ISAPI/ContentMgmt/record/control/locks/capabilities
Get video locking or unlocking capability.

Request URI Definition


Table A-86 GET /ISAPI/ContentMgmt/record/control/locks/capabilities
Method GET
Description Get video locking or unlocking 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

185
Intelligent Security API (General) Developer Guide

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_LockCap
Failed: XML_ResponseStatus

A.2.57 /ISAPI/ContentMgmt/record/control/locks/name
Lock or unlock videos by file name.

Request URI Definition


Table A-87 PUT /ISAPI/ContentMgmt/record/control/locks/name
Method PUT
Description Lock or unlock videos by file name.
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_LockByName
Response XML_ResponseStatus

A.2.58 /ISAPI/ContentMgmt/record/control/manual/start/tracks/<ID>
Start manual recording.

Request URI Definition


Table A-88 POST /ISAPI/ContentMgmt/record/control/manual/start/tracks/<ID>
Method POST
Description Start manual recording.
Query None.

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.

Request URI Definition


Table A-89 POST /ISAPI/ContentMgmt/record/control/manual/stop/tracks/<ID>
Method POST
Description Stop manual recording of a specific channel.
Query None.
Request None.
Response XML_ResponseStatus

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.

Request URI Definition


Table A-90 PUT /ISAPI/ContentMgmt/record/control/manualRefresh/channels/<ID>
Method PUT
Description Refresh the video mode manually before playback.
Query None.
Request None.
Response XML_ResponseStatus

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.

Request URI Definition


Table A-91 GET /ISAPI/ContentMgmt/record/control/remark/capabilities?format=json
Method GET
Description Get capability of adding remarks for videos by video ID.
Query format: determine the format of request or response message.
Request None
Response Succeeded: JSON_Cap_RemarkList
Failed: XML_ResponseStatus

A.2.62 /ISAPI/ContentMgmt/record/control/remark?format=json
Add remarks for videos by video ID.

Request URI Definition


Table A-92 PUT /ISAPI/ContentMgmt/record/control/remark?format=json
Method PUT
Description Add remarks for videos by video ID.
Query format: determine the format of request or response message.
Request JSON_RemarkList
Response XML_ResponseStatus

A.2.63 /ISAPI/ContentMgmt/record/profile
Get video track type.

Request URI Definition


Table A-93 GET /ISAPI/ContentMgmt/record/profile
Method GET
Description Get video track type.
Query None.

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.

Request URI Definition


Table A-94 PUT /ISAPI/ContentMgmt/record/storageMounts
Method PUT
Description Set recording storage parameters, including root directory, size, and
so on.
Query None.
Request XML_MountList
Response XML_ResponseStatus

A.2.65 /ISAPI/ContentMgmt/record/tracks
Operations about recording schedule configuration.

Request URI Definition


Table A-95 GET /ISAPI/ContentMgmt/record/tracks
Method GET
Description Get all recording schedules.
Query None.
Request None.
Response Succeeded: XML_TrackList
Failed: XML_ResponseStatus
Table A-96 PUT /ISAPI/ContentMgmt/record/tracks
Method PUT
Description Set all recording schedules.
Query None.

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.

Request URI Definition


Table A-98 GET /ISAPI/ContentMgmt/record/tracks/<ID>
Method GET
Description Get a recording schedule.
Query None.
Request None.
Response Succeeded: XML_Track
Failed: XML_ResponseStatus
Table A-99 PUT /ISAPI/ContentMgmt/record/tracks/<ID>
Method PUT
Description Set a recording schedule.
Query None.
Request XML_Track
Response XML_ResponseStatus
Table A-100 DELETE /ISAPI/ContentMgmt/record/tracks/<ID>
Method DELETE
Description Delete a recording schedule.
Query None.

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.

Request URI Definition


Table A-101 GET /ISAPI/ContentMgmt/record/tracks/<ID>/capabilities
Method GET
Description Get the configuration capability of the recording schedule.
Query None.
Request None.
Response Succeeded: XML_Cap_Track
Failed: XML_ResponseStatus

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.

Request URI Definition


Table A-102 POST /ISAPI/ContentMgmt/record/tracks/<ID>/dailyDistribution
Method POST
Description Search recorded video files by date.
Query None.
Request XML_trackDailyParam
Response XML_trackDailyDistribution

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.

Request URI Definition


Table A-103 GET or POST /ISAPI/ContentMgmt/search
Method GET or POST
Description Search for specific resources.
Query None.
Request XML_VideoPic_CMSearchDescription
Response Succeeded: XML_VideoPic_CMSearchResult
Failed: XML_ResponseStatus

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"

<?xml version="1.0" encoding="utf-8"?>


<CMSearchDescription>
<searchID>C77384AD-66A0-0001-E7C2-1151F04F90B0</searchID>
<trackIDList>
<trackID>101</trackID>
</trackIDList>
<timeSpanList>
<timeSpan>
<startTime>2017-03-13T16:00:00Z</startTime>
<endTime>2017-03-16T15:59:59Z</endTime>
</timeSpan>
</timeSpanList>
<maxResults>40</maxResults>
<searchResultPostion>0</searchResultPostion>
<metadataList>
<metadataDescriptor>//recordType.meta.std-cgi.com</metadataDescriptor>
</metadataList>

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

<?xml version="1.0" encoding="UTF-8"?>


<CMSearchResult version="2.0" xmlns="http://www.isapi.com/ver20/XMLSchema">
<searchID>{C77384AD-66A0-0001-E7C2-1151F04F90B0}</searchID>
<responseStatus>true</responseStatus>
<responseStatusStrg>OK</responseStatusStrg>
<numOfMatches>29</numOfMatches>
<matchList>
<searchMatchItem>
<sourceID>{0000000000-0000-0000-0000-000000000000}</sourceID>
<trackID>101</trackID>
<timeSpan>
<startTime>2017-03-14T10:32:01Z</startTime>
<endTime>2017-03-14T10:40:42Z</endTime>
</timeSpan>
<mediaSegmentDescriptor>
<contentType>video</contentType>
<codecType>H.264-BP</codecType>
<playbackURI>rtsp://10.17.132.49/Streaming/tracks/101/?
starttime=20170314T103201Z&amp;endtime=20170314T104042Z&amp;name=ch01_08000000016000000&amp;size
=260358144</playbackURI>
</mediaSegmentDescriptor>
<metadataMatches>
<metadataDescriptor>recordType.meta.isapi.com/timing</metadataDescriptor>
</metadataMatches>
</searchMatchItem>
<searchMatchItem>
<sourceID>{0000000000-0000-0000-0000-000000000000}</sourceID>
<trackID>101</trackID>
<timeSpan>
<startTime>2017-03-14T10:40:42Z</startTime>
<endTime>2017-03-14T10:53:14Z</endTime>
</timeSpan>
<mediaSegmentDescriptor>
<contentType>video</contentType>
<codecType>H.264-BP</codecType>
<playbackURI>rtsp://10.17.132.49/Streaming/tracks/101/?
starttime=20170314T104042Z&amp;endtime=20170314T105314Z&amp;name=ch01_08000000017000000&amp;size
=260603904</playbackURI>
</mediaSegmentDescriptor>
<metadataMatches>
<metadataDescriptor>recordType.meta.isapi.com/timing</metadataDescriptor>
</metadataMatches>
</searchMatchItem>

193
Intelligent Security API (General) Developer Guide

</matchList>
</CMSearchResult>

A.2.70 /ISAPI/ContentMgmt/search/profile
Get video search conditions.

Request URI Definition


Table A-104 GET /ISAPI/ContentMgmt/search/profile
Method GET
Description Get video search conditions.
Query None.
Request None.
Response Succeeded: XML_CMSearchProfile
Failed: XML_ResponseStatus

A.2.71 /ISAPI/ContentMgmt/security/logSearch
Search for security logs.

Request URI Definition


Table A-105 POST /ISAPI/ContentMgmt/security/logSearch
Method POST
Description Search for security logs.
Query None.
Request XML_VideoPic_CMSearchDescription
Response Succeeded: XML_VideoPic_CMSearchResult
Failed: XML_ResponseStatus

A.2.72 /ISAPI/ContentMgmt/SmartSearch
Search for video files by VCA event.

194
Intelligent Security API (General) Developer Guide

Request URI Definition


Table A-106 POST /ISAPI/ContentMgmt/SmartSearch
Method POST
Description Search for video files by VCA event.
Query None.
Request XML_SmartSearchDescription
Response XML_SmartSearchResult

A.2.73 /ISAPI/ContentMgmt/SmartSearch/capabilities
Get capability of searching videos by VCA event.

Request URI Definition


Table A-107 GET /ISAPI/ContentMgmt/SmartSearch/capabilities
Method GET
Description Get capability of searching videos by VCA event.
Query None.
Request None.
Response Succeeded: XML_Cap_SmartSearchDescription
Failed: XML_ResponseStatus

A.2.74 /ISAPI/ContentMgmt/spare/backup/<ID>?format=json
Edit the hot spare device information, delete a specified hot spare device.

Request URI Definition


Table A-108 PUT /ISAPI/ContentMgmt/spare/backup/<ID>?format=json
Method PUT
Description Edit the hot spare device information.
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

195
Intelligent Security API (General) Developer Guide

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_Backup
Response JSON_ResponseStatus
Table A-109 DELETE /ISAPI/ContentMgmt/spare/backup/<ID>?format=json
Method DELETE
Description Delete a specified hot spare device.
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 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.

Request URI Definition


Table A-110 GET /ISAPI/ContentMgmt/spare/backup?format=json
Method GET
Description Get the hot spare device list.
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

196
Intelligent Security API (General) Developer Guide

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: JSON_BackupList
Failed: JSON_ResponseStatus
Table A-111 POST /ISAPI/ContentMgmt/spare/backup?format=json
Method POST
Description Add a hot spare device.
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_Backup
Response Succeeded: JSON_BackupID
Failed: JSON_ResponseStatus

A.2.76 /ISAPI/ContentMgmt/spare/capabilities?format=json
Get the hot spare capability.

Request URI Definition


Table A-112 GET /ISAPI/ContentMgmt/spare/capabilities?format=json
Method GET
Description Get the hot spare capability.
Query format: determine the format of request or response message.
Request None
Response Succeeded: JSON_SpareCap
Failed: JSON_ResponseStatus

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.

Request URI Definition


Table A-113 PUT /ISAPI/ContentMgmt/spare/master/<ID>?format=json
Method PUT
Description Edit the working device information.
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_Master
Response JSON_ResponseStatus
Table A-114 DELETE /ISAPI/ContentMgmt/spare/master/<ID>?format=json
Method DELETE
Description Delete a specified working device.
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 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.

Request URI Definition


Table A-115 GET /ISAPI/ContentMgmt/spare/master?format=json
Method GET
Description Get the working device list.
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 Succeeded: JSON_MasterList
Failed: JSON_ResponseStatus
Table A-116 POST /ISAPI/ContentMgmt/spare/master?format=json
Method POST
Description Add a working device.
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_Master
Response Succeeded: JSON_MasterList
Failed: JSON_ResponseStatus

199
Intelligent Security API (General) Developer Guide

A.2.79 /ISAPI/ContentMgmt/spare?format=json
Get or set the hot spare working mode.

Request URI Definition


Table A-117 GET /ISAPI/ContentMgmt/spare?format=json
Method GET
Description Get the hot spare working mode.
Query format: determine the format of request or response message.
Request None
Response Succeeded: JSON_Spare
Failed: JSON_ResponseStatus
Table A-118 PUT /ISAPI/ContentMgmt/spare?format=json
Method PUT
Description Set the hot spare working mode.
Query format: determine the format of request or response message.
Request JSON_Spare
Response JSON_ResponseStatus

A.2.80 /ISAPI/ContentMgmt/storage
Get or set the current working mode of storage.

Request URI Definition


Table A-119 GET /ISAPI/ContentMgmt/storage
Method GET
Description Get the current working mode of storage.
Query None.
Request None.
Response Succeeded: XML_storage
Failed: XML_ResponseStatus

200
Intelligent Security API (General) Developer Guide

Table A-120 PUT /ISAPI/ContentMgmt/storage


Method PUT
Description Set the current working mode of storage.
Query None.
Request XML_storage
Response XML_ResponseStatus

A.2.81 /ISAPI/ContentMgmt/Storage/capabilities
Get the configuration capability of current storage working mode.

Request URI Definition


Table A-121 GET /ISAPI/ContentMgmt/Storage/capabilities
Method GET
Description Get the configuration capability of current storage working mode.
Query None.
Request None.
Response Succeeded: XML_Cap_storage
Failed: XML_ResponseStatus

A.2.82 /ISAPI/ContentMgmt/Storage/dataReconstruction/progress?format=json
Get the disk data reconstruction progress.

Request URI Definition


Table A-122 GET /ISAPI/ContentMgmt/Storage/dataReconstruction/progress?format=json
Method GET
Description Get the disk data reconstruction progress.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_Reconstruction_ProgressLists
Failed: JSON_ResponseStatus

201
Intelligent Security API (General) Developer Guide

A.2.83 /ISAPI/ContentMgmt/Storage/dataReconstruction?format=json
Start disk data reconstruction.

Request URI Definition


Table A-123 PUT /ISAPI/ContentMgmt/Storage/dataReconstruction?format=json
Method PUT
Description Start disk data reconstruction.
Query format: determine the format of request or response message.
Request JSON_DataReconstruction
Response JSON_ResponseStatus

A.2.84 /ISAPI/ContentMgmt/Storage/extension
Get or set parameters of storage strategy.

Request URI Definition


Table A-124 GET /ISAPI/ContentMgmt/Storage/extension
Method GET
Description Get parameters of storage strategy.
Query None.
Request None.
Response Succeeded: XML_storageExtension
Failed: XML_ResponseStatus
Table A-125 PUT /ISAPI/ContentMgmt/Storage/extension
Method PUT
Description Set parameters of storage strategy.
Query None.
Request XML_storageExtension
Response XML_ResponseStatus

202
Intelligent Security API (General) Developer Guide

A.2.85 /ISAPI/ContentMgmt/Storage/extension/capabilities
Get configuration capability of log storage.

Request URI Definition


Table A-126 GET /ISAPI/ContentMgmt/Storage/extension/capabilities
Method GET
Description Get configuration capability of log storage.
Query None.
Request None
Response Succeeded: XML_Cap_storageExtension
Failed: JSON_ResponseStatus

A.2.86 /ISAPI/ContentMgmt/Storage/ExtraInfo
Operations about the configuration for storing additional information.

Request URI Definition


Table A-127 GET /ISAPI/ContentMgmt/Storage/ExtraInfo
Method GET
Description Get the parameters for storing additional information.
Query None.
Request None.
Response Succeeded: XML_ExtraInfo
Failed: XML_ResponseStatus
Table A-128 PUT /ISAPI/ContentMgmt/Storage/ExtraInfo
Method PUT
Description Set the parameters for storing additional information.
Query None.
Request XML_ExtraInfo
Response XML_ResponseStatus

203
Intelligent Security API (General) Developer Guide

A.2.87 /ISAPI/ContentMgmt/Storage/ExtraInfo/capabilities
Get the capability of storing additional information.

Request URI Definition


Table A-129 GET /ISAPI/ContentMgmt/Storage/ExtraInfo/capabilities
Method GET
Description Get the capability of storing additional information.
Query None.
Request None.
Response Succeeded: XML_Cap_ExtraInfo
Failed: XML_ResponseStatus

A.2.88 /ISAPI/ContentMgmt/Storage/hdd
Get configuration parameters of all HDDs.

Request URI Definition


Table A-130 GET /ISAPI/ContentMgmt/Storage/hdd
Method GET
Description Get configuration parameters of all HDDs.
Query None.
Request None.
Response Succeeded: XML_hddList
Failed: XML_ResponseStatus

A.2.89 /ISAPI/ContentMgmt/Storage/hdd/<ID>
Get and set parameters for a specific HDD.

Request URI Definition


Table A-131 GET /ISAPI/ContentMgmt/Storage/hdd/<ID>
Method GET
Description Get 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.

Request URI Definition


Table A-133 PUT /ISAPI/ContentMgmt/Storage/hdd/<ID>/BadSectorsTest/pause
Method PUT
Description Pause checking bad sectors of a HDD.
Query None.
Request None.
Response XML_ResponseStatus

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

Request URI Definition


Table A-134 PUT /ISAPI/ContentMgmt/Storage/hdd/<ID>/BadSectorsTest/resume
Method PUT
Description Resume checking dad sectors of a HDD.
Query None.
Request None.
Response XML_ResponseStatus

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.

Request URI Definition


Table A-135 PUT /ISAPI/ContentMgmt/Storage/hdd/<ID>/BadSectorsTest/start
Method PUT
Description Start checking bad sectors of a HDD.
Query None.
Request XML_BadSectorsTest
Response XML_ResponseStatus

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.

Request URI Definition


Table A-136 GET /ISAPI/ContentMgmt/Storage/hdd/<ID>/BadSectorsTest/status
Method GET
Description 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.

Request URI Definition


Table A-137 PUT /ISAPI/ContentMgmt/Storage/hdd/<ID>/BadSectorsTest/stop
Method PUT
Description Stop checking bad sectors of a HDD.
Query None.
Request None.
Response XML_ResponseStatus

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.

Request URI Definition


Table A-138 PUT /ISAPI/ContentMgmt/Storage/hdd/<ID>/encryptFormat?format=json
Method PUT
Description Format an encrypted HDD.
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

207
Intelligent Security API (General) Developer Guide

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.
format: determine the format of request or response message.
Request JSON_EncryptFormat
Response JSON_ResponseStatus

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.

Request URI Definition


Table A-139 PUT /ISAPI/ContentMgmt/Storage/hdd/<ID>/encryptVerfy?format=json
Method PUT
Description Verify the HDD encryption password.
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.
format: determine the format of request or response message.
Request JSON_EncryptVerfy
Response JSON_ResponseStatus

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

Request URI Definition


Table A-140 GET /ISAPI/ContentMgmt/Storage/hdd/<ID>/formatStatus
Method GET
Description Get the formatting status of a specific HDD.
Query None.
Request None.
Response Succeeded: XML_formatStatus
Failed: XML_ResponseStatus

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.

Request URI Definition


Table A-141 PUT /ISAPI/ContentMgmt/Storage/hdd/<ID>/format?formatType=
Method PUT
Description Format a specific HDD according to the specified formatting type.
Query formatType: formatting type, the available values are "EXT4" and
"FAT32". But if you adopt the default formatting type "FAT32", this
query parameter is not required in the URI.
Request None.
Response XML_ResponseStatus

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

Request URI Definition


Table A-142 PUT /ISAPI/ContentMgmt/Storage/hdd/<ID>/logProTest?format=json
Method PUT
Description Configure preverification for log HDD.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_logProTestResult
Failed: JSON_ResponseStatus

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.

Request URI Definition


Table A-143 PUT /ISAPI/ContentMgmt/Storage/hdd/<ID>/SMARTTest/start
Method PUT
Description Start checking HDD status.
Query None.
Request XML_HDDSMARTTest
Response XML_ResponseStatus

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

Request URI Definition


Table A-144 GET /ISAPI/ContentMgmt/Storage/hdd/<ID>/SMARTTest/status
Method GET
Description Get HDD checking status.
Query None.
Request None.
Response Succeeded: XML_SMARTTestStatus
Failed: XML_ResponseStatus

Remarks
The <ID> in the request URI refers to the HDD No.

A.2.102 /ISAPI/ContentMgmt/Storage/hdd/capabilities
Get HDD management capability.

Request URI Definition


Table A-145 GET /ISAPI/ContentMgmt/Storage/hdd/capabilities
Method GET
Description Get HDD management capability.
Query None.
Request None.
Response Succeeded: XML_Cap_hddList
Failed: XML_ResponseStatus

A.2.103 /ISAPI/ContentMgmt/storage/hdd/clearingSpace/capabilities?format=json
Get configuration capability of clearing HDD.

Request URI Definition


Table A-146 GET /ISAPI/ContentMgmt/storage/hdd/clearingSpace/capabilities?format=json
Method GET
Description Get configuration capability of clearing HDD.

211
Intelligent Security API (General) Developer Guide

Query format: determine the format of request or response message.


Request None
Response Succeeded: JSON_Cap_ClearingSpaceConfig
Failed: JSON_ResponseStatus

A.2.104 /ISAPI/ContentMgmt/storage/hdd/clearingSpace?format=json
Get or set parameters of clearing HDD.

Request URI Definition


Table A-147 GET /ISAPI/ContentMgmt/storage/hdd/clearingSpace?format=json
Method GET
Description Get parameters of clearing HDD.
Query format: determine the format of request or response message.
Request None
Response Succeeded: JSON_ClearingSpaceConfig
Failed: JSON_ResponseStatus
Table A-148 PUT /ISAPI/ContentMgmt/storage/hdd/clearingSpace?format=json
Method PUT
Description Set parameters of clearing HDD.
Query format: determine the format of request or response message.
Request JSON_ClearingSpaceConfig
Response JSON_ResponseStatus

A.2.105 /ISAPI/ContentMgmt/Storage/hdd/format
Format all HDDs.

Request URI Definition


Table A-149 PUT /ISAPI/ContentMgmt/Storage/hdd/format
Method PUT
Description Format all HDDs.
Query None.

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.

Request URI Definition


Table A-150 GET /ISAPI/ContentMgmt/Storage/hdd/SMARTTest/config
Method GET
Description Get the parameters of HDD SMART status detection.
Query None.
Request None.
Response Succeeded: XML_SMARTTestConfig
Failed: XML_ResponseStatus
Table A-151 PUT /ISAPI/ContentMgmt/Storage/hdd/SMARTTest/config
Method PUT
Description Set the parameters of HDD SMART status detection.
Query None.
Request XML_SMARTTestConfig
Response XML_ResponseStatus

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.

Request URI Definition


Table A-152 GET /ISAPI/ContentMgmt/Storage/hdd/<ID>/syncStatus?format=json
Method GET
Description Get the HDD data sync status.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_SyncStatus

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.

Request URI Definition


Table A-153 PUT /ISAPI/ContentMgmt/Storage/hdd/specifyHddFormat?format=json
Method PUT
Description Specify multiple HDDs to format.
Query format: determine the format of request or response message.
Request JSON_HddFormatList
Response JSON_ResponseStatus

A.2.109 /ISAPI/ContentMgmt/Storage/quota
Get parameters of all HDD quotas.

Request URI Definition


Table A-154 GET /ISAPI/ContentMgmt/Storage/quota
Method GET
Description Get parameters of all HDD quotas.
Query None.
Request None.
Response Succeeded: XML_diskQuotaList
Failed: XML_ResponseStatus

A.2.110 /ISAPI/ContentMgmt/Storage/quota/<ID>
Get parameters of an HDD quota.

214
Intelligent Security API (General) Developer Guide

Request URI Definition


Table A-155 GET /ISAPI/ContentMgmt/Storage/quota/<ID>
Method GET
Description Get parameters of an HDD quota.
Query None.
Request None.
Response Succeeded: XML_diskQuota
Failed: XML_ResponseStatus
Table A-156 PUT /ISAPI/ContentMgmt/Storage/quota/<ID>
Method PUT
Description Get parameters of an HDD quota.
Query None.
Request XML_diskQuota
Response XML_ResponseStatus

A.2.111 /ISAPI/ContentMgmt/Storage/ssd
Get the information of all SSDs.

Request URI Definition


Table A-157 GET /ISAPI/ContentMgmt/Storage/ssd
Method GET
Description Get the information of all SSDs.
Query None.
Request None.
Response Succeeded: XML_ssdList
Failed: XML_ResponseStatus

A.2.112 /ISAPI/ContentMgmt/Storage/ssd/<ID>
Get the specified SSD information.

215
Intelligent Security API (General) Developer Guide

Request URI Definition


Table A-158 GET /ISAPI/ContentMgmt/Storage/ssd/<ID>
Method GET
Description Get the specified SSD information.
Query None.
Request None.
Response Succeeded: XML_ssd
Failed: XML_ResponseStatus

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.

Request URI Definition


Table A-159 GET /ISAPI/ContentMgmt/Storage/ssd/<ID>/capabilities?format=json
Method GET
Description Get the SSD management capability.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_Cap_SSD
Failed: JSON_ResponseStatus

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

Request URI Definition


Table A-160 GET /ISAPI/ContentMgmt/Storage/ssd/<ID>/SMARTTest/status
Method GET
Description Get the SSD S.M.A.R.T (self-monitoring, analysis, and reporting
technology) detection status.
Query None.
Request None.
Response Succeeded: XML_SSD_SmartTestStatus
Failed: XML_ResponseStatus

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.

Request URI Definition


Table A-161 PUT /ISAPI/ContentMgmt/Storage/ssd/<ID>/SMARTTest/start
Method PUT
Description Run SSD S.M.A.R.T (self-monitoring, analysis, and reporting
technology) detection.
Query None.
Request XML_SSDSMARTTest
Response XML_ResponseStatus

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

Request URI Definition


Table A-162 GET /ISAPI/ContentMgmt/Storage/ssd/<ID>/upgrade/status?format=json
Method GET
Description Get the SSD firmware upgrade progress.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_SSD_UpgradeStatus
Failed: JSON_ResponseStatus

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.

Request URI Definition


Table A-163 POST /ISAPI/ContentMgmt/Storage/ssd/<ID>/upgrade?format=json
Method POST
Description Upgrade the SSD firmware.
Query format: determine the format of request or response message.
Request Binary data in form format
Response JSON_ResponseStatus

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

Request URI Definition


Table A-164 GET /ISAPI/ContentMgmt/StreamingProxy/channels/<ID>/Picture
Method GET
Description Capture pictures via digital channel.
Query None
Request None
Response Succeeded: Captured picture data, which is transmitted over HTTP.
Failed: XML_ResponseStatus

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.

Request URI Definition


Table A-165 GET /ISAPI/ContentMgmt/StreamingProxy/channels/<ID>/capabilities
Method GET
Description Get the capability of digital video channel proxy.
Query None.
Request None.
Response Succeeded: XML_Cap_StreamingChannel
Failed: XML_ResponseStatus

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

Request URI Definition


Table A-166 GET /ISAPI/ContentMgmt/StreamingProxy/channels/<ID>/PictureByUrl/
capabilities?format=json
Method GET
Description Get the capability of capturing picture in URL format
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_Cap_CaputreDescription
Failed: JSON_ResponseStatus

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.

Request URI Definition


Table A-167 POST /ISAPI/ContentMgmt/StreamingProxy/channels/<ID>/PictureByUrl?
format=json
Method POST
Description Capture the picture in URL format.
Query format: determine the format of request or response message.
Request JSON_CaputreDescription
Response Succeeded: JSON_CaputreResult
Failed: JSON_ResponseStatus

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.

Request URI Definition


Table A-168 GET /ISAPI/ContentMgmt/time/search/capabilities?format=json
Method GET
Description Get the capability of searching for recording start and end time.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_Cap_TimeSearchCond
Failed: JSON_ResponseStatus

A.2.123 /ISAPI/ContentMgmt/time/search?format=json
Search for the recording start and end time.

Request URI Definition


Table A-169 POST /ISAPI/ContentMgmt/time/search?format=json
Method POST
Description Search for the recording start and end time.
Query format: determine the format of request or response message.
Request JSON_TimeSearchCond
Response Succeeded: JSON_TimeSearchResult
Failed: JSON_ResponseStatus

221
Intelligent Security API (General) Developer Guide

A.3 /ISAPI/Event

A.3.1 /ISAPI/Event/capabilities
Get the device event capability.

Request URI Definition


Table A-170 GET /ISAPI/Event/capabilities
Method GET
Description Get the device event capability set.
Query None.
Request None.
Response Succeeded: XML_EventCap
Failed: XML_ResponseStatus

A.3.2 /ISAPI/Event/channels/<ID>/capabilities
Get event capabilities supported by the channel.

Request URI Definition


Table A-171 GET /ISAPI/Event/channels/<ID>/capabilities
Method GET
Description Get event capabilities supported by the channel.
Query None.
Request None.
Response Succeeded: XML_ChannelEventCap
Failed: XML_ResponseStatus

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

Request URL Definition


Table A-172 GET /ISAPI/Event/channels/capabilities
Method GET
Description Get the event capability of all channels.
Query None.
Request None.
Response Succeeded: XML_ChannelEventCapList
Failed: XML_ResponseStatus

A.3.4 /ISAPI/Event/notification/alertStream
Get the uploaded heartbeat or alarm/event information.

Request URI Definition


Table A-173 GET /ISAPI/Event/notification/alertStream
Method GET
Description Get the heartbeat or uploaded alarm/event information.
Query None.
Request None.
Response Option 1: XML_EventNotificationAlert_AlarmEventInfo or
XML_EventNotificationAlert_HeartbeatInfo
Option 2: JSON_EventNotificationAlert_Alarm/EventInfo

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.

Request URI Definition


Table A-174 GET /ISAPI/Event/notification/httpHosts
Method GET
Description Get parameters of all HTTP listening servers.
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 Succeeded: XML_HttpHostNotificationList
Failed: XML_ResponseStatus
Table A-175 PUT /ISAPI/Event/notification/httpHosts
Method PUT
Description Set parameters of all HTTP listening servers.
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_HttpHostNotificationList
Response XML_ResponseStatus
Table A-176 POST /ISAPI/Event/notification/httpHosts
Method POST
Description Add 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

224
Intelligent Security API (General) Developer Guide

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-177 DELETE /ISAPI/Event/notification/httpHosts
Method DELETE
Description Delete all HTTP listening servers.
Query None
Request None
Response XML_ResponseStatus

A.3.6 /ISAPI/Event/notification/httpHosts/<ID>
Get or set the parameters of a HTTP listening server, and delete a HTTP listening server.

Request URI Definition


Table A-178 GET /ISAPI/Event/notification/httpHosts/<ID>
Method GET
Description Get the parameters of 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 Succeeded: XML_HttpHostNotification
Failed: XML_ResponseStatus
Table A-179 PUT /ISAPI/Event/notification/httpHosts/<ID>
Method PUT
Description Set the parameters of 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.

Request URI Definition


Table A-181 POST /ISAPI/Event/notification/httpHosts/<ID>/test
Method POST
Description Check whether the HTTP listening server is working normally.
Query None
Request XML_HttpHostNotification
Response Succeeded: XML_HttpHostTestResult
Failed: XML_ResponseStatus

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.

Request URI Definition


Table A-182 GET /ISAPI/Event/notification/httpHosts/capabilities
Method GET
Description Get the configuration capabilities of all HTTP listening servers.
Query None
Request None
Response Succeeded: XML_HttpHostNotificationCap
Failed: XML_ResponseStatus

A.3.9 /ISAPI/Event/notification/subscribeEvent
Subscribe events/alarms in arming mode.

Request URI Definition


Table A-183 POST /ISAPI/Event/notification/subscribeEvent
Method POST
Description Subscribe events/alarms in arming mode.
Query None.
Request XML_SubscribeEvent
Response Succeeded: XML_SubscribeEventResponse or
XML_EventNotificationAlert_SubscriptionHeartbeat and alarm/
event details message
Failed: XML_ResponseStatus

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.

Request URI Definition


Table A-184 GET /ISAPI/Event/notification/subscribeEvent/<ID>
Method GET
Description Get alarm/event subscription parameters.
Query None.
Request None.
Response Succeeded: XML_SubscribeEvent
Failed: XML_ResponseStatus
Table A-185 PUT /ISAPI/Event/notification/subscribeEvent/<ID>
Method PUT
Description Set alarm/event subscription parameters.
Query None.
Request XML_SubscribeEvent
Response XML_ResponseStatus

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.

Request URI Definition


Table A-186 GET /ISAPI/Event/notification/subscribeEventCap
Method GET
Description Get event/alarm subscription capability.
Query None.

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.

Request URI Definition


Table A-187 PUT /ISAPI/Event/notification/unSubscribeEvent
Method PUT
Description Cancel subscribing alarm/event.
Query None.
Request None.
Response XML_ResponseStatus

A.3.13 /ISAPI/Event/schedules/motionDetections
Get or set arming schedule of motion detection of all channels.

Request URI Definition


Table A-188 GET /ISAPI/Event/schedules/motionDetections
Method GET
Description Get arming schedule of motion detection of all channels.
Query None
Request None
Response Succeeded: XML_MotionDetectionScheduleList
Failed: XML_ResponseStatus
Table A-189 PUT /ISAPI/Event/schedules/motionDetections
Method PUT
Description Set arming schedule of motion detection of all channels.
Query None

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.

Request URI Definition


Table A-190 GET /ISAPI/Event/schedules/motionDetections/<ID>
Method GET
Description Get the arming schedule of motion detection by channel.
Query None
Request None
Response Succeeded: XML_Schedule
Failed: XML_ResponseStatus
Table A-191 PUT /ISAPI/Event/schedules/motionDetections/<ID>
Method PUT
Description Set the arming schedule of motion detection by channel.
Query None
Request XML_Schedule
Response XML_ResponseStatus

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

Request URI Definition


Table A-192 GET /ISAPI/Event/schedules/vibrationDetection/<ID>
Method GET
Description Get arming schedule of vibration detection by channel.
Query None.
Request None.
Response Succeeded: XML_Schedule
Failed: XML_ResponseStatus
Table A-193 PUT /ISAPI/Event/schedules/vibrationDetection/<ID>
Method PUT
Description Set arming schedule of vibration detection by channel.
Query None.
Request XML_Schedule
Response XML_ResponseStatus

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.

Request URI Definition


Table A-194 GET /ISAPI/Event/schedules/<EventType>/<ID>
Method GET
Description Get the arming schedule of specified event type.
Query None.
Request None.
Response Succeeded: XML_Schedule
Failed: XML_ResponseStatus

231
Intelligent Security API (General) Developer Guide

Table A-195 PUT /ISAPI/Event/schedules/<EventType>/<ID>


Method PUT
Description Set the arming schedule of specified event type.
Query None.
Request XML_Schedule
Response XML_ResponseStatus

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.

Request URI Definition


Table A-196 GET /ISAPI/Event/triggers/hdBadBlock
Method GET
Description Get the linkage parameters of the HDD bad sector detection.
Query None.
Request None.
Response Succeeded: XML_EventTrigger
Failed: XML_ResponseStatus
Table A-197 PUT /ISAPI/Event/triggers/hdBadBlock
Method PUT
Description Set the linkage parameters of the HDD bad sector detection.
Query None.
Request XML_EventTrigger
Response XML_ResponseStatus

A.3.18 /ISAPI/Event/triggers/hdImpact
Operations about the linkage configuration of the HDD impact detection.

232
Intelligent Security API (General) Developer Guide

Request URI Definition


Table A-198 GET /ISAPI/Event/triggers/hdImpact
Method GET
Description Get the linkage parameters of the HDD impact detection.
Query None.
Request None.
Response Succeeded: XML_EventTrigger
Failed: XML_ResponseStatus
Table A-199 PUT /ISAPI/Event/triggers/hdImpact
Method PUT
Description Set the linkage parameters of the HDD impact detection.
Query None.
Request XML_EventTrigger
Response XML_ResponseStatus

A.3.19 /ISAPI/Event/triggers/highHDTemperature
Operations about the linkage configuration of the HDD high temperature detection.

Request URI Definition


Table A-200 GET /ISAPI/Event/triggers/highHDTemperature
Method GET
Description Get the linkage parameters of the HDD high temperature detection.
Query None.
Request None.
Response Succeeded: XML_EventTrigger
Failed: XML_ResponseStatus
Table A-201 PUT /ISAPI/Event/triggers/highHDTemperature
Method PUT
Description Set the linkage parameters of the HDD high temperature detection.
Query None.

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.

Request URI Definition


Table A-202 GET /ISAPI/Event/triggers/lowHDTemperature
Method GET
Description Get the linkage parameters of the HDD low temperature detection.
Query None.
Request None.
Response Succeeded: XML_EventTrigger
Failed: XML_ResponseStatus
Table A-203 PUT /ISAPI/Event/triggers/lowHDTemperature
Method PUT
Description Set the linkage parameters of the HDD low temperature detection.
Query None.
Request XML_EventTrigger
Response XML_ResponseStatus

A.3.21 /ISAPI/Event/triggers/severeHDFailure
Operations about the linkage configuration of the HDD severe fault detection.

Request URI Definition


Table A-204 GET /ISAPI/Event/triggers/severeHDFailure
Method GET
Description Get the linkage parameters of the HDD severe fault detection.
Query None.
Request None.
Response Succeeded: XML_EventTrigger

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.

Request URI Definition


Table A-206 GET /ISAPI/Event/triggers/<eventType>-<ID>
Method GET
Description Get the alarm linkage action by channel.
Query None
Request None
Response Succeeded: XML_EventTrigger
Failed: XML_ResponseStatus
Table A-207 PUT /ISAPI/Event/triggers/<eventType>-<ID>
Method PUT
Description Set the alarm linkage action by channel.
Query None
Request XML_EventTrigger
Response XML_ResponseStatus
Table A-208 DELETE /ISAPI/Event/triggers/<eventType>-<ID>
Method DELETE
Description Delete the alarm linkage action by channel.
Query None

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.

Request URI Definition


Table A-209 GET /ISAPI/Event/triggers/<ID>/notifications
Method GET
Description Get the configuration parameters of alarm/event linkage actions.
Query None.
Request None.
Response Succeeded: XML_EventTriggerNotificationList
Failed: XML_ResponseStatus
Table A-210 PUT /ISAPI/Event/triggers/<ID>/notifications
Method PUT
Description Set the configuration parameters for alarm/event linkage actions.
Query None.
Request XML_EventTriggerNotificationList
Response XML_ResponseStatus
Table A-211 DELETE /ISAPI/Event/triggers/<ID>/notifications
Method DELETE
Description Delete the configuration parameters of alarm/event linkage actions.
Query None.
Request None.
Response XML_ResponseStatus

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.

Request URI Definition


Table A-212 PUT /ISAPI/Event/triggers/notifications/AudioAlarm/<audioID>/test?format=json
Method PUT
Description Audio test.
Query format: determine the format of request or response message.
Request None.
Response JSON_ResponseStatus

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.

Request URI Definition


Table A-213 GET /ISAPI/Event/triggers/notifications/AudioAlarm/capabilities?format=json
Method GET
Description Get audible warning configuration capability.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_AudioAlarmCap
Failed: JSON_ResponseStatus

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.

Request URI Definition


Table A-214 GET /ISAPI/Event/triggers/notifications/AudioAlarm/customAudio/
<customAudioID>?format=json
Method GET
Description Download custom alarm audio file.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: The custom alarm audio file information is returned.
Failed: JSON_ResponseStatus
Table A-215 DELETE /ISAPI/Event/triggers/notifications/AudioAlarm/customAudio/
<customAudioID>?format=json
Method DELETE
Description Delete custom audio file.
Query format: determine the format of request or response message.
Request None.
Response JSON_ResponseStatus

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

Request URI Definition


Table A-216 GET /ISAPI/Event/triggers/notifications/AudioAlarm/customAudioInfo/channels/
<channelID>?format=json
Method GET
Description Get the information about custom alarm sound file of a specified
channel.
Query format: determine the format of request or response message.
Request None
Response Succeeded: JSON_Channel_CustomAudioInfo
Failed: JSON_ResponseStatus

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.

Request URI Definition


Table A-217 POST /ISAPI/Event/triggers/notifications/AudioAlarm/customAudio?format=json
Method POST
Description Import custom alarm audio file.
Query format: determine the format of request or response message.
type: audio file type: url, bianry.
Request JSON_ImportCustomAudio
Response Succeeded: JSON_CustomAudioID
Failed: JSON_ResponseStatus

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

Request URI Definition


Table A-218 GET /ISAPI/Event/triggers/notifications/AudioAlarm/customAudioInfo/
<customAudioID>?format=json
Method GET
Description Get custom alarm audio file information.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_CustomAudioInfo
Failed: JSON_ResponseStatus
Table A-219 PUT /ISAPI/Event/triggers/notifications/AudioAlarm/customAudioInfo/
<customAudioID>?format=json
Method PUT
Description Edit custom audio file information.
Query format: determine the format of request or response message.
Request JSON_CustomAudioInfo
Response JSON_ResponseStatus

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.

Request URI Definition


Table A-220 GET /ISAPI/Event/triggers/notifications/AudioAlarm/customAudioInfo?format=json
Method GET
Description Get the custom alarm audio file.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_GetCustomAudio
Failed: JSON_ResponseStatus

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.

Request URI Definition


Table A-221 GET /ISAPI/Event/triggers/notifications/AudioAlarm/customAudioTypeInfo/
channels?format=json
Method GET
Description Get encoding format information of custom audio file in a batch.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_CustomAudioTypeInfoList
Failed: JSON_ResponseStatus

A.3.32 /ISAPI/Event/triggers/notifications/AudioAlarm?format=json
Get or set audible warning parameters.

Request URI Definition


Table A-222 GET /ISAPI/Event/triggers/notifications/AudioAlarm?format=json
Method GET
Description Get parameters of audible warning.
Query format: determine the format of request or response message.
alarmType: alarm type, including "behavior"-behavior analysis,
"thermometry"-temperature measurement, "dynamicFire"-​fire
detection, "smokingMode"-smoke detection, "noMaskDetection"-​no
wearing mask detection.
Request None.
Response Succeeded: JSON_AudioAlarm
Failed: JSON_ResponseStatus

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

Table A-223 PUT /ISAPI/Event/triggers/notifications/AudioAlarm?format=json


Method PUT
Description Set parameters of audible warning.
Query format: determine the format of request or response message.
Request JSON_AudioAlarm
Response JSON_ResponseStatus

A.3.33 /ISAPI/Event/triggers/notifications/channels/<ID>/AudioAlarm/
capabilities?format=json
Get the audible warning configuration capability of a specified channel.

Request URI Definition


Table A-224 GET /ISAPI/Event/triggers/notifications/channels/<ID>/AudioAlarm/capabilities?
format=json
Method GET
Description Get the audible warning configuration capability of a specified
channel.
Query format: determine the format of request or response message.
Request None
Response Succeeded: JSON_ChannelAudioAlarmCap
Failed: JSON_ResponseStatus

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.

Request URI Definition


Table A-225 GET /ISAPI/Event/triggers/notifications/whiteLightAlarm?format=json
Method GET
Description Get parameters of supplement light alarm linkage.

242
Intelligent Security API (General) Developer Guide

Query format: determine the format of request or response message.


Request None.
Response Succeeded: JSON_WhiteLightAlarm
Failed: JSON_ResponseStatus
Table A-226 PUT /ISAPI/Event/triggers/notifications/whiteLightAlarm?format=json
Method PUT
Description Set parameters of supplement light alarm linkage.
Query format: determine the format of request or response message.
Request JSON_WhiteLightAlarm
Response JSON_WhiteLightAlarm

A.3.35 /ISAPI/Event/triggers/notifications/whiteLightAlarm/capabilities?
format=json
Get the configuration capability of supplement light alarm linkage.

Request URI Definition


Table A-227 GET /ISAPI/Event/triggers/notifications/whiteLightAlarm/capabilities?format=json
Method GET
Description Get the configuration capability of supplement light alarm linkage.
Query format: determine the format of request or response message.
Request None.
Response JSON_WhiteLightAlarmCap

A.3.36 /ISAPI/Event/triggersCap
Get alarm linkage capability.

Request URI Definition


Table A-228 GET /ISAPI/Event/triggersCap
Method GET
Description Get alarm linkage capability.
Query None

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.

Request URL Definition


Table A-229 POST http://<ipAddress>:<portNo>/<url>
Method POST
Description HTTP listening sever sends alarm information to alarm center.
Query None
Request None
Response Succeeded: XML_EventNotificationAlert_AlarmEventInfo or
JSON_EventNotificationAlert_Alarm/EventInfo
Failed: XML_ResponseStatus

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.

Request URI Definition


Table A-230 GET /ISAPI/Image/channels
Method GET
Description Get image parameters of all channels.
Query None.

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.

Request URI Definition


Table A-232 GET /ISAPI/Image/channels/<ID>
Method GET
Description Get image parameters of a specific channel.
Query None.
Request None.
Response Succeeded: XML_ImageChannel
Failed: XML_ResponseStatus
Table A-233 PUT /ISAPI/Image/channels/<ID>
Method PUT
Description Set image parameters of a specific channel.
Query None.
Request XML_ImageChannel
Response XML_ResponseStatus

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.

Request URI Definition


Table A-234 GET /ISAPI/Image/channels/<ID>/BLC
Method GET
Description Get BLC (Backlight Compensation) parameters of a specific channel.
Query None.
Request None.
Response Succeeded: XML_BLC
Failed: XML_ResponseStatus
Table A-235 PUT /ISAPI/Image/channels/<ID>/BLC
Method PUT
Description Set BLC (Backlight Compensation) parameters of a specific channel.
Query None.
Request XML_BLC
Response XML_ResponseStatus

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.

Request URI Definition


Table A-236 GET /ISAPI/Image/channels/<ID>/capabilities
Method GET
Description Get image configuration capability of a specific channel.
Query None.
Request None.
Response Succeeded: XML_Cap_ImageChannel

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.

Request URI Definition


Table A-237 GET /ISAPI/Image/channels/<ID>/capturemode
Method GET
Description Get video input modes of a specific channel.
Query None.
Request None.
Response Succeeded: XML_CaptureMode
Failed: XML_ResponseStatus
Table A-238 PUT /ISAPI/Image/channels/<ID>/capturemode
Method PUT
Description Set video input mode of a specific channel.
Query None.
Request XML_CaptureMode
Response XML_ResponseStatus

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.

Request URI Definition


Table A-239 GET /ISAPI/Image/channels/<ID>/color
Method GET
Description Get 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.

Request URI Definition


Table A-241 GET /ISAPI/Image/channels/<ID>/color/capabilities
Method GET
Description Get the image adjustment capability of a specified channel.
Query None.
Request None.
Response XML_Cap_Color

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

Request URI Definition


Table A-242 GET /ISAPI/Image/channels/<ID>/corridor
Method GET
Description Get image rotate mode of a specific channel.
Query None.
Request None.
Response Succeeded: XML_corridor
Failed: XML_ResponseStatus
Table A-243 PUT /ISAPI/Image/channels/<ID>/corridor
Method PUT
Description Get image rotate mode of a specific channel.
Query None.
Request XML_corridor
Response XML_ResponseStatus

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.

Request URI Definition


Table A-244 GET /ISAPI/Image/channels/<ID>/dehaze
Method GET
Description Get defog mode parameters of a specific channel.
Query None.
Request None.
Response Succeeded: XML_Dehaze
Failed: XML_ResponseStatus

249
Intelligent Security API (General) Developer Guide

Table A-245 PUT /ISAPI/Image/channels/<ID>/dehaze


Method PUT
Description Set defog mode parameters of a specific channel.
Query None.
Request XML_Dehaze
Response XML_ResponseStatus

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.

Request URI Definition


Table A-246 GET /ISAPI/Image/channels/<ID>/EPTZ
Method GET
Description Get the e-PTZ parameters.
Query None.
Request None.
Response Succeeded: XML_EPTZ
Failed: XML_ResponseStatus
Table A-247 PUT /ISAPI/Image/channels/<ID>/EPTZ
Method PUT
Description Set the e-PTZ parameters.
Query None.
Request XML_EPTZ
Response XML_ResponseStatus

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.

Request URI Definition


Table A-248 GET /ISAPI/Image/channels/<ID>/EPTZ/mode/capabilities?format=json
Method GET
Description Get the capability of switching e-PTZ mode.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_EPTZModeCap
Failed: JSON_ResponseStatus

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.

Request URI Definition


Table A-249 GET /ISAPI/Image/channels/<ID>/EPTZ/mode?format=json
Method GET
Description Get the parameters of switching e-PTZ mode.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_EPTZMode
Failed: JSON_ResponseStatus
Table A-250 PUT /ISAPI/Image/channels/<ID>/EPTZ/mode?format=json
Method PUT
Description Set the parameters for switching e-PTZ mode.
Query format: determine the format of request or response message.

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.

Request URI Definition


Table A-251 GET /ISAPI/Image/channels/<ID>/exposure
Method GET
Description Get the exposure mode of a specific channel.
Query None.
Request None.
Response Succeeded: XML_Exposure
Failed: XML_ResponseStatus
Table A-252 PUT /ISAPI/Image/channels/<ID>/exposure
Method PUT
Description Set the exposure mode of a specific channel.
Query None.
Request XML_Exposure
Response XML_ResponseStatus

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

Request URI Definition


Table A-253 GET /ISAPI/Image/channels/<ID>/focusConfiguration
Method GET
Description Get the focus parameters of a specified channel.
Query None.
Request None.
Response XML_FocusConfiguration
Table A-254 PUT /ISAPI/Image/channels/<ID>/focusConfiguration
Method PUT
Description Set the focus parameters of a specified channel.
Query None.
Request XML_FocusConfiguration
Response XML_ResponseStatus

A.4.15 /ISAPI/Image/channels/<ID>/focusConfiguration/capabilities
Get the focus configuration capability.

Request URI Definition


Table A-255 GET /ISAPI/Image/channels/<ID>/focusConfiguration/capabilities
Method GET
Description Get the focus configuration capability.
Query None.
Request None.
Response Succeeded: XML_Cap_FocusConfiguration
Failed: XML_ResponseStatus

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

Request URI Definition


Table A-256 GET /ISAPI/Image/channels/<ID>/focusConfiguration/status?format=json
Method GET
Description Get the focus status.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_FocusStatus
Failed: JSON_ResponseStatus

A.4.17 /ISAPI/Image/channels/<ID>/gain
Operations about gain configuration in exposure of a specific channel.

Request URI Definition


Table A-257 GET /ISAPI/Image/channels/<ID>/gain
Method GET
Description Get gain parameters in exposure of a specific channel.
Query None.
Request None.
Response Succeeded: XML_Gain
Failed: XML_ResponseStatus
Table A-258 PUT /ISAPI/Image/channels/<ID>/gain
Method PUT
Description Set gain parameters in exposure of a specific channel.
Query None.
Request XML_Gain
Response XML_ResponseStatus

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.

Request URI Definition


Table A-259 GET /ISAPI/Image/channels/<ID>/imageCap
Method GET
Description Get the image capability of a specific channel.
Query None.
Request NULL.
Response XML_ImageCap

A.4.19 /ISAPI/Image/channels/<ID>/ImageFlip
Operations about the image flipping status of a specific channel.

Request URI Definition


Table A-260 GET /ISAPI/Image/channels/<ID>/ImageFlip
Method GET
Description Get the image flipping status of a specific channel.
Query None.
Request None.
Response Succeeded: XML_ImageFlip
Failed: XML_ResponseStatus
Table A-261 PUT /ISAPI/Image/channels/<ID>/ImageFlip
Method PUT
Description Update the image flipping status of a specific channel.
Query None.
Request XML_ImageFlip
Response XML_ResponseStatus

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.

Request URI Definition


Table A-262 GET /ISAPI/Image/channels/<ID>/imageMode/<ID>
Method GET
Description Get the default configuration parameters of a specific image mode of
a specific channel.
Query None.
Request None.
Response XML_ImageMode

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.

Request URI Definition


Table A-263 GET /ISAPI/Image/channels/<ID>/imageModes
Method GET
Description Get the default image mode parameters of a specific channel.
Query None.
Request None.
Response XML_ImageModeList

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

Request URI Definition


Table A-264 GET /ISAPI/Image/channels/<ID>/IrcutFilter
Method GET
Description Get day/night auto switch parameters of a specific channel.
Query None.
Request None.
Response Succeeded: XML_IrcutFilter
Failed: XML_ResponseStatus
Table A-265 PUT /ISAPI/Image/channels/<ID>/IrcutFilter
Method PUT
Description Set day/night auto switch parameters of a specific channel.
Query None.
Request XML_IrcutFilter
Response XML_ResponseStatus

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.

Request URI Definition


Table A-266 GET /ISAPI/Image/channels/<ID>/ISPMode
Method GET
Description Get the day/night mode parameters of a specific channel.
Query None.
Request None.
Response Succeeded: XML_ISPMode
Failed: XML_ResponseStatus

257
Intelligent Security API (General) Developer Guide

Table A-267 PUT /ISAPI/Image/channels/<ID>/ISPMode


Method PUT
Description Set the day/night mode parameters of a specific channel.
Query None.
Request XML_ISPMode
Response XML_ResponseStatus

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.

Request URI Definition


Table A-268 GET /ISAPI/Image/channels/<ID>/lensDistortionCorrection
Method GET
Description Get parameters of image distortion correction.
Query None.
Request None.
Response Succeeded: XML_LensDistortionCorrection
Failed: XML_ResponseStatus
Table A-269 PUT /ISAPI/Image/channels/<ID>/lensDistortionCorrection
Method PUT
Description Set parameters of image distortion correction.
Query None.
Request XML_LensDistortionCorrection
Response XML_ResponseStatus

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.

Request URI Definition


Table A-270 GET /ISAPI/Image/channels/<ID>/lensDistortionCorrection/capabilities
Method GET
Description Get capability of image distortion correction.
Query None.
Request None.
Response Succeeded: XML_Cap_LensDistortionCorrection
Failed: XML_ResponseStatus

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.

Request URI Definition


Table A-271 GET /ISAPI/Image/channels/<ID>/mountingScenario
Method GET
Description Get the mounting scenario mode of a camera.
Query None.
Request None.
Response XML_MountingScenario
Table A-272 PUT /ISAPI/Image/channels/<ID>/mountingScenario
Method PUT
Description Set the mounting scenario mode of a camera.
Query None.
Request XML_MountingScenario
Response XML_ResponseStatus

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.

Request URI Definition


Table A-273 GET /ISAPI/Image/channels/<ID>/mountingScenario/capabilities
Method GET
Description Get the capability of configurations of mounting scenario mode.
Query None.
Request None.
Response XML_Cap_MountingScenario

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.

Request URI Definition


Table A-274 GET /ISAPI/Image/channels/<ID>/noiseReduce
Method GET
Description Get 3D DNR (Digital Noise Reduction) parameters in auto mode of a
specific channel.
Query None.
Request None.
Response Succeeded: XML_NoiseReduce
Failed: XML_ResponseStatus

260
Intelligent Security API (General) Developer Guide

Table A-275 PUT /ISAPI/Image/channels/<ID>/noiseReduce


Method PUT
Description Set 3D DNR (Digital Noise Reduction) parameters in auto mode of a
specific channel.
Query None.
Request XML_NoiseReduce
Response XML_ResponseStatus

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.

Request URI Definition


Table A-276 GET /ISAPI/Image/channels/<ID>/Palettes
Method GET
Description Get the palettes configuration parameters.
Query None.
Request None.
Response XML_Palettes
Table A-277 PUT /ISAPI/Image/channels/<ID>/Palettes
Method PUT
Description Set the palettes parameters.
Query None.
Request None.
Response XML_ResponseStatus

A.4.30 /ISAPI/Image/channels/<ID>/powerLineFrequency
Operations about image standard configuration of a specific channel.

261
Intelligent Security API (General) Developer Guide

Request URI Definition


Table A-278 GET /ISAPI/Image/channels/<ID>/powerLineFrequency
Method GET
Description Get image standard parameters of a specific channel.
Query None.
Request None.
Response Succeeded: XML_powerLineFrequency
Failed: XML_ResponseStatus
Table A-279 PUT /ISAPI/Image/channels/<ID>/powerLineFrequency
Method PUT
Description Set image standard parameters of a specific channel.
Query None.
Request XML_powerLineFrequency
Response XML_ResponseStatus

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.

Request URI Definition


Table A-280 GET /ISAPI/Image/channels/<ID>/regionalFocus
Method PUT
Description Focus on a specific region during live view.
Query None.
Request XML_RegionalFocus
Response XML_ResponseStatus

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.

Request URI Definition


Table A-281 PUT /ISAPI/Image/channels/<ID>/reset
Method PUT
Description Reset the image parameters of a specific channel.
Query None.
Request None.
Response XML_ResponseStatus

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.

Request URI Definition


Table A-282 PUT /ISAPI/Image/channels/<ID>/restore
Method PUT
Description Restore the image parameters of a specific channel to default
settings.
Query None.
Request None.
Response XML_ResponseStatus

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

Request URI Definition


Table A-283 GET /ISAPI/Image/channels/<ID>/sharpness
Method GET
Description Get the sharpness parameters of s specific channel.
Query None.
Request None.
Response Succeeded: XML_Sharpness
Failed: XML_ResponseStatus
Table A-284 PUT /ISAPI/Image/channels/<ID>/sharpness
Method PUT
Description Set the sharpness parameters of s specific channel.
Query None.
Request XML_Sharpness
Response XML_ResponseStatus

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.

Request URI Definition


Table A-285 GET /ISAPI/Image/channels/<ID>/shutter
Method GET
Description Get shutter parameters in exposure of a specific channel.
Query None.
Request None.
Response Succeeded: XML_Shutter
Failed: XML_ResponseStatus

264
Intelligent Security API (General) Developer Guide

Table A-286 PUT /ISAPI/Image/channels/<ID>/shutter


Method PUT
Description Set shutter parameters in exposure of a specific channel.
Query None.
Request XML_Shutter
Response XML_ResponseStatus

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.

Request URI Definition


Table A-287 GET /ISAPI/Image/channels/<ID>/supplementLight
Method GET
Description Get supplement light parameters by channel.
Query None.
Request None.
Response Succeeded: XML_SupplementLight
Failed: XML_ResponseStatus
Table A-288 PUT /ISAPI/Image/channels/<ID>/supplementLight
Method PUT
Description Set supplement light parameters by channel.
Query None.
Request XML_SupplementLight
Response XML_ResponseStatus

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.

Request URI Definition


Table A-289 GET /ISAPI/Image/channels/<ID>/supplementLight/capabilities
Method GET
Description Get supplement light configuration capability by channel.
Query None.
Request None.
Response Succeeded: XML_Cap_SupplementLight
Failed: XML_ResponseStatus

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.

Request URI Definition


Table A-290 GET /ISAPI/Image/channels/<ID>/targetEnhancement
Method GET
Description Get the target enhancement parameters.
Query None.
Request None.
Response Succeeded: XML_TargetEnhancement
Failed: XML_ResponseStatus
Table A-291 PUT /ISAPI/Image/channels/<ID>/targetEnhancement
Method PUT
Description Set the target enhancement parameters.
Query None.

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.

Request URI Definition


Table A-292 GET /ISAPI/Image/channels/<ID>/targetEnhancement/capabilities
Method GET
Description Get the target enhancement capability.
Query None.
Request None.
Response Succeeded: XML_TargetEnhancementCap
Failed: XML_ResponseStatus

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.

Request URI Definition


Table A-293 GET /ISAPI/Image/channels/<ID>/tempRange
Method GET
Description Get the temperature range parameters.
Query None.
Request None.
Response Succeeded: XML_tempRange
Failed: XML_ResponseStatus

267
Intelligent Security API (General) Developer Guide

Table A-294 PUT /ISAPI/Image/channels/<ID>/tempRange


Method PUT
Description Set the temperature range parameters.
Query None.
Request None.
Response Succeeded: XML_tempRange
Failed: XML_ResponseStatus

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.

Request URI Definition


Table A-295 GET
Method GET
Description Get the temperature range configuration capability of a specified
channel.
Query None.
Request None.
Response Succeeded: XML_Cap_tempRange
Failed: XML_ResponseStatus

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

Request URI Definition


Table A-296 GET /ISAPI/Image/channels/<ID>/WDR
Method GET
Description Get WDR (Wide Dynamic Range) parameters of a specific channel.
Query None.
Request None.
Response Succeeded: XML_WDR
Failed: XML_ResponseStatus
Table A-297 PUT /ISAPI/Image/channels/<ID>/WDR
Method GET
Description Set WDR (Wide Dynamic Range) parameters of a specific channel.
Query None.
Request XML_WDR
Response XML_ResponseStatus

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.

Request URI Definition


Table A-298 GET /ISAPI/Image/channels/<ID>/whiteBalance
Method GET
Description Get the white balance parameters of s specific channel.
Query None.
Request None.
Response Succeeded: XML_WhiteBalance
Failed: XML_ResponseStatus

269
Intelligent Security API (General) Developer Guide

Table A-299 PUT /ISAPI/Image/channels/<ID>/whiteBalance


Method PUT
Description Set the white balance parameters of s specific channel.
Query None.
Request XML_WhiteBalance
Response XML_ResponseStatus

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.

Request URI Definition


Table A-300 GET /ISAPI/Image/channels/capabilities
Method GET
Description Get the complete video and image configuration capability of all
channels.
Query None.
Request None.
Response Succeeded: XML_Cap_ImageChannel
Failed: XML_ResponseStatus

A.4.45 /ISAPI/Image/channels/imageModes
Get the configuration parameters of all image modes of all channels.

Request URI Definition


Table A-301 GET /ISAPI/Image/channels/imageModes
Method GET
Description Get the configuration parameters of all image modes of all channels.
Query None.

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.

Request URI Definition


Table A-302 GET /ISAPI/Image/channels/imageModes/<ID>
Method GET
Description Get the configuration parameters of all image modes of a specific
channel.
Query None.
Request None.
Response Succeeded: XML_ImageMode
Failed: XML_ResponseStatus

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.

Request URI Definition


Table A-303 GET /ISAPI/MasterSlaveTracking/capabilities
Method GET
Description Get the master-slave tracking capability.
Query None.
Request None.
Response XML_MasterSlaveTrackingCap

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.

Request URI Definition


Table A-304 GET /ISAPI/MasterSlaveTracking/channels/<ID>/slaveCamera/<ID>
Method GET
Description Get the basic configuration parameters of the PTZ camera.
Query None.
Request None.
Response XML_SlaveCamera
Table A-305 PUT /ISAPI/MasterSlaveTracking/channels/<ID>/slaveCamera/<ID>
Method PUT
Description Set the basic configuration parameters for the PTZ camera.
Query None.
Request XML_SlaveCamera
Response XML_ResponseStatus

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.

Request URI Definition


Table A-306 GET /ISAPI/MasterSlaveTracking/channels/<ID>/slaveCamera/<ID>/tracking
Method GET
Description Get the tracking configuration parameters of the PTZ camera.
Query None.
Request None.
Response XML_Tracking

272
Intelligent Security API (General) Developer Guide

Table A-307 PUT /ISAPI/MasterSlaveTracking/channels/<ID>/slaveCamera/<ID>/tracking


Method PUT
Description Set the tracking configuration parameters for the PTZ camera.
Query None.
Request XML_Tracking
Response XML_ResponseStatus

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.

Request URI Definition


Table A-308 PUT /ISAPI/MasterSlaveTracking/channels/<ID>/slaveCamera/<ID>/trackingRatio
Method PUT
Description Set the tracking zoom ratio for the PTZ camera.
Query None.
Request None.
Response XML_ResponseStatus

A.5.5 /ISAPI/MasterSlaveTracking/channels/<ID>/slaveCamera/capabilities
Get the configuration capability of basic parameters for the PTZ camera.

Request URI Definition


Table A-309 GET /ISAPI/MasterSlaveTracking/channels/<ID>/slaveCamera/capabilities
Method GET
Description Get the configuration capability of basic parameters for the PTZ
camera.
Query None.

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.

Request URI Definition


Table A-310 GET /ISAPI/MasterSlaveTracking/channels/<ID>/slaveCameraStatus
Method GET
Description Get the connection status of the PTZ camera.
Query None.
Request None.
Response XML_SlaveCameraStatus

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.

Request URI Definition


Table A-311 GET /ISAPI/MasterSlaveTracking/channels/<ID>/tracking/capabilities
Method GET
Description Get the tracking configuration capability of the PTZ camera.
Query None.
Request None.
Response XML_Cap_Tracking

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.

Request URI Definition


Table A-312 GET /ISAPI/MasterSlaveTracking/linkedTracking/capabilities?format=json
Method GET
Description Get capability of configuring advanced parameters of linked tracking
capture.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_LinkedTrackingCap
Failed: JSON_ResponseStatus

A.5.9 /ISAPI/MasterSlaveTracking/linkedTracking?format=json
Get or set the advanced parameters of linked tracking capture.

Request URI Definition


Table A-313 GET /ISAPI/MasterSlaveTracking/linkedTracking?format=json
Method GET
Description Get the advanced parameters of linked tracking capture.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_LinkedTracking
Failed: JSON_ResponseStatus
Table A-314 PUT /ISAPI/MasterSlaveTracking/linkedTracking?format=json
Method PUT
Description Set the advanced parameters of linked tracking capture.
Query format: determine the format of request or response message.
Request JSON_LinkedTracking
Response JSON_ResponseStatus

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.

Request URI Definition


Table A-315 GET /ISAPI/SDT/Management/capabilities?format=json
Method GET
Description Get the intelligent management capability of the device to check the
intelligent functions supported by the device.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_Cap_IntelliManagement
Failed: JSON_ResponseStatus

A.6.2 /ISAPI/SDT/Management/IntelligentSearch/capabilities?format=json
Get intelligent search capability.

Request URI Definition


Table A-316 GET /ISAPI/SDT/Management/IntelligentSearch/capabilities?format=json
Method GET
Description Get intelligent search capability.
Query format: determine the format of request or response message.
Request None
Response Succeeded: JSON_IntelligentSearchCap
Failed: JSON_ResponseStatus

A.6.3 /ISAPI/SDT/Management/IntelligentSearch?format=json
Start intelligent search.

276
Intelligent Security API (General) Developer Guide

Request URI Definition


Table A-317 POST /ISAPI/SDT/Management/IntelligentSearch?format=json
Method POST
Description Start intelligent search.
Query format: determine the format of request or response message.
Request JSON_IntelligentSearchCondition
Response Succeeded: JSON_IntelligentSearchResult
Failed: JSON_ResponseStatus

A.7 /ISAPI/PTZCtrl

A.7.1 /ISAPI/PTZCtrl/channels/<ID>
Get or set the single PTZ control parameters.

Request URI Definition


Table A-318 GET /ISAPI/PTZCtrl/channels/<ID>
Method GET
Description Get the single PTZ control parameters.
Query None
Request None
Response Succeeded: XML_PTZChannel
Failed: XML_ResponseStatus
Table A-319 PUT /ISAPI/PTZCtrl/channels/<ID>
Method PUT
Description Set the single PTZ control parameters.
Query None
Request XML_PTZChannel
Response XML_ResponseStatus

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.

Request URI Definition


Table A-320 GET /ISAPI/PTZCtrl/channels/<ID>/auxcontrols
Method GET
Description Get all PTZ auxiliaries status.
Query None.
Request None.
Response Succeeded: XML_PTZAuxList
Failed: XML_ResponseStatus
Table A-321 PUT /ISAPI/PTZCtrl/channels/<ID>/auxcontrols
Method PUT
Description Set all PTZ auxiliaries status.
Query None.
Request XML_PTZAuxList
Response XML_ResponseStatus

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.

Request URI Definition


Table A-322 GET /ISAPI/PTZCtrl/channels/<ID>/auxcontrols/<ID>
Method GET
Description Get the specified PTZ auxiliary status.
Query None.
Request None.
Response Succeeded: XML_PTZAux

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.

Request URI Definition


Table A-324 GET /ISAPI/PTZCtrl/channels/ID/capabilities
Method GET
Description Get the PTZ control capabilities.
Query None
Request None.
Response Succeeded: XML_PTZChanelCap
Failed: XML_ResponseStatus

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

Request URI Definition


Table A-325 GET /ISAPI/PTZCtrl/channels/<ID>/EagleFocusing/auto/capabilities?format=json
Method GET
Description Get the capability of rapid focus automatic calibration.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_AutoEagleFocusingCap
Failed: JSON_ResponseStatus

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.

Request URI Definition


Table A-326 GET /ISAPI/PTZCtrl/channels/<ID>/EagleFocusing/auto?format=json
Method GET
Description Automatically calibrate for rapid focus.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_AutoEagleFocusing
Failed: JSON_ResponseStatus

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

Request URI Definition


Table A-327 GET /ISAPI/PTZCtrl/channels/<ID>/EagleFocusing/capabilities
Method GET
Description Get the rapid focus capability.
Query None.
Request None.
Response Succeeded: XML_Cap_EagleFocusing
Failed: XML_ResponseStatus

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.

Request URI Definition


Table A-328 PUT /ISAPI/PTZCtrl/channels/<ID>/GPS?format=json
Method PUT
Description Control the device turn to corresponding place according to applied
GPS information.
Query format: determine the format of request or response message.
Request JSON_GPSInfo
Response JSON_ResponseStatus

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

Request URI Definition


Table A-329 GET /ISAPI/PTZCtrl/channels/<ID>/gyroVerify/ capabilities?format=json
Method GET
Description Get the gyroscope calibration capability.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_GyroVerifyCap
Failed: JSON_ResponseStatus

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.

Request URI Definition


Table A-330 PUT /ISAPI/PTZCtrl/channels/<ID>/gyroVerify?format=json
Method PUT
Description Set the gyroscope calibration parameters.
Query format: determine the format of request or response message.
Request JSON_GyroVerify
Response JSON_ResponseStatus

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

Request URI Definition


Table A-331 GET /ISAPI/PTZCtrl/channels/<ID>/lensCorrection/capabilities?format=json
Method GET
Description Get the lens correction capability.
Query format: determine the format of request or response message.
Request None.
Response JSON_LensCorrectionCap

A.7.12 /ISAPI/PTZCtrl/channels/<ID>/lensCorrection?format=json
Get or set the configuration parameters of lens correction.

Request URI Definition


Table A-332 GET /ISAPI/PTZCtrl/channels/<ID>/lensCorrection?format=json
Method GET
Description Get the configuration parameters of lens correction.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_LensCorrection
Failed: XML_ResponseStatus
Table A-333 PUT /ISAPI/PTZCtrl/channels/<ID>/lensCorrection?format=json
Method PUT
Description Set the lens correction parameters.
Query format: determine the format of request or response message.
Request JSON_LensCorrection
Response XML_ResponseStatus

A.7.13 /ISAPI/PTZCtrl/channels/<ID>/lockPTZ
Operations about locking PTZ of a specific channel.

283
Intelligent Security API (General) Developer Guide

Request URI Definition


Table A-334 GET /ISAPI/PTZCtrl/channels/<ID>/lockPTZ
Method GET
Description Get the remaining time before unlocking PTZ of a specific channel.
Query None.
Request None.
Response XML_LockPTZ
Table A-335 PUT /ISAPI/PTZCtrl/channels/<ID>/lockPTZ
Method PUT
Description Lock PTZ of a specific channel.
Query None.
Request XML_LockPTZ
Response XML_ResponseStatus

A.7.14 /ISAPI/PTZCtrl/channels/<ID>/maxelevation
Get or set the max. tilt-angle parameters.

Request URI Definition


Table A-336 GET /ISAPI/PTZCtrl/channels/<ID>/maxelevation
Method GET
Description Get the max. tilt-​angle configuration parameters
Query None.
Request None.
Response XML_MaxElevation
Table A-337 PUT /ISAPI/PTZCtrl/channels/<ID>/maxelevation
Method PUT
Description Set the max. tilt-​angle
Query None.
Request XML_MaxElevation
Response XML_ResponseStatus

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.

Request URI Definition


Table A-338 GET /ISAPI/PTZCtrl/channels/<ID>/maxelevation/capabilities
Method GET
Description Get the max. tilt-​angle capability.
Query None.
Request None.
Response XML_Cap_MaxElevation

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.

Request URI Definition


Table A-339 GET /ISAPI/PTZCtrl/channels/<ID>/moveAutoTracking?format=json
Method GET
Description Get moving object tracking status.
Query format: determine the format of request or response message.
Request None
Response Succeeded: JSON_MoveAutoTracking
Failed: JSON_ResponseStatus
Table A-340 PUT /ISAPI/PTZCtrl/channels/<ID>/moveAutoTracking?format=json
Method PUT
Description Set moving object tracking status.
Query format: determine the format of request or response message.

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.

Request URI Definition


Table A-341 PUT /ISAPI/PTZCtrl/channels/<ID>/onepushfoucs/reset
Method PUT
Description Initialize the lens.
Query None.
Request None.
Response XML_ResponseStatus

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.

Request URI Definition


Table A-342 GET /ISAPI/PTZCtrl/channels/<ID>/parkaction
Method GET
Description Get the parking parameters.
Query None.
Request None.
Response Succeeded: XML_ParkAction
Failed: XML_ResponseStatus

286
Intelligent Security API (General) Developer Guide

Table A-343 PUT /ISAPI/PTZCtrl/channels/<ID>/parkaction


Method PUT
Description Set the parking parameters.
Query None.
Request XML_ParkAction
Response XML_ResponseStatus

A.7.19 /ISAPI/PTZCtrl/channels/<ID>/parkaction/capabilities
Get the parking configuration capability.

Request URI Definition


Table A-344 GET /ISAPI/PTZCtrl/channels/<ID>/parkaction/capabilities
Method GET
Description Get the parking configuration capability.
Query None.
Request None.
Response Succeeded: XML_Cap_ParkAction
Failed: XML_ResponseStatus

A.7.20 /ISAPI/PTZCtrl/Channels/<ID>/position3D
Control 3D positioning.

Request URI Definition


Table A-345 PUT /ISAPI/PTZCtrl/Channels/<ID>/position3D
Method PUT
Description Control 3D positioning.
Query None
Request XML_Position3D
Response XML_ResponseStatus

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.

Request URI Definition


Table A-346 GET /ISAPI/PTZCtrl/channels/<ID>/presets
Method GET
Description Get all presets' parameters.
Query None.
Request None.
Response Succeeded: XML_PTZPresetList
Failed: XML_ResponseStatus
Table A-347 POST /ISAPI/PTZCtrl/channels/<ID>/presets
Method POST
Description Add a preset.
Query None.
Request XML_Set_PTZPreset
Response XML_ResponseStatus
Table A-348 DELETE /ISAPI/PTZCtrl/channels/<ID>/presets
Method DELETE
Description Delete all presets.
Query None.
Request None.
Response XML_ResponseStatus

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

Request URI Definition


Table A-349 GET /ISAPI/PTZCtrl/channels/<ID>/presets/<ID>
Method GET
Description Get a preset's parameters.
Query None.
Request None.
Response Succeeded: XML_PTZPreset
Failed: XML_ResponseStatus
Table A-350 PUT /ISAPI/PTZCtrl/channels/<ID>/presets/<ID>
Method PUT
Description Set a preset's parameters.
Query None.
Request XML_Set_PTZPreset
Response XML_ResponseStatus
Table A-351 DELETE /ISAPI/PTZCtrl/channels/<ID>/presets/<ID>
Method DELETE
Description Delete a preset.
Query None.
Request None.
Response XML_ResponseStatus

A.7.23 /ISAPI/PTZCtrl/channels/<ID>/PTZOSDDisplay
Get or set the on-screen display parameters of the PTZ status.

Request URI Definition


Table A-352 GET /ISAPI/PTZCtrl/channels/<ID>/PTZOSDDisplay
Method GET
Description Get the on-screen display parameters of the PTZ status.
Query None.

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.

Request URI Definition


Table A-354 GET /ISAPI/PTZCtrl/channels/<ID>/save
Method GET
Description Get and save the PTZ position information (including panning, tilting,
and zooming parameters) of the current channel.
Query None.
Request None.
Response Succeeded: XML_PTZStatus
Failed: XML_ResponseStatus

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

Request URI Definition


Table A-355 PUT /ISAPI/PTZCtrl/channels/<ID>/save?format=json
Method PUT
Description Save the PTZ position information, including panning, tilting, and
zooming parameters, of the current channel.
Query format: determine the format of request or response message.
Request None.
Response JSON_ResponseStatus

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.

Request URI Definition


Table A-356 GET /ISAPI/PTZCtrl/channels/<ID>/saveptzpoweroff
Method GET
Description Get parameters of power-​off memory.
Query None.
Request None.
Response Succeeded: XML_savePtzPoweroff
Failed: XML_ResponseStatus
Table A-357 PUT /ISAPI/PTZCtrl/channels/<ID>/saveptzpoweroff
Method PUT
Description Get parameters of power-​off memory.
Query None.
Request XML_savePtzPoweroff
Response XML_ResponseStatus

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.

Request URI Definition


Table A-358 GET /ISAPI/PTZCtrl/channels/<ID>/status
Method GET
Description Get the PTZ status of a specific channel of the device.
Query None.
Request None.
Response Succeeded: XML_PTZStatus
Failed: XML_ResponseStatus

A.7.28 /ISAPI/PTZCtrl/channels/<ID>/trackingRatio/capabilities?format=json
Get the configuration capability of tracking parameters.

Request URI Definition


Table A-359 GET /ISAPI/PTZCtrl/channels/<ID>/trackingRatio/capabilities?format=json
Method GET
Description Get the configuration capability of tracking parameters.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_TrackingRatioCap
Failed: JSON_ResponseStatus

A.7.29 /ISAPI/PTZCtrl/channels/<ID>/trackingRatio?format=json
Get or set the tracking parameters.

Request URI Definition


Table A-360 GET /ISAPI/PTZCtrl/channels/<ID>/trackingRatio?format=json
Method GET
Description Get the tracking parameters.

292
Intelligent Security API (General) Developer Guide

Query format: determine the format of request or response message.


Request None.
Response Succeeded: JSON_TrackingRatio
Failed: JSON_ResponseStatus
Table A-361 PUT /ISAPI/PTZCtrl/channels/<ID>/trackingRatio?format=json
Method PUT
Description Set the tracking parameters.
Query format: determine the format of request or response message.
Request JSON_TrackingRatio
Response JSON_ResponseStatus

A.7.30 /ISAPI/PTZCtrl/channels/<ID>/zoomFocus
Operations about zoom and focus coordinates configuration for zoom camera module.

Request URI Definition


Table A-362 GET /ISAPI/PTZCtrl/channels/<ID>/zoomFocus
Method GET
Description Get parameters of zoom and focus coordinates of zoom camera
module.
Query None.
Request None.
Response XML_ZoomFocus
Table A-363 PUT /ISAPI/PTZCtrl/channels/<ID>/zoomFocus
Method PUT
Description Set parameters of zoom and focus coordinates of zoom camera
module.
Query None.
Request XML_ZoomFocus
Response XML_ResponseStatus

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.

Request URI Definition


Table A-364 GET /ISAPI/Security/adminAccesses
Method GET
Description Get parameters of all protocols supported by device.
Query None.
Request None.
Response Succeeded: XML_AdminAccessProtocolList
Failed: XML_ResponseStatus
Table A-365 PUT /ISAPI/Security/adminAccesses
Method PUT
Description Set parameters of all protocols supported by device.
Query None.
Request XML_AdminAccessProtocolList
Response XML_ResponseStatus

A.8.2 /ISAPI/Security/adminAccesses/<ID>
Get or set the parameters of a specific protocol that supported by device.

Request URI Definition


Table A-366 GET /ISAPI/Security/adminAccesses/<ID>
Method GET
Description Get the parameters of a specific protocol that supported by device.
Query None.
Request None.
Response Succeeded: XML_AdminAccessProtocol

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.

Request URI Definition


Table A-368 GET /ISAPI/Security/adminAccesses/capabilities
Method GET
Description Get device protocol capability.
Query None.
Request None.
Response Succeeded: XML_Cap_AdminAccessProtocolList
Failed: XML_ResponseStatus

A.8.4 /ISAPI/Security/advanced?format=json
Get or set advacned parameters of security.

Request URI Definition


Table A-369 GET /ISAPI/Security/advanced?format=json
Method GET
Description Get advanced configuration parameters of security.
Query format: determine the format of request or response message.

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.

Request URI Definition


Table A-371 GET /ISAPI/Security/capabilities
Method GET
Description Get the security capability of the device.
Query username: user name, string, it should be encrypted.
Request None.
Response Succeeded: XML_SecurityCap
Failed: XML_ResponseStatus

A.8.6 /ISAPI/Security/certificate/select/<functinName>?format=json
Get or set the parameters of selecting the certificate.

Request URI Definition


Table A-372 GET /ISAPI/Security/certificate/select/<functinName>?format=json
Method GET
Description Get the parameters of selecting the certificate.
Query format: determine the format of request or response message.

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.

Request URI Definition


Table A-374 GET /ISAPI/Security/certificate/select/capabilities?format=json
Method GET
Description Get the capability of selecting the certificate.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_Cap_CertificateSelect
Failed: JSON_ResponseStatus

A.8.8 /ISAPI/Security/challenge
Get the random challenge strings.

Request URI Definition


Table A-375 POST /ISAPI/Security/challenge
Method POST
Description 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.

Request URI Definition


Table A-376 GET /ISAPI/Security/CommuMode/capabilities?format=json
Method GET
Description Get the configuration capability of the security mode level of the
private protocol.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_Cap_CommuMode
Failed: JSON_ResponseStatus

A.8.10 /ISAPI/Security/CommuMode?format=json
Operations about the configuration of the security mode level of the private protocol.

Request URI Definition


Table A-377 GET /ISAPI/Security/CommuMode?format=json
Method GET
Description Get the parameters of the security mode level of the private
protocol.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_CommuMode
Failed: JSON_ResponseStatus

298
Intelligent Security API (General) Developer Guide

Table A-378 PUT /ISAPI/Security/CommuMode?format=json


Method PUT
Description Set the parameters of the security mode level of the private protocol.
Query format: determine the format of request or response message.
Request JSON_CommuMode
Response JSON_ResponseStatus

A.8.11 /ISAPI/Security/deviceCertificate
Import network certificate to device.

Request URI Definition


Table A-379 PUT /ISAPI/Security/deviceCertificate
Method PUT
Description Import network certificate to device.
Query type: certificate type. It can be set to "wpa" (upload WPA
certificates), "ieee802.1x" (upload ieee802.1x certificates),
"securityLog" (upload CA certificates of security logs) or "LogServer"
(log server certificate);​ if no value is assigned to this parameter, it
indicates that the WPA certificate will be imported.
Request Certificate data (in binary format)
Response XML_ResponseStatus

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.

Request URI Definition


Table A-380 GET /ISAPI/Security/deviceCertificate/capabilities?format=json
Method GET
Description Get the CA (Certificate Authority) certificate capability.

299
Intelligent Security API (General) Developer Guide

Query format: determine the format of request or response message.


Request None.
Response Succeeded: JSON_DeviceCertificateCap
Failed: JSON_ResponseStatus

A.8.13 /ISAPI/Security/deviceCertificate/certificateRevocation/capabilities?
format=json
Get the configuration capability of the certificate expiry alarm.

Request URI Definition


Table A-381 GET /ISAPI/Security/deviceCertificate/certificateRevocation/capabilities?
format=json
Method GET
Description Get the configuration capability of the certificate expiry alarm.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_CertificateRevocationCap
Failed: JSON_ResponseStatus

A.8.14 /ISAPI/Security/deviceCertificate/certificateRevocation?format=json
Get or set the configuration of certificate expiry alarm.

Request URI Definition


Table A-382 GET /ISAPI/Security/deviceCertificate/certificateRevocation?format=json
Method GET
Description Get the parameters of certificate expiry alarm.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_CertificateRevocation
Failed: JSON_ResponseStatus

300
Intelligent Security API (General) Developer Guide

Table A-383 PUT /ISAPI/Security/deviceCertificate/certificateRevocation?format=json


Method PUT
Description Set the parameters of certificate expiry alarm.
Query format: determine the format of request or response message.
Request JSON_CertificateRevocation
Response JSON_ResponseStatus

A.8.15 /ISAPI/Security/deviceCertificate/certificates/<customID>?format=json
Get or delete the information of a specific device certificate.

Request URI Definition


Table A-384 GET /ISAPI/Security/deviceCertificate/certificates/<customID>?format=json
Method GET
Description Get the information of a specific device certificate.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_DeviceCertificate
Failed: JSON_ResponseStatus
Table A-385 DELETE /ISAPI/Security/deviceCertificate/certificates/<customID>?format=json
Method DELETE
Description Delete the information of a specific device certificate.
Query format: determine the format of request or response message.
Request None.
Response JSON_ResponseStatus

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

Request URI Definition


Table A-386 DELETE /ISAPI/Security/deviceCertificate/certificates/<ID>
Method DELETE
Description Delete the certificate of a specific device.
Query None.
Request None.
Response XML_ResponseStatus

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.

Request URI Definition


Table A-387 PUT /ISAPI/Security/deviceCertificate/certificates/<ID>/recreate?format=json
Method PUT
Description Regenerate a specific certificate for authentication client.
Query format: determine the format of request or response message.
Request None.
Response JSON_ResponseStatus

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

Request URI Definition


Table A-388 GET /ISAPI/Security/deviceCertificate/certificates/<ID>/status?format=json
Method GET
Description Get the status of a specific certificate.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_DeviceCertificateStatus
Failed: JSON_ResponseStatus

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.

Request URI Definition


Table A-389 GET /ISAPI/Security/deviceCertificate/certificates/capabilities?format=json
Method GET
Description Get certificate search capability.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_DeviceCertificatesCap
Failed: JSON_ResponseStatus

A.8.20 /ISAPI/Security/deviceCertificate/certificates/recreate?format=json
Regenerate all abnormal certificates.

Request URI Definition


Table A-390 PUT /ISAPI/Security/deviceCertificate/certificates/recreate?format=json
Method PUT
Description Regenerate all abnormal certificates.

303
Intelligent Security API (General) Developer Guide

Query format: determine the format of request or response message.


Request None.
Response JSON_ResponseStatus

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.

Request URI Definition


Table A-391 GET /ISAPI/Security/deviceCertificate/certificates/status?format=json
Method GET
Description Get status of all certificates.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_DeviceCertificateStatusList
Failed: JSON_ResponseStatus

A.8.22 /ISAPI/Security/deviceCertificate/certificates?format=json
Get device certificate information in a batch.

Request URI Definition


Table A-392 GET /ISAPI/Security/deviceCertificate/certificates?format=json
Method GET
Description Get device certificate information in a batch.
Query format: determine the format of request or response message.
type: certificate type, it can be set to "wpa" (get all WPA certificates),
"ieee802.1x" (get all ieee802.1x certificates), and "securityLog" (get
all CA certificates of security logs); if no value is assigned to type, all
CA certificates will be searched and obtained.

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.

Request URI Definition


Table A-393 GET /ISAPI/Security/deviceCertificate/selfSignCert
Method GET
Description Export the device's self-signed certificate.
Query None.
Request None.
Response Succeeded: Binary data.
Failed: XML_ResponseStatus

A.8.24 /ISAPI/Security/deviceCertificate?customID=
Import a CA (Certificate Authority) certificate to the device.

Request URI Definition


Table A-394 PUT /ISAPI/Security/deviceCertificate?customID=
Method PUT
Description Import a CA (Certificate Authority) certificate to the device. The CA
certificate is used for 802.1x (radius) with various authentication
mechanism.
Query customID: custom certificate ID, string, it consists of digits and
characters.
Request Certificate data (its format depends on the device).
Response XML_ResponseStatus

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.

Request URI Definition


Table A-395 GET /ISAPI/Security/doubleVerification/users/<ID>?format=json
Method GET
Description Get 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_User
Table A-396 PUT /ISAPI/Security/doubleVerification/users/<ID>?format=json
Method PUT
Description Set 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.

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.

Request URI Definition


Table A-398 GET /ISAPI/Security/doubleVerification/users/capabilities?format=json
Method GET
Description Get the double verification configuration capability.
Query format: determine the format of request or response message.
Request None.
Response JSON_UserCap

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

Request URI Definition


Table A-399 GET /ISAPI/Security/doubleVerification/users?format=json
Method GET
Description Get all double verification users.
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_UserList
Table A-400 POST /ISAPI/Security/doubleVerification/users?format=json
Method POST
Description Add 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 JSON_User
Response Succeeded: JSON_ResponseStatus and JSON_id
Failed: JSON_ResponseStatus

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

Request URI Definition


Table A-401 GET /ISAPI/Security/doubleVerification/UsersPermission/<ID>?format=json
Method GET
Description Get the configuration parameters of double verification user
permission.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_UserPermission
Failed: JSON_ResponseStatus
Table A-402 PUT /ISAPI/Security/doubleVerification/UsersPermission/<ID>?format=json
Method PUT
Description Set the double verification user permission.
Query format: determine the format of request or response message.
Request JSON_UserPermission
Response JSON_ResponseStatus

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.

Request URI Definition


Table A-403 GET /ISAPI/Security/doubleVerification/UsersPermission/capabilities?format=json
Method GET
Description Get the capability of permission configuration for double verification
user.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_UserPermissionCap
Failed: JSON_ResponseStatus

309
Intelligent Security API (General) Developer Guide

A.8.30 /ISAPI/Security/doubleVerification?format=json
Get the capability of double verification enabling configuration.

Request URI Definition


Table A-404 GET /ISAPI/Security/doubleVerification?format=json
Method GET
Description Get the capability of double verification enabling configuration.
Query format: determine the format of request or response message.
Request None.
Response JSON_DoubleVerification
Table A-405 PUT /ISAPI/Security/doubleVerification?format=json
Method PUT
Description Enable or disable the double verification.
Query format: determine the format of request or response message.
Request JSON_DoubleVerification
Response JSON_ResponseStatus

A.8.31 /ISAPI/Security/email/parameter/capabilities?format=json
Get recovery email configuration capability (only available in LAN and for admin user).

Request URI Definition


Table A-406 GET /ISAPI/Security/email/parameter/capabilities?format=json
Method GET
Description Get recovery email configuration capability.
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.

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).

Request URI Definition


Table A-407 GET /ISAPI/Security/email/parameter?format=json
Method GET
Description Get recovery email 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 None.
Response JSON_SecurityEmail
Table A-408 PUT /ISAPI/Security/email/parameter?format=json
Method PUT
Description Set recovery email 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_SecurityEmail
Response JSON_ResponseStatus

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).

Request URI Definition


Table A-409 GET /ISAPI/Security/email/qrCode?format=json
Method GET
Description Get the QR code of the configured recovery email.
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_SecurityEmailQrCode

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).

Request URI Definition


Table A-410 PUT /ISAPI/Security/emailCertification?format=json
Method PUT
Description Reset password by the verification code via recovery email.
Query format: determine the format of request or response message.
Request JSON_EmailCertification
Response JSON_ResponseStatus

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.

Request URI Definition


Table A-411 GET /ISAPI/Security/extern/capabilities
Method GET
Description Get capability of other security configuration.
Query None.
Request None.
Response XML_externSecurityCap

A.8.36 /ISAPI/Security/illegalLoginLock
Get or set locking parameters of illegal login.

Request URI Definition


Table A-412 GET /ISAPI/Security/illegalLoginLock
Method GET
Description Get locking parameters of illegal login.
Query None.
Request None.
Response Succeeded: XML_IllegalLoginLock
Failed: XML_ResponseStatus
Table A-413 PUT /ISAPI/Security/illegalLoginLock
Method PUT
Description Set locking parameters of illegal login.
Query None.
Request XML_IllegalLoginLock
Response XML_ResponseStatus

313
Intelligent Security API (General) Developer Guide

A.8.37 /ISAPI/Security/loginLinkNum?format=json
Get or set maximum number of logged in accounts.

Request URI Definition


Table A-414 GET /ISAPI/Security/loginLinkNum?format=json
Method GET
Description Get maximum number of logged in accounts.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_LoginLinkNum
Failed: JSON_ResponseStatus
Table A-415 PUT /ISAPI/Security/loginLinkNum?format=json
Method PUT
Description Set maximum number of logged in accounts.
Query format: determine the format of request or response message.
Request JSON_LoginLinkNum
Response JSON_ResponseStatus

A.8.38 /ISAPI/Security/onlineUser
Get the information of online users.

Request URI Definition


Table A-416 GET /ISAPI/Security/onlineUser
Method GET
Description Get the information of online users.
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.

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.

Request URI Definition


Table A-417 GET /ISAPI/Security/questionConfiguration
Method GET
Description Get device security questions.
Query None.
Request None.
Response Succeeded: XML_SecurityQuestion
Failed: XML_ResponseStatus
Table A-418 PUT /ISAPI/Security/questionConfiguration
Method PUT
Description Set device security questions.
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_SecurityQuestion
Response XML_ResponseStatus

A.8.40 /ISAPI/Security/RTSPCertificate
Get or set parameters of devices' RTSP authentication mode.

315
Intelligent Security API (General) Developer Guide

Request URI Definition


Table A-419 GET /ISAPI/Security/RTSPCertificate
Method GET
Description Get parameters of devices' RTSP authentication mode.
Query None.
Request None.
Response Succeeded: XML_RTSPCertificate
Failed: XML_ResponseStatus
Table A-420 PUT /ISAPI/Security/RTSPCertificate
Method PUT
Description Set parameters of devices' RTSP authentication mode.
Query None.
Request XML_RTSPCertificate
Response XML_ResponseStatus

A.8.41 /ISAPI/Security/RTSPCertificate/capabilities
Get the capability of devices' RTSP authentication mode.

Request URI Definition


Table A-421 GET /ISAPI/Security/RTSPCertificate/capabilities
Method GET
Description Get the capability of devices' RTSP authentication mode.
Query None.
Request None.
Response Succeeded: XML_RTSPCertificateCap
Failed: XML_ResponseStatus

A.8.42 /ISAPI/Security/serverCertificate/capabilities?format=json
Get the client/server certificate capability.

316
Intelligent Security API (General) Developer Guide

Request URI Definition


Table A-422 GET /ISAPI/Security/serverCertificate/capabilities?format=json
Method GET
Description Get the client/server certificate capability.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_ServerCertificateCap
Failed: JSON_ResponseStatus

A.8.43 /ISAPI/Security/serverCertificate/certificate
Get, upload, and delete device certificate information.

Request URI Definition


Table A-423 GET /ISAPI/Security/serverCertificate/certificate
Method GET
Description Get device certificate information.
Query type: certificate type, it can be set to "CCClentCertificate" (client
certificate for CC authentication) or "LogServer" (log server
certificate);​ if no value is assigned to type, it represents the HTTPS
certificate.
Request None.
Response Succeeded: XML_CertificateInfo
XML_ResponseStatus
Table A-424 PUT /ISAPI/Security/serverCertificate/certificate
Method PUT
Description Upload certificate to device.
Query type: certificate type, it can be set to "CCClentCertificate" (client
certificate for CC authentication) or "LogServer" (log server
certificate);​ if no value is assigned to type, it represents the HTTPS
certificate.
Request Certificate data (binary)
Response XML_ResponseStatus

317
Intelligent Security API (General) Developer Guide

Table A-425 DELETE /ISAPI/Security/serverCertificate/certificate


Method DELETE
Description Delete the installed certificate of device.
Query type: certificate type, it can be set to "CCClentCertificate" (client
certificate for CC authentication) or "LogServer" (log server
certificate);​ if no value is assigned to type, it represents the HTTPS
certificate.
Request None.
Response XML_ResponseStatus

A.8.44 /ISAPI/Security/serverCertificate/certificate?customID=
Import the client/server certificate to the device.

Request URI Definition


Table A-426 POST /ISAPI/Security/serverCertificate/certificate?customID=
Method POST
Description Import the client/server certificate to the device.
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.
customID: custom certificate ID, string, it consists of digits and
characters.
Request XML_CertificateReq_ImportCert +certificate data.
Response XML_ResponseStatus

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.

Request URI Definition


Table A-427 GET /ISAPI/Security/serverCertificate/certificates?format=json
Method GET
Description Get the information of multiple client/server certificates in a batch.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_ServerCertificates
Failed: JSON_ResponseStatus

A.8.46 /ISAPI/Security/serverCertificate/certificates/<customID>?format=json
Get or delete the information of a specific client/server certificate.

Request URI Definition


Table A-428 GET /ISAPI/Security/serverCertificate/certificates/<customID>?format=json
Method GET
Description Get the information of a specific client/server certificate.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_DeviceCertificate
Failed: JSON_ResponseStatus

319
Intelligent Security API (General) Developer Guide

Table A-429 DELETE /ISAPI/Security/serverCertificate/certificates/<customID>?format=json


Method DELETE
Description Delete the information of a specific client/server certificate.
Query format: determine the format of request or response message.
Request None.
Response JSON_ResponseStatus

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.

Request URI Definition


Table A-430 GET /ISAPI/Security/serverCertificate/certSignReq
Method GET
Description Get signature request information of device certificate.
Query type: certificate type, it can be set to "CCClentCertificate" (client
certificate for CC authentication) or "LogServer" (log server
certificate);​ if no value is assigned to type, it represents the HTTPS
certificate.
Request None.
Response Succeeded: XML_CertificateReqInfo
Failed: XML_ResponseStatus
Table A-431 PUT /ISAPI/Security/serverCertificate/certSignReq
Method PUT
Description Generate signature request information of device certificate.
Query type: certificate type, it can be set to "CCClentCertificate" (client
certificate for CC authentication) or "LogServer" (log server
certificate);​ if no value is assigned to type, it represents the HTTPS
certificate.
Request XML_CertificateReq
Response XML_ResponseStatus

320
Intelligent Security API (General) Developer Guide

Table A-432 DELETE /ISAPI/Security/serverCertificate/certSignReq


Method DELETE
Description Delete signature request of device certificate.
Query type: certificate type, it can be set to "CCClentCertificate" (client
certificate for CC authentication) or "LogServer" (log server
certificate);​ if no value is assigned to type, it represents the HTTPS
certificate.
Request None.
Response XML_ResponseStatus

A.8.48 /ISAPI/Security/serverCertificate/certSignReq?customID=
Create a PKCS#10 signature request of the client/server certificate.

Request URI Defintion


Table A-433 POST /ISAPI/Security/serverCertificate/certSignReq?customID=
Method POST
Description Create a PKCS#10 signature request of the client/server certificate.
Query customID: custom certificate ID, string, it consists of digits and
characters.
Request XML_CertificateReq
Response Succeeded: XML_CertificateResult
Failed: XML_ResponseStatus

A.8.49 /ISAPI/Security/serverCertificate/downloadCertSignReq
Download the certificate of authentication client.

Request URI Definition


Table A-434 GET /ISAPI/Security/serverCertificate/downloadCertSignReq
Method GET
Description Download the certificate of authenticated client.
Query type: certificate type, it can be set to "CCClentCertificate" (client
certificate for CC authentication) or "LogServer" (log server

321
Intelligent Security API (General) Developer Guide

certificate);​ if no value is assigned to type, it represents the HTTPS


certificate.
Request None.
Response Certificate data (binary)

A.8.50 /ISAPI/Security/serverCertificate/downloadCertSignReq?customID=
Export the client/server certificate.

Request URI Definition


Table A-435 GET /ISAPI/Security/serverCertificate/downloadCertSignReq?customID=
Method GET
Description Export the client/server certificate.
Query customID: custom certificate ID, string, it consists of digits and
characters.
Request None.
Response Certificate data.

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.

Request URI Definition


Table A-436 GET /ISAPI/Security/serverCertificate/selfSignCert?customID=
Method GET
Description Get 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 None.
Response Succeeded: XML_CertificateReq

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.

Request URI Definition


Table A-438 GET /ISAPI/Security/userCheck
Method GET
Description Log in to the device by digest. This URI is used to check whether the
user name matches with the password.
Query None.
Request None.
Response Succeeded: XML_userCheck
Failed: XML_ResponseStatus

A.8.53 /ISAPI/Security/UserPermission
Operations about the user permission of the device.

Request URI Definition


Table A-439 GET /ISAPI/Security/UserPermission
Method GET
Description Get the user permission of the device.
Query None.

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.

Request URI Definition


Table A-441 GET /ISAPI/Security/UserPermission/<ID>
Method GET
Description Get a specific user's permission.
Query None.
Request None.
Response Succeeded: XML_UserPermission
Failed: XML_ResponseStatus
Table A-442 PUT /ISAPI/Security/UserPermission/<ID>
Method PUT
Description Set a specific user's permission.
Query None.
Request XML_UserPermission
Response XML_ResponseStatus

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

Request URI Definition


Table A-443 GET /ISAPI/Security/UserPermission/<ID>/localPermission
Method GET
Description Get the local permission of a specified user.
Query None.
Request None.
Response XML_localPermission
Table A-444 PUT /ISAPI/Security/UserPermission/<ID>/localPermission
Method PUT
Description Set the local permission of a specified user.
Query None.
Request XML_localPermission
Response XML_ResponseStatus

A.8.56 /ISAPI/Security/UserPermission/<ID>/remotePermission
Get and set the remote permission of a specified user.

Request URI Definition


Table A-445 GET /ISAPI/Security/UserPermission/<ID>/remotePermission
Method GET
Description Get the remote permission of a specified user.
Query None.
Request None.
Response XML_remotePermission
Table A-446 PUT /ISAPI/Security/UserPermission/<ID>/remotePermission
Method PUT
Description Set the remote permission of a specified user.
Query None.
Request XML_remotePermission
Response XML_ResponseStatus

325
Intelligent Security API (General) Developer Guide

A.8.57 /ISAPI/Security/UserPermission/adminCap
Get the user permission capability of the administrator.

Request URI Definiton


Table A-447 GET /ISAPI/Security/UserPermission/adminCap
Method GET
Description Get the user permission capability of the administrator.
Query None.
Request None.
Response Succeeded: XML_UserPermissionCap
Failed: XML_ResponseStatus

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.

Request URI Definition


Table A-448 GET /ISAPI/Security/UserPermission/anonymouslogin
Method GET
Description Get permission of the anonymous user.
Query None.
Request None.
Response Succeeded: XML_anonymouslogin
Failed: XML_ResponseStatus
Table A-449 PUT /ISAPI/Security/UserPermission/anonymouslogin
Method PUT
Description Assign permission of the anonymous user.
Query None.

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.

Request URI Definition


Table A-450 GET /ISAPI/Security/UserPermission/capabilities
Method GET
Description Get the configuration capability of all users' permissions.
Query None.
Request None.
Response Succeeded: XML_Cap_UserPermissionList
Failed: XML_ResponseStatus

A.8.60 /ISAPI/Security/UserPermission/operatorCap
Get the user permission capability of the operator.

Request URI Definition


Table A-451 GET /ISAPI/Security/UserPermission/operatorCap
Method GET
Description Get the user permission capability of the operator.
Query None.
Request None.
Response Succeeded: XML_UserPermissionCap
Failed: XML_ResponseStatus

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.

Request URI Definition


Table A-452 GET /ISAPI/Security/UserPermission/viewerCap
Method GET
Description Get the user permission capability of the viewer.
Query None.
Request None.
Response XML_UserPermissionCap

A.8.62 /ISAPI/Security/users
Get, set, or delete information of all users; add a new user.

Request URI Definition


Table A-453 GET /ISAPI/Security/users
Method GET
Description Get information of all users.
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_UserList
Failed: XML_ResponseStatus
Table A-454 PUT /ISAPI/Security/users
Method PUT
Description Set information of all users。

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

POST /ISAPI/Security/users HTTP/1.1


Host: 10.17.132.49
Content-Length: 335
Connection: Keep-Alive
Authorization: Digest username="admin",
realm="DS-2CD2F12FWD-IWS",
nonce="4e6a4d774d6a63304f544936593255335a474d334f54673d",
uri="/ISAPI/Security/users",
cnonce="178e14d4977c835db891b5392b5d0a67",
nc=00000015,
response="d92518fb00cd2772cf212f5326b251be",
qop="auth"

<?xml version="1.0" encoding="UTF-8"?>


<User>
<id>0</id>
<userName>test</userName>
<password>1qaz2wsx</password>
<bondIpList>
<bondIp>
<id>1</id>
<ipAddress>0.0.0.0</ipAddress>
<ipv6Address>::</ipv6Address>
</bondIp>
</bondIpList>
<macAddress></macAddress>
<userLevel>Operator</userLevel>
<attribute>
<inherent>false</inherent>
</attribute>
</User>

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

<?xml version="1.0" encoding="UTF-8"?>


<ResponseStatus version="2.0" xmlns="http://www.isapi.com/ver20/XMLSchema">
<requestURL>/ISAPI/Security/users</requestURL>
<statusCode>1</statusCode>
<statusString>OK</statusString>
<id>2</id>
<subStatusCode>ok</subStatusCode>
</ResponseStatus>

Example
Sample Code for Setting User Permission

330
Intelligent Security API (General) Developer Guide

PUT /ISAPI/Security/UserPermission/2 HTTP/1.1


Host: 10.17.132.49
Content-Length: 891
Connection: Keep-Alive
Authorization: Digest username="admin",
realm="DS-2CD2F12FWD-IWS",
nonce="4e6a4d774d6a63304f544936593255335a474d334f54673d",
uri="/ISAPI/Security/UserPermission/2",
cnonce="178e14d4977c835db891b5392b5d0a67",
nc=00000016,
response="f69a20db00b36e9bb46c26c06e9bae80",
qop="auth"

<?xml version="1.0" encoding="utf-8"?>


<UserPermission>
<id>2</id>
<userID>2</userID>
<userType>operator</userType>
<remotePermission>
<parameterConfig>false</parameterConfig>
<logOrStateCheck>true</logOrStateCheck>
<upgrade>false</upgrade>
<voiceTalk>true</voiceTalk>
<restartOrShutdown>false</restartOrShutdown>
<alarmOutOrUpload>false</alarmOutOrUpload>
<contorlLocalOut>false</contorlLocalOut>
<transParentChannel>false</transParentChannel>
<preview>true</preview>
<record>true</record>
<ptzControl>true</ptzControl>
<playBack>true</playBack>
<videoChannelPermissionList>
<videoChannelPermission>
<id>1</id>
<preview>true</preview>
<record>true</record>
<playBack>true</playBack>
</videoChannelPermission>
</videoChannelPermissionList>
<ptzChannelPermissionList>
<ptzChannelPermission>
<id>1</id>
<ptzControl>true</ptzControl>
</ptzChannelPermission>
</ptzChannelPermissionList>
</remotePermission>
</UserPermission>

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

<?xml version="1.0" encoding="UTF-8"?>


<ResponseStatus version="2.0" xmlns="http://www.isapi.com/ver20/XMLSchema">
<requestURL>/ISAPI/Security/UserPermission/2</requestURL>
<statusCode>1</statusCode>
<statusString>OK</statusString>
<subStatusCode>ok</subStatusCode>
</ResponseStatus>

A.8.63 /ISAPI/Security/users/<ID>
Get, set, or delete information of a specific user.

Request URI Definition


Table A-457 GET /ISAPI/Security/users/<ID>
Method GET
Description Get a specific user's configuration of the device.
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_User
Failed: XML_ResponseStatus
Table A-458 PUT /ISAPI/Security/users/<ID>
Method PUT
Description Get 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.

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.

Request URI Definition


Table A-460 GET /ISAPI/Security/users/<ID>/capabilities
Method GET
Description Get the configuration capability 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.

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.

Request URI Definition


Table A-461 GET /ISAPI/Security/webCertificate
Method GET
Description Get the certificate type parameters of web service.
Query None.
Request None.
Response Succeeded: XML_WebCertificate
Failed: XML_ResponseStatus
Table A-462 PUT /ISAPI/Security/webCertificate
Method PUT
Description Set the certificate type parameters of web service.
Query None.
Request XML_WebCertificate
Response XML_ResponseStatus

A.8.66 /ISAPI/SecurityCP/ReportCenterCfg/capabilities?format=json
Get the configuration capability of the report uploading method.

Request URI Definition


Table A-463 GET /ISAPI/SecurityCP/ReportCenterCfg/capabilities?format=json
Method GET
Description Get the configuration capability of the report uploading method.

334
Intelligent Security API (General) Developer Guide

Query format: determine the format of request or response message.


Request None.
Response Succeeded: JSON_Cap_ReportCenterCfg
Failed: JSON_ResponseStatus

A.8.67 /ISAPI/SecurityCP/ReportCenterCfg/<ID>?format=json
Operations about the configuration of the report uploading method.

Request URI Definition


Table A-464 GET /ISAPI/SecurityCP/ReportCenterCfg/<ID>?format=json
Method GET
Description Get the parameters of the report uploading method.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_ReportCenterCfg
Failed: JSON_ResponseStatus
Table A-465 PUT /ISAPI/SecurityCP/ReportCenterCfg/<ID>?format=json
Method PUT
Description Set the parameters of the report uploading method.
Query format: determine the format of request or response message.
Request JSON_ReportCenterCfg
Response JSON_ResponseStatus

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

Request URI Definition


Table A-466 GET /ISAPI/Smart/capabilities
Method GET
Description Get the capability of smart devices.
Query None
Request None
Response Succeeded: XML_SmartCap
Failed: XML_ResponseStatus

A.9.2 /ISAPI/Smart/AudioDetection/channels/<ID>
Get or set the audio detection parameters of a specific channel.

Request URI Definition


Table A-467 GET /ISAPI/Smart/AudioDetection/channels/<ID>
Method GET
Description Get the audio detection parameters of a specific channel.
Query None.
Request None.
Response Succeeded: XML_AudioDetection
Failed: XML_ResponseStatus
Table A-468 PUT /ISAPI/Smart/AudioDetection/channels/<ID>
Method PUT
Description Set the audio detection parameters of a specific channel.
Query None.
Request XML_AudioDetection
Response XML_ResponseStatus

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

Request URI Definition


Table A-469 GET /ISAPI/Smart/AudioDetection/channels/<ID>/capabilities
Method GET
Description Get the configuration capability of audio detection of a specific
channel.
Query None.
Request None.
Response Succeeded: XML_Cap_AudioDetection
Failed: XML_ResponseStatus

A.9.4 /ISAPI/Smart/AudioDetection/channels/<ID>/status
Get the audio strength.

Request URI Definition


Table A-470 GET /ISAPI/Smart/AudioDetection/channels/<ID>/status
Method GET
Description Get the audio strength.
Query None.
Request None.
Response Succeeded: XML_AudioStrengthStatus
Failed: XML_ResponseStatus

A.9.5 /ISAPI/Smart/storageDetection/rwlock
Get or set the read & write lock parameters of storage health detection.

Request URI Definition


Table A-471 GET /ISAPI/Smart/storageDetection/rwlock
Method GET
Description Get the read & write lock parameters of storage health detection.
Query None.

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.

Request URI Definition


Table A-473 GET /ISAPI/Smart/storageDetection/rwlock/capabilities
Method GET
Description Get the configuration capability of read & write lock of storage health
detection.
Query None.
Request None.
Response Succeeded: XML_Cap_RWLock
Failed: XML_ResponseStatus

A.9.7 /ISAPI/Smart/storageDetection
Get the storage health detection parameters.

Request URI Definition


Table A-474 GET /ISAPI/Smart/storageDetection
Method GET
Description Get the storage health detection parameters.
Query None.

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.

Request URL Definition


Table A-475 GET /ISAPI/Snapshot/channels
Method GET
Description Get the parameters of multiple channels for capturing pictures by
schedule.
Query None.
Request None.
Response Succeeded: XML_SnapshotChannelList
Failed: XML_ResponseStatus
Table A-476 PUT /ISAPI/Snapshot/channels
Method PUT
Description Set the parameters of multiple channels for capturing pictures by
schedule.
Query None.
Request XML_SnapshotChannelList
Response XML_ResponseStatus

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

Request URL Definition


Table A-477 GET /ISAPI/Snapshot/channels/<ID>
Method GET
Description Get the parameters of a specific channel for capturing pictures by
schedule.
Query None.
Request None.
Response Succeeded: XML_SnapshotChannel
Failed: XML_ResponseStatus
Table A-478 PUT /ISAPI/Snapshot/channels/<ID>
Method PUT
Description Set the parameters of a specific channel for capturing pictures by
schedule.
Query None.
Request XML_SnapshotChannel
Response XML_ResponseStatus

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.

Request URI Definition


Table A-479 GET /ISAPI/Snapshot/channels/<ID>/capabilities
Method GET
Description Get the configuration capability of capturing pictures by schedule.
Query None.
Request None.
Response Succeeded: XML_Cap_SnapshotChannel
Failed: XML_ResponseStatus

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.

Request URI Definition


Table A-480 GET /ISAPI/Streaming/channels
Method GET
Description Get the encoding parameters of multiple channels.
Query None.
Request None.
Response XML_StreamingChannelList
Table A-481 PUT /ISAPI/Streaming/channels
Method PUT
Description Set the encoding parameters of multiple channels.
Query None.
Request XML_StreamingChannelList
Response XML_ResponseStatus
Table A-482 POST /ISAPI/Streaming/channels
Method POST
Description Add an encoding channel.
Query None.
Request XML_StreamingChannel
Response XML_ResponseStatus
Table A-483 DELETE /ISAPI/Streaming/channels
Method DELETE
Description Delete all encoding channels.
Query None.

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.

Request URI Definition


Table A-484 GET /ISAPI/Streaming/channels/<ID>
Method GET
Description Get the encoding parameters of a specific channel.
Query None.
Request None.
Response Succeeded: XML_StreamingChannel
Failed: XML_ResponseStatus
Table A-485 PUT /ISAPI/Streaming/channels/<ID>
Method PUT
Description Set the encoding parameters of a specific channel.
Query None.
Request XML_StreamingChannel
Response XML_ResponseStatus
Table A-486 DELETE /ISAPI/Streaming/channels/<ID>
Method DELETE
Description Delete the encoding parameters of a specific channel.
Query None
Request None.
Response XML_ResponseStatus

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

GET /ISAPI/Streaming/channels/444 HTTP/1.1



HTTP/1.1 200 OK
Content-Type: application/xml; charset=“UTF-8”
Content-Length: ISAPI

<?xml version="1.0" encoding="UTF-8"?>


<StreamingChannel version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<id>444</id>
<channelName>Input 1 MPEG-4 ASP</channelName>
<enabled>true</enabled>
<Transport>
<rtspPortNo>554</rtspPortNo>
<maxPacketSize>1446</maxPacketSize>
<ControlProtocolList>
<ControlProtocol>
<streamingTransport>RTSP</streamingTransport>
</ControlProtocol>
<ControlProtocol>
<streamingTransport>HTTP</streamingTransport>
</ControlProtocol>
</ControlProtocolList>
</Transport>
<Video>
<enabled>true</enabled>
<videoInputChannelID>2</videoInputChannelID>
<videoCodecType>MPEG4</videoCodecType>
<videoScanType>progressive</videoScanType>
<videoResolutionWidth> 640</videoResolutionWidth>
<videoResolutionHeight>480</videoResolutionHeight>
<videoPositionX>0</videoPositionX>
<videoPositionY>0</videoPositionY>
<videoQualityControlType>CBR</videoQualityControlType>
<constantBitRate>2000</constantBitRate>
<maxFrameRate>2500</maxFrameRate>
<keyFrameInterval>1000</keyFrameInterval>
<rotationDegree>0</rotationDegree>
<mirrorEnabled>false</mirrorEnabled>
<snapShotImageType>JPEG</snapShotImageType>
</Video>
<Audio>
<enabled>false</enabled>
<audioInputChannelID>2</audioInputChannelID>
<audioCompressionType> G.726</audioCompressionType>
<audioBitRate>24</audioBitRate>
<audioSamplingRate>8</audioSamplingRate>
</Audio>
</StreamingChannel>

343
Intelligent Security API (General) Developer Guide

A.11.3 /ISAPI/Streaming/channels/<ID>/capabilities
Get encoding capability of a specific channel.

Request URI Definition


Table A-487 GET /ISAPI/Streaming/channels/<ID>/capabilities
Method GET
Description Get the encoding capability of a specific channel.
Query None.
Request None.
Response Succeeded: XML_Cap_StreamingChannel
Failed: XML_ResponseStatus

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

<?xml version="1.0" encoding="UTF-8"?>


<StreamingChannel version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<id opt="111,222,333,444">444</id>
<channelName min="0" max="64">Input 1 MPEG-4 ASP</channelName>
<enabled opt="true,false" def="true">true</enabled>
<Transport>
<rtspPortNo min="0" max="65535" def="554">554</rtspPortNo>
<maxPacketSize min="0" max="1500">1446</maxPacketSize>
<audioPacketLength min="0" max="5000"/>
<audioInboundPacketLength min="0" max="5000"/>
<audioInboundPortNo min="0" max="65535"/>
<videoSourcePortNo min="0" max="65535"/>
<audioSourcePortNo min="0" max="65535"/>
<ControlProtocolList>
<ControlProtocol>
<streamingTransport opt="RTSP/RTP,HTTP">RTSP</streamingTransport>
</ControlProtocol>
<ControlProtocol>
<streamingTransport opt="RTSP/RTP,HTTP">HTTP</streamingTransport>
</ControlProtocol>

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

Request URI Definition


Table A-488 GET /ISAPI/Streaming/channels/<ID>/dynamicCap
Method GET
Description Get the dynamic encoding capability of a specific channel.
Query None.
Request None.
Response XML_DynamicCap

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.

Request URI Definition


Table A-489 GET /ISAPI/Streaming/channels/<ID>/picture
Method GET
Description Manually capture picture in the video stream of a specific channel.
Query (Optional) videoResolutionWidth: width of captured picture
resolution.
(Optional) videoResolutionHeight: height of captured picture
resolution.
(Optional) snapShotImageType: captured picture format, only the
JPEG format is supported.
Request None.
Response Picture data, which is transmitted on HTTP.

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.

Request URI Definition


Table A-490 GET /ISAPI/Streaming/channels/<ID>/regionClip
Method GET
Description Get target cropping parameters by streaming channel.
Query None.
Request None.
Response Succeeded: XML_RegionClip
Failed: XML_ResponseStatus
Table A-491 PUT /ISAPI/Streaming/channels/<ID>/regionClip
Method PUT
Description Set target cropping parameters by streaming channel.
Query None.
Request XML_RegionClip
Response XML_ResponseStatus

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.

Request URI Definition


Table A-492 GET /ISAPI/Streaming/channels/<ID>/regionClip/capabilities
Method GET
Description Get configuration capability of target cropping by streaming channel.
Query None.
Request None.
Response Succeeded: XML_Cap_RegionClip
Failed: XML_ResponseStatus

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.

Request URI Definition


Table A-493 GET /ISAPI/Streaming/channels/<ID>/smartOverlap/capabilities?format=json
Method GET
Description Get the capability of configuring the stream for displaying VCA rules
of smart events.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_SmartOverlapCap
Failed: JSON_ResponseStatus

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.

Request URI Definition


Table A-494 GET /ISAPI/Streaming/channels/<ID>/smartOverlap?format=json
Method GET
Description Get the stream parameters for displaying VCA rules of smart events.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_SmartOverlap
Failed: JSON_ResponseStatus
Table A-495 PUT /ISAPI/Streaming/channels/<ID>/smartOverlap?format=json
Method PUT
Description Set the stream parameters for displaying VCA rules of smart events.
Query format: determine the format of request or response message.
Request JSON_SmartOverlap
Response JSON_ResponseStatus

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.

Request URI Definition


Table A-496 GET /ISAPI/Streaming/channels/<ID>/status
Method GET
Description Get the streaming or encoding status of a specific channel.
Query None.
Request None.
Response Succeeded: XML_StreamingSessionStatusList

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.

Request URI Definition


Table A-497 GET /ISAPI/Streaming/encryption/capabilities?format=json
Method GET
Description Get stream encryption capability.
Query format: determine the format of request or response message.
Request None.
Response JSON_EncryptionCap

A.11.12 /ISAPI/Streaming/encryption/secretKey?format=json
Operations about the configuration of stream encryption key.

Request URI Definition


Table A-498 GET /ISAPI/Streaming/encryption/secretKey?format=json
Method GET
Description Get the configuration parameters of stream encryption key.
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_secretKey

350
Intelligent Security API (General) Developer Guide

Table A-499 PUT /ISAPI/Streaming/encryption/secretKey?format=json


Method GET
Description Set stream encryption key.
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_secretKey
Response JSON_ResponseStatus

A.11.13 /ISAPI/Streaming/encryption?format=json
Operations about the configuration of stream encryption.

Request URI Definition


Table A-500 GET /ISAPI/Streaming/encryption?format=json
Method GET
Description Get the configuration parameters of stream encryption.
Query format: determine the format of request or response message.
Request None.
Response JSON_EnableEncryption
Table A-501 PUT /ISAPI/Streaming/encryption?format=json
Method GET
Description Enable stream encryption.
Query format: determine the format of request or response message.
Request JSON_EnableEncryption
Response JSON_ResponseStatus

351
Intelligent Security API (General) Developer Guide

A.11.14 /ISAPI/Streaming/status
Get the streaming or encoding status of all channels.

Request URI Definition


Table A-502 GET /ISAPI/Streaming/status
Method GET
Description Get the streaming or encoding status of all channels.
Query None.
Request None.
Response Succeeded: XML_StreamingStatus
Failed: XML_ResponseStatus

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.

Request URL Definition


Table A-503 DESCRIBE rtsp://<host>[:port]/ISAPI/Streaming/channels/<ID>
Method DESCRIBE
Description Get basic parameters for live view.
Query None.
Request None.
Response None.
Table A-504 SETUP rtsp://<host>[:port]/ISAPI/Streaming/channels/<ID>
Method SETUP
Description Get session information for live view.
Query None.
Request None.
Response None.

352
Intelligent Security API (General) Developer Guide

Table A-505 PLAY rtsp://<host>[:port]/ISAPI/Streaming/channels/<ID>


Method PLAY
Description Start live view.
Query None.
Request None.
Response None.
Table A-506 TEARDOW rtsp://<host>[:port]/ISAPI/Streaming/channels/<ID>
Method TEARDOW
Description Stop live view.
Query None.
Request None.
Response None.

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).

Request URL Definition


Table A-507 DESCRIBE rtsp://<host>[:port]/ISAPI/Streaming/channels/<ID>?npq=
Method DESCRIBE
Description Request for getting basic parameters for multicast based on 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.

Request URL Definition


Table A-511 DESCRIBE rtsp://<host>[:port]/ISAPI/Streaming/tracks/<ID>?starttime=&endtime=
Method DESCRIBE
Description Request for getting basic parameters for playback.
Query starttime: start time of the target stream, whose format is based on
the ISO 8601 standard.
(Optional) endtime: end time of the target stream, whose format is
based on the ISO 8601 standard. If this field is empty, the stream will
be continuously obtained until the session is terminated or paused
manually.
Request None.
Response None.
Table A-512 SETUP rtsp://<host>[:port]/ISAPI/Streaming/tracks/<ID>?starttime=&endtime=
Method SETUP
Description Request for getting session information for playback.
Query starttime: start time of the target stream, whose format is based on
the ISO 8601 standard.
(Optional) endtime: end time of the target stream, whose format is
based on the ISO 8601 standard. If this field is empty, the stream will
be continuously obtained until the session is terminated or paused
manually.
Request None.
Response None.

355
Intelligent Security API (General) Developer Guide

Table A-513 PLAY rtsp://<host>[:port]/ISAPI/Streaming/tracks/<ID>?starttime=&endtime=


Method PLAY
Description Start playback.
Query starttime: start time of the target stream, whose format is based on
the ISO 8601 standard.
(Optional) endtime: end time of the target stream, whose format is
based on the ISO 8601 standard. If this field is empty, the stream will
be continuously obtained until the session is terminated or paused
manually.
Request None.
Response None.
Table A-514 TEARDOW rtsp://<host>[:port]/ISAPI/Streaming/tracks/<ID>?starttime=&endtime=
Method TEARDOW
Description Stop playback.
Query starttime: start time of the target stream, whose format is based on
the ISO 8601 standard.
(Optional) endtime: end time of the target stream, whose format is
based on the ISO 8601 standard. If this field is empty, the stream will
be continuously obtained until the session is terminated or paused
manually.
Request None.
Response None.

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.).

Request URI Definition


Table A-515 GET /ISAPI/System/AcsUpdate/capabilities
Method GET
Description Get the capability of upgrading device (slave access control device,
peripheral module, etc.).
Query None.
Request None.
Response Succeeded: XML_Cap_AcsUpdate
Failed: XML_ResponseStatus

A.12.2 /ISAPI/System/activate
Device activation.

Request URI Definition


Table A-516 PUT /ISAPI/System/activate
Method PUT
Description Send activation password to activate the device.
Query None.
Request XML_ActivateInfo
Response XML_ResponseStatus

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

Request URI Definition


Table A-517 GET /ISAPI/System/algorithmsInfo/capabilities?format=json
Method GET
Description Get the capability of getting the algorithm library information.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_AlgorithmsInfoCap
Failed: JSON_ResponseStatus

A.12.4 /ISAPI/System/algorithmsInfo?format=json
Get the algorithm library information.

Request URI Definition


Table A-518 GET /ISAPI/System/algorithmsInfo?format=json
Method GET
Description Get the algorithm library information.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_AlgorithmsInfo
Failed: JSON_ResponseStatus

A.12.5 /ISAPI/System/algorithmsVersion
Get the version information of algorithm library.

Request URI Definition


Table A-519 GET /ISAPI/System/algorithmsVersion
Method GET
Description Get the version information of algorithm library.
Query None

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.

Request URI Definition


Table A-520 GET /ISAPI/System/Audio/AudioIn
Method GET
Description Get audio input parameters of all channels.
Query None.
Request None.
Response Succeeded: XML_AudioInConfig
Failed: XML_ResponseStatus
Table A-521 PUT /ISAPI/System/Audio/AudioIn
Method PUT
Description Set audio input parameters of all channels.
Query None.
Request XML_AudioInConfig
Response XML_ResponseStatus

A.12.7 /ISAPI/System/Audio/AudioIn/capabilities
Get the audio input configuration capability of all channels.

Request URI Definition


Table A-522 GET /ISAPI/System/Audio/AudioIn/capabilities
Method GET
Description Get the audio input configuration capability of all channels.
Query None.

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.

Request URI Definition


Table A-523 GET /ISAPI/System/Audio/AudioIn/channels/<ID>
Method GET
Description Get audio input parameters of a specific channel.
Query None.
Request None.
Response Succeeded: XML_AudioIn
Failed: XML_ResponseStatus
Table A-524 PUT /ISAPI/System/Audio/AudioIn/channels/<ID>
Method PUT
Description Set audio input parameters of a specific channel.
Query None.
Request XML_AudioIn
Response XML_ResponseStatus

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.

Request URI Definition


Table A-525 GET /ISAPI/System/Audio/AudioIn/channels/<ID>/capabilities
Method GET
Description 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.

Request URI Definition


Table A-526 GET /ISAPI/System/Audio/AudioOut/channels/<ID>
Method GET
Description Get audio output parameters of a specific channel.
Query None.
Request None.
Response Succeeded: XML_AudioOut
Failed: XML_ResponseStatus
Table A-527 PUT /ISAPI/System/Audio/AudioOut/channels/<ID>
Method PUT
Description Set audio output parameters of a specific channel.
Query None.
Request XML_AudioOut
Response XML_ResponseStatus

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

Request URI Definition


Table A-528 GET /ISAPI/System/Audio/AudioOut/channels/<ID>/capabilities
Method GET
Description Get the audio output capability of a specific channel.
Query None.
Request None.
Response Succeeded: XML_AudioOutCap
Failed: XML_ResponseStatus

Remarks
The <ID> in the request URI refers to the channel No.

A.12.12 /ISAPI/System/Audio/capabilities
Get the audio capability.

Request URI Definition


Table A-529 GET /ISAPI/System/Audio/capabilities
Method GET
Description Get the audio capability.
Query None.
Request None.
Response Succeeded: XML_AudioCap
Failed: XML_ResponseStatus

A.12.13 /ISAPI/System/Audio/channels
Get the configuration of all audio channels of the device.

Request URI Definition


Table A-530 GET /ISAPI/System/Audio/channels
Method GET
Description 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.

Request URI Definition


Table A-531 GET /ISAPI/System/Audio/channels/<ID>
Method GET
Description Get the configuration of a specific audio channel of the device.
Query None.
Request None.
Response Succeeded: XML_AudioChannel
Failed: XML_ResponseStatus

A.12.15 /ISAPI/System/Audio/channels/<ID>/dynamicCap
Get dynamic audio capability by channel.

Request URI Definition


Table A-532 GET /ISAPI/System/Audio/channels/<ID>/dynamicCap
Method GET
Description Get dynamic audio capability by channel.
Query None.
Request XML_AudioDscriptor
Response Succeeded: XML_DynamicCap
Failed: XML_ResponseStatus

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.

Request URI Definition


Table A-533 GET /ISAPI/System/autoMaintenance/capabilities?format=json
Method GET
Description Get the capability of automatic maintenance configuration.
Query format: determine the format of request or response message.
Request None.
Response JSON_AutoMaintenanceCap

A.12.17 /ISAPI/System/autoMaintenance?format=json
Get automatic maintenance configuration parameters.

Request URI Definition


Table A-534 GET /ISAPI/System/autoMaintenance?format=json
Method GET
Description Get automatic maintenance configuration parameters.
Query format: determine the format of request or response message.
Request None.
Response JSON_AutoMaintenance
Table A-535 PUT /ISAPI/System/autoMaintenance?format=json
Method PUT
Description Set automatic maintenance parameters.
Query format: determine the format of request or response message.
Request JSON_AutoMaintenance
Response JSON_ResponseStatus

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

Request URI Definition


Table A-536 GET /ISAPI/System/autoSwitch/capabilities?format=json
Method GET
Description Get configuration capability of auto power on or off.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_AutoSwitchCap
Failed: JSON_ResponseStatus

A.12.19 /ISAPI/System/autoSwitch?format=json
Get or set parameters of auto power on or off.

Request URI Definition


Table A-537 GET /ISAPI/System/autoSwitch?format=json
Method GET
Description Get parameters of auto power on or off.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_AutoSwitch
Failed: JSON_ResponseStatus
Table A-538 PUT /ISAPI/System/autoSwitch?format=json
Method PUT
Description Set parameters of auto power on or off.
Query None.
Request JSON_AutoSwitch
Response JSON_ResponseStatus

A.12.20 /ISAPI/System/Bluetooth/capabilities
Get the bluetooth configuration capability.

365
Intelligent Security API (General) Developer Guide

Request URI Definition


Table A-539 GET /ISAPI/System/Bluetooth/capabilities
Method GET
Description Get the bluetooth configuration capability.
Query None.
Request None.
Response Succeeded: XML_BluetoothCap
Failed: XML_ResponseStatus

A.12.21 /ISAPI/System/Bluetooth/ibeaconParam
Operations about the ibeacon bluetooth configuration.

Request URI Definition


Table A-540 GET /ISAPI/System/Bluetooth/ibeaconParam
Method GET
Description Get the ibeacon bluetooth parameters.
Query None.
Request None.
Response Succeeded: XML_IbeaconParam
Failed: XML_ResponseStatus
Table A-541 PUT /ISAPI/System/Bluetooth/ibeaconParam
Method PUT
Description Set the ibeacon bluetooth parameters.
Query None.
Request XML_IbeaconParam
Response XML_ResponseStatus

A.12.22 /ISAPI/System/Bluetooth/ibeaconParam/capabilities
Get the ibeacon bluetooth configuration capability.

366
Intelligent Security API (General) Developer Guide

Request URI Definition


Table A-542 GET /ISAPI/System/Bluetooth/ibeaconParam/capabilities
Method GET
Description Get the ibeacon bluetooth configuration capability.
Query None.
Request None.
Response Succeeded: XML_Cap_IbeaconParam
Failed: XML_ResponseStatus

A.12.23 /ISAPI/System/capabilities
Get device capability.

Request URI Definition


Table A-543 GET /ISAPI/System/capabilities
Method GET
Description Get device capability.
Query None
Request None.
Response Succeeded: XML_DeviceCap
Failed: XML_ResponseStatus

A.12.24 /ISAPI/System/channels/<ID>/vibrationDetection/capabilities?
format=json
Get the capability of vibration detection.

Request URI Definition


Table A-544 GET /ISAPI/System/channels/<ID>/vibrationDetection/capabilities?format=json
Method GET
Description Get the capability of vibration detection.
Query format: determine the format of request or response message.

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.

Request URI Definition


Table A-545 GET /ISAPI/System/channels/<ID>/vibrationDetection?format=json
Method GET
Description Get vibration detection parameters.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_VibrationDetection
Failed: JSON_ResponseStatus
Table A-546 PUT /ISAPI/System/channels/<ID>/vibrationDetection?format=json
Method PUT
Description Set vibration detection parameters.
Query format: determine the format of request or response message.
Request JSON_VibrationDetection
Response JSON_ResponseStatus

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

Request URI Definition


Table A-547 GET /ISAPI/System/configurationData?secretkey=
Method GET
Description Export the configuration files securely.
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.
secretkey: the verification key, it is provided by the upper-layer. It
should be encrypted for exporting and recorded for importing.
Request None.
Response Opaque data (binary data).
Table A-548 PUT or POST /ISAPI/System/configurationData?secretkey=
Method PUT, POST
Description Import the configuration files securely.
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.
secretkey: the verification key, it must be the same as the exported
one and should be encrypted for importing.
Request Opaque data (binary data for PUT method, data in form format for
POST method).
Response XML_ResponseStatus

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.

Request URI Definition


Table A-549 GET /ISAPI/System/configurationData?type=
Method GET
Description Export device configuration files safely.
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.
secretkey: the verification key, which is provided by the upper-layer
and should be encrypted for importing.
type: the type of configuration parameters to be exported or
imported, which contains "OSD", "MODE", "IMAGE" and "IOOUT"
types. For "OSD" type, the OSD (On Screen Display) parameters will
be imported or exported; for "MODE" type, the application mode
parameters will be imported or exported; for "IMAGE" type, the
image parameters will be imported or exported; for "IOOUT" type,
the IO output parameters will be imported or exported. Multiple
types can be selected and they should be separated by commas,
e.g., /​ISAPI/​System/​configurationData?
type=OSD,MODE,IMAGE,IOOUT. If no type is selected, it is
recommended to return failure response message or set type to
NULL.
Request None.
Response Succeeded: Opaque data.
Failed: XML_ResponseStatus
Table A-550 PUT or POST /ISAPI/System/configurationData?type=
Method PUT, POST
Description Import device configuration files safely.
Query security: the version No. of encryption scheme. When security does
not exist, it indicates that the data is not encrypted; when security is

370
Intelligent Security API (General) Developer Guide

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.
secretkey: the verification key, which is provided by the upper-layer
and should be encrypted for importing.
type: the type of configuration parameters to be exported or
imported, which contains "OSD", "MODE", "IMAGE" and "IOOUT"
types. For "OSD" type, the OSD (On Screen Display) parameters will
be imported or exported; for "MODE" type, the application mode
parameters will be imported or exported; for "IMAGE" type, the
image parameters will be imported or exported; for "IOOUT" type,
the IO output parameters will be imported or exported. Multiple
types can be selected and they should be separated by commas,
e.g., /​ISAPI/​System/​configurationData?
type=OSD,MODE,IMAGE,IOOUT. If no type is selected, it is
recommended to return failure response message or set type to
NULL.
Request Opaque data.
Response XML_ResponseStatus

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.

Request URI Definition


Table A-551 GET /ISAPI/System/deviceInfo
Method GET
Description Get the device information.
Query None
Request None.
Response Succeeded: XML_DeviceInfo
Failed: XML_ResponseStatus

371
Intelligent Security API (General) Developer Guide

Table A-552 PUT /ISAPI/System/deviceInfo


Method PUT
Description Set the device information.
Query None
Request XML_DeviceInfo
Response XML_ResponseStatus

A.12.29 /ISAPI/System/deviceInfo/capabilities
Get the device information configuration capability.

Request URI Definition


Table A-553 GET /ISAPI/System/deviceInfo/capabilities
Method GET
Description Get the device information configuration capability.
Query None.
Request None.
Response Succeeded: XML_Cap_DeviceInfo
Failed: XML_ResponseStatus

A.12.30 /ISAPI/System/deviceInfo/characteristicCode?format=json
Get the device attribute code.

Request URI Definition


Table A-554 GET /ISAPI/System/deviceInfo/characteristicCode?format=json
Method GET
Description Get the device attribute code.
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

372
Intelligent Security API (General) Developer Guide

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: JSON_Characteristic
Failed: JSON_ResponseStatus

A.12.31 /ISAPI/System/DeviceLanguage
Operations about device language configuration.

Request URI Definition


Table A-555 GET /ISAPI/System/DeviceLanguage
Method GET
Description Get device language configuration parameters.
Query None.
Request None.
Response Succeeded: XML_DeviceLanguage
Failed: XML_ResponseStatus
Table A-556 PUT /ISAPI/System/DeviceLanguage
Method PUT
Description Set device language parameters.
Query None.
Request XML_DeviceLanguage
Response XML_ResponseStatus

A.12.32 /ISAPI/System/DeviceLanguage/capabilities
Get the capability of device language configuration.

373
Intelligent Security API (General) Developer Guide

Request URI Definition


Table A-557 GET /ISAPI/System/DeviceLanguage/capabilities
Method GET
Description Get the capability of device language configuration.
Query None.
Request None.
Response Succeeded: XML_Cap_DeviceLanguage
Failed: XML_ResponseStatus

A.12.33 /ISAPI/System/diagnosedData
Get device diagnosis information.

Request URI Definition


Table A-558 GET /ISAPI/System/diagnosedData
Method GET
Description Get device diagnosis information.
Query None.
Request None.
Response Non-transparent data

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.

Request URI Definition


Table A-559 GET /ISAPI/System/diagnosedData/exportStatus
Method GET
Description 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.

Request URI Definition


Table A-560 GET /ISAPI/System/diagnosedData/parameter
Method GET
Description Get the parameters of exporting device diagnose information.
Query None.
Request None.
Response Succeeded: XML_DiagnosedDataParameter
Failed: XML_ResponseStatus
Table A-561 PUT /ISAPI/System/diagnosedData/parameter
Method PUT
Description Set the parameters of exporting device diagnose information.
Query None.
Request XML_DiagnosedDataParameter
Response XML_ResponseStatus

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.

Request URI Definition


Table A-562 GET /ISAPI/System/diagnosedData/parameter/capabilities
Method GET
Description 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.

Request URI Definition


Table A-563 GET /ISAPI/System/diagnosedData/server/capabilities?format=json
lllMethod GET
Description Get the diagnostic server capability.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_DiagnosedDataServerCap
Failed: JSON_ResponseStatus

A.12.38 /ISAPI/System/diagnosedData/server?format=json
Get or set the diagnostic server parameters.

Request URI Definition


Table A-564 GET /ISAPI/System/diagnosedData/server?format=json
Method GET
Description Get the diagnostic server configuration.
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.

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.

Request URI Definition


Table A-566 POST /ISAPI/System/diagnosedData/server/test?format=json
Method POST
Description Test the diagnostic server.
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.

377
Intelligent Security API (General) Developer Guide

iv: the initialization vector, and it is required when security is 1 or 2.


Request JSON_TestDescription
Response JSON_ResponseStatus

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.

Request URI Definition


Table A-567 GET /ISAPI/System/diagnosis/capabilities?format=json
Method GET
Description Get the device diagnosis capability.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_DiagnosisCondCap
Failed: JSON_ResponseStatus

A.12.41 /ISAPI/System/diagnosis?format=json
Diagnose the device.

Request URI Definition


Table A-568 POST /ISAPI/System/diagnosis?format=json
Method POST
Description Diagnose the device.
Query format: determine the format of request or response message.
Request JSON_DiagnosisCond
Response JSON_DiagnosisResult

378
Intelligent Security API (General) Developer Guide

A.12.42 /ISAPI/System/discoveryMode
Get or set the device discovery mode.

Request URI Definition


Table A-569 GET /ISAPI/System/discoveryMode
Method GET
Description Get the device discovery mode.
Query None.
Request None.
Response Succeeded: XML_DiscoveryMode
Failed: XML_ResponseStatus
Table A-570 PUT /ISAPI/System/discoveryMode
Method PUT
Description Set the device discovery mode.
Query None.
Request XML_DiscoveryMode
Response XML_ResponseStatus

A.12.43 /ISAPI/System/discoveryMode/capabilities
Get the configuration capability of device discovery mode.

Request URI Definition


Table A-571 GET /ISAPI/System/discoveryMode/capabilities
Method GET
Description Get the configuration capability of device discovery mode.
Query None.
Request None.
Response Succeeded: XML_Cap_DiscoveryMode
Failed: XML_ResponseStatus

379
Intelligent Security API (General) Developer Guide

A.12.44 /ISAPI/System/doubleLensParking/capabilities
Get the capability of dual-lens parking space camera.

Request URI Definition


Table A-572 GET /ISAPI/System/doubleLensParking/capabilities
Method GET
Description Get the capability of dual-lens parking space camera.
Query None.
Request None.
Response Succeeded: XML_DoubleLensParkingCap
Failed: XML_ResponseStatus

A.12.45 /ISAPI/System/dumpData
Get the dump file data of the device.

Request URI Definition


Table A-573 GET /ISAPI/System/dumpData
Method GET
Description Get the dump file data of the device.
Query None.
Request None.
Response Opaque data.

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

Request URI Definition


Table A-574 GET /ISAPI/System/exportLogToUSB/capabilities?format=json
Method GET
Description Get the configuration capability of exporting log to USB flash drive.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_ExportLogToUSBCap
Failed: JSON_ResponseStatus

A.12.47 /ISAPI/System/exportLogToUSB/mode?format=json
Set parameters of exporting logs to USB flash drive.

Request URI Definition


Table A-575 PUT /ISAPI/System/exportLogToUSB/mode?format=json
Method PUT
Description Set parameters of exporting logs to USB flash drive.
Query format: determine the format of request or response message.
Request JSON_ExportLogToUSB
Response JSON_ResponseStatus

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.

Request URI Definition


Table A-577 GET /ISAPI/System/exportUSBLog/capabilities?format=json
Method GET
Description Get the configuration capability of exporting logs to PC.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_ExportUSBLogCap
Failed: JSON_ResponseStatus

A.12.50 /ISAPI/System/exportUSBLog/status?format=json
Get the status of exporting logs to PC.

Request URI Definition


Table A-578 GET /ISAPI/System/exportUSBLog/status?format=json
Method GET
Description Get the status of exporting logs to PC.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_ExportUSBLogStatus
Failed: JSON_ResponseStatus

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.

Request URI Definition


Table A-580 GET /ISAPI/System/externalDevice/capabilities
Method GET
Description Get peripherals configuration capability.
Query None.
Request None.
Response XML_Cap_ExternalDevice

A.12.53 /ISAPI/System/factoryReset?mode=
Restore the device to default settings.

Request URI Definition


Table A-581 PUT /ISAPI/System/factoryReset?mode=
Method PUT
Description Restore the device to default settings.
Query mode: The recovery mode, which contains "full", "basic", and "part"
mode. The default mode is "full", and all the device parameters will
be restored to default settings;​ for "basic" mode, the device
parameters, except network and user parameters, will be restored to
default settings;​ for "part" mode, only a part of default settings will
be restored.
Request None.
Response XML_ResponseStatus

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.

Request URI Definition


Table A-582 GET /ISAPI/System/fileExport/capabilities?format=json
Method GET
Description Get the capability of exporting files from the device.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_FileExportCap
Failed: JSON_ResponseStatus

A.12.55 /ISAPI/System/fileExport?format=json
Export files from the device.

Request URI Definition


Table A-583 POST /ISAPI/System/fileExport?format=json
Method POST
Description Export files from the device.
Query format: determine the format of request or response message.
Request JSON_FileExport
Response JSON_FileExportResult

384
Intelligent Security API (General) Developer Guide

A.12.56 /ISAPI/System/firmwareCodeV2
Get firmware code list.

Request URI Definition


Table A-584 GET /ISAPI/System/firmwareCodeV2
Method GET
Description Get firmware code list.
Query None.
Request None.
Response Succeeded: XML_FirmwareCodeList
Failed: XML_ResponseStatus

A.12.57 /ISAPI/System/GPSCalibratation/channels/<ID>/capabilities?format=json
Get GPS calibration configuration capability.

Request URI Definition


Table A-585 GET /ISAPI/System/GPSCalibratation/channels/<ID>/capabilities?format=json
Method GET
Description Get GPS calibration configuration capability.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_GPSCalibratationCap
Failed: JSON_ResponseStatus

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

Request URI Definition


Table A-586 GET /ISAPI/System/GPSCalibratation/channels/<ID>/points/<PID>?format=json
Method GET
Description Get the configuration parameters of a single GPS calibration point.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_GPSCalibratation
Failed: JSON_ResponseStatus
Table A-587 PUT /ISAPI/System/GPSCalibratation/channels/<ID>/points/<PID>?format=json
Method PUT
Description Set the configuration parameters of a single GPS calibration point.
Query format: determine the format of request or response message.
Request JSON_GPSCalibratation
Response JSON_ResponseStatus
Table A-588 DELETE /ISAPI/System/GPSCalibratation/channels/<ID>/points/<PID>?format=json
Method DELETE
Description Delete the configuration parameters of a single GPS calibration point.
Query format: determine the format of request or response message.
Request None.
Response JSON_ResponseStatus

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

Request URI Definition


Table A-589 GET /ISAPI/System/GPSCalibratation/channels/<ID>/points/status?format=json
Method GET
Description Get GPS calibration status.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_GPSCalibratationStatus
Failed: JSON_ResponseStatus

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.

Request URI Definition


Table A-590 GET /ISAPI/System/GPSCalibratation/channels/<ID>/points?format=json
Method GET
Description Get configuration parameters of multiple GPS calibration points in a
batch.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_GPSCalibratationList
Failed: JSON_ResponseStatus
Table A-591 PUT /ISAPI/System/GPSCalibratation/channels/<ID>/points?format=json
Method PUT
Description Set configuration parameters of multiple GPS calibration points in a
batch.
Query format: determine the format of request or response message.
Request JSON_GPSCalibratationList
Response JSON_ResponseStatus

387
Intelligent Security API (General) Developer Guide

Table A-592 DELETE /ISAPI/System/GPSCalibratation/channels/<ID>/points?format=json


Method DELETE
Description Delete configuration parameters of multiple GPS calibration points in
a batch.
Query format: determine the format of request or response message.
Request None.
Response JSON_ResponseStatus

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.

Request URI Definition


Table A-593 PUT /ISAPI/System/GPSPTZCalibratation/channels/<ID>/calibratation?format=json
Method PUT
Description Enable GPS calibration.
Query format: determine the format of request or response message.
Request None.
Response JSON_ResponseStatus

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.

Request URI Definition


Table A-594 GET /ISAPI/System/GPSVerification/channels/<ID>/display?format=json
Method GET
Description Get the parameters of displaying GPS calibration verification result.

388
Intelligent Security API (General) Developer Guide

Query format: determine the format of request or response message.


Request None.
Response Succeeded: JSON_VerificationDisplay
Failed: JSON_ResponseStatus
Table A-595 PUT /ISAPI/System/GPSVerification/channels/<ID>/display?format=json
Method PUT
Description Set the parameters of displaying GPS calibration verification result.
Query format: determine the format of request or response message.
Request JSON_VerificationDisplay
Response JSON_ResponseStatus

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.

Request URI Definition


Table A-596 GET /ISAPI/System/GPSVerification/channels/<ID>/points/<ID>?format=json
Method GET
Description Get the parameters of a specified verification point.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_VerificationPoint
Failed: JSON_ResponseStatus
Table A-597 PUT /ISAPI/System/GPSVerification/channels/<ID>/points/<ID>?format=json
Method PUT
Description Set the parameters of a specified verification point.
Query format: determine the format of request or response message.
Request JSON_VerificationPoint
Response JSON_ResponseStatus

389
Intelligent Security API (General) Developer Guide

Table A-598 DELETE /ISAPI/System/GPSVerification/channels/<ID>/points/<ID>?format=json


Method DELETE
Description Delete a specified verification point.
Query format: determine the format of request or response message.
Request None.
Response JSON_ResponseStatus

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.

Request URI Definition


Table A-599 GET /ISAPI/System/GPSVerification/channels/<ID>/points/capabilities?format=json
Method GET
Description Get the capability of verifying GPS calibration.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_VerificationPointList
Failed: JSON_ResponseStatus

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

Request URI Definition


Table A-600 GET /ISAPI/System/GPSVerification/channels/<ID>/points/resultInfo?format=json
Method GET
Description Get the verification results of GPS calibration in a batch according to
channel No.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_GPSVerification_ResultInfoList
Failed: JSON_ResponseStatus

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.

Request URI Definition


Table A-601 GET /ISAPI/System/GPSVerification/channels/<ID>/points?format=json
Method GET
Description Get the parameters of verification points in a batch according to
channel No.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_VerificationPointList
Failed: JSON_ResponseStatus
Table A-602 PUT /ISAPI/System/GPSVerification/channels/<ID>/points?format=json
Method PUT
Description Set the parameters of verification points in a batch according to
channel No.
Query format: determine the format of request or response message.
Request JSON_VerificationPointList
Response JSON_ResponseStatus

391
Intelligent Security API (General) Developer Guide

Table A-603 DELETE /ISAPI/System/GPSVerification/channels/<ID>/points?format=json


Method DELETE
Description Delete all verification points in a batch according to channel No.
Query format: determine the format of request or response message.
Request None.
Response JSON_ResponseStatus
Table A-604 POST /ISAPI/System/GPSVerification/channels/<ID>/points?format=json
Method POST
Description Add a verification point according to channel No.
Query format: determine the format of request or response message.
Request JSON_VerificationPoint
Response Succeeded: JSON_GPSVerification_ResultInfo
Failed: JSON_ResponseStatus

Remarks
The <ID> in the URI refers to channel No.

A.12.67 /ISAPI/System/guardAgainstTheft
Get or set device anti-theft parameters.

Request URI Definition


Table A-605 GET /ISAPI/System/guardAgainstTheft
Method GET
Description Get the device anti-​theft parameters.
Query None.
Request None.
Response Succeeded: XML_GuardAgainstTheft
Failed: XML_ResponseStatus
Table A-606 PUT /ISAPI/System/guardAgainstTheft
Method PUT
Description Set the 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.

Request URI Definition


Table A-607 GET /ISAPI/System/guardAgainstTheft/capabilities
Method GET
Description Get the device anti-​theft configuration capability.
Query None.
Request None.
Response Succeeded: XML_Cap_GuardAgainstTheft
Failed: XML_ResponseStatus

A.12.69 /ISAPI/System/guideConfig/<guideEvent>/capabilities?format=json
Get the capability of quick setup instruction for specified event.

Request URI Definition


Table A-608 GET /ISAPI/System/guideConfig/<guideEvent>/capabilities?format=json
Method GET
Description Get the capability of quick setup instruction for specified event.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_GuideConfigCap
Failed: JSON_ResponseStatus

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.

Request URI Definition


Table A-609 GET /ISAPI/System/guideConfig/<guideEvent>?format=json
Method GET
Description Get the parameters of quick setup instruction for specified event.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_GuideConfig
Failed: JSON_ResponseStatus

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.

Request URI Definition


Table A-610 GET /ISAPI/System/Hardware
Method GET
Description Get the device hardware configuration parameters.
Query None.
Request None.
Response Succeeded: XML_HardwareService
Failed: XML_ResponseStatus
Table A-611 PUT /ISAPI/System/Hardware
Method PUT
Description Set the device hardware parameters.
Query None.

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.

Request URI Definition


Table A-612 GET /ISAPI/System/Hardware/defog
Method GET
Description Get the defogging control configuration parameters.
Query None.
Request None.
Response Succeeded: XML_Defog
Failed: XML_ResponseStatus
Table A-613 PUT /ISAPI/System/Hardware/defog
Method PUT
Description Set the defogging control parameters.
Query None.
Request XML_Defog
Response XML_ResponseStatus

A.12.73 /ISAPI/System/installationAngleCalibration/channels/<ID>/capabilities?
format=json
Get the capability of installation angle calibration.

Request URI Definition


Table A-614 GET /ISAPI/System/installationAngleCalibration/channels/<ID>/capabilities?
format=json
Method GET
Description Get the capability of installation angle calibration.
Query format: determine the format of request or response message.

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.

Request URI Definition


Table A-615 GET /ISAPI/System/installationAngleCalibration/channels/<ID>?format=json
Method GET
Description Get the installation angle calibration status.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_CalibrationStatus
Failed: JSON_ResponseStatus
Table A-616 PUT /ISAPI/System/installationAngleCalibration/channels/<ID>?format=json
Method PUT
Description Calibrate the installation angle.
Query format: determine the format of request or response message.
Request None.
Response JSON_ResponseStatus

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

Request URI Definition


Table A-617 GET /ISAPI/System/IO
Method GET
Description Get the alarm input and output information.
Query None.
Request None.
Response Succeeded: XML_IOPortList
Failed: XML_ResponseStatus

A.12.76 /ISAPI/System/IO/capabilities
Get alarm input and output configuration capability.

Request URI Definition


Table A-618 GET /ISAPI/System/IO/capabilities
Method GET
Description Get alarm input and output configuration capability.
Query None.
Request None.
Response XML_IOCap

A.12.77 /ISAPI/System/IO/inputs
Get the information of all alarm input ports.

Request URI Definition


Table A-619 Get the information of all alarm input ports.
Method GET
Description Get the information of all alarm input ports.
Query None.
Request None.
Response XML_IOInputPortList

397
Intelligent Security API (General) Developer Guide

A.12.78 /ISAPI/System/IO/inputs/<ID>
Get or set an alarm input port.

Request URI Definition


Table A-620 GET /ISAPI/System/IO/inputs/<ID>
Method GET
Description Get an alarm input's information.
Query None.
Request None.
Response XML_IOInputPort
Table A-621 PUT /ISAPI/System/IO/inputs/<ID>
Method PUT
Description Set an alarm input's information.
Query None.
Request XML_IOInputPort
Response XML_ResponseStatus

A.12.79 /ISAPI/System/IO/inputs/<ID>/status
Get the status of a specific alarm input.

Request URI Definition


Table A-622 GET /ISAPI/System/IO/inputs/<ID>/status
Method GET
Description Get the status of a specific alarm input.
Query None.
Request None.
Response Succeeded: XML_IOPortStatus
Failed: XML_ResponseStatus

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.

Request URI Definition


Table A-623 GET /ISAPI/System/IO/inputs/capabilities
Method GET
Description Get the alarm input configuration capability.
Query None.
Request None.
Response XML_Cap_IOInputPortList

A.12.81 /ISAPI/System/IO/outputs
Get the information of all I/O output ports.

Request URI Definition


Table A-624 GET /ISAPI/System/IO/outputs
Method GET
Description Get the information of all I/O output ports.
Query None.
Request None.
Response XML_IOOutputPortList

A.12.82 /ISAPI/System/IO/outputs/capabilities
Get the I/O output capability.

Request URI Definition


Table A-625 GET /ISAPI/System/IO/outputs/capabilities
Method GET
Description Get the I/O output capability.
Query None.

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.

Request URI Definition


Table A-628 GET /ISAPI/System/IO/outputs/<ID>/status
Method GET
Description Get status of a specific alarm output.
Query None.
Request None.
Response Succeeded: XML_IOPortStatus
Failed: XML_ResponseStatus

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.

Request URI Definition


Table A-629 PUT /ISAPI/System/IO/outputs/<ID>/trigger
Method PUT
Description Manually trigger a specific alarm output.
Query none.
Request XML_IOPortData
Response XML_ResponseStatus

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.

Request URI Definition


Table A-630 GET /ISAPI/System/IO/softInputs/<ID>?format=json
Method GET
Description Get parameters of a single soft I/O.
Query format: determine the format of request or response message.
Request None
Response Succeeded: JSON_singleSoftIO
Failed: JSON_ResponseStatus
Table A-631 PUT /ISAPI/System/IO/softInputs/<ID>?format=json
Method PUT
Description Set parameters of a single soft I/O.
Query format: determine the format of request or response message.

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.

Request URI Definition


Table A-632 GET /ISAPI/System/IO/softInputs?format=json
Method GET
Description Get all soft I/O parameters.
Query format: determine the format of request or response message.
Request None
Response Succeeded: JSON_SoftIO
Failed: JSON_ResponseStatus

A.12.88 /ISAPI/System/IO/status
Get alarm input and output status.

Request URI Definition


Table A-633 GET /ISAPI/System/IO/status
Method GET
Description Get alarm input and output status.
Query None.
Request None.
Response Succeeded: XML_IOPortStatusList
Failed: XML_ResponseStatus

A.12.89 /ISAPI/System/laserOpticalAxis/capabilities?format=json
Get the configuration capability of laser optical axis.

402
Intelligent Security API (General) Developer Guide

Request URI Definition


Table A-634 GET /ISAPI/System/laserOpticalAxis/capabilities?format=json
Method GET
Description Get the configuration capability of laser optical axis.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_LaserOpticalAxisCap
Failed: JSON_ResponseStatus

A.12.90 /ISAPI/System/laserOpticalAxis/goto?format=json
Adjust the laser optical axis.

Request URI Definition


Table A-635 PUT /ISAPI/System/laserOpticalAxis/goto?format=json
Method PUT
Description Adjust the laser optical axis.
Query format: determine the format of request or response message.
Request JSON_LaserOpticalAxis_direction
Response JSON_ResponseStatus

A.12.91 /ISAPI/System/laserOpticalAxis?format=json
Get or set laser optical axis parameters.

Request URI Definition


Table A-636 GET /ISAPI/System/laserOpticalAxis?format=json
Method GET
Description Get the laser optical axis parameters.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_LaserOpticalAxis

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.

Request URI Definition


Table A-638 GET /ISAPI/System/logServer
Method GET
Description Get log server parameters.
Query None.
Request None.
Response Succeeded: XML_LogServer
Failed: XML_ResponseStatus
Table A-639 PUT /ISAPI/System/logServer
Method PUT
Description Set log server parameters.
Query None.
Request XML_LogServer
Response XML_ResponseStatus

A.12.93 /ISAPI/System/logServer/capabilities
Get log server configuration capability.

404
Intelligent Security API (General) Developer Guide

Request URI Definition


Table A-640 GET /ISAPI/System/logServer/capabilities
Method GET
Description Get log server configuration capability.
Query None.
Request None.
Response Succeeded: XML_LogServerCap
Failed: XML_ResponseStatus

A.12.94 /ISAPI/System/logServer/test
Perform security log server test.

Request URI Definition


Table A-641 POST /ISAPI/System/logServer/test
Method POST
Description Perform security log server test.
Query None.
Request XML_LogServerTestDescription
Response XML_ResponseStatus

A.12.95 /ISAPI/System/Network/adaption/capabilities?format=json
Get network self-adaptive configuration capability.

Request URI Definition


Table A-642 GET /ISAPI/System/Network/adaption/capabilities?format=json
Method GET
Description Get network self-​adaptive configuration capability.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_AdaptionCap

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.

Request URI Definition


Table A-643 GET /ISAPI/System/Network/adaption?format=json&streamType=
Method GET
Description Get network self-​adaptive parameters.
Query format: determine the format of request or response message.
streamType: stream types, integer, the following values are available:
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.
Request None.
Response Succeeded: JSON_Adaption
Failed: JSON_ResponseStatus
Table A-644 PUT /ISAPI/System/Network/adaption?format=json&streamType=
Method GET
Description Set network self-​adaptive parameters.
Query format: determine the format of request or response message.
streamType: stream types, integer, the following values are available:
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.
Request JSON_Adaption
Response XML_ResponseStatus

A.12.97 /ISAPI/System/Network/Bond
Get all network bonding configuration parameters.

406
Intelligent Security API (General) Developer Guide

Request URI Definition


Table A-645 GET /ISAPI/System/Network/Bond
Method GET
Description Get all network bonding configuration parameters.
Query None.
Request None.
Response Succeeded: XML_BondList
Failed: XML_ResponseStatus

A.12.98 /ISAPI/System/Network/Bond/<ID>
Operations about the bonding configuration of a specific network interface.

Request URI Definition


Table A-646 GET /ISAPI/System/Network/Bond/<ID>
Method GET
Description Get the bonding parameters of a specific network interface.
Query None.
Request None.
Response Succeeded: XML_Bond
Failed: XML_ResponseStatus
Table A-647 PUT /ISAPI/System/Network/Bond/<ID>
Method PUT
Description Set the bonding parameters of a specific network interface.
Query None.
Request XML_Bond
Response XML_ResponseStatus

A.12.99 /ISAPI/System/Network/capabilities
Get the network capability.

407
Intelligent Security API (General) Developer Guide

Request URI Definition


Table A-648 GET /ISAPI/System/Network/capabilities
Method GET
Description Get the network capability.
Query None.
Request None.
Response Succeeded: XML_NetworkCap
Failed: XML_ResponseStatus

A.12.100 /ISAPI/System/Network/channels/<ID>/buletooth/status
Operations about the bluetooth status configuration of a specific channel.

Request URI Definition


Table A-649 GET /ISAPI/System/Network/channels/<ID>/buletooth/status
Method GET
Description Get the bluetooth status parameters of a specific channel.
Query None.
Request None.
Response Succeeded: XML_BluetoothStatus
Failed: XML_ResponseStatus
Table A-650 PUT /ISAPI/System/Network/channels/<ID>/buletooth/status
Method PUT
Description Set the bluetooth status parameters of a specific channel.
Query None.
Request XML_BluetoothStatus
Response XML_ResponseStatus

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.

Request URI Definition


Table A-651 GET /ISAPI/System/Network/DDNS
Method GET
Description Get all DDNS configuration parameters.
Query None.
Request None.
Response Succeeded: XML_DDNSList
Failed: XML_ResponseStatus
Table A-652 PUT /ISAPI/System/Network/DDNS
Method PUT
Description Set all DDNS configuration parameters.
Query None.
Request XML_DDNSList
Response XML_ResponseStatus

A.12.102 /ISAPI/System/Network/DDNS/capabilities
Get DDNS (Dynamic Domain Name Server) configuration capability.

Request URI Definition


Table A-653 GET /ISAPI/System/Network/DDNS/capabilities
Method GET
Description Get DDNS (Dynamic Domain Name Server) configuration capability.
Query None.
Request None.
Response Succeeded: XML_DDNSList
Failed: XML_ResponseStatus

409
Intelligent Security API (General) Developer Guide

A.12.103 /ISAPI/System/Network/DDNS/<ID>
Operations about the configuration of a specific DDNS.

Request URI Definition


Table A-654 GET /ISAPI/System/Network/DDNS/<ID>
Method GET
Description Get the configuration parameters of a specific DDNS.
Query None.
Request None.
Response Succeeded: XML_DDNS
Failed: XML_ResponseStatus
Table A-655 PUT /ISAPI/System/Network/DDNS/<ID>
Method PUT
Description Set the parameters of a specific DDNS.
Query None.
Request XML_DDNS
Response XML_ResponseStatus

A.12.104 /ISAPI/System/Network/DDNS/<ID>/capabilities
Get the configuration capability of a specific DDNS.

Request URI Definition


Table A-656 GET /ISAPI/System/Network/DDNS/<ID>/capabilities
Method GET
Description Get the configuration capability of a specific DDNS.
Query None.
Request None.
Response Succeeded: XML_Cap_DDNS
Failed: XML_ResponseStatus

410
Intelligent Security API (General) Developer Guide

A.12.105 /ISAPI/System/Network/Ehome
Operations about the EHome server access configuration.

Request URI Definition


Table A-657 GET /ISAPI/System/Network/Ehome
Method GET
Description Get the EHome server access parameters.
Query None.
Request None.
Response Succeeded: XML_Ehome
Failed: XML_ResponseStatus
Table A-658 PUT /ISAPI/System/Network/Ehome
Method PUT
Description Set the EHome server access parameters.
Query None.
Request XML_Ehome
Response XML_ResponseStatus

A.12.106 /ISAPI/System/Network/Ehome/capabilities
Get the configuration capability of EHome server access.

Request URI Definition


Table A-659 GET /ISAPI/System/Network/Ehome/capabilities
Method GET
Description Get the configuration capability of EHome server access.
Query None.
Request None.
Response Succeeded: XML_Cap_EHome
Failed: XML_ResponseStatus

411
Intelligent Security API (General) Developer Guide

A.12.107 /ISAPI/System/Network/Ehome?centerID=
Operations about the EHome server access configuration.

Request URI Definition


Table A-660 GET /ISAPI/System/Network/Ehome?centerID=
Method GET
Description Get the EHome server access parameters.
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.
centerID: EHome center ID, and if there is only one center, centerID
is 1.
Request None.
Response Succeeded: XML_Ehome
Failed: XML_ResponseStatus
Table A-661 PUT /ISAPI/System/Network/Ehome?centerID=
Method PUT
Description Set the EHome server access parameters.
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.
centerID: EHome center ID, and if there is only one center, centerID
is 1.
Request XML_Ehome
Response XML_ResponseStatus

412
Intelligent Security API (General) Developer Guide

A.12.108 /ISAPI/System/Network/EZVIZ
Operations about Hik-Connect access configurations.

Request URI Definition


Table A-662 GET /ISAPI/System/Network/EZVIZ
Method GET
Description Get Hik-Connect parameters.
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 XML_EZVIZ
Table A-663 PUT /ISAPI/System/Network/EZVIZ
Method PUT
Description Set Hik-Connect parameters.
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_EZVIZ
Response XML_ResponseStatus

A.12.109 /ISAPI/System/Network/EZVIZ/QRCode
Get the Guarding Vision QR code of the device.

413
Intelligent Security API (General) Developer Guide

Request URI Definition


Table A-664 GET /ISAPI/System/Network/EZVIZ/QRCode
Method GET
Description Get the Guarding Vision QR code of the device.
Query None.
Request None.
Response Succeeded: Binary data (QR code in binary format)
Failed: XML_ResponseStatus

A.12.110 /ISAPI/System/Network/EZVIZ/QRCode?format=json
Get the Hik-Connect QR code.

Request URI Definition


Table A-665 GET /ISAPI/System/Network/EZVIZ/QRCode?format=json
Method GET
Description Get the Hik-Connect QR code.
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.
format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_EZVIZQRCode
Failed: JSON_ResponseStatus

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.

Request URI Definition


Table A-666 GET /ISAPI/System/Network/EZVIZ/capabilities
Method GET
Description Get the Hik-Connect access configuration capability.
Query None.
Request None.
Response Succeeded: XML_Cap_EZVIZ
Failed: XML_ResponseStatus

A.12.112 /ISAPI/System/Network/EZVIZ/secretKey?format=json
Edit the verification code for Hik-Connect.

Request URI Definition


Table A-667 PUT /ISAPI/System/Network/EZVIZ/secretKey?format=json
Method PUT
Description Edit the verification code for Hik-Connect.
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.
format: determine the format of request or response message.
Request JSON_EZVIZSecretKey
Response JSON_ResponseStatus

A.12.113 /ISAPI/System/Network/EZVIZ/unbind?format=json
Unbind devices from Hik-Connect account.

415
Intelligent Security API (General) Developer Guide

Request URI Definition


Table A-668 PUT /ISAPI/System/Network/EZVIZ/unbind?format=json
Method PUT
Description Unbind devices from Hik-Connect account.
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_EZVIZUnbind
Response JSON_ResponseStatus

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.

Request URI Definition


Table A-669 GET /ISAPI/System/Network/ftp
Method GET
Description Get all FTP parameters.
Query None.
Request None.
Response Succeeded: XML_FTPNotificationList
Failed: XML_ResponseStatus
Table A-670 PUT /ISAPI/System/Network/ftp
Method PUT
Description Set all FTP parameters.
Query None.

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.

Request URI Definition


Table A-671 GET /ISAPI/System/Network/ftp/<ID>
Method GET
Description Get the parameters of a specific FTP.
Query None.
Request None.
Response Succeeded: XML_FTPNotification
Failed: XML_ResponseStatus
Table A-672 PUT /ISAPI/System/Network/ftp/<ID>
Method PUT
Description Set the parameters of a specific FTP.
Query None.
Request XML_FTPNotification
Response XML_ResponseStatus

A.12.116 /ISAPI/System/Network/ftp/capabilities
Get the FTP capability.

Request URI Definition


Table A-673 GET /ISAPI/System/Network/ftp/capabilities
Method GET
Description Get the FTP capability.
Query None.
Request None.
Response Succeeded: XML_Cap_FTPNotificationList

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.

Request URI Definition


Table A-674 POST /ISAPI/System/Network/ftp/test
Method POST
Description Perform test to check if the FTP server is available.
Query None.
Request XML_FTPTestDescription
Response Succeeded: XML_FTPTestResult
Failed: XML_ResponseStatus

A.12.118 /ISAPI/System/Network/interfaces
Get the information of multiple network interfaces.

Request URI Definition


Table A-675 GET /ISAPI/System/Network/interfaces
Method GET
Description Get the information of multiple network interfaces.
Query None.
Request None.
Response Succeeded: XML_NetworkInterfaceList
Failed: XML_ResponseStatus

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

<?xml version="1.0" encoding="UTF-8"?>

418
Intelligent Security API (General) Developer Guide

<NetworkInterfaceList version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">


<NetworkInterface>
<id>1</id>
<IPAddress>
<ipVersion>v4</ipVersion>
<addressingType>static</addressingType>
<ipAddress>172.6.64.7</ipAddress>
<subnetMask>255.255.255.0</subnetMask>
<DefaultGateway>
<ipAddress>172.6.64.1</ipAddress>
</DefaultGateway>
<PrimaryDNS>
<ipAddress>192.0.0.200</ipAddress>
</PrimaryDNS>
</IPAddress>
<Discovery>
<UPnP>
<enabled>true</enabled>
</UPnP>
<Zeroconf>
<enabled>true</enabled>
</Zeroconf>
</Discovery>
<Link>
<MACAddress> 00:40:48:4C:7F:F2</MACAddress>
<autoNegotiation>true</autoNegotiation>
<speed>1000<speed>
<duplex>full</duplex>
<MTU>1500</MTU>
</Link>
</NetworkInterface>
</NetworkInterfaceList>

A.12.119 /ISAPI/System/Network/interfaces/<ID>
Operations about the configuration of a specific network interface.

Request URI Definitions


Table A-676 GET /ISAPI/System/Network/interfaces/<ID>
Method GET
Description Get the information of a specific network interface.
Query None.
Request None.
Response Succeeded: XML_NetworkInterface
Failed: XML_ResponseStatus

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.

Request URI Definition


Table A-677 GET /ISAPI/System/Network/interfaces/<ID>/capabilities
Method GET
Description Get the capability of a specific network interface.
Query None.
Request None.
Response Succeeded: XML_Cap_NetworkInterface
Failed: XML_ResponseStatus

A.12.121 /ISAPI/System/Network/interfaces/<ID>/discovery
Operations about the network discovery configuration.

Request URI Definition


Table A-678 GET /ISAPI/System/Network/interfaces/<ID>/discovery
Method GET
Description Get the network discovery configuration parameters.
Query None.
Request None.
Response Succeeded: XML_Discovery
Failed: XML_ResponseStatus

420
Intelligent Security API (General) Developer Guide

Table A-679 PUT /ISAPI/System/Network/interfaces/<ID>/discovery


Method PUT
Description Set the network discovery configuration parameters.
Query None.
Request XML_Discovery
Response XML_ResponseStatus

A.12.122 /ISAPI/System/Network/interfaces/<ID>/discovery/capabilities
Get the configuration capability of network discovery.

Request URI Definition


Table A-680 GET /ISAPI/System/Network/interfaces/<ID>/discovery/capabilities
Method GET
Description Get the configuration capability of network discovery.
Query None.
Request None.
Response Succeeded: XML_Cap_Discovery
Failed: XML_ResponseStatus

A.12.123 /ISAPI/System/Network/interfaces/<ID>/dynamicHostName?
format=json
Get or set dynamic domain name.

Request URI Definition


Table A-681 GET /ISAPI/System/Network/interfaces/<ID>/dynamicHostName?format=json
Method GET
Description Get dynamic domain name.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_DynamicHostName
Failed: JSON_ResponseStatus

421
Intelligent Security API (General) Developer Guide

Table A-682 PUT /ISAPI/System/Network/interfaces/<ID>/dynamicHostName?format=json


Method PUT
Description Set dynamic domain name.
Query format: determine the format of request or response message.
Request JSON_DynamicHostName
Response JSON_ResponseStatus

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.

Request URI Definition


Table A-683 GET /ISAPI/System/Network/interfaces/<ID>/dynamicHostName/capabilities?
format=json
Method GET
Description Get configuration capability of dynamic domain name.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_DynamicHostNameCap
Failed: JSON_ResponseStatus

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

Request URI Definition


Table A-684 GET /ISAPI/System/Network/interfaces/<ID>/ieee802.1x
Method GET
Description Get parameters of IEEE 802.1x protocol access.
Query None.
Request None.
Response Succeeded: XML_IEEE802_1x
Failed: XML_ResponseStatus
Table A-685 PUT /ISAPI/System/Network/interfaces/<ID>/ieee802.1x
Method PUT
Description Set parameters of IEEE 802.1x protocol access.
Query None.
Request XML_IEEE802_1x
Response XML_ResponseStatus

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.

Request URI Definition


Table A-686 GET /ISAPI/System/Network/interfaces/<ID>/ieee802.1x/capabilities
Method GET
Description Get configuration capability of IEEE802.1x protocol access.
Query None.
Request None.
Response XML_Cap_IEEE802_1x

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

Request URI Definition


Table A-687 GET /ISAPI/System/Network/interfaces/<ID>/ipAddress
Method GET
Description Get the IP address of a specific network interface.
Query None.
Request None.
Response Succeeded: XML_IPAddress
Failed: XML_ResponseStatus
Table A-688 PUT /ISAPI/System/Network/interfaces/<ID>/ipAddress
Method PUT
Description Set IP address of a specific network interface.
Query None.
Request XML_IPAddress
Response XML_ResponseStatus

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

<?xml version="1.0" encoding="UTF-8"?>


<IPAddress version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<ipVersion>v4</ipVersion>
<addressingType>static</addressingType>
<ipAddress>172.6.64.16</ipAddress>
<subnetMask>255.255.255.0</subnetMask>
<DefaultGateway>
<ipAddress>172.6.64.1</ipAddress>
</DefaultGateway>
<PrimaryDNS>
<ipAddress>192.0.0.200</ipAddress>
</PrimaryDNS>
</IPAddress>

HTTP/1.1 200 OK

Content-Type: application/xml; charset="UTF-8"
Content-Length:xxx

424
Intelligent Security API (General) Developer Guide

<?xml version="1.0" encoding="UTF-8"?>


<ResponseStatus version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<requestURL>/Network/interfaces/1/ipAddress</requestURL>
<statusCode>1</statusCode>
<statusString>OK</statusString>
</ResponseStatus>

A.12.128 /ISAPI/System/Network/interfaces/<ID>/ipAddress/capabilities
Get the IP address configuration capability of a specific network interface.

Request URI Definition


Table A-689 GET /ISAPI/System/Network/interfaces/<ID>/ipAddress/capabilities
Method GET
Description Get the IP address configuration capability of a specific network
interface.
Query None.
Request None.
Response Succeeded: XML_Cap_IpAddress
Failed: XML_ResponseStatus

A.12.129 /ISAPI/System/Network/interfaces/<ID>/link
Operations about the connection configuration of a specific network interface.

Request URI Definition


Table A-690 GET /ISAPI/System/Network/interfaces/<ID>/link
Method GET
Description Get the connection parameters of a specific network interface.
Query None.
Request None.
Response Succeeded: XML_Link
Failed: XML_ResponseStatus

425
Intelligent Security API (General) Developer Guide

Table A-691 PUT /ISAPI/System/Network/interfaces/<ID>/link


Method PUT
Description Set the connection parameters of a specific network interface.
Query None.
Request XML_Link
Response XML_ResponseStatus

A.12.130 /ISAPI/System/Network/interfaces/<ID>/link/capabilities
Get the connection configuration capability of a specific network interface.

Request URI Definition


Table A-692 GET /ISAPI/System/Network/interfaces/<ID>/link/capabilities
Method GET
Description Get the connection configuration capability of a specific network
interface.
Query None.
Request None.
Response Succeeded: XML_Cap_Link
Failed: XML_ResponseStatus

A.12.131 /ISAPI/System/Network/interfaces/<ID>/NetworkMode
Operations about the working mode configuration of the network connection.

Request URI Definition


Table A-693 GET /ISAPI/System/Network/interfaces/<ID>/NetworkMode
Method GET
Description Get the working mode parameters of the network connection.
Query None.
Request None.
Response Succeeded: XML_NetWorkMode
Failed: XML_ResponseStatus

426
Intelligent Security API (General) Developer Guide

Table A-694 PUT /ISAPI/System/Network/interfaces/<ID>/NetworkMode


Method PUT
Description Set the working mode parameters of the network connection.
Query None.
Request XML_NetWorkMode
Response XML_ResponseStatus

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.

Request URI Definition


Table A-695 GET /ISAPI/System/Network/interfaces/<ID>/wireless
Method GET
Description Get the Wi-Fi parameters of a specific network interface.
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_Wireless
Failed: XML_ResponseStatus
Table A-696 PUT /ISAPI/System/Network/interfaces/<ID>/wireless
Method PUT
Description Set Wi-Fi parameters of a specific network interface.
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

427
Intelligent Security API (General) Developer Guide

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_Wireless
Response XML_ResponseStatus

A.12.133 /ISAPI/System/Network/interfaces/<ID>/wireless/accessDeviceList/<ID>
Get the information of a specific device connected to the hotspot.

Request URI Definition


Table A-697 GET /ISAPI/System/Network/interfaces/<ID>/wireless/accessDeviceList/<ID>
Method GET
Description Get the information of a specific device connected to the hotspot.
Query None.
Request None.
Response Succeeded: XML_accessDevice
Failed: XML_ResponseStatus

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.

Request URI Definition


Table A-698 GET /ISAPI/System/Network/interfaces/<ID>/wireless/accessDeviceList/capabilities
Method GET
Description Get the capability set of the device connected to the hotspot.
Query None.
Request None.
Response Succeeded: XML_Cap_accessDeviceList

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.

Request URI Definition


Table A-699 GET /ISAPI/System/Network/interfaces/<ID>/wireless/accessPointList
Method GET
Description Get Wi-Fi hotspot list.
Query None.
Request None.
Response Succeeded: XML_accessPointList
Failed: XML_ResponseStatus

A.12.136 /ISAPI/System/Network/interfaces/<ID>/wireless/accessPointList/<ID>
Get a specific Wi-Fi hotspot.

Request URI Definition


Table A-700 GET /ISAPI/System/Network/interfaces/<ID>/wireless/accessPointList/<ID>
Method GET
Description Get a specific Wi-Fi hotspot.
Query None.
Request None.
Response Succeeded: XML_accessPoint
Failed: XML_ResponseStatus

A.12.137 /ISAPI/System/Network/interfaces/<ID>/wireless/capabilities
Get the Wi-Fi configuration capability.

429
Intelligent Security API (General) Developer Guide

Request URI Definition

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.

Request URI Definition


Table A-701 GET /ISAPI/System/Network/interfaces/<ID>/wireless/connectStatus
Method GET
Description Get the wireless connection status.
Query None.
Request None.
Response Succeeded: XML_WirelessConnectStatus
Failed: XML_ResponseStatus

A.12.139 /ISAPI/System/Network/interfaces/<ID>/wirelessServer
Operations about wireless hotspot configuration.

430
Intelligent Security API (General) Developer Guide

Request URI Definitions


Table A-702 GET /ISAPI/System/Network/interfaces/<ID>/wirelessServer
Method GET
Description Get wireless hotspot parameters.
Query None.
Request None.
Response XML_WirelessServer
Table A-703 PUT /ISAPI/System/Network/interfaces/<ID>/wirelessServer
Method PUT
Description Set wireless hotspot parameters.
Query None.
Request XML_WirelessServer
Response XML_ResponseStatus

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.

Request URI Definition


Table A-704 GET /ISAPI/System/Network/interfaces/<ID>/wirelessServer/accessDeviceList
Method GET
Description Get list of devices that are connected to the hotspot.
Query None.
Request None.
Response Succeeded: XML_accessDeviceList
Failed: XML_ResponseStatus

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.

Request URI Definition


Table A-705 GET /ISAPI/System/Network/interfaces/<ID>/wirelessServer/capabilities
Method GET
Description Get configuration capability of wireless hotspot.
Query None.
Request None.
Response XML_Cap_WirelessServer

A.12.142 /ISAPI/System/Network/interfaces/<ID>/wirelessServerStatus
Operations about the wireless hotspot status configuration.

Request URI Definition


Table A-706 GET /ISAPI/System/Network/interfaces/<ID>/wirelessServerStatus
Method GET
Description Get the wireless hotspot status parameters.
Query None.
Request None.
Response Succeeded: XML_WirelessServerStatus
Failed: XML_ResponseStatus
Table A-707 PUT /ISAPI/System/Network/interfaces/<ID>/wirelessServerStatus
Method PUT
Description Set the wireless hotspot status parameters.
Query None.
Request XML_WirelessServerStatus
Response XML_ResponseStatus

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.

Request URI Definition


Table A-708 GET /ISAPI/System/Network/interfaces/<ID>/wirelessServerStatus/capabilities
Method GET
Description Get the wireless hotspot status capability.
Query None.
Request None.
Response Succeeded: XML_Cap_WirelessServerStatus
Failed: XML_ResponseStatus

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.

Request URI Definition


Table A-709 GET /ISAPI/System/Network/interfaces/<ID>/wirelessStatus
Method GET
Description Get the parameters of wireless network connection status.
Query None.
Request None.
Response Succeeded: XML_WirelessStatus
Failed: XML_ResponseStatus
Table A-710 PUT /ISAPI/System/Network/interfaces/<ID>/wirelessStatus
Method PUT
Description Set the parameters of wireless network connection status.
Query None.

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.

Request URI Definition


Table A-711 GET /ISAPI/System/Network/interfaces/<ID>/wirelessStatus/capabilities
Method GET
Description Get the configuration capability of wireless network connection
status.
Query None.
Request None.
Response Succeeded: XML_Cap_WirelessStatus
Failed: XML_ResponseStatus

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.

Request URI Definition


Table A-712 GET /ISAPI/System/Network/interfaces/<ID>/WPS
Method GET
Description Get the WPS (Wi-Fi Protected Setup) parameters of a specific
network interface.
Query None.
Request None.
Response Succeeded: XML_WPS

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.

Request URI Definition


Table A-714 GET /ISAPI/System/Network/interfaces/<ID>/WPS/ApPinCode
Method GET
Description Get the parameters of PIN (Personal Identification Number) code of
the wireless access point.
Query None.
Request None.
Response Succeeded: XML_WpsApPincode
Failed: XML_ResponseStatus
Table A-715 PUT /ISAPI/System/Network/interfaces/<ID>/WPS/ApPinCode
Method PUT
Description Set the parameters of PIN (Personal Identification Number) code of
the wireless access point.
Query None.
Request XML_WpsApPincode
Response XML_ResponseStatus

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).

Request URI Definition


Table A-716 PUT /ISAPI/System/Network/interfaces/<ID>/WPS/AutoConnect
Method PUT
Description Set the parameters of PBC (Push Button Configuration) automatic
connection of WPS (Wi-Fi Protected Setup).
Query None.
Request XML_WPS
Response XML_ResponseStatus

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.

Request URI Definition


Table A-717 GET /ISAPI/System/Network/interfaces/<ID>/WPS/devicePinCode
Method GET
Description Get the PIN (Personal Identification Number) code of WPS (Wi-Fi
Protected Setup) of the device.
Query None.
Request None.
Response PIN code string.

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.

Request URI Definition


Table A-718 PUT /ISAPI/System/Network/interfaces/<ID>/WPS/devicePinCodeUpdate
Method PUT
Description Update the PIN (Personal Identification Number) code of WPS (Wi-Fi
Protected Setup) of the device.
Query None.
Request None.
Response PIN code string.

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.

Request URI Definition


Table A-719 GET /ISAPI/System/Network/interfaces/capabilities
Method GET
Description Get the configuration capability of multiple network interfaces.
Query None.
Request None.
Response Succeeded: XML_Cap_NetworkInterfaceList
Failed: XML_ResponseStatus

A.12.152 /ISAPI/System/Network/ipFilter
Operations about IP address filter configuration.

437
Intelligent Security API (General) Developer Guide

Request URI Definition


Table A-720 GET /ISAPI/System/Network/ipFilter
Method GET
Description Get the IP filter configuration parameters.
Query None.
Request None.
Response Succeeded: XML_IPFilter
Failed: XML_ResponseStatus
Table A-721 PUT /ISAPI/System/Network/ipFilter
Method PUT
Description Set the IP address filter.
Query None.
Request XML_IPFilter
Response XML_ResponseStatus

A.12.153 /ISAPI/System/Network/ipFilter/capabilities
Get IP address filter configuration capability.

Request URI Definition


Table A-722 GET /ISAPI/System/Network/ipFilter/capabilities
Method GET
Description Get the IP address configuration capability.
Query None.
Request None.
Response Succeeded: XML_Cap_IPFilter
Failed: XML_ResponseStatus

A.12.154 /ISAPI/System/Network/MACFilter
Operations about MAC address filter configuration.

438
Intelligent Security API (General) Developer Guide

Request URI Definition


Table A-723 GET /ISAPI/System/Network/MACFilter
Method GET
Description Get the MAC address filter configuration parameters.
Query None.
Request None.
Response XML_MACFilter
Table A-724 PUT /ISAPI/System/Network/MACFilter
Method PUT
Description Set the MAC address filter.
Query None.
Request XML_MACFilter
Response XML_ResponseStatus

A.12.155 /ISAPI/System/Network/MACFilter/capabilities
Get the MAC address filter configuration capability.

Request URI Definition


Table A-725 GET /ISAPI/System/Network/MACFilter/capabilities
Method GET
Description Get the MAC address filter configuration capability.
Query None.
Request None.
Response XML_Cap_MACFilter

A.12.156 /ISAPI/System/Network/mailing
Operations about email configuration.

439
Intelligent Security API (General) Developer Guide

Request URI Definition


Table A-726 GET /ISAPI/System/Network/mailing
Method GET
Description Get email configuration parameters.
Query None.
Request None.
Response XML_mailingList
Table A-727 PUT /ISAPI/System/Network/mailing
Method PUT
Description Set email parameters.
Query None.
Request XML_mailingList
Response XML_ResponseStatus

A.12.157 /ISAPI/System/Network/mailing/<ID>
Operations about the configuration of a specific email.

Request URI Definition


Table A-728 GET /ISAPI/System/Network/mailing/<ID>
Method GET
Description Get the configuration parameters of a specific email.
Query None.
Request None.
Response XML_mailing
Table A-729 PUT /ISAPI/System/Network/mailing/<ID>
Method PUT
Description Set the parameters of a specific email.
Query None.
Request XML_mailing
Response XML_ResponseStatus

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.

Request URI Definition


Table A-730 GET /ISAPI/System/Network/mailing/capabilities
Method GET
Description Get email configuration capability.
Query None.
Request None.
Response XML_Cap_mailingList

A.12.159 /ISAPI/System/Network/mailing/test
Execute the email test to check if the email server and address are available.

Request URI Definition


Table A-731 POST /ISAPI/System/Network/mailing/test
Method POST
Description Execute the email test to check if the email server and address are
available.
Query None.
Request XML_mailingTestDescription
Response XML_mailingTestResult

A.12.160 /ISAPI/System/Network/pingtest
Start a ping test and get the test result.

441
Intelligent Security API (General) Developer Guide

Request URI Definition


Table A-732 POST /ISAPI/System/Network/pingtest
Method POST
Description Start a ping test and get the test result.
Query None.
Request XML_pingTestDescription
Response XML_pingTestResult

A.12.161 /ISAPI/System/Network/POE/capabilities?format=json
Get capability of PoE port parameters configuration.

Request URI Definition


Table A-733 GET /ISAPI/System/Network/POE/capabilities?format=json
Method GET
Description Get the capability of PoE port parameters configuration.
Query format: determine the format of request or response message.
Request None.
Response JSON_Cap_POE

A.12.162 /ISAPI/System/Network/POE?format=json
Get or set the PoE port configuration parameters.

Request URI Definition


Table A-734 GET /ISAPI/System/Network/POE?format=json
Method GET
Description Get PoE port configuration parameters.
Query format: determine the format of request or response message.
Request None.
Response JSON_POE

442
Intelligent Security API (General) Developer Guide

Table A-735 PUT /ISAPI/System/Network/POE?format=json


Method PUT
Description Set PoE port configuration parameters.
Query format: determine the format of request or response message.
Request JSON_POE
Response JSON_ResponseStatus

A.12.163 /ISAPI/System/Network/resourceStatistics?format=json
Get the information of network resource statistics.

Request URI Definition


Table A-736 GET /ISAPI/System/Network/resourceStatistics?format=json
Method GET
Description Get the information of network resource statistics.
Query None.
Request None.
Response Succeeded: JSON_resourceStatistics
Failed: JSON_ResponseStatus

A.12.164 /ISAPI/System/Network/SIP
Operations about the configuration of a specific SIP (Session Initiation Protocol) server.

Request URI Definition


Table A-737 GET /ISAPI/System/Network/SIP
Method GET
Description Get the parameters of a specific SIP (Session Initiation Protocol)
server.
Query None.
Request None.
Response Succeeded: XML_SIPServerList
Failed: XML_ResponseStatus

443
Intelligent Security API (General) Developer Guide

Table A-738 PUT /ISAPI/System/Network/SIP


Method PUT
Description Set the parameters of a specific SIP (Session Initiation Protocol)
server.
Query None.
Request XML_SIPServerList
Response XML_ResponseStatus

A.12.165 /ISAPI/System/Network/SIP/<ID>
Operations about the configuration of a specific SIP (Session Initiation Protocol) server.

Request URI Definition


Table A-739 GET /ISAPI/System/Network/SIP/<ID>
Method GET
Description Get the parameters of a specific SIP (Session Initiation Protocol)
server.
Query None.
Request None.
Response Succeeded: XML_SIPServer
Failed: XML_ResponseStatus
Table A-740 PUT /ISAPI/System/Network/SIP/<ID>
Method PUT
Description Set the parameters of a specific SIP (Session Initiation Protocol)
server.
Query None.
Request XML_SIPServer
Response XML_ResponseStatus

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

Request URI Definition


Table A-741 GET /ISAPI/System/Network/SIP/<ID>/capabilities
Method GET
Description Get the configuration capability of a specific SIP (Session Initiation
Protocol) server.
Query None.
Request None.
Response Succeeded: XML_Cap_SIPServer
Failed: XML_ResponseStatus

A.12.167 /ISAPI/System/Network/SIP/<ID>/SIPInfo
Operations about the configuration of a piece of SIP (Session Initiation Protocol) information.

Request URI Definition


Table A-742 GET /ISAPI/System/Network/SIP/<ID>/SIPInfo
Method GET
Description Get the parameters of a piece of SIP (Session Initiation Protocol)
information.
Query None.
Request None.
Response Succeeded: XML_SIPInfo
Failed: XML_ResponseStatus
Table A-743 PUT /ISAPI/System/Network/SIP/<ID>/SIPInfo
Method PUT
Description Set the parameters of a piece of SIP (Session Initiation Protocol)
information.
Query None.
Request XML_SIPInfo
Response XML_ResponseStatus

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.

Request URI Definition


Table A-744 GET /ISAPI/System/Network/SIP/<ID>/SIPInfo/capabilities
Method GET
Description Get the configuration capability of a specific piece of SIP (Session
Initiation Protocol) information.
Query None.
Request None.
Response Succeeded: XML_Cap_SIPInfo
Failed: XML_ResponseStatus

A.12.169 /ISAPI/System/Network/SIP/<ID>/SIPInfo/multiInfo
Get or set the information list of SIP servers.

Request URI Definition


Table A-745 GET /ISAPI/System/Network/SIP/<ID>/SIPInfo/multiInfo
Method GET
Description Get the information list of SIP servers.
Query None.
Request None.
Response Succeeded: XML_SIPInfoList
Failed: XML_ResponseStatus
Table A-746 PUT /ISAPI/System/Network/SIP/<ID>/SIPInfo/multiInfo
Method PUT
Description Set the information list of SIP servers.
Query None.
Request XML_SIPInfoList
Response XML_ResponseStatus

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.

Request URL Definition


Table A-747 GET /ISAPI/System/Network/SIP/capabilities
Method GET
Description Get the configuration capability of all SIP (Session Initiation Protocol)
servers.
Query None.
Request None.
Response Succeeded: XML_SIPServerListCap
Failed: XML_ResponseStatus

A.12.171 /ISAPI/System/Network/SIP/voiceTalkCtrl/<ID>?format=json
Get or set SIP (Session Initiation Protocol) intercom parameters.

Request URI Definition


Table A-748 GET /ISAPI/System/Network/SIP/voiceTalkCtrl/<ID>?format=json
Method GET
Description Get SIP (Session Initiation Protocol) intercom parameters.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_voiceTalkCtrl
Failed: JSON_ResponseStatus
Table A-749 PUT /ISAPI/System/Network/SIP/voiceTalkCtrl/<ID>?format=json
Method PUT
Description Set SIP (Session Initiation Protocol) intercom parameters.
Query format: determine the format of request or response message.

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.

Request URI Definition


Table A-750 GET /ISAPI/System/Network/SIP/voiceTalkCtrl/capabilities?format=json
Method GET
Description Get the configuration capability of SIP (Session Initiation Protocol)
intercom.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_voiceTalkCtrlCap
Failed: JSON_ResponseStatus

A.12.173 /ISAPI/System/Network/SNMP
Get or set batch configuration parameters of SNMP (Simple Network Management Protocol).

Request URI Definition


Table A-751 GET /ISAPI/System/Network/SNMP
Method GET
Description Get 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.

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).

Request URI Definition


Table A-753 GET /ISAPI/System/Network/SNMP/advanced
Method GET
Description Get advanced parameters of SNMP.
Query None.
Request None.
Response Succeeded: XML_SNMPAdvanced
Failed: XML_ResponseStatus
Table A-754 PUT /ISAPI/System/Network/SNMP/advanced
Method PUT
Description Set advanced parameters of SNMP.
Query None.

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.

Request URI Definition


Table A-755 GET /ISAPI/System/Network/SNMP/advanced/trapReceivers
Method GET
Description Get all trap address parameters of SNMP in version 3.
Query None.
Request None.
Response Succeeded: XML_SNMPTrapReceiverList
Failed: XML_ResponseStatus
Table A-756 PUT /ISAPI/System/Network/SNMP/advanced/trapReceivers
Method PUT
Description Set parameters for all trap addresses of SNMP in version 3.
Query None.
Request XML_SNMPTrapReceiverList
Response XML_ResponseStatus
Table A-757 DELETE /ISAPI/System/Network/SNMP/advanced/trapReceivers
Method DELETE
Description Delete all trap address parameters of SNMP in version 3.
Query None.
Request None.
Response XML_ResponseStatus
Table A-758 POST /ISAPI/System/Network/SNMP/advanced/trapReceivers
Method POST
Description Add a new trap address of SNMP.
Query None.

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.

Request URI Definition


Table A-759 GET /ISAPI/System/Network/SNMP/advanced/trapReceivers/<ID>
Method GET
Description Get trap address parameters of SNMP in version 3.
Query None.
Request None.
Response Succeeded: XML_SNMPTrapReceiver
Failed: XML_ResponseStatus
Table A-760 PUT /ISAPI/System/Network/SNMP/advanced/trapReceivers/<ID>
Method PUT
Description Set parameters for all trap addresses of SNMP in version 3.
Query None.
Request XML_SNMPTrapReceiver
Response XML_ResponseStatus
Table A-761 DELETE /ISAPI/System/Network/SNMP/advanced/trapReceivers/<ID>
Method DELETE
Description Delete a trap address of SNMP in version 3.
Query None.
Request None.
Response XML_ResponseStatus

A.12.177 /ISAPI/System/Network/socketIP
Get the socket IP of current connection.

451
Intelligent Security API (General) Developer Guide

Request URI Definition


Table A-762 GET /ISAPI/System/Network/socketIP
Method GET
Description Get the socket IP of current connection.
Query None.
Request None.
Response XML_SocketIP

A.12.178 /ISAPI/System/Network/ssh
Operations about SSH server configurations.

Request URI Definition


Table A-763 GET /ISAPI/System/Network/ssh
Method GET
Description Get SSH server parameters.
Query None.
Request None.
Response XML_SSH
Table A-764 PUT /ISAPI/System/Network/ssh
Method PUT
Description Set SSH server parameters.
Query None.
Request XML_SSH
Response XML_ResponseStatus

A.12.179 /ISAPI/System/Network/ssh/capabilities
Get the SSH parameters configuration capability.

452
Intelligent Security API (General) Developer Guide

Request URL Definition


Table A-765 GET /ISAPI/System/Network/ssh/capabilities
Method GET
Description Get the SSH parameters configuration capability.
Query None.
Request None.
Response Succeeded: XML_Cap_SSH
Failed: XML_ResponseStatus

A.12.180 /ISAPI/System/Network/StaticRoute
Get, set, or delete the parameters of static route.

Request URI Definition


Table A-766 GET /ISAPI/System/Network/StaticRoute
Method GET
Description Get the parameters of static route.
Query None.
Request None.
Response Succeeded: XML_staticRouteList
Failed: XML_ResponseStatus
Table A-767 PUT /ISAPI/System/Network/StaticRoute
Method PUT
Description Set the parameters of static route.
Query None.
Request XML_staticRouteList
Response XML_ResponseStatus
Table A-768 DELETE /ISAPI/System/Network/StaticRoute
Method DELETE
Description Delete the parameters of static route.
Query None.

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.

Request URI Definition


Table A-769 GET /ISAPI/System/Network/telnetd
Method GET
Description Get the telnetd service parameters.
Query None.
Request None.
Response Succeeded: XML_Telnetd
Failed: XML_ResponseStatus
Table A-770 PUT /ISAPI/System/Network/telnetd
Method PUT
Description Set the telnetd service parameters.
Query None.
Request XML_Telnetd
Response XML_ResponseStatus

A.12.182 /ISAPI/System/Network/telnetd/capabilities
Get the telnetd service capability.

Request URI Definition


Table A-771 GET /ISAPI/System/Network/telnetd/capabilities
Method GET
Description Get the telnetd service capability.
Query None.
Request None.
Response Succeeded: XML_Cap_Telnetd

454
Intelligent Security API (General) Developer Guide

Failed: XML_ResponseStatus

A.12.183 /ISAPI/System/Network/UPnP
Operations about UPnP configuration.

Request URI Definition


Table A-772 GET /ISAPI/System/Network/UPnP
Method GET
Description Get UPnP parameters.
Query None.
Request None.
Response XML_UPnP
Table A-773 PUT /ISAPI/System/Network/UPnP
Method PUT
Description Set UPnP parameters.
Query None.
Request XML_UPnP
Response XML_ResponseStatus

A.12.184 /ISAPI/System/Network/UPnP/capabilities
Get the UPnP configuration capability.

Request URI Definition


Table A-774 GET /ISAPI/System/Network/UPnP/capabilities
Method GET
Description Get the UPnP configuration capability.
Query None.
Request None.
Response Succeeded: XML_Cap_UPnPCap
Failed: XML_ResponseStatus

455
Intelligent Security API (General) Developer Guide

A.12.185 /ISAPI/System/Network/UPnP/ports
Operations about configuration of all UPnP ports.

Request URI Definition


Table A-775 GET /ISAPI/System/Network/UPnP/ports
Method GET
Description Get the parameters of all UPnP ports.
Query None.
Request None.
Response XML_ports
Table A-776 PUT /ISAPI/System/Network/UPnP/ports
Method PUT
Description Set the parameters of all UPnP ports.
Query None.
Request XML_ports
Response XML_ResponseStatus

A.12.186 /ISAPI/System/Network/UPnP/ports/status
Get the mapping statuses of all UPnP ports.

Request URI Definition


Table A-777 GET /ISAPI/System/Network/UPnP/ports/status
Method GET
Description Get the mapping statuses of all UPnP ports.
Query None.
Request None.
Response XML_portsStatus

A.12.187 /ISAPI/System/Network/UPnP/ports/<ID>
Operations about configuration of a specific UPnP port.

456
Intelligent Security API (General) Developer Guide

Request URI Definition


Table A-778 GET /ISAPI/System/Network/UPnP/ports/<ID>
Method GET
Description Get the parameters of a specific UPnP port.
Query None.
Request None.
Response Succeeded: XML_port
Failed: XML_ResponseStatus
Table A-779 PUT /ISAPI/System/Network/UPnP/ports/<ID>
Method PUT
Description Set the parameters of a specific UPnP port.
Query None.
Request XML_port
Response XML_ResponseStatus

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.

Request URI Definition


Table A-780 GET /ISAPI/System/Network/UPnP/ports/<ID>/status
Method GET
Description Get mapping status of a specific UPnP port.
Query None.
Request None.
Response Succeeded: XML_portStatus
Failed: XML_ResponseStatus

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.

Request URI Definition


Table A-781 POST /ISAPI/System/Network/verificationCodeCheck
Method POST
Description Verify the encryption key or verification code.
Query None.
Request XML_CheckInfo
Response XML_ResponseStatus

A.12.190 /ISAPI/System/Network/WirelessDial/Interfaces
Get or set parameters for all dial network cards.

Request URI Definition


Table A-782 GET /ISAPI/System/Network/WirelessDial/Interfaces
Method GET
Description Get parameters for all dial network cards.
Query None.
Request None.
Response Succeeded: XML_WirelessDialInterface
Failed: XML_ResponseStatus
Table A-783 PUT /ISAPI/System/Network/WirelessDial/Interfaces
Method PUT
Description Set parameters for all dial network cards.
Query None.
Request XML_WirelessDialInterface
Response XML_ResponseStatus

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.

Request URI Definition


Table A-784 GET /ISAPI/System/Network/WirelessDial/Interfaces/<ID>
Method GET
Description Get parameters for a single dial network card.
Query None.
Request None.
Response Succeeded: XML_WirelessDialInterfaceList
Failed: XML_ResponseStatus
Table A-785 PUT /ISAPI/System/Network/WirelessDial/Interfaces/<ID>
Method PUT
Description Set the wireless dial-up parameters.
Query None.
Request XML_WirelessDialInterfaceList
Response XML_ResponseStatus

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.

Request URI Definition


Table A-786 GET /ISAPI/System/Network/WirelessDial/Interfaces/<ID>/dial
Method GET
Description Get the configuration parameters of wireless dial-up.
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

459
Intelligent Security API (General) Developer Guide

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_Dial
Failed: XML_ResponseStatus
Table A-787 PUT /ISAPI/System/Network/WirelessDial/Interfaces/<ID>/dial
Method PUT
Description Set the wireless dial-up parameters.
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_Dial
Response XML_ResponseStatus

A.12.193 /ISAPI/System/Network/WirelessDial/Interfaces/<ID>/dial/capabilities
Get the wireless dial-up capability.

Request URI Definition


Table A-788 GET /ISAPI/System/Network/WirelessDial/Interfaces/<ID>/dial/capabilities
Method GET
Description Get the wireless dial-up 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.

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.

Request URI Definition


Table A-789 GET /ISAPI/System/Network/WirelessDial/Interfaces/<ID>/dialstatus
Method GET
Description Get the parameters of wireless dial-up connection status.
Query None.
Request None.
Response Succeeded: XML_Dialstatus
Failed: XML_ResponseStatus
Table A-790 PUT /ISAPI/System/Network/WirelessDial/Interfaces/<ID>/dialstatus
Method PUT
Description Set the parameters of wireless dial-up connection status.
Query None.
Request XML_Dialstatus
Response XML_ResponseStatus

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

Request URI Definition


Table A-791 GET /ISAPI/System/Network/WirelessDial/Interfaces/<ID>/keepAlive/capabilities?
format=json
Method GET
Description Get the configuration capability of network keepalive.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_KeepAliveCap
Failed: JSON_ResponseStatus

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.

Request URI Definition


Table A-792 POST /ISAPI/System/Network/WirelessDial/Interfaces/<ID>/keepAlive/test?
format=json
Method POST
Description Test network keepalive configuration.
Query format: determine the format of request or response message.
Request JSON_KeepAlive
Response JSON_TestResult

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

Request URI Definition


Table A-793 PUT /ISAPI/System/Network/WirelessDial/Interfaces/<ID>/keepAlive?format=json
Method PUT
Description Set network keepalive parameters.
Query format: determine the format of request or response message.
Request JSON_KeepAlive
Response JSON_ResponseStatus

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.

Request URI Definition


Table A-794 GET /ISAPI/System/Network/WirelessDial/Interfaces/<ID>/messageConfig
Method GET
Description Get dial-up information parameters.
Query None.
Request None.
Response Succeeded: XML_messageConfig
Failed: XML_ResponseStatus
Table A-795 PUT /ISAPI/System/Network/WirelessDial/Interfaces/<ID>/messageConfig
Method PUT
Description Set dial-up information parameters.
Query None.
Request XML_messageConfig
Response XML_ResponseStatus

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.

Request URI Definition


Table A-796 GET /ISAPI/System/Network/WirelessDial/Interfaces/<ID>/messageConfig/
messageConfigCap
Method GET
Description Get dial-up information capability.
Query None.
Request None.
Response Succeeded: XML_messageConfigCap
Failed: XML_ResponseStatus

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.

Request URI Definition


Table A-797 GET /ISAPI/System/Network/WirelessDial/Interfaces/<ID>/messageConfig/
WhiteList
Method GET
Description Get all allowlist configuration.
Query None.
Request None.
Response Succeeded: XML_SMSWhiteList
Failed: XML_ResponseStatus

464
Intelligent Security API (General) Developer Guide

Table A-798 PUT /ISAPI/System/Network/WirelessDial/Interfaces/<ID>/messageConfig/


WhiteList
Method PUT
Description Set all allowlist configuration.
Query None.
Request XML_SMSWhiteList
Response XML_ResponseStatus

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.

Request URI Definition


Table A-799 GET /ISAPI/System/Network/WirelessDial/Interfaces/<ID>/messageConfig/
WhiteList/<ID>
Method GET
Description Get specific allowlist configuration.
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 None.
Response Succeeded: XML_ListMember
Failed: XML_ResponseStatus
Table A-800 PUT /ISAPI/System/Network/WirelessDial/Interfaces/<ID>/messageConfig/
WhiteList/<ID>
Method PUT
Description 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.

Request URI Definition


Table A-801 GET /ISAPI/System/Network/WirelessDial/Interfaces/<ID>/schedule
Method GET
Description Get dial-up schedule parameters.
Query None.
Request None.
Response Succeeded: XML_Schedule
Failed: XML_ResponseStatus
Table A-802 PUT /ISAPI/System/Network/WirelessDial/Interfaces/<ID>/schedule
Method PUT
Description Set dial-up schedule parameters.
Query None.
Request XML_Schedule
Response XML_ResponseStatus

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.

Request URI Definition


Table A-803 GET /ISAPI/System/Network/WirelessDial/Interfaces/<ID>/trafficMonitor/
capabilities?format=json
Method GET
Description Get traffic monitoring configuration capability.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_TrafficMonitorCap
Failed: JSON_ResponseStatus

A.12.204 /ISAPI/System/Network/WirelessDial/Interfaces/<ID>/trafficMonitor/
status?format=json
Get traffic monitoring status.

Request URI Definition


Table A-804 GET /ISAPI/System/Network/WirelessDial/Interfaces/<ID>/trafficMonitor/status?
format=json
Method GET
Description Get traffic monitoring status.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_TrafficMonitorStatus
Failed: JSON_ResponseStatus

A.12.205 /ISAPI/System/Network/WirelessDial/Interfaces/<ID>/trafficMonitor?
format=json
Get traffic monitoring parameters.

467
Intelligent Security API (General) Developer Guide

Request URI Definition


Table A-805 GET /ISAPI/System/Network/WirelessDial/Interfaces/<ID>/trafficMonitor?
format=json
Method GET
Description Get traffic monitoring parameters.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_TrafficMonitor
Failed: JSON_ResponseStatus
Table A-806 PUT /ISAPI/System/Network/WirelessDial/Interfaces/<ID>/trafficMonitor?
format=json
Method PUT
Description Set traffic monitoring parameters.
Query None.
Request JSON_TrafficMonitor
Response JSON_ResponseStatus

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.

Request URI Definition


Table A-807 GET /ISAPI/System/Network/WPS/capabilities
Method GET
Description Get the WPS (Wi-Fi Protected Setup) configuration capability.
Query None.
Request None.
Response Succeeded: XML_Cap_WPS
Failed: XML_ResponseStatus

468
Intelligent Security API (General) Developer Guide

A.12.207 /ISAPI/System/onlineUpgrade/capabilities
Get the device online upgrade capability.

Request URI Definition


Table A-808 GET /ISAPI/System/onlineUpgrade/capabilities
Method GET
Description Get the device online upgrade capability.
Query None.
Request None.
Response XML_OnlineUpgradeCap

A.12.208 /ISAPI/System/onlineUpgrade/deviceParameter?format=json
Get and set the device online upgrade parameters.

Request URI Definition


Table A-809 GET /ISAPI/System/onlineUpgrade/deviceParameter?format=json
Method GET
Description Get the device online upgrade parameters.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_OnlineUpgradeParameter
Failed: JSON_ResponseStatus
Table A-810 PUT /ISAPI/System/onlineUpgrade/deviceParameter?format=json
Method PUT
Description Set the device online upgrade parameters.
Query format: determine the format of request or response message.
Request JSON_OnlineUpgradeParameter
Response JSON_ResponseStatus

A.12.209 /ISAPI/System/onlineUpgrade/downloadPackage/pause?format=json
Pause the upgrade package download.

469
Intelligent Security API (General) Developer Guide

Request URI Definition


Table A-811 PUT /ISAPI/System/onlineUpgrade/downloadPackage/pause?format=json
Method PUT
Description Pause upgrade package download.
Query format: determine the format of request or response message.
Request None.
Response JSON_ResponseStatus

A.12.210 /ISAPI/System/onlineUpgrade/downloadPackage/resume?format=json
Resume the upgrade package download.

Request URI Definition


Table A-812 PUT /ISAPI/System/onlineUpgrade/downloadPackage/resume?format=json
Method PUT
Description Resume the upgrade package download.
Query format: determine the format of request or response message.
Request None.
Response JSON_ResponseStatus

A.12.211 /ISAPI/System/onlineUpgrade/downloadPackage/status?format=json
Get the upgrade package download progress.

Request URI Definition


Table A-813 GET /ISAPI/System/onlineUpgrade/downloadPackage/status?format=json
Method GET
Description Get the upgrade package download progress.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_DownloadPackageStatus
Failed: JSON_ResponseStatus

470
Intelligent Security API (General) Developer Guide

A.12.212 /ISAPI/System/onlineUpgrade/downloadPackage?format=json
Start or cancel downloading upgrade package to device.

Request URI Definition


Table A-814 PUT /ISAPI/System/onlineUpgrade/downloadPackage?format=json
Method PUT
Description Start to download upgrade package to device.
Query format: determine the format of request or response message.
Request None.
Response JSON_ResponseStatus
Table A-815 DELETE /ISAPI/System/onlineUpgrade/downloadPackage?format=json
Method DELETE
Description Cancel the upgrade package download.
Query format: determine the format of request or response message.
Request None.
Response JSON_ResponseStatus

A.12.213 /ISAPI/System/onlineUpgrade/ignoreCurrentVersion?format=json
Ignore the current upgrade package version.

Request URI Definition


Table A-816 PUT /ISAPI/System/onlineUpgrade/ignoreCurrentVersion?format=json
Method PUT
Description Ignore the current upgrade package version.
Query format: determine the format of request or response message.
Request None.
Response JSON_ResponseStatus

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.

Request URI Definition


Table A-817 GET /ISAPI/System/onlineUpgrade/server
Method GET
Description Get the online upgrade server status.
Query None.
Request None.
Response XML_OnlineUpgradeServer

A.12.215 /ISAPI/System/onlineUpgrade/status
Get the online upgrade progress of device.

Request URI Definition


Table A-818 GET /ISAPI/System/onlineUpgrade/status
Method GET
Description Get the online upgrade progress of device.
Query None.
Request None.
Response XML_OnlineUpgradeStatus

A.12.216 /ISAPI/System/onlineUpgrade/upgradeWithoutDownload?format=json
Start device upgrade with existed upgrade package.

Request URI Definition


Table A-819 PUT /ISAPI/System/onlineUpgrade/upgradeWithoutDownload?format=json
Method PUT
Description Start upgrade with existed upgrade package.
Query format: determine the format of request or response message.

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.

Request URI Definition


Table A-820 GET /ISAPI/System/onlineUpgrade/version
Method GET
Description Get the information of new upgrade package.
Query check
Request None.
Response XML_OnlineUpgradeVersion

A.12.218 /ISAPI/System/PictureServer/capabilities?format=json
Get the picture storage server capability.

Request URI Definition


Table A-821 GET /ISAPI/System/PictureServer/capabilities?format=json
Method GET
Description Get the picture storage server capability.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_Cap_PictureServerInformation
Failed: JSON_ResponseStatus

A.12.219 /ISAPI/System/PictureServer?format=json
Operations about the picture storage server configuration parameters.

473
Intelligent Security API (General) Developer Guide

Request URI Definition


Table A-822 GET /ISAPI/System/PictureServer?format=json
Method GET
Description Get the picture storage 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 None.
Response Succeeded: JSON_PictureServerInformation
Failed: JSON_ResponseStatus
Table A-823 PUT /ISAPI/System/PictureServer?format=json
Method PUT
Description Set the picture storage 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_PictureServerInformation
Response JSON_ResponseStatus

A.12.220 /ISAPI/System/reboot
Reboot device.

474
Intelligent Security API (General) Developer Guide

Request URI Definition


Table A-824 PUT /ISAPI/System/reboot
Method PUT
Description Reboot device.
Query None.
Request None.
Response XML_ResponseStatus

A.12.221 /ISAPI/System/Serial/authentication/capabilities?format=json
Get capability of serial authentication service.

Request URI Definition


Table A-825 GET /ISAPI/System/Serial/authentication/capabilities?format=json
Method GET
Description Get capability of serial authentication service.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_AuthenticationCap
Failed: JSON_ResponseStatus

A.12.222 /ISAPI/System/Serial/authentication?format=json
Get or set parameters of serial authentication service.

Request URI Definition


Table A-826 GET /ISAPI/System/Serial/authentication?format=json
Method GET
Description Get parameters of serial authentication service.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_Authentication

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.

Request URI Definition


Table A-828 GET /ISAPI/System/Serial/capabilities
Method GET
Description Get the serial port capability of the device.
Query None.
Request None.
Response Succeeded: XML_SerialCap
Failed: XML_ResponseStatus

A.12.224 /ISAPI/System/Serial/ports
Get the list of serial ports supported by the device.

Request URI Definition


Table A-829 GET /ISAPI/System/Serial/ports
Method GET
Description Get the list of serial ports supported by the device.
Query None.
Request None.
Response Succeeded: XML_SerialPorList
Failed: XML_ResponseStatus

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.

Request URI Definition


Table A-830 GET /ISAPI/System/Serial/ports/<ID>
Method GET
Description Get the parameters of a specific port supported by the device.
Query None.
Request None.
Response Succeeded: XML_SerialPort
Failed: XML_ResponseStatus
Table A-831 PUT /ISAPI/System/Serial/ports/<ID>
Method PUT
Description Set the parameters of a specific serial port supported by the device.
Query None.
Request XML_SerialPort
Response XML_ResponseStatus

A.12.226 /ISAPI/System/Serial/ports/<ID>/capabilities
Get the capability of a specific serial port.

Request URI Definition


Table A-832 GET /ISAPI/System/Serial/ports/<ID>/capabilities
Method GET
Description Get the capability of a specific serial port.
Query None.
Request None.
Response Succeeded: XML_Cap_SerialPort
Failed: XML_ResponseStatus

477
Intelligent Security API (General) Developer Guide

A.12.227 /ISAPI/System/Serial/ports/capabilities
Get the capability of all serial ports.

Request URI Definition


Table A-833 GET /ISAPI/System/Serial/ports/capabilities
Method GET
Description Get the capability of all serial ports.
Query None.
Request None.
Response Succeeded: XML_Cap_SerialPortList
Failed: XML_ResponseStatus

A.12.228 /ISAPI/System/Serial/ports/command
Send a command to a serial port.

Request URI Definition


Table A-834 PUT /ISAPI/System/Serial/ports/command
Method PUT
Description Send a command to a serial port.
Query None.
Request XML_SerialCommand or query string with raw command in binary
format
Response XML_ResponseStatus

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

<?xml version=“1.0” encoding=“UTF-8”?>


<SerialCommand>
<chainNo>0</chainNo>
<command>ab45be8778cd</command>
</SerialCommand>

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.

Request URI Definition


Table A-835 GET /ISAPI/System/Serial/ports/command/capabilities
Method GET
Description Get the serial port command capability.
Query None.
Request None.
Response Succeeded: XML_Cap_SerialCommand
Failed: XML_ResponseStatus

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

Request URI Definition


Table A-836 GET /ISAPI/System/serialLogCfg/capabilities?format=json
Method GET
Description Get the configuration capability of serial port log redirection.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_SerialLogCfgCap
Failed: JSON_ResponseStatus

A.12.231 /ISAPI/System/serialLogCfg?format=json
Operations about the redirection configuration of serial port log.

Request URI Definition


Table A-837 GET /ISAPI/System/serialLogCfg?format=json
Method GET
Description Get the redirection parameters of serial port log.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_SerialLogCfg
Failed: JSON_ResponseStatus
Table A-838 PUT /ISAPI/System/serialLogCfg?format=json
Method PUT
Description Set the redirection parameters of serial port log.
Query format: determine the format of request or response message.
Request JSON_SerialLogCfg
Response JSON_ResponseStatus

A.12.232 /ISAPI/System/shutdown?format=json
Shut down the device.

480
Intelligent Security API (General) Developer Guide

Request URI Definition


Table A-839 PUT /ISAPI/System/shutdown?format=json
Method PUT
Description Shut down the device.
Query format: determine the format of request or response message.
Request None.
Response JSON_ResponseStatus

A.12.233 /ISAPI/System/Software/channels/<ID>
Operation about software service configuration.

Request URI Definition


Table A-840 GET /ISAPI/System/Software/channels/<ID>
Method GET
Description Get software service parameters.
Query None.
Request None.
Response XML_SoftwareService
Table A-841 PUT /ISAPI/System/Software/channels/<ID>
Method PUT
Description Set software service parameters.
Query None.
Request XML_SoftwareService
Response XML_ResponseStatus

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

Request URI Definition


Table A-842 GET /ISAPI/System/Software/channels/<ID>/capabilities
Method GET
Description Get the configuration capability of software service.
Query None.
Request None.
Response XML_Cap_SoftwareService

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.

Request URI Definition


Table A-843 GET /ISAPI/System/SSDFileSystem/capacity?format=json
Method GET
Description Search for SSD storage quotas.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_SSDCapacity
Failed: JSON_ResponseStatus

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

Request URI Definition


Table A-844 PUT /ISAPI/System/SSDFileSystem/format?format=json
Method PUT
Description Format SSD file system.
Query format: determine the format of request or response message.
Request None.
Response JSON_ResponseStatus

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.

Request URI Definition


Table A-845 GET /ISAPI/System/SSDFileSystem/format/status?format=json
Method GET
Description Search for the progress of SSD file system formatting.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_SSDFormatStatus
Failed: JSON_ResponseStatus

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.

Request URI Definition


Table A-846 GET /ISAPI/System/SSDFileSystem/upgrade?format=json
Method GET
Description Get the upgrade status of SSD file system.

483
Intelligent Security API (General) Developer Guide

Query format: determine the format of request or response message.


Request None.
Response Succeeded: JSON_SSDUpgrade
Failed: JSON_ResponseStatus
Table A-847 PUT /ISAPI/System/SSDFileSystem/upgrade?format=json
Method PUT
Description Upgrade the SSD file system.
Query format: determine the format of request or response message.
Request None.
Response JSON_ResponseStatus

A.12.239 /ISAPI/System/SSDFileSystem/upgrade/status?format=json
Search for the upgrade progress of SSD file system.

Request URI Definition


Table A-848 GET /ISAPI/System/SSDFileSystem/upgrade/status?format=json
Method GET
Description Search for the upgrade progress of SSD file system.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_SSDUpgradeStatus
Failed: JSON_ResponseStatus

A.12.240 /ISAPI/System/status
Get device status, e.g., CPU, memory, and so on.

Request URI Definition


Table A-849 GET /ISAPI/System/status
Method GET
Description Get device status, e.g., CPU, memory, and so on.
Query None.

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.

Request URI Definition


Table A-850 GET /ISAPI/System/syncSignalOutput/<ID>
Method GET
Description Get the parameters of synchronous signal output.
Query None.
Request None.
Response Succeeded: XML_SyncSignalOutputList
Failed: XML_ResponseStatus
Table A-851 PUT /ISAPI/System/syncSignalOutput/<ID>
Method PUT
Description Set the parameters of synchronous signal output.
Query None.
Request XML_SyncSignalOutputList
Response XML_ResponseStatus

A.12.242 /ISAPI/System/syncSignalOutput/<ID>/capabilities
Get the configuration capability of synchronous signal output.

Request URI Definition


Table A-852 GET /ISAPI/System/syncSignalOutput/<ID>/capabilities
Method GET
Description Get the configuration capability of synchronous signal output.
Query None.

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.

Request URI Definition


Table A-853 GET /ISAPI/System/time
Method GET
Description Get device time parameters.
Query None
Request None
Response Succeeded: XML_Time
Failed: XML_ResponseStatus
Table A-854 PUT /ISAPI/System/time
Method PUT
Description Set device time parameters.
Query None
Request XML_Time
Response Succeeded: XML_ResponseStatus_IFSTime
Failed: XML_ResponseStatus

A.12.244 /ISAPI/System/time/capabilities
Get the time capability of the device.

Request URI Definition


Table A-855 GET /ISAPI/System/time/capabilities
Method GET
Description Get the time capability of the device.
Query None.

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.

Request URI Definition


Table A-856 GET /ISAPI/System/time/localTime
Method GET
Description Get the configuration parameters of device local time.
Query None.
Request None.
Response String with date and time information (ISO8601 format, e.g., 2018-
02-10T17:30:08)
Table A-857 PUT /ISAPI/System/time/localTime
Method PUT
Description Set device local time.
Query None.
Request String with date and time information (ISO8601 format, e.g., 2018-
02-10T17:30:08)
Response XML_ResponseStatus

A.12.246 /ISAPI/System/time/ntpServers
Get or set parameters of all NTP servers, add a NTP server, or delete all NTP servers.

Request URI Definition


Table A-858 GET /ISAPI/System/time/ntpServers
Method GET
Description Get parameters of all NTP servers.
Query None

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.

Request URI Definition


Table A-862 GET /ISAPI/System/time/ntpServers/<ID>
Method GET
Description Get the parameters of a NTP server.
Query None

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.

Request URI Definition


Table A-865 GET /ISAPI/System/time/ntpServers/<ID>/capabilities
Method GET
Description Get the configuration capability of a specific NTP server.
Query None.
Request None.
Response Succeeded: XML_Cap_NTPServer
Failed: XML_ResponseStatus

A.12.249 /ISAPI/System/time/ntpServers/capabilities
Get the configuration capability of all NTP servers.

489
Intelligent Security API (General) Developer Guide

Request URI Definition


Table A-866 GET /ISAPI/System/time/ntpServers/capabilities
Method GET
Description Get the configuration capability of all NTP servers.
Query None
Request None
Response Succeeded: XML_Cap_NTPServerList
Failed: XML_ResponseStatus

A.12.250 /ISAPI/System/time/ntpServers/test
Execute a test to check if the NTP server is available.

Request URI Definition


Table A-867 POST /ISAPI/System/time/ntpServers/test
Method POST
Description Execute a test to check if the NTP server is available.
Query None
Request XML_NTPTestDescription
Response Succeeded: XML_NTPTestResult
Failed: XML_ResponseStatus

A.12.251 /ISAPI/System/time/timeType?format=json
Operations about device time type configuration.

Request URI Definition


Table A-868 GET /ISAPI/System/time/timeType?format=json
Method GET
Description Get the device time type.
Query format: determine the format of request or response message.

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.

Request URI Definition


Table A-870 GET /ISAPI/System/time/timeZone
Method GET
Description Get the device time zone parameters.
Query None.
Request None.
Response String containing time zone information
Table A-871 PUT /ISAPI/System/time/timeZone
Method PUT
Description Set the device time zone parameters.
Query None.
Request String containing time zone information
Response XML_ResponseStatus

A.12.253 /ISAPI/System/TwoWayAudio/channels
Get audio parameters of all two-way audio channels.

491
Intelligent Security API (General) Developer Guide

Request URI Definition


Table A-872 GET /ISAPI/System/TwoWayAudio/channels
Method GET
Description Get parameters of all two-way audio channels.
Query None.
Request None.
Response Succeeded: XML_TwoWayAudioChannelList
Failed: XML_ResponseStatus

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

<?xml version="1.0" encoding="UTF-8"?>


<TwoWayAudioChannelList version="2.0" xmlns="http://www.isapi.com/ver20/XMLSchema">
<TwoWayAudioChannel version="2.0" xmlns="http://www.isapi.com/ver20/XMLSchema">
<id>1</id>
<enabled>false</enabled>
<audioCompressionType>G.711ulaw</audioCompressionType>
<audioInputType>MicIn</audioInputType>
<speakerVolume>50</speakerVolume>
<noisereduce>false</noisereduce>
</TwoWayAudioChannel>
</TwoWayAudioChannelList>

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.

Request URI Definition


Table A-873 GET /ISAPI/System/TwoWayAudio/channels/<ID>
Method GET
Description Get the parameters of a specific two-way audio channel.
Query None.
Request None.
Response Succeeded: XML_TwoWayAudioChannel
Failed: XML_ResponseStatus
Table A-874 PUT /ISAPI/System/TwoWayAudio/channels/<ID>
Method PUT
Description Set the parameters of a specific two-way audio channel.
Query None.
Request XML_TwoWayAudioChannel
Response XML_ResponseStatus

A.12.255 /ISAPI/System/TwoWayAudio/channels/<ID>/audioData
Receive or send audio data from or to a specific two-way audio channel.

Request URI Definition


Table A-875 GET /ISAPI/System/TwoWayAudio/channels/<ID>/audioData
Method GET
Description Receive audio data from a specific two-way audio channel.
Query sessionId: communication session ID, which is required when the
two-way audio is started between multiple channels and a channel;
otherwise, the session ID is not required.
Request None.
Response Succeeded: audio data
Failed: XML_ResponseStatus

493
Intelligent Security API (General) Developer Guide

Table A-876 PUT /ISAPI/System/TwoWayAudio/channels/<ID>/audioData


Method PUT
Description Send audio data to a specific two-way audio channel.
Query sessionId: communication session ID, which is required when the
two-way audio is started between multiple channels and a channel;
otherwise, the session ID is not required.
Request Audio data.
Response XML_ResponseStatus

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

..U....U..............U...........U........ (Binary audio data)

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

Q......U..dzR..\.FfN...q[....z..q.......`. (Binary audio data)

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.

Request URI Definition


Table A-877 GET /ISAPI/System/TwoWayAudio/channels/<ID>/capabilities
Method GET
Description Get the capability of a specific two-way audio channel.
Query None.
Request None.
Response Succeeded: XML_TwoWayAudioChannelCap
Failed: XML_ResponseStatus

A.12.257 /ISAPI/System/TwoWayAudio/channels/<ID>/close
Stop two-way audio of a specific channel.

Request URI Definition


Table A-878 PUT /ISAPI/System/TwoWayAudio/channels/<ID>/close
Method PUT
Description Stop two-way audio of a specific channel.
Query None.
Request None.
Response XML_ResponseStatus

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

<?xml version="1.0" encoding="UTF-8"?>


<ResponseStatus version="2.0" xmlns="http://www.isapi.com/ver20/XMLSchema">
<requestURL>/ISAPI/System/TwoWayAudio/channels/1/close</requestURL>
<statusCode>1</statusCode>
<statusString>OK</statusString>
<subStatusCode>ok</subStatusCode>
</ResponseStatus>

A.12.258 /ISAPI/System/TwoWayAudio/channels/<ID>/open
Start two-way audio of a specific channel.

Request URI Definition


Table A-879 PUT /ISAPI/System/TwoWayAudio/channels/<ID>/open
Method PUT
Description Start two-way audio of a specific channel.
Query None.
Request None.
Response Succeeded: XML_TwoWayAudioSession
Failed: XML_ResponseStatus

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

Date: Wed, 15 Mar 2017 09:25:29 GMT


Server: App-webs/
Connection: close
Content-Length: 183
Content-Type: application/xml

<?xml version="1.0" encoding="UTF-8"?>


<TwoWayAudioSession version="2.0" xmlns="http://www.isapi.com/ver20/XMLSchema">
<sessionId>2093716360</sessionId>
</TwoWayAudioSession>

A.12.259 /ISAPI/System/TwoWayAudio/channels/capabilities
Get the audio configuration capability of all two-way audio channels.

Request URI Definition


Table A-880 GET /ISAPI/System/TwoWayAudio/channels/capabilities
Method GET
Description Get the audio configuration capability of all two-way audio channels.
Query None.
Request None.
Response Succeeded: XML_Cap_TwoWayAudioChannelList
Failed: XML_ResponseStatus

A.12.260 /ISAPI/System/unitConfig/capabilities?format=json
Get the capability of unit unified configuration.

Request URI Definition


Table A-881 GET /ISAPI/System/unitConfig/capabilities?format=json
Method GET
Description Get the capability of unit unified configuration.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_unitConfigCap
Failed: JSON_ResponseStatus

497
Intelligent Security API (General) Developer Guide

A.12.261 /ISAPI/System/unitConfig?format=json
Get and set the unit unified configuration parameters.

Request URI Definition


Table A-882 GET /ISAPI/System/unitConfig?format=json
Method GET
Description Get the unit unified configuration parameters.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_unitConfig
Failed: JSON_ResponseStatus
Table A-883 PUT /ISAPI/System/unitConfig?format=json
Method PUT
Description Set the unit unified configuration parameters.
Query format: determine the format of request or response message.
Request JSON_unitConfig
Response JSON_ResponseStatus

A.12.262 /ISAPI/System/updateFirmware
Upgrade the device firmware.

Request URI Definition


Table A-884 PUT or POST /ISAPI/System/updateFirmware
Method PUT, POST
Description Upgrade the device firmware.
Query type: module type, which 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, "FPAlgorithmProgram"-​fingerprint algorithm
program of the card reader, "uboot", "keypad", "wirelessRecv"-
wireless receiving module, "wiredZone"-wired zone module,

498
Intelligent Security API (General) Developer Guide

"ZigBee"-ZigBee module,"R3"-R3 module,"Rx"-Rx module,


"sirenIndoor"-siren indoor, "sirenOutdoor"-siren outdoor, "repeater"-
repeater, "automation"-​automation.
Request Opaque data (binary data for PUT method, data in form format for
POST method).
Response XML_ResponseStatus

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.

Request URI Definition


Table A-885 PUT or POST /ISAPI/System/updateFirmware?type=&id=
Method PUT, POST
Description 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.

Request URI Definition


Table A-886 PUT or POST /ISAPI/System/updateFirmware?type=&moduleAddress=
Method PUT, POST
Description Upgrade the peripheral module's firmware.
Query type: device or module type, string type, it can be set to one of the
following values: "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.
moduleAddress: module address, e.g., /ISAPI/System/
updateFirmware?type=wirelessRecv&moduleAddress=1 refers to
upgrading firmware of the wireless receiving module with the
module address 1.

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.

Request URI Definition


Table A-887 GET /ISAPI/System/upgradeStatus
Method GET
Description Get the device upgrading status and progress.
Query None.
Request None.
Response Succeeded: XML_upgradeStatus
Failed: XML_ResponseStatus

A.12.266 /ISAPI/System/usb/capabilities?format=json
Get the USB parameters configuration capability.

Request URI Definition


Table A-888 GET /ISAPI/System/usb/capabilities?format=json
Method GET
Description Get the USB parameters configuration capability.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_USBCap
Failed: JSON_ResponseStatus

501
Intelligent Security API (General) Developer Guide

A.12.267 /ISAPI/System/usb?format=json
Get or set the USB parameters.

Request URI Definition


Table A-889 GET /ISAPI/System/usb?format=json
Method GET
Description Get the USB parameters.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_USB
Failed: JSON_ResponseStatus
Table A-890 PUT /ISAPI/System/usb?format=json
Method PUT
Description Set the USB parameters.
Query format: determine the format of request or response message.
Request JSON_USB
Response JSON_ResponseStatus

A.12.268 /ISAPI/System/userLock/config/capabilities?format=json
Get the configuration capability of locking IP address.

Request URI Definition


Table A-891 GET /ISAPI/System/userLock/config/capabilities?format=json
Method GET
Description Get the configuration capability of locking IP address.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_LockCfgCap
Failed: JSON_ResponseStatus

502
Intelligent Security API (General) Developer Guide

A.12.269 /ISAPI/System/userLock/config?format=json
Operations about IP address locking configuration.

Request URI Definition


Table A-892 GET /ISAPI/System/userLock/config?format=json
Method GET
Description Get the parameters of IP address locking.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_LockCfg
Failed: JSON_ResponseStatus
Table A-893 PUT /ISAPI/System/userLock/config?format=json
Method PUT
Description Set the parameters of IP address locking.
Query format: determine the format of request or response message.
Request JSON_LockCfg
Response JSON_ResponseStatus

A.12.270 /ISAPI/System/userLock/lockedUsers?format=json
Get all locked IP addresses.

Request URI Definition


Table A-894 GET /ISAPI/System/userLock/lockedUsers?format=json
Method GET
Description Get all locked IP addresses.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_List_IPAddress
Failed: JSON_ResponseStatus

503
Intelligent Security API (General) Developer Guide

A.12.271 /ISAPI/System/userLock/unlockUser?format=json
Unlock the IP address.

Request URI Definition


Table A-895 PUT /ISAPI/System/userLock/unlockUser?format=json
Method PUT
Description Unlock the IP address.
Query format: determine the format of request or response message.
Request JSON_operType
Response JSON_ResponseStatus

A.12.272 /ISAPI/System/Video/capabilities
Get video channel capability.

Request URI Definition


Table A-896 GET /ISAPI/System/Video/capabilities
Method GET
Description Get video channel capability.
Query None
Request None
Response Succeeded: XML_VideoCap
Failed: XML_ResponseStatus

A.12.273 /ISAPI/System/Video/inputs
Get the video input configuration of the device.

Request URI Definition


Table A-897 GET /ISAPI/System/Video/inputs
Method GET
Description Get the video input configuration parameters of the device.
Query None.

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.

Request URI Definition


Table A-898 GET /ISAPI/System/Video/inputs/channels
Method GET
Description Get the configuration parameters of all video input channels of the
device.
Query None.
Request None.
Response Succeeded: XML_VideoInputChannelList
Failed: XML_ResponseStatus

A.12.275 /ISAPI/System/Video/inputs/channels/<ID>
Operations about the configuration of a specific video input channel of the device.

Request URI Definition


Table A-899 GET /ISAPI/System/Video/inputs/channels/<ID>
Method GET
Description Get the parameters of a specific video input channel of the device.
Query None.
Request None.
Response Succeeded: XML_VideoInputChannel
Failed: XML_ResponseStatus
Table A-900 PUT /ISAPI/System/Video/inputs/channels/<ID>
Method PUT
Description Set the parameters 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.

Request URI Definition


Table A-901 POST /ISAPI/System/Video/inputs/channels?format=json
Method POST
Description Get the information of all channels according to the request
message.
Query format: determine the format of request or response message.
Request JSON_InputParam
Response Succeeded: JSON_ChannelInfoList
Failed: JSON_ResponseStatus

A.12.277 /ISAPI/System/Video/inputs/channels/<ID>/focus
Perform manual focus on a specific channel.

Request URI Definition


Table A-902 PUT /ISAPI/System/Video/inputs/channels/<ID>/focus
Method PUT
Description Perform manual focus on a specific channel.
Query None.
Request XML_FocusData
Response XML_ResponseStatus

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.

Request URI Definition


Table A-903 POST /ISAPI/System/Video/inputs/channels/<ID>?format=json
Method POST
Description Get the information of a channel according to the request message.
Query format: determine the format of request or response message.
Request
Response Succeeded: JSON_ChannelInfo
Failed: JSON_ResponseStatus

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.

Request URI Definition


Table A-904 GET /ISAPI/System/Video/inputs/channels/<ID>/capabilities
Method GET
Description Get the configuration capability of a video input channel.
Query None.
Request None.
Response Succeeded: XML_Cap_VideoInputChannel
Failed: XML_ResponseStatus

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

Request URI Definition


Table A-905 PUT /ISAPI/System/Video/inputs/channels/<ID>/iris
Method PUT
Description Manually adjust the iris of a specific video input channel.
Query None.
Request XML_IrisData
Response XML_ResponseStatus

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.

Request URI Definition


Table A-906 GET /ISAPI/System/Video/inputs/channels/<ID>/motionDetection
Method GET
Description Get the motion detection parameters of a specified video input
channel.
Query None.
Request None.
Response Succeeded: XML_MotionDetection
Failed: XML_ResponseStatus
Table A-907 PUT /ISAPI/System/Video/inputs/channels/<ID>/motionDetection
Method PUT
Description Set the motion detection parameters of a specified video input
channel.
Query None.
Request XML_MotionDetection
Response XML_ResponseStatus

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.

Request URI Definition


Table A-908 GET /ISAPI/System/Video/inputs/channels/<ID>/motionDetection/capabilities
Method GET
Description Get the motion detection capability of a specified video input
channel.
Query None.
Request None.
Response Succeeded: XML_Cap_MotionDetection
Failed: XML_ResponseStatus

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.

Request URI Definition


Table A-909 GET /ISAPI/System/Video/inputs/channels/<ID>/motionDetection/layout
Method GET
Description Get rule region parameters of motion detection.
Query regionType: Detect by region or by grid, string, the available value is
"region" or "grid".
Request None
Response Succeeded: XML_MotionDetectionLayout
Failed: XML_ResponseStatus
Table A-910 PUT /ISAPI/System/Video/inputs/channels/<ID>/motionDetection/layout
Method PUT
Description Set rule region parameters of motion detection.

509
Intelligent Security API (General) Developer Guide

Query regionType: Detect by region or by grid, string, the available value is


"region" or "grid".
Request XML_MotionDetectionLayout
Response XML_ResponseStatus

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.

Request URI Definition


Table A-911 GET /ISAPI/System/Video/inputs/channels/<ID>/motionDetection/layout/
capabilities
Method GET
Description Get rule region configuration capability of motion detection.
Query None
Request None
Response Succeeded: XML_Cap_MotionDetectionLayout
Failed: XML_ResponseStatus

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.

Request URI Definition


Table A-912 GET /ISAPI/System/Video/inputs/channels/<ID>/motionDetection/layout/
gridLayout
Method GET
Description Get grid layout parameters of motion detection.

510
Intelligent Security API (General) Developer Guide

Query regionType: Detect by region or by grid, string, the available value is


"region" or "grid".
Request None
Response Succeeded: XML_MotionDetectionGridLayout
Failed: XML_ResponseStatus
Table A-913 PUT /ISAPI/System/Video/inputs/channels/<ID>/motionDetection/layout/
gridLayout
Method PUT
Description Set grid layout parameters of motion detection.
Query regionType: Detect by region or by grid, string, the available value is
"region" or "grid".
Request XML_MotionDetectionGridLayout
Response XML_ResponseStatus

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.

Request URI Definition


Table A-914 GET /ISAPI/System/Video/inputs/channels/<ID>/overlays
Method GET
Description Get OSD configuration parameters of a specific video input channel.
Query None.
Request None.
Response Succeeded: XML_VideoOverlay
Failed: XML_ResponseStatus
Table A-915 PUT /ISAPI/System/Video/inputs/channels/<ID>/overlays
Method PUT
Description Set OSD parameters of a specific video input channel.
Query None.

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

<?xml version="1.0" encoding="UTF-8"?>


<VideoOverlay version="2.0" xmlns="http://www.isapi.com/ver20/XMLSchema">
<normalizedScreenSize>
<normalizedScreenWidth>704</normalizedScreenWidth>
<normalizedScreenHeight>576</normalizedScreenHeight>
</normalizedScreenSize>
<attribute>
<transparent>false</transparent>
<flashing>false</flashing>
</attribute>
<fontSize>64*64</fontSize>
<TextOverlayList size="1">
<TextOverlay>
<id>1</id>
<enabled>true</enabled>
<positionX>0</positionX>
<positionY>576</positionY>
<displayText>222</displayText>
</TextOverlay>
</TextOverlayList>
<DateTimeOverlay>
<enabled>true</enabled>
<positionX>0</positionX>

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.

Request URI Definition


Table A-916 GET /ISAPI/System/Video/inputs/channels/<ID>/overlays/BatteryPowerOverlay
Method GET
Description Get the battery overlay parameters of a specific video input channel.
Query None.
Request None.
Response Succeeded: XML_BatteryPowerOverlay
Failed: XML_ResponseStatus
Table A-917 PUT /ISAPI/System/Video/inputs/channels/<ID>/overlays/BatteryPowerOverlay
Method PUT
Description Set the battery overlay parameters of a specific video input channel.
Query None.
Request XML_BatteryPowerOverlay
Response XML_ResponseStatus

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.

Request URI Definition


Table A-918 GET /ISAPI/System/Video/inputs/channels/<ID>/overlays/BatteryPowerOverlay/
capabilities
Method GET
Description Get the configuration capability of battery overlay of a specific video
input channel.
Query None.
Request None.
Response Succeeded: XML_Cap_BatteryPowerOverlay
Failed: XML_ResponseStatus

A.12.289 /ISAPI/System/Video/inputs/channels/<ID>/overlays/capabilities
Get the OSD capability of a specific video input channel.

Request URI Definition


Table A-919 GET /ISAPI/System/Video/inputs/channels/<ID>/overlays/capabilities
Method GET
Description Get the OSD capability of a specific video input channel.
Query None.
Request None.
Response Succeeded: XML_Cap_VideoOverlay
Failed: XML_ResponseStatus

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

Request URI Definition


Table A-920 GET /ISAPI/System/Video/inputs/channels/<ID>/overlays/channelNameOverlay
Method GET
Description Get the parameters of channel name overlay of a specific video input
channel.
Query None.
Request None.
Response Succeeded: XML_channelNameOverlay
Failed: XML_ResponseStatus
Table A-921 PUT /ISAPI/System/Video/inputs/channels/<ID>/overlays/channelNameOverlay
Method PUT
Description Set the parameters of channel name overlay of a specific video input
channel.
Query None.
Request XML_channelNameOverlay
Response XML_ResponseStatus

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.

Request URI Definition


Table A-922 GET /ISAPI/System/Video/inputs/channels/<ID>/overlays/dateTimeOverlay
Method GET
Description Get the parameters of date and time information overlay of a specific
video input channel.
Query None.
Request None.
Response Succeeded:

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.

Request URI Definition


Table A-924 GET /ISAPI/System/Video/inputs/channels/<ID>/overlays/dateTimeOverlay/
capabilities
Method GET
Description Get the capability of date and time information overlay of a specific
video input channel.
Query None.
Request None.
Response Succeeded: XML_Cap_DatetimeOverlay
Failed: XML_ResponseStatus

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

Request URI Definition


Table A-925 GET /ISAPI/System/Video/inputs/channels/<ID>/overlays/text
Method GET
Description Get the text overlay parameters of a specific video input channel.
Query None.
Request None.
Response Succeeded: XML_TextOverlayList
Failed: XML_ResponseStatus
Table A-926 PUT /ISAPI/System/Video/inputs/channels/<ID>/overlays/text
Method PUT
Description Set the text overlay parameters of a specific video input channel.
Query None.
Request XML_TextOverlayList
Response XML_ResponseStatus
Table A-927 POST /ISAPI/System/Video/inputs/channels/<ID>/overlays/text
Method POST
Description Add a text to overlay on the video for a specific video input channel.
Query None.
Request XML_TextOverlay
Response XML_ResponseStatus
Table A-928 DELETE /ISAPI/System/Video/inputs/channels/<ID>/overlays/text
Method DELETE
Description Delete the text overlay parameters of a specific video input channel.
Query None.
Request None.
Response XML_ResponseStatus

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.

Request URI Definition


Table A-929 GET /ISAPI/System/Video/inputs/channels/<ID>/overlays/text/<ID>
Method GET
Description Get the parameters of a specific piece of text overlay information of a
specific video input channel.
Query None.
Request None.
Response Succeeded: XML_TextOverlay
Failed: XML_ResponseStatus
Table A-930 PUT /ISAPI/System/Video/inputs/channels/<ID>/overlays/text/<ID>
Method PUT
Description Set the parameters of a specific piece of text overlay information of a
specific video input channel.
Query None.
Request XML_TextOverlay
Response XML_ResponseStatus
Table A-931 DELETE /ISAPI/System/Video/inputs/channels/<ID>/overlays/text/<ID>
Method DELETE
Description Delete the parameters of a specific piece of text overlay information
of a specific video input channel.
Query None.
Request None.
Response XML_ResponseStatus

A.12.295 /ISAPI/System/Video/inputs/channels/<ID>/privacyMask
Get or set privacy mask parameters.

518
Intelligent Security API (General) Developer Guide

Request URI Definition


Table A-932 GET /ISAPI/System/Video/inputs/channels/<ID>/privacyMask
Method GET
Description Get or set privacy mask parameters.
Query None.
Request None.
Response Succeeded: XML_PrivacyMask
Failed: XML_ResponseStatus

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.

Request URI Definition


Table A-933 GET /ISAPI/System/Video/inputs/channels/<ID>/privacyMask/privacyMaskCap
Method GET
Description Get configuration capability of privacy mask.
Query None.
Request None.
Response Succeeded: XML_PrivacyMaskCap
Failed: XML_ResponseStatus

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

Request URI Definition


Table A-934 GET /ISAPI/System/Video/inputs/channels/<ID>/privacyMask/regions
Method GET
Description Get parameters of privacy mask regions.
Query None.
Request None.
Response Succeeded: XML_PrivacyMaskRegionList
Failed: XML_ResponseStatus
Table A-935 PUT /ISAPI/System/Video/inputs/channels/<ID>/privacyMask/regions
Method PUT
Description Set parameters of privacy mask regions.
Query None.
Request XML_PrivacyMaskRegionList
Response XML_ResponseStatus
Table A-936 DELETE /ISAPI/System/Video/inputs/channels/<ID>/privacyMask/regions
Method DELETE
Description Delete parameters of privacy mask regions.
Query None.
Request None.
Response XML_ResponseStatus
Table A-937 POST /ISAPI/System/Video/inputs/channels/<ID>/privacyMask/regions
Method POST
Description Add a privacy mask region.
Query None.
Request XML_PrivacyMaskRegion
Response XML_ResponseStatus

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.

Request URI Definition


Table A-938 GET /ISAPI/System/Video/inputs/channels/<ID>/privacyMask/regions/<ID>
Method GET
Description Get parameters of a privacy mask region.
Query None.
Request None.
Response Succeeded: XML_PrivacyMaskRegion
Failed: XML_ResponseStatus
Table A-939 PUT /ISAPI/System/Video/inputs/channels/<ID>/privacyMask/regions/<ID>
Method PUT
Description Set parameters of a privacy mask region.
Query None.
Request XML_PrivacyMaskRegion
Response XML_ResponseStatus
Table A-940 DELETE /ISAPI/System/Video/inputs/channels/<ID>/privacyMask/regions/<ID>
Method DELETE
Description Delete parameters of a privacy mask region.
Query None.
Request None.
Response XML_ResponseStatus

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

Request URI Definition


Table A-941 GET /ISAPI/System/Video/inputs/channels/<ID>/VCAResource
Method GET
Description Get parameters of intelligent resources switch.
Query None.
Request None.
Response Succeeded: XML_VCAResource
Failed: XML_ResponseStatus
Table A-942 PUT /ISAPI/System/Video/inputs/channels/<ID>/VCAResource
Method PUT
Description Set parameters of intelligent resources switch.
Query None.
Request XML_VCAResource
Response XML_ResponseStatus

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

Request URI Definition


Table A-943 GET /ISAPI/System/Video/inputs/channels/<ID>/VCAResource/capabilities
Method GET
Description Get capability of intelligent resources switch.
Query None.
Request None.
Response Succeeded: XML_Cap_VCAResource
Failed: XML_ResponseStatus

A.12.301 /ISAPI/System/Video/inputs/channels/capabilities
Get the capability of configuring video input channels in a batch.

Request URI Definition


Table A-944 GET /ISAPI/System/Video/inputs/channels/capabilities
Method GET
Description Get the capability of configuring video input channels in a batch.
Query None.
Request None.
Response Succeeded: XML_VideoInputChannelsCap
Failed: XML_ResponseStatus

A.12.302 /ISAPI/System/Video/inputs/channels/counting/collection/capabilities?
format=json
Get the capability of people counting data replenishment.

Request URI Definition


Table A-945 GET /ISAPI/System/Video/inputs/channels/counting/collection/capabilities?
format=json
Method GET
Description Get the capability of people counting data replenishment.
Query format: determine the format of request or response message.

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.

Request URI Definition


Table A-946 POST /ISAPI/System/Video/inputs/channels/counting/collection?format=json
Method POST
Description Perform people counting replenishment.
Query format: determine the format of request or response message.
Request JSON_PeopleCounting_CollectionDescription
Response JSON_PeopleCounting_CollectionResult

A.12.304 /ISAPI/System/Video/inputs/channels/heatMap/collection/capabilities?
format=json
Get the capability of heat map data replenishment.

Request URI Definition


Table A-947 GET /ISAPI/System/Video/inputs/channels/heatMap/collection/capabilities?
format=json
Method GET
Description Get the capability of heat map data replenishment.
Query format: determine the format of request or response message.
Request None.
Response JSON_HeatMap_CollectionDescriptionCap

A.12.305 /ISAPI/System/Video/inputs/channels/heatMap/collection?format=json
Perform heat map data replenishment.

524
Intelligent Security API (General) Developer Guide

Request URI Definition


Table A-948 POST /ISAPI/System/Video/inputs/channels/heatMap/collection?format=json
Method POST
Description Perform heat map data replenishment.
Query format: determine the format of request or response message.
Request JSON_HeatMap_CollectionDescription
Response JSON_HeatMap_CollectionResult

A.12.306 /ISAPI/System/Video/inputs/OSDLanguage
Operations about OSD language configuration.

Request URI Definition


Table A-949 GET /ISAPI/System/Video/inputs/OSDLanguag
Method GET
Description Get OSD language parameters.
Query None.
Request None.
Response XML_Language
Table A-950 PUT /ISAPI/System/Video/inputs/OSDLanguag
Method PUT
Description Set OSD language parameters.
Query None.
Request XML_Language
Response XML_ResponseStatus

A.12.307 /ISAPI/System/Video/outputs
Get configuration parameters of video outputs.

525
Intelligent Security API (General) Developer Guide

Request URI Definition


Table A-951 GET /ISAPI/System/Video/outputs
Method GET
Description Get configuration parameters of all video outputs.
Query None.
Request None.
Response Succeeded: XML_VideoOutput
Failed: XML_ResponseStatus

A.12.308 /ISAPI/System/Video/outputs/channels
Get configuration parameters of multiple video outputs.

Request URI Definition


Table A-952 GET /ISAPI/System/Video/outputs/channels
Method GET
Description Get configuration parameters of multiple video outputs.
Query None.
Request None.
Response Succeeded: XML_VideoOutputChannelList
Failed: XML_ResponseStatus

A.12.309 /ISAPI/System/Video/outputs/channels/<ID>
Get or set parameters of a video output.

Request URI Definition


Table A-953 GET /ISAPI/System/Video/outputs/channels/<ID>
Method GET
Description Get parameters of a video output.
Query None.

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.

Request URI Definition


Table A-955 GET /ISAPI/System/Video/outputs/channels/<ID>/capabilities
Method GET
Description Get video output configuration capability.
Query None.
Request None.
Response Succeeded: XML_Cap_VideoOutputChannel
Failed: XML_ResponseStatus

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

Request URI Definition


Table A-956 GET /ISAPI/System/Video/outputs/PreviewSwitch/capabilities
Method GET
Description Get capability of auto-switch configuration during live view.
Query None.
Request None.
Response Succeeded: XML_Cap_PreviewSwitch
Failed: XML_ResponseStatus

A.12.312 /ISAPI/System/Video/outputs/PreviewSwitch/capabilities?
videoOutType=
Get capability of auto-switch configuration during live view by video output.

Request URI Definition


Table A-957 GET /ISAPI/System/Video/outputs/PreviewSwitch/capabilities?videoOutType=
Method GET
Description Get capability of auto-switch configuration during live view by video
output.
Query videoOutType: video output type, string type, it can be the following
values: CVBS, HDMI, VGA, AUXOutput1, AUXOutput2, AUXOutput3,
AUXOutput4, extendHDMI1, extendHDMI2, extendHDMI3,
extendHDMI4, noSameSourceVGA1, noSameSourceVGA2,
noSameSourceVGA3, noSameSourceVGA4, sameSourceVGA,
mainLCD, AUX-VGA, AUX-LCD, and zeroChannel. If there are more
than two outputs are homologous, you can combine these outputs
by "/", e.g., if HDM1 and VGA1 are homologous outputs, the value of
videoOutType equals to HDM1/VGA1.
Request None.
Response Succeeded: XML_PreviewSwitchVideoOutCap
Failed: XML_ResponseStatus

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

Request URI Definition


Table A-958 GET /ISAPI/System/Video/outputs/PreviewSwitch?groupID=&videoOutType=
Method GET
Description Get configuration parameters of auto-switch in live view.
Query groupNo: group No., integer type, which is used to group the
windows for configuration, and up to 64 windows can be added to a
group.
videoOutType: video output type, string type, it can be the following
values: CVBS, HDMI, VGA, AUXOutput1, AUXOutput2, AUXOutput3,
AUXOutput4, extendHDMI1, extendHDMI2, extendHDMI3,
extendHDMI4, noSameSourceVGA1, noSameSourceVGA2,
noSameSourceVGA3, noSameSourceVGA4, sameSourceVGA,
mainLCD, AUX-VGA, AUX-LCD, and zeroChannel. If there are more
than two outputs are homologous, you can combine these outputs
by "/", e.g., if HDM1 and VGA1 are homologous outputs, the value of
videoOutType equals to HDM1/VGA1.
Request None.
Response Succeeded: XML_PreviewSwitch
Failed: XML_ResponseStatus
Table A-959 PUT /ISAPI/System/Video/outputs/PreviewSwitch?groupID=&videoOutType=
Method PUT
Description Set parameters for auto-switch in live view.
Query groupNo: group No., integer type, which is used to group the
windows for configuration, and up to 64 windows can be added to a
group.
videoOutType: video output type, string type, it can be the following
values: CVBS, HDMI, VGA, AUXOutput1, AUXOutput2, AUXOutput3,
AUXOutput4, extendHDMI1, extendHDMI2, extendHDMI3,
extendHDMI4, noSameSourceVGA1, noSameSourceVGA2,
noSameSourceVGA3, noSameSourceVGA4, sameSourceVGA,
mainLCD, AUX-VGA, AUX-LCD, and zeroChannel. If there are more
than two outputs are homologous, you can combine these outputs
by "/", e.g., if HDM1 and VGA1 are homologous outputs, the value of
videoOutType equals to HDM1/VGA1.
Request XML_PreviewSwitch
Response XML_ResponseStatus

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.

Request URI Definition


Table A-960 GET /ISAPI/System/Video/outputs/PreviewSwitch?
groupID=&videoOutType=&previewFrameNo=
Method GET
Description Get configuration parameters of auto-switch in live view.
Query groupNo: group No., integer type, which is used to group the
windows for configuration, and up to 64 windows can be added to a
group.
videoOutType: video output type, string type, it can be the following
values: CVBS, HDMI, VGA, AUXOutput1, AUXOutput2, AUXOutput3,
AUXOutput4, extendHDMI1, extendHDMI2, extendHDMI3,
extendHDMI4, noSameSourceVGA1, noSameSourceVGA2,
noSameSourceVGA3, noSameSourceVGA4, sameSourceVGA,
mainLCD, AUX-VGA, AUX-LCD, and zeroChannel. If there are more
than two outputs are homologous, you can combine these outputs
by "/", e.g., if HDM1 and VGA1 are homologous outputs, the value of
videoOutType equals to HDM1/VGA1.
(Optional) previewFrameNo: number of live view windows, integer
string type, and it can be the following values: 1, 4, 6, 8, 9, 25, 32, 36,
auto1 (custom window division 1), auto2 (custom window division 2),
auto3 (custom window division 3), and auto4 (custom window
division 4).
Request None.
Response Succeeded: XML_PreviewSwitch
Failed: XML_ResponseStatus

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

Request URI Definition


Table A-961 GET /ISAPI/System/wiresharkToUSB/capabilities?format=json
Method GET
Description Get the configuration capability of exporting captured packets to USB
flash drive.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_Cap_WiresharkToUSB
Failed: JSON_ResponseStatus

A.12.316 /ISAPI/System/wiresharkToUSB/mode?format=json
Set parameters of exporting captured packets to USB flash drive.

Request URI Definition


Table A-962 PUT /ISAPI/System/wiresharkToUSB/mode?format=json
Method PUT
Description Set parameters of exporting captured packets to USB flash drive.
Query format: determine the format of request or response message.
Request JSON_WiresharkToUSB
Response JSON_ResponseStatus

A.12.317 /ISAPI/System/wiresharkToUSB/status?format=json
Get the status of exporting captured packets to USB flash drive.

Request URI Definition


Table A-963 GET /ISAPI/System/wiresharkToUSB/status?format=json
Method GET
Description Get the status of exporting captured packets to USB flash drive.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_WiresharkToUSBStatus

531
Intelligent Security API (General) Developer Guide

Failed: JSON_ResponseStatus

A.12.318 /ISAPI/System/workingstatus/hdStatus?format=json
Get HDD status.

Request URI Definition


Table A-964 GET /ISAPI/System/workingstatus/hdStatus?format=json
Method GET
Description Get all HDDs' status.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_HDStatus
Failed: JSON_ResponseStatus
Table A-965 POST /ISAPI/System/workingstatus/hdStatus?format=json
Method POST
Description Get a specified HDD's status.
Query format: determine the format of request or response message.
Request JSON_HDCond
Response Succeeded: JSON_HDStatus
Failed: JSON_ResponseStatus

A.12.319 /ISAPI/System/workingstatus/chanStatus?format=json
Get channel status.

Request URI Definition


Table A-966 GET /ISAPI/System/workingstatus/chanStatus?format=json
Method GET
Description Get all channels' status.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_ChanStatus

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.

Request URI Definition


Table A-968 GET /ISAPI/System/workingstatus/capabilities?format=json
Method GET
Description Get capability of getting all statuses of device.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_Cap_WorkingStatus
Failed: JSON_ResponseStatus

A.12.321 /ISAPI/System/workingstatus?format=json
Get device working status.

Request URI Definition


Table A-969 GET /ISAPI/System/workingstatus?format=json
Method GET
Description Get device working status.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_WorkingStatus

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.

Request URI Definition


Table A-970 GET /ISAPI/System/workingstatus/IOStatus?format=json
Method GET
Description Get device IO status.
Query format: determine the format of request or response message.
Request None.
Response Succeeded: JSON_IOStatus
Failed: JSON_ResponseStatus

A.12.323 /ISAPI/System/zeroBiasCalibration/channels/<ID>?format=json
Calibrate the accelerometer bias.

Request URI Definition


Table A-971 PUT /ISAPI/System/zeroBiasCalibration/channels/<ID>?format=json
Method PUT
Description Calibrate the accelerometer bias.
Query format: determine the format of request or response message.
Request None.
Response JSON_ResponseStatus

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.

Request URI Definition


Table A-972 GET /ISAPI/Thermal/capabilities
Method GET
Description Get the thermal capability.
Query None.
Request None.
Response XML_ThermalCap

A.13.2 /ISAPI/Thermal/temperature/collection/capabilities?format=json
Get the capability of temperature data replenishment.

Request URI Definition


Table A-973 GET /ISAPI/Thermal/temperature/collection/capabilities?format=json
Method GET
Description Get the capability of temperature data replenishment.
Query format: determine the format of request or response message.
Request None.
Response JSON_Temperature_CollectionDescriptionCap

A.13.3 /ISAPI/Thermal/temperature/collection?format=json
Perform the temperature data replenishment.

535
Intelligent Security API (General) Developer Guide

Request URI Definition


Table A-974 GET /ISAPI/Thermal/temperature/collection?format=json
Method POST
Description Perform the temperature data replenishment.
Query format: determine the format of request or response message.
Request JSON_CollectionDescription
Response JSON_CollectionResult

536
Intelligent Security API (General) Developer Guide

Appendix B. Appendixes

B.1 Request and Response Messages

B.1.1 JSON Messages

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

node, the custom sound (customAudio) will not be returned,either*/


"alarmType": "",
/*optional, string, alarm type: "behavior"-behavior analysis, "thermometry"-thermometry, "dynamicFire"-fire
detection, "smokingMode"-smoke detection, "noMaskDetection"-no wearing mask detection*/
}
}

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

/*optional, optional server certificate types*/


"@opt":["name2"]
},
"CACertificate":{
/*optional, optional CA certificate types*/
"@opt":["name3"]
},
"SRTPSecurityAlgorithm":{
/*optional, string, optional encryption algorithms*/
"@opt":["AES128", "AES256"]
}
}
}

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

/*optional, boolean, whether it supports data resynchronization: "true"-yes, "false"-no*/


"isSupportCertificateImport":true,
/*optional, boolean, whether it supports importing software license certificate: "true"-yes, "false"-no*/
"isSupportFingerprint":true,
/*optional, boolean, whether it supports exporting hardware fingerprint: "true"-yes, "false"-no*/
"isSupportAuthorization":true,
/*optional, boolean, whether it supports authorization configuration of the algorithm center: "true"-yes, "false"-no*/
"isSupportLicensingDongle":true,
/*optional, boolean, whether it supports dongle: "true"-yes, "false"-no*/
"isSupportAlgorithmUpdate":true,
/*optional, boolean, whether it supports updating algorithm: "true"-yes, "false"-no*/
"isSupportModellingMode":true,
/*optional, boolean, whether it supports modeling mode configuration*/
"isSupportListLoading":true,
/*optional, boolean, whether it supports list library loading configuration*/
"isSupportTasksStatistics": true,
/*optional, boolean, whether it supports analysis task statistics*/
"isSupportTargetsStatistics": true,
/*optional, boolean, whether it supports analysis target statistics*/
"isSupportAuthAddress":true,
/*optional, boolean, whether it supports authorizing address*/
"isSupportCertificateStatus": true,
/*optional, boolean, whether it supports getting status of software authorization certificate*/
"certificateImportProductID": 555,
/*optional, int, product ID of software authorization, corresponding URI: /ISAPI/SDT/Management/certificateImport/
<productID>?format=json and /ISAPI/SDT/Management/fingerprint/<productID>?format=json*/
"algorithmAuthProductID": 556,
/*optional, int, product ID of algorithm authorization*/
"isSupportAnalysisResult":true,
/*optional, boolean, whether it supports searching for and counting the number of behavior analysis events: "true"-
yes, "false"-no*/
"isShowCenterComputing":true,
/*optional, boolean, whether to display the configuration interface of algorithm resources: "true"-yes, "false"-no. The
configuration interface of algorithm resources will be displayed only when this field is "true" in the single smart
mode*/
"isSupportVehicleRegion": true,
/*optional, boolean, whether it supports vehicle region configuration*/
"isSupportStorageParam":true,
/*optional, boolean, whether it supports storage parameters configuration*/
"isSupportFingerprintByName": true,
/*optional, boolean, whether it supports exporting hardware fingerprint*/
"isSupportAnalysisResultPerimeter": true,
/*optional, boolean, whether it supports perimeter protection (including line crossing detection, intrusion detection,
region entrance detection, and region exiting detection); if this node is not returned, it indicates that the events are
not classified as perimeter protection and behavior analysis*/
"isSupportGuardTask":true,
/*optional, boolean, whether it supports camera arming tasks. This node is read-only*/
"isSupportTrajectory": ,
/*optional, boolean, whether it supports person pattern function, related URI: /ISAPI/SDT/Management/trajectory/
capabilities?format=json*/
"isSupportMap": ,
/*optional, boolean, whether it supports e-map function, related URI: /ISAPI/SDT/Management/map/capabilities?

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

when addressingFormatType is "ipaddress"*/


"@min":0,
"@max":128,
"#text":""
},
"portNo":{
/*required, integer type, port No. of the picture storage server, which is between 1024 and 65535*/
"@min":1024,
"@max":65535,
"#text":
},
"underlyingProtocol":{
/*optional, string, bottom-level protocol of the picture storage server: "HTTP", "HTTPS". This field is valid when
pictureServerType contains "cloudStorage"*/
"@opt":["http","https"]
},
"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*/
"@min":1024,
"@max":65535,
"#text":
},
"cloudTransDataPort":{
/*required, integer type, data transmission port No. of the cloud storage server, which is between 1024 and 65535*/
"@min":1024,
"@max":65535,
"#text":
},
"cloudCmdPort":{
/*required, integer type, signaling port No. of the cloud storage server, which is between 1024 and 65535*/
"@min":1024,
"@max":65535,
"#text":
},
"cloudHeartBeatPort":{
/*required, integer type, heartbeat port No. of the cloud storage server, which is between 1024 and 65535*/
"@min":1024,
"@max":65535,
"#text":
},
"cloudStorageHttpPort":{
/*required, integer type, HTTP port No. of the cloud storage server, which is between 1024 and 65535*/
"@min":1024,
"@max":65535,
"#text":
},
"cloudUsername":{
/*required, string type, user name of the cloud storage server, the string length is between 0 and 32*/
"@min":0,

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

/*optional, supported IP address type, string type*/


"@opt": "ipV4,ipV6",
"#text": "ipV4"
}
}
}

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

/*optional, boolean type, whether to enable uploading report*/


"ChanAlarmMode":{
/*alarm channel of the center group*/
"maxSize":1,
"id":{
/*optional, integer type, channel ID: 1-main channel, 2-backup channel 1, 3-backup channel 2, 4-backup channel 3*/
"@min":1,
"@max":2
},
"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*/
"@opt":"T1,T2,N1,N2,G1,G2,N3,N4"
}
}
}
}

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

disconnected (for network HDD), 6-formatting*/


},
"volume": "",
/*required, integer type, HDD capacity, unit: MB*/
"linkNum": "",
/*integer type, *number of connections*/
"freeSpace": "1"
/*required, integer type, free space, unit: MD*/
}
}
}

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

"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,
"@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",

566
Intelligent Security API (General) Developer Guide

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 Hik-Connect in specified format. If there is no value returned in this node,
the custom sound (customAudio) will not be returned,either*/
"@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*/
"HolidayBlockCap":{
/*optional, holiday list capability*/
"beginTime":{
/*required, string, start time in ISO 8601 format*/
"@min":"00:00",
"@max":"24:00"
},
"endTime":{
/*required, string, end time in ISO 8601 format*/
"@min":"00:00",
"@max":"24:00"
}

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

/*encoding format of custom audio file*/


"channelID":1,
/*required, channel ID*/
"audioType":["OPUS", "G726"],
/*required, string,audio encoding format type: OPUS, G726; now supports analog channels only*/
"bitRate":64,
/*required, int,bit rate, unit: kbps*/
"samplingRate":48,
/*optional, int,sampling rate, unit: k*/
"samplingBits":10,
/*optional, int,sampling bits, unit: bits*/
"AudioChannelNum":1,
/*optional, int,the number of audio channels*/
"AudioFileMaxCapacity":10
/*optional, int,the maximum size of audio file, unit: MB*/
}
}]
}

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

/*optional, int, estimated remaining time, unit: s*/


"progress": 0,
/*required, int, progress, ranges from 0 to 100*/
}
}

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

Content-Type: multipart/form-data; boundary=MIME_boundary


--MIME_boundary
Content-Type: application/json
Content-Length:

{
"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

/*required, alarm/event type, 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, "overvoltage"-high supply voltage,
"undervoltage"-low supply voltage*/
"voltageValue": ""
/*optional, supply voltage value, float type, unit: V, corrects to one decimal place*/
}

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

/*required, float, x-coordinate, accurate to 6 decimal places*/


"@min":0.000000,
"@max":1.000000,
"@text":1.000000
},
"y":{
/*required, float, y-coordinate, accurate to 6 decimal places*/
"@min":0.000000,
"@max":1.000000,
"@text":1.000000
},
"showEnabled": "true,false",
/*optional, boolean, whether to enable calibration stream overlay, if it is set to "true", calibration identification will be
displayed on the live view screen*/
"calibratated":"true,false",
/*optional, boolean, calibration status*/
"isSupportCalibrationStatus":true
/*optional, boolean, whether it supports getting all the calibration status (related URI: /ISAPI/System/
GPSCalibratation/channels/<ID>/points/status?format=json)*/
}
}

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

/*required, GPS calibration status*/


"status": ""
/*required, string, GPS calibration status, calib-calibrated already,noCalib-Not been calibrated yet*/
}
}

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

"@opt": ["masterSlaveTracking", "mixedTargetDetection", "eagleFocusing"]


/*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)*/
},
"guideStatus": {
/*required, string, instruction status, whether the instruction configuration has completed*/
"@opt": ["finished", "unfinished"]
}
},
"MasterSlaveTrackingCap": {
/*optional, dep:StepFunction, linkage calibration capability*/
"enabled": {
/*required, boolean, whether to enable, the default value is "true"*/
"@opt": "true,false",
"@def": "true"
},
"CalibratingMode": {
/*required, string, calibration mode*/
"@opt": "auto",
"@def": "auto"
}
},
"MixedTargetDetectionCap": {
/*optional, dep:StepFunction, capability of multi-target type detection*/
"enabled": {
/*required, boolean, whether to enable, the default value is "true"*/
"@opt": "true,false",
"@def": "true"
},
"RuleInfoCap": {
/*required, rule information*/
"maxSize": 1,
/*required, integer, number of supported rules*/
"ruleID": {
/*required, integer, rule ID*/
"@min": 1,
"@max": 1
},
"RegionCap": {
/*required, rule region capability*/
"minSize": 3,
/*required, integer, the minimum region edges*/
"maxSize": 10,
/*required, integer, the maximum region edges*/
"x": {
/*required, float, X-coordinate, range: from 0.000 to 1*/
"@min": 0.000,
"@max": 1.000,
"#text": 0.120
},

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

Import Audio File in URL format


{
"CustomAudioInfo": {
/*required, related information about custom alarm audio file*/
"customAudioName": ""
/*required, string, custom alarm audio file name, the maximum size is 24 bytes*/
"channels":[1,2],
/*optional, integer, ID of the channel, which the audio file should be sent to; the voice coding format of each channel
should be the same; if this node is empty or not configured, the audio file will be sent to all channels*/
"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)*/
}
}

Import Audio File in Binary Format


Content-Type: multipart/form-data; boundary=---------------------------7e13971310878
-----------------------------7e13971310878
Content-Disposition: form-data; name="CustomAudioInfo";
Content-Type: text/json

{
"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

Opaque Data, binary audio file


-----------------------------7e13971310878--

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

/*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*/
"isSupportLicense":true,
/*required, boolean type, whether it supports license plate number*/
"plateType":"unknown,92TypeCivil,arm,upDownMilitay,92TypeArm,leftRightMilitay,
02TypePersonalized,yellowTwoLine,
04NewMilitay,embassy,oneLineArm,twoLineArm,yellow1225FarmVehicle,green1325FarmVehicle,yellow1325FarmVehi
cle,motorola,coach,tempTravl,trailer,consulate,hongKongMacao,tempEntry,civilAviation,newEnergy",
/*optional, string, 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"-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. Multiple types should be separated
by commas*/

"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

/*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, "white,black"*/
"trousersColor":"",
/*optional, string, trousers color, "white,black"*/
"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*/
"hID":"",
/*required, string, person ID, the maximum length is 32 bytes*/
"name":"",
/*required, string, name of the person, the maximum length is 32 bytes*/
"linkFaceBodyId":""
/*optioal, linkage ID between human face and body, the maximum length is 64 bytes*/
},
"vehicleInfo ":{
/*this node is valid when targetType is "vehicle"*/
"license":"",
/*optional, string, license plate number*/
"plateCategory": "",
/*optional, additional information of license plate*/
"plateType":"",
/*optional, string, 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"-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. If this node is not returned, it
indicates no limit*/
"vehicleColor":"",
/*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. If this node is not returned, it indicates no limit*/
"vehicleType":"",
/*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, "unknown". If this node is not returned, it indicates no limit*/

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

/*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*/
"cyclingPersonNumber": ""
/*optional, string, whether to display number of people cycling*/
},
"taskIDs":["",""],
/*optional, string, task ID group which can contain multiple task IDs*/
"minTaskCreateTime": "2004-05-03T17:30:08+08:00",
/*optional, string, the creation time of the task with the minimum task ID in the taskIDs. The time is in ISO 8601 time
format*/
"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*/
/*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*/
}

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

/*optional, integer32 type, VCA search progress*/


"targetInfo":[{
/*this node is valid when progress is 100*/
"captureTime":"",
/*required, string type, capture time in ISO8601 time format*/
"isSummerTime": ,
/*optional, boolean, whether the time returned currently is in DST system*/
"channelID":"",
/*optional, string type, camera No.*/
"channelName":"",
/*optioanl, string type, camera name*/
"streamType":"",
/*optional, string type, streaming type: "realtime,historyvideo,localvideo"*/
"targetRect":{
/*required, target frame*/
"height": ,
"width": ,
"x": ,
"y":
},
"picUrl":"",
/*optional, string type, large picture URL*/
"subPicUrl": "",
/*optional, string, thumbnail URL*/
"targetType ":"",
/*optional, string type, search object type*/
"targetSize": "",
/*optional, string, target size*/
"direction": "",
/*optional, string, target direction*/
"speed": "",
/*optional, string, target speed*/
"modelKey": "",
/*optional, string, mark of human body which is used to raise up the efficiency of searching for human body by
picture*/
"AbsoluteHigh": {
/* optional, PTZ position*/
"elevation": ,
/* optional, int, tilting parameter, the value is between -900 and 2700*/
"azimuth": ,
/* optional, int, panning parameter, the value is between 0 and 3600*/
"absoluteZoom":
/* optional, int, zooming parameter, the value is between 1 and 1000*/
},
"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*/

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

/*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": "",
/*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*/
},
"hunmanID": "",
/*optional, string, face picture library ID*/
"humanURL": "",
/*optional, string, face picture URL*/
"name": "",

624
Intelligent Security API (General) Developer Guide

/*optional, string, name of the student*/


"ClassRegions": [{
/*optional, coordinates of the people in the classroom*/
"x": ,
"y":
}],
"taskID": ""
/*optional, string, task ID*/
}]
}

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

/*required, begin time, corrects to second, string*/


"endTime": "02:00:00"
/*required, end time, corrects to second, string*/
}
}
}
}
}

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

/*optional, capability of removing duplicates of captured face pictures*/


"enabled":{
/*optional, whether to enable removing duplicates of captured face pictures*/
"@opt": [true, false],
"@def":false
},
"threshold":{
/*optional, int, threshold of removing duplicates, when the picture similarity is larger than the value, the picture is
duplicated*/
"@min":70,
"@max":100,
"@def":88
},
"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*/
"@min":20,
"@max":60,
"@def":20
},
"updateTime":{
/*optional, int, face modal data updating time interval (the time interval between the modal data being added into
the library and being deleted)*/
"@min":0,
"@max":300,
"@def":30
}
}
}
}

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

/*required, string, sub status code*/


"errorCode": ,
/*optional, int, error code, which corresponds to the subStatusCode; this node is required when the value of
statusCode is not 1*/
"errorMsg": "",
/*optional, string, error description, which corresponds to errorCode*/
"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*/
"responseStatusStrg": "",
/*required, string, search status: "OK"-search completed, "FAILED"-search failed, "MORE"-more data waiting to be
searched, "PARM ERROR"-incorrect parameters, "INVALID TIME"-invalid time, "TIMEOUT"-timeout, "NO MATCHES"-no
matched data, the maximum length is 32 bytes*/
"numOfMatches": ,
/*required, integer32, number of matched data records*/
"matchList": [{
/*optional, array, list of matched data records*/
"searchMatchItem": {
/*optional, single matched record*/
"logDescriptor": {
/*required, log description*/
"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*/
"startTime": "",
/*required, string, log time, ISO8601 time format, the maximum length is 32 bytes*/
"localId": "",
/*optional, string, local channel, different logs are corresponding to different local channel types, the maximum length
is 32 bytes*/
"paraType": "",
/*optional, string, function modules that generate the logs: "videoout, image, encode, network, alarm, exception,
decoder, rs232, preview, security, datatime, frametype"; the maximum length is 32 bytes*/
"userName": "",
/*optional, string, user name that performs current search task, the maximum length is 32 bytes*/
"ipAddress": "",
/*optional, string, device IP address, the maximum length is 32 bytes*/
"logInfo": ""
/*optional, string, log information, the maximum length is 32 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*/
"remarks":""
/*optional, operation remarks*/
}
}
}]
}

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

/*optional, IPv6 address, string type, the max. length is 128*/


}
}
}

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

/*optional, string, file name of video, audio, or picture*/


"recorderCode":"",
/*optional, string, ID of device that collects data, which should be encrypted*/
"policeCode":""
/*optional, string, ID of police that collects data, which should be encrypted*/
}]
}

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

/*required, string type, encryption key*/


}

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

"unattendedBaggage"-unattended baggage, "regionExiting"-region exiting, "regionEntrance"-region entrance,


"lineDetection"-line crossing*/
"@opt":["fieldDetection", "attendedBaggage", "unattendedBaggage", "regionExiting", "regionEntrance",
"lineDetection"]
}
}
}

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

/*required, float, themometry rule*/


"currTemperature": ,
/*required, float, current temperature*/
"ruleCalibType": "",
/*required, string, rule calibration type: point,line,region*/
"ruleType": "",
/*required, string, rule: "highest temp is higher than"-the maximum temperature is higher than, "lowest temp is
higher than"-the minimum temperature is higher than, "average temp is higher than"-the average temperature is
higher than, "temp diff is higher than"-temperature difference is higher than, "highest temp is lower than"-the
maximum temperature is lower than, "lowest temp is lower than"-the minimum temperature is lower than, "average
temp is lower than"-the average temperature is lower than, "temp diff is lower than"-temperature difference is lower
than*/
"MaximumTemperaturePoint":{
/*optional, the maximum temperature point*/
"x": "",
/*required, float, X-coordinate, ranges from 0.000 to 1*/
"y": ""
/*required, float, Y-coordinate, ranges from 0.000 to 1*/
},
"AbsoluteHigh":{
/*optional, absolute height*/
"elevation": "",
/*required, float,elevation*/
"azimuth": "",
/*required, float,azimuth*/
"absoluteZoom": ""
/*required, float,absolute zoom*/
},
"ruleID": "",
/*required, integer,rule ID*/
"presetNo": "",
/*required, integer,preset ID*/
"visibleLightURL": "",
/*optional, string,visible light picture URL*/
"thermalURL": "",
/*optional, string,thermal picture URL*/
"thermalInfoURL": "",
/*optional, string,thermal additional information URL*/
}]
}
}

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

/*optional, alarm output 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"
}
},
"whiteLightMode":{
/*optional, string, supplement light mode: "keepOn"-always on, "flashing"-flashing*/
"@opt":"keepOn,flashing",
"@def":"keepOn"
}
}
}

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*/
}
}
}

B.1.2 XML Messages

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

<protocol><!--required, xs:string, protocol name:


"HTTP,HTTPS,RTSP,DEV_MANAGE,IOT,WebSocket,WebSocketS,SDK_OVER_TLS,TLS1_1Enable,TLS1_2Enable,SRTP,MATRI
X_GATEWAY,Bonjour"--></protocol>
<portNo><!--required, xs:integer--></portNo>
<redirectToHttps>
<!--opt, xs: boolean, whether to automatically go to HTTPS when connecting to HTTP port and HTTPS is enabled-->
</redirectToHttps>
<streamOverTls>
<!--opt, xs: boolean, whether to enable TLS link encryption when the streaming mode is SDK_OVER_TLS, true-yes,
false-no-->
</streamOverTls>
<TLS1_1Enable><!--dep, xs:boolean--></TLS1_1Enable>
<TLS1_2Enable><!--dep, xs:boolean--></TLS1_2Enable>
</AdminAccessProtocol>

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

"streetBehavior"-street behavior, "workBehavior"-work behavior, "cityManagement"-city management,


"fireEscapeDetection"-fire engine access detection, "takingElevatorDetection"-elevator detection-->
<name>
</AlgorithmsVersionInfo>
</AlgorithmsVersionInfoList>
</AlgorithmsVersion>

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

<lastBlock><!--opt, xs: integer--></lastBlock>


<currentBlock><!--opt, xs: integer--></currentBlock>
<BadSectorsList><!--opt-->
<BadSectors><!--list-->
<id><!--req, xs: integer--></id>
<block><!--opt, xs: integer--></block>
</BadSectors>
</BadSectorsList>
</BlockAreaTestStatus>
</BadSectorsTestStatus>

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

<!--dep, xs:integer, bitmask for 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>
</IPAddress>
</Bond>

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

<type> contains "FPAlgorithmProgram"-->


</FPAlgorithmProgramNo>
<keypadAddress opt="1,3,5">
<!--optional, range of keypad module address, this node is valid when <type> contains "keypad"-->
</keypadAddress>
<wirelessRecvAddress opt="1,3,5">
<!--optional, range of wireless receiving module address, this node is valid when <type> contains "wirelessRecv"-->
</wirelessRecvAddress>
<wiredZoneAddress opt="1,3,5">
<!--optional, range of wired zone module address, this node is valid when <type> contains "wiredZone"-->
</wiredZoneAddress>
</AcsUpdate>

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 version="1.0" encoding="utf-8"?>


<Color version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<brightnessLevel min="" max=""><!--opt,xs:integer, brightness--></brightnessLevel>
<contrastLevel min="" max=""><!--opt,xs:integer, contrast--></contrastLevel>
<saturationLevel min="" max=""><!--opt,xs:integer, saturation--></saturationLevel>
<hueLevel min="" max=""><!--opt, xs:integer, hue--></hueLevel>
<grayScale><!--opt, gray scale-->
<grayScaleMode><!--opt,xs:string, gray scale mode: "indoor,outdoor"--></grayScaleMode>
</grayScale>
<nightMode opt="true,false">
<!--opt, xs:boolean, enable night mode, when its value is "true", the saturation can be adjusted, otherwise, the
saturation cannot be adjusted-->
</nightMode>
</Color>

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

<DDNS version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">


<id>
<!--req, xs: string-->
</id>
<enabled>
<!--req, xs:boolean, "true,false"-->
</enabled>
<ethernetIfId opt="1,2,3…">
<!--opt, xs:string, ID-->
</ethernetIfId>
<provider opt="IPServer,DynDNS,PeanutHall,NO-IP, HiDDNS">
<!--req, xs:string-->
</provider>
<serverAddress>
<addressingFormatType opt="ipaddress,hostname">
<!--req, xs:string-->
</addressingFormatType>
<hostname min="0" max="260">
<!--dep, xs:string-->
</hostName>
<ipAddress min="0" max="64">
<!--dep, xs:string-->
</ipAddress>
<ipv6Address min="0" max="64">
<!--dep, xs:string-->
</ipv6Address>
</serverAddress>
<portNo min="0" max="65535">
<!--opt, xs:integer-->
</portNo>
<deviceDomainName min="0" max="64">
<!--dep, xs:string-->
</deviceDomainName>
<username min="0" max="32">
<!--dep, xs:string-->
</userName>
<password min="0" max="16">
<!--wo, dep, xs:string-->
</password>
</DDNS>

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

<!--optional, platform configuration-->


<type opt="none, 9533, 8618, ISAPI"><!--required, xs:string, platform type--></type>
<ip><!--optional, xs:string, IP address --></ip>
<port><!--optional, xs:integer, communication port--></port>
<userName><!--required, xs:string, user name, which is used for the dock station to log in to platform--></
userName>
<password><!--required, xs:string, password, which is used for the dock station to log in to platform, it should be
encrypted--></password>
</Platform>
<centralStorageBackupEnabled opt="true, false"><!--optional, xs:boolean, whether to enable central storage
backup--></centralStorageBackupEnabled>
</DockStation>
<languageType
opt="chinese,english,spanish,portuguese,italian,french,russian,german,polish,turkish,greek,czech,brazilianPortuguese,
slovenian,swedish,norwegian"/><!--optional, xs:string-->
<deviceID min="0" max="128"><!--read-only, required, xs:string, uuid--></deviceID>
<deviceDescription min="0" max="16"><!--optional, xs:string--></deviceDescription>
<deviceLocation opt="STD-CGI, hangzhou"><!--optional, xs:string--></deviceLocation>
<systemContact opt="STD-CGI, Hikvision.China"><!--optional, required, xs:string--></systemContact>
<model min="0" max="64"><!--read-only, required, xs:string--></model>
<serialNumber min="0" max="48"><!--read-only, required, xs:string--></serialNumber>
<macAddress min="0" max="64"><!--read-only, required, xs:string--></macAddress>
<firmwareVersion min="0" max="64"><!--read-only, required, xs:string--></firmwareVersion>
<firmwareReleasedDate min="0" max="64"><!--read-only, optional, xs:string--></firmwareReleasedDate>
<bootVersion min="0" max="16"><!--read-only, optional, xs:string--></bootVersion>
<bootReleasedDate min="0" max="16"><!--read-only, optional, xs:string--></bootReleasedDate>
<hardwareVersion min="0" max="16"><!--read-only, optional, xs:string--></hardwareVersion>
<encoderVersion min="0" max="64"><!--read-only, optional, xs:string--></encoderVersion>
<encoderReleasedDate min="0" max="64"><!--read-only, optional, xs:stirng--></encoderReleasedDate>
<decoderVersion min="0" max="64"><!--read-only, optional, xs:string--></decoderVersion>
<decoderReleasedDate min="0" max="64"><!--read-only, optional, xs:stirng--></decoderReleasedDate>
<deviceType opt="IPCamera, IPDome, DVR, HybirdNVR, NVR, DVS, IPZoom"><!--read-only, required, xs:string--></
deviceType>
<telecontrolID min="1" max="255"><!--optional, xs:integer, "1-255"--></telecontrolID>
<supportBeep><!--optional, xs:boolean: "true,false"--></supportBeep>
<firmwareVersionInfo><!--read-only, optional, xs:stirng--></firmwareVersionInfo>
<subChannelEnabled><!--optional, xs:boolean: "true,false"--></subChannelEnabled>
<thrChannelEnabled><!--optional, xs:boolean: "true,false"--></thrChannelEnabled>
<actualFloorNum><!--required, xs:integer, "1-128"--></actualFloorNum>
<radarVersion><!--optional, xs:string, radar version--></radarVersion>
<powerOnMode opt="button,adapter" def="button"><!--optional, xs:string, device startup mode: "button"-press
button to power on (default), "adapter"-connect adapter to power on--></powerOnMode>
<webVersion><!--optional, read-only, xs:string, web version No., it is the current value by default--></webVersion>
<deviceRFProgramVersion><!--optional, read-only, xs:string, version No. of the device's RF (Radio Frequency)
program, it is the current value by default--></deviceRFProgramVersion>
<securityModuleSerialNo><!--optional, read-only, xs:string, serial No. of the security module, it is the current value
by default--></securityModuleSerialNo>
<securityModuleVersion><!--optional, read-only, xs:string, version No. of the security module, it is the current value
by default--></securityModuleVersion>
<securityChipVersion><!--optional, read-only, xs:string, version No. of the security chip, it is the current value by
default--></securityChipVersion>
<securityModuleKeyVersion><!--optional, read-only, xs:string, version No. of the security module key, it is the current

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

auto (automatic), armingLocation (arming location)--></motorMovementType>


</FocusConfiguration>

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

used by traffic cameras-->


</ftpPicNameRuleType>
<FTPPicNameRule>
<!--dep, picture name rule of a specific FTP-->
<ItemList/><!--req, see details in the message of XML_Cap_ItemList-->
<delimiter>
<!--req, xs:string, delimiter, which is a single character and the default value is "_"-->
</delimiter>
<customStr min="1" max="128">
<!--req, xs:string, custom string-->
</customStr>
</FTPPicNameRule>
<upDataType opt="0,1,2">
<!-- 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 min="1" max="128">
<!--req, xs:string, place, the maximum string length is 128 bytes-->
</site>
<roadNum min="1" max="32">
<!--req, xs:string, intersection No., the maximum string length is 32 bytes-->
</roadNum>
<instrumentNum min="1" max="32">
<!--req, xs:string, device No., the maximum string length is 32 bytes-->
</instrumentNum>
<direction min="1" max="32">
<!--req, xs:string, direction No., the maximum string length is 32 bytes-->
</direction>
<directionDesc min="1" max="32">
<!--req, xs:string, direction description, the maximum string length is 32 bytes-->
</directionDesc>
<monitoringInfo1 min="1" max="44">
<!--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, whether it supports ANR (automatic network replenishment)-->
<enabled opt="true,false"><!--opt, xs:boolean, whether to enable ANR (automatic network replenishment)--></
enabled>
<supportEventType opt="personQueueCounting"/><!--opt, xs:string, event types supporting FTP ANR:
"personQueueCounting"-person queue counting detection, "personQueueTime"-person queue time detection,
"personQueueRealTimeData"-upload real-time data of person queue counting detection, "faceCapture"-face capture
and recognition, "fieldDetection"-intrusion, "attendedBaggage"-object removal, "unattendedBaggage"-unattended
baggage, "regionExiting"-region exiting, "regionEntrance"-region entrance, "lineDetection"-line crossing detection-->
</BrokenNetHttp>
</FTPNotification>

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

<enabled><!--req, xs:boolean --></enabled>


</Defog>
<SupplementLight><!--opt-->
<enabled><!--req, xs:boolean --></enabled>
<isSupportFireLaserLight opt="true,false"><!--opt,xs:boolen--></isSupportFireLaserLight>
<isSupportSupplementLightWord opt="true,false"><!--opt,xs:boolen--></isSupportSupplementLightWord>
<captureWithSupplimentLightEnabled opt="true,false">
<!--opt, xs:boolean, 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 opt="laserLight, deicing">
<!--req, mutual exclusion ability, the laser light and deicing (including manual deicing and automatic deicing) are
mutual exclusive-->
</mutexAbility>
<HighTemperatureProtection><!--opt-->
<enabled><!--req, xs:boolean --></enabled>
<temperatureType opt="90,100,110" def="90"><!--dep, xs:string,unit:℃ --></temperatureType>
</HighTemperatureProtection>
</HardwareService>

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

<IEEE802_1x version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">


<enabled><!--req, xs: boolean--></enabled>
<authenticationProtocolType opt="EAP-TLS,EAP-TTLS,EAP-PEAP,EAP-LEAP,EAP-FAST,EAP-MD5">
<!--req, xs: string-->
</authenticationProtocolType>
<innerTTLSAuthenticationMethod opt="MS-CHAP,MS-CHAPv2,PAP,EAP-MD5">
<!--dep, xs: string, this node is required when <authenticationProtocolType> is "EAP-TLS"-->
</innerTTLSAuthenticationMethod>
<innerEAPProtocolType opt= "EAP-POTP,MS-CHAPv2">
<!--dep, xs: string, 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>

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

<minTemperature><!--dep <mode> is colorateHotAreae/colorateIntervalArea,xs:float--></minTemperature>


<maxTemperature><!--dep <mode> is colorateColdArea/colorateIntervalArea,xs:float--></maxTemperature>
</TemperatureLimit>
<Color><!--req,"area color"-->
<R><!--req,xs:integer--></R>
<G><!--req,xs:integer--></G>
<B><!--req,xs:integer--></B>
</Color>
</ColorateTargetMode>
</ColorateTargetModeList>
</ColorateTarget>
<supportColorateTargetMode opt="WhiteHot,BlackHot"><!--opt,xs:string, palette modes that support target
coloration--></supportColorateTargetMode>
</Palettes>
<ExposureSync opt="true,false" def="false">
<enabled><!--req, xs:boolean--></enabled>
</ExposureSync>
<BrightnessSuddenChangeSuppressionCap/><!--opt-->
<isSupportIcr><!--opt, boolean--></isSupportIcr>
<isSupportMultishut><!--opt, boolean--></isSupportMultishut>
<isSupportPlateBright><!--opt, boolean--></isSupportPlateBright>
<isSupportJPEGParam><!--opt, boolean--></isSupportJPEGParam>
<isSupportDarkEnhance><!--opt, boolean--></isSupportDarkEnhance>
<isSupportHdr><!--opt, boolean--></isSupportHdr>
<isSupportLse><!--opt, boolean--></isSupportLse>
<isSupportMce><!--opt, boolean--></isSupportMce>
<isSupportScve><!--opt, boolean--></isSupportScve>
<isSupportSectionCtrl><!--opt, boolean--></isSupportSectionCtrl>
<isSupportAutoContrast><!--opt, boolean--></isSupportAutoContrast>
<isSupportGrayRange><!--opt, boolean--></isSupportGrayRange>
<isSupportLSEDetail><!--opt, boolean--></isSupportLSEDetail>
<isSupportCapture><!--opt, boolean--></isSupportCapture>
<isSupportBrightEnhance><!--opt, boolean--></isSupportBrightEnhance>
<isSupportRecord><!--opt, xs:boolean--></isSupportRecord>
<isSupportDefog><!--opt, xs:boolean--></isSupportDefog>
<isSupportGeneral><!--opt, xs:boolean, whether to display general configuration page on the interface--></
isSupportGeneral>
<isSupportIa><!--opt, xs:boolean, whether to display video configuration page on the interface--></isSupportIa>
<NoiseReduce2D>
<noiseReduce2DEnable><!--req, xs:boolean--></noiseReduce2DEnable>
<noiseReduce2DLevel min="0" max="100"><!--dep,xs:integer--></noiseReduce2DLevel>
</NoiseReduce2D>
<Shutter>
<ShutterLevel min="100" max="40000"><!--req, xs:integer--></ShutterLevel>
</Shutter>
<Gain>
<GainLevel min="0" max="100"><!--req, xs:integer--></GainLevel>
</Gain>
<TempRange/><!--opt, temperature range capability, see XML_Cap_tempRange for details-->
</ImageChannel>

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

<inputType opt="switch,semaphore"><!--optional, xs:string, input mode: "switch", "semaphore"--></inputType>


<CombinationAlarmCap><!--optional, composite alarm capability-->
<channel min="" max=""><!--required, xs:integer,channel No. range--></channel>
<EventTypeList size=""><!--required, event type list, the attribute "size" indicates the maximum number of
supported events for composition-->
<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>
</CombinationAlarmCap>
<supportIOInputType opt="local,digitalChannel"/><!--optional, supported IO port type: "local"-local IO port,
"digitalChannel"-digital channel IO-->
</IOInputPort>
</IOInputPortList>

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

<MountingScenario version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">


<mode
opt="indoor,outdoor,day,night,morning,nightfall,mode1,mode2,mode3,mode4,street,lowIllumination,custom1,custom
2,normal,road,faceSnap,highway,road2,backlight,frontlight">
<!--req, xs:string, "lowIllumination"-low illumination, "backlight"-back light, "frontlight"-front light, "faceSnap"-face
picture capture-->
</mode>
</MountingScenario>

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

<MACAddress> <!--required, xs:string--></MACAddress>


<status opt="connected, disconnect"><!--optional, xs:string--></status>
<speed> <!--required, xs:integer, "10,100,1000,10000"--></speed>
</EthernetPort>
</EthernetPortList>
<interfaceName min="" max=""><!--optional, xs:string, name of the network interfaces--></interfaceName>
</NetworkInterface>
</NetworkInterfaceList>

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

<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 opt="rectangle,convexPolygon,concavePolygon"><!--req, ro, xs:string--></regionType>
<videoResolutionWidth opt="704"></videoResolutionWidth>
<videoResolutionHeight opt="576"></videoResolutionHeight>
<ClipRegionList>
<ClipRegion>
<RegionCoordinatesList size="1">
<RegionCoordinates><!--req-->
<positionX><!--req, xs: integer; x-coordinate--></positionX>
<positionY><!--req, xs: integer; y-coordinate--></positionY>
</RegionCoordinates>
</RegionCoordinatesList>
</ClipRegion>
</ClipRegionList>
</RegionClip>

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

<!--required, read-only, string, new password-->test


</passwd>
<originalPasswd min="1" max="10">
<!--optional, read-only, string, old password-->test
</originalPasswd>
<SDCardType opt="HIK">
<!--optional, read-only, string, SD card manufacturer-->test
</SDCardType>
</RWLock>

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

<!--dep, xs:string, working mode: "console","transparent","narrowband","audiomixer","stairsControl"-elevator


control,"cardReader"-card reader,"disabled","custom". This node is required only when <serialPortType> is set to
"RS232"-->
</workMode>
<flowCtrl opt="none,software,hardware">
<!--req, xs:string-->
</flowCtrl>
<rs485WorkMode opt="Led, CaptureTrigger">
<!--opt, xs:string, working mode of RS-485 serial port, which is used for LED display or triggering transmission of
captured pictures. This node is valid only when <serialPortType> is "RS485"-->
</rs485WorkMode>
<audiomixerProtocolType opt="HIKVISION">
<!--opt, xs:string, "HIKVISION"-->
</audiomixerProtocolType>
<deviceName min="0" max="32"><!--dependent, xs:string, this node exists only when <serialPortType> is "RS485"--
></deviceName>
<deviceType min="" max=""><!--dependent, xs,integer, this node exists only when <serialPortType> is "RS485"--></
deviceType>
<deviceProtocol min="" max=""><!--dependent, xs,integer, this node exists only when <serialPortType> is "RS485"--
></deviceProtocol>
<mode opt="readerMode,clientMode,externMode,accessControlHost, disabled "><!--dependent, xs:string, working
mode, this node exists only when <serialPortType> is "RS485"--></mode>
</SerialPort>

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

<SIPServer version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">


<id min="1" max="">
<!--req, xs:interger, the maximum ID depends on the number of channels-->
</id>
<localPort min="0" max="65535">
<!--req, xs:integer-->
</localPort>
<streamID min="1" max="255">
<!--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 min="0" max="128">
<!--req, xs:string-->
</registrar>
<registrarPort min="1024" max="65535">
<!--req, xs:integer-->
</registrarPort>
<proxy min="0" max="128">
<!--req, xs:string-->
</proxy>
<proxyPort min="0" max="65535">
<!--req, xs:integer-->
</proxyPort>
<displayName min="0" max="64">
<!--req, xs:string-->
</displayName>
<username min="0" max="64">
<!--req, xs:string-->
</userName>
<authID min="0" max="64">
<!--req, xs:string-->
</authID>
<password min="0" max="32">
<!--wo, req, xs:string-->
</password>
<expires min="0" max="100000">
<!--req, xs:integer-->
</expires>
</Standard>
<GB28181>
<!--opt-->
<registerStatus>
<!--req, xs:boolean, "true,false"-->
</registerStatus>
<enabled>

726
Intelligent Security API (General) Developer Guide

<!--req, xs:boolean, "true,false"-->


</enabled>
<registrar min="0" max="128">
<!--req, xs:string-->
</registrar>
<registrarPort min="1024" max="65535">
<!--req, xs:integer-->
</registrarPort>
<serverId min="0" max="64">
<!--req, xs:string-->
</serverId>
<serverDomain min="0" max="128">
<!--req, xs:string-->
</serverDomain>
<username min="0" max="64">
<!--req, xs:string-->
</userName>
<authID min="0" max="64">
<!--req, xs:string-->
</authID>
<password min="0" max="32">
<!--wo, req, xs:string-->
</password>
<expires min="30" max="100000">
<!--req, xs:integer-->
</expires>
<liveTime min="30" max="100000">
<!--req, xs:integer-->
</liveTime>
<heartbeatTime min="0" max="255">
<!--req, xs:integer-->
</heartbeatTime>
<heartbeatCount min="3" max="255">
<!--req, xs:integer-->
</heartbeatCount>
</GB28181>
</SIPServer>

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

<R><!--opt, xs: integer--></R>


<G><!--opt, xs: integer--></G>
<B><!--opt, xs: integer--></B>
</ObjectFeature><!--dep, it is valid when type is "objectFeature"-->
</advance>
</TraversePlane>
<FieldDetection><!--dep, it is valid when type is "FieldDetection"-->
<normalizedScreenSize>
<normalizedScreenWidth><!--opt, xs: integer--></normalizedScreenWidth>
<normalizedScreenHeight><!--opt, xs: integer--></normalizedScreenHeight>
</normalizedScreenSize>
<param>
<region>
<pointList>
<point>
<x><!--opt, xs: integer--></x>
<y><!--opt, xs: integer--></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>
<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>
</FieldDetection>
<FaceDetection><!--dep, it is valid when type is "faceDetection"-->
<param>
<region>
<pointList>
<point>

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

<SecurityAlgorithm><!--dependency, this node is valid when certificateType is "digest" or "digest/basic"-->


<algorithmType opt="MD5,SHA256,MD5/SHA256"><!--optional, xs:string, algorithm type: "MD5", "SHA256",
"MD5/SHA256"--></algorithmType>
</SecurityAlgorithm>
</Security>
<SRTPMulticast><!--opt-->
<SRTPVideoDestPortNo min="" max=""><!--optional, xs:integer--></SRTPVideoDestPortNo>
<SRTPAudioDestPortNo min="" max=""><!--optional, xs:integer--></SRTPAudioDestPortNo>
</SRTPMulticast>
</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>
<videoDiffResolutionList><!--optional, list, if this node exists, it indicates that the resolution depends on the node
<videoCodecType>, and <videoResolutionWidth> and <videoResolutionHeight> are invalid. For forward
compatibility, the maximum set of <videoCodecType>, <videoResolutionWidth>, and <videoResolutionHeight>-->
<videoDiffResolution>
<videoCodecType>
<!--req, xs:string, "MPEG4,MJPEG,3GP,H.264,HK.264,MPNG,SVAC"-->
</videoCodecType>
<videoResolutionWidth><!--req, xs:integer--></videoResolutionWidth>
<videoResolutionHeight><!--req, xs:integer--></videoResolutionHeight>
</videoDiffResolution>
</videoDiffResolutionList>
<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" >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>
<IntelligentInfoDisplayMethod opt="player,non-player"><!--optional, xs:string, method of displaying intelligent
information: "player", "non-player"--></IntelligentInfoDisplayMethod>
<minimumResolutionSupportedBySmartCode>
<!--optional, xs:string, the minimum resolution supported by smart coding (smart264 and smart265), e.g.,
"640*512". If this node is returned, it indicates the smart code of current device (H7, H5) is limited by the minimum
resolution, and the upper layer can get the supported minimum resolution for smart coding of current device. For the
resolution lower than the minimum resolution does not support smart coding. If this node is not returned, it indicates
the smart coding of current device (H3) is not limited by minimum resolution-->
</minimumResolutionSupportedBySmartCode>
</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>

735
Intelligent Security API (General) Developer Guide

<audioSamplingRate opt="8" dynamic="true">8</audioSamplingRate>


<audioResolution opt="3,4,5,6" dynamic="true"/>
</Audio>
<isSpportDynamicCapWithCondition><!--optional, xs:boolean, whether to support dynamic capability with
conditions--></isSpportDynamicCapWithCondition>
<enableCABAC><!--optional, xs:boolean, whether it supports compressing stream to improve performance--></
enableCABAC>
<subStreamRecStatus><!--optional, xs:boolean--></subStreamRecStatus>
<isSupportRefreshFrame><!--optional, xs:boolean, whether it supports refreshing frames when Smart264 is enabled--
></isSupportRefreshFrame>
<isSupportBareDataOverlay><!--optional, xs:boolen--></isSupportBareDataOverlay>
<isSupportRTCPCfg><!--optional, xs:boolean--></isSupportRTCPCfg>
<customStreamEnable><!--optional, xs:boolean, whether the stream is custom stream: "true"-yes, this node is not
returned-no--></customStreamEnable>
<isSupportPictureByUrl>
<!--optional, xs: boolean, whether the device supports capture picture in URL format (related URI: /ISAPI/
ContentMgmt/StreamingProxy/channels/<ID>/PictureByUrl/capabilities?format=json)-->
</isSupportPictureByUrl>
</StreamingChannel>

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

<highIrLightBrightness min="0" max="100">


<!--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 min="0" max="100">
<!--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 min="0" max="100">
<!--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 min="0" max="100">
<!--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 min="0" max="100"><!--dep, xs: integer, white light brightness, which is between 0 and 100--
></whiteLightBrightness>
<irLightbrightnessLimit min="0" max="100"><!--dep, xs:integer, IR light brightness limit, range: [0,100]; this node is
valid when the value of mode "auto"--></irLightbrightnessLimit>
<whiteLightbrightnessLimit min="0" max="100"><!--dep, xs:integer, white light brightness limit, range: [0,100]; this
node is valid when the value of mode "auto"--></whiteLightbrightnessLimit>
<unscheduledBrightness min="" max=""><!--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>

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

<!--req, xs:string, default status-->


</outputStatus>
<aheadTime min="" max="">
<!--req, xs:integer, pre-output time-->
</aheadTime>
<timeDelay min="" max="">
<!--req, xs:integer, output duration-->
</timeDelay>
<freqMultiplyulti min="1" max="15">
<!--req, xs:integer, frequency multiplication, which is between 1 and 15-->
</freqMultiplyulti>
<dutyRate min="0" max="40">
<!--req, xs:integer, duty ratio, which is between 0 and 40-->
</dutyRate>
<postFlashEnable>
<!--req, xs:boolean-->
</postFlashEnable>
<illegalFlashEnable>
<!--req, xs:boolean-->
</illegalFlashEnable>
<videoFlashEnable>
<!--req, xs:boolean-->
</videoFlashEnable>
<detectBrightnessEnable>
<!--req, xs:boolean-->
</detectBrightnessEnable>
<brightnessThreshold min="0" max="100">
<!--dep, xs:integer, brightness threshold, which is between 0 and 100-->
</brightnessThreshold>
<flashEnabled>
<!--req, xs:boolean-->
</flashEnabled>
<startHour min="" max="">
<!--dep, xs:integer-->
</startHour>
<startMinute min="" max="">
<!--dep, xs:integer-->
</startMinute>
<endHour min="" max="">
<!--dep, xs:integer-->
</endHour>
<endMinute min="" max="">
<!--dep, xs:integer-->
</endMinute>
<plateBrightness>
<!--req, xs:boolean-->
</plateBrightness>
<incrBrightEnable>
<!--opt, xs:boolean, whether to enable brightness enhancement mode (for solid light mode)-->
</incrBrightEnable>
<incrBrightTime min="0" max="10000">
<!--req, xs:integer, brightness enhancement duration, which is between 0 and 10000, unit: millisecond. This node is

738
Intelligent Security API (General) Developer Guide

valid only when <incrBrightEnable> is "true"-->


</incrBrightTime>
<incrBrightPercent min="0" max="100">
<!--req, xs:integer, percentage of brightness enhancement, which is between 0 and 100. This node is valid only
when <incrBrightEnable> is "true"-->
</incrBrightPercent>
<brightness min="0" max="100">
<!--dep, xs:integer, solid light brightness (for solid light mode), which is between 0 and 100-->
</brightness>
<delayCaptureTime min="1" max="1000">
<!--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_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

<!--read-only, optional, xs:boolean, disarm permission of partition/alarm zone-->true


</subSysOrZoneDisarm>
<operateOutput>
<!--read-only, optional, xs:boolean, permission for operation on relay-->true
</operateOutput>
<supportLinkageSubSystemList size="64">
<!--read-only, optional, list of the partitions that support linkage-->
<subSystem>
<!--read-only, optional, xs:integer, the partition that supports linkage, value range:[1,64]-->1
</subSystem>
</supportLinkageSubSystemList>
<subSystemList>
<!--read-only, optional, xs:object, list of partitions-->
<subSystem>
<!--read-only, optional, xs:integer, partition, range:[1,64]-->1
</subSystem>
</subSystemList>
</localPermission>
<remotePermission><!--optional-->
<record optional="true,false"/><!--optional, xs:boolean, whether it supports recording remotely and manually-->
<playBack optional="true,false"/><!--optional, xs:boolean, whether it supports remote playback-->
<preview optional="true,false"/><!--optional, xs:boolean, whether it supports remote live view-->
<videoChannelPermissionList><!--optional -->
<videoChannelPermission><!--optional -->
<id min="" max=""/><!--required, xs:string !-->
<preview optional="true,false"/><!--optional, xs:boolean, whether it supports remote live view-->
<playBack optional="true,false"/><!--optional, xs:boolean, whether it supports remote playback-->
<record optional="true,false"/><!--optional, xs:boolean, whether it supports recording remotely and manually-->
</videoChannelPermission>
</videoChannelPermissionList>
<ptzControl optional="true,false"/><!--optional, xs:boolean, whether it supports remote PTZ control-->
<ptzChannelPermissionList><!--optional -->
<ptzChannelPermission><!--optional -->
<id><!--required, this ID must correspond to the PTZ ID in /ISAPI/PTZCtrl/channels/<ID>--></id>
<ptzControl optional="true,false"/><!--optional, xs:boolean, whether it supports controlling the PTZ remotely-->
</ptzChannelPermission>
</ptzChannelPermissionList>
<logOrStateCheck optional="true,false"/><!--optional, xs:boolean, whether it supports viewing logs remotely-->
<parameterConfig optional="true,false"/><!--optional, xs:boolean, whether it supports setting parameters
remotely-->
<restartOrShutdown optional="true,false"/><!--optional, xs:boolean, whether it supports shutting down and
rebooting remotely-->
<upgrade optional="true,false"/><!--optional, xs:boolean, whether it supports upgrading and formatting remotely--
>
<voiceTalk optional="true,false"/><!--optional, xs:boolean, whether it supports remote two-way audio-->
<transParentChannel optional="true,false"/><!--optional, xs:boolean, whether it supports controlling the serial
port remotely-->
<contorlLocalOut optional="true,false"/><!--optional, xs:boolean, whether it supports controlling the local output
remotely-->
<manageChannel optional="true,false"/><!--optional, xs:boolean, whether it supports managing channels
remotely-->
<alarmOutOrUpload optional="true,false"/><!--optional, xs:boolean, whether it supports request for uploading

747
Intelligent Security API (General) Developer Guide

alarms and alarm output remotely-->


<IRAID>
<rapidConfiguration optional="true,false"/><!--optional, xs:boolean, whether it supports configuring IRAID
permissions rapidly-->
<reset optional="true,false"/><!--optional, xs:boolean, whether it supports configuring IRAID to reset
configuration permissions-->
</IRAID>
<subSysOrZoneArm>
<!--read-only, optional, xs:boolean, arm permission of partition/alarm zone-->true
</subSysOrZoneArm>
<subSysOrZoneDisarm>
<!--read-only, optional, xs:boolean, disarm permission of partition/alarm zone-->true
</subSysOrZoneDisarm>
<subSysOrZoneClearArm>
<!--read-only, optional, xs:boolean, clear alarm permission of partition/alarm zone-->true
</subSysOrZoneClearArm>
<zoneBypass>
<!--read-only, optional, xs:boolean, bypass permission in alarm zone-->true
</zoneBypass>
<zoneBypassRecover>
<!--read-only, optional, xs:boolean, bypass recovery permission in alarm zone-->true
</zoneBypassRecover>
<operateOutput>
<!--read-only, optional, xs:boolean, permission for operation on relay-->true
</operateOutput>
<supportLinkageSubSystemList>
<!--read-only, optional, list of the partitions that support linkage-->
<subSystem>
<!--read-only, optional, xs:integer, the partition that supports linkage, value range:[1,64]-->1
</subSystem>
</supportLinkageSubSystemList>
<subSystemList>
<!--read-only, optional, xs:object, list of partitions-->
<subSystem>
<!--read-only, optional, xs:integer, partition, range:[1,64]-->1
</subSystem>
</subSystemList>
<factoryReset>
<!--read-only, optional, xs:boolean, recover default parameters-->true
</factoryReset>
<arm>
<!--read-only, optional, xs:boolean, arm-->true
</arm>
<disarm>
<!--read-only, optional, xs:boolean, disarm-->true
</disarm>
<accessControl>
<!--read-only, optional, xs:boolean, access control-->true
</accessControl>
</remotePermission>
<passwordValidity min="" max=""/><!--required, xs:string, valid duration of the password, value range: [0, 365],
unit: day. Only the admin user can edit this parameter-->

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

<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>
<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--></algorithmType>
<sharedKey><!-- req, xs:string, pre-shared key used in WPA--></sharedKey>
<wpaKeyLength min="8" max="64"><!--req, xs: integer--></wpaKeyLength>
</WPA>
<support64bitKey opt="WPA-personal, WPA2-personal"/><!--opt, xs:string--></support64bitKey>
</WirelessSecurity>
<AccessPointList>
<InterfaceDisplay><!--opt-->
<TableElementList>
<TableElement>
<!--opt,xs:string,opt="SSID,workingMode,securityMode,channel,signalStrength, speed,connectionStatus"-->
</TableElement>
</TableElementList>
</InterfaceDisplay>
</AccessPointList>
<isSupportConnectStatus>
<!-- opt, xs:boolean, whether supports Wi-Fi connection status-->
</isSupportConnectStatus>
<workScene opt="computerRoom,monitorTerminal"><!--opt, xs:string,working scenario--></workScene>
<protocol opt="802.11ac"><!--req,xs:string, protocol mode--></protocol>
<hideSsid><!--opt, xs:boolean--></hideSsid>
<ChannelConfig><!--opt-->
<transmitPower opt="9,12,15,18,21,24,27"><!--opt, xs:integer, unit: dBm--><transmitPower>
<ChannelCountryList><!--opt>
<Country>
<countryID><!--req, xs:integer, country code--></countryID>
<ChannelList>
<Node>
<width opt="auto,20,40,80"><!--req, xs:string, bandwidth, unit: MHz--></width>
<channel><!--req,dep, xs:string, unit: MHz></channel>
</Node>
</ChannelList>
</Country>
</ChannelCountryList>
</ChannelConfig>
<isSupportNullSsid>
<!--opt, xs: boolean, whether supports setting SSID to null, if supports, return "true", otherwise, this node will not
be returned. If the SSID is empty, the device will filter the SSID configuration when configuring Wi-Fi-->-->
</isSupportNullSsid>
</Wireless>

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

<commonName><!--req, xs: string--></commonName>


<email><!--opt, xs: string--></email>
</IssuerDN>
<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>
<signatureAlgorithm><!--req, xs: string, signature algorithm: RSA_3, RSA_F4--></signatureAlgorithm>
<keyAlgorithm><!--opt, xs: string--></keyAlgorithm>
<startDate><!--req, xs: time, in ISO8601 time format--></startDate>
<endDate> !--req, xs: time, in ISO8601 time format--></endDate>
<serialNumber><!--req, xs: string, uuid--></serialNumber>
</CertificateInfo>

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

<PKCSPassword><!--dep, xs:string, password in PKCS#12 mode, it should be encrypted--></PKCSPassword>


<dataType><!--dep, xs:string, data type: "certificate", "privateKey"-private key--><dataType>
</CertificateReq>

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

<enabled><!--required, xs:boolean, whether to display the overlaid battery power--></enabled>


<positionX> <!--required, xs:integer, X-coordinate--> </positionX>
<positionY> <!--required, xs:integer, Y-coordinate--> </positionY>
</BatteryPowerOverlay>
<alignment><!--optional, xs:string, alignment mode: "customize"-custom, "alignRight"-align to right, "alignLeft"-align
to left--></alignment>
<publicSecurity><!--required, xs:boolean, security surveillance--></publicSecurity>
</VideoOverlay>

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

<frontColor><!--dependency, xs:hexBinary, font color--></frontColor>


<BatteryPowerOverlay/><!--optional, battery power overlay-->
<DeviceStatusDisplay><!--optional, device status display-->
<batteryCapacityDisplay><!--optional, xs:boolean, whether to display battery capacity--></batteryCapacityDisplay>
<chargingStatusDisplay><!--optional, xs:boolean, whether to display charging status--></chargingStatusDisplay>
<bluetoothStatusDisplay><!--optional, xs:boolean, whether to display bluetooth status--></bluetoothStatusDisplay>
<dialStatusDisplay><!--optional, xs:boolean, whether to display dial-up status--></dialStatusDisplay>
</DeviceStatusDisplay>
<alignment opt="customize,alignRight,alignLeft,GB,allRight,allLeft"><!--optional, xs:string, alignment mode:
"customize"-custom, "alignRight"-align to right, "alignLeft"-align to left, "allRight"-align all to right (align all OSD texts
to the right, including characters, time, title, and so on), "allLeft"-align all to left (align all OSD texts to the left,
including characters, time, title, and so on)--></alignment>
<lowRightTextNumber min="1" max="6"/><!--optional, number of characters in the lower-left corner-->
<lowLeftTextNumber min="7" max="8"/><!--optional, number of characters in the lower-right corner-->
<boundary min="0" max="2"><!--optional, xs:integer, boundary--></boundary>
<TextOverlaySize min="0" max="0"><!--optional, xs:integer, number of overlaid texts--></TextOverlaySize>
<FloorNumOverlay><!--optional-->
<enabled><!--required, xs:boolean, whether to enable displaying the overlaid floor No.--></enabled>
<positionX><!--required, xs:integer, X-coordinate--></positionX>
<positionY><!--required, xs:integer, Y-coordinate--></positionY>
</FloorNumOverlay>
<upDownboudary><!--optional, xs:integer, minimum size of the upper or lower boundary, unit: number of
characters, range: [0,2] (the value can be 0, 1, or 2)--></upDownboudary>
<leftRightboudary><!--optional, xs:integer, minimum size of the left or right boundary, unit: number of characters,
range: [0,2] (the value can be 0, 1, or 2)--></leftRightboudary>
<Angle><!--optional, device angle-->
<TiltAngle><!--optional, tilting angle-->
<enabled opt="true,false"><!--required, xs:boolean, whether to enable: true, false (default)--></enabled>
<positionX min="0" max="1000"><!--required, xs:integer,X-coordinate--></positionX>
<positionY min="0" max="1000"><!--required,xs:integer, Y-coordinate--></positionY>
</TiltAngle>
</Angle>
</VideoOverlay>

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

<InsertChanNo><!--optional, xs:integer, access channel number--></InsertChanNo>


</StreamFusion>
<PanoramicMetaData>
<!--optional, panoramic camera streaming channel, it is not returned when not support-->
<InsertChanNo><!--optional, xs:integer, access channel number--></InsertChanNo>
</PanoramicMetaData>
</EagleEye>
<FishEye>
<!--optional, the channel supports the functions of fisheye camera-->
<FishEyeStream>
<!--optional, fisheye camera stream, it is used for software decoding of play library, it is not returned when not
support-->
<InsertChanNo><!--optional, xs:integer, access channel number--></InsertChanNo>
</FishEyeStream>
</FishEye>
<Thermal>
<!--optional, the channel supports the functions of thermal products-->
<TemperatureMetaData>
<!--optional, temperature measurement metadata, it is not returned when not support-->
<InsertChanNo><!--optional, xs:integer, access channel number--></InsertChanNo>
</TemperatureMetaData>
<ThermometryDetection>
<!--optional, temperature measurement detection, it is not returned when not support-->
<InsertChanNo><!--optional, xs:integer, access channel number--></InsertChanNo>
</ThermometryDetection>
<ThermometryDiffDetection>
<!--optional, temperature difference detection, it is not returned when not support-->
<InsertChanNo><!--optional, xs:integer, access channel number--></InsertChanNo>
</ThermometryDiffDetection>
<FireDetection>
<!--optional, fire detection, it is not returned when not support-->
<InsertChanNo><!--optional, xs:integer, access channel number--></InsertChanNo>
</FireDetection>
<SmokeDetection>
<!--optional, smoke detection, it is not returned when not support-->
<InsertChanNo><!--optional, xs:integer, access channel number--></InsertChanNo>
</SmokeDetection>
<ShipsDetection>
<!--optional, ship detection, it is not returned when not support-->
<InsertChanNo><!--optional, xs:integer, access channel number--></InsertChanNo>
</ShipsDetection>
<IntelligentRuleDisplay>
<!--optional, intelligent rule display parameters of thermal application, it is not returned when not support-->
<InsertChanNo><!--optional, xs:integer, access channel number--></InsertChanNo>
</IntelligentRuleDisplay>
<IntelligentBehaviorRule>
<!--optional, intelligent behavior rule configureation, it is not returned when not support-->
<InsertChanNo><!--optional, xs:integer, access channel number--></InsertChanNo>
</IntelligentBehaviorRule>
<DPC>
<!--optional, defective pixel correction, it is not returned when not support-->
<InsertChanNo><!--optional, xs:integer, access channel number--></InsertChanNo>

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

<maxSearchTimeout><!--req, xs: integer, maximum search timeout--></maxSearchTimeout>


<maxConcurrentSearches>
<!--req, xs: integer, maximum concurrent search operations-->
</maxConcurrentSearches>
</CMSearchProfile>

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&amp;endtime=20190213T092116Z&amp;name=01010000093000100&amp;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

<fileUrl><!--opt, xs:string, file URL--></fileUrl>


<thumbnailUrl><!--opt, xs:string, thumbnail URL of picture or video--></thumbnailUrl>
<encryption>
<enabled><!--opt, xs:boolean, whether to encrypt the file--></enabled>
<encryptionkey><!--opt, xs:string, encryption key, which is returned only when enabled is set to true--></
encryptionkey>
<encryptionLevel><!--opt, xs:integer, encryption level: 1-AES128, 2-AES256, which is returned only when
enabled is set to true--></encryptionLevel>
</encryption>
</mediaSegmentDescriptor>
<metadataMatches>
<metadataDescriptor><!--searching conditions:
"evidence,illegalParking,crosslane,vehicleexist,lanechange,wrongdirection,congestion,turnround,pedestrian,constructi
on,roadBlock,abandonedObject,trafficAccident,fogDetection"--></metadataDescriptor>
</metadataMatches>
</searchMatchItem>
</matchList>
</CMSearchResult>

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

<!--optional, xs:boolean, whether it supports getting property capability of all channels-->


</isSupportAUXInfoCap>
<isSupportCalibrationFile>
<!--optional, xs:boolean, whether it supports importing calibration file-->
</isSupportCalibrationFile>
<isSupportDisplayTrajectory>
<!--optional, xs:boolean, whether it supports displaying trajectory-->
</isSupportDisplayTrajectory>
<maximumSuperPositionTime opt="5,10,20,30">
<!--dep,xs:integer, the maximum time of trajectory displaying,unit: second, it is valid only when displaying
trajectory is supported-->
</maximumSuperPositionTime>
<isSupportUnitConfig>
<!--optional, xs:boolean, whether it supports unit configuration-->
</isSupportUnitConfig>
<isSupportAutoMaintenance>
<!--optional, xs:boolean, whether it supports automatic maintenance. When this node exists and values "true", it
indicates support-->
</isSupportAutoMaintenance>
<isSupportGetLinkSocketIP>
<!--optional, xs: boolean, "true,false", whether it supports getting the SocketIP of current connection-->
</isSupportGetLinkSocketIP>
<isSupportIntelligentSearch>
<!--optional, xs:boolean, whether it supports intelligent search-->
</isSupportIntelligentSearch>
<IOTCap><!--optional, xs:boolean, IoT device access capability-->
<supportChannelNum>
<!--req, xs:integer, number of supported channels of IoT device-->
</supportChannelNum>
<startChannelNo>
<!--optional, xs:integer, initial channel ID, if this node is not inputted, it indicates that the initial channel ID is 1-->
</startChannelNo>
<isSupportlinkageChannelsSearch>
<!--optional, boolean, returns "true" if support, returns "false" if not support-->
</isSupportlinkageChannelsSearch>
</IOTCap>
<isSupportEncryption>
<!--optional, xs: boolean, stream encryption capability-->
</isSupportEncryption>
<AIDEventSupport opt="abandonedObject, pedestrian, congestion, roadBlock, construction, trafficAccident,
fogDetection, wrongDirection, illegalParking, SSharpDriving, lowSpeed, dragRacing">
<!--optional, xs:string, supported traffic incident type: "abandonedObject"-objects dropped down, "pedestrian"-
pedestrian, "congestion"-congestion, "roadBlock"-roadblock, "construction"-construction, "trafficAccident"-traffic
accident, "fogDetection"-fog, "wrongDirection"-wrong-way driving, "illegalParking"-illegal parking, "SSharpDriving"-
slalom driving, "lowSpeed"-driving in low speed, "dragRacing"-street racing-->
</AIDEventSupport>
<TFSEventSupport
opt="illegalParking ,wrongDirection,crossLane,laneChange,vehicleExist,turnRound,parallelParking,notKeepDistance,not
SlowZebraCrossing,overtakeRightSide,lowSpeed,dragRacing,changeLaneContinuously,SSharpDriving,largeVehicleOccup
yLine,jamCrossLine">
<!--optional, xs:string, supported enforcement event type: "illegalParking"-illegal parking, "wrongDirection"-wrong-
way driving, "crossLane"-driving on the lane line, "laneChange"-illegal lane change, "vehicleExist"-motor vehicle on

781
Intelligent Security API (General) Developer Guide

non-motor vehicle lane, "turnRound"-illegal U-turn, "parallelParking"-parallel parking, "notKeepDistance"-not keeping


vehicle distance, "notSlowZebraCrossing"-not slowing down at zebra corssing, "overtakeRightSide"-overtaking on the
right, "lowSpeed"-driving in low speed, "dragRacing"-street racing, "changeLaneContinuously"-continuous lane
change, "SSharpDriving"-slalom driving, "largeVehicleOccupyLine"-lane occupation by large-sized vehicle,
"jamCrossLine"-queue jumping-->
</TFSEventSupport>
<isVehicleStatisticsSupport>
<!--optional, xs: boolean, whether it supports setting parameters for traffic data collection-->
</isVehicleStatisticsSupport>
<isSupportIntersectionAnalysis>
<!--optional, xs: boolean, whether it supports intersection analysis-->
</isSupportIntersectionAnalysis>
<supportRemoteCtrl opt="up,down,left,right,enter,menu,num,power,esc,edit,F1,.prev,rec,play,stop,notSupport"/><!--
whether it supports remote control-->
<isSptDiagnosis>
<!--optional, xs:boolean, whether it supports device diagnosis: "true", "false"-->
</isSptDiagnosis>
<isSptSerialLogCfg>
<!--optional, xs:boolean, whether it supports configuring serial port log redirection: "true", "false"-->
</isSptSerialLogCfg>
<isSptFileExport>
<!--optional, xs:boolean, whether it supports exporting files from the device: "true", "false"-->
</isSptFileExport>
<isSptCertificationStandard>
<!--optional, xs:boolean, whether it supports configuring authentication standard for security control panel: "true",
"false"-->
</isSptCertificationStandard>
<isSptKeypadLock>
<!--optional, xs:boolean, whether it supports locking keypad: "true", "false"-->
</isSptKeypadLock>
<MixedTargetDetection><!--optional, whether the device supports recognizing specific target among mixed targets-->
<isSupportFaceRecognition><!--optional, xs:boolean, whether it supports face recognition--></
isSupportFaceRecognition>
<isSupportHumanRecognition><!--optional, xs:boolean, whether it supports human body recognition--></
isSupportHumanRecognition>
<isSupportVehicleRecognition><!--optional, xs:boolean, whether it supports vehicle recognition--></
isSupportVehicleRecognition>
</MixedTargetDetection>
<isSupportDiscoveryMode><!--optional, xs:boolean--></isSupportDiscoveryMode>
<streamEncryptionType>
<!--dep, xs:string, stream encryption type: "RTP/TLS", "SRTP/UDP", "SRTP/MULTICAST". This node is valid when
<isSupportEncryption> is "true", and the device can support one or more stream encryption types-->
</streamEncryptionType>
<isSupportLms><!--optional, xs:boolean, whether it supports laser--></isSupportLms>
<isSupportLCDScreen><!--optional, xs:boolean, whether it supports LCD screen--></isSupportLCDScreen>
<isSupportBluetooth><!--optional, xs:boolean, whether it supports bluetooth--></isSupportBluetooth>
<isSupportAcsUpdate>
<!--optional, whether it supports upgrading slave access control devices or peripheral modules: "true"-yes, this
node is not returned-no-->
</isSupportAcsUpdate>
<isSupportAccessControlCap>
<!--optional, whether it supports access control capability: "true"-yes, this node is not returned-no-->

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

<bootReleasedDate><!--optional, read-only, xs:string--></bootReleasedDate>


<hardwareVersion><!--optional, read-only, xs:string--></hardwareVersion>
<encoderVersion><!--optional, read-only, xs:string--></encoderVersion>
<encoderReleasedDate><!--optional, read-only, xs:stirng--></encoderReleasedDate>
<decoderVersion><!--optional, read-only, xs:string--></decoderVersion>
<decoderReleasedDate><!--optional, read-only, xs:stirng--></decoderReleasedDate>
<softwareVersion><!--optional, read-only, xs:string, software version--></softwareVersion>
<capacity><!--optional, read-only, xs:integer, unit: MB, device capacity--></capacity>
<usedCapacity><!--optional, read-only, xs:integer, unit: MB, capacity usage--></usedCapacity>
<deviceType>
<!--required, read-only, xs:string,device type: "IPCamera", "IPDome", "DVR", "HybirdNVR", "NVR", "DVS", "IPZoom",
"CVR", "Radar", "PerimeterRadar"-perimeter radar, "ACS", "PHA"-Axiom hybrid security control panel-->
<deviceType>
<telecontrolID><!--optional, xs:integer, keyfob control ID, the value is between 1 and 255--></telecontrolID>
<supportBeep><!--optional, xs:boolean--></supportBeep>
<supportVideoLoss><!--optional, xs:boolean, whether it supports video loss detection--></supportVideoLoss>
<firmwareVersionInfo><!--optional, read-only, xs:string, firmware version information--></firmwareVersionInfo>
<actualFloorNum>
<!--required, xs: integer, actual number of floors, which is between 1 and 128-->
</actualFloorNum>
<subChannelEnabled><!--optional, xs:boolean, whether to support sub-stream live view: "true"-yes, "false"-no--></
subChannelEnabled>
<thrChannelEnabled><!--optional, xs:boolean, whether to support third stream live view: "true"-yes, "false"-no--></
thrChannelEnabled>
<radarVersion><!--optional, xs:string, radar version--></radarVersion>
<cameraModuleVersion><!--read-only, xs:string, camera module version--></cameraModuleVersion>
<mainversion><!--optional, xs:integer, main version No. which is between 1 and 255--></mainversion>
<subversion><!--optional, xs:integer, sub version No. which is between 1 and 255--></subversion>
<upgradeversion><!--optional, xs:integer, upgraded version No. which is between 1 and 255--></upgradeversion>
<customizeversion><!--optional, xs:integer, customized version No. which is between 1 and 255--></
customizeversion>
<companyName><!--optional, xs:string, the manufacturing company's abbreviation--></companyName>
<copyright><!--optional, xs:string, copyright information--></copyright>
<systemName><!--optional, xs:string , storage system name: "storageManagement"-storage management system,
"distributedStorageManagement"-distrubuted storage management system--></systemName>
<systemStatus><!--optional, xs:string,system status: "configured"-configured, "unConfigured"-not configured--></
systemStatus>
<isLeaderDevice><!--optional, xs:boolean, whether it is the corresponding device of the resource IP address--></
isLeaderDevice>
<clusterVersion><!--dependent, xs:string, system cluster version. This node is valid when <isLeaderDevice> is true--
></clusterVersion>

<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

german, polish, turkish, greek, czech, brazilianPortuguese, slovenian, swedish, norwegian--></languageType>


<relayNum><!--optional, xs:integer, number of local relays--></relayNum>
<electroLockNum><!--optional, xs:integer, number of local electronic locks--></electroLockNum>
<RS485Num><!--optional, xs:integer, number of local RS-485--></RS485Num>
<powerOnMode><!--optional, xs:string, device startup mode: "button"-press button to power on (default), "adapter"-
connect adapter to power on--></powerOnMode>
<DockStation>
<!--optional, dock station configuration-->
<Platform>
<!--optional, platform configuration-->
<type><!--required, xs:string, platform type: none, 9533, 8618, ISAPI--></type>
<ip><!--optional, xs:string, IP address --></ip>
<port><!--optional, xs:integer, communication port--></port>
<userName><!--required, xs:string, user name, which is used for the dock station to log in to platform--></
userName>
<password><!--required, xs:string, password, which is used for the dock station to log in to platform, it should be
encrypted--></password>
</Platform>
<centralStorageBackupEnabled><!--optional, xs:boolean, whether to enable central storage backup--></
centralStorageBackupEnabled>
</DockStation>
<webVersion><!--optional, read-only, xs:string, web version No.--></webVersion>
<deviceRFProgramVersion><!--optional, read-only, xs:string, version No. of the device's RF (Radio Frequency)
program--></deviceRFProgramVersion>
<securityModuleSerialNo><!--optional, read-only, xs:string, serial No. of the security module--></
securityModuleSerialNo>
<securityModuleVersion><!--optional, read-only, xs:string, version No. of the security module--></
securityModuleVersion>
<securityChipVersion><!--optional, read-only, xs:string, version No. of the security chip--></securityChipVersion>
<securityModuleKeyVersion><!--optional, read-only, xs:string, version No. of the security module key--></
securityModuleKeyVersion>
<UIDLampRecognition><!--optional, information of the UID lamp recognition device-->
<enabled><!--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>
<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_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

"Lithuanian", "Serbian", "BrazilianPortuguese"-Brazilian Portuguese, "Indonesian", "Ukrainian"-->


</language>
</DeviceLanguage>

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

<zoomTotalSteps><!--req, xs: integer--></zoomTotalSteps>


<focusReverseTimes><!--req, xs: integer--></focusReverseTimes>
<focusTotalSteps><!--req, xs: integer--></focusTotalSteps>
<irisShiftTimes><!--req, xs: integer--></irisShiftTimes>
<irisTotalSteps><!--req, xs: integer--></irisTotalSteps>
<icrShiftTimes><!--req, xs: integer--></icrShiftTimes>
<icrTotalSteps><!--req, xs: integer--></icrTotalSteps>
<lensIntirTimes><!--req, xs: integer--></lensIntirTimes>
<cameraRunTotalTime><!--req, xs: integer--></cameraRunTotalTime>
</Camera>
</CameraList>
<DomeInfoList><!--opt-->
<DomeInfo>
<domeRunTotalTime><!--opt, xs: integer--></domeRunTotalTime >
<runTimeUnderNegativetwenty><!--opt, xs: integer--></runTimeUnderNegativetwenty>
<runTimeBetweenNtwentyPforty><!--opt, xs: integer--></runTimeBetweenNtwentyPforty>
<runtimeOverPositiveforty><!--opt, xs: integer--></runtimeOverPositiveforty>
<panTotalRounds><!--opt, xs: integer--></panTotalRounds>
<tiltTotalRounds><!--opt, xs: integer--></tiltTotalRounds>
<heatState><!--opt, xs: integer--></heatState>
<fanState><!--opt, xs: integer--></fanState>
</DomeInfo>
</DomeInfoList>
<deviceStatus><!--req, xs: string, device working status: "normal, abnormal 设"--></deviceStatus>
<dialSignalStrength>
<!--optional, xs:integer, 4G signal strength, it is between 1 and 3-->
</dialSignalStrength>
<USBStatusList>
<USBStatus>
<!--list-->
<id>
<!--required, xs:integer-->
</id>
<state>
<!--optional, xs:string, USB status: "connected", "fullCapacity", "deviceException", "disconnected"-->
</state>
</USBStatus>
</USBStatusList>
<WifiStatusList>
<WifiStatus>
<!--list-->
<id>
<!--required, xs:integer-->
</id>
<state>
<!--optional, xs:string, Wi-Fi status: "disabled"-Wi-Fi is disabled, "enable"-Wi-Fi is enabled, "disconnected"-Wi-Fi
is disconnected, "enableHotspot"-Wi-Fi hot spot is enabled-->
</state>
</WifiStatus>
</WifiStatusList>
<AlertStreamServerList><!--opt, user of arming device-->
<AlertStreamServer><!--list-->

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

<Flow><!--opt, network traffic flow configuration-->


<limitEnabled><!--opt, xs:boolean, whether to enable traffic flow limitation--></limitEnabled>
<consumeFlow><!--opt, xs:float, unit: MB--></consumeFlow>
<threshold><!--opt, xs:integer, unit: MB--></threshold>
</Flow>
<pinCode><!--opt, wo, xs:string--></pinCode>
<enabled4G><!-- opt, xs:boolean, whether to enable 4G--></enabled4G>
<enabledDNS><!-- opt, xs:boolean, whether to enable DNS manual configuration--></enabledDNS>
<ISPName><!--optional, xs:string, ISP (Internet Service Provider) name--></ISPName>
<IMEINo><!--optional, xs:string, IMEI code--></IMEINo>
<ICCID><!--optional, xs:string, ICCID code--></ICCID>
<netType><!--optional, xs:string, network type--></netType>
</Dial>

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

<ipAddress><!-- dep, xs:string--></ipAddress>


<ipv6Address><!-- dep, xs:string--></ipv6Address>
</DNSAddress>
<subDNSAddress><!-- opt, sub DNS address-->
<ipAddress><!-- dep, xs:string --></ipAddress>
<ipv6Address><!-- dep, xs:string--></ipv6Address>
</subDNSAddress>
<operator><!-- ro, opt,xs:string,operator--></operator>
<enableMessageConfig><!--opt, xs:boolean,whether to enable SMS service--></enableMessageConfig>
<registrationStatus><!—ro,opt, xs:boolean, registration status--></registrationStatus>
</Dialstatus>

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

<diskQuota version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">


<id><!--req, xs: integer, channel ID--></id>
<useVideoQuota><!--read-only, xs: integer, quota for video files, unit: MB--></useVideoQuota>
<usePictureQuota><!--read-only, xs: integer, quota for picture files, unit: MB--></usePictureQuota>
<totalDiskVolume><!--read-only, xs: integer, total disk capacity, unit: MB--></totalDiskVolume>
<videoQuota><!--req, xs: integer, unit: MB--></videoQuota>
<pictureQuota><!--opt, xs: integer, unit: MB--></pictureQuota>
<type><!--opt, xs: string, "volume,ratio,absent-ratio,otherwise-volume"--></type>
<videoQuotaRatio><!--dep, xs: integer, video quota ratio (%): [0,100]--></videoQuotaRatio>
<pictureQuotaRatio><!--dep, xs: integer, picture quota ratio (%): [0,100]--></pictureQuotaRatio>
<totalVideoVolume><!--read-only, xs: integer, unit: MB--></totalVideoVolume>
<totalPictureVolume><!--ro, xs: integer, unit: MB--></totalPictureVolume>
<freeVideoQuota><!--ro, xs: integer, free space for video files, unit: MB--></freeVideoQuota>
<freePictureQuota><!--ro, xs: integer, free space for picture files, unit: MB--></freePictureQuota>
<reservedTimeCfg><!--optional, xs:integer, video saving time, value range: [0,1000], unit: day--></reservedTimeCfg>
</diskQuota>

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

<activePostCount><!--requireduired, xs:integer, event occurred times--></activePostCount>


<eventType><!--requireduired, xs:string, event types, here it should be set to "diskerror"--></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>
<diskNo><!--optional, xs:integer, HDD No.--></diskNo>
<HDDList><!--dependent, xs:integer, HDD list, this node is valid when <eventType> is "diskfull, diskerror"-->
<HDD>
<id><!--required, xs:integer, index No., which starts from 1--></id>
<diskNumber><!--required, xs:integer, HDD ID--></diskNumber>
</HDD>
</HDDList>
</EventNotificationAlert>

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

<channelName><!--optional, xs:string, channel name--></channelName>


<deviceID><!--optional, xs:string, device ID--></deviceID>
</EventNotificationAlert>

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

personDensityDetection, personQueueDetecton, mixedTargetDetection, HVTVehicleDetection,


illegalParking, pedestrian, trafficAccident, construction, roadblock, abandonedObject,
parallelParking, parkingState, congestion, intersectionAnalysis, heatMap, thermometry,
shipsFlowDetection, dredgerDetection, reverseEntrance, luma, highHDTemperature,
lowHDTemperature, hdImpact, hdBadBlock, SevereHDFailure, safetyHelmetDetection,
vibrationDetection, HBDLib,TMPA,faceThermometry,noMaskDetection
See Also
XML_EventTriggerNotificationList

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

<FireDetectionTriggerCap><!--optional, xs: EventTriggerCapType--></FireDetectionTriggerCap>


<FireDetectionCap><!--optional, xs: EventTriggerCapType--></FireDetectionCap>
<StorageDetectionTriggerCap><!--optional, xs: EventTriggerCapType--></StorageDetectionTriggerCap>
<ShipsDetectionTriggerCap><!--optional, xs: EventTriggerCapType--></ShipsDetectionTriggerCap>
<ThermometryCap><!--optional, xs: EventTriggerCapType--></ThermometryCap>
<VandalProofTriggerCap><!--optional, xs: EventTriggerCapType--></VandalProofTriggerCap>
<BlackListTriggerCap><!--opt, xs: EventTriggerCapType, configuration capability of blocklist arming linkage--></
BlackListTriggerCap>
<WhiteListTriggerCap><!--opt, xs: EventTriggerCapType, configuration capability of allowlist arming linkage--></
WhiteListTriggerCap>
<AllVehicleListTriggerCap><!--optional,xs:EventTriggerCapType, configuration capability of other list arming linkage--
></AllVehicleListTriggerCap>
<OtherVehicleListTriggerCap><!--optional,xs:EventTriggerCapType--></OtherVehicleListTriggerCap>
<PeopleDetectionTriggerCap><!--optional,xs:EventTriggerCapType--></PeopleDetectionTriggerCap>
<PIRAlarmCap><!--optional, xs: EventTriggerCapType--></PIRAlarmCap>
<TamperDetectionTriggerCap><!--optional, xs: EventTriggerCapType--></TamperDetectionTriggerCap>
<DefocusDetectionTriggerCap><!--optional, xs: EventTriggerCapType--></DefocusDetectionTriggerCap>
<FaceDetectionTriggerCap><!--optional, xs: EventTriggerCapType--></FaceDetectionTriggerCap>
<SceneChangeDetectionTriggerCap><!--optional, xs: EventTriggerCapType--></SceneChangeDetectionTriggerCap>
<VandalProofAlarmCap><!--optional, xs: EventTriggerCapType--></VandalProofAlarmCap>
<JudgmentTriggerCap><!--optional, xs: EventTriggerCapType--></JudgmentTriggerCap>
<FightingTriggerCap><!--optional, xs: EventTriggerCapType--></FightingTriggerCap>
<RisingTriggerCap><!--optional, xs: EventTriggerCapType--></RisingTriggerCap>
<DozingTriggerCap><!--optional, xs: EventTriggerCapType--></DozingTriggerCap>
<CountingTriggerCap><!--optional, xs: EventTriggerCapType--></CountingTriggerCap>
<VideoLossTriggerCap><!--optional, xs: EventTriggerCapType--></VideoLossTriggerCap>
<HideTriggerCap><!--optional, xs:EventTriggerCapType--></HideTriggerCap>
<AlarmInTriggerCap><!--optional, xs: EventTriggerCapType--></AlarmInTriggerCap>
<VehicleDetectionTriggerCap><!--optional, xs: EventTriggerCapType--></VehicleDetectionTriggerCap>
<AudioExceptionCap><!--optional, xs: EventTriggerCapType--></AudioExceptionCap>
<FiledDetectTriggerCap><!--optional, xs: EventTriggerCapType--></FiledDetectTriggerCap>
<MotionDetectionTriggerCap><!--optional, xs: EventTriggerCapType--></MotionDetectionTriggerCap>
<TemperatureCap><!--optional, xs: EventTriggerCapType--></TemperatureCap>
<IntelligentTriggerCap><!--optional, xs: EventTriggerCapType--></IntelligentTriggerCap>
<FaceContrastTriggerCap><!--optional, xs: EventTriggerCapType, face picture comparison alarm linkage--></
FaceContrastTriggerCap>
<PersonDensityDetectionTriggerCap><!--optional, xs: EventTriggerCapType--></PersonDensityDetectionTriggerCap>
<PersonQueueDetectionTriggerCap><!--optional, xs: EventTriggerCapType, queue management alarm linkage--></
PersonQueueDetectionTriggerCap>
<HumanRecognitionTriggerCap><!--optional,xs: EventTriggerCapType--></HumanRecognitionTriggerCap>
<FaceSnapTriggerCap><!--optional, xs: EventTriggerCapType--></FaceSnapTriggerCap>
<isSupportWhiteLightAction>
<!--dependent, xs: boolean, see details in EventTriggerCapType, it is valid when isSupportWhiteLight is "true"-->
</isSupportWhiteLightAction>
<isSupportAudioAction>
<!--dependent, xs: boolean, see details in EventTriggerCapType, it is valid when isSupportBeep is "true"-->
</isSupportAudioAction>
<HFPDTriggerCap><!--optional, xs: EventTriggerCapType--></HFPDTriggerCap>
<MixedTargetDetectionCap><!--optional, xs: EventTriggerCapType--></MixedTargetDetectionCap>
<HVTVehicleDetectionTriggerCap><!--optional, xs: EventTriggerCapType--></HVTVehicleDetectionTriggerCap>
<VCATriggerCap><!--optional, xs: EventTriggerCapType--></VCATriggerCap>
<PIRCap><!--optional, xs: EventTriggerCapType--></PIRCap>

811
Intelligent Security API (General) Developer Guide

<IllegalParkingTriggerCap><!--optional, xs: EventTriggerCapType, whether it supports illegal parking detection--></


IllegalParkingTriggerCap>
<PedestrianTriggerCap><!--optional, xs: EventTriggerCapType, whether it supports pedestrian detection--></
PedestrianTriggerCap>
<TrafficAccidentTriggerCap><!--optional, xs: EventTriggerCapType, whether it supports traffic accident detection--></
TrafficAccidentTriggerCap>
<ConstructionTriggerCap><!--optional, xs: EventTriggerCapType, whether it supports construction detection--></
ConstructionTriggerCap>
<RoadBlockTriggerCap><!--optional, xs: EventTriggerCapType, whether it supports roadblock detection--></
RoadBlockTriggerCap>
<AbandonedObjectTriggerCap><!--optional, xs: EventTriggerCapType, whether it supports objects dropped down
detection--></AbandonedObjectTriggerCap>
<ParallelParkingTriggerCap><!--optional, xs: EventTriggerCapType, whether it supports parallel parking detection--></
ParallelParkingTriggerCap>
<ParkingStateTriggerCap><!--optional, xs: EventTriggerCapType, whether it supports parking space status detection,
currently this node is not supported--></ParkingStateTriggerCap>
<CongestionTriggerCap><!--optional, xs: EventTriggerCapType, whether it supports congestion detection--></
CongestionTriggerCap>
<IntersectionAnalysisCap><!--optional, xs: EventTriggerCapType, whether it supports intersection analysis--></
IntersectionAnalysisCap>
<ShipsFlowDetectionTriggerCap><!--optional,xs:EventTriggerCapType, ship flow detection--></
ShipsFlowDetectionTriggerCap>
<dredgerDetectionTriggerCap><!--optional,xs:EventTriggerCapType, dredger detection--></
dredgerDetectionTriggerCap>
<voltageInstableTriggerCap><!--optional,xs:EventTriggerCapType, supply voltage exception--></
voltageInstableTriggerCap>
<HighHDTemperatureTriggerCap><!--optional, xs:EventTriggerCapType, HDD high temperature detection--></
HighHDTemperatureTriggerCap>
<LowHDTemperatureTriggerCap><!--optional, xs:EventTriggerCapType, HDD low temperature detection--></
LowHDTemperatureTriggerCap>
<HDImpactTriggerCap><!--optional, xs:EventTriggerCapType, HDD impact detection--></HDImpactTriggerCap>
<HDBadBlockTriggerCap><!--optional, xs:EventTriggerCapType, HDD bad sector detection--></
HDBadBlockTriggerCap>
<SevereHDFailureTriggerCap><!--optional, xs:EventTriggerCapType, HDD severe fault detection--></
SevereHDFailureTriggerCap>
<HUMANATTRIBUTECap><!--optional, xs:EventTriggerCapType--></HUMANATTRIBUTECap>
<HumanAttributeTriggerCap><!--optional, xs:EventTriggerCapType, human body attribute--></
HumanAttributeTriggerCap>
<BlackListFaceContrastTriggerCap><!--opt, xs:EventTriggerCapType, alarm linkage capability of blocklist face
comparison--></BlackListFaceContrastTriggerCap>
<FaceLibTriggerCap><!--optional, xs:EventTriggerCapType--></FaceLibTriggerCap>
<SafetyHelmetDetectionTriggerCap><!--optional, xs:EventTriggerCapType, alarm linkage capability of hard hat
detection--></SafetyHelmetDetectionTriggerCap>
<VibrationDetectionTriggerCap><!--optional, xs:EventTriggerCapType, alarm linkage capability of vibration detection--
></VibrationDetectionTriggerCap>
<RadarLineDetectionTriggerCap><!--optional, xs:EventTriggerCapType, alarm linkage capability of radar line crossing
detection--></RadarLineDetectionTriggerCap>
<RadarFieldDetectionTriggerCap><!--optional, xs:EventTriggerCapType, alarm linkage capability of radar intrusion
detection--></RadarFieldDetectionTriggerCap>
<HBDLibTriggerCap><!--optional, xs:EventTriggerCapType, alarm linkage capability of human body picture library--></
HBDLibTriggerCap>
<FaceThermometryCap><!--optional, xs:EventTriggerCapType--></FaceThermometryCap>

812
Intelligent Security API (General) Developer Guide

<NoMaskDetectionTriggerCap><!--optional, xs:EventTriggerCapType, alarm linkage capability of no wearing mask


detection--></NoMaskDetectionTriggerCap>
<TMPATriggerCap><!--optional, xs:EventTriggerCapType, alarm linkage capability of temperature measurement pre-
alarm--></TMPATriggerCap>
<FireEscapeDetectionTriggerCap><!--optional, xs:EventTriggerCapType, alarm linkage capability of fire engine access
detection--></FireEscapeDetectionTriggerCap>
<TakingElevatorDetectionTriggerCap><!--optional, xs:EventTriggerCapType, alarm linkage capability of elevator
detection--></TakingElevatorDetectionTriggerCap>
<RuleTriggerCap><!--optional, linkage capability of rule triggered alarm -->
<isSupportCityManagement>
<!--optional, xs:boolean, whether the city management supports setting linkage actions by area; if supports, the
value is true, otherwise, this node will not be returned-->
</isSupportCityManagement>
</RuleTriggerCap>
<ThermalCalibrationFileExceptionCap><!--optional, xs:EventTriggerCapType, alarm linkage capability of
thermography calibration file exception--></ThermalCalibrationFileExceptionCap>
</EventTriggersCap>

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

<siteLocationEnabled><!--optional, xs:boolean, whether to support enabling site location--></siteLocationEnabled>


<siteLocationInfo><!--dependency, xs:string, site location information--></siteLocationInfo>
<timeEnabled><!--optional, xs:boolean, whether to support enabling time--></timeEnabled>
<customInfo><!--optional, xs:string, custom information--></customInfo>
</GuardAgainstTheft>

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

<!--read-only, optional, xs:string; "FAT32,EXT4"-->


</formatType>
<ipAddress>
<!--optional, xs:string-->
</ipAddress>
<ipv6Address>
<!--optional, xs:string -->
</ipv6Address>
<formatType>
<!--read-only, optional, xs:string; "FAT32,EXT4"-->
</formatType>
<encryptionStatus>
<!--read-only, optional, xs:string, encryption status: "unencrypted"-unencrypted, "encrypted"-encrypted,
"verfyFailed"-verification failed-->
</encryptionStatus>
<logStorageEnable>
<!--read-only, optional, xs:boolean, whether it is a log HDD-->
</logStorageEnable>
</hdd>
</hddList>

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

<brightnessLevel><!--opt, xs:integer, ranging from 0 to 100--></brightnessLevel>


<contrastLevel><!--opt, xs:integer, ranging from 0 to 100--></contrastLevel>
<sharpnessLevel><!--opt, xs:integer, ranging from 0 to 100--> </sharpnessLevel>
<saturationLevel><!--opt, xs:integer, ranging from 0 to 100--></saturationLevel>
<hueLevel><!--opt, xs:integer, ranging from 0 to 100--></hueLevel>
<deNoiseLevel><!--opt, xs:integer, ranging from 0 to 100--></deNoiseLevel>
</recommendation>
</ImageMode>

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

<isRegionExitingSupport><!--optional, xs:boolean, whether it supports region exiting detection--></


isRegionExitingSupport>
<isLoiteringSupport><!--optional, xs:boolean, whether it supports loitering detection--></isLoiteringSupport>
<isGroupSupport><!--optional, xs:boolean, whether it supports people gathering detection--></isGroupSupport>
<isRapidMoveSupport><!--optional, xs:boolean, whether it supports fast moving detection--></
isRapidMoveSupport>
<isParkingSupport><!--optional, xs:boolean, whether it supports parking detection--></isParkingSupport>
<isUnattendedBaggageSupport><!--optional, xs:boolean, whether it supports unattended baggage detection--></
isUnattendedBaggageSupport>
<isAttendedBaggageSupport><!--optional, xs:boolean, whether it supports object removal detection--></
isAttendedBaggageSupport>
<isTeacherSupport><!--optional, xs:boolean, whether it supports teacher's behavior detection--></
isTeacherSupport>
<isStudentSupport><!--optional, xs:boolean, whether it supports student's behavior detection--></
isStudentSupport>
<isCombinedSupport><!--optional, xs:boolean, whether it supports combined detection--></isCombinedSupport>
<isTrafficSupport><!--optional, xs:boolean, whether it supports traffic detection--></isTrafficSupport>
<RestoreLib>
<libName opt="studentsStoodUp,peopleCounting,shipDetection"><!--optional, xs:string,--></libName>
</RestoreLib>
<RestoreDefParamForbid>
<!--optional, xs:boolean "true, false", forbid restoring algorithm library to default. When the node does not exist, it
indicates restoring to default is not supported. When the node exists and its value is "ture", it indicates support, when
the value is "false", it indicates not support-->
</RestoreDefParamForbid>
<RestoreAlgLibParam>
<!--optional, the capabilities of restoring algorithm library parameters according to algorithm library name-->
<libName opt="faceSnap,HMS,behaviorAnalysis"><!--optional, xs:string--></libName>
</RestoreAlgLibParam>
<isFaceCaptureStatisticsSupport><!--whether it supports face picture statistics--></isFaceCaptureStatisticsSupport>
<isSupportPersonQueueDetection><!--whether it supports queue management--></
isSupportPersonQueueDetection>
<isSupportIntersectionAnalysis>
<!--optional, xs: boolean, whether it supports intersection analysis-->
</isSupportIntersectionAnalysis>
<mixedTargetDetectionWithoutAttribute><!--optional, xs: boolean--></mixedTargetDetectionWithoutAttribute>
<isSupportUploadFacePictureByForm><!--optional, xs:boolean, whether it supports uploading face pictures by form--
></isSupportUploadFacePictureByForm>
<isSupportUploadFacePictureByUrl><!--optional, xs: boolean, whether it supports uploading face pictures by URL--
></isSupportUploadFacePictureByUrl>
<isSupportUploadHumanPictureByForm><!--optional, xs:boolean, whether it supports uploading human pictures in
form--></isSupportUploadHumanPictureByForm>
<isSupportMisinfoFilterStatisticalMode><!--optioal, xs:boolean, whether it supports statistics of filtering face
comparison--></isSupportMisinfoFilterStatisticalMode>
<isSupportFaceScore><!--optional, xs:boolean, whether it supports face grading configuration (camera)--></
isSupportFaceScore>
<HumanRecognitionModeSearchCap>
<searchTargetsNumMax><!--optional, xs:integer, maximum number of sample pictures that can be imported for
searching by picture--></searchTargetsNumMax>
<HumanMode>
<searchCond opt="age_group,gender,jacet_color,glass,bag,ride,unlimit"/><!--setting multiple search conditions is
supported-->

837
Intelligent Security API (General) Developer Guide

<similarity min="0.0" max="100.0"/><!--optional, xs:float, similarity, range: [0.0,100.0]-->


</HumanMode>
<HumanInfo><!--optional, person attribute information, it is required when searching for picture by attributes-->
<age_group opt="child,infant,kid,middle,middleAged,old,prime,teenager,unknown,young">
<!--optional, xs:string, age group: "child,infant,kid,middle,middleAged,old,prime,teenager,unknown,young"-->
</age_group>
<gender opt="female,male,unknown"><!--optional, xs:string, gender: "female,male,unknown"--></gender>
<jacet_color
opt="black,black,blue,brown,cyan,deepBlue,deepGray,gray,green,mixture,orange,pink,purple,red,silver,unknown,whit
e,yellow">
<!--optional, xs:string, tops color-->
</jacet_color>
<glass opt="yes,no,unknown,sunglasses"><!--optional, xs:string, whether the person is wearing glasses--></glass>
<bag opt="yes,no,unknown"><!--optional, xs:string, whether the person is carrying a bag--></bag>
<ride opt="yes,no,unknown"><!--optional, xs:string, whether the person is riding--></ride>
</HumanInfo>
<positive opt="true,false"/><!--optional, xs:boolean, whether it is false human body recognition alarm: "true"-yes,
"false"-no-->
<eventType opt="unlimit,humanRecognition">
<!--optional, xs:string, event type: "unlimit"-no limit, "humanRecognition"-human body detection alarm-->
</eventType>
<isSupportMultiChannelSearch>
<!--optional, xs:boolean, whether it supports multi-channel search-->
</isSupportMultiChannelSearch>
<isSupportTotalSearchResult>
<!--optional, xs:boolean, whether it supports limiting number of results that can be obtained after a single search--
>
</isSupportTotalSearchResult>
</HumanRecognitionModeSearchCap>
<VehicleRecognitionModeSearchCap>
<searchTargetsNumMax><!--optional, xs:integer, maximum number of sample pictures that can be imported for
searching by picture--></searchTargetsNumMax>
<eventType opt="unlimit,vehicleBlackList,vehicleWhiteList"/><!--xs:string, event type: "unlimit"-no limit,
"vehicleBlackList"-vehicle blocklist, "vehicleWhiteList"-vehicle allowlist-->
<VehicleMode>
<searchCond opt="licensePlate,vehicleLogo,vehicleSubLogoRecog,vehicleType,vehicleColor,unlimit"/>
<similarity min="0.0" max="100.0"/><!--optional, xs:float, similarity, range: [0.0,100.0]-->
</VehicleMode>
<isSupportMultiChannelSearch>
<!--optional, xs:boolean, whether it supports multi-channel search-->
</isSupportMultiChannelSearch>
<isSupportTotalSearchResult>
<!--optional, xs:boolean, whether it supports limiting number of results that can be obtained after a single search--
>
</isSupportTotalSearchResult>
</VehicleRecognitionModeSearchCap>
<FaceContrastAnalyzeCap><!--capability of manual comparison and analysis of face pictures-->
<isSupportTrigger opt="false,true"><!--optional, xs:boolean--></isSupportTrigger>
<SearchCondition><!--optional-->
<startTime><!--required, xs:time, ISO8601 time--></startTime>
<endTime><!--required, xs:time, ISO8601 time--></endTime>
</SearchCondition>

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

<IOPortList version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">


<IOInputPortList/><!--optional, see details in XML_IOInputPortList-->
<IOOutputPortList/><!--optional, see details in XML_IOOutputPortList-->
</IOPortList>

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

XML_IPFilterAddressList for details-->


</IPFilter>

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

<type><!-- req,xs:string, message operations: "messageReboot"-reboot message, "dial"-enable/disable dial-up,


"getDialStatus"-get dial-up status, "SMSAlarm"- receive/ reject message linkage--></type>
<enabled><!-- opt, xs:boolean,"true,false"--></enabled>
</SMSCtrlType>
</SMSCtrlTypeList>
<name><!-- opt, xs:string,contact name,which is sensitive information that needs to be encrypted--></name>
</ListMember>

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

<normalizedScreenWidth><!--required, read-only, xs:integer--></normalizedScreenWidth>


<normalizedScreenHeight><!--required, read-only, xs:integer--></normalizedScreenHeight>
</ROI>
<MotionDetectionLayout><!--required, rule region configuration of motion detection-->
<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>
<enableWithMoving><!--optional, xs:boolean--></enableWithMoving>
</MotionDetection>

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

<isSupportWAN><!--optional, xs:boolean, whether it supports WAN--></isSupportWAN>


<isSupportPPPoE>
<!--req, xs:boolean, whether it supports PPPoE, "true"-yes, "false"-no-->
<isSupportPPPoE>
<isSupportBond>
<!--req, xs:boolean, whether it supports NIC bonding, "true"-yes, "false"-no-->
<isSupportBond>
<isSupport802_1x>
<!--req, xs:boolean, whether it supports 802_1x-->
</isSupport802_1x>
<isSupportNtp>
<!--optional, xs:boolean, whether it supports NTP-->
</ isSupportNtp>
<isSupportFtp>
<!--optional, xs:boolean, whether it supports FTP-->
</isSupportFtp>
<isSupportUpnp>
<!--optional, xs:boolean, whether it supports UPnP-->
</isSupportUpnp>
<isSupportPNP>
<!--optional, xs:boolean, whether it supports PnP-->
</isSupportPNP>
<isSupportDdns>
<!--optional, xs:boolean, whether it supports DNS-->
</isSupportDdns>
<isSupportHttps>
<!--optional, xs:boolean, whether it supports HTTPS-->
</isSupportHttps>
<SnmpCap><!--optional, whether it supports SNMP-->
<isSupport><!--req, xs:boolean--></isSupport>
</SnmpCap>
<isSupportExtNetCfg>
<!--optional, xs:boolean, whether it supports configuring extended network parameters-->
</isSupportExtNetCfg>
<isSupportIPFilter>
<!--optional, xs:boolean, whether it supports filtering IP address-->
</isSupportIPFilter>
<isSupportSSH opt="true"><!--optional, xs:boolean, whether it supports SSH--></isSupportSSH>
<isSupportNetPreviewStrategy><!--optional, xs:boolean--></isSupportNetPreviewStrategy>
<isSupportEZVIZ>
<!--optional, xs:boolean, whether it supports Guarding Vision-->
</isSupportEZVIZ>
<isSupportEhome>
<!--optional, xs:boolean, whether it supports EHome (ISUP) protocol-->
</isSupportEhome>
<isSupportWirelessServer>
<!--optional, xs:boolean, whether it supports Wi-Fi hotspot-->
</isSupportWirelessServer>
<isSupportWPS><!--optional, xs:boolean, whether it supports (WPS) Wi-Fi Protected Setup--></isSupportWPS>
<isWirelessMutexWithWirelessServer><!--optional, xs:boolean, whether it supports configuring the wireless access
to be mutually exclusive with the wireless service--></isWirelessMutexWithWirelessServer>
<isSupportWirelessDial>

863
Intelligent Security API (General) Developer Guide

<!--optional, xs:boolean, whether it supports wireless dial configuration-->


</isSupportWirelessDial>
<WPS><!--optional, Wi-Fi Protected Setup configuration-->
<NetworkInterfaceList size="2">
<NetworkInterface>
<id><!--req, xs:string, NIC ID--></id>
<enabled><!--req, xs:boolean, whether the NIC is enabled--></enabled>
<isSupportAutoConnect><!--optional, xs:boolean--></isSupportAutoConnect>
<isSupportDevicePinCode>
<!--optional, xs:boolean, whether it supports device PIN code-->
</isSupportDevicePinCode>
<isSupportDevicePinCodeUpdate>
<!--optional, xs:boolean, whether it supports updating device PIN code-->
</isSupportDevicePinCodeUpdate>
<ApPinCode><!--opt-->
<ssid min="" max="">
<!--optional, xs:string, maximum and minimum SSID length that can be returned by device-->
</ssid>
<pinCode min="" max="">
<!--optional, xs:string, maximum and minimum PIN code length that can be returned by device-->
</pinCode>
</ApPinCode>
</NetworkInterface>
</NetworkInterfaceList>
</WPS>
<isSupportMACFilter>
<!--optional, xs:boolean, whether it supports filtering MAC address-->
</isSupportMACFilter>
<verificationCode max="">
<!--optional, xs:string, the maximum length of verificationCode that can be returned by device-->
</verificationCode>
<WPSCap><!--opt-->
<isSupport><!--req, xs: boolean--></isSupport>
<isSupportAutoConnect><!--req, xs: boolean--></isSupportAutoConnect>
</WPSCap>
<NetWorkMode>
<workMode><!--optional, xs:string, network mode: "close,wifi,wifiAp"--></workMode>
</NetWorkMode>
<VerificationCodeModification><!--optional, xs:string, whether the verification code can be edited by the admin
user-->
<verificationCodeType opt="normal,empty"></verificationCodeType>
<isSupportDeclarationURL><!--optional, xs:boolean, whether it supports URL declared by the service--></
isSupportDeclarationURL>
<isSupportPrivacyPolicyURL><!--optional, xs:boolean, whether it supports the privacy policy URL--></
isSupportPrivacyPolicyURL>
<verificationCodeModify opt="true,false">
<!--optional, whether the verification code is edited: "true"-yes, "false"-no, no return-not support-->
</verificationCodeModify>
<Hyperlinks><!--opt-->
<declarationURL><!--optional, xs:string--></declarationURL>
<privacyPolicyURL><!--optional, xs:string--></privacyPolicyURL>
</Hyperlinks>

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

<isSupportGetLinkSocketIP><!--optional, xs:boolean, whether it supports get the current linked SocketIP--></


isSupportGetLinkSocketIP>
<isSupportTrafficMonitor><!--optional, xs:boolean, whether it supports traffic monitoring of 4G network card--> </
isSupportTrafficMonitor>
<isSupportDMSAuthInfo><!--optional, xs:boolean, whether it supports DMS authentication information
management--></isSupportDMSAuthInfo>
<isSupportWiredandWirelessTrafficMonitor><!--optional, xs:boolean, whether it supports monitoring traffic of wired
NIC and wireless NIC--></isSupportWiredandWirelessTrafficMonitor>
<isSupport4G><!--optional, xs:boolean, whether it supports 4G module--></isSupport4G>
<isSupport4GConfig><!--optional, xs:boolean, whether it supports 4G configuration--></isSupport4GConfig>
<isSupportSipTransmit><!--optional, xs:boolean, whether it supports configuring SIP transmission parameters--></
isSupportSipTransmit>
<isSupportWifiCascade><!--optional, xs:boolean, whether it supports enabling automatic cascading of device Wi-Fi,
related URI: /ISAPI/System/Network/wifiCascade?format=json --></isSupportWifiCascade>
<isSupportRelativeInfo><!--optional, xs:boolean, whether it supports getting information of connected devices,
related URI: /ISAPI/System/Network/wifiCascade/relativeInfo?format=json--> </isSupportRelativeInfo>
<isSupportEZVIZUnbind><!--optional, xs:boolean, whether it supports unbinding devices from the Guarding Vision
account, related URI: /ISAPI/System/Network/EZVIZ/unbind?format=json--></isSupportEZVIZUnbind>
<isSupportEZVIZQRcode><!--optional, xs:boolean, whether it supports getting the Guarding Vision QR code, related
URI: /ISAPI/System/Network/EZVIZ/QRCode?format=json--></isSupportEZVIZQRcode>
<isSupportEZVIZTiming><!--optional, xs:boolean, whether the device supports timing of Guarding Vision (related
URI: /ISAPI/System/Network/EZVIZ)--></isSupportEZVIZTiming>
</NetworkCap>

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

<workMode opt="console,transparent,audiomixer,ptzctrl"><!--optional, xs:string, working mode--></workMode>


<flowCtrl opt="none,software,hardware"><!--optional, xs:string, flow control of the serial port: "none"-disable,
"software"-by software, "hardware"-by hardware--></flowCtrl>
<audiomixerProtocolType opt="HIKVISION,DS-ZH101S"><!--optional, xs:string, protocol type of the audio mixer--></
audiomixerProtocolType>
<isVariable opt="true,false"><!--optional, xs:boolean, whether it is a variable serial port--></isVariable>
<PTZInfo><!--dependent, this node is valid when the value of <workMode> contains "ptzCtrl"-->
<bindChannelNo min="" max=""><!--required, xs:integer, linked channel No.--></bindChannelNo>
<PTZProtocolList><!--required-->
<PTZProtocol><!--optional-->
<id><!--required, xs:integer, protocol index No.--></id>
<protoDesc><!--required, xs:string, protocol description--></protoDesc>
</PTZProtocol>
</PTZProtocolList>
</PTZInfo>
<ScreenCtrlInfo><!--dependent, this node is valid when <workMode> contains "screenCtrl"-->
<ScreenCtrlProtoList><!--required-->
<ScreenCtrlProto><!--optional-->
<id><!--required, xs:integer, protocol index No.--></id>
<protoDesc><!--required, xs:string, protocol description--></protoDesc>
</ScreenCtrlProto>
</ScreenCtrlProtoList>
</ScreenCtrlInfo>
<MatrixCtrlInfo><!--dependent, this node is valid when <workMode> contains "matrix"-->
<MatrixCtrlProtoList><!--required-->
<MatrixCtrlProto><!--optional-->
<id><!--required, xs:integer, protocol index No.--></id>
<protoDesc><!--required, xs:string, protocol description--></protoDesc>
</MatrixCtrlProto>
</MatrixCtrlProtoList>
</MatrixCtrlInfo>
<KeyBoardCtrlInfo><!--dependent, this node is valid when <workMode> contains "keyboard"-->
<KeyBoardCtrlProtoList><!--required-->
<KeyBoardCtrlProto><!--optional-->
<id><!--required, xs:integer, protocol index No.--></id>
<protoDesc><!--required, xs:string, protocol description--></protoDesc>
</KeyBoardCtrlProto>
</KeyBoardCtrlProtoList>
</KeyBoardCtrlInfo>
<deviceName min="0" max="32"><!--dependent, xs:string, device name--></deviceName>
<deviceType min="" max=""><!--dependent, xs:integer, device type--></deviceType>
<deviceProtocol min="" max=""><!--dependent, xs:integer, device protocol--></deviceProtocol>
<mode opt="readerMode,clientMode,externMode,stairsControl,accessControlHost,disabled,custom"><!--
dependent, xs:string, working mode--></mode>
<outputDataType opt="cardNo,employeeNo"><!--dependent, xs:string, output data type. This node is valid when
<mode> is accessControlHost--></outputDataType>
</SerialPort>
</SerialPortList>

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

<DetailAbnormalStatus><!--dependent, this field is valid only when deviceStatus is "abnormal"-->


<hardDiskFull><!--optional, read-only, xs:boolean, "true,false", whether disk is full--></hardDiskFull>
<hardDiskError><!--optional, read-only, xs:boolean, "true,false", whether disk has error--></hardDiskError>
<ethernetBroken><!--optional, read-only, xs:boolean, "true,false", whether it is disconnected--></
ethernetBroken>
<ipaddrConflict><!--optional, read-only, xs:boolean, "true,false", whether IP address conflicts--></ipaddrConflict>
<illegalAccess><!--optional, read-only, xs:boolean, "true,false", whether it is illegal access--></illegalAccess>
<recordError><!--read-only, optional, xs:boolean, "true,false", whether video exception occurred--></recordError>
<raidLogicDiskError><!--read-only, optional, xs:boolean, "true,false", whether raid logic disk exception occurred--
></raidLogicDiskError>
<spareWorkDeviceError><!--read-only, optional, xs:boolean, "true,false", whether spare device exception
occurred--></spareWorkDeviceError>
</DetailAbnormalStatus>
<systemContact><!--optional, xs:string--></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>
<encoderVersion><!--optional, read-only, xs:string--></encoderVersion>
<encoderReleasedDate><!--optional, read-only, xs:string--></encoderReleasedDate>
<bootVersion><!--optional, read-only, xs:string--></bootVersion>
<bootReleasedDate><!--optional, read-only, xs:string--></bootReleasedDate>
<hardwareVersion><!--optional, read-only, xs:string--></hardwareVersion>
<decoderVersion><!--optional, read-only, xs:string--></decoderVersion>
<decoderReleasedDate><!--optional, read-only, xs:string--></decoderReleasedDate>
<softwareVersion><!--optional, read-only, xs:string, software version--></softwareVersion>
<capacity><!--optional, read-only, xs:integer, device capacity (MB)--></capacity>
<usedCapacity><!--optional, read-only, xs:integer, used capacity (MB)--></usedCapacity>
<deviceType><!--required, read-only, xs:string, "IPCamera,IPDome,DVR,HybirdNVR,NVR,DVS,IPZoom,CVR"--></
deviceType>
<telecontrolID><!--optional, xs:integer, "1-255"--></telecontrolID>
<supportBeep><!--optional, xs:boolean--></supportBeep>
<supportVideoLoss><!--optional, xs:boolean--></supportVideoLoss>
<firmwareVersionInfo><!--read-only, optional, xs:string--></firmwareVersionInfo>
<actualFloorNum><!--optional, xs:integer, "1-128"--></actualFloorNum>
<radarVersion><!--optional, xs:string--></radarVersion>
<cameraModuleVersion><!--read-only, xs:string--></cameraModuleVersion>
<mainversion><!--optional, xs:integer, "1-255"--></mainversion>
<subversion><!--optional, xs:integer, "1-255"--></subversion>
<upgradeversion><!--optional, xs:integer, "1-255"--></upgradeversion>
<customizeversion><!--optional, xs:integer, "1-255"--></customizeversion>
<companyName><!--optional, xs:string, manufacturer name--></companyName>
<copyright><!--optional, xs:string, copyright information--></copyright>
<systemName><!--optional, xs:string, storage system, "storageManagement,distributedStorageManagement",
"storageManagement"-storage management system, "distributedStorageManagement"-distributed storage
management system--></systemName>
<systemStatus><!--optional, system status, xs:string, "configured,unConfigured", "configured"-system has been
configured, "unConfigured"-system has not been configured--></systemStatus>
<isLeaderDevice><!--optional, xs:boolean, whether it is the corresponding device of the resource IP--></
isLeaderDevice>
<clusterVersion><!--dependent, xs:string, system cluster version, this field is valid only when isLeaderDevice is

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

<ipv6Address><!--dep, xs: string--></ipv6Address>


</natRouterWanAddr>
<portStatusList><!--req-->
<portStatus/><!--req, see details in the message XML_portStatus-->
</portStatusList>
</portsStatus>

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

<!--optional, preset name capability-->


<presetNameSupport>
<!--optional,xs:boolean, whether to support preset name?-->
</presetNameSupport>
<maxPresetNameLen>
<!--dependent,xs:integer, preset name length-->
</maxPresetNameLen>
<specialNo/>
<!--dependent, special preset-->
</PresetNameCap>
<isSupportPosition3D>
<!--optional, xs:boolean, whether to support 3D position-->
</isSupportPosition3D>
<isSupportManualTrack>
<!--optional,xs:boolean, whether to support manual tracking position(NET_DVR_PTZ_MANUALTRACE)?-->
</isSupportManualTrack>
<manualControlSpeed opt="compatible,pedestrian,nonMotorVehicle,motorVehicle,selfadaptive">
<!--optional,xs:string, manual control speed: "compatible"-compatible mode, "pedestrian"-pedestrian,
"nonMotorVehicle"-non-motor vehicle, "motorVehicle"-motor vehicle, "selfadaptive"-self adaptive-->
</manualControlSpeed>
<isSpportPtzlimiteds>
<!--optional,xs:boolean, whether to support PTZ limitation-->
</isSpportPtzlimiteds>
<ParkAction/><!--see details in the message XML_ParkAction-->
<TimeTaskList/><!--see details in the message XML_TimeTaskList-->
<Thermometry>
<maxThermometryPresetNum>
<!--optional, xs:integer-->
</maxThermometryPresetNum>
</Thermometry>
<isSpportPtzEagleFocusing>
<!--optional, xs:boolean-->
</isSpportPtzEagleFocusing>
<TrackingRatio/>
<!--optional, tracking zoom ratio-->
<coefficient min="1" max="10" default="5">
<!--optional, xs:integer, zoom ratio-->
</coefficient>
</TrackingRatio>
<TrackInitPosition>
<!--optional, tracking initial position-->
<slaveCameraID>
<!--optional, xs:integer, slave camera ID, 1..4 -->
</slaveCameraID>
</TrackInitPosition>
<isSupportAbsoluteEx><!--optional,xs:boolean, whether to support extended capability for PTZ absolute position--></
isSupportAbsoluteEx>
<isSupportCruise><!--optional,xs:boolean, whether to support auto-switch mode--></isSupportCruise>
<isSupportAreaScan><!--optional,xs:boolean, whether to support area scan--></isSupportAreaScan>
<isSupportFaceSnap3D><!--optional, xs: boolean--></isSupportFaceSnap3D>
<ManualPTZLockCap><!--optional, PTZ manual locking capability-->
<lockStatus opt="lock,unlock"><!--optional, xs:string, PTZ locking status, the default status is locked--></lockStatus>

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

<PTZOSDDisplay version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">


<zoomlable><!--req, xs:string, "2sec, 5sec, 10sec, alwaysclose, alwaysopen"--></zoomlable>
<azimuth><!--req, xs:string, "2sec, 5sec, 10sec, alwaysclose, alwaysopen"--></azimuth>
<presetlable><!--req, xs:string, "2sec, 5sec, 10sec, alwaysclose, alwaysopen"--></presetlable>
<actionStatusDisplayEnabled><!--opt, xs:boolean, display status or not--></actionStatusDisplayEnabled>
</PTZOSDDisplay>

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

-90.0 degree to 270.0 degree vertically-->


</elevation>
<azimuth>
<!--opt, xs:integer, panning parameter, the value is between 0 and 3600, which corresponds to the range from 0.0
degree to 360.0 degree horizontally-->
</azimuth>
<absoluteZoom>
<!--opt, xs:integer, zooming parameter, the value is between 0 and 1000, which corresponds to the focus range
from 0.0 to 100.0-->
</absoluteZoom>
</AbsoluteHigh>
</PTZStatus>

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

<isSupportAddTask><!--optional, xs:boolean, whether it supports adding task, "true"-yes, "false"-no--></


isSupportAddTask>
<isSupportSearchTask><!--optional, xs:boolean, whether it supports task search, "true"-yes, "false"-no--></
isSupportSearchTask>
<isSupportControlTask><!--optional, xs:boolean, whether it supports task control, "true"-yes, "false"-no--></
isSupportControlTask>
<isSupportDeleteTask><!--optional, xs:boolean, whether it supports deleting task, "true"-yes, "false"-no--></
isSupportDeleteTask>
</PassBackTaskConfig>
<PassBackPlanConfig><!--optional, task plan of ANR-->
<isSupportAddPlan><!--optional, xs:boolean, whether it supports adding plan, "true"-yes, "false"-no--></
isSupportAddPlan>
<isSupportSearchPlan><!--optional, xs:boolean, whether it supports plan search, "true"-yes, "false"-no--></
isSupportSearchPlan>
<isSupportDeletePlan><!--optional, xs:boolean, whether it supports deleting plan, "true"-yes, "false"-no--></
isSupportDeletePlan>
</PassBackTaskConfig>
<IRAIDCap/><!--optional, network RAID-->
<isSupportStorageExtraInfo>
<!--optional, xs:boolean, whether it supports configuring storage additional information, "true"-yes, "false"-no-->
</isSupportStorageExtraInfo>
<isSupportRecordStatus><!--optional, xs:boolean--></isSupportRecordStatus>
<supportAIDTFSType opt="illegalParking,wrongdirection crosslane,vehicleexist,lanechange, turnround, evidence"/>
<!--optional, xs:string, event picture search conditions supported by both AID and TFS-->
<isSupportRacmChannelsCap><!--optional, xs:boolen--></isSupportRacmChannelsCap>
<LockCap/><!--optional, lock or unlock video-->
<isSupportForamtAll><!--optional, xs:boolean, "true,false"--></isSupportForamtAll>
<isSupportExtendCabinetCfg>
<!--optional, xs:boolean, whether it supports enclosure configuration-->
</isSupportExtendCabinetCfg>
<diskGroupNums><!--optional, xs:integer, number of supported HDD groups--></diskGroupNums>
<isSupportCountingSearchByUTC><!--optional, xs:boolean, whether it supports searching people counting results by
UTC time--></isSupportCountingSearchByUTC>
<isSupportPlaybackReverseByUTC><!--optional, xs:boolean, whether it supports reverse playback by UTC time--></
isSupportPlaybackReverseByUTC>
<isSupportWebPrivatePlaybackByUTC>
<!--optional, xs: boolean, whether it supports playback based on Web private protocol-->
</isSupportWebPrivatePlaybackByUTC >
<isSupportFindCommonFileByUTC>
<!--optional, xs: boolean, whether it supports extending the time zone for searching files-->
</isSupportFindCommonFileByUTC>
<isSupportFindEventFileByUTC><!--optional, xs: boolean, whether it supports extending the time zone for searching
files by event-->
</isSupportFindEventFileByUTC >
<isSupportSmartSearchRecordByUTC>
<!--optional, xs: boolean, whether it supports extending the time zone for VCA search-->
</isSupportSmartSearchRecordByUTC>
<isSupportMRDSearchByTimeZone>
<!--optional, xs: boolean, whether it supports extending the time zone for searching files by calendar-->
</isSupportMRDSearchByTimeZone>
<isSupportSearchRecordLabelByUTC>
<!--optional, xs: boolean, whether it supports extending the time zone for searching video tags-->

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

<deviceID><!--optional, xs:boolean, whether it supports device ID--></deviceID>


</PoliceInfo>
<behaviorEventPicSearch
opt="allBehaviorEvent,running,group,violentMotion,failDown,playCellphone,peopleNumChange,leavePosition,retentio
n,sleepOnduty">
<!--optional, xs:string, behavior analysis events supported by picture search, which is used for web display,
"allBehaviorEvent"-all events in behaviorEventPicSearch-->
</behaviorEventPicSearch>
<perimeterEventPicSearch
opt="allPerimeterEvent,linedetection,fielddetection,regionEntrance,regionExiting,loitering">
<!--optional, xs:string, perimeter protection events that support picture search, which is used for web display,
"allPerimeterEvent"-all events in perimeterEventPicSearch-->
</perimeterEventPicSearch>
<isSupportAssignChannelID><!--optional, xs:boolean, whether it supports specify channel No. when adding IPC--></
isSupportAssignChannelID>
<isSupportAssignStreamID><!--optional, xs:boolean, whether it supports specify stream ID of the channel when
adding IPC--></isSupportAssignStreamID>
<isSupportTimeSearch><!--optional, xs:boolean, whether it supports searching for recording start and end time by
channel--></isSupportTimeSearch>
<CloudStorageServerCap><!--optional-->
<isSupportCloudStorageParameter><!--optional, xs:boolean, whether it supports configuring cloud storage
parameters--></isSupportCloudStorageParameter>
<isSupportCloudStoragePool><!--optional, xs:boolean, whether it supports configuring cloud storage pool
parameters--></isSupportCloudStoragePool>
</CloudStorageServerCap>
<CMSearchCount/><!--optional, xs:boolean, whether it supports searching for file quantity of dock station-->
<isSupportSSDSMARTTest>
<!--optional, xs:boolean, whether the device supports SSD S.M.A.R.T detection (related URI: /ISAPI/ContentMgmt/
Storage/ssd/<ID>/SMARTTest/start)-->
</isSupportSSDSMARTTest>
<isSupportSpare><!--optional, boolean, whether the device supports hot spare configuration--></isSupportSpare>
</RacmCap>

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

<remotePermission 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>
<subSystemList><!--opt, partitions linked to the operator when adding an operator or setting operator parameters-->
<subSystem><!--opt, xs:integer, partition linked to the operator. When adding an operator or setting operator
parameters, one or more partitions can be linked to an operator. An operator should be linked to at least one partition
and up to four partitions--></subSystem>
</subSystemList>
</remotePermission>

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

<statusCode><!-- req, ro,xs:integer --></statusCode>


<statusString><!-- req, ro,xs:string --></statusString>
<subStatusCode><!-- req, ro,xs:string --></subStatusCode>
<lockStatus><!-- opt, ro,xs:string ,"unlock,locked", locking status--></lockStatus>
<retryTimes><!-- opt, ro,xs:integer, remaining authentication attempts--></retryTimes>
<resLockTime><!-- opt, ro,xs:integer, remaining locking time, unit: second--></resLockTime>
</ResponseStatus>

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

<SecurityCap version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">


<supportUserNums><!--optional, xs:integer, number of supported users--></supportUserNums>
<userBondIpNums><!--optional, xs:integer, number of bound IP addresses supported by the user--></
userBondIpNums>
<userBondMacNums><!--optional, xs:integer, number of bound MAC addresses supported by the user--></
userBondMacNums>
<isSupCertificate><!--optional, xs:boolean, whether it supports certification: "true", "false"--></isSupCertificate>
<issupIllegalLoginLock><!--optional, xs: boolean, whether it supports locking illegal login: "true,false"--
><issupIllegalLoginLock>
<isSupportOnlineUser><!--optional, xs: boolean, "true,false"--><isSupportOnlineUser>
<isSupportAnonymous><!--optional, xs: boolean, "true,false"--><isSupportAnonymous>
<isSupportStreamEncryption><!--optional, xs:boolean, whether it supports stream encryption: "true", "false"--></
isSupportStreamEncryption>
<securityVersion opt="1,2"/><!--optional, xs:interger, encryption capability, each version contains encryption
algorithm and node range to be encrypted. "1"-encrypt by AES128, "2"-encrypt by AES256-->
<keyIterateNum>
<!--dependent xs:integer, iteration times, this node depends on securityVersion, and the value is usually between
100 and 1000-->
</keyIterateNum>
<isSupportUserCheck>
<!--dependent optional, xs:boolean, whether it supports verifying password when editing/adding/deleting user
parameters, this node depends on securityVersion-->
</isSupportUserCheck>
<isSupportGUIDFileDataExport><!--optional, xs:boolean, "true,false"--></isSupportGUIDFileDataExport>
<isSupportSecurityQuestionConfig><!--optional, xs:boolean, "true,false"--></isSupportSecurityQuestionConfig>
<supportSecurityNode opt="wirelessServer,wirelessDial"><!--optional, xs:string, "true,false"--></
supportSecurityNode>
<isSupportGetOnlineUserListSC><!--optional, xs:boolean, "true,false"--></isSupportGetOnlineUserListSC>
<SecurityLimits><!--optional-->
<LoginPasswordLenLimit min="1" max="16"><!--opt--></LoginPasswordLenLimit>
<SecurityAnswerLenLimit min="1" max="128"><!--opt--></SecurityAnswerLenLimit>
</SecurityLimits>
<RSAKeyLength opt="512,1024,2048" def=2048/><!--optional, RSA key length of the HTTPS certificate-->
<isSupportONVIFUserManagement><!--optional, xs:boolean, whether it supports user management by ONVIF
protocol: "true", "false"--><isSupportONVIFUserManagement>
<WebCertificateCap><!--opt-->
<CertificateType opt="basic, digest, digest/basic"><!--required, xs:string--></CertificateType>
<SecurityAlgorithm><!--dependent, this node is valid when certificateType is "digest" or "digest/basic"-->
<algorithmType opt="MD5,SHA256,MD5/SHA256"><!--optional, xs:string, algorithm type: "MD5", "SHA256",
"MD5/SHA256"--></algorithmType>
</SecurityAlgorithm>
</WebCertificateCap>
<isSupportConfigFileImport>
<!--optional, xs: boolean, whether it supports importing configuration files securely: "true"-yes. If it is not
supported, this node will not be returned-->
</isSupportConfigFileImport>
<isSupportConfigFileExport>
<!-- optional, xs:boolean, whether it supports exporting configuration files securely: "true"-yes. If it is not
supported, this node will not be returned-->
</isSupportConfigFileExport>
<cfgFileSecretKeyLenLimit min="0" max="16">
<!--optional, length limit of the configuration files' encryption key-->

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

<SerialCap version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">


<rs485PortNums min="1" max="5" def="1">
<!--optional, xs: integer-->
</rs485PortNums>
<supportRS23Cconfig>
<!--optional, xs: boolean-->
</supportRS23Cconfig>
<rs422PortNums opt="0">
<!--optional, xs: integer-->
</rs422PortNums>
<rs232PortNums opt="1">
<!--optional, xs: integer, range of RS-232 serial port No. supported by the device-->
</rs232PortNums>
<rs485WorkMode opt="Led, CaptureTrigger">
<!--optional, xs: string, range of RS-485 serial port No. supported by the device-->
</rs485WorkMode>
<isSupportAuthenticationService>
<!--optional, xs:boolean, whether the device supports serial port authentication-->
</isSupportAuthenticationService>
</SerialCap>

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

<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>
</TraversePlane>
<FieldDetection><!--dep, it is valid when type is "FieldDetection"-->
<normalizedScreenSize>
<normalizedScreenWidth><!--opt, xs: integer--></normalizedScreenWidth>
<normalizedScreenHeight><!--opt, xs: integer--></normalizedScreenHeight>
</normalizedScreenSize>
<param>
<region>
<pointList>
<point>
<x><!--opt, xs: integer--></x>
<y><!--opt, xs: integer--></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"-->

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

<SmartSearchResult 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>
<responseStatus><!--req, xs: string, "true,false"--></responseStatus>
<responseStatusStrg><!--req, xs: string, "OK,NO MATCHES,MORE"--></responseStatusStrg>
<numOfMatches><!--req, xs: integer--></numOfMatches>
<totalMatches><!--req, xs: integer--></totalMatches>
<matchList>
<searchMatchItem><!--list-->
<id><!--req, xs: integer--></id>
<timeSpan>
<startTime><!--req, xs: string, start time of validity period, e.g., 2013-06-10T 12:00:00Z--></startTime>
<endTime><!--req,xs:string, end time of validity period, e.g., 2013-06-10T 12:00:00Z--></endTime>
</timeSpan>
</searchMatchItem>
</matchList>
</SmartSearchResult>

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

<attributeID><!--req, xs: string--></attributeID>


<attributeName><!--opt, xs: string--></attributeName>
<status><!--req, xs: string, "ok,illegal"--></status>
<flags><!--req, xs: integer--></flags>
<thresholds><!--req, xs: integer--></thresholds>
<value><!--req, xs: string--></value>
<worst><!--req, xs: integer--></worst>
<rawValue><!--req, xs: integer--></rawValue>
</TestResult>
</TestResultList>
</SMARTTestStatus>

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

<!--required, xs:boolean -->


</enabled>
<SNMPTrapReceiverList/>
<!--optional, all trap address information of SNMP in version 3-->
</SNMPAdvanced>

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 version="1.0" encoding="utf-8"?>


<SmartTestStatus version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">
<id><!--required, xs:string, SSD ID--></id>
<temprature><!--required, xs:integer, temperature, unit: degree--></temprature>
<powerOnDay><!--required, xs:integer, hour of use, unit: day(s)--></powerOnDay>
<selfEvaluaingStatus ><!--required, xs:string, self-evaluation status: "ok", "error"--></selfEvaluaingStatus>
<allEvaluaingStatus><!--required, xs:string, overall evaluation: "functional"-in good condition, "badsectors"-bad
block, "fault"-error--></allEvaluaingStatus>
<selfTestPercent><!--required, xs:integer, self-test progress--></selfTestPercent>
<selfTestStatus><!--required, xs:string, self-test status: "ok", "aborted", "interrupted", "failed", "unkown",
"electronic_element_error", "servo_error", "read_failed", "progress"-in progress, "not_tested", "not_recognized"--></
selfTestStatus>
<testType><!--required, xs:string, self-test type: "short", "expanded", "conveyance"-></testType>
<TestResultList><!--required, "Size=30"-->
<TestResult><!--list-->
<attributeID><!--required, xs:string, attribute ID--></attributeID>
<attributeName><!--optional, xs:string, attribute name--></attributeName>
<status><!--required, xs:string, status: "ok"-normal, "illegal"-error--></status>
<flags><!--required, xs:integer, attribute operation mark--></flags>
<thresholds><!--required, xs:integer, threshold--></thresholds>
<value><!--required, xs:string, current value--></value>
<worst><!--required, xs:integer, the worst value--></worst>
<rawValue><!--required, xs:integer, raw value--></rawValue>
</TestResult>
</TestResultList>
</SmartTestStatus>

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

<ifName><!--req, xs: string, 0: G1, 1: G2--></ifName>


</staticRoute>
</staticRouteList>

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

<StreamingChannelList version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">


<StreamingChannel/><!--opt, see details in XML_StreamingChannel-->
</StreamingChannelList>

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

<eventMode opt="all,list" />


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

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

<TargetEnhancement version="2.0" xmlns="http://www.isapi.org/ver20/XMLSchema">


<enabled><!--req,xs:boolean--></enabled>
</TargetEnhancement>

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

in XML_SmartCap are mutually exclusive-->


</isSupportShipsDetectionWithScene>
<isSupportthermometryOffLineCapture>
<!--optional, xs:boolean, whether device supports offline capture. If supports, this node returned and its value is
true; if not, it is not returned-->
</isSupportthermometryOffLineCapture>
<isSupportThermalTemperatureCorrect>
<!--optional, xs:boolean, whether device supports temperature calibration (related URI: /ISAPI/Thermal/channels/
<ID>/temperatureCorrect?format=json)-->
</isSupportThermalTemperatureCorrect>
<isSupportGreyScaleAlarm>
<!--optional, xs:boolean, whether device supports grayscale alarm. If supports, this node returned and its value is
true; if not, it is not returned-->
</isSupportGreyScaleAlarm>
<isSupportFaceSnapThermometry>
<!--optional, xs:boolean, whether device supports uploading captured face picture with temperature information:
true-support, no return-not support-->
</isSupportFaceSnapThermometry>
<isSupportTemperatureIntervalMeasurement>
<!--optional, xs:boolean, whether device supports interval temperature measurement. If supports, this node
returned and its value is true; if not, it is not returned-->
</isSupportTemperatureIntervalMeasurement>
</ThermalCap>

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

<SrcType><!--required, xs: string--></SrcType>


<SrcUrl><!--required, xs: string--></SrcUrl>
<SrcUrlMethods><!--required, xs: string--></SrcUrlMethods>
<SrcLogin><!--required, xs: string--></SrcLogin>
</SrcDescriptor>
<TrackSchedule>
<ScheduleBlockList>
<ScheduleBlock>
<ScheduleBlockGUID><!--required, xs: string--></ScheduleBlockGUID>
<ScheduleBlockType><!--required, xs: string--></ScheduleBlockType>
<ScheduleAction>
<id><!--required, xs: integer--></id>
<ScheduleActionStartTime>
<DayOfWeek><!--required, xs: string--></DayOfWeek>
<TimeOfDay><!--required, xs: string--></TimeOfDay>
</ScheduleActionStartTime>
<ScheduleActionEndTime>
<DayOfWeek><!--required, xs: string--></DayOfWeek>
<TimeOfDay><!--required, xs: string--></TimeOfDay>
</ScheduleActionEndTime>
<ScheduleDSTEnable><!--required, xs: boolean--></ScheduleDSTEnable>
<Description><!--required, xs: string--></Description>
<Actions>
<Record><!--required, xs: boolean--></Record>
<Log><!--required, xs: boolean--></Log>
<SaveImg><!--required, xs: boolean--></SaveImg>
<ActionRecordingMode><!--required, xs: string, 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)--></ActionRecordingMode>
</Actions>
</ScheduleAction>
</ScheduleBlock>
</ScheduleBlockList>
</TrackSchedule>
<CustomExtensionList>
<CustomExtension>
<CustomExtensionName><!--required, xs: string--></CustomExtensionName>
<enableSchedule><!--required, xs: boolean--></enableSchedule>
<SaveAudio><!--required, xs: boolean--></SaveAudio>
<PreRecordTimeSeconds><!--required, xs: integer--></PreRecordTimeSeconds>
<PostRecordTimeSeconds><!--required, xs: integer--></PostRecordTimeSeconds>
<HolidaySchedule>
<ScheduleBlock>
<ScheduleBlockGUID><!--required, xs: string--></ScheduleBlockGUID>
<ScheduleBlockType><!--required, xs: string--></ScheduleBlockType>
</ScheduleBlock>
</HolidaySchedule>
</CustomExtension>
</CustomExtensionList>
<IntelligentRecord><!--optional, xs:boolean, whether to enable VCA recording function: 0-no, 1-yes--></

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

<lockStatus><!--opt, xs:string, locking status: "unlock","locked"--></lockStatus>


<unlockTime><!--opt, xs:integer, unlocking remaining time, unit: second--></ unlockTime>
<retryLoginTime><!--opt, xs:integer, remaining login attempts--></retryLoginTime>
</userCheck>

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

<ipv6Address><!--dep, xs: string--></ipv6Address>


<bitMask><!--opt, xs: integer, bitmask IPv6 address--></bitMask>
<serialNumber><!--opt, xs: string--></serialNumber>
<macAddress><!--opt, xs: string--></macAddress>
<firmwareVersion><!--opt, req, xs: string--></firmwareVersion>
<managePortNo><!--opt, xs: integer--></managePortNo>
<userName><!--opt, xs: string--></userName>
<password><!--opt, xs: string--></password>
<srcInputPortNums><!--req, xs: integer--></srcInputPortNums>
<deviceID><!--dep, xs: string--></deviceID>
<deviceModel><!-- opt, xs: string, device model--></deviceModel>
</VideoSourceDescriptor>
</VideoSourceList>

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

<WhiteBalanceRed/><!--dep,xs:integer, this node depends on <WhiteBalanceStyle>-->


<WhiteBalanceBlue/><!--dep,xs:integer, this node depends on <WhiteBalanceStyle>-->
</WhiteBalance>

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

<!--dep,ro, xs:string, it is valid only when width is "auto"-->


</autoWidth>
<channel><!--opt, dep, xs:string, channel frequency, unit: MHz--></channel>
<autoChannel><!--dep,ro,xs:string, it is valid only when channel is "auto"--></autoChannel>
<transmitPower> <!--opt, xs:integer, "9,12,15,18,21,24,27", power, unit: dBm--><transmitPower>
<transmitPowerRealTime> <!--opt, xs:integer, real-time power, unit: dBm--><transmitPowerRealTime>
<countryID><!--opt,xs:integer,country code--></countryID>
</ChannelConfig>
</Wireless>

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

<!--opt, xs:string, DNS address ID, which starts from 1-->


</id>
<ipAddress>
<!--dep, xs:string-->
</ipAddress>
<ipv6Address>
<!--dep, xs:string-->
</ipv6Address>
</DNSAddress>
</DNSAddressList>
</WirelessStatus>

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>

B.2 Log Types for ISAPI


There are four major log types, i.e., alarm log, exception log, operation log, event log, and
information log. And each major type contains multiple minor types, see details in the following
contents.

963
Intelligent Security API (General) Developer Guide

Alarm Logs

Log Type Description


shortCircuit Short Circuit Alarm
brokenCircuit Open Circuit Alarm
alarmReset Alarm Reset
alarmNormal Return to Normal
passwordError Incorrect Password (3 Tmes in a Row)
idCardIllegally Invalid Card ID
keyPADRemove Keypad Tampered
keyPADRemoveRestore Keypad Restored
devRemove Device Tampered
devRemoveRestore Device Restored
belowAlarmLimit1 Sensor Value is Lower than Alarm Limit Value 1
belowAlarmLimit2 Sensor Value is Lower than Alarm Limit Value 2
belowAlarmLimit3 Sensor Value is Lower than Alarm Limit Value 3
belowAlarmLimit4 Sensor Value is Lower than Alarm Limit Value 4
aboveAlarmLimit1 Sensor Value is Higher than Alarm Limit Value 1
aboveAlarmLimit2 Sensor Value is Higher than Alarm Limit Value 2
aboveAlarmLimit3 Sensor Value is Higher than Alarm Limit Value 3
aboveAlarmLimit4 Sensor Value is Higher than Alarm Limit Value 4
UrgencyBtnON Panic Button Triggered
UrgencyBtnOFF Panic Button Restored
virtualDefenceBandit Virtual Zone Burglary Alarm
virtualDefenceFire Virtual Zone Fire Alarm
virtualDefenceUrgent Virtual Zone Panic Alarm
motDetStart Motion Detection Alarm Started
motDetStop Motion Detection Alarm Stopped
hideAlarmStart Device Blocked
hideAlarmStop Device Blocking Alarm Restored

964
Intelligent Security API (General) Developer Guide

Log Type Description


UPSAlarm UPS Alarm
electricityMeterAlarm Coulombmeter Alarm
switchPowerAlarm Switch Power Supply Alarm
GasDetectSys Gas Detection Alarm
transformerTempAlarm Transformer Temperature Alarm
tempHumiAlarm Temperature and Humidity Sensor Alarm
UPSAlarmRestore UPS Alarm Restored
electricityMeterAlarmRestore Coulombmeter Alarm Restored
switchPowerAlarmRestore Switch Power Supply Alarm Restored
GasDetectSysRestore Gas Detection Alarm Restored
transformerTempAlarmRestore Transformer Temperature Alarm Restored
tempHumiAlarmRestore Temperature-Humidity Sensor Alarm Restored
waterLevelSensorAlarm Temperature-Humidity Sensor Alarm Restored
waterLevelSensorAlarmRestore Flood Sensor Restored
dustNoiseAlarm Dust and Noise Sensor Alarm
dustNoiseAlarmRestore Dust and Noise Sensor Alarm Restored
environmentalLogger Environmental Data Collector Alarm
environmentalLoggerAlarm Environmental Data Collector Restored
triggerTemper Detector Tampered
triggerTemperRestore Detector Restored
emergencyCallHelp Panic Alarm
emergencyCallHelpRestore Panic Alarm Restored
consult Consultation Alarm
consultRestore Consultation Alarm Restored
deviceMoveAlarm Device Motion Alarm
deviceMoveAlarmRestore Device Motion Alarm Restored
earlyWarningAlarm Early Warning Zone Alarm
earlyWarningAlarmRestore Early Warning Zone Restored
warningAlarm Warning Zone Alarm

965
Intelligent Security API (General) Developer Guide

Log Type Description


warningAlarmRestore Warning Zone Restored
wirelessOutputModTamperEvident Wireless Output Expander Tampered
wirelessOutputModTamperEvidentReset Wireless Output Expander tamper Restored
wirelessRepeaterTamperEvident Wireless Repeater Tampered
wirelessRepeaterTamperEvidentReset Wireless Repeater tamper Restored
wirelessSirenTamperEvident Wireless Siren Tampered
wirelessSirenTamperEvidentReset Wireless Siren Tamper Restored
wirelessKeypadTamperEvident Wireless Keypad Tampered
wirelessKeypadTamperEvidentReset Wireless Keypad Tamper Restored
wirelessCardReaderTamperEvident Wireless Card Reader Tampered
wirelessCardReaderTamperEvidentReset Wireless Card Reader Tamper Restored
softZoneMedicalAlarm Virtual Zone Medical Alarm
accessControllerEvent Access Controller Event
videoIntercomEvent Video Intercom Event
GJDEvent GJD Security Control Panel Event
LuminateEvent LUMINITE Security Control Panel Event
OPTEXEvent OPTEX Security Control Panel Event
cameraDetectorEvent Detector Event
securityControlPanelEvent Security Control Panel Event
RS-485AlarmInputModuleEvident RS-485 Zone Module Tampered
RS-485AlarmInputModuleTamperReset RS-485 Zone Module Tampering Reset
RS-485WirelessReceiverTamperEvident RS-485 Wireless Receiver Module Tampered
RS- RS-485 Wireless Receiver Module Tampering Reset
485WirelessReceiverTamperEvidentReset
dredgerDetectionAlarm Dredger Detection Alarm
crossLineAlarm Line Crossing Alarm
crossLineAlarmRestore Line Crossing Alarm Restored
HFPDAlarmStart High Frequently Appeared Person Alarm Started
HFPDAlarmStop High Frequently Appeared Person Alarm Stopped

966
Intelligent Security API (General) Developer Guide

Log Type Description


LFPDAlarmStart Low Frequency Person Alarm Started
LFPDAlarmStop Low Frequency Person Alarm Stopped
safetyHelmetAlarmStart Hard Hat Detection Alarm Started
safetyHelmetAlarmStop Hard Hat Detection Alarm Stopped
dataPrealarm Traffic Pre-alarm
playCellphoneStart Playing Cellphone Alarm Started
playCellphoneStop Playing Cellphone Alarm Stopped
sleepOnDutyStart Sleeping on Duty Alarm Started
sleepOnDutyStop Sleeping on Duty Alarm Stopped
vibrationDetectionStart Vibration Detection Alarm Started
vibrationDetectionStop Vibration Detection Alarm Stopped
fireEscapeDetectionStart Fire Engine Access Detection Started
fireEscapeDetectionStop Fire Engine Access Detection Ended
takingElevatorDetectionStart Elevator Detection Started
takingElevatorDetectionStop Elevator Detection Ended
unregisteredStreetVendorStart Unlicensed Business Vendor Detection Started
unregisteredStreetVendorStop Unlicensed Business Vendor Detection Ended
stallOutsideShopStart Business Outside Store Detection Started
stallOutsideShopStop Business Outside Store Detection Ended
stallOccupyingRoadStart Business on Sidewalk Detection Started
stallOccupyingRoadStop Business on Sidewalk Detection Ended
illegalHeapStart Pile Goods or Materials in Chaos Detection Started
illegalHeapStop Pile Goods or Materials in Chaos Detection Ended
illParkofNonMotorVehicleStart Non-Motor Vehicles Parking in Chaos Detection
Started
illParkofNonMotorVehicleStop Non-Motor Vehicles Parking in Chaos Detection
Ended
illegalOutdoorAdvertisementStart Unauthorized Outdoor Advertisement Detection
Started

967
Intelligent Security API (General) Developer Guide

Log Type Description


illegalOutdoorAdvertisementStop Unauthorized Outdoor Advertisement Detection
Ended
packGarbageStart Packaged Garbage Detection Started
packGarbageStop Packaged Garbage Detection Ended
stallUnderUmbrellaStart Running Business with Patio Umbrella Detection
Started
stallUnderUmbrellaStop Running Business with Patio Umbrella Detection
Ended
dustbinOverflowStart Overflowing Dustbin Detection Started
dustbinOverflowStop Overflowing Dustbin Detection Ended
exposeGarbageStart Exposed Garbage Detection Started
exposeGarbageStop Exposed Garbage Detection Ended
hangClothingAlongStreetStart Hanging Clothes On Street Detection Started
hangClothingAlongStreetStop Hanging Clothes On Street Detection Ended
ATMPanelStart ATM Panel Alarm Started
ATMPanelStop ATM Panel Alarm Ended
ATMSurroundStart ATM Surround Alarm Started
ATMSurroundStop ATM Surround Alarm Ended
ATMFaceStart ATM Face Alarm Started
ATMFaceStop ATM Face Alarm Ended
ATMSafetyCabinStart ATM Safety Cabin Alarm Started
ATMSafetyCabinStop ATM Safety Cabin Alarm Ended
soundIntensityMutation Sudden Increase of Sound Intensity Detection
soundIntensityMutationStop Sudden Increase of Sound Intensity Detection Ended
soundIntensitySteepFall Sudden Decrease of Sound Intensity Detection
soundIntensitySteepFallStop Sudden Decrease of Sound Intensity Detection
Ended
moveAlarm Motion Alarm
moveAlarmRestored Motion Alarm Restored
lowTemperatureAlarm Low Temperature Alarm

968
Intelligent Security API (General) Developer Guide

Log Type Description


lowTemperatureAlarmRestored Low Temperature Alarm Restored
highTemperatureAlarm High Temperature Alarm
highTemperatureAlarmRestored High Temperature Alarm Restored
TemperatureIntervalMeasurementStart Interval Temperature Measurement Started
TemperatureIntervalMeasurementStop Interval Temperature Measurement Stopped

Exception Logs

Log Type Description


powerOn Power on
powerOff Power off
WDTReset WDT Reset
lowBatteryVoltage Low Battery Voltage
ACLoss AC Power Disconnected
ACRestore AC Power Restored
RTCException RTC Real-​time Clock Exception
netFailure Network Disconnected
netRestore Network Connected
telLineBroken Telephone Line Disconnected
telLineRestore Telephone Line Connected
expanderBusLoss Bus Expander Disconnected
expanderBusRestore Bus Expander Connected
keypadBusLoss Keypad Expander Disconnected
keypadBusRestore Keypad Expander Connected
sensorFailure Analog Sensor Fault
sensorRestore Analog Sensor Restored
RS485DisConnect RS-485 Channel Disconnected
RS485Connect RS-486 Channel Connected
batteryVoltageRestore Battery Voltage Restored
wiredNetAbnormal Wired Network Exception

969
Intelligent Security API (General) Developer Guide

Log Type Description


wiredNetRestore Wired Network Restored
GPRSAbnormal GPRS Exception
GPRSRestore GPRS Restored
3GAbnormal 3G Network Exception
3GRestore 3G Network Restored
SIMCardAbnormal SIM Card Exception
SIMCardRestore SIM Card Restored
VILost Video Loss
illegalAccess Illegal Login
HDFull HDD Full
HDError HDD Error
DCDLost MODEM Disconnected
IPConflict IP Address Conflicted
netbroken Network Disconnected
recError Recording Error
VIError Video Input Exception(Only for Analog Channel)
formatHDDError Remote HDD Formatting Failed
USBError USB Communication Error
USBRestore USB Communication Error Restored
printError Printer Error
printRestore Printer Error Restored
subsystemCommunicationError Sub-board Communication Error
IPCIPconflict Network Camera IP Address Conflicted
VIMisMatch Video Standard Mismatches
MCURestart MCU Restarted
GprsMouleFault GPRS Module Fault
telephoneFault Telephone Module Fault
wifiAbnormal Wi-Fi Exception
wifiRestore Wi-Fi Restored

970
Intelligent Security API (General) Developer Guide

Log Type Description


RFAbornal RF Exception
RFRestore RF Restored
detectorOnline Detector Connected
detectorOffline Detector Disconnected
detectorBatteryNormal Detector Battery Restored
detectorBatteryLow Detector Battery Low
dataTrafficOverflow Cellular Network Data Exceeded
radarSignalFault Radar Transmitter Fault
radarSignalFaultRestore Radar Transmitter Restored
wirelessOutputModOffline Wireless Output Expander Disconnected
wirelessOutputModOnline Wireless Output Expander Connected
wirelessRepeaterOffline Wireless Repeater Disconnected
wirelessRepeaterOnline Wireless Repeater Connected
triggerOffline Trigger Disconnected
triggerOnline Trigger Connected
wirelessSirenOffline Wireless Siren Disconnected
wirelessSirenOnline Wireless Siren Connected
sirenLowPower Siren Battery Low
sirenPowerRecovery Siren Battery Restored
ipcDisconnect Network Camera Disconnected
ipcConnectRecovery Network Camera Connected
sendMailFailed Sending Email Failed
eventUploadException Uploading Event Failed or Uploaded Event Lost
keyfobLowPower Low Keyfob Battery
keyfobPowerRecovery Normal Keyfob Battery
detectorOvertime Detector Heartbeat Timed Out
detectorOvertimeRecovery Detector Heartbeat Timeout Restored
wSirenOvertime Wireless Siren Heartbeat Timed Out
wSirenOvertimeRecovery Wireless Siren Heartbeat Timeout Restored

971
Intelligent Security API (General) Developer Guide

Log Type Description


wOutputOvertime Wireless Output Module Heartbeat Timed Out
wOutputOvertimeRecovery Wireless Output Module Heartbeat Timeout
Restored
wRepeaterOvertime Wireless Repeater Heartbeat Timed Out
wRepeaterOvertimeRecovery Wireless Repeater Heartbeat Timeout Restored
rfJamming RF Wireless Communication Blocked
rfJammingRecovery RF Wireless Communication Blocking Restored
batteryMiss Storage Battery Loss
batteryMissRecovery Storage Battery Restored
ARCUploadFailed Uploading to ARC Failed
ARCUploadSuccessed Uploaded to ARC
ARCUploadRecovery Uploading to ARC Restored
wirelessKeypadOffline Wireless Keypad Disconnected
wirelessKeypadOnline Wireless Keypad Connected
wirelessCardReaderOffline Wireless Card Reader Disconnected
wirelessCardReaderOnline Wireless Card Reader Connected
keypadLowPower Low Keypad Battery
keypadLowPowerRecovery Low Keypad Battery Recovered
cardReaderLowPower Low Card Reader Battery
cardReaderLowPowerRecovery Low Card Reader Battery Recovered
wKeypadOvertime Wireless Keypad Heartbeat Timed Out
wKeypadOvertimeRecovery Wireless Keypad Heartbeat Timeout Recovered
wCardReaderOvertime Wireless Card Reader Heartbeat Timed Out
wCardReaderOvertimeRecovery Wireless Card Reader Heartbeat Timeout Recovered
ATSFailed ATS Failed
ATSRecovery ATS Recovered
LANPathFailed Wired or Wireless Connection Failed
LANPathRecovery Wired or Wireless Connection Recovered
mobileNetPathFailed Mobile Network Connection Failed

972
Intelligent Security API (General) Developer Guide

Log Type Description


mobileNetPathRecovery Mobile Network Connection Recovered
RS-485AlarmInputModuleDisconnected RS-485 Zone Module Offline
RS-485AlarmInputModuleConnected RS-485 Zone Module Online
RS-485WirelessReceiverDisconnected RS-485 Wireless Receiver Module Offline
RS-485WirelessReceiverConnected RS-485 Wireless Receiver Module Online
keypadDisconnected Keypad Offline
keypadConnected Keypad Online
overvoltage High Supply Voltage
undervoltage Low Supply Voltage
highHDTemperature HDD High Temperature
lowHDTemperature HDD Low Temperature
hdImpact HDD Impact
hdBadBlock HDD Bad Sector
severeHDFailure HDD Severe Fault
safetyHelmetException Hard Hat Detection Exception
ezvizUpgradeException Hik-Connect Upgrade Exception

Operation Logs

Log Type Description


guard Normal Arming
unguard Normal Disarming
bypass Bypass
duressAccess Duress
localReboot Local Reboot
remoteReboot Remote Reboot
localUpgrade Local Upgrade
remoteUpgrade Remote Upgrade
recoveryDefultParam Restore Default Settings
outpulAlarm Remote Alarm Output Control

973
Intelligent Security API (General) Developer Guide

Log Type Description


accessOpen Access Control: Open
accessClose Access Control : Closed
sirenOpen Siren: On
sirenClose Siren: Off
modZoneConfig Zone Settings
modAlarmoutConfig Alarm Output Settings
modAnalogConfig Sensor Settings
RS485Config RS-485 Channel Settings
phoneConfig Dialing Settings
addAdmin Added Administrator
modAdminParam Edited Administrator
delAdmin Deleted Administrator
addNetUser Added DVR/NVR Operator
modNetUserParam Edited DVR/NVR Operator
delNetUser Deleted DVR/NVR Operator
addOperator Added Camera Operator
modOperatorPw Edited Camera Operator Password
delOperator Deleted Camera Operator Password
addKeyPadUser Added Keypad/Card Reader User
delKeyPadUser Deleted Keyboard/Card Reader User
remoteUserLogin Remote Login
remoteUserLogout Remote Logout
remoteGuard Remote Arming
remoteUnguard Remote Disarming
modHostConfig Edited Control Panel Settings
restoreBypass Bypass Restored
alarmOutOpen Turned on Output
alarmOutClose Turned off Output
modSubsystemParam Edited Subsystem Parameters

974
Intelligent Security API (General) Developer Guide

Log Type Description


groupBypass Group Bypass
groupBypassRestore Group Bypass Restored
modGprsParam Edited GPRS Parameters
modNetReportParam Edited Network Report Settings
modReportMode Edited Uploading Mode
modGatewayParam Edited Access Control Settings
remoteStartRec Remote: Started Recording
remoteStopRec Remote: Stopped Recording
transChanStart Transparent Transmission Started
transChanStop Transparent Transmission Stopped
startVoiceTalk Two-way Audio Started
stopVoiceTalk Two-way Audio Terminated
remotePlayByFile Remote: Playback or Downloaded by File
remotePlayByTime Remote: Playback by Time
remotePTZCtrl Remote: PTZ Control
remoteLockFile Remote: Locked File
remoteUnlockFile Remote: Unlocked File
remoteFormatHd Remote: Formatted HDD
remoteDownloadCfgFile Remote: Exported Configuration Files
remoteUploadCfgFile Remote: Imported Configuration Files
remoteDownloadRecFile Remote: Exported File
stayArm Stay Arming
quickArm Instant Arming
keyswitchArm Key Zone Arming
keyswitckDisarm Key Zone Disarming
clearAlarm Alarm Cleared
modFaultConfig Edited System Fault Settings
modAlarmOutConfig Edited Event Alarm Output Settings
searchExternalModule Searched for External Module

975
Intelligent Security API (General) Developer Guide

Log Type Description


registerExternalModule Re-registered External Module
closeKeypadAlarm Disabled Keypad Beep
mod3GConfig Edited Mobile Parameters
modPrintConfig Edited Printer Parameters
SDCardFormat Formatted SD Card
upgradeSubsystem Upgraded Sub-board
planArmConfig Arming/Disarming Schedule Configuration
phoneArm SMS Arming
phoneStayArm SMS Stay Arming
phoneQuickArm SMS Instant Arming
phoneDisarm SMS Disarming
phoneClearAlarm SMS Alarm Cleared
whiteConfig Allowlist Settings
timeTriggerConfig Enabled/Disabled Trigger Configuration by Schedule
pictureConfig Capture Settings
tamperConfig Zone Tamper-Proof Settings
remoteKeypadUpgrade Remote: Upgraded Keypad
singlePartionArmORDisarm Single-Zone Arming/Disarming
cardConfiguration Card Settings
cardAramORDisarm Arming/Disarming by Card
expendNetCenterConfig Extension Network Center Settings
netCardConfig NIC Settings
DDNSConfig DDNS Settings
RS485BusConfig RS-485 Bus Settings
RS485BusReRegistration RS-485 Bus Re-​registration
remoteOpenElectricLock Remote: Unlocked
remoteCloseElectricLock Remote: Locked
localOpenElectricLock Local: Unlocked
localCloseElectricLock Local: Locked

976
Intelligent Security API (General) Developer Guide

Log Type Description


openAlarmLamp Remote: Turned On Alarm Lamp
closeAlarmLamp Remote: Turned Off Strobe
temporaryPassword Operation Record of Temporary Password
oneKeyAwayArm One-Push Away Arming
oneKeyStayArm One-Push Stay Arming
remoteDelAllVideoAnalysisTask Empty All Video Analysis Tasks Remotely
singleZoneArm Single-Zone Arming
singleZoneDisarm Single-Zone Disarming
HIDDNSConfig HiDDNS Settings
remoteKeypadUpdata Remote: Upgraded Keypad
zoneAddDetector Added Detector
zoneDelDetector Deleted Detector
qureyDetectorSignal Checked Detector Signal Strength on Security
Control Panel
qureyDetectorBattery Checked Detector Remaining Battery on Security
Control Panel
setDetectorGuard Detector Arming
setDetectorUnguard Detector Disarming
setWifiParm Wi-Fi Settings
voiceOpen Audio On
voiceClose Mute
functionKeyEnable Enabled Function Key
functionKeyDisable Disabled Panel Function Button
readCard Swiped Patrol Card
localDeviceActive Activated Device Remotely
localFactoryDefault Restored Factory Settings Locally
remoteFactoryDefault Restored Factory Settings Remotely
addWirelessOutputMod Added Wireless Output Module
delWirelessOutputMod Deleted Wireless Output Module

977
Intelligent Security API (General) Developer Guide

Log Type Description


addWirelessRepeater Added Wireless Repeater
delWirelessRepeater Deleted Wireless Repeater
telListConfig Mobile Phone Number Settings
searchRFSignal Checked RF Signal
addWirelessSiren Added Wireless Siren
delWirelessSiren Deleted Wireless Siren
flowConfig Cellular Data Limit Settings
addRemoter Added Keyfob
delRemoter Deleted Keyfob
addCard Added Card
delCard Deleted Card
remoteAddIpc Added Network Camera
remoteDelIpc Deleted Network Camera
remoteSetIpc Edited Network Camera
localAddressFilterConfig/ Local/Remote Address Filter Configuration
remoteAddressFilterConfig
enterProgramMode Programming Mode Enabled for Keypad
existProgramMode Programming Mode Disabled for Keypad
localIOTCfgFileInput Local operation: import IoT configuration file
localIOTCfgFileOutput Local operation: export IoT configuration file
remoteIOTCfgFileInput Remote operation: import IoT configuration file
remoteIOTCfgFileOutput Remote operation: export IoT configuration file
localIOTAdd Local operation: add IoT channel
remoteIOTAdd Remote operation: add IoT channel
localIOTDelete Local operation: delete IoT channel
remoteIOTDelete Remote operation: delete IoT channel
localIOTSet Local operation: configure IoT channel
remoteIOTSet Remote operation: configure IoT channel
armWithFault Armed with Fault

978
Intelligent Security API (General) Developer Guide

Log Type Description


entryDelay Entering and Exiting Delay
modArmConfig Edit Arming Parameters
modCertificateStandard Edit Authentication Standard
entryPaceTest Pacing Mode Entered
exitPaceTest Pacing Mode Exited
addNetOperator Add Operator
modNetOperator Edit Operator Information
delNetOperator Delete Operator
addNetInstaller Add Installer
modNetInstaller Edit Installer Information
delNetInstaller Delete Installer
addManufacturer Add Manufacturer
modManufacturer Edit Manufacturer Information
delManufacturer Delete Manufacturer
upgradeSuccessed Upgraded
upgradeFailed Upgrading Failed
zoneDisabled Zone Shielded
localCfgSecurity Security Parameter Configured Locally
remoteCfgSecurity Security Parameter Configured Remotely
remoteGetParaSecurity Security Parameters Obtained Remotely
delRS-485InputModule RS-485 Zone Module Deleted
delRS-485OutputModule RS-485 Output Module Deleted
delRS-485WirelessReceiver RS-485 Wireless Receiver Module Deleted
enrollRS-485InputModule RS-485 Zone Module Registered
enrollRS-485OutputModule RS-485 Output Module Registered
delRS-485OutputModule RS-485 Output Module Deleted
enrollRS-485WirelessReceiver RS-485 Wireless Receiver Module Registered
enrollKeypad Keypad Registered
delKeypad Keypad Deleted

979
Intelligent Security API (General) Developer Guide

Log Type Description


scheduledAngleCalibration Scheduled Angle Calibration
addZone Added Zone
modZone Edited Zone
delZone Deleted Zone
addAlarmLine Added Trigger Line
modAlarmLine Edited Trigger Line
delAlarmLine Deleted Trigger Line
remoteHFPDconfig/​localHFPDconfig Remote/Local Configuration of Frequently Appeared
Person Detection
remoteLFPDconfig Remote Configuration of Low Frequency Person
Detection
modifyUserPassword Password Changed
logOut Logged Out
indicatorStatusSettings Indicator Switch Settings
wiredNetworkSettings Wired Network Settings
notificationSettings Message Notification Settings
alarmCenterSettings Alarm Receiving Center Settings
videoRecordStrategySettings Video Recording Strategy Settings
cameraLinkageSettings Camera Linkage Settings
armingDisarmingScheduleSettings Arming and Disarming Schedule Settings
alarmSpeedSettings Speed Threshold Settings for Triggering Alarms
videoTrackingSwitchSettings Video Tracking Switching Settings
frequencySettings Frequency Band Settings
masterSlaveTrackingSettings Master-Slave Tracking Settings
parkingPointSettings Parking Point Settings
administratorEdited Administrator Parameters Edited
securityConfigured Security Settings
relayParametersEdited Relay Parameters Edited
radarSensitivitySettings Radar Sensitivity Settings

980
Intelligent Security API (General) Developer Guide

Log Type Description


detectAngandDistanceSettings Detector Angle and Range Settings
masterSlaveRadarSettings Master Radar and Slave Radar Settings
remoteCheckTime Remote: Manual Time Synchronization
remoteParamSimpleDefault Remote: Partly Restore to Default Settings
remoteParamFactoryDefault Remote: Restore All to Default Settings
localAutoSwitchConfig Configure Auto Power On or Off Locally
remoteAutoSwitchConfig Configure Auto Power On or Off Remotely
remoteCfgWirelessDialParam Configure wireless dial-up parameters remotely
localCfgWirelessDialParam Configure wireless dial-up parameters locally
remoteCfgWirelessSmsParam Configure wireless message parameters remotely
localCfgWirelessSmsParam Configure wireless message parameters locally
remoteCfgWirelessSmsSelfHelp Configure SMS self-service parameters remotely
localCfgWirelessSmsSelfHelp Configure SMS self-service parameters locally
remoteCfgWirelessNetFlowParam Configure wireless traffic parameters remotely
localCfgWirelessNetFlowParam Configure wireless traffic parameters locally
scaleCfg Scale Settings
radarTrailCfg Radar Pattern Settings
MapImportCfg Map Importing Settings
radarCalibrationCfg Radar Calibration Settings
LocalEzvizOperation Local EZVIZ Operations
RemoteEzvizOperation Remote EZVIZ Operations
SSHEnabled SSH Enabled
SSHDisabled SSH Disabled
installationModeEntered Installation Mode Enabled
installationModeExited Installation Mode Disabled
diagnosisModeConfigured Diagnosis Mode Configured
fileExported File Exported
audioFileUploaded Audio File Uploaded
audioFileDeleted Audio File Deleted

981
Intelligent Security API (General) Developer Guide

Log Type Description


PIRCAMCapture PIRCAM Captured
SIPIntercomStarted SIP Intercom Started
SIPIntercomEnded SIP Intercom Ended
enrollmentModeEntered Registration Mode Enabled
enrollmentModeExited Registration Mode Disabled
videoAudioSelfCheckStarted Self-Test of Audio and Video Started
videoAudioSelfCheckStopped Self-Test of Audio and Video Stopped
cardReaderunlocked Card Reader Unlocked
cardReaderlocked Card Reader Locked
videoAudioSelfCheckEnded Self-Test of Audio and Video Ended
previewStart Live View Started
previewStop Live View Stopped
remoteDelAllVideoAnalysisTask All Video Analysis Tasks Cleared (One-Touch)
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
AITargetBPAdd Reference picture for AI target comparison added
AITargetBPDelete Reference picture for AI target comparison deleted
AITargetBPSearch Reference picture for AI target comparison AI
searched for
AITargetBPUpdate Reference picture for AI target comparison updated
AIRuleConfigTrigger AI rule linkage configured
AudioFileImport Audio file imported
AudioFileDownLoad Audio file downloaded
cardNoNotRegistered Card No. not registered
LocalBackupConfig Local hot spare device configuration
RemoteBackupConfig Remote hot spare device configuration
remoteAIModelAdd Model package added

982
Intelligent Security API (General) Developer Guide

Log Type Description


remoteAIModelQuery Model package searched
remoteAIModelDelete Model package deleted
remoteAIModelUpdate Model package updated
remoteAIPicturePollingTaskAdd Picture polling analysis task added
remoteAIPicturePollingTaskQuery Picture polling analysis task searched
remoteAIPicturePollingTaskDelete Picture polling analysis task deleted
remoteAIPicturePollingTaskModify Picture polling analysis task edited
remoteAIVideoTaskAdd Video analysis task added
remoteAIVideoTaskQuery Video analysis task searched
remoteAIVideoTaskDelete Video analysis task deleted
remoteAIVideoTaskModify Video analysis task edited
remoteAIPictureTaskAdd Picture analysis task added
remoteAIPictureTaskQuery Picture analysis task searched
remoteAIPictureTaskDelete Picture analysis task deleted
remoteAIPictureTaskModify Picture analysis task edited
remoteAIVideoPollingTaskAdd Video polling analysis task added
remoteAIVideoPollingTaskQuery Video polling analysis task searched
remoteAIVideoPollingTaskDelete Video polling analysis task deleted
remoteAIVideoPollingTaskModify Video polling analysis task edited
AIRuleConfig AI rule configuration
localParamFactoryDefault Restore to default settings locally
remoteParamFactoryDefault Restore to default settings remotely
remoteDeleteAllVerifyOrCapPics Delete all authenticated or captured face pictures
remotely
localDeleteAllVerifyOrCapPics Delete all authenticated or captured face pictures
locally
remoteDeleteEventsAtSpecTime Delete events by specified time remotely
localDeleteEventsAtSpecTime Delete events by specified time locally
remoteOpenSummerTime Enable DST remotely

983
Intelligent Security API (General) Developer Guide

Log Type Description


localOpenSummerTime Enable DST locally
remoteCloseSummerTime Disable DST remotely
localCloseSummerTime Disable DST locally
remoteEZVIZUnbind Unbind from EZVIZ cloud remotely
localEZVIZUnbind Unbind from EZVIZ cloud locally
enterLocalUIBackground Enter UI background
remoteDeleteFaceBaseMap Delete registered face pictures remotely
localDeleteFaceBaseMap Delete registered face pictures locally

Event Logs

Log Type Description


SDKSchool SDK Synchronization
selfTimeSchool Time Synchronization by Schedule
insertSubsystem Plugged in Sub-board
pullOutSubsystem Pulled out Sub-board
autoArm Auto Arming
autoDisarm Auto Disarming
triggerOn Activated Trigger by Schedule
triggerOff Deactivated Trigger by Schedule
autoArmFailed Auto Arming Failed
autoDisarmFailed Auto Disarming Failed
triggerOnFailed Activating Trigger Failed
triggerOffFailed Deactivating Trigger Failed
mandatoryAlarm Forced Arming
keyPADlocked Keypad Locked
keyPADunlocked Keypad Unlocked
insetUSB Plugged in USB Flash Drive
pulloutUSB Removed USB Flash Drive
lateRemind Late to Disarm

984
Intelligent Security API (General) Developer Guide

Log Type Description


keypadUnlocked Unlocked Keypad
timeSynchronization Time Synchronization
armFailed Arming Failed
ARCStart ARC Connected
locked Locked

Information Logs

Log Type Description


doubleVerificationPass Double Verification Completed
hdFormatStart Formatting HDD Started
hdFormatStop Formatting HDD Stopped
wirelessRunningStatus Wireless Network Running Status
BackupInfo Hot Spare Information
addUserInfo Added person information (access control
permission)
modifyUserInfo Edit person information (access control permission)
clearUserInfo Delete person information by employee No. (access
control permission)
clearAllUser Delete all person information (access control
permission)

B.3 Supported Alarm/Event Types


This part lists the alarm or event types that can be received or subscribed via Intelligent Security
API and the corresponding values to be set for getting the details.

Alarm/Event Type Value of <type> Alarm/Event Details


Intrusion Detection fielddetection Refer to Intelligent Security API (Intelligent Analysis
and Event) _Developer Guide for details.
Line Crossing Detection linedetection
Region Entrance regionEntrance
Detection
Region Exiting Detection regionExiting

985
Intelligent Security API (General) Developer Guide

Alarm/Event Type Value of <type> Alarm/Event Details


Loitering Detection loitering
People Gathering group
Detection
Fast Moving Detection rapidMove
Parking Detection parking
Unattended Baggage unattendedBagga
Detection ge
Object Removal attendedBaggage
Detection
Absence Alarm leavePosition
People Number Changed peopleNumChang
Alarm e
Fast Moving Alarm running
Violent Motion Alarm violentMotion
People Falling Down failDown
Alarm
Overstay Alarm retention
People Counting Alarm PeopleCounting
Temperature TMA Refer to Intelligent Security API (Thermal) _
Measurement Alarm Developer Guide for details
Temperature TMPA
Measurement Pre-Alarm
Temperature Difference TDA
Alarm
Fire Source Detection fireDetection
Smoke Detection smokeDetection
Fire and Smoke smokeAndFireDet
Detection ection
Ship Detection shipsDetection
Face Detection Alarm facedetection Refer to Intelligent Security API (Intelligent Analysis
and Event) _Developer Guide for details.
Face Capture Alarm faceCapture

986
Intelligent Security API (General) Developer Guide

Alarm/Event Type Value of <type> Alarm/Event Details


Face Picture Comparison alarmResult
Result
Stranger Detection whiteFaceContras
Alarm t
High Frequently Person HFPD
Detection
Low Frequency Person LFPD
Detection
Waiting Time Detection personQueueTim
Alarm e
People Queuing-Up personQueueCou
Alarm nting
Multi-​Target-​Type mixedTargetDetect
Detection Alarm ion
Traffic Incident Alarm AID Refer to Intelligent Security API (Traffic
Enforcement) _Developer Guide for details
Traffic Violation TFS
Enforcement Alarm
Traffic Data Statistics TPS
Alarm
ANPR Alarm ANPR Refer to Intelligent Security API (ANPR) _Developer
Guide for details
Blocklist and Allowlist vehicleMatchResu
ANPR Alarm lt
Vehicle Feature vehicleRcogResult
Recognition Alarm
Radar Measurement radarMeasureme
Data nt
Heat Map Alarm heatmap Refer to Intelligent Security API (Intelligent Analysis
and Event) _Developer Guide for details
Face and ID Card cardMatch Refer to Intelligent Security API (Access Control on
Recognition Alarm Person) _Developer Guide for details
Hot Spare Exception hotSpare The alarm or event details will be provided in the
Alarm further versions.

987
Intelligent Security API (General) Developer Guide

Alarm/Event Type Value of <type> Alarm/Event Details


Overspeed Alarm overSpeed The alarm or event details will be provided in the
further versions.
Temperature Too High highTempAlarm The alarm or event details will be provided in the
Alarm further versions.
Acceleration Exception abnormalAccelerat The alarm or event details will be provided in the
Alarm ion further versions.
Collision Alarm collision The alarm or event details will be provided in the
further versions.
Rollover Detection rollover The alarm or event details will be provided in the
further versions.
Abnormal Driving abnormalDriving The alarm or event details will be provided in the
Behavior Detection further versions.
GPS Information GPSUpload The alarm or event details will be provided in the
Uploaded further versions.
Video Standard PALMismatch The alarm or event details will be provided in the
Mismatched further versions.
Alarm Input Alarm IO
Motion Detection Alarm VMD XML_EventNotificationAlert_MotionDetectionMs
g
Video Loss Alarm videoloss XML_EventNotificationAlert_VideoLossAlarmMsg
Video Tampering Alarm shelteralarm XML_EventNotificationAlert_VideoTamperingAlar
mMsg
Defocus Alarm defocus XML_EventNotificationAlert_DefocusDetectionAla
rmMsg
Audio Exception Alarm audioexception XML_EventNotificationAlert_AudioExceptionAlar
mMsg
Scene Changed Alarm scenechangedete XML_EventNotificationAlert_SceneChangeDetecti
ction onAlarmMsg
PIR Alarm PIR XML_EventNotificationAlert_PIRAlarmMsg
HDD Full diskfull The alarm or event details will be provided in the
further versions.
HDD Error diskerror XML_EventNotificationAlert_HDDErrorAlarmMsg

988
Intelligent Security API (General) Developer Guide

Alarm/Event Type Value of <type> Alarm/Event Details


Network Disconnected nicbroken The alarm or event details will be provided in the
further versions.
IP Address Conflicted ipconflict The alarm or event details will be provided in the
further versions.
Illegal Login Alarm illaccess XML_EventNotificationAlert_IllegalLoginAlarmMs
g
PoE Power Exception poe The alarm or event details will be provided in the
Alarm further versions.
Video Exception Alarm videoException The alarm or event details will be provided in the
further versions.
Recording Exception recordException The alarm or event details will be provided in the
Alarm further versions.
HDD Unformatted Alarm diskUnformat The alarm or event details will be provided in the
further versions.
Supply Voltage Exception voltageinstable JSON_EventNotificationAlert_voltageinstable
Alarm
HDD High Temperature highHDTemperatu JSON_EventNotificationAlert_HDDHighTemperatu
re reEventMsg
HDD Low Temperature lowHDTemperatur JSON_EventNotificationAlert_HDDLowTemperatur
e eEventMsg
HDD Impact hdImpact JSON_EventNotificationAlert_HDDImpactEventMs
g
HDD Bad Sector hdBadBlock JSON_EventNotificationAlert_HDDBadSectorEvent
Msg
HDD Severe Fault severeHDFailure JSON_EventNotificationAlert_HDDSevereFaultEve
ntMsg
Certificate Expiry Alarm certificateRevocat JSON_EventNotificationAlert_CertificateExpiryAlar
ion mMsg
Network Traffic Pre- dataPrealarm JSON_EventNotificationAlert_NetworkTrafficPreal
alarm armMsg
Auto Person Arming personArmingTrac Refer to Intelligent Security API (Intelligent Analysis
k and Event) _Developer Guide for details

989
Intelligent Security API (General) Developer Guide

Alarm/Event Type Value of <type> Alarm/Event Details


Manual Person Arming manualPersonAr
mingTrack
Battery Status batteryStatus JSON_EventNotificationAlert_BatteryStatusMsg

B.4 Response Codes of Text Protocol


The response codes returned during the text protocol integration is based on the status codes of
HTTP. 7 kinds of status codes are predefined, including 1 (OK), 2 (Device Busy), 3 (Device Error), 4
(Invalid Operation), 5 (Invalid Message Format), 6 (Invalid Message Content), and 7 (Reboot
Required). Each kind of status code contains multiple sub status codes, and the response codes are
in a one-to-one correspondence with the sub status codes.

StatusCode=1

SubStatusCode Error Code Description


ok 0x1 Operation completed.
riskPassword 0x10000002 Risky password.
armProcess 0x10000005 Arming process.

StatusCode=2

Sub Status Code Error Code Description


noMemory 0x20000001 Insufficient memory.
serviceUnavailable 0x20000002 The service is not available.
upgrading 0x20000003 Upgrading.
deviceBusy 0x20000004 The device is busy or no
response.
reConnectIpc 0x20000005 The video server is
reconnected.
transferUpgradePackageFailed 0x20000006 Transmitting device upgrade
data failed.
startUpgradeFailed 0x20000007 Starting upgrading device
failed.

990
Intelligent Security API (General) Developer Guide

Sub Status Code Error Code Description


getUpgradeProcessfailed. 0x20000008 Getting upgrade status failed.
certificateExist 0x2000000B The Authentication certificate
already exists.

StatusCode=3

Sub Status Code Error Code Description


deviceError 0x30000001 Hardware error.
badFlash 0x30000002 Flash operation error.
28181Uninitialized 0x30000003 The 28181 configuration is not
initialized.
socketConnectError 0x30000005 Connecting to socket failed.
receiveError 0x30000007 Receive response message
failed.
deletePictureError 0x3000000A Deleting picture failed.
pictureSizeExceedLimit 0x3000000C Too large picture size.
clearCacheError 0x3000000D Clearing cache failed.
updateDatabasError 0x3000000F Updating database failed.
searchDatabaseError 0x30000010 Searching in the database
failed.
writeDatabaseError 0x30000011 Writing to database failed.
deleteDatabaseError 0x30000012 Deleting database element
failed.
searchDatabaseElementError 0x30000013 Getting number of database
elements failed.
cloudAutoUpgradeException 0x30000016 Downloading upgrade packet
from cloud and upgrading
failed.
HBPException 0x30001000 HBP exception.
UDEPException 0x30001001 UDEP exception
elasticSearchException 0x30001002 Elastic exception.
kafkaException 0x30001003 Kafka exception.

991
Intelligent Security API (General) Developer Guide

Sub Status Code Error Code Description


HBaseException 0x30001004 Hbase exception.
sparkException 0x30001005 Spark exception.
yarnException 0x30001006 Yarn exception.
cacheException 0x30001007 Cache exception.
trafficException 0x30001008 Monitoring point big data
server exception.
faceException 0x30001009 Human face big data server
exception.
SSDFileSystemIsError 0x30001013 SSD file system error (Error
occurs when it is non-Ext4 file
system)
insufficientSSDCapacityForFPD 0x30001014 Insufficient SSD space for
person frequency detection.
wifiException 0x3000100A Wi-Fi big data server exception
structException 0x3000100D Video parameters structure
server exception.
noLinkageResource 0x30001015 Insufficient linkage resources.
noArmingResource 0x30001016 Insufficient arming resources.
engineAbnormal 0x30002015 Engine exception.
engineInitialization 0x30002016 The engine is initializing.
algorithmLoadingFailed 0x30002017 Loading the model failed.
algorithmDownloadFailed 0x30002018 Downloading the model failed.
algorithmDecryptionFailed 0x30002019 Decrypting the model failed.
unboundChannel 0x30002020 Deleting the channel binding is
required for loading the new
model.
unsupportedResolution 0x30002021 The resolution is not
supported.
unsupportedSteamType 0x30002022 The stream type is not
supported.
insufficientDecRes 0x30002023 The resources for decoding is
insufficient.

992
Intelligent Security API (General) Developer Guide

Sub Status Code Error Code Description


insufficientEnginePerformance 0x30002024 The engine performance is
insufficient (the maximum
number of channels that can
be analyzed has reached the
limit).
improperResolution 0x30002025 The picture resolution exceeds
the limit (the maximum
resolution is 4096*4096).
improperPicSize 0x30002026 The picture size is too large
(the maximum size is 5 MB).
URLDownloadFailed 0x30002027 Downloading the picture by
URL failed.
unsupportedImageFormat 0x30002028 The picture format is not
supported (only pictures in JPG
format are supported).
unsupportedPollingIntervalTim 0x30002029 The polling time interval is too
e short (it should be longer than
10s).
exceedImagesNumber 0x30002030 The number of pictures
exceeds the limit (the
maximum number of pictures
that can be applied each time
is 100).
unsupportedMPID 0x30002031 The applied MPID does not
exist in the device (updating by
the MPID is not supported).
modelPackageNotMatchLabel 0x30002032 The model and the description
file mismatch.
modelPackageNotMatchTask 0x30002033 The task and the model type
mismatch.
insufficientSpace 0x30002034 The free space is not enough
(the size of the model package
exceeds that of the free space
and it cannot be added).

993
Intelligent Security API (General) Developer Guide

Sub Status Code Error Code Description


engineUnLoadingModelPackag 0x30002035 Applying the task failed
e (Unbinding failed): the engine
is not bound with a model.
engineWithModelPackage 0x30002036 Binding failed (the engine has
been bound with a model and
you need to unbind them first).
modelPackageDelete 0x30002037 Binding failed (the model has
been deleted).
deleteTaskFailed 0x30002038 Clearing the task failed (this
response code will be returned
when the user failed to close
the task).
modelPackageNumberslimited 0x30002039 Adding the model package
failed (the maximum number
of model packages has reached
the limit).
modelPackageDeleteFailed 0x30002040 Deleting the model package
failed.
calibrationTimeout 0x30002051 Calibration timed out.
captureTimeout 0x30006000 Data collection timed out.
lowScore 0x30006001 Low quality of collected data.
uploadingFailed 0x30007004 Uploading failed.

StatusCode=4

Sub Status Code Error Code Description


notSupport 0x40000001 Not supported.
lowPrivilege 0x40000002 No permission.
badAuthorization 0x40000003 Authentication failed.
methodNotAllowed 0x40000004 Invalid HTTP method.
notSetHdiskRedund 0x40000005 Setting spare HDD failed.
invalidOperation 0x40000006 Invalid operation.
notActivated 0x40000007 Inactivated.
hasActivated 0x40000008 Activated.

994
Intelligent Security API (General) Developer Guide

Sub Status Code Error Code Description


certificateAlreadyExist 0x40000009 The certificate already exists.
operateFailed 0x4000000F Operation failed.
USBNotExist 0x40000010 USB device is not connected.
upgradePackageMoret 0x40001000 Up to 2GB upgrade package is allowed to be
han2GB uploaded.
IDNotexist 0x40001001 The ID does not exist.
interfaceOperationErro 0x40001002 API operation failed.
r
synchronizationError 0x40001003 Synchronization failed.
synchronizing 0x40001004 Synchronizing.
importError 0x40001005 Importing failed.
importing 0x40001006 Importing.
fileAlreadyExists 0x40001007 The file already exists.
invalidID 0x40001008 Invalid ID.
backupnodeNotAllowe 0x40001009 Accessing to backup node is not allowed.
Log
exportingError 0x4000100A Exporting failed.
exporting 0x4000100B Exporting.
exportEnded 0x4000100C Exporting stopped.
exported 0x4000100D Exported.
IPOccupied 0x4000100E The IP address is already occupied.
IDAlreadyExists 0x4000100F The ID already exists.
exportItemsExceedLimi 0x40001010 No more items can be exported.
t
noFiles 0x40001011 The file does not exist.
beingExportedByAnoth 0x40001012 Being exported by others.
erUser
needReAuthentication 0x40001013 Authentication is needed after upgrade.
unitAddNotOnline 0x40001015 The added data analysis server is offline.
unitControl 0x40001016 The data analysis server is already added.

995
Intelligent Security API (General) Developer Guide

Sub Status Code Error Code Description


analysis unitFull 0x40001017 No more data analysis server can be added.
unitIDError 0x40001018 The data analysis server ID does not exist.
unitExit 0x40001019 The data analysis server already exists in the
list.
unitSearch 0x4000101A Searching data analysis server in the list failed.
unitNotOnline 0x4000101B The data analysis server is offline.
unitInfoEror 0x4000101C Getting data analysis server information failed.
unitGetNodeInfoError 0x4000101D Getting node information failed.
unitGetNetworkInfoErr 0x4000101E Getting the network information of data
or analysis server failed
unitSetNetworkInfoErr 0x4000101F Setting the network information of data analysis
or server failed
setSmartNodeInfoError 0x40001020 Setting node information failed.
setUnitNetworkInfoErr 0x40001021 Setting data analysis server network
or information failed.
unitRestartCloseError 0x40001022 Rebooting or shutting down data analysis server
failed.
virtualIPnotAllowed 0x40001023 Adding virtual IP address is not allowed.
unitInstalled 0x40001024 The data analysis server is already installed.
badSubnetMask 0x40001025 Invalid subnet mask.
uintVersionMismatche 0x40001026 Data analysis server version mismatches.
d
deviceMOdelMismatch 0x40001027 Adding failed. Device model mismatches.
ed
unitAddNotSelf 0x40001028 Adding peripherals is not allowed.
noValidUnit 0x40001029 No valid data analysis server.
unitNameDuplicate 0x4000102A Duplicated data analysis server name.
deleteUnitFirst 0x4000102B Delete the added data analysis server of the
node first.
getLocalInfoFailed 0x4000102C Getting the server information failed.

996
Intelligent Security API (General) Developer Guide

Sub Status Code Error Code Description


getClientAddedNodeFa 0x4000102D Getting the added node information of data
iled analysis server failed.
taskExit 0x4000102E The task already exists.
taskInitError 0x4000102F Initializing task failed.
taskSubmitError 0x40001030 Submiting task failed.
taskDelError 0x40001031 Deleting task failed.
taskPauseError 0x40001032 Pausing task failed.
taskContinueError 0x40001033 Starting task failed.
taskSeverNoCfg 0x40001035 Full-text search server is not configured.
taskPicSeverNoCfg 0x40001036 The picture server is not configured.
taskStreamError 0x40001037 Streaming information exception.
taskRecSDK 0x40001038 History recording is not supported.
taskCasaError 0x4000103A Cascading is not supported.
taskVCARuleError 0x4000103B Invalid VCA rule.
taskNoRun 0x4000103C The task is not executed.
unitLinksNoStorageNo 0x4000103D No node is linked with the data analysis server.
de Configure the node first.
searchFailed 0x4000103E Searching video files failed.
searchNull 0x4000103F No video clip.
userScheOffline 0x40001040 The task scheduler service is offline.
updateTypeUnmatche 0x40001041 The upgrade package type mismatches.
d
userExist 0x40001043 The user already exists.
userCannotDelAdmin 0x40001044 The administrator cannot be deleted.
userInexistence 0x40001045 The user name does not exist.
userCannotCreatAdmi 0x40001046 The administrator cannot be created.
n
monitorCamExceed 0x40001048 Up to 3000 cameras can be added.
monitorCunitOverLimit 0x40001049 Adding failed. Up to 5 lower-levels are
supported by the control center.

997
Intelligent Security API (General) Developer Guide

Sub Status Code Error Code Description


monitorReginOverLimit 0x4000104A Adding failed. Up to 5 lower-levels are
supported by the area.
monitorArming 0x4000104B The camera is already armed. Disarm the
camera and try again.
monitorSyncCfgNotSet 0x4000104C The system parameters are not configured.
monitorFdSyncing 0x4000104E Synchronizing. Try again after completing the
synchronization.
monitorParseFailed 0x4000104F Parsing camera information failed.
monitorCreatRootFaile 0x40001050 Creating resource node failed.
d
deleteArmingInfo 0x40001051 The camera is already . Disarm the camera and
try again.
cannotModify 0x40001052 Editing is not allowed. Select again.
cannotDel 0x40001053 Deletion is not allowed. Select again.
deviceExist 0x40001054 The device already exists.
IPErrorConnectFailed 0x40001056 Connection failed. Check the network port.
cannotAdd 0x40001057 Only the capture cameras can be added.
serverExist 0x40001058 The server already exists.
fullTextParamError 0x40001059 Incorrect full-text search parameters.
storParamError 0x4000105A Incorrect storage server parameters.
picServerFull 0x4000105B The storage space of picture storage server is
full.
NTPUnconnect 0x4000105C Connecting to NTP server failed. Check the
parameters.
storSerConnectFailed 0x4000105D Connecting to storage server failed. Check the
network port.
storSerLoginFailed 0x4000105E Logging in to storage server failed. Check the
user name and password.
searchSerConnectFaile 0x4000105F Connecting to full-text search server failed.
d Check the network port.
searchSerLoginFailed 0x40001060 Logging in to full-text search server failed.
Check the user name and password.

998
Intelligent Security API (General) Developer Guide

Sub Status Code Error Code Description


kafkaConnectFailed 0x40001061 Connecting to Kafka failed. Check the network
port.
mgmtConnectFailed 0x40001062 Connecting to system failed. Check the network
port.
mgmtLoginFailed 0x40001063 Logging in to system failed. Check the user
name and password.
TDAConnectFailed 0x40001064 Connecting to traffic data access server failed.
Checking the server status.
86sdkConnectFailed 0x40001065 Connecting to listening port of iVMS-8600
System failed. Check the parameters.
nameExist 0x40001066 Duplicated server name.
batchProcessFailed 0x40001067 Processing in batch failed.
IDNotExist 0x40001068 The server ID does not exist.
serviceNumberReache 0x40001069 No more service can be added.
sLimit
invalidServiceType. 0x4000106A Invalid service type.
clusterGetInfo 0x4000106B Getting cluster group information failed.
clusterDelNode 0x4000106C Deletion node failed.
clusterAddNode 0x4000106D Adding node failed.
clusterInstalling 0x4000106E Creating cluster…Do not operate.
clusterUninstall 0x4000106F Reseting cluster…Do not operate.
clusterInstall 0x40001070 Creating cluster failed.
clusterIpError 0x40001071 Invalid IP address of task scheduler server.
clusterNotSameSeg 0x40001072 The master node and slave node must be in the
same network segment.
clusterVirIpError 0x40001073 Automatically getting virtual IP address failed.
Enter manually.
clusterNodeUnadd 0x40001074 The specified master(slave) node is not added.
clusterNodeOffline 0x40001075 The task scheduler server is offline.
nodeNotCurrentIP 0x40001076 The analysis node of the current IP address is
required when adding master and slave nodes.

999
Intelligent Security API (General) Developer Guide

Sub Status Code Error Code Description


addNodeNetFailed 0x40001077 Adding node failed. The network disconnected.
needTwoMgmtNode 0x40001078 Two management nodes are required when
adding master and slave nodes.
ipConflict 0x40001079 The virtual IP address and data analysis server's
IP address conflicted.
ipUsed 0x4000107A The virtual IP address has been occupied.
cloudAlalyseOnline 0x4000107B The cloud analytic server is online.
virIP&mainIPnotSame 0x4000107C The virtual IP address is not in the same
NetSegment network segment with the IP address of
master/slave node.
getNodeDispatchInfoFa 0x4000107D Getting node scheduler information failed.
iled
unableModifyManage 0x4000107E Editing management network interface failed.
mentNetworkIP The analysis board is in the cluster.
notSpecifyVirtualIP 0x4000107F Virtual IP address should be specified for
master and slave cluster.
armingFull 0x40001080 No more device can be armed.
armingNoFind 0x40001081 The arming information does not exist.
disArming 0x40001082 Disarming failed.
getArmingError 0x40001084 Getting arming information failed.
refreshArmingError 0x40001085 Refreshing arming information failed.
ArmingPlateSame 0x40001086 The license plate number is repeatedly armed.
ArmingParseXLSError 0x40001087 Parsing arming information file failed.
ArmingTimeError 0x40001088 Invalid arming time period.
ArmingSearchTimeErro 0x40001089 Invalid search time period.
r
armingRelationshipRea 0x4000108A No more relation can be created.
chesLimit
duplicateAarmingNam 0x4000108B The relation name already exists.
e
noMoreArmingListAdd 0x4000108C No more blocklist library can be armed.
ed

1000
Intelligent Security API (General) Developer Guide

Sub Status Code Error Code Description


noMoreCamerasAdded 0x4000108D No more camera can be armed.
noMoreArmingListAdd 0x4000108E No more library can be linked to the camera.
edWithCamera
noMoreArmingPeriodA 0x4000108F No more time period can be added to the
dded arming schedule.
armingPeriodsOverlap 0x40001090 The time periods in the arming schedule are
ped overlapped.
noArmingAlarmInfo 0x40001091 The alarm information does not exist.
armingAlarmUnRead 0x40001092 Getting number of unread alarms failed.
getArmingAlarmError 0x40001093 Getting alarm information failed.
searchByPictureTimed 0x40001094 Searching picture by picture timeout. Search
Out again.
comparisonTimeRange 0x40001095 Comparison time period error.
Error
selectMonitorNumber 0x40001096 No more monitoring point ID can be filtered.
UpperLimit
noMoreComparisonTas 0x40001097 No more comparison task can be executed at
ksAdded the same time.
GetComparisonResultF 0x40001098 Getting comparison result failed.
ailed
comparisonTypeError 0x40001099 Comparison type error.
comparisonUnfinished 0x4000109A The comparison is not completed.
facePictureModelInvali 0x4000109B Invalid face model.
d
duplicateLibraryName. 0x4000109C The library name already exists.
noRecord 0x4000109D No record found.
countingRecordsFailed. 0x4000109E Calculate the number of records failed.
getHumanFaceFrameF 0x4000109F Getting face thumbnail from the picture failed.
ailed
modelingFailed. 0x400010A0 Modeling face according to picture URL failed.
1V1FacePictureCompar 0x400010A1 Comparison 1 VS 1 face picture failed.
isonFailed

1001
Intelligent Security API (General) Developer Guide

Sub Status Code Error Code Description


libraryArmed 0x400010A2 The blocklist library is armed.
licenseExeedLimit 0x400010A3 Dongle limited.
licenseExpired 0x400010A4 Dongle expired.
licenseDisabled 0x400010A5 Unavailable dongle.
licenseNotExist 0x400010A6 The dongle does not exist.
SessionExpired 0x400010A7 Session expired .
beyondConcurrentLimi 0x400010A8 Out of concurrent limit.
t
stopSync 0x400010A9 Synchronization stopped.
getProgressFaild 0x400010AA Getting progress failed.
uploadExtraCaps 0x400010AB No more files can be uploaded.
timeRangeError 0x400010AC Time period error.
dataPortNotConnected 0x400010AD The data port is not connected.
addClusterNodeFailed 0x400010AE Adding to the cluster failed. The device is
already added to other cluster.
taskNotExist 0x400010AF The task does not exist.
taskQueryFailed 0x400010B0 Searching task failed.
modifyTimeRuleFailed 0x400010B2 The task already exists. Editing time rule is not
allowed.
modifySmartRuleFailed 0x400010B3 The task already exists. Editing VAC rule is not
allowed.
queryHistoryVideoFaile 0x400010B4 Searching history video failed.
d
addDeviceFailed 0x400010B5 Adding device failed.
addVideoFailed 0x400010B6 Adding video files failed.
deleteAllVideoFailed 0x400010B7 Deleting all video files failed.
createVideoIndexFailed 0x400010B8 Indexing video files failed.
videoCheckTypeFailed 0x400010B9 Verifying video files types failed.
configStructuredAddre 0x400010BA Configuring IP address of structured server
ssFailed failed.

1002
Intelligent Security API (General) Developer Guide

Sub Status Code Error Code Description


configPictureServerAd 0x400010BB Configuring IP address of picture storaged
dressFailed server failed.
storageServiceIPNotExi 0x400010BD The storage server IP address does not exist.
st
syncBackupDatabaseFa 0x400010BE Synchronizing slave database failed. Try again.
iled
syncBackupNTPTimeFa 0x400010BF Synchronizing NTP time of slave server failed.
iled
clusterNotSelectLoopb 0x400010C0 Loopbacl address is not supported by the
ackAddress master or slave cluster.
addFaceRecordFailed 0x400010C1 Adding face record failed.
deleteFaceRecordFaile 0x400010C2 Deleting face record failed.
d
modifyFaceRecordFaile 0x400010C3 Editing face record failed.
d
queryFaceRecordFailed 0x400010C4 Searching face record failed.
faceDetectFailed 0x400010C5 Detecting face failed.
libraryNotExist 0x400010C6 The library does not exist.
blackListQueryExportin 0x400010C7 Exporting matched blocklists.
g
blackListQueryExporte 0x400010C8 The matched blocklists are exported.
d
blackListQueryStopExp 0x400010C9 Exporting matched blocklists is stopped.
orting
blackListAlarmQueryEx 0x400010CA Exporting matched blocklist alarms.
porting
blackListAlarmQueryEx 0x400010CB The matched blocklists alarms are exported.
ported
blackListAlarmQuerySt 0x400010CC Exporting matched blocklist alarms is stopped.
opExporting
getBigDataCloudAnalys 0x400010CD Getting big data cloud analytic information
isFailed failed.

1003
Intelligent Security API (General) Developer Guide

Sub Status Code Error Code Description


setBigDataCloudAnalys 0x400010CE Configuring big data cloud analytic failed.
isFailed
submitMapSearchFaile 0x400010CF Submitting search by picture task failed.
d
controlRelationshipNot 0x400010D0 The relation does not exist.
Exist
getHistoryAlarmInfoFai 0x400010D1 Getting history alarm information failed.
led
getFlowReportFailed 0x400010D2 Getting people counting report failed.
addGuardFailed 0x400010D3 Adding arming configuration failed.
deleteGuardFailed 0x400010D4 Deleting arming configuration failed.
modifyGuardFailed 0x400010D5 Editing arming configuration failed.
queryGuardFailed 0x400010D6 Searching arming configurations failed.
uploadUserSuperCaps 0x400010D7 No more user information can be uploaded.
bigDataServerConnect 0x400010D8 Connecting to big data server failed.
Failed
microVideoCloudRequ 0x400010D9 Adding response information of micro video
estInfoBuildFailed cloud failed.
microVideoCloudRespo 0x400010DA Parsing response information of micro video
nseInfoBuildFailed cloud failed.
transcodingServerRequ 0x400010DB Adding response information of transcoding
estInfoBuildFailed server failed.
transcodingServerResp 0x400010DC Parsing response information of transcoding
onseInfoParseFailed server failed.
transcodingServerOffli 0x400010DD Transcoding server is offline.
ne
microVideoCloudOfflin 0x400010DE Micro video cloud is offline.
e
UPSServerOffline 0x400010DF UPS monitor server is offline.
statisticReportRequestI 0x400010E0 Adding response information of statistics report
nfoBuildFailed failed.
statisticReportRespons 0x400010E1 Parsing response information of statistics report
eInfoParseFailed failed.

1004
Intelligent Security API (General) Developer Guide

Sub Status Code Error Code Description


DisplayConfigInfoBuild 0x400010E2 Adding display configuration information failed.
Failed
DisplayConfigInfoParse 0x400010E3 Parsing display configuration information failed.
Failed
DisplayConfigInfoSaveF 0x400010E4 Saving display configuration information failed.
ailed
notSupportDisplayConf 0x400010E5 The display configuration type is not supported.
igType
passError 0x400010E7 Incorrect password.
upgradePackageLarge 0x400010EB Too large upgrade package.
sesssionUserReachesLi 0x400010EC No more user can log in via session.
mit
ISO 0x400010ED Invalid ISO8601 time format.
8601TimeFormatError
clusterDissolutionFaile 0x400010EE Deleting cluster failed.
d
getServiceNodeInfoFail 0x400010EF Getting service node information failed.
ed
getUPSInfoFailed 0x400010F0 Getting UPS configuration information failed.
getDataStatisticsRepor 0x400010F1 Getting data statistic report failed.
tFailed
getDisplayConfigInfoFai 0x400010F2 Getting display configuration failed.
led
namingAnalysisBoardN 0x400010F3 Renaming analysis board is not allowed.
otAllowed
onlyDrawRegionsOfCo 0x400010F4 Only drawing convex polygon area is supported.
nvexPolygon
bigDataServerRespons 0x400010F5 Parsing response message of big data service
eInfoParseFailed failed.
bigDataServerReturnFa 0x400010F6 No response is returned by big data service.
iled
microVideoReturnFaile 0x400010F7 No response is returned by micro video cloud
d service.

1005
Intelligent Security API (General) Developer Guide

Sub Status Code Error Code Description


transcodingServerRetu 0x400010F8 No response is returned by transcoding service.
rnFailed
UPSServerReturnFailed 0x400010F9 No response is returned by UPS monitoring
service.
forwardingServer 0x400010FA No response is returned by forwarding service.
ReturnFailed
storageServer 0x400010FB No response is returned by storage service.
ReturnFailed
cloudAnalysisServerRet 0x400010FC No response is returned by cloud analytic
urnFailed service.
modelEmpty 0x400010FD No model is obtained.
mainAndBackupNodeC 0x400010FE Editing the management interface IP address of
annotModifyManagem master node and backup node is not allowed.
entNetworkInterfaceIP
IDTooLong 0x400010FF The ID is too long.
pictureCheckFailed 0x40001100 Detecting picture failed.
pictureModelingFailed 0x40001101 Modeling picture failed.
setCloudAnalsisDefault 0x40001102 Setting default province of cloud analytic
ProvinceFailed service failed.
InspectionAreasNumbe 0x40001103 No more detection regions can be added.
rExceedLimit
picturePixelsTooLarge 0x40001105 The picture resolution is too high.
picturePixelsTooSmall 0x40001106 The picture resolution is too low.
storageServiceIPEmpty 0x40001107 The storage server IP address is required.
bigDataServerRequestI 0x40001108 Creating request message of big data service
nfoBuildFail failed.
analysiTimedOut 0x40001109 Analysis time out.
high- 0x4000110A Please enable high-performance mode.
performanceModeDisa
bled.
configuringUPSMonito 0x4000110B Configurating the UPS monitoring server time
ringServerTimedOut out. Check IP address.

1006
Intelligent Security API (General) Developer Guide

Sub Status Code Error Code Description


cloudAnalysisRequestI 0x4000110C Creating request message of cloud analytic
nformationBuildFailed service failed.
cloudAnalysisResponse 0x4000110D Parsing response message of cloud analytic
InformationParseFailed service failed.
allCloudAnalysisInterfa 0x4000110E Calling API for cloud analytic service failed.
ceFailed
cloudAnalysisModelCo 0x4000110F Model comparison of cloud analytic service
mpareFailed failed.
cloudAnalysisFacePictu 0x40001110 Getting face quality grading of cloud analytic
reQualityRatingFailed service failed.
cloudAnalysisExtractFe 0x40001111 Extracting feature of cloud analytic service
aturePointsFailed failed.
cloudAnalysisExtractPr 0x40001112 Extracting property of cloud analytic service
opertyFailed failed.
getAddedNodeInformat 0x40001113 Getting the added nodes information of data
ionFailed analysis server failed.
noMoreAnalysisUnitsA 0x40001114 No more data analysis servers can be added.
dded
detectionAreaInvalid 0x40001115 Invalid detection region.
shieldAreaInvalid 0x40001116 Invalid shield region.
noMoreShieldAreasAd 0x40001117 No more shield region can be drawn.
ded
onlyAreaOfRectangleS 0x40001118 Only drawing rectangle is allowed in detection
hapeAllowed area.
numberReachedLlimit 0x40001119 Number reached the limit.
wait1~3MinutesGetIPAf 0x4000111A Wait 1 to 3 minutes to get IP address after
terSetupDHCP configuring DHCP.
plannedTimeMustbeH 0x4000111B Schedule must be half an hour.
alfAnHour
oneDeviceCannotBuild 0x4000111C Creating master and backup cluster requires at
Cluster least two devices.
updatePackageFileNot 0x4000111E Upgrade package is not uploaded.
Uploaded

1007
Intelligent Security API (General) Developer Guide

Sub Status Code Error Code Description


highPerformanceTasks 0x4000111F Drawing detection area is not allowed under
NotSupportDrawingDe high-performance mode.
tectionRegions
controlCenterIDDoesN 0x40001120 The control center ID does not exist.
otExist
regionIDDoesNotExist 0x40001121 The area ID does not exist.
licensePlateFormatErro 0x40001122 Invalid license plate format.
r
managementNodeDoe 0x40001123 The operation is not supported.
sNotSupportThisOperat
ion
searchByPictureResour 0x40001124 The conditions for searching picture by picture
ceNotConfiged are not configured.
videoFileEncapsulation 0x40001125 The video container format is not supported.
FormatNotSupported
videoPackageFailure 0x40001126 Converting video container format failed.
videoCodingFormatNot 0x40001127 Video coding format is not supported.
Supported
monitorOfDeviceArmin 0x40001129 The camera is armed. Disarm it and try again.
gdeleteArmingInfo
getVideoSourceTypeFai 0x4000112A Getting video source type failed.
led
smartRulesBuildFailed 0x4000112B Creating VAC rule failed.
smartRulesParseFailed 0x4000112C Parsing VAC rule failed.
timeRulesBuildFailed 0x4000112D Creating time rule failed.
timeRulesParseFailed 0x4000112E Parsing time rule failed.
monitoInfoInvalid 0x4000112F Invalid camera information.
addingFailedVersionMi 0x40001130 Adding failed. The device version mismatches.
smatches
theInformationReturne 0x40001131 No response is returned by the cloud analytic
dAfterCloudAnalysisIsE service.
mpty

1008
Intelligent Security API (General) Developer Guide

Sub Status Code Error Code Description


selectingIpAddressOfH 0x40001132 Setting IP address for master node and backup
ostAndSpareNodeFaile node failed. Check the node status.
dCheckTheStatus
theSearchIdDoesNotEx 0x40001133 The search ID does not exist.
ist
theSynchronizationIdD 0x40001134 The synchronization ID does not exist.
oesNotExist
theUserIdDoesNotExist 0x40001136 The user ID does not exist.
theIndexCodeDoesNot 0x40001138 The index code does not exist.
Exist
theControlCenterIdDoe 0x40001139 The control center ID does not exist.
sNotExist
theAreaIdDoesNotExist 0x4000113A The area ID does not exist.
theArmingLinkageIdDo 0x4000113C The arming relationship ID does not exist.
esNotExist
theListLibraryIdDoesNo 0x4000113D The list library ID does not exist.
tExist
invalidCityCode 0x4000113E Invalid city code.
synchronizingThePass 0x4000113F Synchronizing backup system password failed.
wordOfSpareServerFail
ed
editingStreamingTypeIs 0x40001140 Editing streaming type is not supported.
NotSupported
switchingScheduledTas 0x40001141 Switching scheduled task to temporary task is
kToTemporaryTaskIsNo not supported.
tSupported
switchingTemporaryTas 0x40001142 Switching temporary task to scheduled task is
kToScheduledTaskIsNot not supported.
Supported
theTaskIsNotDispatche 0x40001143 The task is not dispatched or is updating.
dOrItIsUpdating
thisTaskDoesNotExist 0x40001144 This task does not exist in the cloud analytic
serice.
duplicatedSchedule 0x40001145 Schedule period cannot be overlapped.

1009
Intelligent Security API (General) Developer Guide

Sub Status Code Error Code Description


continuousScheduleWi 0x40001146 The continuous schedule periods with same
thSameAlgorithmType algorithm type should be merged.
ShouldBeMerged
invalidStreamingTimeR 0x40001147 Invalid streaming time period.
ange
invalidListLibraryType 0x40001148 Invalid list library type.
theNumberOfMatched 0x40001149 The number of search results should be larger
ResultsShouldBeLarger than 0.
Than0
invalidValueRangeOfSi 0x4000114A Invalid similarity range.
milarity
invalidSortingType 0x4000114B Invalid sorting type.
noMoreListLibraryCanB 0x4000114C No more lists can be added to one device.
eLinkedToTheDevice
InvalidRecipientAddres 0x4000114D Invalid address format of result receiver.
sFormat
creatingClusterFailedT 0x4000114E Insert the dongle before creating cluster.
heDongleIsNotPlugged
In
theURLIsTooLong 0x4000114F No schedule configured for the task.
noScheduleIsConfigure 0x40001150 No schedule configured for the task.
dForTheTask
theDongleIsExpiried 0x40001151 Dongle has expired.
dongleException 0x40001152 Dongle exception.
invalidKey 0x40001153 Invalid authorization service key.
decryptionFailed 0x40001154 Decrypting authorization service failed.
encryptionFailed 0x40001155 Encrypting authorization service failed.
AuthorizeServiceRespo 0x40001156 Authorization service response exception.
nseError
incorrectParameter 0x40001157 Authorization service parameters error.
operationFailed 0x40001158 Operating authorization service error.
noAnalysisResourceOr 0x40001159 No cloud analytic resources or no data in the list
NoDataInTheListLibrary library.

1010
Intelligent Security API (General) Developer Guide

Sub Status Code Error Code Description


calculationException 0x4000115A Calculation exception.
allocatingList 0x4000115B Allocating list.
thisOperationIsNotSup 0x4000115C This operation is not supported by the cloud
portedByTheCloudAnal analytic serice.
ytics
theCloudAnalyticsIsInt 0x4000115D The operation of cloud analytic serice is
errupted interrupted.
theServiceIsNotReady 0x4000115E The service is not ready.
searchingForExternalA 0x4000115F Searching external interfaces failed.
piFailed
noOnlineNode 0x40001160 No node is online.
noNodeAllocated 0x40001161 No allocated node.
noMatchedList 0x40001162 No matched list.
allocatingFailedTooMa 0x40001163 Allocation failed. Too many lists of big data
nyFacePictureLists service.
searchIsNotCompleted 0x40001164 Current searching is not completed. Search
SearchAgain again.
allocatingListIsNotCom 0x40001165 Allocating list is not completed.
pleted
searchingForCloudAnal 0x40001166 Searching cloud analytic serice overtime.
yticsResultsFailed
noDataOfTheCurrentLi 0x40001167 No data in the current library. Make sure there
braryFound is data in the Hbase.
noFacePictureLibraryIs 0x40001168 No face picture library is armed for big data
Armed service.
noAvailableDataSlicing 0x40001169 Invalid standard version information.
VersionInformationAr
mFirstAndSliceTheData
duplicatedOperationDa 0x4000116A Slicing failed. Duplicated operation.
taSlicingIsExecuting
slicinDataFailedNoArm 0x4000116B Slicing failed. No arming information in the face
edFacePictureLibrary big data.

1011
Intelligent Security API (General) Developer Guide

Sub Status Code Error Code Description


GenerateBenchmarkFil 0x4000116C Generating sliced file failed. Slice again.
eFailedSlicingAgain
NonprimaryNodeIsPro 0x4000116D Slicing is not allowed by the backup node.
hibitedFromSlcingData
NoReadyNodeToCluste 0x4000116E Creating the cluster failed. No ready node.
rServers
NodeManagementServ 0x4000116F The node management server is offline.
iceIsOffline
theCamera(s)OfTheCo 0x40001170 Some cameras in control center are already
ntrolCenterAreAlready armed. Disarm them and try again.
Armed.DisarmThemFir
st
theCamera(s)OfTheAre 0x40001171 Some cameras in this area are already armed.
aAreAlreadyArmed.Dis Disarm them and try again.
armThemFirst
configuringHigh- 0x40001172 Configuring high frequency people detection
frequencyPeopleDetect failed.
ionFailed
searchingForHigh- 0x40001173 Searching detection event logs of high-
frequencyPeopleDetect frequency people detection failed.
ionLogsFailed.
gettingDetailsOfSearch 0x40001174 Getting the search result details of high
edHigh- frequency alarms failed.
frequencyPeopleDetect
ionLogsFailed.
theArmedCamerasAlre 0x40001175 Some cameras in control center are already
adyExistInTheControlC armed.
enter
disarmingFailedTheCa 0x40001177 Disarming failed. The camera is not armed.
meraIsNotArmed
noDataReturned 0x40001178 No response is returned by the big data service.
preallocFailure 0x40001179 Pre-​allocating algorithm resource failed.
overDogLimit 0x4000117A Configuration failed. No more resources can be
pre-allocated.

1012
Intelligent Security API (General) Developer Guide

Sub Status Code Error Code Description


analysisServicesDoNot 0x4000117B Not supported.
Support
commandAndDispatch 0x4000117C Scheduling service of cloud analytic serice error.
ServiceError
engineModuleError 0x4000117D Engine module of cloud analytic serice error.
streamingServiceError 0x4000117E Streaming component of cloud analytic serice
error.
faceAnalysisModuleErr 0x4000117F Face analysis module of cloud analytic serice
or error.
vehicleAnalysisModule 0x40001180 Vehicle pictures analytic module of cloud
Error analytic serice error.
videoStructuralAnalysis 0x40001181 Video structuring module of cloud analytic
ModuleError serice error.
postprocessingModule 0x40001182 Post-processing module of cloud analytic serice
Error error.
frequentlyAppearedPe 0x40001183 High frequency alarm is already armed for
rsonAlarmIsAlreadyCo blocklist library.
nfiguredForListLibrary
creatingListLibraryFaile 0x40001184 Creating list library failed.
d
invalidIdentiryKeyOfLis 0x40001185 Invalid identity key of list library.
tLibrary
noMoreDevicesCanBe 0x40001186 No more camera can be added.
Armed
settingAlgorithmTypeF 0x40001187 Allocating task resource failed.
orDeviceFailed
gettingHighFrequencyP 0x40001188 Setting high frequency alarm failed.
ersonDetectionAlarmIn
formationFailed
invalidSearchConfition 0x40001189 Invalid result.
theTaskIsNotComplete 0x4000118B The task is not completed.
d
resourceOverRemainLi 0x4000118C No more resource can be pre-allocated.
mit

1013
Intelligent Security API (General) Developer Guide

Sub Status Code Error Code Description


frequentlyAppearedPe 0x4000118D The high frequency alarm of this camera is
rsonAlarmIs configured. Delete the arming information and
AlreadyConfiguredForT try again.
heCameraDisarmFirstA
ndTryAgain
switchtimedifflesslimit 0x4000123b Time difference between power on and off
should be less than 10 minutes.
associatedFaceLibNum 0x40001279 Maximum number of linked face picture
OverLimit libraries reached.
noMorePeopleNumCh 0x4000128A Maximum number of people number changing
angeRulesAdded rules reached.
noMoreViolentMotion 0x4000128D Maximum number of violent motion rules
RulesAdded reached.
noMoreLeavePositionR 0x4000128E Maximum number of leaving position rules
ulesAdded reached.
SMRDiskNotSupportRa 0x40001291 SMR disk does not support RAID.
id
OnlySupportHikAndCus 0x400012A3 IPv6 camera can only be added via private
tomProtocol protocol or custom protocols.
vehicleEnginesNoReso 0x400012A6 Insufficient vehicle engine resources.
urce
noMoreRunningRulesA 0x400012A9 Maximum number of running rules reached.
dded
noMoreGroupRulesAd 0x400012AA Maximum number of people gathering rules
ded reached.
noMoreFailDownRules 0x400012AB Maximum number of people falling down rules
Added reached.
noMorePlayCellphone 0x400012AC Maximum number of playing cellphone rules
RulesAdded reached.
ruleEventTypeDuplicat 0x400012C8 Event type duplicated.
e
noMoreRetentionRules 0x400015AD Maximum number of people retention rules
Added reached.

1014
Intelligent Security API (General) Developer Guide

Sub Status Code Error Code Description


noMoreSleepOnDutyR 0x400015AE Maximum number of sleeping on duty rules
ulesAdded reached.
polygonNotAllowCrossi 0x400015C2 Polygons are not allowed to cross.
ng
AITargetBPCaptureFail 0x400019C5 Capturing reference picture for AI target
comparison failed.
AITargetBPToDSPFail 0x400019C6 Sending reference picture to DSP for AI target
comparison failed.
AITargetBPDuplicateNa 0x400019C7 Duplicated name of reference picture for AI
me target comparison.
audioFileNameWrong 0x400019D0 Incorrect audio file name.
audioFileImportFail 0x400019D1 Importing audio file failed.
NonOperationalStandb 0x400019F0 Non-​operational hot spare.
yMachine
MaximumNumberOfD 0x400019F1 The maximum number of devices reached.
evices
StandbyMmachineCan 0x400019F2 The hot spare cannot be deleted.
notBeDeleted
alreadyRunning 0x40002026 The application program is running.
notRunning 0x40002027 The application program is stopped.
packNotFound 0x40002028 The software packet does not exist.
alreadyExist 0x40002029 The application program already exists.
noMemory 0x4000202A Insufficient memory.
invalLicense 0x4000202B Invalid License.
noClientCertificate 0x40002036 The client certificate is not installed.
noCACertificate 0x40002037 The CA certificate is not installed.
authenticationFailed 0x40002038 Authenticating certificate failed. Check the
certificate.
clientCertificateExpired 0x40002039 The client certificate is expired.
clientCertificateRevocat 0x4000203A The client certificate is revoked.
ion
CACertificateExpired 0x4000203B The CA certificate is expired.

1015
Intelligent Security API (General) Developer Guide

Sub Status Code Error Code Description


CACertificateRevocatio 0x4000203C The CA certificate is revoked.
n
connectFail 0x4000203D Connection failed.
loginNumExceedLimit 0x4000203F No more user can log in.
HDMIResolutionIllegal 0x40002040 The HDMI video resolution cannot be larger
than that of main and sub stream.
hdFormatFail 0x40002049 Formatting HDD failed.
formattingFailed 0x40002056 Formatting HDD failed.
encryptedFormattingFa 0x40002057 Formatting encrypted HDD failed.
iled
wrongPassword 0x40002058 Verifying password of SD card failed. Incorrect
password.
audioIsPlayingPleaseW 0x40002067 Audio is playing. Please wait.
ait
twoWayAudioInProgre 0x40002068 Two-way audio in progress. Please wait.
ssPleaseWait
calibrationPointNumFu 0x40002069 The maximum number of calibration points
ll reached.
completeTheLevelCalib 0x4000206A The level calibration is not set.
rationFirst
completeTheRadarCam 0x4000206B The radar-camera calibration is not set.
eraCalibrationFirst
pointsOnStraightLine 0x4000209C Calibrating failed. The calibration points cannot
be one the same line.
TValueLessThanOrEqua 0x4000209D Calibration failed. The T value of the calibration
lZero points should be larger than 0.
HBDLibNumOverLimit 0x40002092 The number of human body picture libraries
reaches the upper limit
theShieldRegionError 0x40002093 Saving failed. The shielded area should be the
ground area where the shielded object is
located.
theDetectionAreaError 0x40002094 Saving failed. The detection area should only
cover the ground area.

1016
Intelligent Security API (General) Developer Guide

Sub Status Code Error Code Description


invalidLaneLine 0x40002096 Saving failed. Invalid lane line.
enableITSFunctionOfTh 0x400020A2 Enable ITS function of this channel first.
isChannelFirst
noCloudStorageServer 0x400020C5 No cloud storage server
NotSupportWithVideo 0x400020F3 This function is not supported.
Task
noDetectionArea 0x400050df No detection area
armingFailed 0x40008000 Arming failed.
disarmingFailed 0x40008001 Disarming failed.
clearAlarmFailed 0x40008002 Clearing alarm failed.
bypassFailed 0x40008003 Bypass failed.
bypassRecoverFailed 0x40008004 Bypass recovery failed.
outputsOpenFailed 0x40008005 Opening relay failed.
outputsCloseFailed 0x40008006 Closing relay failed.
registerTimeOut 0x40008007 Registering timed out.
registerFailed 0x40008008 Registering failed.
addedByOtherHost 0x40008009 The peripheral is already added by other
security control panel.
alreadyAdded 0x4000800A The peripheral is already added.
armedStatus 0x4000800B The partition is armed.
bypassStatus 0x4000800C Bypassed.
zoneNotSupport 0x4000800D This operation is not supported by the zone.
zoneFault 0x4000800E The zone is in fault status.
pwdConflict 0x4000800F Password conflicted.
audioTestEntryFailed 0x40008010 Enabling audio test mode failed.
audioTestRecoveryFaile 0x40008011 Disabling audio test mode failed.
d
addCardMode 0x40008012 Adding card mode.
searchMode 0x40008013 Search mode.
addRemoterMode 0x40008014 Adding keyfob mode.

1017
Intelligent Security API (General) Developer Guide

Sub Status Code Error Code Description


registerMode 0x40008015 Registration mode.
exDevNotExist 0x40008016 The peripheral does not exist.
theNumberOfExDevLi 0x40008017 No peripheral can be added.
mited
sirenConfigFailed 0x40008018 Setting siren failed.
chanCannotRepeatedB 0x40008019 This channel is already linked by the zone.
inded
inProgramMode 0x4000801B The keypad is in programming mode.
inPaceTest 0x4000801C In pacing mode.
arming 0x4000801D Arming.
masterSlaveIsEnable 0x4000802c The master-slave relationship has taken effect,
the slave radar does not support this operation.
forceTrackNotEnabled 0x4000802d Mandatory tracking is disabled.
isNotSupportZoneConfi 0x4000802e This area does not support the zone type.
gByLocalArea
alarmLineCross 0x4000802f Trigger lines are overlapped.
zoneDrawingOutOfRan 0x40008030 The drawn zone is out of detection range.
ge
alarmLineDrawingOut 0x40008031 The drawn alarm trigger line is out of detection
OfRange range.
hasTargetInWarningAr 0x40008032 The warning zone already contains targets.
ea Whether to enable mandatory arming?
radarMoudleConnectF 0x40008033 Radar module communication failed.
ail
importCfgFilePassword 0x40008034 Incorrect password for importing configuration
Err files.
overAudioFileNumLimi 0x40008038 The number of audio files exceeds the limit.
t
audioFileNameIsLong 0x40008039 The audio file name is too long.
audioFormatIsWrong 0x4000803a The audio file format is invalid.
audioFileIsLarge 0x4000803b The size of the audio file exceeds the limit.
pircamCapTimeOut 0x4000803c Capturing of pircam timed out.

1018
Intelligent Security API (General) Developer Guide

Sub Status Code Error Code Description


pircamCapFail 0x4000803d Capturing of pircam failed.
pircamIsCaping 0x4000803e The pircam is capturing.
audioFileHasExisted 0x4000803f The audio file already exists.
subscribeTypeErr 0x4000a016 This metadata type is not supported to be
subscribed.
startAppFail / Starting running application program failed.
yuvconflict / The raw video stream conflicted.
overMaxAppNum / No more application program can be uploaded.
noFlash / Insufficient flash.
noFlash / The platform mismatches.

StatusCode=5

Sub Status Code Error Code Description


badXmlFormat 0x50000001 Invalid XML format.

StatusCode=6

Sub Status Code Error Code Description


badParameters 0x60000001 Invalid parameter.
badHostAddress 0x60000002 Invalid host IP address.
badXmlContent 0x60000003 Invalid XML content.
badIPv4Address 0x60000004 Invalid IPv4 address.
badIPv6Address 0x60000005 Invalid IPv6 address.
conflictIPv4Address 0x60000006 IPv4 address conflicted.
conflictIPv6Address 0x60000007 IPv6 address conflicted.
badDomainName 0x60000008 Invalid domain name.
connectSreverFail 0x60000009 Connecting to server failed.
conflictDomainName 0x6000000A Domain name conflicted.
badPort 0x6000000B Port number conflicted.
portError 0x6000000C Port error.
exportErrorData 0x6000000D Importing data failed.

1019
Intelligent Security API (General) Developer Guide

Sub Status Code Error Code Description


badNetMask 0x6000000E Invalid sub-net mask.
badVersion 0x6000000F Version mismatches.
badDevType 0x60000010 Device type mismatches.
badLanguage 0x60000011 Language mismatches.
incorrentUserNameOrPasswor 0x600000012 Incorrect user name or
d password.
invalidStoragePoolOfCloudServ 0x600000013 Invalid storage pool. The
er storage pool is not configured
or incorrect ID.
noFreeSpaceOfStoragePool 0x600000014 Storage pool is full.
riskPassword 0x600000015 Risky password.
UnSupportCapture 0x600000016 Capturing in 4096*2160 or
3072*2048 resolution is not
supported when H.264+ is
enabled.
userPwdLenUnder8 0x60000023 At least two kinds of
characters, including digits,
letters, and symbols, should be
contained in the password.
userPwdNameSame 0x60000025 Duplicated password.
userPwdNameMirror 0x60000026 The password cannot be the
reverse order of user name.
beyondARGSRangeLimit 0x60000027 The parameter value is out of
limit.
DetectionLineOutofDetectionR 0x60000085 The rule line is out of region.
egion
DetectionRegionError 0x60000086 Rule region error. Make sure
the rule region is convex
polygon.
DetectionRegionOutOfCountin 0x60000087 The rule region must be
gRegion marked as red frame.
PedalAreaError 0x60000088 The pedal area must be in the
rule region.

1020
Intelligent Security API (General) Developer Guide

Sub Status Code Error Code Description


DetectionAreaABError 0x60000089 The detection region A and B
must be in the a rule frame.
ABRegionCannotIntersect 0x6000008a Region A and B cannot be
overlapped.
customHBPIDError 0x6000008b Incorrect ID of custom human
body picture library
customHBPIDRepeat 0x6000008c Duplicated ID of custom human
body picture library
dataVersionsInHBDLibMismatc 0x6000008d Database versions mismatches
hes of human body picture library
invalidHBPID 0x6000008e Invalid human body picture PID
invalidHBDID 0x6000008f Invalid ID of human body
picture library
humanLibraryError 0x60000090 Error of human body picture
library
humanLibraryNumError 0x60000091 No more human body picture
library can be added
humanImagesNumError 0x60000092 No more human body picture
can be added
noHumanInThePicture 0x60000093 Modeling failed, no human
body in the picture
analysisEnginesNoResourceErr 0x60001000 No analysis engine.
or
analysisEnginesUsageExcced 0x60001001 The engine usage is
overloaded.
PicAnalysisNoResourceError 0x60001002 No analysis engine provided for
picture secondary recognition.
analysisEnginesLoadingError 0x60001003 Initializing analysis engine.
analysisEnginesAbnormaError 0x60001004 Analysis engine exception.
analysisEnginesFacelibImportin 0x60001005 Importing pictures to face
g picture library. Failed to edit
analysis engine parameters.

1021
Intelligent Security API (General) Developer Guide

Sub Status Code Error Code Description


analysisEnginesAssociatedChan 0x60001006 The analysis engine is linked to
nel channel.
smdEncodingNoResource 0x60001007 Insufficient motion detection
encoding resources.
smdDecodingNoResource 0x60001008 Insufficient motion detection
decoding resources.
diskError 0x60001009 HDD error.
diskFull 0x6000100a HDD full.
facelibDataProcessing 0x6000100b Handling face picture library
data.
capturePackageFailed 0x6000100c Capturing packet failed.
capturePackageProcessing 0x6000100d Capturing packet.
noSupportWithPlaybackAbstra 0x6000100e This function is not supported.
ct Playback by video synopsis is
enabled.
insufficientNetworkBandwidth 0x6000100f Insufficient network
bandwidth.
tapeLibNeedStopArchive 0x60001010 Stop the filing operation of
tape library first.
identityKeyError 0x60001011 Incorrect interaction command.
identityKeyMissing 0x60001012 The interaction command is
lost.
noSupportWithPersonDensityD 0x60001013 This function is not supported.
etect The people density detection is
enabled.
ipcResolutionOverflow 0x60001014 The configured resolution of
network camera is invalid.
ipcBitrateOverflow 0x60001015 The configured bit rate of
network camera is invalid.
tooGreatTimeDifference 0x60001016 Too large time difference
between device and server.
noSupportWithPlayback 0x60001017 This function is not supported.
Playback is enabled.

1022
Intelligent Security API (General) Developer Guide

Sub Status Code Error Code Description


channelNoSupportWithSMD 0x60001018 This function is not supported.
Motion detection is enabled.
channelNoSupportWithFD 0x60001019 This function is not supported.
Face capture is enabled.
illegalPhoneNumber 0x6000101a Invalid phone number.
illegalCertificateNumber 0x6000101b Invalid certificate No.
linkedCameraOutLimit 0x6000101c Connecting camera timed out.
achieveMaxChannelLimit 0x6000101e No more channels are allowed.
humanMisInfoFilterEnabledCha 0x6000101f No more channels are allowed
nNumError to enable preventing false
alarm.
humanEnginesNoResource 0x60001020 Insufficient human body
analysis engine resources.
taskNumberOverflow 0x60001021 No more tasks can be added.
collisionTimeOverflow 0x60001022 No more comparison duration
can be configured.
invalidTaskID 0x60001023 Invalid task ID.
eventNotSupport 0x60001024 Event subscription is not
supported.
invalidEZVIZSecretKey 0x60001034 Invalid verification code for
Guarding Vision.
needDoubleVerification 0x60001042 Double verification required
noDoubleVerificationUser 0x60001043 No double verification user
timeSpanNumOverLimit 0x60001044 Max. number of time buckets
reached
channelNumOverLimit 0x60001045 Max. number of channels
reached
noSearchIDResource 0x60001046 Insufficient searchID resources
noSupportDeleteStrangerLib 0x60001051 Deleting stranger library is not
supported
noSupportCreateStrangerLib 0x60001052 Creating stranger library is not
supported

1023
Intelligent Security API (General) Developer Guide

Sub Status Code Error Code Description


behaviorAnalysisRuleInfoError 0x60001053 Behavior analysis rule
parameters error.
safetyHelmetParamError 0x60001054 Hard hat parameters error.
OneChannelOnlyCanBindOneE 0x60001077 No more engines can be
ngine bound.
engineTypeMismatch 0x60001079 Engine type mismatched.
badUpgradePackage 0x6000107A Invalid upgrade package.
AudioFileNameDuplicate 0x60001135 Duplicated audio file name.
CurrentAudioFileAIRuleInUseAl 0x60001136 The AI rule linkage related to
readyDelete current audio file has been
deleted.
TransitionUseEmmc 0x60002000 Starting device failed. The
EMMC is overused.
AdaptiveStreamNotEnabled 0x60002001 The stream self-​adaptive
function is not enabled.
AdaptiveStreamAndVariableBit 0x60002002 Stream self-​adptive and
rateEnabled variable bitrate function cannot
be enabled at the same time.
noSafetyHelmetRegion 0x60002023 The hard hat detection area is
not configured (if users save
their settings without
configuring the arming area,
they should be prompted to
configure one).
unclosedSafetyHelmet 0x60002024 The hard hat detection is
enabled (If users save their
settings after deleting the
arming area, they should be
prompted to disable hard hat
detection first and then delete
the arming area).
width/ 0x6000202C The width/height ratio of the
heightRatioOfPictureError uploaded picture should be in
the range from 1:2 to 2:1.
PTZNotInitialized 0x6000202E PTZ is not initialized.

1024
Intelligent Security API (General) Developer Guide

Sub Status Code Error Code Description


PTZSelfChecking 0x6000202F PTZ is self-checking.
PTZLocked 0x60002030 PTZ is locked.
advancedParametersError 0x60002031 Auto-switch interval in
advanced parameters cannot
be shorter than parking
tolerance for illegal parking
detection in speed dome rule
settings.
resolutionError 0x60005003 Invalid resolution
deployExceedMax 0x60006018 The arming connections exceed
the maximum number.
detectorTypeMismatch 0x60008000 The detector type mismatched.
nameExist 0x60008001 The name already exists.
uploadImageSizeError 0x60008016 The size of the uploaded
picture is larger than 5 MB.
laneAndRegionOverlap / The lanes are overlapped.
unitConfigurationNotInEffect / Invalid unit parameter.
ruleAndShieldingMaskConflict / The line-rule region overlaps
with the shielded area.
wholeRuleInShieldingMask / There are complete
temperature measurement
rules in the shielded area.
LogDiskNotSetReadOnlyInGrou 0x60001100 The log HDD in the HDD group
pMode cannot be set to read-only.
LogDiskNotSetReDundancyInGr 0x60001101 The log HDD in the HDD group
oupMode cannot be set to redundancy.

StatusCode=7

SubStatusCode Error Code Description


rebootRequired 0x70000001 Reboot to take effect.

1025
Intelligent Security API (General) Developer Guide

B.5 Error Codes Categorized by Functional Modules


The error codes returned during the text protocol integration is categorized by different functional
modules. See the error codes, error descriptions, and debugging suggestions in the table below.

Public Function Module (Error Codes Range: 0x00000000, from 0x00100001 to 0x001fffff)

Error String Error Code Description Debugging Suggestion


success 0x00000000 Succeeded.
deviceNotActivate 0x00100001 The device is not activated. Activate the device.
d
deviceNoPermissi 0x00100002 Device operation failed. No Update user's permission.
on permission.
deviceNotSupport 0x00100003 This function is not Check the device capability
supported. set and call the API
corresponding to supported
function.
deviceResourceN 0x00100004 Insufficient resources. Release resources.
otEnough
dataFormatError 0x00100005 Invalid message format.
resetError 0x00100006 Restoring to factory settings
failed. Reactivating device is
required after the device is
reboot as the Reset button
may be stuck.
parameterError 0x00100007 Incorrect parameter
0x00100100 Invalid channel Check if the channel is valid.
0x00100101 NPQ live view is not Replace streaming mode for
supported for stream stream encryption.
encryption.
0x00100102 No more channels are Reduce NPQ streaming
allowed for NPQ streaming. channels and try again.
0x00100103 The stream type is not Check the requested stream
supported. type.

1026
Intelligent Security API (General) Developer Guide

Error String Error Code Description Debugging Suggestion


0x00100104 The number of connections Reduce the number of
exceeded limit. streaming clients and try
again.
0x00100105 Not enough bandwidth. Reduce the number of
remote streaming channels.

User Function Module (Error Codes Range: from 0x00200001 to 0x002fffff)

Error String Error Code Description Debugging Suggestion


passwordError 0x00200001 Incorrect user name or Check if the password is
password. correct.
userNameNotExi 0x00200002 The account does not Check if the account exists, or
st exist. add the account.
userNameLocked 0x00200003 The account is locked. Wait for the device to unlock.
userNumLimited 0x00200004 The number of users Log out.
allowed to log in exceeded
the upper limit.
lowPrivilege 0x00200005 No permissions for this For users operations, check
operation the following situations:
• Deleting your own account
is not allowed.
• Editing your own level or
permission is not allowed.
• Getting information about
users with higher
permission is not allowed.
• Elevating the user's level or
permission is not allowed.
For other operations, check
according to the following
measures: If operations
unrelated to user's permission
configuration failed, you can
check the user type and
permission, if not solved,
contact the developers.
incorrentUserNa 0x00200006 Incorrect user name or Check if the configured user
meOrPassword password name and password are

1027
Intelligent Security API (General) Developer Guide

Error String Error Code Description Debugging Suggestion


matched. If not, contact the
administrator to configure
again. If the administrator
forgets the password, reset
the password of the device.
riskPassword 0x00200007 Risk password Low password strength.
Change password again.
passwordMustCo 0x00200008 The password length must Check if the password length is
ntainMorethan8C be greater than or equal to greater than or equal to 8. If
haracters 8. not, change password again.
passwordLenNo 0x00200009 The password length Check if the password length is
MoreThan16 cannot be greater than 16. greater than16. If yes, change
password again.
adminUserNotAll 0x0020000a Editing admin information Check if the edited account is
owedModify is not allowed. admin.
confirmPassword 0x0020000b Incorrect confirm Check the confirm password.
Error password.
passwordMustCo 0x0020000c The password must Check if the configured
ntainMorethan2T contain at least two or password conforms the
ypes more of followings: requirements.
numbers, lowercase,
uppercase, and special
characters.
passwordContain 0x0020000d The password cannot Check if the password contains
UserName contain the user name. the user name.
userPwdNameMi 0x0020000e The password cannot be Check if the password is
rror reversed user name. reversed user name.

Time Function Module (Error Codes Range: from 0x00300001 to 0x003fffff)

Error String Error Code Description Debugging Suggestion


manualAdjustmen 0x00300001 Time synchronization failed.
tFailed
NTPError 0x00300002 Invalid NTP server address. Check if the NTP server
address is valid.
timeFormatError 0x00300003 Incorrect time format Incorrect message format or
during time calibration. incorrect time format.

1028
Intelligent Security API (General) Developer Guide

Error String Error Code Description Debugging Suggestion


For example, the time in ISO
8601 format should be
"2018-02-01T19:54:04", but
the applied time is "2018-
02-01 19:54:04".
beyondTimeRang 0x00300004 The calibration time is not Get the device capability
eLimit within the time range and check if the configured
supported by the device. time is within the time
range supported by the
device.
endtimeEarlierTha 0x00300005 The start time of the validity Check if the start time and
nBegintime period cannot be later than end time are valid.
the end time.

Network Function Module (Error Codes Range: from 0x00400001 to 0x004fffff)

Error String Error Code Description Debugging Suggestion


domainNamePars 0x00400001 Parsing domain name failed.
eFailed
PPPOEConnected 0x00400002 Connecting PPPOE to the
Failed network failed.
FTPConnectedFail 0x00400003 The FTP server is
ed disconnected.
deviceIPConflicted 0x00400004 IP addresses of devices
conflicted.
libraryConnectedF 0x00400005 The image and video library
ailed is disconnected.
fileUploadFailed 0x00400006 Uploading failed. Check if the network
connection is normal. If yes,
contact after-​sales.
storSerDownloadF 0x00400007 Downloading failed. Check if the network
ileFailed connection is normal. If yes,
contact after-​sales.
storSerDownloadF 0x00400008 The size of file downloaded Check if the network
ileSizeZero from the storage service is connection is normal. If yes,
0. contact after-​sales.

1029
Intelligent Security API (General) Developer Guide

Error String Error Code Description Debugging Suggestion


storSerNotConfig 0x00400009 Storage service is not Check if the configuration is
configured. correct.
badHostAddress 0x0040000a Host address error Check if the configuration is
correct.
badIPv4Address 0x0040000b Incorrect IPv4 address. Check if the configuration is
correct.
badIPv6Address 0x0040000c Incorrect IPv6 address. Check if the configuration is
correct.
conflictIPv4Addre 0x0040000d IPv4 address conflict. Check the configuration
ss status of IPV4 in the
network.
conflictIPv6Addre 0x0040000e IPv6 address conflict Check the configuration
ss status of IPV6 in the
network.
badDomainName 0x0040000f Incorrect domain name. Check if the configuration is
correct.
connectSreverFail 0x00400010 Connecting to server failed. Check if the network is
normal and check if the
configuration is correct.
conflictDomainNa 0x00400011 Domain name conflict. Check if the configuration is
me correct.
badPort 0x00400012 Port conflict. Check if the configuration is
correct.
portError 0x00400013 Port error Check if the configuration is
correct.
badNetMask 0x00400014 Subnet mask error Check if the configuration is
correct.
badVersion 0x00400015 Version mismatch Check if the version is
correct.
badDns 0x00400016 DNS error Check if the configuration is
correct.
badMTU 0x00400017 MTU error Check if the configuration is
correct.

1030
Intelligent Security API (General) Developer Guide

Error String Error Code Description Debugging Suggestion


badGateway 0x00400018 Wrong gateway Check if the configuration is
correct.
urlDownloadFail 0x00400019 Downloading via URL failed. Check if the network is
normal and check if the URL
is correct.
deployExceedMax 0x0040001a The number of armed Get the supported
channels exceeds the maximum number of
maximum number of arming and the number of
connections. armed channels.

Maintenance Function Module (Error Codes Range: from 0x00500001 to 0x005fffff)

Error String Error Code Description Debugging Suggestion


upgradeXMLForm 0x00500001 Incorrect XML upgrading Check if the upgrade file is
atError request. correct. If the file is correct,
try the local upgrade.
upgradeContentEr 0x00500002 Incorrect upgrading request Check if the upgrade file is
ror content. correct. If the file is correct,
try the local upgrade.
noUpgradePermis 0x00500003 No upgrade permission. Switch to admin account or
sion ask admin for advanced
operation permission.
upgrading 0x00500004 Upgrading… Wait for the upgrade to
complete.
receiveUpgradePa 0x00500005 Receiving upgrade package Check if the network is
ckageError failed. normal.
upgradePackageL 0x00500006 Upgrade package language Check the language type of
anguageMismatch mismatch. upgrade package and the
device.
upgradePackageM 0x00500007 Upgrade file does not match Check the type of upgrade
ismatch with the device type. package and device.
OEMCodeMismat 0x00500008 Upgrade package error. The Contact after-​sales to get
ch OEM code mismatch. the correct upgrade
package.
versionMismatch 0x00500009 Upgrade file version Contact after-​sales to get
mismatch. the correct upgrade
package.

1031
Intelligent Security API (General) Developer Guide

Error String Error Code Description Debugging Suggestion


upgradeHalfFailed 0x0050000c Error occurred in the
halfway of device
upgrading. Flash error or
cache error.
deviceParameterI 0x0050000d Importing device
mportFailed parameters failed. Device
model, version, or platform
mismatches.
deviceEncryptionE 0x0050000e Upgrade package
rror mismatches. Device
encryption error.
SDCardFormatErr 0x00500025 Formatting SD card failed.
or
SDCardLoadFailed 0x00500026 Loading page failed after
the SD card is inserted.
NASFailed 0x00500027 Mounting NAS failed.
hardDiskError 0x00500028 HDD exception (possible
reasons: HDD does not
exist, incompatible,
encrypted, insufficient
capacity, formatting
exception, array exception,
array incompatible, etc.)
upgradeError 0x00500030 Upgrade error
upgradePackageSi 0x00500032 Mismatch between the
zeMismath actual size of the
downloaded upgrade
package and the size in the
upgrading request.
upgradePackageSi 0x00500033 The size of the package
zeExceeded exceeded that of the
partition.
domainNamePars 0x00500034 Parsing the domain name of
eFailedForDownlo the address for
ad downloading failed.

1032
Intelligent Security API (General) Developer Guide

Error String Error Code Description Debugging Suggestion


netWorkUnstable 0x00500035 Unstable network.
Downloading timed out or
the maximum number of
attempts reached.
digestValueMisma 0x00500036 Mismatched digest value.
tch
signatureVerifyFai 0x00500037 Verifying the signature
led failed.
innerFormatError 0x00500038 Incorrect inner format of
the upgrade package.
memoryNotEnoug 0x00500039 Insufficient memory.
h
burnFailed 0x0050003a Burning firmware failed.
unknownError 0x0050003b Unknown error occurred in
the underlying APIs.
userCancel 0x0050003c User requested cancel of
current operation.
systemResume 0x0050003d Upgrading failed. You can
resume via the backup
system or minimum system.
0x00500080 Upgrade file is not found. Check if the upgrade
package path is too long or
if there is a correct upgrade
package under the upgrade
package path.
0x00500081 Upgrade file does not match Select the upgrade package
with the engine type. matched with the device
engine type.
0x00500082 Parsing camera domain Confirm if the device is
name failed. correctly configured DNS
service and if the camera
domain is valid.
0x00500083 Camera network is Confirm if the local network
unreachable. can access the network
where the added channel
located.

1033
Intelligent Security API (General) Developer Guide

Live View Module (Error Codes Range: from 0x00600001 to 0x006fffff)

Error String Error Code Description Debugging Suggestion


liveViewFailed 0x00600001 Live view failed. The
number of streaming
channels exceeded limit.
0x00600002 Request packaging format Check the packaging format
exception. of requested live view.
0x00600003 NPQ will be unavailable When EHome 2.x is enable,
after enabling EHome 2.x. use other live view mode.
0x00600005 NPQ live view is not User other live view mode
supported for channel-zero. for channel-zero.
0x00600007 Only virtual stream Switch to virtual strem.
supports NPQ live view.
0x0060000A The IP channel is offline. Check if the IP channel is
online and try again.
0x0060000B Live view transcoding is not Use other stream type for
supported by the device. live view.
0x0060000C Channel-zero is not Enable channel-zero before
enabled. starting live view of
channel-zero.
0x0060000D Transcoding capability Reduce camera resolution
exceeded limit. or the number of
transcoding channels.
0x00600010 The channel does not have Use main stream mode for
sub-stream. live view.
0x00600011 NPQ live view is not Switch to other live view
supported by the device. mode.
0x00600012 NPQ function is disabled. Enable NPQ function or
switch to other live view
mode.

1034
Intelligent Security API (General) Developer Guide

Playback Module (Error Codes Range: from 0x00700001 to 0x007fffff)

Error String Error Code Description Debugging Suggestion


0x00700001 Playback failed. Up to one
channel's playback is
supported.
0x00700002 The speed of playback Reduce the playback speed.
displayed on video wall is
not supported.
0x00700003 The transmission rate of Reduce the transmission
playback stream is too high. rate of playback stream.
0x00700004 The encoding type of Provide the stream with
playback stream is not encoding type supported by
supported. device.
0x00700005 The container format of Provide the stream with
playback stream is not container format supported
supported. by device.
0x00700007 Exception occurred when
decoding playback stream
Possible reasons: displaying
on video wall exception,
image exception, display
exception, decoding
exception, image is stuck,
black screen, invalid stream
type, live view is stuck,
audio decoding exception,
and blurred screen.
0x00700008 Playback video does not Search again or check if
exit, or searching failed. HDD is normal.
0x00700009 Playback time parameter Check if the time period of
error. searched video is correct
and try again.
0x0070000A Invalid video type. Select the correct video
type to search.
0x0070000B Invalid time type. Select the correct time type
to search.

1035
Intelligent Security API (General) Developer Guide

Error String Error Code Description Debugging Suggestion


0x0070000C Invalid event parameter. Select the correct event
parameter to search.
0x0070000D Invalid event type. Select the correct event
type to search.
0x0070000E The device does not Select the non smart search
support smart search. mode to search.
0x0070000F Invalid smart event type. Select the correct smart
event type to search.
0x00700010 Invalid dynamic analysis Select the correct sensitivity
sensitivity. to search video.
0x00700011 Reverse playback is not Select the correct playback
supported. mode.
0x00700012 Invalid file status. Select the correct file status
to search.
0x00700013 Invalid searching start Use the correct searching
position. start position to search.
0x00700014 Invalid maximum number of Use the correct maximum
searching. number of searching to
search.

Capture Module (Error Codes Range: from 0x00800001 to 0x008fffff)

Error String Error Code Description Debugging Suggestion


0x00800001 Manual capture failed.

Two-Way Audio Module (Error Codes Range: from 0x00900001 to 0x009fffff)

Error String Error Code Description Debugging Suggestion


startFailed 0x00900001 Starting two-way audio
failed. Audio loss or driver
error.
codingFormatNot 0x00900002 The encoding format of the Check or capture the
Match intercom is inconsistent, packets on the platform,
and the negotiation fails then analyze if the audio
encoding formats
negotiated by both sides
are consistent.

1036
Intelligent Security API (General) Developer Guide

Error String Error Code Description Debugging Suggestion


dialedIsBusy 0x00900003 The intercom party is Check if the intercom party
already in the intercom and is already in the intercom, if
can no longer respond to not, get the protocol
the intercom message and analyze the
response message.
destinationLongN 0x00900004 The requested destination Check or capture the
umberError long number is wrong packets on the platform,
then analyze the long
number.

Video Storage Module (Error Codes Range: from 0x00a00001 to 0x00afffff)

Error String Error Code Description Debugging Suggestion


videoSearchFailed 0x00a00001 Searching videos failed. No resource stored in the
device.
notFindStorageM 0x00a00002 No storage medium found.
edium
videoDownloadFa 0x00a00003 Downloading videos failed.
iled

Picture Storage Module (Error Codes Range: from 0x00b00001 to 0x00bfffff)

Error String Error Code Description Debugging Suggestion


0x00b00001 Searching pictures failed. No picture resource.

IO Function Modele (Error Codes Range: from 0x00c00001 to 0x00cfffff)

Error String Error Code Description Debugging Suggestion


0x00c00001 Invalid alarm input No.
0x00c00002 Invalid alarm output No.

Event Function Module (Error Codes Range: from 0x00d00001 to 0x00dfffff)

Error String Error Code Description Debugging Suggestion


0x00d00001 Incorrect event rule. Refer to the manual for
correct configuration.

1037
Intelligent Security API (General) Developer Guide

Parking Service Module (Error Codes Range: from 0x00e00001 to 0x00efffff)

Error String Error Code Description Debugging Suggestion


0x00e00001 The vehicle with parking Parking pass is created by
pass already exists. license plate, you need to
check if the parking pass for
this license plate already
created.
0x00e00002 The license plate number is
required.

General Function Module (Error Codes Range: from 0x00f00001 to 0x00ffffff)

Error String Error Code Description Debugging Suggestion


noMemory 0x00f00001 Insufficient device memory Check the free memory
(heap space allocation and send logs to the
failed). developer for analysis.
deviceBusy 0x00f00002 The device is busy or the Send logs to the developers
device is not responding. for analysis.
For fingerprint collection,
face collection, file
application, and file
uploading services, check if
the last operation is
completed.
notSupport 0x00f00003 The URL is not supported by Capture the packets, check
the device. if the applied URL exists in
the PMP platform. If yes,
send the URL to the
developer for analysis.
methodNotAllowe 0x00f00004 HTTP method is not allowed. Capture the packets, check
d the method corresponding
to the URL in the PMP
platform.
invalidOperation 0x00f00005 Invalid operation of API
command.
IDNotexist 0x00f00006 The ID does not exist (the Capture the packets and
URL should contain ID, but check if the ID included in
the URL is correct.

1038
Intelligent Security API (General) Developer Guide

Error String Error Code Description Debugging Suggestion


the actual URL does not
contain the ID).
invalidID 0x00f00007 Invalid ID (the ID in the URL Capture the packets and
exceeds the capability set or check if the ID included in
the ID format is invalid). the URL is correct.
Get the capabilities of URL
and check the ID range.
invalidIURL 0x00f00008 The content after the "? " in Capture the packets and
the URL is wrong. check if the URL is correct.
deviceAckTimeOu 0x00f00009 Device response timed out. If the communication with
t the external module timed
out, check if the external
module is offline.
When the above situation
is eliminated, send logs to
the developer for analysis.
badXmlFormat 0x00f0000a XML format error
badJsonFormat 0x00f0000b JSON format error
badURLFormat 0x00f0000c URL format error Get the URL and check if it
is correct.
badXmlContent 0x00f0000d XML message error:
• The message contains
only URL but no message
body
• The required node is not
configured.
• Node value exceeds the
range limit (incorrect node
value).
badJsonContent 0x00f0000e JSON message error:

1039
Intelligent Security API (General) Developer Guide

Error String Error Code Description Debugging Suggestion


• The message contains
only URL but no message
body
• The required node is not
configured.
• Node value exceeds the
range limit (incorrect node
value).
messageParamete 0x00f0000f The required node does not
rsLack exists.
invalidSearchCond 0x00f00010 Invalid search condition, Check if searchID is correct.
itions search again.
operObjectNotExi 0x00f00011 The object does not exist Check if door lock is
st (for the operations about connected.
door, alarm IO, the object is
not added).

Door Control Module (Error Codes Range: from 0x01000001 to 0x010ffffff)

Error String Error Code Description Debugging Suggestion


multiAuthenticati 0x01000001 Multi-​factor authentication
on Failed status operation failed.
securityModuleOff 0x01000002 The safety door control Check if the safety door
line module is offline and fails to control is offline.
open the door.

Schedule Template Module (Error Codes Range: from 0x01100001 to 0x011fffff)

Error String Error Code Description Debugging Suggestion


planNumberConfli 0x01100001 Plan number conflict.
ct
timeOverlap 0x01100002 Time period conflict. Check the message to find
out if there is a time overlap
of different time periods in
one day.

Person Information Module (Error Codes Range: from 0x01200001 to 0x012fffff)

Error String Error Code Description Debugging Suggestion

1040
Intelligent Security API (General) Developer Guide

Certificate Module (Error Codes Range: from 0x01300001 to 0x013fffff)

Error String Error Code Description Debugging Suggestion

Security Function Module (Error Codes Range: from 0x01400001 to 0x014fffff)

Error String Error Code Description Debugging Suggestion


decryptFailed 0x01400001 Decryption failed, when The import secret key
decrypting sensitive should be consistent with
information fields or the export.
importing data files.
certificateNotmat 0x01400003 Certificates mismatched, The public and private keys
ch SSL/TLS public and private need to be generated at the
keys need to be matched in same time.
pairs.
notActivated 0x01400004 Device is not activated. Activate the device by tools
such as SADP before use.
hasActivated 0x01400005 Device has been activated.
forbiddenIP 0x01400006 IP address is banned IP address is banned when
illegal login attempts exceed
the upper limit.
bondMacAddress 0x01400007 The MAC address does not Check if the specific MAC
NotMatch match the user. address has linked to the
user.
bondIpAddressNo 0x01400008 IP address does not match Check if the specific IP
tMatch the user. address has linked to the
user.
badAuthorization 0x01400009 Triggered by illegal login Incorrect password
triggered the illegal login.

1041
Intelligent Security API (General) Developer Guide

Advertising Function Module (Error Codes Range: from 0x01500001 to 0x015fffff)

Error String Error Code Description Debugging Suggestion


materialDownloa 0x01500001 Material download failed. • Check if the network
dFailed connection is normal.
• Check if the device is
running normally.
• Check the log print.
materialNumberIs 0x01500002 The number of materials in Check if the number of
Over the program list reached materials in applied
the upper limit. program list exceeded the
limit.

B.6 Encryption Mechanism

B.6.1 RTP Packet Format


The Real-time Transport Protocol (RTP) provides end-to-end network transport functions for
transmitting real-time data, such as audio, video, or simulation data, over multicast or unicast
network services. The RTP packet consists of RTP header (standard and extended header) and RTP
payload.

RTP Header (Standard)

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

Extension flag, set to 0 and reserved for further extension requirement.


CC
4-bit CSRC counter, which indicates the number of CSRC identifiers.
M
1-bit maker flag, when there is a lot of stream data, the data will be packaging into multiple
subpackets to be sent, for subpacket, the value of maker flag is 0, and for end packet, the value
of maker flag is 1.
PT
7-bit payload type, which is obtained via DESCRIBE operation.
sequence number
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.

RTP Payload
The payload consists of binary data, which transmits the detailed information and useful content.

B.6.2 SRTP Packet Format


The SRTP packet consists of SRTP header (standard and extended header), SRTP payload, and SRTP
authentication information.

1043
Intelligent Security API (General) Developer Guide

Figure B-1 SRTP Packet Format


SRTP Header (Standard)
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 one or multiple 8-bit
array(s), but the padded array(s) is (are) not a part of payload. When the size of the payload
is not an integral multiple of 32 bits, padding is required.
X
Extension flag, set to 0 and reserved for further extension requirement. If it is 1, 32-bit
extended information will be added after the fixed packet header.
CC
4-bit CSRC counter, which indicates the number of CSRC identifiers.
M
1-bit marker flag, when there is a lot of stream data, the data will be packaging into multiple
subpackets to be sent, for subpacket, the value of marker flag is 0, and for end packet, the
value of marker flag is 1. It is also allowed to mark important events in the bit stream.
PT
7-bit payload type, which is obtained via DESCRIBE operation.
sequence number

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.

B.6.3 Master Key and Session Key


SRTP uses two types of keys: master keys and session keys. The master key is used to derive the
session key. Multiple master keys are allowed in a cryptographic context. Which master key will be
used to process a SRTP package is directly determined by the field MKI. In this manual, only one
master key will be generated, and the session key will be derived by the key generator.

1045
Intelligent Security API (General) Developer Guide

Figure B-2 Key Generation Procedure


Key Derivation
Key derivation should be defined as follows in terms of <label>, an 8-bit constant (see below),
master salt and key_derivation_rate, as determined in the cryptographic context, and index, the
packet index:
index = 2^16 * ROC + SEQ
r = index/key_derivation_rate
key_id = <label> || r
x = key_id XOR master salt
SRTP Key
The n-bit SRTP key is derived from the master key (key_master) according to the following
function:
key_session = PRF (key_master, x)

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

B.6.4 Decoded MIKEY Message


The MIKEY message responding to the DESCRIBE request should be base64 encoded. The decoded
binary message is as shown below.

1046
Intelligent Security API (General) Developer Guide

Multimedia Internet KEYing: Pre-shared


Common Header (HDR) Type: Pre-shared
Version: 1 //Hard-coded
Data Type: Pre-shared (0) //It is hard coded as "Pre-shared" (pre-shared key)
Next Payload: Timestamp (T) (5)
0... .... = V: Not set //Hard-coded and it does not need to be verified
.000 0000 = PRF func: MIKEY-1 (0) //Hard-coded
CSB ID: 0xc5d72f76 //Random number
#CS: 1 //Number of encrypted sessions, it is hard coded as 1
CS ID map type: SRTP-ID (0) //Hard-coded
SRTP ID: Policy: 0, SSRC: 0x4d6844fe, ROC: 0x0 //Session mapping encryption (important)
Policy No: 0 //Security policy No.
SSRC: 0x4d6844fe //Protected SSRC
ROC: 0x00000000 //RTP package No. rollover counting (overflow will happen if exceeding
2^16)
Timestamp (T) Type: NTP-UTC //SRTP master key is transmitted in plain text, and this payload
takes no effect
Next Payload: RAND (11)
TS type: NTP-UTC (0)
NTP timestamp: Dec 25, 2018 08:59:48.978016999 UTC
RAND //SRTP master key is transmitted in plain text, and this payload takes no effect
Next Payload: Security Policy (SP) (10)
RAND len: 16
RAND: a53da1822c7009075ad9bb0fa3ec27d9
Security Policy (SP) No: 0, Type: SRTP //Security policy (important)
Next Payload: Key Data Transport (KEMAC) (1)
Policy No: 0 //Security policy No.
Protocol type: SRTP (0) //Protocol type, it is hard coded
Policy param length: 21 //Parameter length
Encryption algorithm: AES-CM (1) //Encryption algorithm, it is hard coded
Type: 0
Length: 1
Value: 01
Session Encr. key length: 16 //Encryption key length. If the length is 16 bytes, it corresponds to
aes-128-icm; if the length is 32 bytes, it corresponds to aes-256-icm
Type: 1
Length: 1
Value: 10
Authentication algorithm: HMAC-SHA-1 (1) //Authentication algorithm
Type: 2
Length: 1
Value: 01
Session Auth. key length: 10 //Key length of the session authentication. If the length is 10 bytes, it
corresponds to hmac-sha1-80; if the length is 4 bytes, it corresponds to hmac-sha1-32
Type: 3
Length: 1
Value: 0a
SRTP encryption: On (1) //SRTP encryption, it is hard coded as "On"
Type: 7
Length: 1
Value: 01
SRTCP encryption: On (1) //SRTCP encryption, it is hard coded as "On"

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 ).

B.6.5 RTSP Status Code

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

You might also like